
//Globals
var intID;
var timeRefresh = 3000;
var timeChange = 1000;
var disableClicks = false;
var paused = false;

$(document).ready(function(){ 

	$("body").addClass("jsEnabled");

	var menuwidth = 0;
	$("div.menu ul li").each(
		function(i)
		{
			menuwidth = menuwidth + $(this).width();
		}
	);
	fullwidth = $("div.menu ul").width();
	diff = fullwidth - menuwidth;		
	peritem = Math.floor(diff/$("div.menu ul li").length);	
	sidepadleft = Math.floor(peritem / 2);
	sidepadright = peritem - sidepadleft;
	if(sidepadleft < 5){sidepadleft = 5;}
	if(sidepadright < 5){sidepadright = 5;}
	//leftover?
	newwidth = menuwidth + ((sidepadleft) * $("div.menu ul li").length) + ((sidepadright) * $("div.menu ul li").length);
	leftover = fullwidth - newwidth;
	
	$("div.menu ul li a").each(
		function(i)
		{
			$(this).css("padding-left", (sidepadleft+5)+"px").css("padding-right", (sidepadright+5)+"px");
		}		
	);
	
	if($("div.menu ul").height() <= $("div.menu ul li").height())
	{
		//still on the one line so fill out the first item
		padleft = Math.floor(leftover/2);
		padright = leftover - padleft;
		currleft = parseInt($("div.menu ul li a:first").css("padding-left"));
		currright = parseInt($("div.menu ul li a:first").css("padding-left"));
		newleft = padleft + currleft;
		newright = padright + currright;
		$("div.menu ul li a:first").css("padding-left", newleft+"px").css("padding-right", newright+"px");
		
	}
	
	if(document.getElementById("homeBanner"))
	{
		//hide the play button
		$("#homeBanner div.counter div.controls .play").css("display", "none");
		//generate the list controls (max: 6 items);
		markup = '<ul>';
		totalItems = $("div#homeBanner div.items div.item").length;
		
		$("div#homeBanner div.items div.item").each(
			function(i)
			{
				id = i+1;
				if(id == 1)
				{
					markup = markup + '<li class="selected"><a href="#'+id+'">'+id+'</a></li>';
					$(this).addClass("selected");
				}
				else if(id <= 8)
				{
					markup = markup + '<li><a href="#'+id+'">'+id+'</a></li>';
					$(this).css("display", "none");
				}
				else
				{
					$(this).css("display", "none");
				}
				$(this).attr("id", id).css("z-index", totalItems);
				totalItems--;
			}
		);
		markup = markup + "</ul>";
		$("div#homeBanner div.counter div.paging").html(markup);
		
		//setup click behaviours
		$("#homeBanner div.counter div.paging ul li a").click(
			function()
			{
				if(disableClicks == false)
				{
					clearTimeout(intID);
					disableClicks = true;
					currItem = $("#homeBanner div.items div.selected");
					currPageItem = $("#homeBanner div.counter div.paging ul li.selected");
					nextID = parseInt($(this).attr("href").replace("#", ""));
					nextItem = $("#homeBanner div.items div#"+nextID);
					pageeq = nextID - 1;					
					nextPageItem = $("#homeBanner div.counter div.paging ul li:eq("+pageeq+")");					
					animateChange(currItem, nextItem, currPageItem, nextPageItem);
				}
				return false;
			}
		);
		$("#homeBanner div.counter div.controls .pause").click(
			function()
			{
				paused = true;
				$(this).css("display", "none");
				$("#homeBanner div.counter div.controls .play").css("display", "block");
				clearTimeout(intID);
				return false;
			}
		);
		$("#homeBanner div.counter div.controls .play").click(
			function()
			{
				paused = false;
				$(this).css("display", "none");
				$("#homeBanner div.counter div.controls .pause").css("display", "block");
				intID = setTimeout("changeHomeBannerForward()", timeRefresh);
				return false;
			}
		);
		$("#homeBanner div.counter div.controls .next").click(
			function()
			{
				if(disableClicks == false)
				{
					changeHomeBannerForward();
				}
			}
		);
		$("#homeBanner div.counter div.controls .prev").click(
			function()
			{
				if(disableClicks == false)
				{
					changeHomeBannerBackward();
				}
			}
		);
		//paging controls
		
		//set up the auto change
		intID = setTimeout("changeHomeBannerForward()", timeRefresh);
		
		
	}
	
});

function changeHomeBannerForward()
{
	disableClicks = true;
	clearTimeout(intID);
	//get the current item
	currItem = $("#homeBanner div.items div.selected");
	nextItem = false;
	currID = parseInt($("#homeBanner div.items div.selected").attr("id"));
	totalItems = $("#homeBanner div.counter div.paging ul li").length;
	if(totalItems > 7){totalItems = 7;}
	
	if($(currItem.next()).html() != null && currID <= totalItems)
	{
		nextItem = currItem.next();
	}
	else
	{
		nextItem = $("#homeBanner div.items div.item:first");
	}
	
	currPageItem = $("#homeBanner div.counter div.paging ul li.selected");
	nextPageItem = null;
	if($(currPageItem.next()).html() != null && currID <= totalItems)
	{
		nextPageItem = currPageItem.next();
	}
	else
	{
		nextPageItem = $("#homeBanner div.counter div.paging ul li:first");
	}
	
	animateChange(currItem, nextItem, currPageItem, nextPageItem);
		
}

function changeHomeBannerBackward()
{
	disableClicks = true;
	clearTimeout(intID);
	//get the current item
	currItem = $("#homeBanner div.items div.selected");
	nextItem = null;
	currID = parseInt($("#homeBanner div.items div.selected").attr("id"));
	totalItems = $("#homeBanner div.counter div.paging ul li").length;
	if(totalItems > 8){totalItems = 8;}

	if($(currItem.prev()).html() != null && currID > 1)
	{
		nextItem = currItem.prev();
	}
	else
	{
		nextItem = $("#homeBanner div.items div#"+totalItems);
	}
	
	currPageItem = $("#homeBanner div.counter div.paging ul li.selected");
	nextPageItem = null;
	if($(currPageItem.prev()).html() != null && currID > 1)
	{
		nextPageItem = currPageItem.prev();
	}
	else
	{
		nextPageItem = $("#homeBanner div.counter div.paging ul li:last");
	}
	
	animateChange(currItem, nextItem, currPageItem, nextPageItem);
		
}

function animateChange(currItem, nextItem, currPageItem, nextPageItem)
{
	currItem.fadeOut(timeChange, function(){
		$(this).removeClass("selected");
		currPageItem.removeClass("selected");
	});
	nextItem.fadeIn(timeChange, function(){
		$(this).addClass("selected");
		nextPageItem.addClass("selected");
		disableClicks = false;
		if(paused == false)
		{
			intID = setTimeout("changeHomeBannerForward()", timeRefresh);
		}
	});
}
