var loadingElements = new Array();
var bannerSwap = 5000;
var bannerFade = 1000;
var imgs = new Array();
var timeout;

if(!Array.indexOf){
  Array.prototype.indexOf = function(obj){
	  for(var i=0; i < this.length; i++){
		  if(this[i] == obj){
			  return i;
		  }
	  }
	  return -1;
  }
}

$(document).ready(function(){
	loadImages();
	rewriteControls();
});

function loadImages()
{
	showLoading();
	var imgCount = imgSrcs.length;
	
	for(var i = 0; i < imgCount; i++)
	{
		imgs.push(new Image());
		imgs[i].src = imgRoot + imgSrcs[i];
		imgs[i].onload = function() 
		{
			loadingElements.splice(loadingElements.indexOf(this), 1);
			checkLoading();
		}
		loadingElements.push(imgs[i]);
	}
	checkIfAlreadyLoaded();
}

function rewriteControls() 
{
	$("#bannerNav > ul > li.navItem > a").click(function()
	{
		clearTimeout(timeout);
		
		var url = $(this).attr('href');
		var bannerStart = url.indexOf('bannerImg=');
		var bannerEnd = url.substr(bannerStart).indexOf('&');
		
		if(bannerEnd == -1)
			var nextImg = url.substr(bannerStart + 10);
		else
			var nextImg = url.substr(bannerStart + 10, bannerEnd);
		
		changeBanner(nextImg-1);		
		return(false);
	});
	
	if(bannerType == "selection")
	{
		$(".navSelection").each(function(){
			var classes = $(this).attr('className').split(' ');
			var nextImg = 1;
			
			for(var i = 0; i < classes.length; i++)
			{
				if(classes[i].substr(0,4) == "data")
				{
					nextImg = classes[i].substr(4);
				}
			}

			$(this).hover(function(){ changeBanner(nextImg - 1); }, null);
		});
	}
}

function showLoading() 
{
	$("#banner").append('<div id="bannerLoading"><img src="images/loading.gif" width="16" height="16" alt="loading" /></div>');
}

function checkLoading() 
{
	if(loadingElements.length == 0)
	{
		hideLoading();
		if(bannerType == "normal")
			timeout = setTimeout("changeBanner()", bannerSwap);
	}
}

function hideLoading()
{
	$("#bannerLoading").remove();
}

function changeBanner(nextImg)
{
	var lastImg = currentImg;
	
	if(nextImg == null)
	{
		if(currentImg == imgs.length - 1)
			currentImg = 0;
		else
			currentImg++;
	}
	else
		currentImg = nextImg;
	
	$("#banner > img").fadeIn(0);
	$("#banner").css('backgroundImage','url(' + imgs[currentImg].src + ')').css('backgroundRepeat','no-repeat');
	$("#banner > img").fadeOut(bannerFade, function() {
		$("#banner > img").attr('src', imgs[currentImg].src).attr('alt', alts[currentImg]);
		
		if(bannerType == "normal")
			timeout = setTimeout('changeBanner()', bannerSwap);
	});
}

function checkIfAlreadyLoaded(){
	var toRemove = new Array();
	for(var i = 0; i < loadingElements.length; i++){
		if(loadingElements[i].complete || (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && loadingElements[i].width > 0)){
			loadingElements[i].onload  = null;
			toRemove.push(loadingElements[i]);
		}
	}

	for(i = 0; i < toRemove.length; i++)
		loadingElements.splice(loadingElements.indexOf(toRemove[i]), 1);
	
	checkLoading();

	if(loadingElements.length > 0)
		if(navigator.userAgent.toLowerCase().indexOf('opera') != -1)
			setTimeout('checkIfAlreadyLoaded()',100);
}
