jQuery.extend(jQuery.validator.messages, {
        required: "Dit is een verplicht veld.",
        remote: "Dit e-mailadres is al bekend bij ons.",
        email: "Vul hier een geldig email adres in.",
        url: "Vul hier een geldige URL in.",
        date: "Vul hier een geldige datum in.",
        dateISO: "Vul hier een geldige datum in (ISO).",
        number: "Vul hier een geldig nummer in.",
        digits: "Vul hier alleen nummers in.",
        creditcard: "Vul hier een geldig credit card nummer in.",
        equalTo: "Vul hier dezelfde waarde in.",
        accept: "Vul hier een waarde in met een geldige extensie.",
        maxlength: jQuery.format("Vul hier maximaal {0} tekens in."),
        minlength: jQuery.format("Vul hier minimaal {0} tekens in."),
        rangelength: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
        range: jQuery.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
        max: jQuery.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
        min: jQuery.format("Vul hier een waarde in groter dan of gelijk aan {0}.")
});

function reloadAll() {
	location.href = location.href;
}

jQuery(window).load(function() {
	setSiteHeight();
	
	jQuery('img.order_button').hover(function() {
		if (this.src.match(/cr/)) {
		    jQuery(this).attr('src','/img/button_order_cr_hover.gif');
		} else {
	   		jQuery(this).attr('src','/img/button_order_hover.gif');
	   	}
	}, function() {
		if (this.src.match(/cr/)) { 
		    jQuery(this).attr('src','/img/button_order_cr.gif');
		} else {
	   		jQuery(this).attr('src','/img/button_order.gif');
	   	}
	});	
	jQuery('div.copyright').show();
	
	try {
		var maxHeight = 0;
		var counter = 1;
	   jQuery('div.product_cat_wrapper').each(function() {
	   		if (jQuery(this).height() > maxHeight)
	   			maxHeight = jQuery(this).height();
	   		jQuery(this).hover(function() {
				jQuery(this).addClass('product_cat_wrapper_hover');   
			}, function() {
			   jQuery(this).removeClass('product_cat_wrapper_hover')
			});
			jQuery(this).click(function() {
				location.href = jQuery('>h2 > a', jQuery(this)).attr('href');
			});
			if (counter % 3 == 0) {
				jQuery('div.product_cat_wrapper').each(function(loopInner) {
					if (loopInner >= counter-3 && loopInner <= counter)
						jQuery(this).css('height', maxHeight + 'px');
				});
				maxHeight = 0;
			}
			counter++;
	   });
	   if (jQuery('div.product_cat_wrapper').size() < 3) {
	    	jQuery('div.product_cat_wrapper').css('height', maxHeight + 'px');
	   }
	} catch (error) {
		// prevent any message
	}
});

function setSiteHeight() {
	var maxHeight = 0;
	if (jQuery('div.content_wrapper div.lft').height() > maxHeight)
		maxHeight = jQuery('div.content_wrapper div.lft').height();
	if (jQuery('div.content_wrapper div.middle').height() > maxHeight)
		maxHeight = jQuery('div.content_wrapper div.middle').height();
	if (jQuery('div.content_wrapper div.rgt').height() > maxHeight)
		maxHeight = jQuery('div.content_wrapper div.rgt').height();
	jQuery('div.content_wrapper div.lft').css({height: maxHeight+50 + 'px'});
	jQuery('div.content_wrapper div.rgt').css({height: maxHeight +50+ 'px'});
	jQuery('div.content_wrapper div.middle').css({height: maxHeight+50 + 'px'});
}

jQuery(document).ready(function(){ 
    jQuery(document).pngFix(); 
    jQuery('div#top_menu_div_id ul li').hover(function() {
	   	jQuery(this).addClass('hover');
	}, function() {
	    jQuery(this).removeClass('hover');
	});
	jQuery('ul.banner_slide').innerfade({ speed: 'slow', timeout: 6000, type: 'sequence', containerheight: '224px'});
	
	jQuery("#comment_form").validate({
	 	submitHandler: function(form) {
	 		jQuery.post('/ajax_server.php?app=frontPage&action=comment',
		  	{ 
		  		data : jQuery(form).serialize()
			},
		  	function(data){
		  		if (data) {
			   		var parent = jQuery('form#comment_form').parent();
			   		jQuery(parent).html('<p>Uw reactie is succesvol geplaatst.</p>');
			   		return false;
			   	};
			});
	   }
	}); 
	jQuery('input#js_controle').val('validated'); 
	jQuery("a.fancybox").fancybox();
	jQuery("a.fancybox_iframe_login").each(function() {
		jQuery(this).attr('href', jQuery(this).attr('href') + '?ajax_call=true');
	});
	jQuery("a.fancybox_iframe_login").fancybox({
	 	'width'				: 500,
		'height'			: 250,
		'autoDimensions'	:false,
		'titlePosition'	: 'inside',
		'onStart' : function() {
			jQuery('embed, object, select').css('visibility', 'hidden');
		},
		'onClosed' : function() {
		 	jQuery('embed, object, select').css('visibility', 'visible');
		}
	});
}); 

var Webshop = {

	setSendcosts	: function(state)
	{
		jQuery('div.ajax_loader').show();
		if (jQuery('input[name=send_other_address]:checked').length > 0) {
		    var countryId = jQuery('select[name=delivery_country_id]').val();
		} else {
			var countryId = jQuery('select[name=country_id]').val();
		}
		jQuery.get('/winkelwagen.html?ajax_call=true&action=setSendcosts&countryId='+countryId+'&state='+state,
		  	function(data){
		  		if (data) {
		  			var objectData = eval('(' + data + ')');
		  			jQuery('span#total_amount').text(objectData.total);
	  				if (state == 1) {
						jQuery('td#send_costs').text(objectData.send_costs);
					} else {
					    jQuery('td#send_costs').text('-');
					}	  
					jQuery('div.ajax_loader').hide();
		  		} 
		  	}
		);
	},
	
	calculate	: function(selectObj)
	{
		var quantity = jQuery(selectObj).val();
		var productId = jQuery(selectObj).attr('name').replace(/amount\[(.+)\]/,'$1');
		jQuery('div.ajax_loader').show();
		jQuery.get('/winkelwagen.html?ajax_call=true&action=calculate&productId='+productId+'&quantity=' + quantity,
		  	function(data){
		  		if (data) {
		  			var objectData = eval('(' + data + ')');
		  			jQuery('td#total_ex_send_costs_price span').text(objectData.total_ex_sendcosts);
		  			jQuery('td#sendcosts_price span').text(objectData.sendcosts);
		  			jQuery('td#total_price span').text(objectData.total);
		  			jQuery('span', jQuery(selectObj).parent().next().next()).text(objectData.subtotal);
		  			jQuery('div.ajax_loader').hide();
		  		} 
		  	}
		);
	},
	
	validateForm		: function() {
		jQuery("form#webshop_form").validate({
			invalidHandler: function(e, validator) {
				var errors = validator.numberOfInvalids();
				if (errors) {
					jQuery("div.webshop_order_error_wrapper span").html("Niet alle velden zijn (juist) ingevuld.");
					jQuery("div.webshop_order_error_wrapper").show();
				} else {
					jQuery("div.webshop_order_error_wrapper").hide();
				}
				setTimeout(function() { Webshop.setWizardHeight(); }, 10);
			},
			onkeyup: false,
			submitHandler: function() {
	       		// save order
	       		jQuery("div.columns_wrap_body").fadeTo("slow", 0.25);
				jQuery.fancybox.showActivity();
				document.forms[0].submit();
				
			}
		});
	},
	
	createExtraAddress	: function(obj) {
		jQuery('div#delivery_form_fields').toggle();
		var deliveryFields = ['delivery_company','delivery_lastname','delivery_street','delivery_zipcode','delivery_town','delivery_phone'];  
		if (obj.checked) {
			jQuery('input[name=delivery_lastname], input[name=delivery_street], input[name=delivery_zipcode], input[name=delivery_town], input[name=delivery_phone]').addClass('required');
			jQuery(deliveryFields).each(function(it, el) {
				jQuery('td#'+el+'_field').text(jQuery('input[name='+el+']').val());	
			});
		} else {
		    jQuery('input[name=delivery_lastname], input[name=delivery_street], input[name=delivery_zipcode], input[name=delivery_town], input[name=delivery_phone]').removeClass('required').removeClass('error');
		    jQuery(deliveryFields).each(function(it, el) {
				jQuery('td#'+el+'_field').text(jQuery('input[name='+el.replace('delivery_','')+']').val());	
			});
		}
		this.setWizardHeight();
		this.validateForm();
	},
	
	enablePasswordFields	: function(obj) {
		jQuery('tr.create_account_fields').toggle(); 
		this.setWizardHeight();
		if (obj.checked) {
			jQuery('form#webshop_form input[name=password], form#webshop_form input[name=confirm_password]').addClass('required');
		} else {
		    jQuery('form#webshop_form input[name=password], form#webshop_form input[name=confirm_password]').removeClass('required').removeClass('error');
		    jQuery("div.webshop_order_error_wrapper").hide();
		}
		this.validateForm();
	},
	
	
	setWizardHeight			: function() {
		jQuery('div.column_lft').css('height','auto');
		var maxHeight = 0;
	  	if (jQuery('div.columns_wrap_body div.column_lft').height() > maxHeight)
	  		maxHeight = jQuery('div.columns_wrap_body div.column_lft').height();
		if (jQuery('div.columns_wrap_body div.column_middle').height() > maxHeight)
	  		maxHeight = jQuery('div.columns_wrap_body div.column_middle').height();
		if (jQuery('div.columns_wrap_body div.column_rgt').height() > maxHeight)
	  		maxHeight = jQuery('div.columns_wrap_body div.column_rgt').height();
	  	maxHeight += 50;
		jQuery('div.columns_wrap_body div.column_lft, div.columns_wrap_body div.column_middle, div.columns_wrap_body div.column_rgt').css('height', maxHeight+'px'); 
		jQuery('div.content_wrapper div.middle').css('height', 'auto');
	},
	
	setInputEvents		: function() {
		jQuery('form#webshop_form input[type=text]').keyup(function() {
			jQuery('td#'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());
			if (jQuery('input[name=send_other_address]:checked').length < 1) {
				/* populate the delivery fields as well */
				jQuery('td#delivery_'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());	
			}  
		}).blur(function() {
			jQuery('td#'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());
			if (jQuery('input[name=send_other_address]:checked').length < 1) {
				/* populate the delivery fields as well */
				jQuery('td#delivery_'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());	
			}  
		}).change(function() {
			jQuery('td#'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());
			if (jQuery('input[name=send_other_address]:checked').length < 1) {
				/* populate the delivery fields as well */
				jQuery('td#delivery_'+jQuery(this).attr('name')+'_field').text(jQuery(this).val());	
			}  
		});
		jQuery('select[name=country_id], select[name=delivery_country_id]').change(function() {
			if (jQuery('input[name=sendmethod]:checked').val() == 'bezorgen') {
				Webshop.setSendcosts(1);
				return false;				
			}
		});
		jQuery('input[name=bank]').addClass('required');
		jQuery('input[name=paymethod]').click(function() {
			if (jQuery(this).val() == 'ideal') {
			 	jQuery('input[name=bank]').addClass('required');
			} else {
			    jQuery('input[name=bank]').removeClass('required');
			}
			this.validateForm();
		});    
	}
}
