//------------------------------------
//	HOME.JS
//	Author: 	Engage Interactive
//	Requires:	jquery 1.3.2
//				
//				
//------------------------------------

$(function(){
//BEGIN jQuery


	//TWITTER
	
	totalT = 0;
	
	$("#twitter").getTwitter({
		userName: "big_bella",
		numTweets: 5,
		loaded: function(){
			
			totalT = $('#twitter_update_list li').size();
			
			$('#twitter_update_list').css({opacity:0});
			
			$('#twitter_update_list li:first').clone().appendTo('#twitter_update_list');
			
			//Do the animating!
			$('#twitter p.loading').animate({opacity:0},400,'easeInOutExpo',function(){
				$(this).remove();
				$('#twitter_update_list').css({top:0}).animate({opacity:1},400,'easeInOutExpo',function(){
					tweetCycle();
				});
			});
		}
	});
	
	currentY = 0;
	currentT = 1;
	
	var tweetTimer = {};
	
	function tweetCycle(){
		tweetTimer = $.timer(3800,function(){
			if(currentT==totalT+1){
				$('#twitter_update_list').css({top:0});
				currentY = 0;
				currentT = 1;
			}
			currentY = currentY - 38;
			$('#twitter_update_list').animate({opacity:0},400,'easeInOutExpo',function(){
				$(this).css({top:currentY}).animate({opacity:1},400,'easeInOutExpo');
			});
			currentT = currentT + 1;
			tweetCycle();
		});
	}


	//PROMO SLIDER

	totalPromo = $('#slider li').size();
	xPos = 0;
	currentPromo = 1;
	moose = true;
	autoMoose = true;
	promoDelay = 6000;
	easing = 'easeInOutExpo';
	speed = 600;
	
	$('#promo_nav li').css({opacity:0.6});
	
	$('#promo_nav li').hover(function(){
		$(this).css({opacity:0.9});
	},function(){
		$(this).css({opacity:0.6});
	});
	
	$('#promo_nav .next a').click(function(){
		if(moose==true && totalPromo>currentPromo){
			xPos = xPos - 472;
			currentPromo = currentPromo + 1;
			slideTo(xPos);
		}else if(moose==true){
			currentPromo = 1;
			infiniteLoop('right');
		}
		return false;
	});
	
	$('#promo_nav .prev a').click(function(){
		if(moose==true && currentPromo>1){
			xPos = xPos + 472;
			currentPromo = currentPromo - 1;
			slideTo(xPos);
		}else if(moose==true){
			currentPromo = totalPromo;
			infiniteLoop('left');
		}
		return false;
	});
	
	function infiniteLoop(dir){
		
		moose = false;
		
		totalX = 472 - (472 * totalPromo);
		
		if(dir == 'left'){
			$('#slider').prepend('<li>'+$('#slider li:last').html()+'</li>').css({left:-472}).animate({left:0},speed,easing,function(){
				$('#slider').css({left:totalX});
				$('#slider li:first').remove();
				moose = true;
			});
			xPos = totalX;
		}else if(dir == 'right'){
			$('#slider').append('<li>'+$('#slider li:first').html()+'</li>').animate({left:totalX-472},speed,easing,function(){
				$('#slider').css({left:0});
				$('#slider li:last').remove();
				moose = true;
			});
			xPos = 0;
		}
	}
	
	$('#slider, #promo_nav').hover(function(){
		$.clearTimer(promoTimer);
	},function(){
		autoMagical();
	});
	
	var promoTimer = {};
	
	function autoMagical(){
		promoTimer = $.timer(promoDelay,function(){
			$('#promo_nav .next a').click();
			autoMagical();
		});
	}
	
	autoMagical();
	
	function slideTo(newX){
		moose = false;
		$('#slider').animate({left:newX},speed,easing,function(){
			moose = true;
		})
	}


	
//END jQuery
});

//EASING

jQuery.extend(jQuery.easing,{
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutExpo: function(x,t,b,c,d){
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	}
});



/*
 * jQuery Timer Plugin
 * http://www.evanbot.com/article/jquery-timer-plugin/23
 *
 * @version      1.0
 * @copyright    2009 Evan Byrne (http://www.evanbot.com)
 */

jQuery.timer = function(time,func,callback){
	var a = {timer:setTimeout(func,time),callback:null}
	if(typeof(callback) == 'function'){a.callback = callback;}
	return a;
};

jQuery.clearTimer = function(a){
	clearTimeout(a.timer);
	if(typeof(a.callback) == 'function'){a.callback();};
	return this;
};