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.message+'('+err.lineNumber+')' );
							}; 
					} 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 {
			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 {
			alert(resp.responseText);
		}		
	}
}

winkelwagen.betaal = function(frm,errdiv)
{

	var pars = Form.serialize($(frm));
	winkelwagen.lockbuttons(true);
	winkelwagen.checkwinkelwagenIgnore = 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 {
			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 {
			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.name != 'paantal' )
      	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.noticekkd = false;
winkelwagen.nextStep = function(event)
{
	if (winkelwagen.nextok)
	{
		var kkd = $$('.kassakado');
		if (kkd.length > 0 && !winkelwagen.noticekkd)
		{
			$$('.kassakado').each(function(s)
			{
				if ($F(s) == '0')
				{
					alert(getTrans('kassa_kassakoopje_vergeten'));
					winkelwagen.noticekkd = true;
					return;
				}
			});
			if (!winkelwagen.noticekkd)
				winkelwagen.submitFunction("winkelwagen=next&cp="+$('cp').value);
		} else {
			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)
{
   if (typeof(arr) == 'string' && arr == '')
                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.checkwinkelwagenIgnore = false;
winkelwagen.checkwinkelwagen = function()
{
	if (winkelwagen.checkwinkelwagenIgnore)
		return;
	winkelwagen.submitFunction("winkelwagen=checkwinkelwagen",null,winkelwagen.checkwinkelwagenUpdate);		
}

winkelwagen.checkwinkelwagenUpdate = function(resp)
{
	if (resp.responseText!="OK")
	{
		document.location.reload();
	} 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';
		}
	}
}		

winkelwagen.setOrderIgnore = function()
{
	document.cookie = "orderprogress=;expires=Thu, 01-Jan-1970 00:00:01 GMT";
	document.location.reload();
}
winkelwagen.updateKassaKado = function(regel,prod)
{
	winkelwagen.submitFunction("winkelwagen=addKassaKado&regel="+regel+"&prod="+prod,null,function() {} );		
}

winkelwagen.addKassaProduct = function(pid)
{
	var pars = "winkelwagen=addProduct&paantal=1&pid="+pid+"&src=winkelwagen";
	winkelwagen.submitFunction(pars,null,function(resp,res) { document.location.href='/index.php?p=winkelwagen'; } );	
}

