$(document).ready(function() {

	$("a.fancy").fancybox({
		'titleShow': false
	});	
	$(".inline-fancy").fancybox({
		'titlePosition': 'inside',
		'transition': 'fade'
	});
	
	$("#newsletter_message").hide();
	//$("#links").hide();
	$("#winkelwagen_process_register")[0].reset();
	// initiate tabs
	$("#tabs").tabs();
	$("#contact-tabs").tabs();
	
	if($("#winkelwagen_code").val() != "")
	{
		$("#winkelwagen_code_span_input").hide();
	}
	else {
		$("#winkelwagen_code_span_txt").hide();
	}
	
	/**
	* Mijn account update data
	*/	
	$("#mijnaccount_userdata").bind("submit", function() {
	    $.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/updateAccount.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		$(this).showError(data2.title, data2.msg, new Array(), 'account');
	        	}
	        	else {
	        		// add message
	        		$(this).showError(data2.title,data2.text,data2.errors, 'account');
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Post contact formulier
	*/
	$("#contact_formulier").bind("submit", function() {
		$.ajax({
		    type        : "POST",
		    cache       : false,
		    url         : "/contact.php",
		    data        : $(this).serializeArray(),
		    success: function(data) {
				var data2 = json_parse(data);
				
				if(data2.msg != undefined)
				{
					// Succes !
					// empty form
					$("#contact_formulier")[0].reset();
					$(this).showError(data2.title, data2.msg, new Array(), 'contact');
				}
				else {
					// Error !
					$(this).showError(data2.title,data2.text,new Array(), 'contact');
				}
			}
		});
		
		return false;
	});
	
	/**
	* Post wachtwoord vergeten formulier
	*/
	$("#password_form").bind("submit", function() {
		$.ajax({
		    type        : "POST",
		    cache       : false,
		    url         : "/wachtwoordvergeten.php",
		    data        : $(this).serializeArray(),
		    success: function(data) {
				var data2 = json_parse(data);
				
				if(data2.msg != undefined)
				{
					// Succes !
					// empty form
					$("#password_form")[0].reset();
					$(this).showError(data2.title, data2.msg, new Array(), 'wwvergeten');
				}
				else {
					// Error !
					$(this).showError(data2.title,data2.text,new Array(), 'wwvergeten');
				}
			}
		});
		
		return false;
	});
	
	/**
	* Change password
	*/
	$("#mijnaccount_password").bind("submit", function() {
		$.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/wachtwoordwijzigen.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		$(this).showError(data2.title, data2.msg, new Array(), 'account');
	        		$("#mijnaccount_password")[0].reset();
	        	}
	        	else {
	        		// add message
	        		$(this).showError(data2.title,data2.text,data2.errors, 'account');
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Newsletter signup
	*/	
	$("#newsletter_form").bind("submit", function() {
		$("#newsletter_message").hideMessage();
	    $.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/nieuwsbrief.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		// SUCCES
	        		//$.fancybox(data2.msg);
	        		$(this).showSucces(data2.title, data2.msg);
	        		$("#newsletter_form")[0].reset();
	        	}
	        	else {
	        		// ERROR
	        		// add message
	        		//$("#newsletter_message").showMessage(data2.error);
	        		$(this).showError(data2.title,data2.text,data2.errors, 'newsletter');
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Account signup
	*/
	$("#register_form").bind("submit", function() {
		if($("#register_vw").attr('checked') == false)
		{
			// voorwaarden niet aangevinkt
			$(this).showError('Algemene voorwaarden','Om een account te openen, is het verplicht om akkoord te gaan met onze voorwaarden.', new Array(), 'register');
		}
		else {
			$.ajax({
			    type        : "POST",
			    cache       : false,
			    url         : "/register.php",
			    data        : $(this).serializeArray(),
			    success: function(data) {
			    	//alert(data);
			    	var data2 = json_parse(data);
			    	
			    	if(data2.msg != undefined) {
			    		$("#register_form")[0].reset();
			    		$(this).showSucces(data2.title, data2.msg);
			    	}
			    	else {
			    		// add error
			    		$(this).showError(data2.title,data2.text,data2.errors, 'register');
			    	}
			    }
			});
		}
		//var a = new Array('a','b','c','d','e','f','g','h','i');
		//$(this).showError('title','text',a, 'register');
		return false;
	});
	
	/**
	* Account login
	*/	
	$("#login_form, #login_form2").bind("submit", function() {
	    $.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/login.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		$("#login_form")[0].reset();
	        		$("#login_form2")[0].reset();
	        		$("#btn_login").hide();
	        		$("#btn_mijnaccount").show();
	        		
	        		// show succes message
	        		$(this).showSucces(data2.title, data2.msg);
	        		
	        		// show mijn account data
	        		$("#account_loggedout").hide();
	        		$("#account_loggedin").show();
	        		$("#acc-name").val(data2.User.fullname);
	        		$("#acc-street").val(data2.User.address);
	        		$("#acc-zip").val(data2.User.zipcode);
	        		$("#acc-city").val(data2.User.city);
	        		$("#acc-email").val(data2.User.emailaddress);
	        		$("#acc-country").val(data2.User.country);
	        	}
	        	else {
	        		// add error
	        		$(this).showError(data2.title,data2.text,data2.errors, 'login');
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Winkelwagen update aantal
	*/
	$("#winkelwagen_update").bind("submit", function() {
		// hide button
		$("#winkelwagen_update_btn").hide();
						
		$.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/updateCart.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		// succes
	        		$("#winkelwagen_price").html("&euro; " + data2.price);
	        		$("#winkelwagen_shipping").html("&euro; " + data2.shipping);
	        		$("#winkelwagen_total_price").html("&euro; " + data2.total_price);
	        		$("#winkelwagen_discount").html("&euro; " + data2.discount);
	        		$("#winkelwagen_aantal").val(data2.aantal);
	        		
	        		// set kortingscode
	        		if(data2.code != "")
	        		{
	        			var html = "<strong>" + data2.code + "</strong> <a href=\"#winkelwagen\" id=\"winkelwagen_discount_remove\">[weghalen]</a>";
	        			$("#winkelwagen_code_span_txt").html(html);
	        			$("#winkelwagen_code_span_txt").show();
	        			$("#winkelwagen_code_span_input").hide();
	        			$("#winkelwagen_code_comment").hide();
	        			
	        			/**
	        			* Click function
	        			*/
	        			$("#winkelwagen_discount_remove").bind("click", function() {
	        				$(this).removeCode();
	        				return false;
	        			});
	        		}
	        		else {
	        			$("#winkelwagen_code").val("");
	        		}
	        		
	        		// check op product wijziging
	        		if($("#winkelwagen_item").html() != data2.product)
	        		{
	        			// product wijziging
	        			$("#winkelwagen_item").html(data2.product);
	        			$(this).showError('Opgelet, de actie is veranderd','Er is inmiddels een nieuwe actie actief. Deze actie is in uw winkelwagen gestopt. Klik op de link hieronder om terug te gaan naar uw winkelwagen.',new Array(), 'winkelwagen');
	        		}
	        			
	        		// show button
	        		$("#winkelwagen_update_btn").show();
	        	}
	        	else {
	        		// reset aantal
	        		$("#winkelwagen_aantal").val(data2.aantal);
	        		// add error
	        		$(this).showError(data2.title,data2.text,data2.errors, 'winkelwagen');
	        		// show button
	        		$("#winkelwagen_update_btn").show();
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Check Signup input data function
	*/
	checkSignupInput = function(onCallBack) {
		if(step2_option == 1 && $("#vw").attr('checked') == false)
		{
			// voorwaarden niet aangevinkt
			$(this).showError('Algemene voorwaarden','Om een account te openen, is het verplicht om akkoord te gaan met onze voorwaarden.', new Array(), 'register');
		}
		else {			
			$.ajax({
		        type        : "POST",
		        cache       : false,
		        url         : "/register.php",
		        data        : $("#winkelwagen_process_register").serializeArray(),
		        success: function(data) {
		        	//alert('succes');
		        	var data2 = json_parse(data);
		        	
		        	if(data2.msg != undefined) {
		        		// succes
		        		onCallBack(1, data2);
		        	}
		        	else {
		        		// add error
		        		$(this).showError(data2.title,data2.text,data2.errors, 'winkelwagen');
		        		onCallBack(0, data2);
		        	}
		        }
		    });
		}
	
	    return false;
	}
	
	/**
	* Check stock function
	*/
	checkStock = function(onCallBack) {		
		$.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/checkStock.php",
	        data        : "",
	        success: function(data) {
	        	//alert('succes');
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		// succes, check of product juist is
	        		if($("#winkelwagen_item").html() != data2.product)
	        		{
	        			// nieuw product
	        			$("#winkelwagen_item").html(data2.product);
	        			onCallBack(2);
	        		}
	        		else {
	        			onCallBack(1);
	        		}
	        	}
	        	else {
	        		// add error
	        		$(this).showError(data2.title,data2.text,data2.errors, 'winkelwagen');
	        		onCallBack(0);
	        	}
	        }
	    });
	
	    return false;
	}
	
	/**
	* Check login input data
	*/
	$("#winkelwagen_process_login").bind("submit", function() {
	//checkLoginInput = function(onCallBack) {
		$.ajax({
	        type        : "POST",
	        cache       : false,
	        url         : "/login.php",
	        data        : $(this).serializeArray(),
	        success: function(data) {
	        	var data2 = json_parse(data);
	        	
	        	if(data2.msg != undefined) {
	        		// hide login velden
	        		$("#winkelwagen_process_login")[0].reset();
	        		$("#winkelwagen_login").hide(500);
	        		// show signup velden
	        		$("#winkelwagen_register").show(500);
	        		$("#pass").hide();
	        		$("#pass_txt").hide();
	        		$("#pass2").hide();
	        		$("#pass2_txt").hide();
	        		$("#winkelwagen_register_2_login").hide();
	        		$("#winkelwagen_register_newsletter").hide();
	        		$("#winkelwagen_register_vw").hide();
	        		$("#register_act").val(0);
	        		// vul signup velden in
	        		$("#name").val(data2.User.fullname);
	        		$("#address").val(data2.User.address);
	        		$("#zip").val(data2.User.zipcode);
	        		$("#city").val(data2.User.city);
	        		$("#country").val(data2.User.country);
	        		$("#email").val(data2.User.emailaddress);
	        		$("#sex_" + data2.User.sex).attr("checked", true);
	        	}
	        	else {
	        		// add error
	        		$("#winkelwagen_process_login")[0].reset();
	        		//alert('error');
	        		$(this).showError(data2.title,data2.text,data2.errors, 'winkelwagen');
	        	}
	        }
	    });
	
	    return false;
	});
	
	/**
	* Add winkelwagen discount remove listeren
	*/
	$("#winkelwagen_discount_remove").bind("click", function() {
		$(this).removeCode();
		return false;
	});
	
	/**
	* Remove kortingscode
	*/
	jQuery.fn.removeCode = function()
	{
		$("#winkelwagen_code").val("");
		$("#winkelwagen_code_span_txt").html("");
		$("#winkelwagen_code_span_input").show();
		$("#winkelwagen_code_comment").show();
		
		$("#winkelwagen_update").trigger('submit');
	}
	
	/**
	* Show popup-good
	*/
	jQuery.fn.showSucces = function(title, text)
	{
		//$.fancybox.close();
		$("#popup-good").find("h2").get(0).innerHTML = title;
		$("#popup-good").find("p").get(0).innerHTML = text;
		//$("#popup_good").trigger('click');
		$("#popup-good").fancybox({autoDimensions: true, autoScale: true}).trigger('click');
	}
	
	/**
	* Show popup-error
	*/
	jQuery.fn.showError = function(title, text, errors, backlink)
	{
		// create text
		var text2 = text;
		
		if(errors.length > 0)
		{
			text2 += "<br /><ul>";
			
			for(var i = 0; i < errors.length; i++) text2 += "<li>" + errors[i] + "</li>";
			
			text2 += "</ul>";
		}
		
		if(backlink.length > 0)
		{
			text2 += "<br /><a href=\"#" + backlink + "\" id=\"error_backlink\">Ga terug</a>";
		}
		
		$("#popup-error").find("h2").get(0).innerHTML = title;
		$("#popup-error").find("p").get(0).innerHTML = text2;
		$("#popup-error").fancybox({autoDimensions: true, autoScale: true}).trigger('click');
		
		if(backlink.length > 0)
		{
			// activate fancybox
			$("#error_backlink").fancybox({
				'titlePosition': 'inside',
				'transition': 'fade'
			});
		}
	}
	
	jQuery.fn.showMessage = function(text)
	{
		$(this).find("span").get(1).innerHTML = text;
		$(this).show();
	}
	
	jQuery.fn.hideMessage = function()
	{
		$(this).hide();
	}
	
	$(".iframe-fancy").fancybox({
		'width'				: '80%',
		'height'			: '80%',
		'autoScale'			: false,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
	
	$("#header ul li a, #product p a").blend();
	
	$('#counter').countDown({
		targetDate: {
			//'day':	14,
			//'month':	5,
			//'year': 	2010,
			'hour': 	24,
			'min': 		0,
			'sec': 		0
		}
	});
	
	/**
	* Winkelwagen acties in stap 2
	*/
	$("#winkelwagen_register").hide();
	$("#winkelwagen_login").hide();
	var step2_option = 0;
	
	$("#winkelwagen_register_btn, #winkelwagen_login_2_register").bind("click", function() {
		step2_option = 1;
		$("#winkelwagen_register").show(500);
		$("#winkelwagen_login").hide();
		$("#winkelwagen_stap2_buttons").hide(500);
	});
	$("#winkelwagen_login_btn, #winkelwagen_register_2_login").bind("click", function() {
		step2_option = 2;
		$("#winkelwagen_login").show(500);
		$("#winkelwagen_register").hide();
		$("#winkelwagen_stap2_buttons").hide(500);
	});
	
	$("#winkelwagen_order_btn").bind("click", function() {
		
		if($("#winkelwagen_vw").attr('checked') == false)
		{
			// voorwaarden niet aangevinkt
			$(this).showError('Algemene voorwaarden','Om een bestelling te kunnen plaatsen, is het verplicht om akkoord te gaan met onze voorwaarden.', new Array(), 'winkelwagen');
		}
		//else if($("input[name=payment_method]:checked").val() == undefined)
		//{
			// geen betalingsmethode gekozen
		//	$(this).showError('Betalingsmethode','Om een bestelling te kunnen plaatsen, dient u wel een betalingsmethode te kiezen.', new Array(), 'winkelwagen');
		//}
		else {
			// proces doorlopen
			// Checken of actie niet is veranderd en check stock
			checkStock(returnCheckStockFinishOrder);
		}
	});
	
	/**
	* Return van check stock functie bij finialisen van de order
	*/
	function returnCheckStockFinishOrder(succes)
	{
		if(succes == 0)
		{
			// niet goed, geen stock
			ShoppingcartToStepOne();
		}
		else if(succes == 1)
		{
			// Alles goed, order inserten
			$.ajax({
			    type        : "POST",
			    cache       : false,
			    data		: {voorwaarden:$("#winkelwagen_vw").attr('checked'), payment_method:$("input[name=payment_method]:checked").val(), nieuwsbrief:$("#winkelwagen_nb").attr('checked')},
			    url         : "/insertOrder.php",
			    success: function(data) {
			    	var data2 = json_parse(data);
			    	
			    	if(data2.msg != undefined) {
			    		// Order geplaatst, doorsturen naar URL
			    		$(this).showError(data2.msg,data2.text,new Array(), 'winkelwagen');
			    		
			    		// terug naar step 1
			    		ShoppingcartToStepOne();
			    		
			    		if(data2.url != undefined)
			    		{
			    			window.location = data2.url;
			    		}
			    	}
			    	else {
			    		// add error
			    		$("#winkelwagen_process_login")[0].reset();
			    		//alert('error');
			    		$(this).showError(data2.title,data2.text,data2.errors, 'winkelwagen');
			    	}
			    }
			});
		}
		else if(succes == 2)
		{
			// product wijziging
			// terug naar step 1
			ShoppingcartToStepOne();
			
			$(this).showError('Opgelet, de actie is veranderd','Er is inmiddels een nieuwe actie actief. Deze actie is in uw winkelwagen gestopt. Klik op de link hieronder om terug te gaan naar uw winkelwagen.',new Array(), 'winkelwagen');
		}
	}
	
	function ShoppingcartToStepOne() {
		// terug naar step 1
		$("#step2").hide();
		$("#step0").show();
		$("#steps li").removeClass("current");
		$("#stepDesc0").addClass("current");
		
		$("#winkelwagen_vw").attr('checked', false);
	}
	
	/**
	* Shoppingcart steps
	*/
	
	var gotoStep = 0;
	var stepDirection = "";
	var performCheck = true;
	
	// function dostep(To,From)
	// array-values 0-[...]
	function doStep(i,j)
	{
		if(i > j)
		{
			stepDirection = "Next";
			gotoStep = (i-1);
		}
		else {
			stepDirection = "Prev";
			gotoStep = (i+1);
		}
		
		if(performCheck == true)
		{
			if(i == 1)
			{
				/**
				* Naar step 2: Check stock
				*/
				checkStock(ReturnCheckStock);
				return false;
			}
			else if(i == 2 && j == 1)
			{
				/**
				* Van step 2 naar step 3
				* Controleer form input
				*/
				if(step2_option == 0)
				{
					// nog niet gekozen, aanmelden of inloggen
					$(this).showError('Maak eerst een keuze','Maak eerst uw keuze of u een nieuw account wilt aanmaken of wilt inloggen op uw account.',new Array(), 'winkelwagen');
					return false;
				}
				else {
					checkSignupInput(ReturnSignupInput);
					return false;
				}
			}
		}
		else {
			performCheck = true;
		}
		//return false;
	}
	
	function ReturnCheckStock(succes)
	{
		if(succes == 1)
		{
			// volgende stap
			performCheck = false;
			$("#step" + gotoStep + stepDirection).trigger('click');
		}
		else if(succes == 2)
		{
			// product wijziging
			$(this).showError('Opgelet, de actie is veranderd','Er is inmiddels een nieuwe actie actief. Deze actie is in uw winkelwagen gestopt. Klik op de link hieronder om terug te gaan naar uw winkelwagen.',new Array(), 'winkelwagen');
		}
	}
	
	function ReturnSignupInput(succes, data)
	{
		if(succes == 1)
		{
			// Form juist ingevuld
			// remove pass en pass2
			$("#pass").hide();
			$("#pass_txt").hide();
			$("#pass2").hide();
			$("#pass2_txt").hide();
			$("#winkelwagen_register_2_login").hide();
			$("#register_act").val(0);
			$("#winkelwagen_bevestiging").html(data.html);
			$("#name_value").html(data.User.fullname);
			$("#address_value").html(data.User.address);
			$("#zipcode_value").html(data.User.zipcode);
			$("#city_value").html(data.User.city);
			$("#email_value").html(data.User.emailaddress);
			
			if(data.User.country == 'nl')
			{
				$("#country_value").html("Nederland");
			}
			else if(data.User.country == 'be')
			{
				$("#country_value").html("Belgi&euml;");
			}
			else {
				$("#country_value").html(data.User.country);
			}
			
			// nu checken op stock
			checkStock(ReturnCheckStock);
		}
	}
	
	$("#SignupForm").formToWizard({ submitButton: 'SaveAccount', doStep: doStep })
});
