//image pre-loader
(function($) {
  var cache = [];
  // imgArray is an array of image paths relative to the current page.
  $.preLoadImages = function(imgArray) {
    var numImgs = imgArray.length;
    for (var i = numImgs; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = imgArray[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

if (window.navigator.userAgent.indexOf("MSIE") != -1) var isIE = true;
else var isIE = false;


$(function() {	
	var slideDelay = 5000;
	var transitionSpeed=800;
	var slideShowStart = true;
	var activeNum=1;
	var slideDirection="right";
	var numImages=0;
	var activePromoLink="";
	var imageFile=new Array();
	var promoLink=new Array();
	var promoLinkTarget=new Array();
	var promoDescription=new Array();
	

	$('ul#data-slides li').each(function(i) {
	  var $a=$(this).children('a');
	  var $img=$a.children('img');
	  var $desc=$(this).children('div'); 
	  promoLink[i]=$a.attr('href');
	  promoLinkTarget[i]=$a.attr('target');
	  imageFile[i]=$img.attr('src');
	  promoDescription[i]=$desc.html();
	});
	numImages=imageFile.length;
	
	if (numImages > 0) activePromoLink=promoLink[0];
	
	$.preLoadImages(imageFile);
	
	//define thumbnail click event
	$(".thumbnailOn,.thumbnailOff").each( function(i) {
		$(this).click(function(e) {
			slideShowStart = false;
			
			var preActiveNum = activeNum;		
		
			if (activeNum == (i+1)) return;
			else activeNum = i+1;
			
			if (activeNum > preActiveNum) slideDirection="right";
			else slideDirection="left";

			highliteThumbnail(activeNum);
			showPod(activeNum, slideDirection);
		});
	});
	
	//define arrow click event
	/*
	$('#goPrevious').click(function(e) {
		slideShowStart = false;
		
		slideDirection="left";							
		moveNextSlide(slideDirection);
	});

	$('#goNext').click(function(e) {
		slideShowStart = false;
		slideDirection="right";	
		moveNextSlide(slideDirection);
	});
	*/

	function showPod(num, slideDirection) {
		$("#slide-url").attr("href", promoLink[num-1]);
		$("#slide-url").attr("target", promoLinkTarget[num-1]);
		$('#slide-description').html(promoDescription[num-1]);		
		$('#lnkLearnMore').attr("href", promoLink[num-1]);
		
		blendimage('slide-container', 'slide-image', imageFile[num-1], transitionSpeed);		
		activePromoLink=promoLink[num-1];
	}
	
	function highliteThumbnail(num) {
		$(".numbr,.numbrOn").each( function(j) {
			if (num == (j+1)) {
				$(this).removeClass("thumbnailOff");
				$(this).addClass("thumbnailOn");
			} else {
				$(this).removeClass("thumbnailOn");
				$(this).addClass("thumbnailOff");
			}
		});
	}
	
	function moveNextSlide (direction) {
		if (direction == "left") {
			activeNum--;
			if(activeNum < 1) activeNum = numImages;
		} else {
			activeNum++;
			if(activeNum > numImages) activeNum = 1;
		}
		
		highliteThumbnail(activeNum);
		showPod(activeNum, direction);
	}
	
	
	function startSlideShow() {
		if (slideShowStart) moveNextSlide (slideDirection);
	}
	
	function goToActivePromo() {
		window.location=activePromoLink;
	}
	
	setInterval(startSlideShow, slideDelay);
});

function changeOpac(opacity, id) {
	var newOpacity = (opacity / 100);
	$('#'+id).css({'opacity':newOpacity, '-moz-opacity':newOpacity, '-khtml-opacity':newOpacity, 'filter':'alpha(opacity='+opacity+')'});	
}


function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	var $div = $('#' + divid);
	var oldImgSrc=$('#' + imageid).attr('src');	

	$("#" + divid).css("background-image", "url(" + oldImgSrc + ")");
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	$("#" + imageid).attr("src", imagefile);
	//alert (imagefile);
	
	//fade in image
	if (isIE) {
	  for(var i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	  }
	} else {
	  for(var i = 0; i <= 99; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	  }
	}
}
