	var winkelwagen = { };

	winkelwagen.triggertimer = null;

	/*
	Functies voor het plussen en minnen van een product in de winkelwagen
	*/
	function trigger_plus(veld, waarde) 
	{
			var o = $(veld);
			var nval = parseInt($(veld).value); 
			if (isNaN(nval))
				return;
			nval = nval + waarde;
			if (nval <= 0)
				nval = 1;
	    o.value = nval;
	    if (o.value!=o.defaultValue)
	    {
		clearTimeout(winkelwagen.triggertimer);
		winkelwagen.triggertimer = setTimeout("winkelwagen.updateWinkelwagen()", 600);
		
	    }
	}

	winkelwagen.parseBetaalOpniew = function(resp,re)
	{
		winkelwagen.lockbuttons(true);
		if (resp.responseText.substring(0,5) == "REDIR") {
			document.location.href = resp.responseText.substring(5).unescapeHTML();
		} else {
			$(re).innerHTML = resp.responseText;
			setTimeout("$('"+$(re).id+"').innerHTML.evalScripts()",1000);
		}
	}

	function trigger_min(veld, waarde) 
	{
			var o = $(veld);
			var nval = parseInt($(veld).value); 
			if (isNaN(nval))
				return;
			nval = nval - waarde;
			if (nval <= 0)
				nval = 1;
	    o.value = nval;
	    if (o.value!=o.defaultValue)
	    {
		clearTimeout(winkelwagen.triggertimer);
		winkelwagen.triggertimer = setTimeout("winkelwagen.updateWinkelwagen()", 600);
	    }
	}



	winkelwagen.updateAantalBlur = function(obj)
	{
		var o = $(obj);
		var i = parseInt(o.value);
		if (isNaN(i))
			o.value = o.defaultValue;
		if (i == 0)
			o.value = "1";
			
		if (o.value!=o.defaultValue)
			winkelwagen.updateWinkelwagen();
	}
	winkelwagen.wwdiv = null;

	winkelwagen.setWwdiv = function(divid)
	{
		winkelwagen.wwdiv = $(divid);
	}

	winkelwagen.submitFunction = function()
	{

		res = null;
		pars = null;
		callback = null;
		var type = null;
		
		var args = $(arguments);
		if (args.length == 0)
			return;
		
		pars = args[0];

		
		if (args[1]!=undefined)
			res = args[1];
			
		if (args[2]!=undefined)
			callback = args[2];
		
		if (res != null)
			if ($(res)==undefined)
				res = null;
		
		if (callback!=null)		
			if (!window.callback)
				callback = null;
		

			var myAjax = new Ajax.Request(
				'/index.php', 
				{
					method: 'post', 
					parameters: pars, 
					onComplete: function(resp) { 
						
						
						if (callback!=null) 
						{
							try 
								{ 
									if (typeof callback != 'function')
									{
										var st = "";
										if (res==null)
										{
											st = callback+"(resp);";
										} else {
											st = callback+"(resp,res);";
										}
										eval(st);
									} else {
										if (res==null)
										{
											callback(resp); 
										} else {
											callback(resp,res); 
										}
									}
								} 
							catch(err) {
								alert('Error! (42) - '+err.description );
								}; 
						} else { 
							winkelwagen.verwerkSubmit(resp,res); 
						}; 
					}
				});			
	}


	// div pars url
	winkelwagen.loadIntoDiv = function()
	{
		var div = null;
		var pars = null;
		var u = null;
		
		var args = $(arguments);
		if (args.length == 0)
			return;
		
		div = args[0];
		if ($(div)==undefined)
			return;
		
		if (args[1]!=undefined)
			pars = args[1];	
		
		if (args[2]!=undefined)
		{
			u = args[1];		
		} else {
			u = "/index.php";
		}
			
			
		

		var myAjax = new Ajax.Updater(
			div, 
			u, 
			{
				method: 'post', 
				parameters: pars,
				onComplete: function(resp) {  if (resp.responseText.substring(0,5) == "REDIR") { document.location.href = resp.responseText.substring(5).unescapeHTML(); return; } else { resp.responseText.evalScripts(); } }
			});
		
	}

	winkelwagen.verwerkSubmit = function(resp,res)
	{

		if (resp.responseText.substring(0,2) == "OK")
		{
			
			if (res!=null)
			{
				$(res).innerHTML = resp.responseText.substring(2);
				Element.show($(res));
			} else {
				if (resp.responseText.length > 0)
					alert(resp.responseText.substring(2));
			}
		} else if (resp.responseText.substring(0,5) == "REDIR") {


			document.location.href = resp.responseText.substring(5).unescapeHTML();
			
			} else if (resp.responseText.indexOf('<script') == 0) {
			
			resp.responseText.evalScripts();
			return;		
			
			} else {
			if (res!=null)
			{
				$(res).innerHTML = resp.responseText;
				Element.show($(res));
			} else {
				if (resp.responseText.length > 0)
					alert(resp.responseText);
			}		
		}
	}

	winkelwagen.betaal = function(frm,errdiv)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.lockbuttons(true);
		winkelwagen.submitFunction(pars+"&winkelwagen=betalen",errdiv,winkelwagen.betaalReply);	
	}
	winkelwagen.betaalReply = function(resp,res)
	{
		if (resp.responseText.substring(0,2) == "OK")
		{
			
			if (res!=null)
			{
				$(res).innerHTML = resp.responseText.substring(2);
				Element.show($(res));
			} else {
				if (resp.responseText.length > 0)
					alert(resp.responseText.substring(2));
			}
		} else if (resp.responseText.substring(0,5) == "REDIR") {


			document.location.href = resp.responseText.substring(5).unescapeHTML();
			
			} else if (resp.responseText.indexOf('<script') == 0) {
			
			resp.responseText.evalScripts();
			return;		
			
			} else {
				winkelwagen.lockbuttons(false);
			if (res!=null)
			{
				$(res).innerHTML = resp.responseText;
				Element.show($(res));
			} else {
				if (resp.responseText.length > 0)
					alert(resp.responseText);
			}		
		}	
		
	}
	winkelwagen.lockedbuttons = null;
	winkelwagen.lockbuttons = function(state)
	{
		
		if (state)
		{
			if (winkelwagen.lockedbuttons==null)
			{
				winkelwagen.lockedubttons = $('btd').innerHTML;
				$('btd').innerHTML = "<img style='float:right;' src='/images/kassa/loading.gif' />";
			}
		} else {
			if (winkelwagen.lockedubttons!=null)
			{
				$('btd').innerHTML = winkelwagen.lockedubttons;
			}
		}
		
	}

	winkelwagen.betaalOpnieuw = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=betaalOpnieuw");		
	}

	winkelwagen.saveAfleverAdres = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=saveverzendadres",null,winkelwagen.parseAfleveradresz);

	}
	winkelwagen.parseAfleveradresz = function(resp,re)
	{
		if (resp.responseText.indexOf('<script') == 0)
		{
			resp.responseText.evalScripts();
			return;
		
		}
		if (resp.responseText.substring(0,5) == "REDIR") {

			document.location.href = resp.responseText.substring(5).unescapeHTML();
			return;
		}
			

		alert(resp.responseText);
		

	}

	winkelwagen.saveAfleverAdres2 = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=saveadresgegevens",null,winkelwagen.parseAfleveradres);

	}

	winkelwagen.setAfleveradres = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=addVerzendadres",null,winkelwagen.parseAfleveradres);

	}
	winkelwagen.setBetaalmethode = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=setBetaalmethode",null,winkelwagen.parseBetaalmethode);	
	}
	winkelwagen.setBetaalmethode2 = function(frm)
	{
		var pars = Form.serialize($(frm));
		winkelwagen.submitFunction(pars+"&winkelwagen=setBetaalmethode2",null,winkelwagen.parseBetaalmethode);
	}
	winkelwagen.parseBetaalmethode = function(resp,re)
	{
		
		
		if (resp.responseText.indexOf('<script') == 0)
		{
			resp.responseText.evalScripts();
			return;
		}
		if (resp.responseText.substring(0,5) == "REDIR") {

			document.location.href = resp.responseText.substring(5).unescapeHTML();
		}	
	}

	winkelwagen.parseAfleveradres = function(resp,re)
	{
		if (resp.responseText.indexOf('<script') == 0)
		{
			resp.responseText.evalScripts();
			return;
		
		}
		if (resp.responseText.substring(0,5) == "REDIR") {

			document.location.href = resp.responseText.substring(5).unescapeHTML();
			return;
		}
			
		account.clearErrors();
	  var d = document.getElementById("myErrorDiv");
	  if (d) {
	      if (d.style.display != "none") {
		  new Effect.SlideUp(d, {duration:0.2});
	      }
	  } else {
		alert(resp.responseText);
	  }	

	}

	winkelwagen.addProduct = function(k,frm)
	{
		var knop = $(k);
		if (knop == null)
		{

			return;	
		}
		if (winkelwagen.disabledbuttons[knop.id] != undefined)
		{
			return;
		}
		winkelwagen.setLoading(knop.id);
		var arr =$(frm).getInputs('text');
	   arr.each(function(item) {
	      if (item.defaultValue == item.value)
		item.value = '';
	   });
		
		
		var pars = Form.serialize(frm)+"&winkelwagen=addProduct";
		winkelwagen.submitFunction(pars,null,function(resp,res) { winkelwagen.stopLoading(knop.id); } );

	}

	// pid attrib aantal updatefield
	winkelwagen.addProductOud = function()
	{
		
		var args = $(arguments);
		if (args.length != 4)
			return;
		var pid = args[0];
		var attrib = args[1];
		var aantal = $(args[2]).value;
		var knop = args[3];
		
		
		if (winkelwagen.disabledbuttons[knop.id] != undefined)
		{
			return;
		}
		

		winkelwagen.setLoading(knop.id);
		
		
		if (attrib != null)
		{	
			winkelwagen.submitFunction("winkelwagen=addProduct&id="+pid+"&aantal="+aantal+"&attrib="+attrib,null,function(resp,res) { winkelwagen.stopLoading(knop.id); } );
		} else {
			winkelwagen.submitFunction("winkelwagen=addProduct&id="+pid+"&aantal="+aantal,null,function(resp,res) { winkelwagen.stopLoading(knop.id); } );
		}
	}
	winkelwagen.disabledbuttons = new Array();

	winkelwagen.stopLoading = function(knop)
	{
		
		if ($(knop).value)
		{
		$(knop).value=getTrans('toegevoegd');	
		} else
		$(knop).innerHTML=getTrans('toegevoegd');
		
		
		winkelwagen.updateWwdiv();
		
		
		
		setTimeout("$('"+knop+"').innerHTML=winkelwagen.disabledbuttons['"+knop+"'];winkelwagen.disabledbuttons['"+knop+"'] = null;",1500);
	} 
	winkelwagen.updateWwdiv = function()
	{
		
		if (!winkelwagen.wwdiv)
			return;
			
		winkelwagen.submitFunction("winkelwagen=getInhoud");	
		
		// winkelwagen.loadIntoDiv(winkelwagen.wwdiv,'winkelwagen=getInhoud');
	}
	winkelwagen.setLoading = function(knop)
	{
		
		winkelwagen.disabledbuttons[knop] = $(knop).innerHTML;
		if ($(knop).value)
		{
			$(knop).value=getTrans('bezigmettoevoegen');	
		} else
			$(knop).innerHTML=getTrans('bezigmettoevoegen');	
		
	}


	winkelwagen.updateWinkelwagen = function()
	{
		var pars = Form.serialize('winkelwagenform');
		winkelwagen.submitFunction(pars+"&winkelwagen=updateAantal",null,function(resp,res) {  document.location.reload();  } );
	}

	winkelwagen.nextStep = function(event)
	{
		if (winkelwagen.nextok)
		{
			
			winkelwagen.submitFunction("winkelwagen=next&cp="+$('cp').value);
		}
	}

	winkelwagen.nextok = false;

	winkelwagen.removeArtikel = function(pid)
	{
		
		var el = document.getElementsByName('ww['+pid+'][aantal]');
		if (el.length > 0)
		{
			el = el[0];
			el.value = 0;
			winkelwagen.updateWinkelwagen();
		}
	}

	winkelwagen.bindUpdate = function(id)
	{
		document.observe('dom:loaded',function() { $('winkelwagenform').onsubmit = function() { return false; }; Event.observe($(id),'click',winkelwagen.updateWinkelwagen) });
	}

	winkelwagen.bindNext = function(id)
	{
		
		// document.observe('dom:loaded',function() { Event.observe($(id),'click',winkelwagen.nextStep) });
	}

	winkelwagen.setWinkelwagenContents = function(arr)
	{
		$(winkelwagen.wwdiv).innerHTML = "";
		var output = "";
	  for (var key in arr) 
	  {
		// arr[key].naam
		// arr[key].id
		// arr[key].aantal
		output += "<a href='/"+currTaal+"/p/"+arr[key].id+"/product.html'>"+winkelwagen.verkort(arr[key].naam,22)+"</a><br/>";
	  } 
	  
	  $(winkelwagen.wwdiv).innerHTML = output; 		
	}

	winkelwagen.verkort = function(str,len)
	{
		if (str.length <= len)
		return str;
		var strnew = str.substring(0,len-3)+"&#8230;";
		return strnew;	
	}

	winkelwagen.errorArray = new Array();
	winkelwagen.errorArrayMsg = new Array();
	winkelwagen.setErrors = function (arr) 
	{

			
		winkelwagen.clearErrors();
			
	    for (var key in arr) {
		
	      var el = document.getElementsByName("vals[" +key + "]");
	      if (el.length == 0)
		continue;
		
	      winkelwagen.errorArray.push(el[0]);
	      winkelwagen.errorArrayMsg.push(arr[key]);
	     
	      try {
		el[0].addClassName("kassa_error");
	      } catch (err)
	      {
		
	      }
		
		
	    }
	    
		
	    if (winkelwagen.errorArrayMsg.length == 0) {
		winkelwagen.clearErrors();
					winkelwagen.hideErrordiv();
	    } else {
		winkelwagen.buildErrorDiv();
	    }
	    
	    
	}
	winkelwagen.hideErrordiv = function()
	{
	    var d = document.getElementById("myErrorDiv");
	    if (d) {
		if (d.style.display != "none") {
		    new Effect.SlideUp(d, {duration:0.2});
		}
	    }	
	}
	winkelwagen.clearErrors = function()
	{
	 for (i=0;i<winkelwagen.errorArray.length;i++)
	 {
		$(winkelwagen.errorArray[i]).removeClassName('kassa_error');
	 }

	 winkelwagen.errorArray = new Array();
	 winkelwagen.errorArrayMsg = new Array();	
	}

	winkelwagen.buildErrorDiv = function () {
	    var msg = "<ul>";
	    for (i = 0; i < winkelwagen.errorArrayMsg.length; i++) {
		msg += "<li>" + winkelwagen.errorArrayMsg[i] + "</li>";
	    }
	    msg += "</ul>";
	    var d = document.getElementById("myErrorDiv");
	    if (d) {
		d.innerHTML = msg;
		if (d.style.display == "none") {
		    new Effect.SlideDown(d, {duration:0.2});
		}
	    }
	}
	winkelwagen.checkEmailKlant = function(email)
	{
		
		var pars = "email="+email;
		winkelwagen.submitFunction(pars+"&winkelwagen=checkemail",null,winkelwagen.saveNewReply);			
	}
	winkelwagen.submitForm = function(frm,d)
	{
		var pars = Form.serialize(frm);
		winkelwagen.submitFunction(pars,d);			
	}
	winkelwagen.saveNewform = function(frm)
	{
		var pars = Form.serialize(frm);
		winkelwagen.submitFunction(pars+"&winkelwagen=saveident",null,winkelwagen.saveNewReply);		
	}
	winkelwagen.saveNewReply = function(resp,rep)
	{
		
		if (resp.responseText.indexOf('<script') == 0)
		{
			var tststr = resp.responseText+"";
			
			tststr.evalScripts();
		
			return;
		}
		account.clearErrors();
	  var d = document.getElementById("myErrorDiv");
	  if (d) {
	      if (d.style.display != "none") {
		  new Effect.SlideUp(d, {duration:0.2});
	      }
	  }

		
	}
	winkelwagen.addCoupon = function(cc)
	{
		winkelwagen.submitFunction("winkelwagen=addCoupon&cc="+cc);		
	}
	winkelwagen.removeCoupon = function(cc)
	{
		winkelwagen.submitFunction("winkelwagen=removeCoupon&cc="+cc);		
	}
	winkelwagen.checkwinkelwagen = function()
	{
		winkelwagen.submitFunction("winkelwagen=checkwinkelwagen",null,winkelwagen.checkwinkelwagenUpdate);		
	}

	winkelwagen.checkwinkelwagenUpdate = function(resp)
	{
		if (resp.responseText!="OK")
		{
			document.location.replace("/index.php?p=winkelwagen");
		} else {
			setTimeout("winkelwagen.checkwinkelwagen()", 15000);
	}
}

				
Event.observe(window, 'load',
  function() 
  { 
		new PeriodicalExecuter(function(pe) {
		  winkelwagen.submitFunction("winkelwagen=ping",null, function(resp) {} );	
		}, 300);  		
  }
);
	
setStar = function(id,i)
{
	var inp = $("producten["+id+"]");
	inp.value = i;
}
resetStars = function(id)
{
	var inp = $("producten["+id+"]");
	setStars(id,inp.value);
}	
setStars = function(id,i)
{
	for (x=0;x<5;x++)
	{
		var obj = $('star_'+id+'_'+x);
		if (i>x || i==-1)
		{
			obj.src = '/images/recensie/ster_leeg.gif';
		} else {
			obj.src = '/images/recensie/ster_vol.gif';
		}
	}
}		
