var winkelwagen = { };

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; } }
		});
	
}

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)
{
	var pars = Form.serialize($(frm));
	winkelwagen.submitFunction(pars+"&winkelwagen=betalen");	
}
winkelwagen.betaalOpnieuw = function(frm)
{
	var pars = Form.serialize($(frm));
	winkelwagen.submitFunction(pars+"&winkelwagen=betaalOpnieuw");		
}
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;
	}
	account.clearErrors();
  var d = document.getElementById("myErrorDiv");
  if (d) {
      if (d.style.display != "none") {
          new Effect.SlideUp(d, {duration:0.2});
      }
  }	
	if (resp.responseText.substring(0,5) == "REDIR") {

		document.location.href = resp.responseText.substring(5).unescapeHTML();
	}
}

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("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('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.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.reload();
	} else {
		setTimeout("winkelwagen.checkwinkelwagen()", 15000);
	}
}