/*
--------------------------------------------------
shop to date

Autor:    Thomas Müller
          MultiMüller GmbH
Datei:    shop2date.js
Funktion: JavaScript-Funktionen
--------------------------------------------------
*/

// Klassen

function classProduct() {
	this.uid="";
	this.id="";
	this.quantity=0;
	this.caption="";
	this.price=0;
	this.originalprice=-1;
	this.vat=0;
	this.url="";
	this.unit="";
	this.noship="";
	this.weight=0;
	this.actualpriceone=0;
	this.actualpriceall=0;
	this.rebatefrom=new Array;
	this.rebateprice=new Array;
	this.status=0;
	this.minimum=0;
	this.maximum=0;
	this.variationa="";
	this.variationb="";
}

function classVariation() {
	this.id="";
	this.price=0;
	this.originalprice=-1;
	this.weight=0;
	this.rebatefrom=new Array;
	this.rebateprice=new Array;
	this.status=0;
}

function classShippingMethod() {
	this.uid="";
	this.caption="";
	this.info="";
	this.vat=0;
	this.free=0;
	this.price=new Array;
	this.weight=new Array;
	this.actualprice=0;
}

function classPaymentMethod() {
	this.uid="";
	this.caption="";
	this.info="";
	this.pregateway="";
	this.postgateway="";
	this.email="";
	this.price=0;
	this.vat=0;
	this.free=0;
	this.actualprice=0;
	this.noship=0;
	this.parameter=new Array;
	this.version=0;
}
	

function classVat() {
	this.percent=0;
	this.amount=0;
}

// Funktionen

function sortVat(a,b) {	
// Sortier-Funktion für Prozent
	
	return a.percent-b.percent;
}

function toInt(value) {
// Einen Strin in Null umwandel, NaN umgehen

	if (isNaN(value)) {
		return 0;
	}
	else {
		return parseInt(value);
	}
}

function format(num) {
// Als Währung formatieren
	
	num = Math.round(num*100);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+"."+num.substring(num.length-(4*i+3));
	return (num + "," + cents);
}

function formatweight(num) {
// Als Gewicht formatieren
	
	num = Math.round(num*1000);
	cents = num%1000;
	num = Math.floor(num/1000).toString();
	cents="000"+cents.toString();
	cents=cents.substr(cents.length-3,cents.length);
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+"."+num.substring(num.length-(4*i+3));
	return (num + "," + cents);
}

function htmlChars(myText) {
// Entfernt böse HTML-Zeichen

	myText=myText.replace(/&/g,"&amp;");
	myText=myText.replace(/"/g,"&quot;");
	myText=myText.replace(/'/g,"&#039;");
	myText=myText.replace(/</g,"&lt;");
	myText=myText.replace(/>/g,"&gt;");
	return myText;
}

function iclearChars(myText) {
// Entfernt böse Zeichen für iClear

	myText=myText.replace(/&/g," ");
	myText=myText.replace(/"/g," ");
	myText=myText.replace(/'/g," ");
	myText=myText.replace(/:/g," ");
	myText=myText.replace(/#/g," ");
	myText=myText.replace(/%/g," ");
	return myText;
}


function setCookie(myvalue) {
// Einen Cookie setzen
	var expires= new Date();
	expires.setFullYear(expires.getFullYear()+1);
	document.cookie="s2dm="+escape(myvalue)+"; expires="+expires.toGMTString()+"; path=/";
}

function getCookie() {
// Einen Cookie lesen
	var pos=document.cookie.indexOf("s2dm=");
		
	if (pos != -1) {
		var start=pos+5;
		var ende=document.cookie.indexOf(";", start);

		if (ende == -1) ende = document.cookie.length;
		var myvalue=document.cookie.substring(start, ende);
	
		myvalue=unescape(myvalue)
		return myvalue;
	} 
}

function setMemo(mycaption, myurl) {
// Dem Merkzetteln einen Eintrag hinzufügen
	
	var myvalue=new String();
	var mymemo=getMemo();
	var mymax;
		
	myvalue=myurl+"|||"+mycaption;
	
	mymax=mymemo.length;
	if (mymax>9) mymax=9;
	
	for (i=0;i<mymax;i++) {
		if (mymemo[i][0]!=myurl) {
			myvalue+="||||"+mymemo[i][0]+"|||";
			myvalue+=mymemo[i][1];
		}
	}
			
	setCookie(myvalue);
}

function getMemo() {
// Den Array mit dem Merkzettel liefern

	var mymemo = new Array();
	var myvalue = getCookie();
		
	if (myvalue != null && myvalue !="") {
		mymemo=myvalue.split("||||");
		for (i=0;i<mymemo.length;i++) {
			mymemo[i]=mymemo[i].split("|||");
		}
	}
	return mymemo;
}

function clearCookie() {
	
	if (confirm("Weet u zeker dat u uw boodschappenlijstje wilt verwijderen?")) {
		setCookie("");
		location.reload()
	}

}

function memoShow() {
// Den Merkzetteln anzeigen

	var mymemo=getMemo();
	
	if (mymemo.length==0) {
		document.write("<p>Er staan geen producten op uw boodschappenlijstje.</p>");
	} else {
		document.write("<table width='100%' cellpadding='2'>");
		for (i=0;i<mymemo.length;i++) {
			document.write("<tr><td align='left' class='s2d'>");
			document.write("<a class='s2d' href='"+mymemo[i][0]+"'>");
			document.write(mymemo[i][1]);
			document.write("</td></tr>");
		}
		document.write("<tr>");		
		document.write("<td class='s2d' align='right'><br><a href='#' onclick='clearCookie();return false;'><img src='images/pbclmemo.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("</table>");	
		document.write("<p><br>Op het boodschappenlijstje kunt u artikelen plaatsen die u bij een volgend bezoek aan de winkel nog eens wilt bekijken. Klik op een vermelding om deze weer te geven. Het boodschappenlijstje werkt alleen als u op uw computer cookies hebt ingeschakeld.</p>");	
	}
}

function addMemo(myproduct, myurl) {
// Merken

	var mymessage="Product \"[c]\" is op uw boodschappenlijstje gezet.";
	mymessage=mymessage.replace(/\[c\]/g,myproduct);
	alert(mymessage);
	setMemo(myproduct, myurl);
}

function basketPut(myproduct, myquantity) {
// Ins Körbchen legen
	
	var found;
	var i;
	var message;
	
	myquantity=toInt(myquantity);
	
	// Lieferbar?
	
	if (myproduct.status==0) {
		alert("De geselecteerde productvariant is niet leverbaar. Selecteer een andere variant.");
	}
	else {
		// Nicht null!
		if (myquantity<=0) {
			alert("Geef een geldig aantal op.");
		}
		else {
			message="Wilt u [n] [u] \"[c]\" in de winkelwagen leggen?";
			message=message.replace(/\[n\]/,myquantity);
			message=message.replace(/\[u\]/,myproduct.unit);
			message=message.replace(/\[c\]/,myproduct.caption);
	
			if (confirm(message)) {
				found=-1
				for (var i=0; i<parent.basket.length; i++) {
					if ((parent.basket[i].uid==myproduct.uid) && (parent.basket[i].variationa==myproduct.variationa) && (parent.basket[i].variationb==myproduct.variationb)) {
						found=i;
					}
				}
				if (found==-1) {
					found=parent.basket.length;
					parent.basket[found]=new classProduct;
				}
				parent.basket[found].quantity+=parseFloat(myquantity);
				parent.basket[found].uid=myproduct.uid;
				parent.basket[found].id=myproduct.id;
				parent.basket[found].unit=myproduct.unit;
				parent.basket[found].caption=myproduct.caption;
				parent.basket[found].price=myproduct.price;
				parent.basket[found].vat=myproduct.vat;
				parent.basket[found].weight=myproduct.weight;
				parent.basket[found].url=myproduct.url;
				parent.basket[found].noship=myproduct.noship;
				parent.basket[found].minimum=myproduct.minimum;
				parent.basket[found].maximum=myproduct.maximum;
				parent.basket[found].variationa=myproduct.variationa;
				parent.basket[found].variationb=myproduct.variationb;
			
				for (var i=1;i<=5;i++) {
					parent.basket[found].rebatefrom[i]=myproduct.rebatefrom[i];
					parent.basket[found].rebateprice[i]=myproduct.rebateprice[i];
				}
			
				// Maximum und Minumum checken
				if ((parent.basket[found].quantity>parent.basket[found].maximum) && (parent.basket[found].maximum!=0)) {
					message="De maximumafname van product \"[c]\" is [n] [u] - het aantal is automatisch aangepast.";
					message=message.replace(/\[n\]/,parent.basket[found].maximum);
					message=message.replace(/\[u\]/,parent.basket[found].unit);
					message=message.replace(/\[c\]/,parent.basket[found].caption);
					alert(message);
					parent.basket[found].quantity=parent.basket[found].maximum;
				}
				if ((parent.basket[found].quantity<parent.basket[found].minimum) && (parent.basket[found].minimum!=0)) {
					message="De minimumafname van product \"[c]\" is [n] [u] - het aantal is automatisch aangepast.";
					message=message.replace(/\[n\]/,parent.basket[found].minimum);
					message=message.replace(/\[u\]/,parent.basket[found].unit);
					message=message.replace(/\[c\]/,parent.basket[found].caption);
					alert(message);
					parent.basket[found].quantity=parent.basket[found].minimum;
				}
			}
		}
	}
}
	
function basketShow() {
// Körbchen anzeigen

	var sum,i,j,found,vatsum;
	var vat = new Array;
	
	sum=0;
	vatsum=0;
		
	for (i=0;i<parent.basket.length;i++) {
		sum+=parent.basket[i].quantity;
	}
	
	updateActualPrice();
	
	if (sum==0)	{
		// leer
		
		document.write("<p>De winkelwagen is leeg</p>");
	}
	else {
		// Überschrift zeigen
	
		sum=0;
		document.write("<form name='basketform' onsubmit='reCalc();location.reload();return false;'>");
		document.write("<table width='100%' cellpadding='2'>");
		document.write("<tr>");
		document.write("<td align='left' colspan='3' class='s2d'><strong>Aantal</strong></td>");
		document.write("<td width='100%' class='s2d'><strong>Naam</strong></td>");
				document.write("<td nowrap align='right' class='s2d'><strong>Prijs per stuk</strong></td>");
		document.write("<td nowrap align='right' class='s2d'><strong>Subtotaal</strong></td>");
		document.write("</tr>");
		document.write("<tr>");
		
		// Positionen
		
		for (i=0;i<parent.basket.length;i++) {
			if (parent.basket[i].quantity!=0) {
				document.write("<tr>");
				document.write("<td><a href='#' onclick='deleteItem("+i+");return false;'><img src='images/ptrsh.gif' width='12' height='16' alt='' border='0'></a></td>");
				document.write("<td><input type='text' class='s2d' size='3' maxlength='5' value='"+parent.basket[i].quantity+"' name="+i+"></td>");
				document.write("<td class='s2d'>"+htmlChars(parent.basket[i].unit)+"&nbsp;</td>");
				document.write("<td width='100%' class='s2d'><a class='s2d' href='"+parent.basket[i].url+"'>"+htmlChars(parent.basket[i].caption)+"</a></td>");
								document.write("<td nowrap align='right' class='s2d'>"+format(parent.basket[i].actualpriceone)+" EUR</td>");
				document.write("<td nowrap align='right' class='s2d'>"+format(parent.basket[i].actualpriceall)+" EUR</td>");
				document.write("</tr>");
				sum+=parent.basket[i].actualpriceall;
				
				// Ust rechnen
				
				addVat(vat,parent.basket[i].vat,parent.basket[i].actualpriceall);
				
			}
		}
		
		// Abstand
		document.write("<tr>");
					document.write("<td colspan='6' align='left' class='s2d'></td>");		
				document.write("</tr>");
		
		// USt. ausgeben
		vat.sort(sortVat);
		
					
			// Ust
		
			for (i=0;i<vat.length;i++) {
				document.write("<tr>");
				document.write("<td colspan='5' align='right' class='s2d'>"+vat[i].percent+"% BTW:</td>");
				document.write("<td nowrap align='right' class='s2d'>"+format(vat[i].amount)+" EUR</td>");
				document.write("</tr>");
			}	
			
			// Endbetrag
			
			document.write("<tr>");
			document.write("<td colspan='4' align='left' class='s2d'><input type='image' name='calc' src='images/prcb.gif' border='0' onclick='reCalc();location.reload();return false;'></td>");
			document.write("<td align='right' class='s2d'><strong>Totaal:</strong></td>");
			document.write("<td nowrap align='right' class='s2d'><strong>"+format(sum)+" EUR</strong></td>");
			document.write("</tr>");
				
		// Navigation
		
		document.write("</table>");
		document.write("</form>");
	
		document.write("<table width='100%' cellpadding='2'>");
		document.write("<tr>");		
		document.write("<td align='left'><a href='./index.html'><img src='images/psmb.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("<td align='right'><a onclick='reCalc();return true;' href='s2dship.html'><img src='images/pcob.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("</tr>");		
		document.write("</table>");	
	}
}

function addVat(vat,rate,price) {
// USt addieren
	
	var j,found;
	
	if ((rate!=0) && (price!=0)) {

		found=-1;
		for (j=0;j<vat.length;j++) {
			if (vat[j].percent==rate) {
				found=j;
			}
		}
					
		if (found==-1) {
			found=vat.length;
			vat[found]=new classVat;
			vat[found].percent=rate;
			vat[found].amount=0;
		}				
					vat[found].amount+=price/(100+rate)*rate;
			}
}

function updateActualPrice() {
// Tatsächliche Preise im Korb aktualisieren

	for (var i=0;i<parent.basket.length;i++) {
		parent.basket[i].actualpriceone=parent.basket[i].price;
		
		// Rabattstaffel erreicht?
		
		for (var j=0;j<=5;j++) {
			if (parent.basket[i].rebatefrom[j]!=0) {
				if ((parent.basket[i].quantity)>=(parent.basket[i].rebatefrom[j])) {
					parent.basket[i].actualpriceone=parent.basket[i].rebateprice[j];
				}
			}
		}
		
		parent.basket[i].actualpriceall=parent.basket[i].actualpriceone*parent.basket[i].quantity;
	}
	
}

function reCalc() {
// Korb anhand Formular aktualisieren

	var j,i,message;

	for (i=0;i<document.basketform.elements.length;i++) {
		if (document.basketform.elements[i].type=="text") {
			j=parseInt(document.basketform.elements[i].name);
			parent.basket[j].quantity=Math.abs(toInt(document.basketform.elements[i].value));
			
			// Minumum und Maximum
			if ((parent.basket[j].quantity>parent.basket[j].maximum) && (parent.basket[j].maximum!=0) && (parent.basket[j].qunatity!=0)) {
				message="De maximumafname van product \"[c]\" is [n] [u] - het aantal is automatisch aangepast.";
				message=message.replace(/\[n\]/,parent.basket[j].maximum);
				message=message.replace(/\[u\]/,parent.basket[j].unit);
				message=message.replace(/\[c\]/,parent.basket[j].caption);
				alert(message);
				parent.basket[j].quantity=parent.basket[j].maximum;
			}
			if ((parent.basket[j].quantity<parent.basket[j].minimum) && (parent.basket[j].minimum!=0) && (parent.basket[j].qunatity!=0)) {
				message="De minimumafname van product \"[c]\" is [n] [u] - het aantal is automatisch aangepast.";
				message=message.replace(/\[n\]/,parent.basket[j].minimum);
				message=message.replace(/\[u\]/,parent.basket[j].unit);
				message=message.replace(/\[c\]/,parent.basket[j].caption);
				alert(message);
				parent.basket[j].quantity=parent.basket[j].minimum;
			}

		}
	}
}

function deleteItem(id) {
// Element aus Korb entfernen

	var message;
	
	message="Weet u zeker dat u het product \"[c]\" uit de winkelwagen wilt verwijderen?";
	message=message.replace(/\[c\]/,parent.basket[id].caption);

	if (confirm(message)) { 
		parent.basket[id].quantity=0;
		location.reload();
	}
}

function defineShippingMethods() {
// Versand-Methoden definieren

	if (parent.shippingmethod.length==0)
	{
			parent.shippingmethod[1] = new classShippingMethod;
		parent.shippingmethod[1].caption="TPG Post";
		parent.shippingmethod[1].info="Verzending is bij besteding vanaf 200 euro gratis.";
		parent.shippingmethod[1].uid="100000986c0deda01";
		parent.shippingmethod[1].free=200;
		parent.shippingmethod[1].vat=19;
					parent.shippingmethod[1].price[1]=7.95;				
			parent.shippingmethod[1].weight[1]=0;				
					parent.shippingmethod[1].price[2]=0;				
			parent.shippingmethod[1].weight[2]=0;				
					parent.shippingmethod[1].price[3]=0;				
			parent.shippingmethod[1].weight[3]=0;				
					parent.shippingmethod[1].price[4]=0;				
			parent.shippingmethod[1].weight[4]=0;				
					parent.shippingmethod[1].price[5]=0;				
			parent.shippingmethod[1].weight[5]=0;				
					parent.shippingmethod[2] = new classShippingMethod;
		parent.shippingmethod[2].caption="TPG Buitenland / Foreign country";
		parent.shippingmethod[2].info="Shipping outside the Netherlands, free shipment for orders above 250 euro";
		parent.shippingmethod[2].uid="100000986c1024e02";
		parent.shippingmethod[2].free=250;
		parent.shippingmethod[2].vat=19;
					parent.shippingmethod[2].price[1]=12.5;				
			parent.shippingmethod[2].weight[1]=0;				
					parent.shippingmethod[2].price[2]=0;				
			parent.shippingmethod[2].weight[2]=0;				
					parent.shippingmethod[2].price[3]=0;				
			parent.shippingmethod[2].weight[3]=0;				
					parent.shippingmethod[2].price[4]=0;				
			parent.shippingmethod[2].weight[4]=0;				
					parent.shippingmethod[2].price[5]=0;				
			parent.shippingmethod[2].weight[5]=0;				
				}
}

function shippingShow() {
// Versand-Methoden anzeigen

	var i,j,sum,totalweight, totalprice;
	
	defineShippingMethods();
	updateActualPrice();
	
	sum=0;
	totalweight=0;
	totalprice=0;
	
	for (i=0;i<parent.basket.length;i++) {
		sum+=parent.basket[i].quantity;
		totalweight+=parent.basket[i].weight*parent.basket[i].quantity;
		totalprice+=parent.basket[i].actualpriceall;
	}	
	
	if (sum==0)	{
		document.write("<p>De winkelwagen is leeg</p>");
	}
	else {
		document.write("<form name='shippingform'>");
		document.write("<table width='100%' cellpadding='2'>");
		for (i=1;i<parent.shippingmethod.length;i++) {
			
			parent.shippingmethod[i].actualprice=-1;
						
			if (parent.shippingmethod[i].weight[1]==0) {
				// Nur ein Preis
				parent.shippingmethod[i].actualprice=parent.shippingmethod[i].price[1];
			}
			else {
				// Preis nach Gewicht
				for (j=parent.shippingmethod[i].weight.length;j>0;j--) {
					if (parent.shippingmethod[i].weight[j]!=0) {
						if (totalweight<=parent.shippingmethod[i].weight[j]) {
							parent.shippingmethod[i].actualprice=parent.shippingmethod[i].price[j];
						}
					}
				}
			}
			// Versandkostenfrei?
			if ((totalprice>=parent.shippingmethod[i].free) && (parent.shippingmethod[i].free!=0) && (parent.shippingmethod[i].actualprice!=-1)) {
				parent.shippingmethod[i].actualprice=0;
			}
			
			// Nicht erlaubte Methode?			
			for (j=0;j<parent.basket.length;j++) {
				if (parent.basket[j].quantity!=0) {
					if (parent.basket[j].noship.indexOf(parent.shippingmethod[i].uid)!=-1)
  					parent.shippingmethod[i].actualprice=-1;
				}
			}
			// GGf Auswahl löschen
			if ((parent.shippingmethod[i].actualprice==-1) && (i==parent.selectedshippingmethod)) {
				parent.selectedshippingmethod=-1;
			}
		}
		for (i=1;i<parent.shippingmethod.length;i++) {		
			// Anzeigen
			if (parent.shippingmethod[i].actualprice!=-1) {
				// Wenn nichts gewählt, erstes wählen
				if (parent.selectedshippingmethod==-1) {
					parent.selectedshippingmethod=i
				}
				document.write("<tr>");
				document.write("<td class='s2d'><input type='radio' ")
				if (i==parent.selectedshippingmethod) {
					document.write("checked ");
				}
				document.write("onclick='setShipping();' name='method' value='"+i+"'></td>");
				document.write("<td class='s2d' width='100%'><strong>"+parent.shippingmethod[i].caption+"</strong><br></td>");
				document.write("<td align='right' nowrap class='s2d'><strong>")
				if (parent.shippingmethod[i].actualprice!=0) {
					document.write(format(parent.shippingmethod[i].actualprice)+" EUR");
				} else {
					document.write("Kosteloos");
				} 
				document.write("</strong></td>");
				document.write("</tr>");
				if (parent.shippingmethod[i].info!="") {
					document.write("<tr>");
					document.write("<td></td>");
					document.write("<td class='s2d' width='100%'>"+parent.shippingmethod[i].info+"<br><br></td>");
					document.write("<td></td>");
					document.write("</tr>");
				}
			}
		}
		
		// Gewicht zeigen
		
		if (totalweight>0) {
			document.write("<tr>");
			document.write("<td></td>");
			document.write("<td class='s2d'><br>Totaalgewicht: "+formatweight(totalweight)+" kg<br><br></td>");
			document.write("<td></td>");
			document.write("</tr>");
		}
		
		// Navigation unten
		document.write("</table>");
		document.write("</form>");		
	
		document.write("<table width='100%' cellpadding='2'>");
		document.write("<tr>");		
		document.write("<td align='left'><a href='s2dbskt.html'><img src='images/pbskt.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("<td align='right'><a href='s2dpayment.html'><img src='images/pcob.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("</tr>");		
		document.write("</table>");
	}
}

function setShipping() {
// Versand-Methode einstellen

	var i;
	parent.selectedshippingmethod=-1;
	for (i=0;i<document.shippingform.method.length;i++) {
		if (document.shippingform.method[i].checked) {
			parent.selectedshippingmethod=document.shippingform.method[i].value;
		}
	}
}

function definePaymentMethods() {
// Bezahl-Methoden definieren

	if (parent.paymentmethod.length==0)
	{
			parent.paymentmethod[1] = new classPaymentMethod;
		parent.paymentmethod[1].caption="Vooruitbetaling via bank";
		parent.paymentmethod[1].info="Maak het factuurbedrag over op onze rekening 3641013 o.v.v. de naam die u op het bestelformulier heeft ingevuld. de bestelling wordt na ontvangst van de betaling voor u doorbesteld en zodra wij uw bestelling van de leverancier hebben ontvangen wordt deze direct naar u verzonden, heeft u de bestelling voor een bepaalde datum nodig laat ons dit dan tijdig weten. ";
		parent.paymentmethod[1].pregateway="Wij hebben uw bestelling ontvangen. Ter beveiliging van uw gegevens wordt een gecodeerd venster geopend waarin u uw adres kunt opgeven. Zodra u alle gegevens hebt ingevoerd en bevestigd, is de bestelling definitief. Hartelijk dank voor uw bezoek aan onze winkel.";
		parent.paymentmethod[1].postgateway="Hartelijk dank. Wij hebben uw bestelling genoteerd. Binnenkort ontvangt u van ons een bevestigingsbericht. Maak het factuurbedrag over op onze rekening 3641013 tnv Bruidsstudio Yvonne Quispel. Na ontvangst van de betaling op onze bankrekening wordt uw bestelling behandeld.";
		parent.paymentmethod[1].email="Hartelijk dank voor uw bestelling. Maak het factuurbedrag over op onze rekening 3641013 tnv Bruidsstudio Yvonne Quispel. Na ontvangst van de betaling op onze bankrekening wordt uw bestelling behandeld.";
		parent.paymentmethod[1].noship="";
		parent.paymentmethod[1].uid="100000986c0fd8e01";
		parent.paymentmethod[1].price=0;
		parent.paymentmethod[1].vat=19;
		parent.paymentmethod[1].free=0;
		parent.paymentmethod[1].parameter[0]="";
		parent.paymentmethod[1].parameter[1]="";
		parent.paymentmethod[1].parameter[2]="";
		parent.paymentmethod[1].parameter[3]="";
		parent.paymentmethod[1].parameter[4]="";
		parent.paymentmethod[1].parameter[5]="";
		parent.paymentmethod[1].version="shop2dateversion10";
		}
}


function paymentShow() {
// Bezahl-Methoden anzeigen

	var i,j, totalprice;
	
	definePaymentMethods();
	updateActualPrice();
	
	sum=0;
	totalprice=0;
	
	for (i=0;i<parent.basket.length;i++) {
		sum+=parent.basket[i].quantity;
		totalprice+=parent.basket[i].actualpriceall;
	}	
	
	if (sum==0)	{
		document.write("<p>De winkelwagen is leeg</p>");
	}
	else {
		document.write("<form name='paymentform'>");
		document.write("<table width='100%' cellpadding='2'>");
		for (i=1;i<parent.paymentmethod.length;i++) {
			
			parent.paymentmethod[i].actualprice=parent.paymentmethod[i].price;
						
			// Versandkostenfrei?
			if ((totalprice>=parent.paymentmethod[i].free) && (parent.paymentmethod[i].free!=0)) {
				parent.paymentmethod[i].actualprice=0;
			}
			
			// Nicht erlaubte Methode?			
			if (parent.selectedshippingmethod!=-1) {
				if (parent.paymentmethod[i].noship.indexOf(parent.shippingmethod[parent.selectedshippingmethod].uid)!=-1) {
  					parent.paymentmethod[i].actualprice=-1;
				}
			}
			
			// GGf Auswahl löschen
			if ((parent.paymentmethod[i].actualprice==-1) && (i==parent.selectedpaymentmethod)) {
				parent.selectedpaymentmethod=-1;
			}
		}
		for (i=1;i<parent.paymentmethod.length;i++) {		
			// Anzeigen
			if (parent.paymentmethod[i].actualprice!=-1) {
				// Wenn nichts gewählt, erstes wählen
				if (parent.selectedpaymentmethod==-1) {
					parent.selectedpaymentmethod=i;
				}
				document.write("<tr>");
				document.write("<td class='s2d'><input type='radio' ")
				if (i==parent.selectedpaymentmethod) {
					document.write("checked ");
				}
				document.write("onclick='setPayment();' name='method' value='"+i+"'></td>");
				document.write("<td class='s2d' width='100%'><strong>"+parent.paymentmethod[i].caption+"</strong><br></td>");
				document.write("<td align='right' nowrap class='s2d'><strong>");
				if (parent.paymentmethod[i].actualprice!=0) {
					document.write(format(parent.paymentmethod[i].actualprice)+" EUR");
				} else {
					document.write("Kosteloos");
				}
				document.write("</strong></td>");
				document.write("</tr>");
				if (parent.paymentmethod[i].info!="") {
					document.write("<tr>");
					document.write("<td></td>");
					document.write("<td class='s2d' width='100%'>"+parent.paymentmethod[i].info+"<br><br></td>");
					document.write("<td></td>");
					document.write("</tr>");
				}
			}
		}
		
		// Navigation unten
		document.write("</table>");
		document.write("</form>");		
	
		document.write("<table width='100%' cellpadding='2'>");
		document.write("<tr>");		
		document.write("<td align='left'><a href='s2dship.html'><img src='images/pbskt.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("<td align='right'><a href='s2dsummary.html'><img src='images/pcob.gif' width='180' height='25' alt='' border='0'></a></td>");
		document.write("</tr>");		
		document.write("</table>");		
	}
}

function setPayment() {
// Bezahl-Methode einstellen

	var i;
	parent.selectedpaymentmethod=-1;
	for (i=0;i<document.paymentform.method.length;i++) {
		if (document.paymentform.method[i].checked) {
			parent.selectedpaymentmethod=document.paymentform.method[i].value;
		}
	}
}

function summaryShow() {
// Zusammenfassung zeigen
	summaryShowEx(false);
}

function summaryShowEx(newwindow) {
// Zusammenfassung oder Bestellformular zeigen

	var sum, i, j, found, vatsum, shippingcost, totalweight;
	var vat = new Array;

	var shippingcaption="";
	var paymentcaption="";
	
	var shopaddress="Dedanswinkel.com is een onderdeel van:<br><br>Bruidsstudio Yvonne Quispel<br>Debruidswinkel.nl<br>Straatdijk 5-7<br>3247BX Dirksland<br>Tel.: 0187-600833<br>E-mail: info@bruidsstudio.nl<br>ING 3641013  Iban NL 22 PSTB 0003641013  BIC PSTBNL21<br>KVK Rotterdam nr. 24244761  / Btwnr. 046186050B01";
	
	sum=0;
	vatsum=0;
	shippingcost=0;
	totalweight=0;
	
	if (newwindow) {
		// Neues Fenster zum Ausdrucken
	
		mywindow=open("","printwindow","left=10,top=10,width=600,height=550,status=yes,scrollbars=yes,menubar=yes,toolbar=yes,resizable=yes");
		mydoc=mywindow.document;
		
		mydoc.write("<html><head><title>Bestelformulier</title></head></html>");
		mydoc.write("<body>");

		mydoc.write("<style>");
		mydoc.write("td.s2d {font-size:10pt; font-family : Arial, Helvetica, sans-serif;} ");
		mydoc.write("h1.s2d {font-family: Arial, Helvetica, sans-serif; font-size: 20pt; font-weight : bold; margin-top : 0pt; margin-bottom : 0pt;} ");
		mydoc.write("</style>");
		
		mydoc.write("<table width='100%' cellpadding='5' cellspacing='3' border='0'>");
		mydoc.write("<tr><td class='s2d'><h1 class='s2d'>Bestelformulier</h1></td></tr>");
		mydoc.write("<tr><td class='s2d'>"+parent.paymentmethod[parent.selectedpaymentmethod].email+"<br></td></tr>");

		mydoc.write("<tr><td class='s2d'><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Naam:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Adres:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Postcode en plaats:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Telefoonnummer:</strong><br></td></tr>");

		mydoc.write("<tr><td class='s2d'><br></td></tr>");
		
		switch (parent.paymentmethod[parent.selectedpaymentmethod].parameter[0]) {
			case "printdebit":
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Rekeningnummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Bankcode:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kredietinstelling:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Rekeninghouder:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d'><br></td></tr>");
				break;
			case "printcreditcard":
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kaarttype (aankruisen): "+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Creditcardnummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kaarthouder:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Geldig t/m:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d'><br></td></tr>");
				break;
		}

		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Datum, plaats, handtekening:</strong><br></td></tr>");		
		mydoc.write("<tr><td class='s2d'><br></td></tr>");

		mydoc.write("</table>");
	}
	else {
		mydoc=document;
	}
	
	// Überschrift

	mydoc.write("<table width='100%' cellpadding='2'>");
	mydoc.write("<tr>");
	mydoc.write("<td align='left' colspan='2' class='s2d'><strong>Aantal</strong></td>");
	mydoc.write("<td width='100%' class='s2d'><strong>Naam</strong></td>");
		mydoc.write("<td nowrap align='right' class='s2d'><strong>Prijs per stuk</strong></td>");
	mydoc.write("<td nowrap align='right' class='s2d'><strong>Subtotaal</strong></td>");
	mydoc.write("</tr>");
	mydoc.write("<tr>");
	
	// Positionen
	
	for (i=0;i<parent.basket.length;i++) {
		if (parent.basket[i].quantity!=0) {
			mydoc.write("<tr>");
			mydoc.write("<td class='s2d'>"+parent.basket[i].quantity+"</td>");
			mydoc.write("<td class='s2d'>"+htmlChars(parent.basket[i].unit)+"&nbsp;</td>");
			mydoc.write("<td width='100%' class='s2d'>"+htmlChars(parent.basket[i].caption)+"</td>");
						mydoc.write("<td nowrap align='right' class='s2d'>"+format(parent.basket[i].actualpriceone)+" EUR</td>");
			mydoc.write("<td nowrap align='right' class='s2d'>"+format(parent.basket[i].actualpriceall)+" EUR</td>");
			mydoc.write("</tr>");
			
			sum+=parent.basket[i].actualpriceall;
			totalweight+=parent.basket[i].weight*parent.basket[i].quantity;

			// Ust rechnen
			addVat(vat,parent.basket[i].vat,parent.basket[i].actualpriceall);
		}
	}
	
	// Abstand

	mydoc.write("<tr>");
			mydoc.write("<td colspan='5' align='left' class='s2d'></td>");		
		mydoc.write("</tr>");
	
	// Versandkosten
	
	i=parent.selectedshippingmethod;
	if (i!=-1) {
		shippingcaption=parent.shippingmethod[i].caption;
		if (parent.shippingmethod[i].actualprice!=0) {
			shippingcost=parent.shippingmethod[i].actualprice;
			addVat(vat, parent.shippingmethod[i].vat, parent.shippingmethod[i].actualprice);
		}
	}	

	i=parent.selectedpaymentmethod;
	if (i!=-1) {
		paymentcaption=parent.paymentmethod[i].caption;
		if (parent.paymentmethod[i].price!=0) {
			shippingcost+=parent.paymentmethod[i].actualprice;
			addVat(vat, parent.paymentmethod[i].vat, parent.paymentmethod[i].actualprice);
		}
	}	
	
	sum+=shippingcost;
		
	mydoc.write("<tr>");
			mydoc.write("<td colspan='4' align='right' class='s2d'>Verzendkosten:</td>");
		mydoc.write("<td nowrap align='right' class='s2d'>"+format(shippingcost)+" EUR</td>");
	mydoc.write("</tr>");

	// Abstand

	mydoc.write("<tr>");
			mydoc.write("<td colspan='5' align='left'></td>");		
		mydoc.write("</tr>");
	
	
	// Ust zeigen	
	vat.sort(sortVat);

			for (i=0;i<vat.length;i++) {
			mydoc.write("<tr>");
			mydoc.write("<td colspan='4' align='right' class='s2d'>"+vat[i].percent+"% BTW:</td>");
			mydoc.write("<td nowrap align='right' class='s2d'>"+format(vat[i].amount)+" EUR</td>");
			mydoc.write("</tr>");
		}	

		mydoc.write("<tr>");
		mydoc.write("<td colspan='6' align='left'></td>");		
		mydoc.write("</tr>");

		mydoc.write("<tr>");
		mydoc.write("<td colspan='4' align='right' class='s2d'><strong>Totaal:</strong></td>");
		mydoc.write("<td nowrap align='right' class='s2d'><strong>"+format(sum)+" EUR</strong></td>");
		mydoc.write("</tr>");
			
	mydoc.write("</table>");
	mydoc.write("</form>");
	
	mydoc.write("<table cellpadding='2'>");

	mydoc.write("<tr>");
	mydoc.write("<td nowrap class='s2d'>Gewenste verzendmethode: </td>");
	mydoc.write("<td nowrap class='s2d'>"+shippingcaption+"</td>");
	mydoc.write("</tr>");
	
	if (totalweight>0) {
		mydoc.write("<tr>");
		mydoc.write("<td nowrap class='s2d'>Totaalgewicht: </td>");
		mydoc.write("<td nowrap class='s2d'>"+formatweight(totalweight)+" kg</td>");
		mydoc.write("</tr>");
	}

	mydoc.write("<tr>");
	mydoc.write("<td nowrap class='s2d'>Gewenste betalingsmethode: </td>");
	mydoc.write("<td nowrap class='s2d'>"+paymentcaption+"</td>");
	mydoc.write("</tr>");
	
	mydoc.write("<tr>");
	mydoc.write("<td nowrap class='s2d' colspan='2'><br></td>");
	mydoc.write("</tr>");

	mydoc.write("</table>");	
		
	if (newwindow) {
		mydoc.write("<table cellpadding='2' width='100%'><tr><td class='s2d' align='center'><br>"+shopaddress+"</td></tr></table>");
		mydoc.write("</body>");
		mydoc.write("</html>");
		mydoc.close();
	}
	else {
		mydoc.write("<table cellpadding='2' width='100%'>");
		mydoc.write("<tr><td class='s2d'><p>Controleer de gegevens die u hebt ingevoerd. Klik op \"Vorige\" als u iets wilt corrigeren. Klik op \"Volgende\" als alle gegevens correct zijn.</p>");
					mydoc.write("<p>In Nederland geldt een wettelijk vastgelegde zichttermijn van 7 werkdagen. Binnen deze termijn hebt u het recht de bestelling te ruilen. Zie menuopdracht <a class=s2d href=\"consumer.html\">Bepalingen</a> voor meer informatie over het ruilen. De kosten van de retourzending zijn voor Dedanswinkel.com indien het aan Dedanswinkel te wijten is dat er retour gezonden moet worden, in alle andere gevallen zijn de kosten van retourzending voor de klant.</p>");
							mydoc.write("<p>Onze Algemene voorwaarden zijn van toepassing. U kunt deze op elk gewenst moment inzien via menuopdracht <a class=s2d href=\"agb.html\">Algemene voorwaarden</a>.</p>");
				mydoc.write("</td></tr>");		
		mydoc.write("<form name='formagb'><tr><td class='s2d'><input type='checkbox' name='checkagb' value='1'><strong>Ik heb de Algemene voorwaarden gelezen.</strong><br><br></td></tr></form>");
		mydoc.write("</table>");

		// Jetzt das versteckte Transfer-Formular
		
		switch (parent.paymentmethod[parent.selectedpaymentmethod].parameter[0]) {
			case "iclear":
				// iClear-Modus
		
				mydoc.write("<form name='orderform' action='https://www.iclear.de/servlets/GenBuyTool' method='post' target='orderwindow'>");
				mydoc.write("<input type='hidden' name='ShopID' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"'>");
				mydoc.write("<input type='hidden' name='BasketID' value='shop to date order'>");
				mydoc.write("<input type='hidden' name='Currency' value='EUR'>");
				j=0;
				
				var products="";
			
				// Produkt-Schleife
			
				for (i=0;i<parent.basket.length;i++) {
					if (parent.basket[i].quantity!=0) {
						j++;
						products+=iclearChars(parent.basket[i].caption)+"::";
						products+=iclearChars(parent.basket[i].id)+"::";
						products+=parent.basket[i].quantity+"::";
													products+=parent.basket[i].actualpriceone/(parent.basket[i].vat/100+1)+"::";
 							products+=parent.basket[i].actualpriceone+"::";
												products+=parent.basket[i].vat+":::";
					}
				}
			
				// Versandart als Produkt

				j++;
				products+=iclearChars("Gewenste verzendmethode "+shippingcaption)+"::";
				products+="::";
				products+="1::";
									products+=shippingcost/(parent.shippingmethod[parent.selectedshippingmethod].vat/100+1)+"::";
					products+=shippingcost+"::";
								products+=parent.shippingmethod[parent.selectedshippingmethod].vat+":::";

				mydoc.write("<input type='hidden' name='Products' value='"+products+"'>");
				mydoc.write("<input type='hidden' name='ProductIndex' value='"+j+"'>");
				mydoc.write("</form>");
				break;

			default:
				// Normal-Modus
		
				mydoc.write("<form name='orderform' action='https://www.ssl-shop.com/dedanswinkel.com/gateway.php' method='post' target='orderwindow'>");
				j=0;
				for (i=0;i<parent.basket.length;i++) {
					if (parent.basket[i].quantity!=0) {
						j++;
						mydoc.write("<input type='hidden' name='PUID"+j+"' value='"+parent.basket[i].uid+"'>");
						mydoc.write("<input type='hidden' name='PPID"+j+"' value='"+htmlChars(parent.basket[i].id)+"'>");
						mydoc.write("<input type='hidden' name='PQNT"+j+"' value='"+parent.basket[i].quantity+"'>");
						mydoc.write("<input type='hidden' name='PUNT"+j+"' value='"+htmlChars(parent.basket[i].unit)+"'>");
						mydoc.write("<input type='hidden' name='PCAP"+j+"' value='"+htmlChars(parent.basket[i].caption)+"'>");
						mydoc.write("<input type='hidden' name='PPRI"+j+"' value='"+parent.basket[i].actualpriceone+"'>");
						mydoc.write("<input type='hidden' name='PVAT"+j+"' value='"+parent.basket[i].vat+"'>");
						mydoc.write("<input type='hidden' name='PRVA"+j+"' value='"+parent.basket[i].variationa+"'>");
						mydoc.write("<input type='hidden' name='PRVB"+j+"' value='"+parent.basket[i].variationb+"'>");
					}
				}
				mydoc.write("<input type='hidden' name='OPAY' value='"+htmlChars(paymentcaption)+"'>");
				mydoc.write("<input type='hidden' name='OSHP' value='"+htmlChars(shippingcaption)+"'>");
				mydoc.write("<input type='hidden' name='OCUR' value='EUR'>");
				mydoc.write("<input type='hidden' name='OB2B' value=''>");
				mydoc.write("<input type='hidden' name='OSPR' value='"+shippingcost+"'>");
				mydoc.write("<input type='hidden' name='OSPV' value='"+parent.shippingmethod[parent.selectedshippingmethod].vat+"'>");
				mydoc.write("<input type='hidden' name='OWGT' value='"+totalweight+"'>");
				mydoc.write("<input type='hidden' name='OTOT' value='"+sum+"'>");
				mydoc.write("<input type='hidden' name='GVER' value='"+parent.paymentmethod[parent.selectedpaymentmethod].version+"'>");
				mydoc.write("<input type='hidden' name='GPR0' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[0]+"'>");
				mydoc.write("<input type='hidden' name='GPR1' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"'>");
				mydoc.write("<input type='hidden' name='GPR2' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[2]+"'>");
				mydoc.write("<input type='hidden' name='GPR3' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[3]+"'>");
				mydoc.write("<input type='hidden' name='GPR4' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[4]+"'>");
				mydoc.write("<input type='hidden' name='GPR5' value='"+parent.paymentmethod[parent.selectedpaymentmethod].parameter[5]+"'>");
				mydoc.write("<input type='hidden' name='GMSP' value='"+htmlChars(parent.paymentmethod[parent.selectedpaymentmethod].postgateway)+"'>");
				mydoc.write("<input type='hidden' name='GMSE' value='"+htmlChars(parent.paymentmethod[parent.selectedpaymentmethod].email)+"'>");
				mydoc.write("<input type='hidden' name='GSAD' value='"+htmlChars(shopaddress)+"'>");
				mydoc.write("<input type='hidden' name='GNEW' value=''>");
				mydoc.write("<input type='hidden' name='GTSI' value=''>");
				mydoc.write("</form>");
		}
		mydoc.write("<table width='100%' cellpadding='2'>");
		mydoc.write("<tr>");		
		mydoc.write("<td align='left'><a href='s2dpayment.html'><img src='images/pbskt.gif' width='180' height='25' alt='' border='0'></a></td>");
		mydoc.write("<td align='right'><a href='' onclick='submitOrder();return false;'><img src='images/pcob.gif' width='180' height='25' alt='' border='0'></a></td>");
		mydoc.write("</tr>");		
		mydoc.write("</table>");

	}
}

function completeShow() {
	
	// Abschlußscreen zeigen

	document.write("<p>"+parent.paymentmethod[parent.selectedpaymentmethod].pregateway+"<br><br><br></p>");
	document.write("<table width='100%' border='0' cellpadding='0' cellspacing='0'>");
	document.write("<tr>");
	document.write("<td align='left'><a href='s2dsummary.html'><img src='images/pbskt.gif' width='180' height='25' alt='' border='0'></a></td>");
	document.write("<td align='right'><a onclick='parent.basket.length=0;return true;' href='./index.html'><img src='images/psmb.gif' width='180' height='25' alt='' border='0'></a></td>");
	document.write("<tr>");
	document.write("</table>");
}

function submitOrder() {

	// Bestellung absenden
	
	if (!document.formagb.checkagb.checked) {
		alert("Lees de Algemene voorwaarden en selecteer de optie \"Ik heb de Algemene voorwaarden gelezen\" voordat u doorgaat.")
	}
	else {

		switch (parent.paymentmethod[parent.selectedpaymentmethod].parameter[0]) {
		case "printdebit":
		case "printcod":
		case "printcheque":
		case "printremittance":
		case "printcreditcard":
		case "printinvoice":
			summaryShowEx(true);	
			self.location="s2dcomplete.html";
			break;
		default:
			var mywindow=window.open("","orderwindow","left=10,top=10,width=600,height=550,status=yes,scrollbars=yes");
			mywindow.focus();
			document.orderform.submit();
			self.location="s2dcomplete.html";
		}
	}
}


