/*
--------------------------------------------------
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("Do you really want to delete your memo?")) {
		setCookie("");
		location.reload()
	}

}

function memoShow() {
// Den Merkzetteln anzeigen

	var mymemo=getMemo();
	
	if (mymemo.length==0) {
		document.write("<p>There are no products on your memo.</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='150' height='25' alt='' border='0'></a></td>");
		document.write("</table>");	
		document.write("<p><br>On the memo you can put products for observation, and you can look at them again at later visits of this shop. Click on an entry to display the product. In order for the memo to work, you need to have Cookies activated.</p>");	
	}
}

function addMemo(myproduct, myurl) {
// Merken

	var mymessage="The product \"[c]\" has been added to your memo.";
	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("Your chosen option is not deliverable. Please choose a different combination.");
	}
	else {
		// Nicht null!
		if (myquantity<=0) {
			alert("Please enter a valid number.");
		}
		else {
			message="Do you want to add [n] [u] \"[c]\" to your shopping cart?";
			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="The maximum order quantity of the product \"[c]\" is [n] [u] - the order amount has been adjusted automatically.";
					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="The minimum order quantity of the product \"[c]\" is [n] [u] - the order amount has been adjusted automatically.";
					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>Your shopping cart is empty</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>Quantity</strong></td>");
		document.write("<td width='100%' class='s2d'><strong>Item</strong></td>");
				document.write("<td nowrap align='right' class='s2d'><strong>Unit price</strong></td>");
		document.write("<td nowrap align='right' class='s2d'><strong>Subtotal</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+"% VAT:</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>Total:</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='150' 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='150' 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="The maximum order quantity of the product \"[c]\" is [n] [u] - the order amount has been adjusted automatically.";
				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="The minimum order quantity of the product \"[c]\" is [n] [u] - the order amount has been adjusted automatically.";
				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="Do you really want to delete \"[c]\" from your shopping cart?";
	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="Containerload";
		parent.shippingmethod[1].info="Full containerload FOB base. including transportation at origin, documents etc.";
		parent.shippingmethod[1].uid="10000098650f69b66";
		parent.shippingmethod[1].free=0;
		parent.shippingmethod[1].vat=0;
					parent.shippingmethod[1].price[1]=0;				
			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;				
				}
}

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>Your shopping cart is empty</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("Free of charge");
				} 
				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>Total weight: "+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='150' height='25' alt='' border='0'></a></td>");
		document.write("<td align='right'><a href='s2dpayment.html'><img src='images/pcob.gif' width='150' 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="facturering";
		parent.paymentmethod[1].info="Facturering na bestelling per fax. U ontvangt een gedetaileerde bestellijst die u per omgaande dient te voldoen. Billing after ordering by fax, you will receive a detailed orderlist and invoice. Payment directly after confirmation.";
		parent.paymentmethod[1].pregateway="Uw bestelling is verwerkt. Er wordt een venster geopend met een bestelformulier. Druk het bestelformulier af, vul het in en stuur het naar ons toe. Your order is processed, please print the orderlist and send to us by telefax. +31-318-548975";
		parent.paymentmethod[1].postgateway="";
		parent.paymentmethod[1].email="Druk het formulier af, vul het in en stuur het ondertekend retour. U kunt het formulier faxen of per post verzenden. Please print the form, sign and send to us by telefax +31-318-548975";
		parent.paymentmethod[1].noship="";
		parent.paymentmethod[1].uid="10000098650f6aa67";
		parent.paymentmethod[1].price=0;
		parent.paymentmethod[1].vat=19;
		parent.paymentmethod[1].free=0;
		parent.paymentmethod[1].parameter[0]="printinvoice";
		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>Your shopping cart is empty</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("Free of charge");
				}
				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='150' height='25' alt='' border='0'></a></td>");
		document.write("<td align='right'><a href='s2dsummary.html'><img src='images/pcob.gif' width='150' 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="Siddhart far east trading<br>Loevestein 23, 6714 BS, Ede, The Netherlands<br>Tel: +31-318-548976  Fax: +31-318-548975<br>Info@fareasttrading.nl";
	
	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>Order form</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'>Order form</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>Name:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Address:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>ZIP and city:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Phone number:</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>Account number:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Bank code:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Bank:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Account holder:</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>Card type (please tick): "+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Card number:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Cardholder's name:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Expiration date:</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>Date, City, Signature:</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>Quantity</strong></td>");
	mydoc.write("<td width='100%' class='s2d'><strong>Item</strong></td>");
		mydoc.write("<td nowrap align='right' class='s2d'><strong>Unit price</strong></td>");
	mydoc.write("<td nowrap align='right' class='s2d'><strong>Subtotal</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'>Shipping rates:</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+"% VAT:</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>Total:</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'>Delivery type: </td>");
	mydoc.write("<td nowrap class='s2d'>"+shippingcaption+"</td>");
	mydoc.write("</tr>");
	
	if (totalweight>0) {
		mydoc.write("<tr>");
		mydoc.write("<td nowrap class='s2d'>Total weight: </td>");
		mydoc.write("<td nowrap class='s2d'>"+formatweight(totalweight)+" kg</td>");
		mydoc.write("</tr>");
	}

	mydoc.write("<tr>");
	mydoc.write("<td nowrap class='s2d'>Payment type: </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>Please check your entries. You can correct them by clicking \"Back\". When all entries are correct, click \"Continue\".</p>");
						mydoc.write("</td></tr>");		
		mydoc.write("<form name='formagb'><tr><td class='s2d'><input type='checkbox' name='checkagb' value='1'><strong>I have read and accepted your terms and conditions.</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("Delivery type "+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='http://www.fareasttrading.nl/gateaway.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='1'>");
				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='150' height='25' alt='' border='0'></a></td>");
		mydoc.write("<td align='right'><a href='' onclick='submitOrder();return false;'><img src='images/pcob.gif' width='150' 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='150' 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='150' height='25' alt='' border='0'></a></td>");
	document.write("<tr>");
	document.write("</table>");
}

function submitOrder() {

	// Bestellung absenden
	
	if (!document.formagb.checkagb.checked) {
		alert("Please read our terms and conditions and tick the field \"I have read and accepted your terms and conditions \" before you continue .")
	}
	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";
		}
	}
}

