jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

$(document).ready(function() {

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

	//GB Sanity Splash. if mask is clicked
	$('#mask').click(function () {
		$(this).hide();
		$('.window').hide();

	});	
	
	$.preloadImages(basePath+"images/global/space.gif",
					basePath+"images/global/search_adv_bg.gif",
					basePath+"images/global/nav_bg_black.gif");


	textReplacement($('#ctl00_newsletter_email_addr'));
	textReplacement($('#ctl00_newsletter_first_name'));

    //Resolve page reloading on IE6 – removes the nice looking drop down list for Categories and formats
    if (typeof document.body.style.maxHeight != "undefined") {
	    $("#ctl00_SearchCtrl_CategoriesDdl").selectbox();
	    $("#ctl00_SearchCtrl_FormatsDdl").selectbox();
	    $("#ctl00_SearchCtrl_SearchByDdl").selectbox();
    };
    
	$("#bestSellers .musicBS .expandPane").slideToggle();
	$("#bestSellers .musicBS strong").click(function()
		{
			$("#bestSellers .musicBS .expandPane").slideToggle();
			var src = $("#bestSellers .musicBS img").attr("src");
			if (src.indexOf("drop.gif") > 0)
			    $("#bestSellers .musicBS img").attr("src", src.replace("drop.gif","drop_on.gif"));
	        else
			    $("#bestSellers .musicBS img").attr("src", src.replace("drop_on.gif","drop.gif"));
			return false;
		}
	);
	$("#bestSellers .gamesBS .expandPane").slideToggle();
	$("#bestSellers .gamesBS strong").click(function()
		{
			$("#bestSellers .gamesBS .expandPane").slideToggle();
			var src = $("#bestSellers .gamesBS img").attr("src");
			if (src.indexOf("drop.gif") > 0)
			    $("#bestSellers .gamesBS img").attr("src", src.replace("drop.gif","drop_on.gif"));
	        else
			    $("#bestSellers .gamesBS img").attr("src", src.replace("drop_on.gif","drop.gif"));
			return false;
		}
	);
	$("#bestSellers .blurayBS .expandPane").slideToggle();
	$("#bestSellers .blurayBS strong").click(function()
		{
			$("#bestSellers .blurayBS .expandPane").slideToggle();
			var src = $("#bestSellers .blurayBS img").attr("src");
			if (src.indexOf("drop.gif") > 0)
			    $("#bestSellers .blurayBS img").attr("src", src.replace("drop.gif","drop_on.gif"));
	        else
			    $("#bestSellers .blurayBS img").attr("src", src.replace("drop_on.gif","drop.gif"));
			return false;
		}
	);
	$("#bestSellers .moviesBS .expandPane").slideToggle();
	$("#bestSellers .moviesBS strong").click(function()
		{
			$("#bestSellers .moviesBS .expandPane").slideToggle();
			var src = $("#bestSellers .moviesBS img").attr("src");
			if (src.indexOf("drop.gif") > 0)
			    $("#bestSellers .moviesBS img").attr("src", src.replace("drop.gif","drop_on.gif"));
	        else
			    $("#bestSellers .moviesBS img").attr("src", src.replace("drop_on.gif","drop.gif"));
			return false;
		}
	);
	$("#bestSellers .tvBS .expandPane").slideToggle();
	$("#bestSellers .tvBS strong").click(function()
		{
			$("#bestSellers .tvBS .expandPane").slideToggle();
			var src = $("#bestSellers .tvBS img").attr("src");
			if (src.indexOf("drop.gif") > 0)
			    $("#bestSellers .tvBS img").attr("src", src.replace("drop.gif","drop_on.gif"));
	        else
			    $("#bestSellers .tvBS img").attr("src", src.replace("drop_on.gif","drop.gif"));
			return false;
		}
	);
    
	// FAQs - show first panel
	$("#faqs").find(".first").children(".expandPane").slideToggle();
	
	// FAQ controller
	$("a.faqController").click(function()
		{
			imgsrc = $(this).children("img").attr("src");
			
			var matches = imgsrc.indexOf("_minus");
			if (matches!=-1) {
				var imgsrcON = basePath+"images/content/faq_plus.png"; // toggle controller image
				$(this).children("img").attr("src", imgsrcON);
			}
			else{
				var imgsrcON= basePath+"images/content/faq_minus.png"; // toggle controller image
				$(this).children("img").attr("src", imgsrcON);
			}
			$(this).parent().parent().children(".expandPane").slideToggle();
			return false;
		}
	);
	
	$(".toggleSearch").click(function()
		{
			
			if($("#searchAdvFooter").css("display")!="none"){
				$("#searchAdvFooter").slideUp("slow");
				$("#searchAdvCats").slideUp("slow");
			}
			else{
				$("#searchAdvFooter").slideDown("fast");
				$("#searchAdvCats").slideDown("slow");

			}

			imgsrc = $(".toggleTop").css("background-image");
			var matches = imgsrc.indexOf("_down");
			if (matches!=-1) {
				var imgsrcON = "url("+basePath+"images/global/grey_arrow.gif)"; // strip off extension
				$(".toggleTop").css("background-image",imgsrcON);
			}
			else{
				var imgsrcON = "url("+basePath+"images/global/grey_arrow_down.gif)"; // strip off extension
				$(".toggleTop").css("background-image",imgsrcON);
			}		


			return false;
		}
	);


    $(".navOn").mouseover(function(){
		var bodyID = $("body").attr("id")
		var navClass = $(this).attr("class")
		var matches = navClass.indexOf(bodyID);
		if(matches==-1){
			if($(this).hasClass("home")){
				$(this).css("background-image","url("+basePath+"images/global/nav_bg_black_start.png)");
			}else{
				$(this).css("background-image","url("+basePath+"images/global/nav_bg_black.gif)");
			}
		}

    }).mouseout(function(){

		var bodyID = $("body").attr("id")
		var navClass = $(this).attr("class")
		var matches = navClass.indexOf(bodyID);
		if(matches==-1){
			if($(this).hasClass("home")){
				$(this).css("background-image","url("+basePath+"images/global/nav_bg_red_start.png)");
			}else{
				$(this).css("background-image","url("+basePath+"images/global/nav_bg_red.gif)");
			}
		}

    });
    PageWireUp();
});

function EndRequestHandler(sender, args) {
    PageWireUp();
}

var rightTimeOut;
var leftTimeOut;

function PageWireUp()
{
    // Get the affiliate
    var qs = new Querystring();
    if (qs.get("affiliate") != null)
    {
        var affiliateId = qs.get("affiliate");
        if (affiliateId != null)
            Sanity.Public.Services.UserCart.SetAffiliate(affiliateId, setAffiliate_success, setAffiliate_failed);
    }

    Sanity.Public.Services.UserCart.ShowCart(addToCart_success, addToCart_failed);

    $(".addCartBtn").click(function() {
        var prodId = $(this).parent("div").find("input").attr("value");

        $(this).html("IN BASKET");
         var canAddItem = Sanity.Public.Services.UserCart.AddToCart(prodId, addToCart_success, addToCart_failed);
        
        return false;
    });
    $(".promoCategory").click(function() {
        var catId = $(this).parent("li").find("input").attr("value");
        Sanity.Public.Services.HomeRecommended.GetRecommended(catId, getHomPromoChart_success, getHomPromoChart_failed);
        return false;
    });
    stateChanged();
	$(".releaseScrollLeftUp").click(function()
		{
			scrollPaneVertLeft("up",$(this));
			return false;
		}
	);
	$(".releaseScrollLeftDown").click(function()
		{
			scrollPaneVertLeft("down",$(this));
			return false;
		}
	);
	$(".releaseScrollUp").click(function()
		{
			scrollPaneVert("up",$(this));
			return false;
		}
	);
	$(".releaseScrollDown").click(function()
		{
			scrollPaneVert("down",$(this));
			return false;
		}
	);
	$("#scrollLeft").click(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			scrollPaneHorz("left");
			return false;
		}
	);
	$("#scrollRight").click(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			scrollPaneHorz("right");
			return false;
		}
	);
	$("#scrollLeft").mouseover(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			scrollPaneHorz("left");
  		    autoScrollLeft();
			return false;
		}
	);
	$("#scrollRight").mouseover(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			scrollPaneHorz("right");
  		    autoScrollRight();
			return false;
		}
	);
	$("#scrollLeft").mouseout(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			return false;
		}
	);
	$("#scrollRight").mouseout(function()
		{
		    window.clearTimeout(rightTimeOut);
			window.clearTimeout(leftTimeOut);
			return false;
		}
	);
	var prevPromoOn = $("ul#promoMenu li a:first");
	$(prevPromoOn).toggleClass("selected");
	$("ul#promoMenu li a").click(function()
		{
			if(prevPromoOn != $(this)){
				if(prevPromoOn){
					$(prevPromoOn).toggleClass("selected");
				}
				prevPromoOn = $(this);
				$(this).toggleClass("selected");
			}
			return false;
		}
	);
	
}

var scrollPos = 0;
var scrollDistance = 800;
function scrollPaneVertLeft(direction, objToScroll){
	var releaseScrollerObj = objToScroll.parent().parent().find(".releaseScroller");
	var scrollPaneHeightObj = objToScroll.parent().parent().find(".scrollPaneVertLeft");

	var scrollDistance = releaseScrollerObj.height();
	var scrollPaneHeight = scrollPaneHeightObj.height()

	if(direction=="down"){

		var scrollPaneTop = scrollPaneHeightObj.css("marginTop").substr(0,scrollPaneHeightObj.css("marginTop").length-2);
		var releasePaneTop = releaseScrollerObj.css("marginTop").substr(0,releaseScrollerObj.css("marginTop").length-2);

		var position = scrollPaneTop - releasePaneTop;

		nextScrollPos = parseInt(position - scrollDistance);

		if(nextScrollPos > (0 - scrollPaneHeight)){

			scrollPos=nextScrollPos;
			scrollPaneHeightObj.animate( { marginTop: nextScrollPos+'px'}, 1000 );
		}
	}

	if(direction=="up"){

		var scrollPaneTop = scrollPaneHeightObj.css("marginTop").substr(0,scrollPaneHeightObj.css("marginTop").length-2);
		var releasePaneTop = releaseScrollerObj.css("marginTop").substr(0,releaseScrollerObj.css("marginTop").length-2);

		var position = scrollPaneTop - releasePaneTop;

		nextScrollPos = parseInt(position + scrollDistance);
		if(nextScrollPos <= 0){
			scrollPos=nextScrollPos;

			scrollPaneHeightObj.animate( { marginTop : nextScrollPos+'px'}, 1000 );
		}
	}
}

var scrollPos = 0;
var scrollDistance = 800;
function scrollPaneVert(direction, objToScroll){
	var releaseScrollerObj = objToScroll.parent().parent().find(".releaseScroller");
	var scrollPaneHeightObj = objToScroll.parent().parent().find(".scrollPaneVert");

	var scrollDistance = releaseScrollerObj.height();
	var scrollPaneHeight = scrollPaneHeightObj.height()

	if(direction=="down"){

		var scrollPaneTop = scrollPaneHeightObj.css("marginTop").substr(0,scrollPaneHeightObj.css("marginTop").length-2);
		var releasePaneTop = releaseScrollerObj.css("marginTop").substr(0,releaseScrollerObj.css("marginTop").length-2);

		var position = scrollPaneTop - releasePaneTop;

		nextScrollPos = parseInt(position - scrollDistance);

		if(nextScrollPos > (0 - scrollPaneHeight)){

			scrollPos=nextScrollPos;
			scrollPaneHeightObj.animate( { marginTop: nextScrollPos+'px'}, 1000 );
		}
	}

	if(direction=="up"){

		var scrollPaneTop = scrollPaneHeightObj.css("marginTop").substr(0,scrollPaneHeightObj.css("marginTop").length-2);
		var releasePaneTop = releaseScrollerObj.css("marginTop").substr(0,releaseScrollerObj.css("marginTop").length-2);

		var position = scrollPaneTop - releasePaneTop;

		nextScrollPos = parseInt(position + scrollDistance);
		if(nextScrollPos <= 0){
			scrollPos=nextScrollPos;

			scrollPaneHeightObj.animate( { marginTop : nextScrollPos+'px'}, 1000 );
		}
	}
}

var scrollDistanceHorz = 342;
var scrollPosHorz = 0;
function scrollPaneHorz(direction){
	var scrollDistance = $("#promoScroller").width();
	var scrollPaneWidth = $("ul#scrollPaneHorz li").siblings().length * ($("ul#scrollPaneHorz li").width() );// + $("ul#scrollPaneHorz li").css("margin-left") + $("ul#scrollPaneHorz li").css("margin-right"));

	if(direction=="right"){
		nextScrollPosHorz = scrollPosHorz - scrollDistanceHorz;
		if(nextScrollPosHorz  > (0 - scrollPaneWidth)){
			scrollPosHorz=nextScrollPosHorz;
			$("#scrollPaneHorz").animate( { marginLeft: nextScrollPosHorz+'px'}, 1000 );
		}
	}

	if(direction=="left"){
		nextScrollPosHorz = scrollPosHorz + scrollDistanceHorz;
		if(nextScrollPosHorz <= 0){
			scrollPosHorz=nextScrollPosHorz;

			$("#scrollPaneHorz").animate( { marginLeft : nextScrollPosHorz+'px'}, 1000 );
		}
	}
}

function autoScrollRight()
{
	rightTimeOut = window.setTimeout(function() {
		scrollPaneHorz("right");
		autoScrollRight();
    }, 2000);
}
function autoScrollLeft()
{
	leftTimeOut = window.setTimeout(function() {
		scrollPaneHorz("left");
		autoScrollLeft();
    }, 2000);
}

function autoScrollPane()
{
	var scrollDistance = $("#promoScroller").width();
	var scrollPaneWidth = $("ul#scrollPaneHorz li").siblings().length * ($("ul#scrollPaneHorz li").width() );// + $("ul#scrollPaneHorz li").css("margin-left") + $("ul#scrollPaneHorz li").css("margin-right"));

	nextScrollPosHorz = scrollPosHorz - scrollDistanceHorz;
	if(nextScrollPosHorz  > (0 - scrollPaneWidth)){
		scrollPosHorz=nextScrollPosHorz;
		$("#scrollPaneHorz").animate( { marginLeft: nextScrollPosHorz+'px'}, 1000 );
	}
    else
    {
        scrollPosHorz=0;
    	$("#scrollPaneHorz").animate( { marginLeft: '0px'}, 400 );
    }
	window.setTimeout(function() {
	    autoScrollPane();
    }, 4000);
}

function popupFAQ(faqTag)
 {
	    myFAQ = window.open(basePath+"PopUpHelp?tag="+faqTag,"myFAQ","width=420,height=300,scrollbars=yes,resizeable=no,menubar=no,statusbar=no");
	    myFAQ.focus();
}

function popupS2F(prodId)
 {
	    myS2F = window.open(basePath+"SendToFriend.aspx?id="+prodId,"myS2F","width=550,height=400,scrollbars=no,resizeable=no,menubar=no,statusbar=no");
	    myS2F.focus();
	    return false;
}

function popupForgotPass()
 {
	    fPass = window.open(basePath+"ForgotPassword.aspx","forgotPass","width=550,height=250,scrollbars=no,resizeable=no,menubar=no,statusbar=no");
	    fPass.focus();
	    return false;
}

function textReplacement(input){
	var originalvalue = input.val(); 
 
	input.focus( function(){ 
		if( $.trim(input.val()) == originalvalue ){ input.val(''); } 
	});
 
	input.blur( function(){
		if( $.trim(input.val()) == '' ){ input.val(originalvalue); }
	});
}

function submitLocator()
{
    var locatorButton = document.getElementById('ctl00_BodyCph_PostBtn');
    locatorButton.click();
}  

function locatorStateChanged(state)
{
    var stateDdl = document.getElementById('ctl00_BodyCph_StatesDdl');
    var hiddenInp = document.getElementById('ctl00_BodyCph_StateHf');
    hiddenInp.value = state;
    
    for (i=0; i < stateDdl.options.length; i++)
    {
        if (stateDdl.options[i].value.toLowerCase() == state.toLowerCase())
            stateDdl.selectedIndex = i;
    }
    submitLocator();
}

function locatorDropDownChanged(dropdown)
{
    var state = dropdown.value;
    locatorStateChanged(state);
}

/* List views */
function setSortBy(sortBy)
{
    var hiddenInp = document.getElementById('ctl00_BodyCph_StateHf');
}

/* Handling button defaults for enter key press */
function SubmitButtonOnEnterKey(event, buttonid) {
    var ENTER_KEY = 13;
    var button = document.getElementById(buttonid);
    if (typeof button == 'object') {
        if (navigator.appName.indexOf("Netscape") > (-1)) {
            if (event.keyCode == ENTER_KEY) {
                button.click();
                return false;
            }
        }
        if (navigator.appName.indexOf("Microsoft Internet Explorer") > (-1)) {
            if (event.keyCode == ENTER_KEY) {
                button.click();
                return false;
            }
        }
    }
    return true;
}

function SubmitLinkOnEnterKey(event, buttonid) {
    var ENTER_KEY = 13;
    var button = document.getElementById(buttonid);
    if (typeof button == 'object') {
        if (navigator.appName.indexOf("Netscape") > (-1)) {
            if (event.keyCode == ENTER_KEY) {
                __doPostBack(buttonid,'');
                return false;
            }
        }
        if (navigator.appName.indexOf("Microsoft Internet Explorer") > (-1)) {
            if (event.keyCode == ENTER_KEY) {
                __doPostBack(buttonid,'');
                return false;
            }
        }
    }
    return true;
}

    function SetSingleRadioButton(nameregex, current) {
        re = new RegExp(nameregex);
        for (i = 0; i < document.forms[0].elements.length; i++) {
            elm = document.forms[0].elements[i]
            if (elm.type == 'radio') {
                if (re.test(elm.id)) {
                    elm.checked = false;
                }
            }
        }
        current.checked = true;
    }
	
/* Query string parsing */

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}

/* Social Tagging icons in footer */

	var docTitle = document.title;  
	var pageURL = document.URL;
	
	var socialLinks = ["http://www.facebook.com/sharer.php?u=" + pageURL + "&t=" + docTitle];  
	socialLinks.push("http://digg.com/submit?phase=2&url=" + pageURL + "&title=" + docTitle);
	socialLinks.push("http://www.myspace.com/Modules/PostTo/Pages/?u=" + pageURL + "&t=" + docTitle);
	socialLinks.push("http://twitter.com/home?status=Currently browsing " + docTitle + " at " + pageURL);