Cufon.replace('nav li a', { 
	hover: true
});
Cufon.replace(
	'#filter .entry label, h2.register, #description strong.description, .product div.title, strong.cufon-title, .product .product-title, .totalprice .pink, h2.inloggen, #cart-content h2, h2.betalen, h2.uwgegevens, h2.verzendgegevens, h2.uwbetaalmethode'
);
Cufon.replace(
		'h1, #breadcrumb', {
			textShadow: '1px 1px 3px #d1d1d1'
		}
	);


function clearInput() {
	$('.fade').focus(function() {
	   $(this).select();
	   $(this).prev().fadeTo(150, 0);
	   $(this).keydown(function() {
		   $(this).css('background-repeat', 'repeat');                  
	   });
	});
	$('.fade').blur(function() {
	   if($(this).val() == '' ) {
		   $(this).css('background-repeat', 'no-repeat');
		   $(this).prev().fadeTo(150, 1);
	   }
	});
	$('.fade').each(function(){
	   if($(this).val() != '') {
		   $(this).css('background-repeat', 'repeat');
	   };
	});
}

function initFilter(pageName, searchTerm)
{
	$('a.opnieuw-zoeken').click(function() {
		
		var dataStr = 'filter=1&brand='+escape($('#brand').val().replace(/\_/gi, ' '))+'&minPrice='+$('#prijs-van').val()+'&maxPrice='+$('#prijs-tot').val()+'&pageName='+escape(pageName);
		
		if(searchTerm != null) {
			dataStr += '&search='+searchTerm;
		}
		else {
			dataStr += '&cat='+escape($('#cat').val());
		}
		
	    $.ajax({
	        url: 'salekey/products',
	        type: 'POST',
	        data: dataStr,
	        success: function(p_oResponse){
	            $('section').html(p_oResponse);
	        }
	    });
	});
}

function initLogin()
{
	$('.forgot-password').click(function() {
		
		if($('#passwordform').is(':visible')) {
			$('#passwordform').fadeOut(300, function(){
				$('#loginform').fadeIn(300);
			});
		}
		else {
			$('#loginform').fadeTo(300, 0, function(){
				$('#loginform').hide();
				$('#passwordform').fadeIn();
			});
		}
	});
}

function initOtherAddress(shortVersion)
{
	$('#sOtherDelivery').click(function() {
		
		if($('#sOtherDelivery').is(':checked')) {
			$('.other-address').fadeTo(1, 0, function(){
				$('.other-address').show();
				$('.other-address').fadeTo(300, 1);
			});
		}
		else {
			$('.other-address').fadeTo(300, 0, function(){
				$('.other-address').hide();
			});
		}
		
		if(shortVersion === true)
			updateOtherDeliveryRulesShort();
		else
			updateOtherAddressRules();
	});
}

function updateOtherAddressRules()
{
	if($('#sOtherDelivery').is(':checked')) {
		
		$('.other-address .input input').each(function(i, el) {
			var sId = $(this).attr('id');
			switch(sId) {
				case 'sFirstnameOther':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 2,
						nonumber: true,
						messages: {
							required: 'Er is geen voornaam ingevoerd',
							minlength: 'De ingevoerde voornaam is te kort',
							nonumber: 'Een voornaam kan geen cijfers bevatten'
						}
					});
				break;
				case 'sSurnameOther':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 2,
						nonumber: true,
						messages: {
							required: 'Er is geen achternaam ingevoed',
							minlength: 'De ingevoerde achternaam is te kort',
							nonumber: 'Een achternaam kan geen cijfers bevatten'
						}
					});
				break;
				case 'sAddressOther':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 3,
						messages: {
							required: 'Er is geen adres ingevoerd',
							minlength: 'Een adres moet minimaal 3 tekens bevatten'
						}
					});
				break;
				case 'sPostalcodeOther':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 4,
						messages: {
							required: 'Er is geen postcode ingevoerd',
							minlength: 'Een postcode moet minimaal 4 tekens bevatten'
						}
					});
				break;
				case 'sCityOther':
					$('#'+sId).rules('add', {
						required: true,
						nonumber: true,
						messages: {
							required: 'Er is geen plaatsnaam ingevoerd',
							nonumber: 'Een plaatsnaam kan geen cijfers bevatten'
						}
					});
				break;
			}
		});
	} else {
		$('.other-address .input input').each(function(i, el) {
			var sId = $(this).attr('id');
			switch(sId) {
				case 'sFirstnameOther':
				case 'sSurnameOther':
				case 'sAddressOther':
				case 'sPostalcodeOther':
				case 'sCityOther':
					$('#'+sId).rules('remove');
				break;
			}
		});
	}
}

function updateOtherDeliveryRulesShort()
{
	if($('#sOtherDelivery').is(':checked')) {
		
		$('.other-address .input input').each(function(i, el) {
			var sId = $(this).attr('id');
			switch(sId) {
				case 'sName':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 2,
						nonumber: true,
						messages: {
							required: 'Er is geen naam ingevoerd',
							minlength: 'De ingevoerde naam is te kort',
							nonumber: 'Een naam kan geen cijfers bevatten'
						}
					});
				break;
				case 'sAddress':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 3,
						messages: {
							required: 'Er is geen adres ingevoerd',
							minlength: 'Een adres moet minimaal 3 tekens bevatten'
						}
					});
				break;
				case 'sPostalcode':
					$('#'+sId).rules('add', {
						required: true,
						minlength: 4,
						messages: {
							required: 'Er is geen postcode ingevoerd',
							minlength: 'Een postcode moet minimaal 4 tekens bevatten'
						}
					});
				break;
				case 'sCity':
					$('#'+sId).rules('add', {
						required: true,
						nonumber: true,
						messages: {
							required: 'Er is geen plaatsnaam ingevoerd',
							nonumber: 'Een plaatsnaam kan geen cijfers bevatten'
						}
					});
				break;
			}
		});
	} else {
		$('.other-address .input input').each(function(i, el) {
			var sId = $(this).attr('id');
			switch(sId) {
				case 'sName':
				case 'sAddress':
				case 'sPostalcode':
				case 'sCity':
					$('#'+sId).rules('remove');
				break;
			}
		});
	}
}


function updateCartItem(p_sMode, p_nId)
{
	var nAmount = $('.cartitem_'+p_nId).val();
	var nPackaging = $('.packaging_'+p_nId).val();
	var dataStr = 'mode='+p_sMode+'&fieldkey='+p_nId+'&amount='+nAmount+'&packaging='+nPackaging;
	
	$.ajax({
        url: 'shoppingcart/cartcontent',
        type: 'POST',
        data: dataStr,
        success: function(p_oResponse){
            $('#cart-content').html(p_oResponse);
            $('.packingpaper').selectbox();
            Cufon.replace(
        		'.product .product-title, .totalprice .pink, #cart-content h2'
        	);
        }
    }); 
}

function proceedCart(p_sUrl)
{
	var nTerms = $('#check_terms:checked').val();
	
	if(nTerms == "yes") {
		document.location = p_sUrl;
	}
	else {
		alert('U dient de voorwaarden te accepteren om verder te gaan');
	}
}


function validateStaticForm(p_sForm) {
	switch(p_sForm) {
		
		case 'contactform':
		
			var rules = {};
			rules['sName'] = {
				required: true,
				notags: true,
				minlength: 2
			};
			rules['sEmail'] = {
				required: true,
				email: true,
				notags: true
			};
			rules['sMessage'] = {
				required: true,
				notags: true
			};
			
			var messages = {};
			messages['sName'] = {
				required: 'Er is geen naam ingevuld',
				notags: 'Er mogen geen tags in een naam voorkomen',
				minlength: 'Je geen geldige naam ingevuld'
			};
			messages['sEmail'] = {
				required: 'Er is geen e-mail adres ingevuld',
				email: 'Het ingevulde e-mail adres is ongeldig',
				notags: 'Een e-mail adres kan geen tags bevatten'
			};
			messages['sMessage'] = {
				required: 'Er is geen bericht ingevuld',
				notags: 'Er mogen geen tags in het bericht voorkomen'
			};
			
		break;
		
		
		case 'register':
			
			var rules = {};
			rules['sEmail'] = {
				required: true,
				email: true,
				notags: true
			};
			rules['sPassword'] = {
				required: true,
				notags: true
			};
			rules['sPassword2'] = {
				equalTo: '#sPassword'
			};
			rules['sFirstname'] = {
				required: true,
				notags: true
			};
			rules['sSurname'] = {
				required: true,
				notags: true
			};
			rules['sAddress'] = {
				required: true,
				notags: true
			};
			rules['sPostalcode'] = {
				required: true,
				notags: true,
				minlength: 6
			};
			rules['sCity'] = {
				required: true,
				notags: true
			};
			rules['sTelephone'] = {
				required: true,
				notags: true,
				telephone: true
			};
			
			var messages = {};
			messages['sEmail'] = {
				required: 'Er is geen e-mail adres ingevuld',
				email: 'Het ingevulde e-mail adres is ongeldig',
				notags: 'Een e-mail adres kan geen tags bevatten'
			};
			messages['sPassword'] = {
				required: 'Er is geen wachtwoord ingevuld',
				notags: 'Er mogen geen tags in het bericht voorkomen'
			};
			messages['sPassword2'] = {
				equalTo: 'De twee wachtwoorden zijn niet gelijk'
			};
			messages['sFirstname'] = {
				required: 'Er is geen voornaam ingevuld',
				notags: 'Een voornaam kan geen tags bevatten'
			};
			messages['sSurname'] = {
					required: 'Er is geen achternaam ingevuld',
					notags: 'Een achternaam kan geen tags bevatten'
			};
			messages['sAddress'] = {
					required: 'Er is geen adres ingevuld',
					notags: 'Een adres kan geen tags bevatten'
			};
			messages['sPostalcode'] = {
					required: 'Er is geen postcode ingevuld',
					notags: 'Een postcode kan geen tags bevatten',
					minlength: 'Vul een geldige postcode in'
			};
			messages['sCity'] = {
					required: 'Er is geen plaatsnaam ingevuld',
					notags: 'Een plaatsnaam kan geen tags bevatten'
			};
			messages['sTelephone'] = {
					required: 'Er is geen telefoonnummer ingevuld',
					notags: 'Een telefoonnummer kan geen tags bevatten',
					telephone: 'Het ingevoerde telefoonnummer is niet geldig'
			};
			
		break;
		
		case 'noaccount':
			
			var rules = {};
			rules['sEmail'] = {
				required: true,
				email: true,
				notags: true
			};
			rules['sFirstname'] = {
				required: true,
				notags: true
			};
			rules['sSurname'] = {
				required: true,
				notags: true
			};
			rules['sAddress'] = {
				required: true,
				notags: true
			};
			rules['sPostalcode'] = {
				required: true,
				notags: true,
				minlength: 6
			};
			rules['sCity'] = {
				required: true,
				notags: true
			};
			rules['sTelephone'] = {
				required: true,
				notags: true,
				telephone: true
			};
			
			var messages = {};
			messages['sEmail'] = {
				required: 'Er is geen e-mail adres ingevuld',
				email: 'Het ingevulde e-mail adres is ongeldig',
				notags: 'Een e-mail adres kan geen tags bevatten'
			};
			messages['sFirstname'] = {
				required: 'Er is geen voornaam ingevuld',
				notags: 'Een voornaam kan geen tags bevatten'
			};
			messages['sSurname'] = {
					required: 'Er is geen achternaam ingevuld',
					notags: 'Een achternaam kan geen tags bevatten'
			};
			messages['sAddress'] = {
					required: 'Er is geen adres ingevuld',
					notags: 'Een adres kan geen tags bevatten'
			};
			messages['sPostalcode'] = {
					required: 'Er is geen postcode ingevuld',
					notags: 'Een postcode kan geen tags bevatten',
					minlength: 'Vul een geldige postcode in'
			};
			messages['sCity'] = {
					required: 'Er is geen plaatsnaam ingevuld',
					notags: 'Een plaatsnaam kan geen tags bevatten'
			};
			messages['sTelephone'] = {
					required: 'Er is geen telefoonnummer ingevuld',
					notags: 'Een telefoonnummer kan geen tags bevatten',
					telephone: 'Het ingevoerde telefoonnummer is niet geldig'
			};
			
		break;
		
		case 'otherdelivery':
			var messages = {};
			var rules = {};
		break;
	}
	
	$('#'+p_sForm).validate({
		rules: rules,
		messages: messages,
		errorPlacement: function(error, element) {
			var obj = element.parent();
			error.insertAfter(obj);
		},
		success: function(label) {
			label.remove();
		},
		submitHandler: function(pform) {
			if(p_sForm == 'otherdelivery')
			{
				pform.trigger('submit');
			}
			else
				pform.submit();
		}
	});	
}

function numberFormat(num){
	return num.toFixed(2).replace('.', ',');
}
