/*productsOn = new Image();
productsOn.src = "/img/nav-products-on.gif";
productsOff = new Image();
productsOff.src = "/img/nav-products.gif";

pressOn = new Image();
pressOn.src = "/img/nav-press-on.gif";
pressOff = new Image();
pressOff.src = "/img/nav-press.gif";

aboutOn = new Image();
aboutOn.src = "/img/nav-about-us-on.gif";
aboutOff = new Image();
aboutOff.src = "/img/nav-about-us.gif";

stockistsOn = new Image();
stockistsOn.src = "/img/nav-stockists-on.gif";
stockistsOff = new Image();
stockistsOff.src = "/img/nav-stockists.gif";

helpOn = new Image();
helpOn.src = "/img/nav-help-on.gif";
helpOff = new Image();
helpOff.src = "/img/nav-help.gif";


function imgOn(n){
	if(document.images[n]){document.images[n].src = eval(n+"On").src}
}

function imgOff(n){
	if(document.images[n]){document.images[n].src = eval(n+"Off").src}
}

FC.vars = {
	selectors : {
		PROD_IMG : '.prodImage',
		PROD_LGE : '.prodImageLge',
		ZOOM_IMG : '#large img',
		HOME : '#home',
		INTRO : '#productlist1',
		BACKGROUND : '#container .background'
	},
	rotationImages : {
		HOME : ['../img/backgrounds/2010/landing1.jpg', '../img/backgrounds/2010/landing2.jpg', '../img/backgrounds/2010/landing3.jpg'],
		COLLECTION : ['../img/backgrounds/2010/collection1.jpg', '../img/backgrounds/2010/collection2.jpg', '../img/backgrounds/2010/collection3.jpg', '../img/backgrounds/2010/collection4.jpg', '../img/backgrounds/2010/collection5.jpg']
	},
	variables : {
		ROTATION : 0
	}
};

FC.rotateImg = function(__images){
	
	FC.vars.variables.ROTATION++;
	var int = $(__images).length - 1;
	if(FC.vars.variables.ROTATION > int){FC.vars.variables.ROTATION = 0}
	
	$(FC.vars.selectors.BACKGROUND).animate({"opacity":0},2000,function(){
		$(this).css('background-image', 'url(' + __images[FC.vars.variables.ROTATION] + ')')
		$(this).animate({"opacity":1},1000);
	});
}

$(document).ready(function(){
	if($(FC.vars.selectors.PROD_IMG).length){FC.imgSwap()};
	if($(FC.vars.selectors.HOME).length){
		setInterval("FC.rotateImg(FC.vars.rotationImages.HOME)",8000)
	};
	if($(FC.vars.selectors.INTRO).length){
		setInterval("FC.rotateImg(FC.vars.rotationImages.COLLECTION)",8000)
	};

	// image zoomer
	$(".all #wrap").anythingZoomer({
       expansionSize: 30,
       speedMultiplier: 1.4
    });
	
	// product text overlay
	if($(".all .productTextArea").length>0){
	
		var __moreInfo = $("div.productTextArea");
		__moreInfo.animate({"opacity":"0"},0);
		//__moreInfo.append("<a href='#' id='textClose'>Close</a>");

		
		var __more = $("ul.more a");
		var __close = $("a#textClose");
		
		__more.toggle(
					  
			function(){
				__moreInfo.animate({"opacity":"1"},500);
				__more.addClass("up");
			},
			function(){
				__moreInfo.animate({"opacity":"0"},500);
				__more.removeClass("up");
			}
			
		);
	}
});
*/


// CONSTANTS
FC.vars = {
	selectors : {
		DISCOUNT : "input.discount",
		PROD_IMG : "img#mainImg",
		PROD_THUMBS : "div.productdetailright ol li a",
		UPDATE_CART : "input.update-cart",
		PROMO		: "#promo-page",
		PROMO_ITEMS	: ".promo-list li",
		FAVOURITES 	: ".favourites li",
		SIGNUP_FORM: ".signup-form"

	}
}


// Alerts user when boot size hasn't been selected
function chkForm(){
	if (document.getElementById("bootSize").selectedIndex==0){
		alert("Please enter your boot size");
		return false;
	}
}

// General popup window - takes url as argument
function openDetail(url){
	window.open(url,'details','width=370px,height=420px,resizable=yes');
}

// Boot size guide
function openSizeGuide(url,name,features){
	window.open(url,name,features);
}

//Sign up form validation
FC.SignUpValidation = function ()
{ // check all and make nicer after
    var signUpForm = $(FC.vars.selectors.SIGNUP_FORM),
    button = signUpForm.find(".bigbutton"),
	firstName = signUpForm.find("input#Firstname"),
	surName = signUpForm.find("input#Surname"),
	email = signUpForm.find("input#email"),
	terms = signUpForm.find("input#tnc"),
    errorBox = signUpForm.find(".message-box");
	
    button.bind("click", function (e)
    {
		//remove any error classes already on fields
		var labels = signUpForm.find("label");
		labels.removeClass("error-field");
		var fields = signUpForm.find("input");
		fields.removeClass("error-field");
		
		
		//add keyboard events
        var isValid = validate();
        console.log(isValid);

        //if isValid = true, force form submission else
        if (isValid == false)
        {
            //show box
            errorBox.show();
            //remove invalid field styling
        }
        else
        {
            errorBox.hide();
        }

        return isValid;
        e.preventDefault();

    });



    function validate()
    {
        isValid = true;
        terms.each(function ()
        {
            var $$ = $(this);
            if ($$.attr("checked"))
            {

            }
            else
            {
                isValid = false;
                throwError($$, "required");

            }
        });
        firstName.each(function ()
        {
            var $$ = $(this);

            //check required
            //check valid
            if ($$.attr("value") !== "")
            {

            }
            else
            {
                isValid = false;
                throwError($$, "required");
            }

        });
        surName.each(function ()
        {
            var $$ = $(this);

            //check required
            //check valid
            if ($$.attr("value") !== "")
            {

            }
            else
            {
                isValid = false;
                throwError($$, "required");
            }

        });
		
        email.each(function ()
        {
            var $$ = $(this);

            //Reg Ex
			var validEmail = new RegExp(/^\S+@\S+\.\S+$/);
			
            if ($$.attr("value") !== "")
            {
				var testEmail = validEmail.test($$.attr("value"));
				if(testEmail==false){
					isValid = false;
                	throwError($$, "required");
				}
				
				
            }
            else
            {
                isValid = false;
                throwError($$, "required");
            }

        });
		
		
		
        return isValid;
        //loop through fields, check all are filled in


        //if isValid = false, throwError(fieldname, validationType)
    }

    function throwError(field, validationType)
    {
		
        var label = signUpForm.find("label[for='" + field.attr("id") + "']");
        //add errors
        //add classes to invalid field and label 
       
        label.addClass("error-field");
        field.addClass("error-field");

    }
};
FC.getParam = function (name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    //alert(results[1]);
    if (results == null)
        return "";
    else
        return results[1];

};
// Product detail gallery
FC.imgSwap = function(){
	$(FC.vars.selectors.PROD_IMG).each(function(){
		var __img;
		var __imgRep = $(FC.vars.selectors.PROD_LGE).attr('src');
		var __imgZoom;
		
		$(this).bind('click', function(){ // used to be focus/mouseover
			$(FC.vars.selectors.PROD_IMG).removeClass('sel');
			$(this).addClass('sel');
				__img = $(this).attr('href');

			if ($.browser.msie){
				$(FC.vars.selectors.PROD_LGE).attr('src', __img);
			} else {
				$(FC.vars.selectors.PROD_LGE).stop();
				$(FC.vars.selectors.PROD_LGE).animate({"opacity":0},400,function(){
					$(this).attr('src', __img);
					$(this).animate({"opacity":1},400)
				});
			}
			//create the zoom path by adding a -Z to the regular image path
			var temp = new Array();
			temp = __img.split('.jpg');
			__imgZoom = temp[0] + '-Z.jpg';
			$(FC.vars.selectors.ZOOM_IMG).attr('src', __imgZoom);

		})/*.bind('blur mouseout', function(){
			if ($.browser.msie){
				$(FC.vars.selectors.PROD_LGE).attr('src', __imgRep);
			} else {
				$(FC.vars.selectors.PROD_LGE).stop();
				$(FC.vars.selectors.PROD_LGE).animate({"opacity":0},400,function(){
					$(FC.vars.selectors.PROD_LGE).attr('src', __imgRep);
					$(this).animate({"opacity":1},400)
				});
			}										 
		})*/.bind('click', function(){
			return false;
		})
	});
}


// Update page if discount code is entered and field is blurred
FC.discountUpdate = function() {
	var SEL = FC.vars.selectors,
		$discount = $(SEL.DISCOUNT),
		$update = $(SEL.UPDATE_CART);
	
	$discount.bind('blur', function() {
		$update.trigger('click');
	});
}


// DOM Ready:
$(document).ready(function () {
    var SEL = FC.vars.selectors;

    if ($(SEL.DISCOUNT).length != -1 && $(SEL.UPDATE_CART).length != -1) {
        FC.discountUpdate();
    }

    // Google Maps
    if (typeof (initialize) != "undefined") {
        initialize();
    }

    // September 2011 Refresh
    // New product view image viewer
    if ($(SEL.PROD_IMG).length > 0) {

        // Find the thumbnails
        var thumbs = $(SEL.PROD_THUMBS);

        // Add selected class to first one
        $(thumbs[0]).addClass("selected");

        // Add click event to all thumbs
        thumbs.bind("click", function () {
            // Set main image to the same source as the link attr on thumbnail
            $(SEL.PROD_IMG).attr("src", $(this).attr("href"));

            // Remove all selected classes from thumbnails
            thumbs.removeClass("selected");

            // Add selected class to clicked thumbnail
            $(this).addClass("selected");

            return false;
        });
    }

    if ($(SEL.PROMO).length > 0) {

        var items = $(SEL.PROMO_ITEMS);
        var title = $('#promoright .favorite-item');

        items.bind("click", function () {

            var newTitle = $(this).find('span').html();

            items.addClass("clicked");
            items.removeClass("selected");

            $(this).addClass("selected");
            title.addClass("updated").html('<span>Your favorite is</span> the ' + newTitle)

            return false;
        });

    }

    //Canadian promo - favourite picker
    if ($(SEL.FAVOURITES).length > 0) {

        var favs = $(SEL.FAVOURITES);
        var productParam = FC.getParam("productid");
        
        //Update form action with the querystring parameter
        var fo = $("form#comp");
        fo.attr("action", fo.attr("action") + "?productid=" + productParam);

        var favLinks = favs.find("a");
        var formHidden = $("input#favourite"); 
        function setSelected(item) {
            var $$ = item.parents("li");
            favs.removeClass("selected");
            $$.addClass("selected");
            item.attr("checked", "checked");
            formHidden.attr("value", $$.attr("rel"));
        }
        if (productParam.length > 0) {
            var selectedProduct = $("#" + productParam);
            setSelected(selectedProduct);
        }
        favs.find("input").bind("change", function () {
            setSelected($(this));
            return false;
        });
       
    }
    if ($(SEL.SIGNUP_FORM).length > 0) {

        FC.SignUpValidation();
    }

});
