//set up the homepage welcome module animations
(function($) { //create closure
    $.fn.img_carousel = function() {
		
		carousel();
		
		function carousel()
		{
			//fix text dimming in mac firefox 2
			if(navigator.appVersion.indexOf("Mac") !== -1)
			{
				if ($.browser.mozilla && parseFloat($.browser.version) < 1.9)
				{
					$("#homepageWelcome div.content").css('opacity', 0.999)
				}
			}
			var curr_slide_id = "img_1";
		    var curr_slide_id_number = 1;
			var button_class = "img_1";
			var next_slide_id = "img_1";
			var next_slide_id_number = "";
			var slide_finder = $("#imgHolder div.img");
			var slide_id_array = [];
		    var slides_index_counter = 0;
		    slide_finder.each(function() {
		        slide_id_array[slides_index_counter] = $(this).attr("id");
		        slides_index_counter++;
		    });
			$('#imgHolder div.img:not(#img_1)').hide();

			function fade_transition() {
				$('#imgHolder div.img').each(function() {
		            if ($(this).attr('id') != curr_slide_id) {
						//alert("hiding " + $(this).attr('id'));
		                $(this).hide();
		            } // if
		        } // function
		        ) // each
				$('#imgHolder div[@id$="' + curr_slide_id + '"]').css("z-index", "1");
		        $('#imgHolder div[@id$="' + next_slide_id + '"]').css("z-index", "2");
				$('#imgHolder div[@id$="' + next_slide_id + '"]').animate({
		            "opacity": "show"
		        },
		        {
		            "duration": 1000,
		            "easing": "easeInQuad"
		        });    
		    } //function fade

			function rotate_slides() {
		        function transition_slides() {
		            // transition slides
		            if (curr_slide_id != next_slide_id) {
		                fade_transition();
		            }
					curr_slide_id_number = next_slide_id_number;
		            function make_curr_slide_id() {
		                curr_slide_id = next_slide_id;
		            };
		            make_curr_slide_id();
		        } // transition_slides()
		        transition_slides();

		        function animate_slides() {} // animate_slides()
		    } // rotate_slides()

			move = function(direction) {
		        // identify next slide class
		        var curr_slide_id_string = curr_slide_id.toString();
		        var split_curr_slide_id_string = curr_slide_id.split("_");
		        curr_slide_id_string = split_curr_slide_id_string.pop();
		        curr_slide_id_number = parseFloat(curr_slide_id_string);

		        next_slide_id_number = curr_slide_id_number + 1;
		        next_slide_id = "img_" + next_slide_id_number;

		        // if next slide is after the last slide, then go to first slide
		        if (next_slide_id_number > slide_id_array.length) {
		            next_slide_id = "img_1";
		            curr_slide_id_number = slide_id_array.length;
		            next_slide_id_number = 1;
		            // if next slide is before the first slide, then go to first slide	
		        } else if (next_slide_id_number < 1) {
		            next_slide_id = "img_" + slide_id_array.length;
		            next_slide_id_number = slide_id_array.length;
		        } // else 
		        //button_class = next_slide_id;
		        // animate to next slide
		        rotate_slides();	
		    } //skip
		   setInterval("move('next')", 7000);
		}
	}
})(jQuery);



//set up the promotions module
function promo_module(){
	var linksArray = [];
	var featuresArray = [];
	var selectedFeatureClass = "";
	linksArray = $("#homepagePromotions ul a");
	featuresArray = $("#homepagePromotions div.feature")
	selectedFeatureClass = "";
	function showSelectedFeature(){
		featuresArray.each(function(){
			if ($(this).attr('id') != selectedFeatureClass){
				$(this).hide();
			}
			else {
				$(this).show();
			}
		});
		linksArray.each(function(){
			if (this.className != selectedFeatureClass)
			{
				$(this).removeClass('selected');
			}
			else{
				$(this).addClass('selected');
			}
		});
	};
	
	$("#homepagePromotions ul a").hover(
		function() {
			selectedFeatureClass = this.className.toString();
			selectedFeatureClass = selectedFeatureClass.split(" ");
			selectedFeatureClass = selectedFeatureClass[0];
			showSelectedFeature();
		},
		function(){}
	);
}

function loadCarousel(){
	if (!bIsSafari2){
		$('#carouselList').show();
		$("#carouselContainer").load("carousel1.html #productsCarousel",expandCarousel);
	}
}

function expandCarousel(){
	//$("#carouselContainer").show("normal",activateCarousel)
	$("#carouselContainer").show("normal",function(){
		activateCarousel("initialise");
	});
}

function activateCarousel(state){
	$('#productsCarousel').agile_carousel({
		disable_on_first_last: "yes",
	  	next_prev_buttons: "yes",
	  	number_slides_visible: "3",
	  	slide_buttons: "no",
	  	slide_captions: "", 
	  	timer_on: "no",
	  	transition_duration: 500,
	  	transition_easing: "easeOutQuint"
	});

	if(state != "initialise"){
		$('#productsCarousel').hide();
	}
	
	$('#slide_holder_inner').css("visibility", "visible");
	if(state != "initialise"){
		$('#productsCarousel').hide();
	}
	$('#productsCarousel').fadeIn(500);
}

function carouselLinks()
{
	var carouselLinkItems = $("#carouselList LI");
	carouselLinkItems.each(function(){
		if (this.className != "selected"){
			//set up this item's link
			$(this).addClass("pointer");
			$(this).click(function(){
				//add click function
				var currentLink = $(this).attr('id');
				var carouselToShow = currentLink + ".html";
				$("#productsCarousel").fadeOut(500, function(){
					$("#productsCarousel").remove();
					$("#carouselContainer").load("" + carouselToShow + " #productsCarousel",function(){
						activateCarousel("");
					});
				});
				//activate the other link;
				carouselLinkItems.each(function(){
					if(this.className == "selected"){
						$(this).removeClass("selected");
						$(this).addClass("pointer");
						carouselLinks();
					};
				});
				//make this link selected
				$(this).addClass("selected");
				$(this).removeClass("pointer");
				$(this).unbind("click");
			});
		};
	});
}