/*
 * SCRIPT CALLED BY index.php FOR lib/homeSlideShow.php
 */


// ONLOAD FUNCTION --------------------------------------------------------------------------------------------------------------------
$(function() {
	// IF VISITOR CLICKS ON SLIDESHOW, LOAD NOMINEES' PAGE:
	$("#homeShowBox").click(function() { document.location.href = "index.php?m=32"; });
		   
	// FORCE IMAGE LOADING WITH js/preloadFunction.js preload() FUNCTION, AND THEN LAUNCH SLIDE SHOW:
	// preload("#homeShowBox", "#bcbec0", startSlideShow);
	
	// IF THERE ARE MORE THAN ONE IMAGE:
	if ($("#homeShowBox img").length > 1) {
		// FORCE IMAGE LOADING WITH js/preloadWithoutLoader.js preloadWithoutLoader() FUNCTION, AND THEN LAUNCH SLIDE SHOW:
		preloadWithoutLoader("#homeShowBox", startSlideShow);
	}
	// IF THERE'S ONLY ONE IMAGE, DISPLAY IT BUT DON'T LAUNCH SLIDE SHOW:
	else {
		// PRELOAD IMAGE:
		preloadWithoutLoader("#homeShowBox", function() {
			// AFTER LOADING, CHANGE CURRENT 0 OPACITY INTO FULL OPACITY AND FADE IMAGE IN:
			$("#homeShowBox img").add("#homeShowCaptions li").css("opacity", "1").fadeIn(500);
		});
	}
});


// FUNCTION STARTING SlideSHOW ----------------------------------------------------------------------------------------------------------
function startSlideShow() {
	// REMOVE LOADER BACKGROUND GIF SET IN ui/screen.css:
	$("#homeShowBox").css("background", "none");
	
	// TO AVOID FLICKERING ON IE6 (BECAUSE IE6 DOESN'T ACCEPT CSS OPACITY),
	// THE IMAGES AND CAPTIONS ARE FIRST IN display:none AND THEN ARE SHOWN AFTER LOADING:
	$("#homeShowBox img:first-child").add("#homeShowCaptions li:first-child").fadeIn(500, function() {
		$("#homeShowBox img").add("#homeShowCaptions li").show();
	});

	// TILL NOW, ALL IMAGES (AND CAPTIONS) HAVE A 0.0 OPACITY;
	// GIVE FULL OPACITY (1.0) TO FIRST PICTURE AND CAPTION, USING CLASS "active":
	$("#homeShowBox img:first-child").add("#homeShowCaptions li:first-child").addClass("active");

	// TO AVOID FIRST PICTURE STAYING TOO LONG BEFORE SLIDE SHOW LOOP, SWITCH FIRST IMAGE QUICKLY BEFORE SLIDE SHOW:
	waitBefore2ndPic = setTimeout(function() {
		// REMOVE WAITING PERIOD:
		clearTimeout(waitBefore2ndPic);
		
		// DISPLAY SECOND PICTURE:
		homeSlideSwitch();
		
		// THEN CONTINUE SlideSHOW WITH NORMAL REFRESHING SPEED:
		homeSlideShowTimer = setInterval("homeSlideSwitch()", 5000);
	}, 2000);
}


// HOMEPAGE PICTURE SWITCH ------------------------------------------------------------------------------------------------------------
function homeSlideSwitch() {	
	// CATCH CURRENT PICTURE:
	var $activePic = $("#homeShowBox img.active");
	var $activeCaption = $("#homeShowCaptions li.active");

	// IF NO PICTURE OR CAPTION WAS FOUND, DEFAULT WILL BE THE LAST SO... WE'LL START BY THE FIRST:
	if($activePic.length == 0) {
		$activePic = $("#homeShowBox img:last");
		$activeCaption = $("#homeShowCaptions li:last");
	}

	// IF WE'RE IN THE END OF PICTURES LIST, THE NEXT ONE WILL BE THE FIRST IMAGE:
	var $nextPic = $activePic.next().length ? $activePic.next() : $("#homeShowBox img:first");
	var $nextCaption = $activeCaption.next().length ? $activeCaption.next() : $("#homeShowCaptions li:first");

	// CHANGE CURRENT PICTURE AND CAPTION z-index (PUT THEM BACK):
	$activePic.addClass("lastActive");
	$activeCaption.addClass("lastActive");

	// FADIN THE NEW PICTURE AND DECLASSIFY PREVIOUS ONE:
	$nextPic.css({opacity: 0.0})
		.addClass("active")
		.animate({opacity: 1.0}, 2500, function() {
			$activePic.removeClass("active lastActive").animate({opacity: 0.0}, 1000);
		});
		
	// FADIN THE NEW CAPTION AND DECLASSIFY PREVIOUS ONE:
	$nextCaption.css({opacity: 0.0})
		.addClass("active")
		.animate({opacity: 1.0}, 2500, function() {
			$activeCaption.removeClass("active lastActive").animate({opacity: 0.0}, 1000);
		});
}
