/*
--------------------------------------------------
shop to date 3

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("Wollen Sie Ihren Merkzettel wirklich löschen?")) {
		setCookie("");
		location.reload()
	}

}

function memoShow() {
// Den Merkzetteln anzeigen

	var mymemo=getMemo();
	
	if (mymemo.length==0) {
		document.write("<p>Es befinden sich keine Produkte auf Ihrem Merkzettel.</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='160' height='37' alt='' border='0'></a></td>");
		document.write("</table>");	
		document.write("<p><br>Auf dem Merkzettel können Sie Artikel unverbindlich vormerken, um sich diese bei einem späteren Besuch des Shops nochmals anzusehen. Klicken Sie auf einen Eintrag, um ihn anzuzeigen. Damit der Merkzettel funktioniert, müssen Sie Cookies aktiviert haben.</p>");	
	}
}

function addMemo(myproduct, myurl) {
// Merken

	var mymessage="Das Produkt \"[c]\" wurde auf Ihrem Merkzettel eingetragen.";
	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("Die von Ihnen gewählte Variante ist nicht lieferbar. Bitte wählen Sie eine andere Kombination von Eigenschaften.");
	}
	else {
		// Nicht null!
		if (myquantity<=0) {
			alert("Bitte geben Sie eine gültige Anzahl ein.");
		}
		else {
			message="Wollen Sie [n] [u] \"[c]\" in den Warenkorb legen?";
			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="Die Höchstbestellmenge des Produktes \"[c]\" beträgt [n] [u] - die Bestellmenge wurde automatisch angepasst.";
					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="Die Mindestbestellmenge des Produktes \"[c]\" beträgt [n] [u] - die Bestellmenge wurde automatisch angepasst.";
					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>Der Warenkorb ist leer</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>Anzahl</strong></td>");
		document.write("<td width='100%' class='s2d'><strong>Bezeichnung</strong></td>");
				document.write("<td nowrap align='right' class='s2d'><strong>Einzelpreis</strong></td>");
		document.write("<td nowrap align='right' class='s2d'><strong>Gesamtpreis</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+"% USt.:</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>Endsumme:</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='./index2.html'><img src='images/psmb.gif' width='160' height='37' alt='' border='0'></a></td>");
		document.write("<td align='right'><a onclick='reCalc();return true;' href='s2dship.html'><img src='images/pcob.gif' width='160' height='37' 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="Die Höchstbestellmenge des Produktes \"[c]\" beträgt [n] [u] - die Bestellmenge wurde automatisch angepasst.";
				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="Die Mindestbestellmenge des Produktes \"[c]\" beträgt [n] [u] - die Bestellmenge wurde automatisch angepasst.";
				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="Wollen Sie das Produkt \"[c]\" wirklich aus dem Warenkorb löschen?";
	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="Deutschland Versand Nachhause";
		parent.shippingmethod[1].info="Versand mit Hermes innerhalb Deutschlands. Die Sendung ist neutral Verpackt.";
		parent.shippingmethod[1].uid="00000098a80c4f906";
		parent.shippingmethod[1].free=0;
		parent.shippingmethod[1].vat=19;
					parent.shippingmethod[1].price[1]=4.9;				
			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="Deutschland an Hermes Paketshop ";
		parent.shippingmethod[2].info="";
		parent.shippingmethod[2].uid="0000009cef131f803";
		parent.shippingmethod[2].free=0;
		parent.shippingmethod[2].vat=19;
					parent.shippingmethod[2].price[1]=4.9;				
			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;				
					parent.shippingmethod[3] = new classShippingMethod;
		parent.shippingmethod[3].caption="Deutschland Packstation";
		parent.shippingmethod[3].info="Versand an  Ihre Packstation innerhalb Deutschlands. Bitte geben Sie Ihre Post Nr. und Packstation an. Die sendung ist  neutral Verpackt.";
		parent.shippingmethod[3].uid="0000009c480e22c01";
		parent.shippingmethod[3].free=0;
		parent.shippingmethod[3].vat=19;
					parent.shippingmethod[3].price[1]=4.9;				
			parent.shippingmethod[3].weight[1]=0;				
					parent.shippingmethod[3].price[2]=0;				
			parent.shippingmethod[3].weight[2]=0;				
					parent.shippingmethod[3].price[3]=0;				
			parent.shippingmethod[3].weight[3]=0;				
					parent.shippingmethod[3].price[4]=0;				
			parent.shippingmethod[3].weight[4]=0;				
					parent.shippingmethod[3].price[5]=0;				
			parent.shippingmethod[3].weight[5]=0;				
					parent.shippingmethod[4] = new classShippingMethod;
		parent.shippingmethod[4].caption="EU Staaten";
		parent.shippingmethod[4].info="Versand innerhalb EU als Einschreiben. Die Sendung ist neutral verpackt.Bulgarien , Dänemark (außer Färöer, Grönland) Estland Finnland (außer Älandinseln), Frankreich (außer überseeische Gebiete und Departments), Griechenland (außer Berg Athos), Großbritannien (außer Kanalinseln), Irland,  Italien (außer Livigno und Campione d'Italia), Lettland, Litauen,  Luxemburg, Malta, Monaco,  Niederlande (außer außereuropäische Gebiete), Österreich, Polen, Portugal, Rumänien, Schweden,  Slowakei, Slowenien, Spanien (außer Kanarische Inseln, Ceuta und Melilla), Tschechische Republik, Ungarn,  Zypern (außer Nordteil)    ";
		parent.shippingmethod[4].uid="0000009e56007db02";
		parent.shippingmethod[4].free=0;
		parent.shippingmethod[4].vat=19;
					parent.shippingmethod[4].price[1]=10.6;				
			parent.shippingmethod[4].weight[1]=0;				
					parent.shippingmethod[4].price[2]=0;				
			parent.shippingmethod[4].weight[2]=0;				
					parent.shippingmethod[4].price[3]=0;				
			parent.shippingmethod[4].weight[3]=0;				
					parent.shippingmethod[4].price[4]=0;				
			parent.shippingmethod[4].weight[4]=0;				
					parent.shippingmethod[4].price[5]=0;				
			parent.shippingmethod[4].weight[5]=0;				
					parent.shippingmethod[5] = new classShippingMethod;
		parent.shippingmethod[5].caption="Abholung";
		parent.shippingmethod[5].info="Sie können die Bestellung nach Fertigung und Terminvereinbarung abholen.";
		parent.shippingmethod[5].uid="0000009fba0e98901";
		parent.shippingmethod[5].free=0;
		parent.shippingmethod[5].vat=19;
					parent.shippingmethod[5].price[1]=0;				
			parent.shippingmethod[5].weight[1]=0;				
					parent.shippingmethod[5].price[2]=0;				
			parent.shippingmethod[5].weight[2]=0;				
					parent.shippingmethod[5].price[3]=0;				
			parent.shippingmethod[5].weight[3]=0;				
					parent.shippingmethod[5].price[4]=0;				
			parent.shippingmethod[5].weight[4]=0;				
					parent.shippingmethod[5].price[5]=0;				
			parent.shippingmethod[5].weight[5]=0;				
				}
}

function shippingShow() {
// Versand-Methoden anzeigen

	var i,j,sum,totalweight, totalprice, found;
	
	defineShippingMethods();
	updateActualPrice();
	
	sum=0;
	totalweight=0;
	totalprice=0;
	found=false;
	
	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>Der Warenkorb ist leer</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) {
				found=true;

				// 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("kostenlos");
				} 
				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 (found) {		
			if (totalweight>0) {
				document.write("<tr>");
				document.write("<td></td>");
				document.write("<td class='s2d'><br>Gesamtgewicht: "+formatweight(totalweight)+" kg<br><br></td>");
				document.write("<td></td>");
				document.write("</tr>");
			}
		} else {
			document.write("<tr>");
			document.write("<td></td>");
			document.write("<td class='s2d'><br>Es konnte keine geeignete Versandart ermittelt werden, weil das Gesamtgewicht zu hoch ist oder die von Ihnen ausgewählten Artikel nicht in einer einzigen Lieferung versendet werden können.<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='160' height='37' alt='' border='0'></a></td>");
		if (found) {	
			document.write("<td align='right'><a href='s2dpayment.html'><img src='images/pcob.gif' width='160' height='37' 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="Überweisung";
		parent.paymentmethod[1].info="Überweisen Sie den Rechnungsbetrag auf unser Konto.";
		parent.paymentmethod[1].pregateway="Ihre Bestellung wurde in unser Shopsystem übermittelt. Wir haben zu Ihrer Sicherheit ein verschlüsselt übertragenes Fenster geöffnet, in das Sie Ihre Adressdaten eintragen können. Sobald diese eingegeben und bestätigt wurden, ist die Bestellung abgeschlossen. Vielen Dank für Ihren Besuch in unserem Shop.";
		parent.paymentmethod[1].postgateway="Vielen Dank. Ihre Bestellung wurde entgegengenommen. Sie erhalten in Kürze eine Bestätigungsmail. Bitte überweisen Sie den Rechnungsbetrag auf unser Konto. Unsere Bankverbindung finden Sie auf unserer Homepage.";
		parent.paymentmethod[1].email="Vielen Dank für Ihre Bestellung. Bitte überweisen Sie den Rechnungsbetrag auf unser Konto. Unsere Bankverbindung finden Sie auf unserer Homepage.";
		parent.paymentmethod[1].noship="";
		parent.paymentmethod[1].uid="2bdea496b70cdca20";
		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";
			parent.paymentmethod[2] = new classPaymentMethod;
		parent.paymentmethod[2].caption="PayPal";
		parent.paymentmethod[2].info="Bezahlen Sie mit Ihrem PayPal Konto. ";
		parent.paymentmethod[2].pregateway="Ihre Bestellung wurde in unser Shopsystem übermittelt. Wir haben zu Ihrer Sicherheit ein verschlüsselt übertragenes Fenster geöffnet, in das Sie Ihre Adress- und Zahlungsdaten eintragen können. Sobald diese eingegeben und bestätigt wurden, ist die Bestellung abgeschlossen. Vielen Dank für Ihren Besuch in unserem Shop.";
		parent.paymentmethod[2].postgateway="Vielen Dank. Ihre Bestellung wurde entgegengenommen. Klicken Sie jetzt auf 'Mit PayPal bezahlen', um die Bestellung abzuschließen. Bitte beachten Sie, dass ohne diesen letzten Schritt Ihre Bestellung nicht ausgeführt werden kann.";
		parent.paymentmethod[2].email="Vielen Dank für Ihre Bestellung.";
		parent.paymentmethod[2].noship="";
		parent.paymentmethod[2].uid="0000009c480dd7a01";
		parent.paymentmethod[2].price=0;
		parent.paymentmethod[2].vat=19;
		parent.paymentmethod[2].free=0;
		parent.paymentmethod[2].parameter[0]="paypal";
		parent.paymentmethod[2].parameter[1]="info@tobiasballweg.de";
		parent.paymentmethod[2].parameter[2]="DE";
		parent.paymentmethod[2].parameter[3]="EUR";
		parent.paymentmethod[2].parameter[4]="";
		parent.paymentmethod[2].parameter[5]="";
		parent.paymentmethod[2].version="shop2dateversion10";
			parent.paymentmethod[3] = new classPaymentMethod;
		parent.paymentmethod[3].caption="Barzahlung";
		parent.paymentmethod[3].info="Bestellen Sie per Internet, holen Sie die Ware in unserem Shop ab und bezahlen Sie bar.";
		parent.paymentmethod[3].pregateway="Ihre Bestellung wurde in unser Shopsystem übermittelt. Wir haben zu Ihrer Sicherheit ein verschlüsselt übertragenes Fenster geöffnet, in das Sie Ihre Adressdaten eintragen können. Sobald Sie diese eingegeben und bestätigt haben, ist die Bestellung abgeschlossen. Vielen Dank für Ihren Besuch in unserem Shop.";
		parent.paymentmethod[3].postgateway="Vielen Dank. Ihre Bestellung wurde entgegengenommen. Sie erhalten in Kürze eine Bestätigungsmail. Bitte rufen Sie uns an, um einen Abholtermin für Ihre Bestellung zu vereinbaren.";
		parent.paymentmethod[3].email="Vielen Dank für Ihre Bestellung. Sie können die Ware in unserem Ladengeschäft abholen. Unsere Adresse finden Sie am Fuß dieses Schreibens und auf unserer Homepage.";
		parent.paymentmethod[3].noship="";
		parent.paymentmethod[3].uid="0000009fb90d75702";
		parent.paymentmethod[3].price=0;
		parent.paymentmethod[3].vat=16;
		parent.paymentmethod[3].free=0;
		parent.paymentmethod[3].parameter[0]="";
		parent.paymentmethod[3].parameter[1]="";
		parent.paymentmethod[3].parameter[2]="";
		parent.paymentmethod[3].parameter[3]="";
		parent.paymentmethod[3].parameter[4]="";
		parent.paymentmethod[3].parameter[5]="";
		parent.paymentmethod[3].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>Der Warenkorb ist leer</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("kostenlos");
				}
				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='160' height='37' alt='' border='0'></a></td>");
		document.write("<td align='right'><a href='s2dsummary.html'><img src='images/pcob.gif' width='160' height='37' 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="Tobis / Tobias Ballweg, Ernst-Ludwig-Allee 17, D-63303 Dreieich,Germany,Tel.: 06103 67557, <br>St.Nr.: 02880330206, Ust.-IdNr.: 111 855310<br><br>Kontoverbindung fuer Ueberweisungen: <br><br>Tobias Ballweg,<br> Postbank Frankfurt am Main, <br> Kontonummer: 227898603,<br> Bankleitzahl: 50010060,<br> IBAN: DE74 5001 0060 0227 8986 03 PBNKDEFF<br><br> Bitte Geben Sie Ihre Auftragsnummer an.<br><br>-----------------------------------------------------------------------------------------------------------------<br>Allgemeine Geschaeftsbedingungen<br><br><br>1. Allgemeines<br>Diese Allgemeine Geschaeftsbedingungen (AGB) gelten fuer alle gegenwaertigen und zukuenftigen<br>Vertraege zwischen Ihnen, dem Kunden, und Tobis Dildos.<br><br>Anbieter der Leistungen ist<br><br>Tobis D. Unikate<br>Tobias Ballweg<br>Ernst-Ludwig-Allee 17<br>63303 Dreieich<br>info@tobis-dildos.de<br>Tel: 06103-67557<br>(im Folgenden Anbieter genannt)<br><br>Der Anbieter stellt erotische Unikate in kuenstlerischer einzelanfertigung  her und verkauft diese ueber das Internet.<br><br>Es gelten jeweils die zum Zeitpunkt des Vertragsabschlusses aktuellen AGB. Durch den<br>Vertragsschluss erkennen die Kunden die AGB als rechtsverbindlich an. Abweichenden<br>Allgemeinen Geschaetsbedingungen des Vertragspartners, der Unternehmer ist, widersprechen wir<br>hiermit ausdruecklich.<br><br><br>2. Zustandekommen des Vertrages / Angebot<br><br>a) Antrag auf Abschluss eines Kaufvertrages<br><br>Die Darstellung der Produkte und Artikel in unserem Online-Shop stellt kein Angebot auf<br>Abschluss eines Kaufvertrages dar, sondern lediglich eine Aufforderung an den Kunden, selbst<br>einen Kaufantrag abzugeben. Hat der Kunde sich fuer ein Produkt und Artikel entschieden, kann er<br>es durch Anklicken des Buttons Warenkorb in den Warenkorb legen. Dieser Vorgang kann fuer<br>mehrere Artikel und Produkte wiederholt werden. Ein Angebot hat der Kunde mit dem Ablegen des<br>Produktes/Artikels im Warenkorb noch nicht abgegeben. Die Produkte und Artikel koennen jederzeit<br>durch Anklicken des Buttons Artikel loeschen wieder aus dem Warenkorb entfernt werden. Hat sich<br>der Kunde entschieden, die sich in seinem Warenkorb befindlichen Produkte und Artikel zu<br>erwerben, betaetigt er den Button Bestellen. Erst durch das Anklicken des Buttons Bestellen gibt der<br>Kunde dabei ein verbindliches Angebot ueber die sich zu diesem Zeitpunkt in seinem Warenkorb<br>befindlichen Artikel und Produkte ab. Unmittelbar nach Eingang der Bestellung in unserem Online-<br>Shop erhaelt der Kunde eine automatisch generierte Bestaetigungs-eMail ueber den Eingang seiner<br>Bestellung. Eine Annahme des Antrages des Kunden auf Abschluss eines Kaufvertrages kommt<br>durch diese Bestaetigungs-eMail nicht zustande.<br><br>b) Annahme des Antrages zum Abschluss des Kaufvertrages<br><br>Der Kaufvertrag kommt durch die Annahme (gesonderte Auftragsbestaetigung des Anbieters per e-<br>Mail, spaetestens jedoch durch Lieferung der Ware) zustande.<br><br><br>3. Lieferung und Zahlung / Versand- und Verpackungskosten / Preise<br><br>Die Preise beinhalten die jeweilige Mehrwertsteuer zzgl. Versandkosten. Die aktuellen Preise sind<br>dem Angebot des Anbieters auf seiner Homepage www.tobis-dildos.de zu entnehmen.<br>Die Lieferung der bestellten Produkte erfolgt in neutraler Verpackung .<br><br>Versandkosten <br><br>Die Hoehe der Versandkosten, Versicherter Standardversand innerhalb Deutschlands: 4,90 Euro<br>Versicherter Versand an Packstationen innerhalb Deutschlands: 4,90 Euro.<br><br>EU Ausland mit DHL bis 2 kg: 10,60 EURO. Die Einlieferung eines Päckchens mit Service Nachweis EU International wird Ihnen bei Abgabe in Ihrer Filiale oder bei der Abholung quittiert.<br><br>Fuer Versendungen ins Ausland gelten die auf unserer Homepage unter dem Menuepunkt<br>\"Versandinformationen\" genannten Versandkosten.<br><br>Versandkosten fallen nur bei Warenlieferungen an. Die Kosten fuer die Verpackung uebernimmt der<br>Anbieter. Die Lieferungs- und Zahlungsbedingungen vom Onlineshop sind im Bestellformular<br>naeher ausgewiesen. Alle unsere Preise enthalten die gesetzliche Mehrwertsteuer. Es bleibt dem<br>Anbieter vorbehalten, eine Teillieferung vorzunehmen, sofern dies fuer eine zuegige Abwicklung<br>vorteilhaft erscheint. Die dadurch entstehenden zusaetzlichen Versandkosten werden vom Anbieter<br>getragen.<br><br><br>4. Lieferzeiten / Erbringung der Leistung<br><br>Die Bestellung wird unverzueglich nach ihrem Eingang beim Anbieter bearbeitet. Der Anbieter<br>uebergibt die Waren unverzueglich dem Lieferunternehmen. Fuer Befoerderungsprobleme haften wir<br>nicht. Ist die Bestellung voruebergehend nicht vorraetig, bemuehen wir uns um unverzuegliche<br>Lieferung. Der Kunde wird in diesem Fall ueber die Lieferverzoegerung in Kenntnis gesetzt. Im Falle<br>der Nichtverfuegbarkeit der vertragsgemaessen Leistung ist (wenn der Kunde es wuenscht) eine in<br>Qualitaet und Preis gleichwertige Ware zu erbringen. Ist eine Erbringung einer preislich und<br>qualitativ gleichwertigen Leistung nicht moeglich, so kann der Anbieter sich vom Vertrag loesen und<br>braucht die versprochene Leistung nicht zu erbringen. Der Anbieter verpflichtet sich in diesem<br>Falle, den Kunde unverzueglich ueber die Nichtverfuegbarkeit zu informieren und eine gegebenenfalls<br>bereits erbrachte Gegenleistung des Kunden unverzueglich zurueckzuerstatten.<br><br><br>5. Informationspflicht<br><br>Der Kunde ist bei der Bestellung verpflichtet, wahrheitsgemaesse Angaben zu machen. Sofern sich<br>Daten des Kunden aendern, insbesondere Name, Anschrift, E-Mail-Adresse ist der Kunde<br>verpflichtet, dem Anbieter diese Aenderung unverzueglich durch Aenderung der Angaben mitzuteilen.<br>Der Anbieter sendet dem Kunden unmittelbar nach Absenden des Bestellformulars eine E-Mail mit<br>den Bestelldaten des Kunden an die angegebene E-Mail-Adresse. Der Kunde verpflichtet sich, den<br>Anbieter unverzueglich unter: info@tobis-dildos.de zu informieren, wenn diese E-Mail ihn nicht<br>innerhalb von einem Tag nach Absenden des Bestellformulars erreicht hat. Der Kunde hat dafuer<br>Sorge zu tragen, das von ihm angegebene E-Mail-Konto ab dem Zeitpunkt der Angabe erreichbar<br>ist, und nicht aufgrund von Weiterleitung, Stilllegung oder Ueberfuellung des E-Mail-Kontos ein<br>Empfang von E-Mail-Nachrichten ausgeschlossen ist.<br><br><br>6.Widerrufsrecht<br><br><br>Widerrufsbelehrung<br><br>Widerrufsrecht<br><br>Sie koennen Ihre Vertragserklaerung innerhalb von 14 Tagen ohne Angabe von Gruenden in<br>Textform (z. B. Brief, Fax, E-Mail) oder - wenn Ihnen die Sache vor Fristablauf ueberlassen<br>wird - durch Ruecksendung der Sache widerrufen. Die Frist beginnt nach Erhalt dieser<br>Belehrung in Textform, jedoch nicht vor Eingang der Ware beim Empfaenger (bei der<br>wiederkehrenden Lieferung gleichartiger Waren nicht vor dem Eingang der ersten<br>Teillieferung) und auch nicht vor Erfuellung unserer Informationspflichten gemaess Artikel 246<br>Pararaph 2 in Verbindung mit Paragraph 1 Abs. 1 und 2 EGBGB sowie unserer Pflichten gemaess Paragraph 312e Abs. 1<br>Satz 1 BGB in Verbindung mit Artikel 246 Paragraph 3 EGBGB. Zur Wahrung der Widerrufsfrist<br>genuegt die rechtzeitige Absendung des Widerrufs oder der Sache. Der Widerruf ist zu richten<br>an:<br><br><br>Tobias Ballweg<br>Ernst-Ludwig-Allee 17<br>63303 Dreieich<br>info@tobis-dildos.de<br>Tel: 06103-67557<br><br><br>Widerrufsfolgen<br><br>Im Falle eines wirksamen Widerrufs sind die beiderseits empfangenen Leistungen<br>zurueckzugewaehren und ggf. gezogene Nutzungen (z. B. Zinsen) herauszugeben. Koennen Sie<br>uns die empfangene Leistung ganz oder teilweise nicht oder nur in verschlechtertem Zustand<br>zurueckgewaehren, muessen Sie uns insoweit ggf. Wertersatz leisten. Bei der Ueberlassung von<br>Sachen gilt dies nicht, wenn die Verschlechterung der Sache ausschliesslich auf deren Pruefung<br>- wie sie Ihnen etwa im Ladengeschaeft moeglich gewesen waere - zurueckzufuehren ist. Im<br>Uebrigen koennen Sie die Pflicht zum Wertersatz fuer eine durch die bestimmungsgemaesse<br>Ingebrauchnahme der Sache entstandene Verschlechterung vermeiden, indem Sie die Sache<br>nicht wie Ihr Eigentum in Gebrauch nehmen und alles unterlassen, was deren Wert<br>beeintraechtigt. Paketversandfaehige Sachen sind auf unsere Gefahr zurueckzusenden. Sie haben<br>die Kosten der Ruecksendung zu tragen, wenn die gelieferte Ware der bestellten entspricht und<br>wenn der Preis der zurueckzusendenden Sache einen Betrag von 40 Euro nicht uebersteigt oder<br>wenn Sie bei einem hoeheren Preis der Sache zum Zeitpunkt des Widerrufs noch nicht die<br>Gegenleistung oder eine vertraglich vereinbarte Teilzahlung erbracht haben. Anderenfalls ist<br>die Ruecksendung fuer Sie kostenfrei. Nicht paketversandfaehige Sachen werden bei Ihnen<br>abgeholt. Verpflichtungen zur Erstattung von Zahlungen muessen innerhalb von 30 Tagen<br>erfuellt werden. Die Frist beginnt fuer Sie mit der Absendung Ihrer Widerrufserklaerung oder<br>der Sache, fuer uns mit deren Empfang.<br><br>Ende der Widerrufsbelehrung<br><br>Das Widerrufsrecht besteht nicht bei Vertraegen<br><br>- zur Lieferung von Waren, die nach Kundenspezifikation angefertigt wurden oder eindeutig<br>auf die persoenlichen Beduerfnisse zugeschnitten sind.<br><br><br>7. Gefahruebergang<br><br>Bei Lieferungen an Unternehmer (Paragraph 14 BGB) geht die Gefahr auf den Kaeufer ueber, sobald die<br>Sendung mit den Liefergegenstaenden an den Spediteur uebergeben wird.<br><br>Bei Lieferungen an Verbraucher (Paragraph 13 BGB) geht die Gefahr auf den Kaeufer ueber, sobald die<br>Sendung mit den Liefergegenstaenden vom Spediteur an den Kaeufer oder dessen Bevollmaechtigten<br>oder an der vom Kaeufer angegebenen Lieferadresse uebergeben wird.<br><br><br>8. Gewaehrleistung / Haftungsausschluss<br><br>Die Gewaehrleistung erfolgt nach den gesetzlichen Bestimmungen.<br>Kleine Abweichungen und technische Aenderungen gegenueber unseren Abbildungen oder<br>Beschreibungen sind moeglich. Der jeweilige Katalog verliert mit Erscheinen einer Neuausgabe<br>seine Gueltigkeit. Irrtuemer und Fehler von Angaben, Bildern und Systemen vorbehalten.<br><br>Der Anbieter haftet fuer Schaeden aus der Verletzung des Lebens, des Koerpers oder der Gesundheit,<br>die auf einer fahrlaessigen Pflichtverletzung des Anbieters oder einer vorsaetzlichen oder fahrlaessigen<br>Pflichtverletzung eines gesetzlichen Vertreters oder Erfuellungsgehilfen des Anbieters beruht.<br><br>Der Anbieter haftet weiterhin fuer sonstige Schaeden, die auf einer grob fahrlaessigen Pflichtverletzung<br>des Anbieters oder auf einer vorsaetzlichen oder grob fahrlaessigen Pflichtverletzung eines<br>gesetzlichen Vertreters oder Erfuellungsgehilfen des Anbieters beruhen.<br><br>Der Anbieter haftet fuer einfache Fahrlaessigkeit bei Verletzung der wesentlichen Vertragspflichten<br>und bei vertragstypisch vorhersehbaren Schaeden. Zu den wesentlichen Vertragspflichten gehoert die Uebergabe und die Verschaffung des Eigentums an der bestellten Sache. Weiterhin muss die Sache<br>frei von Sach- und Rechtsmaengeln uebergeben werden.<br><br>In allen anderen Faellen haftet der Anbieter nicht.<br><br><br>9. Eigentumsvorbehalt<br><br>Die gelieferte Ware bleibt bis zur vollstaendigen Zahlung des Kaufpreises Eigentum des Anbieters,<br>unabhaengig vom Ablauf der Widerrufsfrist.<br><br><br>10. Datenspeicherung<br><br>Es werden nur die Daten verwendet und erhoben, die fuer die Vertragsabwicklung erforderlich sind.<br>Eine Weitergabe an Dritte erfolgt nicht.<br><br><br>11. Volljaehrigkeit<br><br>Der Kunde bestaetigt bei Aufgabe einer Bestellung seine Volljaehrigkeit.<br><br><br>12. Wirksamkeit<br><br>Sollte eine Bestimmung dieser Vereinbarung unwirksam sein oder werden, so beruehrt dies die<br>Wirksamkeit der restlichen Bestimmungen nicht. Soweit die Bestimmungen nicht<br>Vertragsbestandteil geworden oder unwirksam sind, richtet sich der Inhalt des Vertrages nach den<br>gesetzlichen Vorschriften.Fehlen fuer eine Vertragsergaenzung geeignete Vorschriften, ist die Luecke<br>durch ergaenzende Vertragsauslegung zu schliessen. An die Stelle der unwirksamen Bestimmung tritt<br>die Regelung, die die Parteien bei sachgerechter Abwaegung der beiderseitigen Interessen gewaehlt<br>haetten, wenn Ihnen die Unwirksamkeit der Bestimmung bewusst gewesen waere.<br><br>..................................................................................................................<br><br>";
	
	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>Bestellformular</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'>Bestellformular</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>Adresse:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>PLZ und Ort:</strong><br></td></tr>");
		mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Telefonnummer:</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>Kontonummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Bankleitzahl:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kreditinstitut:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kontoinhaber:</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>Kartentyp (bitte ankreuzen): "+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kartennummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Karteninhaber:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Gültig bis:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d'><br></td></tr>");
				break;
			case "printcreditcardcvc":
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kartentyp (bitte ankreuzen): "+parent.paymentmethod[parent.selectedpaymentmethod].parameter[1]+"</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Kartennummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>CVV/CVC-Nummer:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Karteninhaber:</strong><br></td></tr>");
				mydoc.write("<tr><td class='s2d' style='border-bottom: 1px solid #000000;' solid;'><strong>Gültig bis:</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, Ort, Unterschrift:</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>Anzahl</strong></td>");
	mydoc.write("<td width='100%' class='s2d'><strong>Bezeichnung</strong></td>");
		mydoc.write("<td nowrap align='right' class='s2d'><strong>Einzelpreis</strong></td>");
	mydoc.write("<td nowrap align='right' class='s2d'><strong>Gesamtpreis</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));
						if ((newwindow) && (parent.basket[i].id!="")) {
				mydoc.write(" ["+htmlChars(parent.basket[i].id)+"]");
			}
						mydoc.write("</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'>Versandkosten:</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+"% USt.:</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>Endsumme:</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'>Gewünschte Versandart: </td>");
	mydoc.write("<td nowrap class='s2d'>"+shippingcaption+"</td>");
	mydoc.write("</tr>");
	
	if (totalweight>0) {
		mydoc.write("<tr>");
		mydoc.write("<td nowrap class='s2d'>Gesamtgewicht: </td>");
		mydoc.write("<td nowrap class='s2d'>"+formatweight(totalweight)+" kg</td>");
		mydoc.write("</tr>");
	}

	mydoc.write("<tr>");
	mydoc.write("<td nowrap class='s2d'>Gewünschte Zahlungsweise: </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>Bitte überprüfen Sie Ihre Eingaben. Sie können diese durch Klicken auf \"Zurück\" korrigieren. Wenn alle Eingaben richtig sind, klicken Sie auf \"Weiter\".</p>");
					mydoc.write("<p>Bitte copieren Sie diese Daten zum ausdrucken oder Speichern, im nächsten Schritt werden diese Daten gelöscht.</p>");
							mydoc.write("<p>Es gelten unsere allgemeinen Geschäftsbedingungen. Sie können diese jederzeit über den Menüpunkt <a class=s2d href=\"agb.html\">AGB</a> einsehen.</p>");
				mydoc.write("</td></tr>");		
		mydoc.write("<form name='formagb'><tr><td class='s2d'><input type='checkbox' name='checkagb' value='1'><strong>Mit der Geltung der Allgemeinengeschäftsbedingung bin ich einverstanden.</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("Gewünschte Versandart "+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.tobis-dildos.de/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+vatsum)+"'>");
				mydoc.write("<input type='hidden' name='OTVT' value='"+vatsum+"'>");
				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='160' height='37' alt='' border='0'></a></td>");
		mydoc.write("<td align='right'><a href='' onclick='submitOrder();return false;'><img src='images/pcob.gif' width='160' height='37' 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='160' height='37' alt='' border='0'></a></td>");
	document.write("<td align='right'><a onclick='parent.basket.length=0;return true;' href='./index2.html'><img src='images/psmb.gif' width='160' height='37' alt='' border='0'></a></td>");
	document.write("<tr>");
	document.write("</table>");
}

function submitOrder() {

	// Bestellung absenden
	
	if (!document.formagb.checkagb.checked) {
		alert("Bitte lesen Sie unsere AGB und markieren Sie das Feld \"Ich habe die AGB gelesen und bin damit einverstanden\", bevor Sie fortfahren.")
	}
	else {

		switch (parent.paymentmethod[parent.selectedpaymentmethod].parameter[0]) {
		case "printdebit":
		case "printcod":
		case "printcheque":
		case "printremittance":
		case "printcreditcard":
		case "printcreditcardcvc":
		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";
		}
	}
}


