
	$.fn.clearForm = function() {
	  return this.each(function() {
	 var type = this.type, tag = this.tagName.toLowerCase();
	 if (tag == 'form')
	   return $(':input',this).clearForm();
	 if (type == 'text' || type == 'password' || tag == 'textarea')
	   this.value = '';
	 else if (type == 'checkbox' || type == 'radio')
	   this.checked = false;
	 else if (tag == 'select')
	   this.selectedIndex = -1;
	  });
	};


	// jquery scripts
	$(document).ready(function () {

		// lightbox laten werken
		$('a.lightbox').lightBox();
		
		// slideshow
		$('#slideshow').cycle({ 
		    fx:    'fade', 
		    speed:  3000,
		    pause: 	1 
		 });


		 $('.anythingSlider').anythingSlider({
			easing: "swing",        			// Anything other than "linear" or "swing" requires the easing plugin
			autoPlay: true,                 	// This turns off the entire FUNCTIONALY, not just if it starts running or not.
			delay: 5000,                    	// How long between slide transitions in AutoPlay mode
			startStopped: false,            	// If autoPlay is on, this can force it to start stopped
			animationTime: 600,             	// How long the slide transition takes
			hashTags: true,                 	// Should links change the hashtag in the URL?
			buildNavigation: false,          	// If true, builds and list of anchor links to link to each slide
			pauseOnHover: true             		// If true, and autoPlay is enabled, the show will pause on hover
			//startText: "Go",             		// Start text
			//stopText: "Stop",               	// Stop text
			//navigationFormatter: formatText  	// Details at the top of the file on this use (advanced use)
         });
		 
		$('ul.product-images').galimg();
		
		if($('input#totaal-totaalbedrag').val() == 0){
			$('input#id_buybutton').hide();
			// alert('Uw winkelwagen is op dit moment leeg. Daarom kunt het bestelproces niet verder doorlopen.');
		}
		
		
		$('a.submit').click(function(){
			var formid = 'form-'+ $(this).attr('id');
			$("form#"+ formid).submit();
			return false;
		});	
		
		$('a.submitConfirm').click(function(){
			if(confirming('Weet u zeker dat u dit item wilt verwijderen?')){
				var formid = 'form-'+ $(this).attr('id');
				$("form#"+ formid).submit();
			}
			return false;
		});
		
		// winkelwagen functies
		$('select.winkelwagenProductOptions').change(function () {
			var sIds = $(this).attr('id');
			var sValue = $(this).val();
			$.ajax({
				type: "POST",
				url: "includes/actions/action_winkelwagen.php",
				data: 'action=updateoption&ids='+ sIds +'&value='+ sValue,
				success: function(){
					//$('div#thumbbox-'+ id).fadeOut('slow');
				}
			});				
		});	
		
		$('img.winkelwagen-verwijder-product').click(function () {
			var sId = $(this).attr('id');
			var iCartid = sId.substr(4);	

			$.ajax({
				type: "POST",
				url: "includes/actions/action_winkelwagen.php",
				data: 'action=deleteFromCart&iId='+ iCartid,
				success: function(){
					$('div#winkelwagen-record-'+ iCartid).slideUp('slow', function(){
						$('div#winkelwagen-record-'+ iCartid).remove();
						setTimeout('calculateTotals()', 500);
					});
				}
			});	
		});
		
		$('input.winkelwagenAantal').keyup(function () {
			// alle waarden ophalen.
			var bDebug 			= true;
			var sId 			= $(this).attr('id');
			var iCartid 		= sId.substr(7);
			var iAantal 		= $(this).val();
			parseFloat(iAantal);
            
            if($(this).hasClass('onlyTwo')){
                if(iAantal)
                var moduloResult = parseFloat(iAantal % 2);
                iAantal = parseFloat(iAantal) + parseFloat(moduloResult);
                // alert('Omdat u voor twee ogen besteld moet u in een veelvoud van 2 afnemen.');
                $(this).val(iAantal);
            }
			
			if(iAantal == 0){
				if(confirming('Dit product uit uw winkelwagen verwijderen?')) {
				
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: 'action=deleteFromCart&iId='+ iCartid,
					success: function() {
						$('div#winkelwagen-record-'+ iCartid).slideUp('fast', function(){
							$('div#winkelwagen-record-'+ iCartid).remove();
							setTimeout('calculateTotals()', 100);
						});
					}
				});					
				
				return;
				}
			}
			
			// btw percentage vaststellen
			var sBtwPercentage 		= $('input#btwpercentage-'+iCartid).val();

			// totaalprijs (product x aantaal inclusief btw)
			var sStukPrijs 			= $('input#prijs-'+iCartid).val();
			var sNewTotaalprijs 	= iAantal*sStukPrijs;
			sNewTotaalprijs 		= parseFloat(sNewTotaalprijs).toFixed(2);

			// btw van dit product
			var sBtwBedrag 			= (sNewTotaalprijs/100) * sBtwPercentage;
			var sNewTotaalprijsEx 	= sNewTotaalprijs - sBtwBedrag;
			sBtwBedrag 				= parseFloat(sBtwBedrag).toFixed(2);
			sNewTotaalprijsEx 		= parseFloat(sNewTotaalprijsEx).toFixed(2);
			
			if(bDebug){
				$('div#debuginfo').append('product: '+ sNewTotaalprijs +'<br />');
				$('div#debuginfo').append('product btw: '+ sBtwBedrag +'<br />');
				$('div#debuginfo').append('product ex btw: '+ sNewTotaalprijsEx +'<br /><hr />');
			}

		
			// verzendkosten berekenen aan de hand van de factor
			var sVerzendkosten = $('input#verzendkosten-'+iCartid).val();
			var sVerzendfactor = $('input#verzendfactor-'+iCartid).val();
			if( sVerzendfactor == 'Infinity'){ sVerzendfactor = '0.00'; }
			var sVerzendPer = $('input#verzendaantal-'+iCartid).val();
			parseFloat(sVerzendPer).toFixed(2);			
			// -- var sVerzendtotaal = $('input#verzendtotaal-'+iCartid).val();
			
			if(iAantal > 0 && sVerzendPer > 0){
				var iFactorVerzendkosten = Math.ceil(iAantal/sVerzendPer);
			} else {
				iFactorVerzendkosten = 0.00
			}
			parseFloat(iFactorVerzendkosten).toFixed(2);

			var sNewVerzendtotaal = sVerzendkosten * iFactorVerzendkosten			
			iFactorVerzendkosten  = parseFloat(iFactorVerzendkosten);
			var iNewVerzendtotaal = parseFloat(sNewVerzendtotaal).toFixed(2);


			// http://www.digi-profs.nl/artikel.php?id=723
			var sVerzendtotaalBtw 	= (iNewVerzendtotaal/100) * sBtwPercentage;
			var sVerzendtotaalEx 	= (iNewVerzendtotaal - sVerzendtotaalBtw);
			var iVerzendtotaalBtw 	= parseFloat(sVerzendtotaalBtw).toFixed(2);
			var iVerzendtotaalEx 	= parseFloat(sVerzendtotaalEx).toFixed(2);				

			
			if(bDebug){
				$('div#debuginfo').append('verzendkosten: '+ sVerzendkosten +'<br />');
				$('div#debuginfo').append('verzendkosten factor: '+ iFactorVerzendkosten +' <br />');
				$('div#debuginfo').append('verzendkosten totaal : '+ iNewVerzendtotaal +'<br />');
				$('div#debuginfo').append('verzendkosten totaal btw : '+ iVerzendtotaalBtw +'<br />');
				$('div#debuginfo').append('verzendkosten totaal ex btw: '+ iVerzendtotaalEx +'<br /><hr />');
			}	

			// totalen berekenen
			var sTotaalbedraginc 	= parseFloat(sNewTotaalprijs) + parseFloat(iNewVerzendtotaal);
			var iTotaalbedraginc	= parseFloat(sTotaalbedraginc).toFixed(2);								
			var sTotaalbedragbtw	= (iTotaalbedraginc/100) * sBtwPercentage;    
			var iTotaalbedragbtw	= parseFloat(sTotaalbedragbtw).toFixed(2);										
			var iTotaalbedragex		= parseFloat(iTotaalbedraginc - iTotaalbedragbtw).toFixed(2);							
			
			if(bDebug){
				$('div#debuginfo').append('totaal: '+ iTotaalbedraginc +'<br />');
				$('div#debuginfo').append('totaal btw : '+ iTotaalbedragbtw +' <br />');
				$('div#debuginfo').append('totaal ex btw: '+ iTotaalbedragex +'<br /> <hr />');
			}
			
			// alle nieuwe waarden plaatsen.
			$('input#totaal-'+iCartid).val(sNewTotaalprijs);
			$('span#totaalhtml-'+iCartid).html(sNewTotaalprijs.replace(".", ','));
			$('input#totaalbedragbtw-'+iCartid).val(sBtwBedrag);
			$('input#totaalbedragex-'+iCartid).val(sNewTotaalprijsEx);
			
			
			$('input#verzendfactor-'+iCartid).val(iFactorVerzendkosten);
			$('span#verzendfactorhtml-'+iCartid).html(iFactorVerzendkosten);
						
			if(sNewVerzendtotaal > 0){
				$('input#verzendtotaal-'+iCartid).val(iNewVerzendtotaal);
				$('span#verzendtotaalhtml-'+iCartid).html('&euro; '+ iNewVerzendtotaal.replace(".", ','));
				$('input#verzendbtw-'+iCartid).val(iVerzendtotaalBtw);
				$('input#verzendex-'+iCartid).val(iVerzendtotaalEx);
			}	
					
			$('input#totaalbedraginc-'+iCartid).val(iTotaalbedraginc);
			$('input#totaalbedragbtw-'+iCartid).val(iTotaalbedragbtw);
			$('input#totaalbedragex-'+iCartid).val(iTotaalbedragex);	
	

			$.ajax({
				type: "POST",
				url: "includes/actions/action_winkelwagen.php",
				data: 'action=updateprijs&iId='+ iCartid +'&aantal='+ iAantal,
				success: function(){
					//$('div#thumbbox-'+ id).fadeOut('slow');
					calculateTotals();
				}
			});	
	
		});
        
		$('#fillform').click(function(){
		
			$("input#id_afl_naam_voornaam_quick").val('Johan Fillform');
			$("input#id_afl_naam_tussenvoegsel_quick").val('');
			$("input#id_afl_naam_achternaam_quick").val('Quickuy');
			$("input#id_afl_adres_straatnaam_quick").val('Binck');
			$("input#id_afl_adres_huisnummer_quick").val('36');
			$("input#id_afl_adres_postcode_quick").val('2516BE');
			$("input#id_afl_adres_woonplaats_quick").val('Den Haag');
			$("input#id_telefoon").val('0703856422');
			$("input#id_mobiel_quick").val('0614437995');
			$("input#id_mobiel_quick").val('0614437995');
			$("input#id_emailadres_quick").val('johan@eye-c.nl');
		
		});

            
        $('input.winkelwagenAantal').keypress(function(event) {
            var controlKeys = [8, 9, 13, 35, 36, 37, 39];
            var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
            if (!event.which ||  (48 <= event.which && event.which <= 57) || isControlKey) {
                return;
            } else {
                event.preventDefault();
            }
        });            
            

		
			
		
		$('a.showQuickBuy').click(function(){
			showCartloginregister('winkelwagen-quick-buy');
			return false;
		});	
		
		$('a.showLogin').click(function(){
			showCartloginregister('winkelwagen-user-login');
			return false;
		});
		
		
		$('a.showRegister').click(function(){
			showCartloginregister('winkelwagen-user-register');
			return false;
		});	

		$('a.showQuickbuy').click(function(){
			showCartloginregister('winkelwagen-quick-buy');
			return false;
		});	


		$('a.showLostpass').click(function(){
			showCartloginregister('winkelwagen-user-lostpass');
			return false;
		});	
		
		$('a.showActivate').click(function(){
			showCartloginregister('winkelwagen-user-activate');
			return false;
		});			
		
		$('a.showPay').click(function(){
			showCartloginregister('winkelwagen-user-buy');
			return false;
		});	

		$('a.loadOldCart').click(function(){
			$('form#loadOldCart').submit();
			return false;
		});	

		
	    $("div#winkelwagen-user-buy input").blur(function () {
	         updateUser();
	    });
		
		$('input.date').datepicker({
			numberOfMonths: 1,
			showButtonPanel: false,
			dateFormat: 'dd/mm/yy',
			dayNamesMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
			monthNames: ['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'],
			dayNamesShort: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
			changeMonth: true,
			changeYear: true,
			yearRange: '1900:2010'
		});
		
		// registreren - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 31/01/2010 JB 
		$("#registerbutton").click(function(){

			// check fields
			var checkfields 	= true;
			var errorMsg 		= '';
			
			var voornaam 		= $('input#id_naam_voornaam').val();
			var achternaam 		= $('input#id_naam_achternaam').val();
			var straatnaam 		= $('input#id_adres_straatnaam').val();
			var huisnummer 		= $('input#id_adres_huisnummer').val();
			var postcode 		= $('input#id_adres_postcode').val();
			var woonplaats 		= $('input#id_adres_woonplaats').val();
			var geboorte		= $('input#id_geboortedatum').val();
			var emailaddres 	= $('input#id_emailadres').val();
			var wachtwoord 		= $('input#wachtwoord').val();
			var wachtwoord2 	= $('input#id_wachtwoord_herhaal').val();

			if(!notEmpty(voornaam)){ outlineInput('id_naam_voornaam'); checkfields = false;  } else { normalInput('id_naam_voornaam'); }
			if(!notEmpty(achternaam)){ outlineInput('id_naam_achternaam'); checkfields = false;  } else { normalInput('id_naam_achternaam'); }
			if(!notEmpty(straatnaam)){ outlineInput('id_adres_straatnaam'); checkfields = false;  } else { normalInput('id_adres_straatnaam'); }
			if(!notEmpty(huisnummer)){ outlineInput('id_adres_huisnummer'); checkfields = false;  } else { normalInput('id_adres_huisnummer'); }
			if(!postcodeCheck(postcode)){ outlineInput('id_adres_postcode'); checkfields = false;  } else { normalInput('id_adres_postcode'); }
			if(!notEmpty(woonplaats)){ outlineInput('id_adres_woonplaats'); checkfields = false;  } else { normalInput('id_adres_woonplaats'); }
			if(!emailCheck(emailaddres)) { outlineInput('id_emailadres'); checkfields = false;  } else { normalInput('id_emailadres'); }
			if(!isDate(geboorte)) { outlineInput('id_geboortedatum'); checkfields = false; } else { normalInput('id_geboortedatum'); }
			if(!notEmpty(wachtwoord) && !notEmpty(wachtwoord2) && wachtwoord != wachtwoord2){ outlineInput('wachtwoord'); outlineInput('id_wachtwoord_herhaal'); checkfields = false;  } else { normalInput('id_wachtwoord_herhaal'); normalInput('id_wachtwoord_herhaal'); normalInput('wachtwoord'); }

			if(checkfields){
				var serializedForm 	= $('form#formregisteren').serialize();
				var dataString 		= 'action=register&'+ serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						if(msg == 'a'){
							$('div#winkelwagen-user-register').fadeOut('fast');
							$('#winkelwagen-user-activate p.feedback').html('Bedankt voor uw aanmelding, Er is op dit moment een email gestuurd met daarin uw activatie code.<br /><br />');
							$('div#winkelwagen-user-activate').fadeIn('slow');
							$('form#formregisteren').clearForm();
						} else if(msg == 'b') {
							$('div#winkelwagen-user-register').fadeOut('fast');
							$('#winkelwagen-user-login p.feedback').html('Het emailadres waarmee u zich nu wilt registreren is al in gebruik.');
							$('div#winkelwagen-user-login').fadeIn('slow');							
						}
					}
				});

			} else {
				$('#winkelwagen-user-register p.feedback').hide();
				$('#winkelwagen-user-register p.feedback').html('Een aantal velden zijn niet volledig of juist ingevoerd. Alle velden met een * zijn verplicht. Zorg dat wachtwoorden overeenkomen en dat de datum in het juiste formaat wordt genoteerd.');
				$('#winkelwagen-user-register p.feedback').fadeIn('slow');	
			}
			
			return false;
		});

		
		// activeren - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 31/01/2010 JB
		$("#activatiebutton").click(function(){

			// check fields
			var checkfields 	= true;
			var errorMsg 		= '';
			
			var activatiecode 	= $('input#id_activatiecode').val();

			if(!notEmpty(activatiecode)){ outlineInput('id_activatiecode'); checkfields = false;  } else { normalInput('id_activatiecode'); }

			if(checkfields){			
			
				var serializedForm 	= $('form#formactiveren').serialize();
				var dataString 		= 'action=activate&'+ serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						if(msg == 'a'){
							$('div#winkelwagen-user-activate').fadeOut('fast');
							$('#winkelwagen-user-login p.feedback').html('Bedankt voor het activeren van uw account. U kunt nu inloggen met uw emailadres en zelfgekozen wachtwoord.<br />');
							$('div#winkelwagen-user-login').fadeIn('slow');	
							$('form#formactiveren').clearForm();
						} else if(msg == 'b') {
							$('div#winkelwagen-user-activate').fadeOut('fast');
							$('#winkelwagen-user-activate p.feedback').html('De activatie is niet voltooid, controleer de code en probeer het nogmaals.');
							$('div#winkelwagen-user-activate').fadeIn('slow');							
						}
					}
				});

					

			} else {
				$('#winkelwagen-user-activate p.feedback').hide();
				$('#winkelwagen-user-activate p.feedback').html('De activatie code is een verplicht veld.');
				$('#winkelwagen-user-activate p.feedback').fadeIn('slow');					
			}
			
			return false;

		});
		
		// login - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 31/01/2010 JB
		$("#loginbutton").click(function(){
			// check fields
			var checkfields 	= true;
			var errorMsg 		= '';

			var emailaddres 	= $('input#id_loginuser').val();
			var wachtwoord 		= $('input#id_loginpass').val();

			if(!emailCheck(emailaddres)) { outlineInput('id_loginuser'); checkfields = false; } else { normalInput('id_loginuser'); }
			if(!notEmpty(wachtwoord)){ outlineInput('id_loginpass'); checkfields = false; } else { normalInput('id_loginpass');  }
			
			
			if(checkfields){
				var serializedForm 	= $('form#formlogin').serialize();
				var dataString 		= 'action=login&'+ serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						if(msg == 'a'){
							$('div#winkelwagen-user-login').fadeOut('fast');
							$('div#winkelwagen-user-buy').fadeIn('slow');
							$('div.logged-out').fadeOut('fast');
							$('div.logged-in').fadeIn('slow');							
							$('form#formlogin').clearForm();

							$('input#id_afl_naam_voornaam').val(feedback.afl_naam_voornaam);
							$('input#id_afl_naam_tussenvoegsel').val(feedback.afl_naam_tussenvoegsel);
							$('input#id_afl_naam_achternaam').val(feedback.afl_naam_achternaam);
							$('input#id_afl_adres_straatnaam').val(feedback.afl_adres_straatnaam);
							$('input#id_afl_adres_huisnummer').val(feedback.afl_adres_huisnummer);
							$('input#id_afl_adres_postcode').val(feedback.afl_adres_postcode);
							$('input#id_afl_adres_woonplaats').val(feedback.afl_adres_woonplaats);
							$('select#id_afl_adres_land').val(feedback.afl_adres_land);
							$('input#afl_adres_land_naam').val(feedback.afl_adres_land);
							$('input#id_reminder').val(feedback.reminder);
							$('input#buy-user-id').val(feedback.userid);
							$('input#userid').val(feedback.userid);

						} else if(msg == 'b') {
							$('div#winkelwagen-user-login').fadeOut('fast');
							$('div#winkelwagen-user-login p.feedback').html('Het inloggen is helaas mislukt. probeer het nogmaals');
							$('div#winkelwagen-user-login').fadeIn('slow');
						}
					}
				});

			} else {
				$('#winkelwagen-user-login p.feedback').hide();
				$('#winkelwagen-user-login p.feedback').html('Om in te loggen moet u uw emailadres en wachtwoord gebruiken waarmee u zich heeft geregistreerd.');
				$('#winkelwagen-user-login p.feedback').fadeIn('slow');				
			}
			return false;

		});	



		$("#lostpassbutton").click(function(){


			var checkfields 	= true;
			var errorMsg 		= '';

			var emailaddres 	= $('input#id_lostpassmail').val();


			if(!emailCheck(emailaddres)) { outlineInput('id_lostpassmail'); checkfields = false; } else { normalInput('id_lostpassmail'); }

			if(checkfields){
				var serializedForm 	= $('form#formlostpass').serialize();
				var dataString 		= 'action=lostpass&'+ serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						if(msg == 'a'){

							$('div#winkelwagen-user-login p.feedback').html('Uw wachtwoord is opnieuw ingesteld. Er is op dit moment een email gestuurd met uw nieuwe wachtwoord,');
							$('div#winkelwagen-user-lostpass').fadeOut('fast');
							$('div#winkelwagen-user-login').fadeIn('slow');

						} else {
							$('#winkelwagen-user-lostpass p.feedback').hide();
							$('#winkelwagen-user-lostpass p.feedback').html('Uw gebruikersnaam is niet bij ons bekend, wellicht heeft u een spellfout gemaakt. Vul uw emailadres nogmaals en en probeer het nog eens..');
							$('#winkelwagen-user-lostpass p.feedback').fadeIn('slow');	
						}
					}
				});
			}
			return false;
		});
		
		// kopen - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 31/01/2010 JB
		$("#id_buybutton_quick").click(function(){

			var checkfields 	= true;
			var errorMsg 		= '';
			
			
			var voornaam 		= $('input#id_afl_naam_voornaam_quick').val();
			var achternaam 		= $('input#id_afl_naam_achternaam_quick').val();
			var straatnaam 		= $('input#id_afl_adres_straatnaam_quick').val();
			var huisnummer 		= $('input#id_afl_adres_huisnummer_quick').val();
			var postcode 		= $('input#id_afl_adres_postcode_quick').val();
			var woonplaats 		= $('input#id_afl_adres_woonplaats_quick').val();
			var land 			= $('select#id_afl_adres_land_quick').val();
			var betaalmethode 	= $('select#id_factuur_betaalmethode_quick').val();	
			var email 			= $('input#id_emailadres_quick').val();	

			// var x = voornaam +' - '+ achternaam +' - '+ straatnaam  +' - '+ huisnummer +' - '+ postcode +' - '+ woonplaats +' - '+ land +' - '+ betaalmethode +' - '+email;
			// alert(x);
			
			if(!notEmpty(voornaam)){ outlineInput('id_afl_naam_voornaam_quick'); checkfields = false;  } else { normalInput('id_afl_naam_voornaam_quick_quick'); }
			if(!notEmpty(achternaam)){ outlineInput('id_afl_naam_achternaam_quick'); checkfields = false;  } else { normalInput('id_afl_naam_achternaam_quick'); }
			if(!notEmpty(straatnaam)){ outlineInput('id_afl_adres_straatnaam_quick'); checkfields = false;  } else { normalInput('id_afl_adres_straatnaam_quick'); }
			if(!notEmpty(huisnummer)){ outlineInput('id_afl_adres_huisnummer_quick'); checkfields = false;  } else { normalInput('id_afl_adres_huisnummer_quick'); }
			//if(!postcodeCheck(postcode)){ outlineInput('id_afl_adres_postcode_quick'); checkfields = false;  } else { normalInput('id_afl_adres_postcode_quick'); }
			if(!notEmpty(postcode)){ outlineInput('id_afl_adres_postcode_quick'); checkfields = false;  } else { normalInput('id_afl_adres_postcode_quick'); }
			if(!notEmpty(woonplaats)){ outlineInput('id_afl_adres_woonplaats_quick'); checkfields = false;  } else { normalInput('id_afl_adres_woonplaats_quick'); }
			if(!emailCheck(email)){ outlineInput('id_emailadres_quick'); checkfields = false;  } else { normalInput('id_emailadres_quick'); }
			if(!notEmpty(land)){ outlineInput('id_afl_adres_land_quick'); checkfields = false;  } else { normalInput('id_afl_adres_land_quick'); }
			if(!notEmpty(betaalmethode)){ outlineInput('id_factuur_betaalmethode_quick'); checkfields = false;  } else { normalInput('id_factuur_betaalmethode_quick'); }
			if(!checkProductOptions()){ checkfields = false; }	

			if(checkfields) {
			
				// $('div#loading-canvas').fadeIn('fast');
				
				var serializedForm 		= $('form#formkopen-quick').serialize();
				var totaalsubbedrag 	= $('input#totaal-exbtw').val();
				var totaalverzendkosten = $('input#totaal-verzendkosten').val();
				var totaalbedragbtw6 	= $('input#totaal-bedragbtw6').val();
				var totaalbedragbtw19 	= $('input#totaal-bedragbtw19').val();
				var totaalprijs    		= $('input#totaal-totaalbedrag').val();

				var dataString 			= 'action=buyquick&totaal-totaalbedrag='+ totaalprijs +'&totaal-exbtw='+ totaalsubbedrag +'&totaal-verzendkosten='+ totaalverzendkosten +'&totaal-bedragbtw6='+ totaalbedragbtw6 +'&totaal-bedragbtw19='+ totaalbedragbtw19 +'&'+serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						
						if(msg == '1' || msg == '2' || msg == '4'){
							$('div#winkelwagen-user-login').fadeOut('fast');
							$('div#winkelwagen-user-buy').fadeOut('fast');
							$('div#winkelwagen-quick-buy').fadeOut('fast');
							$('div#winkelwagen-user-thanks p.feedback').html('Er is op dit moment een email met de factuur en betaalinstructies naar uw email verzonden.');
							$('div#winkelwagen-user-thanks').fadeIn('slow');
							//$('form#formkopen').clearForm();
							
							$('div.winkelwagen-totalen').fadeOut('fast');
							$('div.winkelwagen-totalen').remove();
							$('div.winkelwagen-record').each(function(){
								$(this).fadeOut('fast');
								$(this).remove();
							});

						} else if(msg == '3'){
							$('div#winkelwagen-user-buy').fadeOut('fast');
							//$('div#winkelwagen-user-ideal').fadeIn('slow');
							//$('form#formkopen').clearForm();
							window.location='http://www.lensconcurrent.nl/lensconcurrent/winkelwagen/ideal/1/';
							
						} else if(msg == 'b') {
							$('div#winkelwagen-user-buy').fadeOut('fast');
							$('#winkelwagen-user-buy p.feedback').html('Er zijn verplichte velden die niet zijn ingevuld.');
							$('div#winkelwagen-user-buy').fadeIn('slow');							
						}
						
						$('div#loading-canvas').fadeOut('fast');
						// console.log(msg);
					}
				});			
			
			
			} else {
			
				$('#winkelwagen-user-buy p.feedback').hide();
				$('#winkelwagen-user-buy p.feedback').html('Niet alle verplichte velden zijn ingevuld. Controleer alle opties bij de producten in uw winkelwagen en controleer de gegevens bij uw aflever adres.');
				$('#winkelwagen-user-buy p.feedback').fadeIn('slow');				
			
			}
			

			return false;	

		});
		
		// kopen - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 31/01/2010 JB
		$("#id_buybutton").click(function(){

	
				
			var checkfields 	= true;
			var errorMsg 		= '';
			
			
			var voornaam 		= $('input#id_afl_naam_voornaam').val();
			var achternaam 		= $('input#id_afl_naam_achternaam').val();
			var straatnaam 		= $('input#id_afl_adres_straatnaam').val();
			var huisnummer 		= $('input#id_afl_adres_huisnummer').val();
			var postcode 		= $('input#id_afl_adres_postcode').val();
			var woonplaats 		= $('input#id_afl_adres_woonplaats').val();
			var land 			= $('input#afl_adres_land_naam').val();
			var betaalmethode 	= $('select#id_factuur_betaalmethode').val();


			if(!notEmpty(voornaam)){ outlineInput('id_afl_naam_voornaam'); checkfields = false;  } else { normalInput('id_afl_naam_voornaam'); }
			if(!notEmpty(achternaam)){ outlineInput('id_afl_naam_achternaam'); checkfields = false;  } else { normalInput('id_afl_naam_achternaam'); }
			if(!notEmpty(straatnaam)){ outlineInput('id_afl_adres_straatnaam'); checkfields = false;  } else { normalInput('id_afl_adres_straatnaam'); }
			if(!notEmpty(huisnummer)){ outlineInput('id_afl_adres_huisnummer'); checkfields = false;  } else { normalInput('id_afl_adres_huisnummer'); }
			if(!postcodeCheck(postcode)){ outlineInput('id_afl_adres_postcode'); checkfields = false;  } else { normalInput('id_afl_adres_postcode'); }
			if(!notEmpty(woonplaats)){ outlineInput('id_afl_adres_woonplaats'); checkfields = false;  } else { normalInput('id_afl_adres_woonplaats'); }
			if(!notEmpty(land)){ outlineInput('id_afl_adres_land'); checkfields = false;  } else { normalInput('id_afl_adres_land'); }
			if(!notEmpty(betaalmethode)){ outlineInput('betaalmethode'); checkfields = false;  } else { normalInput('betaalmethode'); }
			if(!checkProductOptions()){ checkfields = false; }

		
			
			if(checkfields) {

				$('div#loading-canvas').fadeIn('fast');
				
				var serializedForm 		= $('form#formkopen').serialize();
				var totaalsubbedrag 	= $('input#totaal-exbtw').val();
				var totaalverzendkosten = $('input#totaal-verzendkosten').val();
				var totaalbedragbtw6 	= $('input#totaal-bedragbtw6').val();
				var totaalbedragbtw19 	= $('input#totaal-bedragbtw19').val();
				var totaalprijs    		= $('input#totaal-totaalbedrag').val();

				var dataString 			= 'action=buy&totaal-totaalbedrag='+ totaalprijs +'&totaal-exbtw='+ totaalsubbedrag +'&totaal-verzendkosten='+ totaalverzendkosten +'&totaal-bedragbtw6='+ totaalbedragbtw6 +'&totaal-bedragbtw19='+ totaalbedragbtw19 +'&'+serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
						var msg = feedback.msg;
						
						if(msg == '1' || msg == '2' || msg == '4'){
							$('div#winkelwagen-user-buy').fadeOut('fast');
							$('div#winkelwagen-user-thanks p.feedback').html('Er is op dit moment een email met de factuur en betaalinstructies naar uw email verzonden.');
							$('div#winkelwagen-user-thanks').fadeIn('slow');
							//$('form#formkopen').clearForm();
							
							$('div.winkelwagen-totalen').fadeOut('fast');
							$('div.winkelwagen-totalen').remove();
							$('div.winkelwagen-record').each(function(){
								$(this).fadeOut('fast');
								$(this).remove();
							});

						} else if(msg == '3'){
							$('div#winkelwagen-user-buy').fadeOut('fast');
							//$('div#winkelwagen-user-ideal').fadeIn('slow');
							//$('form#formkopen').clearForm();
							window.location='http://www.lensconcurrent.nl/lensconcurrent/winkelwagen/ideal/1/';
							
						} else if(msg == 'b') {
							$('div#winkelwagen-user-buy').fadeOut('fast');
							$('#winkelwagen-user-buy p.feedback').html('Er zijn verplichte velden die niet zijn ingevuld.');
							$('div#winkelwagen-user-buy').fadeIn('slow');							
						}
						
						$('div#loading-canvas').fadeOut('fast');
						// console.log(msg);
					}
				});

				return false;	
			
			} else {
				$('#winkelwagen-user-buy p.feedback').hide();
				$('#winkelwagen-user-buy p.feedback').html('Niet alle verplichte velden zijn ingevuld. Controleer alle opties bij de producten in uw winkelwagen en controleer de gegevens bij uw aflever adres.');
				$('#winkelwagen-user-buy p.feedback').fadeIn('slow');				
			}

			return false;

		});
		
		// registreren - de jquery validate.plugin eruit gehaald en zelf wat validatie geschreven. 04/02/2010 JB 
		$("#userupdate").click(function(){

			// check fields
			var checkfields 			= true;
			var errorMsg 				= '';

			var voornaam 				= $('input#id_naam_voornaam').val();
			var achternamen 			= $('input#id_naam_achternaam').val();
			var adres_straatnaam 		= $('input#id_adres_straatnaam').val();
			var adres_huisnummer 		= $('input#id_adres_huisnummer').val();
			var adres_postcode 			= $('input#id_adres_postcode').val();
			var adres_woonplaats 		= $('input#id_adres_woonplaats').val();
			var geboortedatum 			= $('input#id_geboortedatum').val();
			var emailadres 				= $('input#id_emailadres').val();
			var wachtwoord 				= $('input#wachtwoord').val();
			var wachtwoord2 			= $('input#id_wachtwoord_herhaal').val();
			var afl_voornaam 			= $('input#id_afl_naam_voornaam').val();
			var afl_achternamen 		= $('input#id_afl_naam_achternaam').val();
			var afl_adres_straatnaam 	= $('input#id_afl_adres_straatnaam').val();
			var afl_adres_huisnummer 	= $('input#id_afl_adres_huisnummer').val();
			var afl_adres_postcode 		= $('input#id_afl_adres_postcode').val();
			var afl_adres_woonplaats 	= $('input#id_afl_adres_woonplaats').val();

			if(!notEmpty(voornaam)){ outlineInput('id_naam_voornaam'); checkfields = false; errorMsg += "Voornaam is een verplicht veld \n"; } else { normalInput('id_naam_voornaam');  }
			if(!notEmpty(achternamen)){ outlineInput('id_naam_achternaam'); checkfields = false; errorMsg += "Achternaam is een verplicht veld \n";} else { normalInput('id_naam_voornaam');  }
			if(!notEmpty(adres_straatnaam)){ outlineInput('id_adres_straatnaam'); checkfields = false; errorMsg += "Straatnaam is een verplicht veld \n";} else { normalInput('id_adres_straatnaam');  }
			if(!notEmpty(adres_huisnummer)){ outlineInput('id_adres_huisnummer'); checkfields = false; errorMsg += "Huisnummer is een verplicht veld \n";} else { normalInput('id_adres_huisnummer');  }
			if(!notEmpty(adres_postcode)){ outlineInput('id_adres_postcode'); checkfields = false; errorMsg += "Postcode is een verplicht veld \n";} else { normalInput('id_adres_postcode');  }
			if(!notEmpty(adres_woonplaats)){ outlineInput('id_adres_woonplaats'); checkfields = false; errorMsg += "Woonplaats is een verplicht veld \n";} else { normalInput('id_adres_woonplaats');  }
			if(!isDate(geboortedatum)){ outlineInput('id_geboortedatum'); checkfields = false; errorMsg += "Geboortedatum is een verplicht veld, let hierbij op dat de datu, wordt geschreven als DD/MM/JJJJ \n";} else { normalInput('id_geboortedatum');  }
			if(!emailCheck(emailadres)){ outlineInput('id_emailadres'); checkfields = false; errorMsg += "Een geldig emailadres is een verplicht \n"; } else { normalInput('id_emailadres');  }
			if(!notEmpty(afl_voornaam)){ outlineInput('id_afl_naam_voornaam'); checkfields = false; errorMsg += "Voornaam voor een afleveradres is verplicht \n";} else { normalInput('id_afl_naam_voornaam');  }
			if(!notEmpty(afl_achternamen)){ outlineInput('id_afl_naam_achternaam'); checkfields = false;  errorMsg += "Achternaam voor een afleveradres is verplicht \n";} else { normalInput('id_afl_naam_voornaam');  }
			if(!notEmpty(afl_adres_straatnaam)){ outlineInput('id_afl_adres_straatnaam'); checkfields = false;  errorMsg += "Straatnaam voor een afleveradres is verplicht \n";} else { normalInput('id_afl_adres_straatnaam');  }
			if(!notEmpty(afl_adres_huisnummer)){ outlineInput('id_afl_adres_huisnummer'); checkfields = false;  errorMsg += "Huisnummer voor een afleveradres is verplicht \n";} else { normalInput('id_afl_adres_huisnummer');  }
			if(!notEmpty(afl_adres_postcode)){ outlineInput('id_afl_adres_postcode'); checkfields = false;  errorMsg += "postcode voor een afleveradres is verplicht \n";} else { normalInput('id_afl_adres_postcode');  }
			if(!notEmpty(afl_adres_woonplaats)){ outlineInput('id_afl_adres_woonplaats'); checkfields = false;  errorMsg += "Woonplaats voor een afleveradres is verplicht \n";} else { normalInput('id_afl_adres_woonplaats');  }			
			if((!notEmpty(wachtwoord) && !notEmpty(wachtwoord2)) || wachtwoord != wachtwoord2){ outlineInput('wachtwoord'); outlineInput('id_wachtwoord_herhaal'); checkfields = false;   errorMsg += "Wachtwoord is verplicht en moeten overeenkomen \n"; } else { normalInput('id_wachtwoord_herhaal'); normalInput('id_wachtwoord_herhaal'); normalInput('wachtwoord'); }

			if(checkfields){
				var serializedForm 	= $('form#profielupdate').serialize();
				var dataString 		= 'action=updateprofile&'+ serializedForm;
				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: dataString,
					dataType: 'json',
					success: function(feedback) {
							
						var msg = feedback.msg;
						if(msg == 'a'){
							$('div#user-edit').fadeOut('fast');
							$('div#winkelwagen-user-edit p.feedback').html('Uw gegevens zijn gewijzigd. <br><a href="/lensconcurrent/winkelwagen/">klik hier om terug te keren naar de winkelwagen</a>');							
						}
					}
				});
				
				return false;

			} else {
				alert(errorMsg);			
			}
			
			return false;
			
		});
        
        
		$('input.disablesettings').change(function() {
		
			var id              = $(this).attr('id');
			var status          = $(this).is(':checked');
            
            var productid       = id.substr(8,10);
            var len             = (productid.length);
            var newlen          = len - 2;

            var productid       = productid.substr(0, newlen);
            var aantalId        = 'aantal-'+ productid;
                  
			if(status) {
				$('select.'+id).each( function() {
				
					var sIds 		= $(this).attr('id');
					var sValue 		= $(this).val();
					var iCountOpt 	= document.getElementById(sIds).length;

					$('option[value="0"]', this).remove();
	
					// tel het aantal opties.. als die kleiner is dan 2 oftewel 1, dan disabled laten
					if(iCountOpt > 1) {
						$(this).removeAttr("disabled");
					}

					// waarden weer opslaan..
					$.ajax({
						type: "POST",
						url: "includes/actions/action_winkelwagen.php",
						data: 'action=updateoption&ids='+ sIds +'&value='+ sValue +'&checkboxid='+ id +'&status=0',
						success: function(){
							// $('div#thumbbox-'+ id).fadeOut('slow');
							calculateTotals();
						}
					}); 
   
				});
                
                $("input#"+aantalId).addClass('onlyTwo'); 
                var iAantal = $("input#"+aantalId).val();
                var moduloResult = parseFloat(iAantal % 2);
                if(moduloResult > 0) {
                    // als een gebruiker toch weer voor twee ogen gaat bestellen.. moeten de aantallen en prijzen mee updaten naar de tafel van twee..
                    iAantal = parseFloat(iAantal) + parseFloat(moduloResult);
                    $("input#"+aantalId).val(iAantal);
                 
                    // alle waarden ophalen.
                    var bDebug          = false;
                    var sId             = aantalId;
                    var iCartid         = sId.substr(7);
                    var iAantal         = $("input#"+aantalId).val();
                    parseFloat(iAantal);


                    // btw percentage vaststellen
                    var sBtwPercentage         = $('input#btwpercentage-'+iCartid).val();

                    // totaalprijs (product x aantaal inclusief btw)
                    var sStukPrijs             = $('input#prijs-'+iCartid).val();
                    var sNewTotaalprijs     = iAantal*sStukPrijs;
                    sNewTotaalprijs         = parseFloat(sNewTotaalprijs).toFixed(2);

                    // btw van dit product
                    var sBtwBedrag             = (sNewTotaalprijs/100) * sBtwPercentage;
                    var sNewTotaalprijsEx     = sNewTotaalprijs - sBtwBedrag;
                    sBtwBedrag                 = parseFloat(sBtwBedrag).toFixed(2);
                    sNewTotaalprijsEx         = parseFloat(sNewTotaalprijsEx).toFixed(2);
                    
                    if(bDebug){
                        $('div#debuginfo').append('product: '+ sNewTotaalprijs +'<br />');
                        $('div#debuginfo').append('product btw: '+ sBtwBedrag +'<br />');
                        $('div#debuginfo').append('product ex btw: '+ sNewTotaalprijsEx +'<br /><hr />');
                    }

                
                    // verzendkosten berekenen aan de hand van de factor
                    var sVerzendkosten = $('input#verzendkosten-'+iCartid).val();
                    var sVerzendfactor = $('input#verzendfactor-'+iCartid).val();
                    if( sVerzendfactor == 'Infinity'){ sVerzendfactor = '0.00'; }
                    var sVerzendPer = $('input#verzendaantal-'+iCartid).val();
                    parseFloat(sVerzendPer).toFixed(2);            
                    // -- var sVerzendtotaal = $('input#verzendtotaal-'+iCartid).val();
                    
                    if(iAantal > 0 && sVerzendPer > 0){
                        var iFactorVerzendkosten = Math.ceil(iAantal/sVerzendPer);
                    } else {
                        iFactorVerzendkosten = 0.00
                    }
                    parseFloat(iFactorVerzendkosten).toFixed(2);

                    var sNewVerzendtotaal = sVerzendkosten * iFactorVerzendkosten            
                    iFactorVerzendkosten  = parseFloat(iFactorVerzendkosten);
                    var iNewVerzendtotaal = parseFloat(sNewVerzendtotaal).toFixed(2);


                    // http://www.digi-profs.nl/artikel.php?id=723
                    var sVerzendtotaalBtw     = (iNewVerzendtotaal/100) * sBtwPercentage;
                    var sVerzendtotaalEx     = (iNewVerzendtotaal - sVerzendtotaalBtw);
                    var iVerzendtotaalBtw     = parseFloat(sVerzendtotaalBtw).toFixed(2);
                    var iVerzendtotaalEx     = parseFloat(sVerzendtotaalEx).toFixed(2);                

                    
                    if(bDebug){
                        $('div#debuginfo').append('verzendkosten: '+ sVerzendkosten +'<br />');
                        $('div#debuginfo').append('verzendkosten factor: '+ iFactorVerzendkosten +' <br />');
                        $('div#debuginfo').append('verzendkosten totaal : '+ iNewVerzendtotaal +'<br />');
                        $('div#debuginfo').append('verzendkosten totaal btw : '+ iVerzendtotaalBtw +'<br />');
                        $('div#debuginfo').append('verzendkosten totaal ex btw: '+ iVerzendtotaalEx +'<br /><hr />');
                    }    

                    // totalen berekenen
                    var sTotaalbedraginc     = parseFloat(sNewTotaalprijs) + parseFloat(iNewVerzendtotaal);
                    var iTotaalbedraginc    = parseFloat(sTotaalbedraginc).toFixed(2);                                
                    var sTotaalbedragbtw    = (iTotaalbedraginc/100) * sBtwPercentage;    
                    var iTotaalbedragbtw    = parseFloat(sTotaalbedragbtw).toFixed(2);                                        
                    var iTotaalbedragex        = parseFloat(iTotaalbedraginc - iTotaalbedragbtw).toFixed(2);                            
                    
                    if(bDebug){
                        $('div#debuginfo').append('totaal: '+ iTotaalbedraginc +'<br />');
                        $('div#debuginfo').append('totaal btw : '+ iTotaalbedragbtw +' <br />');
                        $('div#debuginfo').append('totaal ex btw: '+ iTotaalbedragex +'<br /> <hr />');
                    }
                    
                    // alle nieuwe waarden plaatsen.
                    $('input#totaal-'+iCartid).val(sNewTotaalprijs);
                    $('span#totaalhtml-'+iCartid).html(sNewTotaalprijs.replace(".", ','));
                    $('input#totaalbedragbtw-'+iCartid).val(sBtwBedrag);
                    $('input#totaalbedragex-'+iCartid).val(sNewTotaalprijsEx);
                    
                    
                    $('input#verzendfactor-'+iCartid).val(iFactorVerzendkosten);
                    $('span#verzendfactorhtml-'+iCartid).html(iFactorVerzendkosten);
                                
                    if(sNewVerzendtotaal > 0){
                        $('input#verzendtotaal-'+iCartid).val(iNewVerzendtotaal);
                        $('span#verzendtotaalhtml-'+iCartid).html('&euro; '+ iNewVerzendtotaal.replace(".", ','));
                        $('input#verzendbtw-'+iCartid).val(iVerzendtotaalBtw);
                        $('input#verzendex-'+iCartid).val(iVerzendtotaalEx);
                    }    
                            
                    $('input#totaalbedraginc-'+iCartid).val(iTotaalbedraginc);
                    $('input#totaalbedragbtw-'+iCartid).val(iTotaalbedragbtw);
                    $('input#totaalbedragex-'+iCartid).val(iTotaalbedragex);    
            

                    $.ajax({
                        type: "POST",
                        url: "includes/actions/action_winkelwagen.php",
                        data: 'action=updateprijs&iId='+ iCartid +'&aantal='+ iAantal,
                        success: function(){
                            //$('div#thumbbox-'+ id).fadeOut('slow');
                            calculateTotals();
                        }
                    });                    
                }                    

			} else {

				var ids = '';
                var iAantal = $("input#"+aantalId).val(); 
				$('select.'+id).each( function() {
					ids += $(this).attr("id");
					ids += '#';
					$(this).append('<option value="0">-</option>');               
					$(this).val('0'); 
					$(this).attr("disabled", "disabled");               
				});

				$.ajax({
					type: "POST",
					url: "includes/actions/action_winkelwagen.php",
					data: 'action=updateoptions&ids='+ ids +'&value=-1&checkboxid='+ id +'&status=1',
					success: function(){
						//$('div#thumbbox-'+ id).fadeOut('slow');
						calculateTotals();
					}
				});

                $("input#"+aantalId).removeClass('onlyTwo'); 
                $("input#"+aantalId).val('1'); 

                
              var iAantal = $("input#"+aantalId).val();

                var moduloResult = parseFloat(iAantal % 2);
                if(moduloResult > 0) {

                 
                    // alle waarden ophalen.
                    var bDebug          = false;
                    var sId             = aantalId;
                    var iCartid         = sId.substr(7);
                    parseFloat(iAantal);


                    // btw percentage vaststellen
                    var sBtwPercentage         = $('input#btwpercentage-'+iCartid).val();

                    // totaalprijs (product x aantaal inclusief btw)
                    var sStukPrijs             = $('input#prijs-'+iCartid).val();
                    var sNewTotaalprijs     = iAantal*sStukPrijs;
                    sNewTotaalprijs         = parseFloat(sNewTotaalprijs).toFixed(2);

                    // btw van dit product
                    var sBtwBedrag             = (sNewTotaalprijs/100) * sBtwPercentage;
                    var sNewTotaalprijsEx     = sNewTotaalprijs - sBtwBedrag;
                    sBtwBedrag                 = parseFloat(sBtwBedrag).toFixed(2);
                    sNewTotaalprijsEx         = parseFloat(sNewTotaalprijsEx).toFixed(2);
                    
                    if(bDebug){
                        $('div#debuginfo').append('product: '+ sNewTotaalprijs +'<br />');
                        $('div#debuginfo').append('product btw: '+ sBtwBedrag +'<br />');
                        $('div#debuginfo').append('product ex btw: '+ sNewTotaalprijsEx +'<br /><hr />');
                    }

                
                    // verzendkosten berekenen aan de hand van de factor
                    var sVerzendkosten = $('input#verzendkosten-'+iCartid).val();
                    var sVerzendfactor = $('input#verzendfactor-'+iCartid).val();
                    if( sVerzendfactor == 'Infinity'){ sVerzendfactor = '0.00'; }
                    var sVerzendPer = $('input#verzendaantal-'+iCartid).val();
                    parseFloat(sVerzendPer).toFixed(2);            
                    // -- var sVerzendtotaal = $('input#verzendtotaal-'+iCartid).val();
                    
                    if(iAantal > 0 && sVerzendPer > 0){
                        var iFactorVerzendkosten = Math.ceil(iAantal/sVerzendPer);
                    } else {
                        iFactorVerzendkosten = 0.00
                    }
                    parseFloat(iFactorVerzendkosten).toFixed(2);

                    var sNewVerzendtotaal = sVerzendkosten * iFactorVerzendkosten            
                    iFactorVerzendkosten  = parseFloat(iFactorVerzendkosten);
                    var iNewVerzendtotaal = parseFloat(sNewVerzendtotaal).toFixed(2);


                    // http://www.digi-profs.nl/artikel.php?id=723
                    var sVerzendtotaalBtw     = (iNewVerzendtotaal/100) * sBtwPercentage;
                    var sVerzendtotaalEx     = (iNewVerzendtotaal - sVerzendtotaalBtw);
                    var iVerzendtotaalBtw     = parseFloat(sVerzendtotaalBtw).toFixed(2);
                    var iVerzendtotaalEx     = parseFloat(sVerzendtotaalEx).toFixed(2);                

                    
                    if(bDebug){
                        $('div#debuginfo').append('verzendkosten: '+ sVerzendkosten +'<br />');
                        $('div#debuginfo').append('verzendkosten factor: '+ iFactorVerzendkosten +' <br />');
                        $('div#debuginfo').append('verzendkosten totaal : '+ iNewVerzendtotaal +'<br />');
                        $('div#debuginfo').append('verzendkosten totaal btw : '+ iVerzendtotaalBtw +'<br />');
                        $('div#debuginfo').append('verzendkosten totaal ex btw: '+ iVerzendtotaalEx +'<br /><hr />');
                    }    

                    // totalen berekenen
                    var sTotaalbedraginc     = parseFloat(sNewTotaalprijs) + parseFloat(iNewVerzendtotaal);
                    var iTotaalbedraginc    = parseFloat(sTotaalbedraginc).toFixed(2);                                
                    var sTotaalbedragbtw    = (iTotaalbedraginc/100) * sBtwPercentage;    
                    var iTotaalbedragbtw    = parseFloat(sTotaalbedragbtw).toFixed(2);                                        
                    var iTotaalbedragex        = parseFloat(iTotaalbedraginc - iTotaalbedragbtw).toFixed(2);                            
                    
                    if(bDebug){
                        $('div#debuginfo').append('totaal: '+ iTotaalbedraginc +'<br />');
                        $('div#debuginfo').append('totaal btw : '+ iTotaalbedragbtw +' <br />');
                        $('div#debuginfo').append('totaal ex btw: '+ iTotaalbedragex +'<br /> <hr />');
                    }
                    
                    // alle nieuwe waarden plaatsen.
                    $('input#totaal-'+iCartid).val(sNewTotaalprijs);
                    $('span#totaalhtml-'+iCartid).html(sNewTotaalprijs.replace(".", ','));
                    $('input#totaalbedragbtw-'+iCartid).val(sBtwBedrag);
                    $('input#totaalbedragex-'+iCartid).val(sNewTotaalprijsEx);
                    
                    
                    $('input#verzendfactor-'+iCartid).val(iFactorVerzendkosten);
                    $('span#verzendfactorhtml-'+iCartid).html(iFactorVerzendkosten);
                                
                    if(sNewVerzendtotaal > 0){
                        $('input#verzendtotaal-'+iCartid).val(iNewVerzendtotaal);
                        $('span#verzendtotaalhtml-'+iCartid).html('&euro; '+ iNewVerzendtotaal.replace(".", ','));
                        $('input#verzendbtw-'+iCartid).val(iVerzendtotaalBtw);
                        $('input#verzendex-'+iCartid).val(iVerzendtotaalEx);
                    }    
                            
                    $('input#totaalbedraginc-'+iCartid).val(iTotaalbedraginc);
                    $('input#totaalbedragbtw-'+iCartid).val(iTotaalbedragbtw);
                    $('input#totaalbedragex-'+iCartid).val(iTotaalbedragex);    
            

                    $.ajax({
                        type: "POST",
                        url: "includes/actions/action_winkelwagen.php",
                        data: 'action=updateprijs&iId='+ iCartid +'&aantal='+ iAantal,
                        success: function(){
                            //$('div#thumbbox-'+ id).fadeOut('slow');
                            calculateTotals();
                        }
                    });                    
                }                 
               
			}
		});

		$('select#quickselect').mouseenter(function () {
            $('span#quickselect-text').hide();
            $(this).css("width","auto");
        });

        $('select#quickselect').blur(function () {
            $('span#quickselect-text').show(); 
            $(this).css("width","120px");
        });
        
	});	

	function showCartloginregister(id){
		$('div#winkelwagen-quick-buy').fadeOut('fast');
		$('div#winkelwagen-user-login').fadeOut('fast');
		$('div#winkelwagen-user-register').fadeOut('fast');
		$('div#winkelwagen-user-activate').fadeOut('fast');
		$('div#winkelwagen-user-buy').fadeOut('fast');
		// $('div#winkelwagen-user-ideal').fadeOut('fast');
		$('div#winkelwagen-user-thanks').fadeOut('fast');
		$('div#'+ id).fadeIn('slow');
		return false;
	}
	
	function changeCountry(){
		// id van het land ophalen
		var landId = $('select#id_afl_adres_land').val();
		
		// prijs van het land ophalen uit hidden input
		var LandPrijsInput 			= 'bedrag-land-'+ landId;
		var Landprijs 				= $('input#'+LandPrijsInput).val();
		var LandBedrag				= parseFloat(Landprijs).toFixed(2);
		$('input#verzendkosten-land').val(LandBedrag);
		
		updateUser();
		
		// landnaam ophalen uit hidden input
		var LandNaamInput 			= 'naam-land-'+ landId;
		var Landnaam 				= $('input#'+LandNaamInput).val();
		$('span#land-verzendkosten').html(Landnaam);
		$('span#verzendkosten-land').html(Landprijs);
		
		// nieuwe waarden in de verborgen velden plaatsen.
		$('input#afl_adres_land_naam').val(Landnaam);
		$('input#afl_adres_land_prijs').val(LandBedrag);		

		// prijs van verzendmethode ophalen en totaal bedrag maken en in de inputs zetten
		var betaalmethodePrijs 			= $('input#verzendkosten-betaaltype').val();
		var betaalmethodeBedrag			= parseFloat(betaalmethodePrijs).toFixed(2);
		var verzendkostenRegulier 		= parseFloat(LandBedrag) + parseFloat(betaalmethodeBedrag);
		var totaalverzendkostenRegulier = parseFloat(verzendkostenRegulier).toFixed(2);
		
		$('span.verzendkosten-regulier').html(totaalverzendkostenRegulier);
		
		// totalen herberekenen
		calculateTotals();
	}
	
	function changePayMethod(){
		// id van het verzendmethode ophalen
		var methodeId = $('select#id_factuur_betaalmethode').val();
		
		// prijs en naam van de methode ophalen uit hidden input
		var MethodePrijsInput 		= 'bedrag-betaalmethode-'+ methodeId;
		var MethodePrijs 			= $('input#'+MethodePrijsInput).val();
		var MethodeBedrag			= parseFloat(MethodePrijs).toFixed(2);
		$('input#verzendkosten-betaaltype').val(MethodeBedrag);		

		updateUser();		
		
		var MethodeNaamInput 		= 'naam-betaalmethode-'+ methodeId;
		var MethodeNaam 			= $('input#'+MethodeNaamInput).val();
		$('span#betaaltype-verzendkosten').html(MethodeNaam);
		$('span#verzendkosten-betaaltype').html(MethodeBedrag);		
		
		// betaalmethode vars in de hidden inputs zetten
		$('input#betaal_methode_naam').val(MethodeNaam);
		$('input#betaal_methode_prijs').val(MethodeBedrag);
		
		// prijs van landen verzendkosten ophalen en totaal bedrag maken en in de inputs zetten
		var LandPrijs 				= $('input#verzendkosten-land').val();
		var LandBedrag				= parseFloat(LandPrijs).toFixed(2);
		var verzendkostenRegulier 	= parseFloat(LandBedrag) + parseFloat(MethodeBedrag);
		var totaalverzendkostenRegulier = parseFloat(verzendkostenRegulier).toFixed(2);		
		
		$('span.verzendkosten-regulier').html(totaalverzendkostenRegulier);
		
		calculateTotals();
	}

	function updateUser(){
		var serializedForm 	= $('form#formkopen').serialize();
		var dataString 		= 'action=updateuser&'+ serializedForm;
		$.ajax({
			type: "POST",
			url: "includes/actions/action_winkelwagen.php",
			data: dataString,
			dataType: 'json',
			success: function(feedback) {
				var msg = feedback.msg;
				if(msg == 'a'){
					return true;
				} else if(msg == 'b') {
					return false;
				}
			}
		});	
	}
	
	function calculateTotals() {

		var totaalVerzendkosten		= 0;
		var totaalSubbedrag			= 0;
		var totaalBedragbtw6		= 0;
		var totaalBedragbtw19		= 0;
		//var totaalBtw				= 0;		
		var totaalBedrag			= 0;	
        var korting                 = 0;    
		var totaalBedragEx			= 0;	
        var verzenkostenlimiet      = parseFloat($('input#verzenkosten_limiet').val()).toFixed(2);    
		var verzenkostenMax 		= parseFloat($('input#verzendkosten_max').val()).toFixed(2);	
	
		// alert('verzenkostenMax: '+verzenkostenMax);
		
		// alle totaalprijzen per product ophalen (totaalprijs = aantal x stuksprijs + extra verzendkosten)
		$('input.bereken-totaalbedraginc').each(function(){
			var sId = $(this).attr('id');
			totaalBedrag += parseFloat($(this).val());
		});		
		
		// alle totaalprijzen per product ophalen zonder extra verzendkosten(totaalprijs = aantal x stuksprijs)
		$('input.bereken-prijs').each(function(){
			var sId = $(this).attr('id');
			totaalBedragEx += parseFloat($(this).val());
		});
		
		// alle verzendkosten per product ophalen (verzendkosten is afhankelijk van een btw factor)
		$('input.bereken-verzendkosten').each(function(){
			var sId = $(this).attr('id');
			totaalVerzendkosten += parseFloat($(this).val());
		});	

		// als het aankoopbedrag groter is dan het verzendkosten limiet, dan moeten de verzendkosten als korting op de factuur komen
		if(verzenkostenlimiet > 0 && totaalBedragEx > verzenkostenlimiet && totaalBedragEx > 0) {
  
			// de btwbedragen zijn totalen van ((totaalprijs + verzenkosten) * btw percentage) afhankelijk van type percentage wordt alles opgeteld.
			$('input.bereken-prijs').each(function(){
				var sId = $(this).attr('id');
				var iCartid = sId.substr(7);
				if($('input#btwpercentage-'+iCartid).val() == '6.00'){
					var btw = parseFloat( ($(this).val() / 106) * 6);
					totaalBedragbtw6 += parseFloat(btw);
				} else if($('input#btwpercentage-'+iCartid).val() == '19.00'){
					var btw = parseFloat( ($(this).val() / 119) * 19);
					totaalBedragbtw19 += parseFloat(btw);					
				}
			});
			
			$("div#noshipping").slideDown('slow');
            $("div#maxshipping").slideUp('slow'); 
			
			// verzendkosten van land en betaalmethode meenemen in de berekening, gewoon 19% btw
			var verzendkostenLand 			    = 0;
			var verzenkostenBetaalmethode 	    = 0;
			var totaalRegulierVerzendkosten     = 0;
			totaalBedrag					    = totaalBedragEx;
			totaalVerzendkosten 			    += parseFloat(verzendkostenLand);
			totaalVerzendkosten 			    += parseFloat(verzenkostenBetaalmethode);
			totaalVerzendkosten 			    = (totaalVerzendkosten - totaalVerzendkosten);
			totaalRegulierVerzendkostenBtw      = ((totaalRegulierVerzendkosten/119) * 0.19)
			totaalBedragbtw19 				    += totaalRegulierVerzendkostenBtw;				

			
        // als het aankoopbedrag groter is dan het verzendkosten limiet, dan moeten de verzendkosten als korting op de factuur komen
        } else if(verzenkostenMax > 0 && totaalVerzendkosten > verzenkostenMax ){

            $("div#noshipping").slideUp('slow')
            
            // verzendkosten van land en betaalmethode meenemen in de berekening, gewoon 19% btw   
            var verzendkostenLand               = $('input#verzendkosten-land').val();
            var verzenkostenBetaalmethode       = $('input#verzendkosten-betaaltype').val();
            var totaalVerzendkosten             = parseFloat(verzendkostenLand) + parseFloat(verzenkostenBetaalmethode) + parseFloat(verzenkostenMax);

            totaalBedrag                        = totaalBedragEx + totaalVerzendkosten;
            totaalBedragbtw6                    = 0;  
            totaalBedragbtw19                   = ((totaalBedrag/119)*19);  
            
            $("div#maxshipping").slideDown('slow');  
  
		// als het aankoop bedrag lager is dan het verzendkosten limiet, groter dan de verzendmax of er is geen aankooplimiet en verkoopmax, dan moeten wel de verzendkosten worden berekend
		} else {
        
			$("div#noshipping").slideUp('slow');
            $("div#maxshipping").slideUp('slow'); 

			// de btwbedragen zijn totalen van ((totaalprijs + verzenkosten) * btw percentage) afhankelijk van type percentage wordt alles opgeteld.
            /*
			$('input.bereken-totaalbedragbtw').each(function(){
				var sId = $(this).attr('id');
				var iCartid = sId.substr(16);
				if($('input#btwpercentage-'+iCartid).val() == '6.00'){
					totaalBedragbtw6 += parseFloat($(this).val());
				} else if($('input#btwpercentage-'+iCartid).val() == '19.00'){
					totaalBedragbtw19 += parseFloat($(this).val());
				}
			});
            */

			// verzendkosten van land en betaalmethode meenemen in de berekening, gewoon 19% btw
			var verzendkostenLand 			= $('input#verzendkosten-land').val();
			var verzenkostenBetaalmethode 	= $('input#verzendkosten-betaaltype').val();
			var totaalVerzendkosten         = parseFloat(verzendkostenLand) + parseFloat(verzenkostenBetaalmethode) + totaalVerzendkosten;
            
			totaalBedrag					= totaalBedragEx + totaalVerzendkosten;
			totaalVerzendkosten 		    = parseFloat(totaalVerzendkosten);
            totaalBedragbtw6                = 0;            
            totaalBedragbtw19               = ((totaalBedrag/119)*19);		
			
		}		
	

		// subtotaal berekeken (totaal bedrag min de btwbedragen)
		totaalSubbedrag = ((totaalBedrag-totaalBedragbtw19)-totaalBedragbtw6);

		// bedragen voorzien van twee decimalen
		var totaalVerzendkosten		= parseFloat(totaalVerzendkosten).toFixed(2);
		var totaalSubbedrag			= parseFloat(totaalSubbedrag).toFixed(2);
		var totaalBedragbtw6		= parseFloat(totaalBedragbtw6).toFixed(2);
		var totaalBedragbtw19		= parseFloat(totaalBedragbtw19).toFixed(2);
		var totaalBedrag			= parseFloat(totaalBedrag).toFixed(2);

		// waarden in de velden zetten
		$('input#totaal-verzendkosten').val(totaalVerzendkosten);
		$('input#totaal-subbedrag').val(totaalSubbedrag);
		$('input#totaal-bedragbtw6').val(totaalBedragbtw6);
		$('input#totaal-bedragbtw19').val(totaalBedragbtw19);
		$('input#totaal-totaalbedrag').val(totaalBedrag);
		
		$('span#totaal-verzendkostenhtml').html(totaalVerzendkosten);
		$('span#totaal-subbedraghtml').html(totaalSubbedrag);
		$('span#totaal-bedragbtw6html').html(totaalBedragbtw6);
		$('span#totaal-bedragbtw19html').html(totaalBedragbtw19);
		$('span#totaal-totaalbedraghtml').html(totaalBedrag);
		
		if(totaalBedrag == 0){
			$('input#id_buybutton').hide();
		} else {
			$('input#id_buybutton').slideDown('slow');
		}
		
		var sKoperHash = $('input#buy-user-hash').val();
		if(sKoperHash != ''){
			$.ajax({
				type: "POST",
				url: "includes/actions/action_winkelwagen.php",
				data: 'action=updatetotals&koperhash='+ sKoperHash +'&totaalVerzendkosten='+ totaalVerzendkosten +'&totaalSubbedrag='+ totaalSubbedrag +'&totaalBedragbtw6='+ totaalBedragbtw6 +'&totaalBedragbtw19='+ totaalBedragbtw19 +'&totaalBedrag='+ totaalBedrag,
				success: function(){
				}
			});	
		}
	}
	
	// voor het gebruik van exotische font gebruiken we Cufon
	Cufon('h1')('div#mainmenu h2')('div#veelgezocht h2')('div#nieuwsbrief h2')('div#service h2');
	
	
	function confirming(sQuestion){
		if (confirm(sQuestion)){
			return true;
		} else {
			return false;
		}
	}
	
	// productopties moeten ingevuld zijn
	function checkProductOptions(){
		var errorflag = true;

		
		$('select.winkelwagenProductOptions').css({"border-color":"#A5ACB2","border-style":"solid","border-width":"1px"});
		$('select.winkelwagenProductOptions').each( function() {
            var id =  $(this).attr('id');    
			var val = $(this).val();				
			if( val == '' ) {		
				this.focus();
				errorflag = false;
				return false;
			} 
		});
		
		$('select.winkelwagenProductOptions').each( function() {
			var val = $(this).val();				
			if( val == '' ) {		
				$(this).css({"border-color":"red","border-style":"solid","border-width":"1px"});
			}
		});
		
		return errorflag;
	};

	
	
	// validatie functies
	function postcodeCheck(postcode) {
		var result 	= false;
		var filter  = /^[0-9]{4}[ A-Za-z]{2,3}$/;
		
		if ((postcode.length) > 0) {
			if (filter.test(postcode)) {
				result = true;
			}
		}
		return result
	}	

	function emailCheck(addres) {

		var result 	= false;
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		
		if (addres.length > 0) {
			if (filter.test(addres)) {
				result = true;
			}
		}
		return result;
	}
	
	function notEmpty(str) {
		var result 	= false;
		if (str.length > 0) {
			result = true;
		}
		return result;
	}	
	
	function isDate(date) {
		
		var result 	= false;
		var filter  = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
		
		if ((date.length) > 0) {
			if (filter.test(date)) {
				result = true;
			}
		}
		return result;
	}	

	function outlineInput(id){
		$('#'+id).addClass('outline');
	}
	
	function normalInput(id){
		$('#'+id).removeClass('outline');
	}

