/**
 * 
 * @application Evans & Finch
 * @version 0.0.0.1
 * @author Chris Keegan
 * @copyright Evans & Finch, 2010
 * 
 */


efhPage.fn.init = function()
{
	var page = this;
	this.form = messageSubmit();
	
	var img = document.createElement("img");
	$(img).attr("src", "assets/images/content/case_study/case_study_background_e2c.gif");	
	$(img).attr("src", "assets/images/content/case_study/case_study_background_bmc.gif");	
	$(img).attr("src", "assets/images/content/case_study/case_study_background_bic.gif");	
	$(img).attr("src", "assets/images/content/case_study_title_e2c.gif");	
	$(img).attr("src", "assets/images/content/case_study_title_bmc.gif");	
	$(img).attr("src", "assets/images/content/case_study_title_bic.gif");	

	this.twindex = 0;
	this.tweets = [];
	this.animating = false;
	
	this.case_study_data = 
	{
	 	e2c :
	 	{
			html: "The ELECTION 2010 CHALLENGE is a national Social Media driven competition to find the best election idea in Britain. It incorporates a highly accessible Social Game and is coupled closely with both <a href='http://www.facebook.com' target='__blank'>Facebook</a> and <a href='http://twitter.com' target='__blank'>Twitter</a>.",
			url: "http://www.election2010challenge.co.uk",
			blog: "http://blog.evansfinch.co.uk/social-media-challenge/election-2010-challenge"
	 	},
		bmc : 
		{
			html: "The BEERMAT CHALLENGE was commissioned by <a class='white_link' href='http://rbi.uwe.ac.uk' target='_blank'>UWE</a> to increase student engagement with Innovation and Enterprise. It succeeded in this, driving up numbers of entrants to their flagship Biz Idea competition while delivering them valuable market research data.",
			url: "http://www.beermatchallenge.co.uk",
			blog: "http://blog.evansfinch.co.uk/social-media-challenge/beermat-challenge"
		},
	 	bic :
	 	{
			html: "The BIZ IDEA CHALLENGE employs the EVANSFINCH Challenge approach to teach practical Social Media Marketing techniques to young entrepreneurs. Workshop lead, this teaches entrants how to communicate their message through Social Media channels.",
			url: "http://www.bizideachallenge.co.uk",
			blog: "http://blog.evansfinch.co.uk/social-media-challenge/biz-idea-challenge"
	 	}
	};
	
	this.preloadTweets();
	this.clickHandlers();
	
}; // init

efhPage.fn.clickHandlers = function()
{
	var page = this;
	$("#link_readmore_e2c").click( function(ev)
	{
		page.selectCaseStudy("e2c");
		return false;
	});
	
	$("#link_readmore_bmc").click( function(ev)
	{
		page.selectCaseStudy("bmc");
		return false;
	});

	$("#link_readmore_bic").click( function(ev)
	{
		page.selectCaseStudy("bic");
		return false;
	});
	
}; // clickHandlers


efhPage.fn.setupPage = function( settings )
{
	this.settings = settings;
	this.setupCaseStudy("bmc", false);
}; // setupPage

efhPage.fn.setupCaseStudy = function( case_study, fade_out )
{
	var page = this;
	this.case_study = this.settings[case_study+'_case_study'];
	this.case_study_str = case_study;
	this.num_headlines = this.case_study.num_headlines;
	
	this.headlines = [];
	this.randHeadlines = [];
	for ( var x=0; x<this.num_headlines; x++ )
		this.headlines[x] = x+1;
	
	if ( fade_out == true )
	{
		$('#case_study_area').fadeOut(1500, function()
		{
			page.setupCaseStudy( case_study, false )
		});
		
		return;
	}
	
	var headline = this.popHeadline();
	$("#case_study_area").css("background", "url(assets/images/content/case_study/case_study_background_" + case_study + ".gif) top left no-repeat");
	$('#case_study_feed').html(this.case_study['headline_' + headline]);
	$('#case_study_copy').html(this.case_study_data[case_study].html);
	$('#case_study_website').text(this.case_study_data[case_study].url).attr('href',this.case_study_data[case_study].url);
	$('#case_study_read_more').attr('href',this.case_study_data[case_study].blog);
	
	if ( case_study == "e2c" )
	{
		$("#case_study_copy").css("color","#000");
		$("#case_study_website").css("color","#000");
	}
	else
	{
		$("#case_study_copy").css("color","#fff");
		$("#case_study_website").css("color","#fff");
		$("#case_study_website:hover").css("color","#000");
	}
	
	$('#case_study_area').fadeIn(500, function()
	{
		$('#case_study_title_right').fadeOut(500, function()
		{
			$("#case_study_title_image").attr("src", "assets/images/content/case_study_title_" + case_study + ".gif");
			$(this).fadeIn(500, function()
			{
				page.animating = false;
			});
		});

		$('#case_study_container').stopTime( "rolling_headlines" );
		$('#case_study_container').everyTime(12000, "rolling_headlines", function()
		{
			page.newHeadline();
			return true;
		});
	});
	
	
}; // setupCaseStudy

efhPage.fn.selectCaseStudy = function( case_study )
{
	if ( this.animating == true || this.case_study_str == case_study )
		return;
	this.animating = true;
	
	this.setupCaseStudy( case_study, true );
}

efhPage.fn.preloadTweets = function()
{
	var page = this;
	
	$.getJSON( "http://www.twitter.com/status/user_timeline/evansfinch.json?count=50&callback=?", 
	function(data, textStatus)
	{
		if ( data.length == 0 )
		{
			page.fetchNewTweet( true );
			return;
		}

		$.each( data, function( idx, item )
		{
			var text = item.text;
			var date = new Date( item.created_at );
			var date_str = "<a href='http://twitter.com/evansfinch/status/" + item.id + "' target='_blank'>" + date.toLocaleDateString() + ", " + date.toLocaleTimeString() + "</a>";
			
			var reg_url = /((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
			var reg_to = /\@([\w\_\d]+)/gi;
			
			text = text.replace( reg_url, "<a href='$1' target='__blank'>$1</a>" );
			text = text.replace( reg_to, "@<a href='http://twitter.com/$1' class='light' target='__blank'>$1</a>" );
			
			page.tweets.push( { text: text, date: date_str } );
		});
		
		page.showNewTweet( false );
	});	
}

efhPage.fn.showNewTweet = function( fade_out )
{
	if ( this.twindex >= this.tweets.length )
		this.twindex = 0;

	var page = this;
	var tweet = this.tweets[ this.twindex++ ];
	
	if ( fade_out == true )
	{
		$(".dynamic#twitter_feed").fadeOut( 1500, function() 
		{
			
			$(this).html(tweet.text + "<br/>" + tweet.date).fadeIn(250).oneTime( 30000, function()
			{
				page.showNewTweet( true );
			});
		});
	}
	else
	{
		$(".dynamic#twitter_feed").hide().html(tweet.text + "<br/>" + tweet.date).fadeIn(250).oneTime( 30000, function()
		{
			page.showNewTweet( true );
		});
	}
}; // showNewTweet


efhPage.fn.newHeadline = function()
{
	var page = this;
	var headline = this.popHeadline();
	
	$('#case_study_feed').fadeOut(1500, function()
	{
		$(this).html(page.case_study['headline_' + headline]).fadeIn(500);
	});
}; // newHeadline 

efhPage.fn.popHeadline = function()
{
	if ( this.randHeadlines.length == 0 )
		this.randHeadlines = this.headlines.slice( 0, this.headlines.length );
	
	var idx = this.getInteger( 0, this.randHeadlines.length-1 );
	var headline = this.randHeadlines[ idx ];
	this.randHeadlines.splice( idx, 1 );
	
	return headline;
}

efhPage.fn.getInteger = function(min,max)
{
	var rand = Math.random() * 0.999999;
	var range = ( Math.max( max, min ) - Math.min( max, min ) ) + 1.0;
	var result =  parseInt( range * rand );
	
	//DebugLog.log( DebugLog.DEBUG_CHANNEL_USER1, "RNG: ", result );
	
	return Math.min( max, min ) + result;
}