function addValidation(factuuradres) {

	var vl = new LiveValidation('voornaam', {validMessage: "Ok"});
	vl.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

	var an = new LiveValidation('lastname', {validMessage: "Ok"});
	an.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

	var adresvoorvoegsel = "";
	if (factuuradres) {
  		adresvoorvoegsel = "factuur_";
	}

	var str = new LiveValidation(adresvoorvoegsel+'straat', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"straat_validate"});
	str.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

	var hnr = new LiveValidation(adresvoorvoegsel+'huisnummer', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"huisnummer_validate"});
	hnr.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

	var pc = new LiveValidation(adresvoorvoegsel+'postcode', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"postcode_validate"});
	pc.add( Validate.Format, { pattern: /^[0-9]{4}[ ]{0,1}[a-z]{2}$/i, wait: 500, failureMessage: "Onjuist" } );
	pc.add( Validate.Presence, {wait: 500, failureMessage: "Verplicht"} );

	var pl = new LiveValidation(adresvoorvoegsel+'plaats', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"plaats_validate"});
	pl.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

	var email = new LiveValidation('email', {validMessage: "Ok"});
	email.add( Validate.Email, { wait: 500, failureMessage: "E-mail onjuist"} );
	email.add( Validate.Presence, {wait: 500, failureMessage: "Verplicht"} );
	
	var email2 = new LiveValidation('email2', {validMessage: "Ok"});
	email2.add( Validate.Confirmation, {wait:5000, match: 'email', failureMessage: "E-mail adressen niet gelijk" } );

	if (jQuery('#akkoord').length > 0) {
		var akk = new LiveValidation('akkoord', {validMessage: "Ok","insertAfterWhatNode":"akkoord_validate"});
		akk.add( Validate.Acceptance, { wait: 500, failureMessage: "Verplicht om aan te vinken" } );
	}
}


var str1 = false;
var hnr1 = false;
var pc1 = false;
var pl1 = false;
function afleveradres(o) {
	if (o.checked) {
	     var adresvoorvoegsel = "";

		if (!str1) {
			str1 = new LiveValidation(adresvoorvoegsel+'straat', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"straat_validate"});
			str1.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

			hnr1 = new LiveValidation(adresvoorvoegsel+'huisnummer', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"huisnummer_validate"});
			hnr1.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );

			pc1 = new LiveValidation(adresvoorvoegsel+'postcode', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"postcode_validate"});
			pc1.add( Validate.Format, { pattern: /^[0-9]{4}[ ]{0,1}[a-z]{2}$/i, wait: 500, failureMessage: "Onjuist" } );
			pc1.add( Validate.Presence, {wait: 500, failureMessage: "Verplicht"} );

			pl1 = new LiveValidation(adresvoorvoegsel+'plaats', {validMessage: "Ok","insertAfterWhatNode":adresvoorvoegsel+"plaats_validate"});
			pl1.add( Validate.Presence, { wait: 500, failureMessage: "Verplicht" } );
		}
		else {
			str1.enable();
			hnr1.enable();
			pc1.enable();
			pl1.enable();
		}
		
          jQuery(".tr_afleveradres").show();
	}
	else {
	     if (str1) {
               str1.disable();
			hnr1.disable();
			pc1.disable();
			pl1.disable();
		}
          jQuery(".tr_afleveradres").hide();
	}
}

//bankrekeningcheck op actief/nonactief zetten afhankelijk van betaalmethode
var bnr = false
function incasso(o) {
	//betaalmethode is incasso, toon banknr veld en valideer deze
	if (o == 'incasso') {
	     if (!bnr) {
	          bnr = new LiveValidation('banknr', {validMessage: "Ok"});
			bnr.add( Validate.Custom, {against:checkBank, wait: 500, failureMessage: "Bankrekening onjuist" } );
			bnr.add( Validate.Presence, {wait: 500, failureMessage: "Verplicht"} );
		}
		else {
			bnr.enable();
		}

		jQuery("#tr_banknr").show();
	}
	//betaalmethode is iets anders, verberg banknr veld en stop validatie
	else {
	     if (bnr) {
	     	bnr.disable();
	     }
          jQuery("#tr_banknr").hide();
	}
}

//maakt van zoeknavigatie een ajax bladerfunctie
function bind_bladeren(f) {
	var bl = jQuery("#zoeknavigatie a");
	if (bl.length > 0) {
		bl.click(function() {
			var deze = jQuery(this);
			var page = deze.attr("page");
			if (page != "") {
			     f.find("input[name='page']").val(page)
				f.trigger("submit")
			}
			return false;
		})
	}
}

jQuery(function() {
	//delete alle links die met js niet getoond hoeven worden in het filter
	//jQuery("a.r_link").remove()

     //zoek betaalmethode input en hang er een event aan om te kijken of banknr actief moet zijn of niet
	var ii = jQuery("input[name=betaalmethode]");
	if (ii.length > 0) {
		jQuery(ii).change(function() {
			incasso(jQuery(this).val())
		})
  		incasso(jQuery("input[name=betaalmethode][checked]").val())
	}
	
	var jj = jQuery("input[name=afleveradres]");
	if (jj.length > 0) {
	     jj.change(function() {
			afleveradres(jj[0])
		})
          afleveradres(jj[0])
	}

	//zoek filterform, bij filteren in categorieeen
	var ff = jQuery("#filterform");
	if (ff.length > 0) {

	     bind_bladeren(ff);

		ff.submit(function() {
		     jQuery.post(ff.attr("action"),ff.serialize(),function(rr) {
				jQuery("div.product_list").html(rr)
				bind_bladeren(ff);
			})
			return false;
		})


		ff.find("input,textarea").change(function() {
               //reset paginateller
			ff.find("input[name='page']").val(0)
			ff.trigger("submit")
		})
		ff.find("select").change(function() {
			ff.trigger("submit")
		})
		var keytimer = null;
		ff.find("input,textarea").keyup(function() {
		     try {clearTimeout(keytimer)} catch (e){}
			keytimer = setTimeout(function() {
			     //reset paginateller
			     ff.find("input[name='page']").val(0);
    				ff.trigger("submit");
			},300)
		})

	}
})


function checkBank(nr) {

	var banknr = nr.replace(/ /g,"");
	banknr = banknr.replace(/\./g,"");
	document.getElementById('banknr').value = banknr


	if (banknr.length == 8 || banknr.length < 5) {
		return false;
	}
	else if (banknr.length == 9) {
		var b = nr;
		var total = 0;
		var j = b.length;
		for( var i = 0; i < b.length; i++ ) {
			total += b.charAt( i ) * j;
			j -= 1;
		}

		if( ( total % 11 ) != 0 ) {
			return false;
		}
		return true;
	}
	else {
		return true;
	}
}

/* functie die aantal in de webshop automatisch verandert */

var timer_aantal = null
function verander_aantal(obj) {
	var val = $(obj).attr("value");

	clearTimeout(timer_aantal)
	if (val != '' && val != undefined) {
		timer_aantal = setTimeout('$("#bijwerken").trigger("click")',1000);
	}
}


/* functies voor tonen van producten */
function changeimage(newimage,smallimg) {
	$('#changeable-image').attr('src',newimage);
}

jQuery(function() {
	jQuery("#changeable-image").load(function() {
		//CUSTOM FUNCTIES VOOR WERKEMA - scrollbar opnieuw instellen
		//jscroller.data("jsp").reinitialise()
		//jQuery(".jspVerticalBar").css({"opacity":0.5})
	})
	//bij kleine plaatjes mouseover -> verander het grote plaatje
 	jQuery("#smallimgdiv img").mouseover(function() {
		var deze = jQuery(this);
		changeimage(deze.attr("fullimage"),deze.attr("id"))
	})
	//als er op het grote plaatje geklikt wordt, en er zijn kleine plaatjes aanwezig, start fancybox
	jQuery("#changeable-image").click(function() {
		var fancysrc = jQuery(this).attr("src")
		jQuery("#smallimgdiv img[fullimage='"+fancysrc+"']").parent().trigger("click")
	})
	//hang fancybox op plaatjes
	jQuery("a.fancybox").fancybox({"padding":0});
	
	jQuery("div.productsmall").live('click',function() {
		document.location.href = jQuery(this).find("a:eq(0)").attr("href")
	})
})

