$(document).ready(function() {

	$(".fancybox").fancybox();
	
	$("#showTerms").fancybox({'autoDimensions': false, 'width': '60%', 'type': 'ajax', 'ajax': {cache: false}});
	
	$("input[placeholder]").placeHeld();
	
	$('#imageSlider') .cycle({ 
		fx:     'fade', 
		speed:  1000, 
		timeout: 4000, 
		pager:  '#counter' 
	});
	
	$("#activity").change(function() { 
		if(this.value == "other") {
			$("#other").show();
			$("#other").addClass("required");
		}
		else {
			$("#other").hide();
			$("#other").removeClass("required");
		}
	});
		
	$("#copyInvoiceAddress").click(function() {
		$("#sstreet").val($("#istreet").val());
		$("#spostalcode").val($("#ipostalcode").val());
		$("#scity").val($("#icity").val());
	});
	
	$.validator.messages.required = "*";
	
	$.validator.addMethod(
		"validemail",
		function(value, element) {
			return checkemail(value);
		},
		"*"
	);
	
	$('#loginform').submit(function() {
		return validateAndSubmitForm('loginform');
	});
	
	$('#registerform').submit(function() {
		$("#xxx").val("abc123");
		return validateAndSubmitForm('registerform');
	});
	
	$('#newsletterform').submit(function() {
		$("#xxx").val("abc123");
		return validateAndSubmitForm('newsletterform');
	});
	
	$('#contactform').submit(function() {
		$("#xxx").val("abc123");
		return validateAndSubmitForm('contactform');
	});
	
	$('#basketstep2form').submit(function() {
		if($("#terms:checked").val() != "Y") {
			$(".check").addClass("error");
		}
		return validateAndSubmitForm('basketstep2form');
	});
	
	$("#linkLanguageChoise").click(function() {
		$("#languageChoise").show();
		return false;
	});
	
	$("#closeLanguageChoise").click(function() {
		$("#languageChoise").hide();
		return false;
	});
	
	$("#linkgo").click(function() {
		var this_country = $("#langcountry").val();
		var this_language = $("#langlanguage").val();
		if (this_country != "" && this_language != "") {
			document.location = "/" + this_country + "/" + this_language;
		}
		return false;
	});
	
	$("#linkgoHome").click(function() {
		var this_country = $("#langcountryHome").val();
		var this_language = $("#langlanguage").val();
		if (this_country != "" && this_language != "") {
			document.location = "/" + this_country + "/" + this_language;
		}
		return false;
	});
		
	$("#langcountry").change(function() {
		$('#langlanguage').find('option').remove();
		$('#langlanguage').hide();
		var this_country = this.value;
		if(this_country == "be") {
			$('#langlanguage').append($("<option></option>").attr("value","").text("")); 
			$('#langlanguage').append($("<option></option>").attr("value","nl").text(lbl_alg_l_nl)); 
			$('#langlanguage').append($("<option></option>").attr("value","fr").text(lbl_alg_l_fr)); 
			$('#langlanguage').show();
		}
		else if(this_country == "nl") {
			$('#langlanguage').append($("<option></option>").attr("value","nl").text(lbl_alg_l_nl)); 
		}
		else if(this_country == "fr") {
			$('#langlanguage').append($("<option></option>").attr("value","fr").text(lbl_alg_l_fr)); 
		}
		else if(this_country == "uk") {
			$('#langlanguage').append($("<option></option>").attr("value","en").text(lbl_alg_l_en)); 
		}
		else if(this_country == "de") {
			$('#langlanguage').append($("<option></option>").attr("value","de").text(lbl_alg_l_de)); 
		}
		else if(this_country == "it") {
			$('#langlanguage').append($("<option></option>").attr("value","it").text(lbl_alg_l_it)); 
		}
		else if(this_country == "es") {
			$('#langlanguage').append($("<option></option>").attr("value","es").text(lbl_alg_l_es)); 
		}
		else if(this_country == "oc") {
			$('#langlanguage').append($("<option></option>").attr("value","").text(" ")); 
			$('#langlanguage').append($("<option></option>").attr("value","en").text(lbl_alg_l_en)); 
			$('#langlanguage').append($("<option></option>").attr("value","fr").text(lbl_alg_l_fr)); 
			$('#langlanguage').append($("<option></option>").attr("value","es").text(lbl_alg_l_es)); 
			$('#langlanguage').show();
		}				
		
	});
	
	$("#langcountryHome").change(function() {
		$('#langlanguage').find('option').remove();
		$('#langlanguageDiv').hide();
		var this_country = this.value;
		if(this_country == "be") {
			$('#langlanguage').append($("<option></option>").attr("value","").text("")); 
			$('#langlanguage').append($("<option></option>").attr("value","nl").text("Nederlands")); 
			$('#langlanguage').append($("<option></option>").attr("value","fr").text("Français")); 
			$('#langlanguageDiv').show();
		}
		else if(this_country == "nl") {
			$('#langlanguage').append($("<option></option>").attr("value","nl").text("Nederlands")); 
		}
		else if(this_country == "fr") {
			$('#langlanguage').append($("<option></option>").attr("value","fr").text("Français")); 
		}
		else if(this_country == "uk") {
			$('#langlanguage').append($("<option></option>").attr("value","en").text("English")); 
		}
		else if(this_country == "de") {
			$('#langlanguage').append($("<option></option>").attr("value","de").text("Deutsch")); 
		}
		else if(this_country == "it") {
			$('#langlanguage').append($("<option></option>").attr("value","it").text("Italiano")); 
		}
		else if(this_country == "es") {
			$('#langlanguage').append($("<option></option>").attr("value","es").text("Español")); 
		}
		else if(this_country == "oc") {
			$('#langlanguage').append($("<option></option>").attr("value","").text(" ")); 
			$('#langlanguage').append($("<option></option>").attr("value","en").text("English")); 
			$('#langlanguage').append($("<option></option>").attr("value","fr").text("Français")); 
			$('#langlanguage').append($("<option></option>").attr("value","es").text("Español")); 
			$('#langlanguageDiv').show();
		}				
		
	});
	
	$(".quantityLink").click(function(){
		var this_id;
		var type;
		var curr_val;
		if (this.id.indexOf("addprod") == -1) {
			this_id = this.id.replace("subtractprod","");
			type = "subtract";
		}
		else {
			this_id = this.id.replace("addprod","");
			type = "add";
		}
		var min_order = parseInt($("#minorder"+this_id).val());
		curr_val = parseInt($("#quantity"+this_id).val());
		if (isNaN(curr_val)) { curr_val = 0; }
		if (type == "subtract") { curr_val =  curr_val - min_order; } else { curr_val = curr_val + min_order; }
		if (type == "add" && curr_val < min_order) { curr_val = min_order; }
		if (type == "subtract" && curr_val < min_order) { curr_val = 0; }
		$("#quantity"+this_id).val(curr_val);
		showExtraInfo($("#quantitydiv"+this_id).val());
		$("#addedToBasket"+$("#quantitydiv"+this_id).val()).hide();
		$("#addedToBasketZero"+$("#quantitydiv"+this_id).val()).hide();
		return false;
	});
	
	$(".quantityQuickLink").click(function(){
		var this_id;
		var type;
		var curr_val;
		if (this.id.indexOf("addprod") == -1) {
			this_id = this.id.replace("subtractprod","");
			type = "subtract";
		}
		else {
			this_id = this.id.replace("addprod","");
			type = "add";
		}
		var min_order = parseInt($("#minorder"+this_id).val());
		curr_val = parseInt($("#quantity"+this_id).val());
		if (isNaN(curr_val)) { curr_val = 0; }
		if (type == "subtract") { curr_val =  curr_val - min_order; } else { curr_val = curr_val + min_order; }
		if (type == "add" && curr_val < min_order) { curr_val = min_order; }
		if (type == "subtract" && curr_val < min_order) { curr_val = 0; }
		var price = parseFloat($("#price"+this_id).val());
		price = price * curr_val;
		$("#totprice"+this_id).html(price.toFixed(2));
		$("#quantity"+this_id).val(curr_val);
		$("#addedToBasketTop").hide();
		$("#addedToBasketBottom").hide();
		$("#addedToBasketZeroTop").hide();
		$("#addedToBasketZeroBottom").hide();
		return false;
	});
	
	$(".quantityBasketLink").click(function() {
		var this_id;
		var type;
		var curr_val;
		
		if (this.id.indexOf("addprod") == -1) {
			this_id = this.id.replace("subtractprod","");
			type = "subtract";
		}
		else {
			this_id = this.id.replace("addprod","");
			type = "add";
		}
		var min_order = parseInt($("#bMinOrder"+this_id).val());
		curr_val = parseInt($("#bQuantity"+this_id).val());
		if (isNaN(curr_val)) { curr_val = 0; }
		if (type == "subtract") { curr_val =  curr_val - min_order; } else { curr_val = curr_val + min_order; }
		if (type == "add" && curr_val < min_order) { curr_val = min_order; }
		if (type == "subtract" && curr_val < min_order) { curr_val = 0; }
		$("#bQuantity"+this_id).val(curr_val);
		$.ajax({
		  url: "/ajax/updateBasket.dhtml?pItem=" + $("#bReference"+this_id).val() + ",pQuantity=" + curr_val + ",doVat=" + $("#doVat").val() + ",reduction_country=" + $("#reduction_country").val() + ",price_country=" + $("#price_country").val() + ",language=" + $("#langlanguage").val(),
			  success: function(data) {
					$("#basketLink").html(data);
					updateBasketData();
			  }
		});
		return false;
	});
	
	$(".extraInfoLink").click(function() { 
		var this_id = this.id.replace("extraInfoLink","");
		showExtraInfo(this_id);
		return false;
	});
	
	$(".close").click(function() {
		var this_id = this.id.replace("close","");
		$("#extraInfo"+this_id).hide();
		$("#productShadow"+this_id).css("z-index",1);
		return false;
	});
	
	$(".addToBasket").click(function() {
		var this_id = this.id.replace("addToBasket","");
		var counter = 0;
		$("#productform"+ this_id + " :input:text").each(function(index) {
			var obj = $(this);
			var this_prod_id = obj.attr("id").replace("quantity","");
			var quantity = obj.val();
			if (quantity > 0) {
				counter++;
				obj.val(0);
				$.ajax({
				  url: "/ajax/addToBasket.dhtml?pItem=" + $("#reference"+this_prod_id).val() + ",pQuantity=" + quantity + ",doVat=" + $("#doVat").val() + ",reduction_country=" + $("#reduction_country").val() + ",price_country=" + $("#price_country").val() + ",language=" + $("#langlanguage").val(),
					  success: function(data) {
							$("#basketLink").html(data);
					  }
				});
			}	
		});	
		if (counter > 0) {
			$("#addedToBasket"+this_id).show();
			$("#addedToBasketZero"+this_id).hide();
		}	
		else {  
			$("#addedToBasket"+this_id).hide();
			$("#addedToBasketZero"+this_id).show();
		}
		return false;
	});
	
	$(".addToBasketQuick").click(function() {
		var counter = 0;
		$("#quickorderform :input:text").each(function(index) {
			var obj = $(this);
			var this_prod_id = obj.attr("id").replace("quantity","");
			var quantity = obj.val();
			if (quantity > 0) {
				counter++;
				obj.val(0);
				$("#totprice"+this_prod_id).html("0.00");
				$.ajax({
				  url: "/ajax/addToBasket.dhtml?pItem=" + $("#reference"+this_prod_id).val() + ",pQuantity=" + quantity + ",doVat=" + $("#doVat").val() + ",reduction_country=" + $("#reduction_country").val() + ",price_country=" + $("#price_country").val() + ",language=" + $("#langlanguage").val(),
					  success: function(data) {
							$("#basketLink").html(data);
					  }
				});
			}	
		});	
		if (counter > 0) {
			$("#addedToBasketTop").show();
			$("#addedToBasketBottom").show();
			$("#addedToBasketZeroTop").hide();
			$("#addedToBasketZeroBottom").hide();
		}
		else {  
			$("#addedToBasketTop").hide();
			$("#addedToBasketBottom").hide();
			$("#addedToBasketZeroTop").show();
			$("#addedToBasketZeroBottom").show();
		}
	});

	// calculate the height for the product div's
	$('#productView .shadow').height(getBiggestHeight('#productView .shadow'));
	$('#applicationView .shadow').height(getBiggestHeight('#applicationView .shadow'));

	$('#basketLink').html($('#current_basket_info').html());

		
});

function updateBasketData() {
	var total_excl = 0;
	var total_vat = 0;
	var total_incl = 0;
	$("#basketform :input:text").each(function(index) {
		if (this.id != "promocode") {
			var this_id = this.id.replace("bQuantity","");
			var this_price = $("#bPrice"+this_id).val();
			var this_price_old = $("#bPriceOld"+this_id).val();
			var this_vat = $("#bVat"+this_id).val();
			var this_quantity = this.value;
			this_price = this_price * this_quantity;
			this_price = this_price.toFixed(2);
			this_price_old = this_price_old * this_quantity;
			this_price_old = this_price_old.toFixed(2);
			total_excl = total_excl + parseFloat(this_price);
			var this_vat = this_price * this_vat / 100;
			this_vat = this_vat.toFixed(2);
			total_vat = total_vat + parseFloat(this_vat);
			total_incl = total_incl + parseFloat(this_vat) + parseFloat(this_price);
			$("#spanPrice"+this_id).html(this_price);
			$("#spanPriceOld"+this_id).html(this_price_old);
		}
	});	
	$("#totalExclSpan").html(total_excl.toFixed(2));
	$("#totalVatSpan").html(total_vat.toFixed(2));
	$("#totalInclSpan").html(total_incl.toFixed(2));
}

function showExtraInfo(this_id) { 
	$("#productShadow1").css("z-index",1);
	$("#productShadow2").css("z-index",1);
	$("#productShadow3").css("z-index",1);
	$("#productShadow4").css("z-index",1);
	if (this_id != 1) { $("#extraInfo1").hide(); }
	if (this_id != 2) { $("#extraInfo2").hide(); }
	if (this_id != 3) { $("#extraInfo3").hide(); }
	if (this_id != 4) { $("#extraInfo4").hide(); }
	$("#productShadow"+this_id).css("z-index",100);
	$("#extraInfo"+this_id).css("min-height",parseInt(document.getElementById("productShadow"+this_id).clientHeight)-52);
	if ($("#extraInfo"+this_id).css("display") == "none") {
		if ($("#productShadow"+this_id).hasClass("last")) {
			$("#extraInfo"+this_id).show("slide",{direction:"right"});
		}
		else {
			$("#extraInfo"+this_id).show("slide",{direction:"left"});
		}	
	}	
}

function checkemail(str){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str)) return true; else return false;
}//checkemail

function validateAndSubmitForm(theForm) {
	$('#' + theForm).validate();
	return $('#' + theForm).valid();
}

function getBiggestHeight(selector) {
	var biggestHeight = 0;
	$(selector).each(function(i) {
		if ($(this).height() > biggestHeight) {
			biggestHeight = $(this).height();
		}
	});
	return biggestHeight;
}
