//**********************************************************************************************************************
/**
* COMPANY: Zipline Interactive
* EMAIL: infon@gozipline.com
* PHONE: 509-321-2849
* DESCRIPTION: This document contains programming required for the website templates.  Requires the jQuery library.
*/
//***********************************************************************************************************************


//***********************************************************************************************************************
//ON DOCUMENT READY FUNCTIONS
//***********************************************************************************************************************
$(document).ready(init);

var nav,
sliderNav,
sliderNavA, 
sliderNavLi,
sliderLinks, 
bg1, 
bg2, 
bgTop, 
bgBottom, 
sliderIndex, 
sliderTimer, 
bgContainer, 
ieVersion, 
about_book, 
buy_now, 
slideInterval, 
animating, 
wrapper_top;

function init() {

	//Slideshow stuff

	//selector caching
	nav = $("div#header ul li a");
	sliderNav = $(".slider ul");
	sliderNavLi = $(".slider ul li");
	sliderNavA = $(".slider ul li a");
	bg1 = $("#wrapper_bg1");
	bg2 = $("#wrapper_bg2");
	sliderLinks = $(".slider a.textLink");
	bgContainer =  $(".wrapper_top");
	about_book = $("#about_book");
	buy_now = $("#buy_now");
	
	//setup
	animating = false;
	sliderIndex = {id:-1};
	bgTop = bg1; bgBottom = bg2;
	getInternetExplorerVersion();

	sliderNavA.click(handleslider);
	
	//preload backgrounds
	sliderNavA.each(function(index, item) {
		$('<img/>').attr("src",$(item).data("img"));
		$('<img/>').attr("src",$(item).data("imgBG"));
	});
	
	//run slideshow
	slideInterval = setInterval(slideShow, 10000);
	sliderSelect(0);
}


/******************************************************/ 
// methods:
function slideShow() {
	var g = (sliderIndex.id + 1);
	if (g > sliderNavA.length-1) { g = 0 };
	sliderSelect(g, false);
}

function handleslider(e) {
	e.preventDefault();
	if (!animating) {
		var tId = $(this).data("id");
		sliderSelect(tId, true);
	}
}

function sliderSelect(index, cancel) {

	if (cancel) {
		clearInterval(slideInterval);
	}

	if (index != sliderIndex.id && animating===false) {
		animating = true;
		var h = bgContainer.height();
		var w = bgContainer.width();
		
		sliderNavLi.removeClass("active").addClass("inactive");
		sliderNavLi.eq(index).removeClass("inactive").addClass("active");
		
		if(ieVersion > 8 || ieVersion == -1){
			// All modern browsers use this:
			
			bgBottom.css({
							"background-image" : "url(\""+sliderNavA.eq(index).data("img")+"\"), url(\""+sliderNavA.eq(index).data("imgBG")+"\")",
							"height" : h
						});
			// opacity change on copy & transparent pngs:
			sliderNav.animate({opacity:0},200);
			sliderLinks.animate({opacity:0},200);
		}else{
			// IE 7 & 8 use this:
			bgBottom.css({
							"background-image" : "url(\""+sliderNavA.eq(index).data("img")+"\")",
							"background-position" : "50% 0px",
							"height" : h
						});
			// opacity change renders poorly - so not used here:
			sliderNav.css("visibility", "hidden");
			sliderLinks.css("visibility", "hidden");
		}
		
		if (sliderIndex.id < index) {
			bgBottom.css("left", w);
			bgTop.animate({left: -w}, {duration:700, easing:"easeOutQuart", complete:sliderSwap, useTranslate3d:true});
			bgBottom.animate({left:0}, {duration:700, easing:"easeOutQuart", useTranslate3d:true});
		} else {
			bgBottom.css("left", -w);
			bgTop.animate({left: w}, {duration:700, easing:"easeOutQuart", complete:sliderSwap, useTranslate3d:true});
			bgBottom.animate({left:0}, {duration:700, easing:"easeOutQuart", useTranslate3d:true});
		}
		
		var data = sliderNavA.eq(index).data("id");
		sliderIndex = { 
						id:sliderNavA.eq(index).data("id"),
						img:sliderNavA.eq(index).data("img"),
						link:sliderNavA.eq(index).data("href")
						};
		showHideFakeDropdown(sliderIndex['id']);
		
	}
}

function sliderSwap() {
	about_book.attr("href", sliderIndex.link);
	
	if(ieVersion > 8 || ieVersion == -1){
		// All modern browsers use this:
		sliderNav.animate({opacity:1},{complete:swapHelper, duration:400});
		sliderLinks.animate({opacity:1},200);
	} else {
		// opacity change renders poorly - so not used here:
		sliderNav.css("visibility", "visible");
		sliderLinks.css("visibility", "visible");
		swapHelper();
	}
	
	if (bgTop == bg1) {
		bgTop = bg2;
		bgBottom = bg1;
	} else {
		bgTop = bg1;
		bgBottom = bg2;
	}
	
	var w = bgContainer.width();
	bgBottom.css("left", w);

}

function swapHelper() {
	animating = false;
}


// Returns the version of Internet Explorer or a -1 (indicating the use of another browser).
function getInternetExplorerVersion(){
	var rv = -1; // Return value assumes failure.
	if(navigator.appName == 'Microsoft Internet Explorer') {
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null) {
		  rv = parseFloat( RegExp.$1 );
		}
	}
	ieVersion = rv;
}


// Shows/Hides the fake dropdowns
function showHideFakeDropdown(id) {
	if(id == 1) {
		$('#retailer_fake_1').css('display', 'block');
		$('#retailer_fake_0').css('display', 'none');

		$('#pre_order').fadeIn();
		$('#buy_now').fadeOut();
	} else {
		$('#retailer_fake_0').css('display', 'block');
		$('#retailer_fake_1').css('display', 'none');
		
		$('#buy_now').fadeIn();
		$('#pre_order').fadeOut();
	}
}
