<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function StringFilter (input) {
	var s = input.value;
	filteredValues = " ";     // Zeichen, die ausselektiert werden sollen, wenn sie am Anfang stehen
	var i;
	var returnString = "";
	var bNoCheck = false;
	for (i = 0; i < s.length; i++) {  //string durchgehen und zeichenweise ergebnis aufbauen
		var c = s.charAt(i);
		if ((filteredValues.indexOf(c) == -1) || (bNoCheck)) { returnString += c; bNoCheck = true;}
		}
	input.value = returnString;
}

function StringRemoveSpace (input) {
	var s = input.value;
	filteredValues = " ";     // Zeichen, die ausselektiert werden sollen, wenn sie am Anfang stehen
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {  //string durchgehen und zeichenweise ergebnis aufbauen
		var c = s.charAt(i);
		if (filteredValues.indexOf(c) == -1) { returnString += c;}
		}
	input.value = returnString;
}

function CheckGUForm() {
	StringFilter(document.forms.GUForm.GutscheinCode);

	if (document.forms.GUForm.GutscheinCode.value=='') {
			alert('Bitte Gutschein-Code eingeben!');
			document.forms.GUForm.GutscheinCode.focus();
			return false;
		}

	document.forms.GUForm.submit();
	return true;
}


// Popups
var EditWin = null;

function OpenPopupGUVerg () {
	var url="GutscheinCodeVergessen.asp";
	var w=340;
	var h=340;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=no, scrollbars=no, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenPimpBanner() {
	var url="popuppimpyourpartybanner.asp";
	var w=888;
	var h=560;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenAGB() {
	var url="popupagb.asp";
	var w=630;
	var h=560;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenWiderruf() {
	var url="popupwiderruf.asp";
	var w=630;
	var h=560;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenDatenschutz() {
	var url="popupdatenschutz.asp";
	var w=630;
	var h=560;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenExpress() {
	var url="popupExpress.asp";
	var w=630;
	var h=560;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenDetail(strBase, strID) {
	var url="popup_produkt.asp?Base="+strBase + "&ID="+strID;
	var w=630;
	var h=580;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=no, scrollbars=no, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}

function OpenKartenpruefnummer() {
	var url="popupkartenpruefnummer.asp";
	var w=630;
	var h=460;
	var t=(screen.height-h)/2;
	var l=(screen.width-w)/2;
	if (EditWin!=null) {if (EditWin.closed == false) EditWin.close();}
	EditWin=window.open(url,'myluemmel','toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width='+w+' , height='+h+', left='+l+', top='+t);
	EditWin.focus();
}
// Ende Popups

// Kontrollfunktion für Formular
function CheckNumbers(strString) {
	var strNumbers=new String("0123456789");
	for (i=0;i<strString.length;i++) {
		if (strNumbers.indexOf(strString.charAt(i))<0) return false;
	}
	return true;
}

function CheckEmail(ctrEmail) {
	var Email = '';
	var bEmail=false;
	if (ctrEmail == null) { return false; }
	Email = ctrEmail.value;	
	if (Email == "") { return false; }
	if (Email.indexOf('@') == -1) { return false; } // es muss ein @ drin sein
	else
	{
		var atsign = Email.substring(0,Email.lastIndexOf('@'));
		var domain = Email.substring(atsign.length+1,Email.length);
		if (atsign=="") { return false; }
		if (domain=="") { return false; }
		if (domain.indexOf('.') == 0) { return false; }
		if (Email.indexOf('.') == -1) { return false; }
		else
		{
			var subdomain = Email.substring(atsign.length+1,Email.lastIndexOf('.'));
			if ((subdomain.length < 2)) { return false; }
			var country = domain.substring(subdomain.length+1,domain.length);
			if ((country.length < 2)) { return false; }
			if (subdomain.indexOf('.')!=-1) {
				var nLast=subdomain.lastIndexOf('.')+1;
				var topleveldomain= subdomain.substr(nLast,subdomain.length);
				if (topleveldomain.length<2) { return false; }
			}
		}
	}
	if (Email.indexOf('@') != Email.lastIndexOf('@')) { return false; } // nur 1 @ drin!
//	if (Email.indexOf('.@') != -1) { return false; } // es darf kein punkt unmittelbar vor dem @ sein
	if (Email.indexOf('Ü') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('Ö') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('Ä') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('ß') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('ü') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('ö') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('ä') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf(',') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf(';') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('&') != -1) { return false; } // es darf kein Ü drin sein
	// if (Email.indexOf('+') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('/') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('\\') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('?') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf('(') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf(')') != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf("'") != -1) { return false; } // es darf kein Ü drin sein
	if (Email.indexOf(" ") != -1) { return false; } // es darf kein Ü drin sein

	return true;
} 
// Ende Kontrollfunktion für Formular

// erhöht bzw. verringert die Anzahl der bestellten Lümmel
function Add(strArtikelnummer) {
	whatForm = document.forms.Step1Form;
	nAnzElements = whatForm.elements.length;
	for (i=0; i < whatForm.elements.length; i++) {
		objValue = whatForm.elements[i];
		if (objValue.name == "IDPR" && objValue.value == strArtikelnummer) {
			i++;
			nValue = whatForm.elements[i].value;
			if (isNaN(nValue) ) nValue = 1; else nValue++;
			if (nValue > 99) nValue = 99;
			whatForm.elements[i].value = nValue;
			return;
		}
	}
}

function Sub(strArtikelnummer) {
	whatForm = document.forms.Step1Form;
	nAnzElements = whatForm.elements.length;
	for (i=0; i < whatForm.elements.length; i++) {
		objValue = whatForm.elements[i];
		if (objValue.name == "IDPR" && objValue.value == strArtikelnummer) {
			i++;
			nValue = whatForm.elements[i].value;
			if (isNaN(nValue) ) nValue = 1; else nValue--;
			if (nValue < 1) { 
				location.href="shop-step1.asp?act=del&IDPR=" + strArtikelnummer;
			} else { 
				whatForm.elements[i].value = nValue;
				return;
			}	
		}
	}
}


// Kontrolle des Formulars auf der Seite shop-step1.asp
function CheckStep1Form(strParam) {
	whatForm = document.forms.Step1Form;
	strStandURL = "https://www.myluemmel.de/de/shop-step2.asp"; // https://www.myluemmel.de/de/ KB: 13.08.08 SSL-Verbindung deaktiviert KB: 15.12.2008 SSL wieder aktiv
	if (strParam == "edit") whatForm.action = "https://www.myluemmel.de/de/shop-step1.asp";
	if (strParam == "step3" || strParam == "Step3") whatForm.action = "https://www.myluemmel.de/de/shop-step3.asp";
	if (strParam == "step4" || strParam == "Step4") whatForm.action = "https://www.myluemmel.de/de/shop-step4.asp";
	nAnzElements = whatForm.elements.length;
	var bOK = true;
	for (j=0; j < whatForm.elements.length; j++) {
		objValue = whatForm.elements[j];
		if (objValue.name == "StueckPR") {
			if (!CheckNumbers(objValue.value) ) {
				alert("Bitte gültige Zahl als  Stückzahl eingeben!");
				objValue.focus();
				bOK = false;
				j = whatForm.elements.length+10;
			}
		}
	}
	if (bOK) whatForm.submit();
}

// Funktionen zur Verarbeitung der Daten im Shop-Step2
function BestAendStep2() {
	document.forms.Step2Form.action="shop-step1.asp";
	document.forms.Step2Form.submit();
	return true;
}

function CheckStep2Form(strParam) {
	whatForm = document.forms.Step2Form;
	if (strParam == "step4" || strParam == "Step4") whatForm.action = "shop-step4.asp";
	
	StringFilter(whatForm.ORName1);
	StringFilter(whatForm.ORName2);
	StringFilter(whatForm.ORStrasse);
	StringFilter(whatForm.ORPLZ);
	StringFilter(whatForm.OROrt);
	
	StringFilter(whatForm.OREMail);
	StringFilter(whatForm.ORTelefon);
			

	nOption = whatForm.OROption;
	bPrivat = nOption[0].checked;
	bFirma = nOption[1].checked;
	
	if (!bFirma && !bPrivat) {
		alert("Bitte wählen Sie die Art der Adresse (Privat / Firma) aus!");
		return;
	}
	
	if (bFirma && whatForm.ORFirma.value=="") {
		alert("Bitte den Firmennamen eingeben!");
		whatForm.ORFirma.focus();
		return;
	}
	if (whatForm.ORAnrede.selectedIndex == 0) {
		alert("Bitte Anrede auswählen!");
		whatForm.ORAnrede.focus();
		return;
	}
	
	if (bPrivat && whatForm.ORName1.value=="") {
		alert("Bitte den Vorname eingeben!");
		whatForm.ORName1.focus();
		return;
	}
	
	if (bPrivat && whatForm.ORName2.value=="") {
		alert("Bitte den Nachnamen eingeben!");
		whatForm.ORName2.focus();
		return;
	}
	
	if (whatForm.ORStrasse.value=="") {
		alert("Bitte Strasse eingeben!");
		whatForm.ORStrasse.focus();
		return;
	}
	if (whatForm.ORPLZ.value=="") {
		alert("Bitte Postleitzahl eingeben!");
		whatForm.ORPLZ.focus();
		return;
	}
	if (whatForm.OROrt.value=="") {
		alert("Bitte Ort eingeben!");
		whatForm.OROrt.focus();
		return;
	}
	
	nIDLA = whatForm.ORLand[whatForm.ORLand.selectedIndex].value;
	if (nIDLA == -1) {
		alert('Bitte das Rechnungsland angeben!');
		document.forms.Order1Form.ORLand.focus();
		return;	
	}
	
	if (whatForm.OREMail.value=="") {
		alert("Bitte EMail-Adresse eingeben!");
		whatForm.OREMail.focus();
		return;
	} else {
		if (!CheckEmail(whatForm.OREMail)) {
			alert('Die EMail-Adresse ist fehlerhaft. Bitte korrigieren Sie die EMail-Adresse!');
			document.forms.Order1Form.OREMai2.focus();
			return;
		}
	}
	
	
	var nsepLiefAdr = whatForm.boolsepLiefadr.value;

	if (nsepLiefAdr == 1) {
		if (whatForm.LIAnrede.selectedIndex == 0) {
			alert("Bitte Anrede des Empfängers der Lieferung auswählen!");
			whatForm.LIAnrede.focus();
			return;
		}
	
	
		if(whatForm.LIName.value=="") {
			alert("Bitte Vornamen des Empfängers der Lieferung eingeben!");
			whatForm.LIName.focus();
			return;
		}
		
		if(whatForm.LIName2.value=="") {
			alert("Bitte Nachnamen des Empfängers der Lieferung eingeben!");
			whatForm.LIName2.focus();
			return;
		}
	
		if(whatForm.LIStrasse.value=="") {
			alert("Bitte Strasse der Lieferung eingeben!");
			whatForm.LIStrasse.focus();
			return;
		}
		
		if (whatForm.LIPLZ.value=="") {
			alert("Bitte Postleitzahl eingeben!");
			whatForm.LIPLZ.focus();
			return;
		}
	
		if (whatForm.LIOrt.value=="") {
			alert("Bitte Ort eingeben!");
			whatForm.LIOrt.focus();
			return;
		}
		
		if (whatForm.LILand.selectedIndex == 0) {
			alert("Bitte Lieferland eingeben!");
			whatForm.LILand.focus();
			return;
		}
	}
	
	whatForm.submit();
}

function CheckExpress() {
	whatForm = document.forms.Step2Form;
	var nsepLiefAdr = whatForm.boolsepLiefadr.value;
	if (nsepLiefAdr == 0) {
		nIDLA = whatForm.ORLand[whatForm.ORLand.selectedIndex].value;
	} else {
		nIDLA = whatForm.LILand[whatForm.LILand.selectedIndex].value;
	}
	document.forms.Step2Form.express.checked = false;
	if (nIDLA == 1 || nIDLA == -1) {
		document.forms.Step2Form.express.disabled = false;
	} else {
		document.forms.Step2Form.express.disabled = true;
	}
}

function LiefAdrVisible () {
	if(document.forms.Step2Form.boolsepLiefadr.value=='1') 
	{ 
		document.forms.Step2Form.LIAnrede.value="";
		document.forms.Step2Form.LIName.value="";
		document.forms.Step2Form.LIName2.value="";
		document.forms.Step2Form.LIFirma.value="";
		document.forms.Step2Form.LIZusatz.value="";
		document.forms.Step2Form.LIStrasse.value="";
		document.forms.Step2Form.LIPLZ.value="";
		document.forms.Step2Form.LIOrt.value="";
		document.forms.Step2Form.LILand.selectedIndex='0';
		document.forms.Step2Form.boolsepLiefadr.value=0;
		
		siteReload();
	}
	else
	{ 
		document.forms.Step2Form.boolsepLiefadr.value='1';
		siteReload();
	}
}

// Funktionen zur Kontrolle des Step3
function BestAendStep3() {
	document.forms.Step3Form.action="shop-step2.asp";
	
	var tempZahlung = -1;
	for (i=0; i < document.getElementsByName("TYPM").length; i++)
	{
		if (document.getElementsByName("TYPM")[i].checked == true) {
			tempZahlung = document.getElementsByName("TYPM")[i].value;
		}
	}
	
	if (tempZahlung==-1) {
		alert("Bitte wählen Sie eine Zahlungsart aus!");
		return false;
	}
	
	document.forms.Step3Form.TYPM.value=tempZahlung;	
	document.forms.Step3Form.submit();
}

function CheckStep3Form() {
	if (CheckFieldsStep3())
		document.forms.Step3Form.submit();	
	else
		return;
}

function CheckFieldsStep3() {
	var tempZahlung = -1;
	for (i=0; i < document.getElementsByName("TYPM").length; i++)
	{
		if (document.getElementsByName("TYPM")[i].checked == true) {
			tempZahlung = document.getElementsByName("TYPM")[i].value;
		}
	}
	
	if (tempZahlung==-1) 
	{
		alert("Bitte wählen Sie eine Zahlungsart aus!");
		return false;
	}
	
	// Zahlung Nachnahme
	if (tempZahlung==1) return true;
	
	// Zahlung per Kreditkarte
	if (tempZahlung==3) { 
		if (document.forms.Step3Form.KIPM.value=="") {
			alert("Bitte Karteninhaber angeben!");
			document.forms.Step3Form.KIPM.focus();
			return false;
		}
		
		if (document.forms.Step3Form.KNPM.value=="") {
			alert("Bitte Kreditkartennummer angeben!");
			document.forms.Step3Form.KNPM.focus();
			return false;
		}
		
		if (document.forms.Step3Form.KPPM.value=="") {
			alert("Bitte Kartenprüfnummer angeben!");
			document.forms.Step3Form.KPPM.focus();
			return false;
		}
		
		return CheckCardNumberForm(this);
	}
	
	// Zahlung per Vorkasse
	if (tempZahlung==5) return true;
	
	return true;
}

// Funktionen zur Kontrolle von Step4
function AddStep4(strArtikelnummer) {
	whatForm = document.forms.Step4Form;
	nAnzElements = whatForm.elements.length;
	for (i=0; i < whatForm.elements.length; i++) {
		objValue = whatForm.elements[i];
		if (objValue.name == "IDPR" && objValue.value == strArtikelnummer) {
			i++;
			nValue = whatForm.elements[i].value;
			if (isNaN(nValue) ) nValue = 1; else nValue++;
			if (nValue > 99) nValue = 99;
			whatForm.elements[i].value = nValue;
			return;
		}
	}
}

function SubStep4(strArtikelnummer) {
	whatForm = document.forms.Step4Form;
	nAnzElements = whatForm.elements.length;
	for (i=0; i < whatForm.elements.length; i++) {
		objValue = whatForm.elements[i];
		if (objValue.name == "IDPR" && objValue.value == strArtikelnummer) {
			i++;
			nValue = whatForm.elements[i].value;
			if (isNaN(nValue) ) nValue = 1; else nValue--;
			if (nValue < 1) nValue=1;
			whatForm.elements[i].value = nValue;
			return;
		}
	}
}

function CheckStep4Form(strParam) {
	whatForm = document.forms.Step4Form;
	if (strParam == "edit") whatForm.action = "shop-step4.asp";
	nAnzElements = whatForm.elements.length;
	var bOK = true;
	for (j=0; j < whatForm.elements.length; j++) {
		objValue = whatForm.elements[j];
		if (objValue.name == "StueckPR") {
			if (!CheckNumbers(objValue.value) ) {
				alert("Bitte gültige Zahl als  Stückzahl eingeben!");
				objValue.focus();
				bOK = false;
				j = whatForm.elements.length+10;
			}
		}
	}
	if (bOK) whatForm.submit();
}

function CheckShopStep4AGB() {
	whatForm = document.forms.ShopStep4AGB;

	xElement = document.getElementById("checkAGB");
	bOK = true;
	if (whatForm.agb.checked == false) {
		alert("Bitte akzeptieren Sie unsere AGB.");
		xElement.style.border="1px solid #EE0D90"; // FF0000
		xElement.style.padding="5px;";
		xElement.style.backgroundColor="#E6E7E8"; // C5C5C5
		document.location.href="#checkAGB";
		return;
	}
	if (bOK) whatForm.submit();
}

function BestAendStep4() {
	document.forms.Step4Form.action="shop-step3.asp";
	document.forms.Step4Form.submit();
	return true;
}

// Kontrolle des Formulars in der Detailansicht
function CheckFormShop() {
	bOKCheck = true;
	bOKNull = true;
	nulli = 0;
	nonulli = 0;
	whatForm = document.forms.DetailForm;
	for (formi = 0; formi < whatForm.elements.length; formi++) {
		objStueck = whatForm.elements[formi];
		if (objStueck.name == "StueckPR") {
			if (!CheckNumbers(objStueck.value)) {
				alert("Bitte gültige Zahl als  Stückzahl eingeben!");
				objStueck.focus();
				return false;
				formi = whatForm.elements.length + 10;
				bOKCheck = false;
			} 
		}
	}
	for (formi = 0; formi < whatForm.elements.length; formi++) {
		objStueck = whatForm.elements[formi];
		if (objStueck.name == "StueckPR" && objStueck.value > 0) {
			bOKNull = false;
		}
	}
	
	objImg = document.getElementById("Detailbild_left").src;
	strSource = objImg.substring(objImg.lastIndexOf("/")+1);
	arrSource = strSource.split("_");
	strArtikelnummerAkt = arrSource[0];
	strArtikelnummerAkt = strArtikelnummerAkt.split("-");
	
	if (bOKNull) { 
		for (formi = 0; formi < whatForm.elements.length; formi++) {
			objAkt = whatForm.elements[formi];
			objNext = whatForm.elements[formi+1];
			if (objAkt.name == "IDPR" && objAkt.value == strArtikelnummerAkt[0] && objNext.name == "FarbePR" && objNext.value == strArtikelnummerAkt[1]) {
				whatForm.elements[formi + 2].value = 1;
				formi = whatForm.elements.length + 10;
			}
		}
	}
	if (bOKCheck) whatForm.submit();
}

// Funktionen zur Kontrolle des Kontaktformulars
function siteReloadKontakt() {
	document.forms.kontakt.action = "kontakt.asp";
	document.forms.kontakt.submit();
}

function CheckKontaktForm() {
	whatForm = document.forms.kontakt;
	bPrivat = whatForm.OROption[0].checked;
	bFirma = whatForm.OROption[1].checked;
	
	if (bPrivat && whatForm.Anrede.selectedIndex == 0) {
		alert("Bitte Anrede auswählen!");
		whatForm.Anrede.focus();
		return false;
	}
	
	if (bPrivat && whatForm.Vorname.value == "") {
		alert("Bitte Vorname angeben!");
		whatForm.Vorname.focus();
		return false;
	}
	
	if (bPrivat && whatForm.Nachname.value == "") {
		alert("Bitte Nachname angeben!");
		whatForm.Nachname.focus();
		return false;
	}
	
	if (bFirma && whatForm.Firma.value == "") {
		alert("Bitte den Firmennamen angeben!");
		whatForm.Firma.focus();
		return false;
	}
	
	 if (bFirma && whatForm.Ansprechpartner.value == "") {
		alert("Bitte geben Sie den Ansprechpartner an!");
		whatForm.Ansprechpartner.focus();
		return false;
	}
	
	if (!CheckEmail(whatForm.mail) ) {
		alert("Bitte korrekte Email angeben!");
		whatForm.mail.focus();
		return false;
	}

	if (whatForm.mitteilung.value == "") {
		alert("Bitte geben Sie Ihre Mitteilung an!");
		whatForm.mitteilung.focus();
		return false;
	}
	
	strPersTextKontakt = whatForm.mitteilung.value;
	strPersTextKontakt = strPersTextKontakt.toLowerCase();
	if (strPersTextKontakt.indexOf("url=") > -1 || strPersTextKontakt.indexOf("a href") > -1) {
		alert("Es sind keine HTML-Zeichen erlaubt!");
		whatForm.mitteilung.focus();
		return false;
	}
	
	if (whatForm.Sicherheitscode.value == "") {
		alert("Bitte geben Sie den Sicherheitscode an!");
		whatForm.Sicherheitscode.focus();
		return false;
	} else {
		if (whatForm.Sicherheitscode.value != whatForm.SicherheitscodeVorgabe.value) {
			alert("Der eingegebene Sicherheitscode ist nicht korrekt!");
			whatForm.Sicherheitscode.focus();
			return false;
		}
	}
	
	return true;
}




// KREDITKARTEN CHECK
var Cards = new makeArray(8);
Cards[0] = new CardType("MC", "51,52,53,54,55", "16");
var MC = Cards[0];
Cards[1] = new CardType("VC", "4", "13,16");
var VC = Cards[1];
Cards[2] = new CardType("AE", "34,37", "15");
var AE = Cards[2];
Cards[3] = new CardType("DC", "30,36,38", "14");
var DC = Cards[3];
Cards[4] = new CardType("DiscoverCard", "6011", "16");
var DiscoverCard = Cards[4];
Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
var enRouteCard = Cards[5];
Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
var JCBCard = Cards[6];
var LuhnCheckSum = Cards[7] = new CardType();

/*************************************************************************\
CheckCardNumberForm(form)
function called when users click the "check" button.
\*************************************************************************/
function CheckCardNumberForm(xyz) {
var tmpyear;
var tmpmonth;
tmpyear = document.forms.Step3Form.GJPM.value;
tmpmonth = document.forms.Step3Form.GMPM.options[document.forms.Step3Form.GMPM.selectedIndex].value;
// The following line doesn't work in IE3, you need to change it
// to something like "(new CardType())...".
// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
alert("Das Gültigkeitsdatum der Kreditkarte ist abgelaufen!");
return false;
}
card = document.forms.Step3Form.KAPM.options[document.forms.Step3Form.KAPM.selectedIndex].value;
var retval = eval(card + ".checkCardNumber(\"" + document.forms.Step3Form.KNPM.value +
"\", " + tmpyear + ", " + tmpmonth + ");");
cardname = "";
if (retval) {


// comment this out if used on an order form
return true;
}
else {
// The cardnumber has the valid luhn checksum, but we want to know which
// cardtype it belongs to.
for (var n = 0; n < Cards.size; n++) {
if (Cards[n].checkCardNumber(document.forms.Step3Form.KNPM.value, tmpyear, tmpmonth)) {
cardname = Cards[n].getCardType();
break;
   }
}
if (cardname.length > 0) {
var strCardname = MakeRealCardName(cardname);
var strCard = MakeRealCardName(card);
alert("Die Kartennummer scheint die Nummer einer " + strCardname + " zu sein, nicht einer " + strCard + "!");
}
else {
	alert("Die eingegebene Kartennummer ist ungültig. Bitte überprüfen Sie die Kartennummer!");
	document.forms.Step3Form.KNPM.focus();
      }
   }
return false;
}

function MakeRealCardName(strCardname) {
	if (strCardname=='MC') return ('Eurocard/Mastercard');
	if (strCardname=='VC') return ('VisaCard');
	if (strCardname=='AE') return ('American Express');
	if (strCardname=='DC') return ('DinersClub');
	return (strCardname);
}

/*************************************************************************\
Object CardType([String cardtype, String rules, String len, int year, 
                                        int month])
cardtype    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new CardType("Visa", "4", "16");
var AmExCard = new CardType("AmEx", "34,37", "15");
\*************************************************************************/
function CardType() {
var n;
var argv = CardType.arguments;
var argc = CardType.arguments.length;

this.objname = "object CardType";

var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

this.setCardNumber = setCardNumber;  // set CardNumber method.
this.setCardType = setCardType;  // setCardType method.
this.setLen = setLen;  // setLen method.
this.setRules = setRules;  // setRules method.
this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

this.setCardType(tmpcardtype);
this.setLen(tmplen);
this.setRules(tmprules);
if (argc > 4)
this.setExpiryDate(argv[3], argv[4]);

this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
this.getCardType = getCardType;  // getCardType method.
this.isCardNumber = isCardNumber;  // isCardNumber method.
this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
this.luhnCheck = luhnCheck;// luhnCheck method.
return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() {
var argv = checkCardNumber.arguments;
var argc = checkCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
var year = (argc > 1) ? argv[1] : this.year;
var month = (argc > 2) ? argv[2] : this.month;

this.setCardNumber(cardnumber);
this.setExpiryDate(year, month);

if (!this.isCardNumber())
return false;
if (!this.isExpiryDate())
return false;

return true;
}
/*************************************************************************\
String getCardType()
return the cardtype.
\*************************************************************************/
function getCardType() {
return this.cardtype;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() {
return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() {
var argv = isCardNumber.arguments;
var argc = isCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
if (!this.luhnCheck())
return false;

for (var n = 0; n < this.len.size; n++)
if (cardnumber.toString().length == this.len[n]) {
for (var m = 0; m < this.rules.size; m++) {
var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
if (headdigit == this.rules[m])
return true;
}
return false;
}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate() {
var argv = isExpiryDate.arguments;
var argc = isExpiryDate.arguments.length;

year = argc > 0 ? argv[0] : this.year;
month = argc > 1 ? argv[1] : this.month;

if (!isNum(year+""))
return false;
if (!isNum(month+""))
return false;
today = new Date();
expiry = new Date(year, month);
if (today.getTime() > expiry.getTime())
return false;
else
return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) {
argvalue = argvalue.toString();

if (argvalue.length == 0)
return false;

for (var n = 0; n < argvalue.length; n++)
if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
return false;

return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() {
var argv = luhnCheck.arguments;
var argc = luhnCheck.arguments.length;

var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

if (! isNum(CardNumber)) {
return false;
  }

var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;

for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0)
return true;
else
return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
this.size = size;
return this;
}

/*************************************************************************\
CardType setCardNumber(cardnumber)
return the CardType object.
\*************************************************************************/
function setCardNumber(cardnumber) {
this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
CardType setCardType(cardtype)
return the CardType object.
\*************************************************************************/
function setCardType(cardtype) {
this.cardtype = cardtype;
return this;
}

/*************************************************************************\
CardType setExpiryDate(year, month)
return the CardType object.
\*************************************************************************/
function setExpiryDate(year, month) {
this.year = year;
this.month = month;
return this;
}

/*************************************************************************\
CardType setLen(len)
return the CardType object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
CardType setRules()
return the CardType object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}


strPathSliderImage = "../de_img/produktinfo/slider.gif";
strPathTrImage = "../de_img/tr.gif";

function ChangeSlider (nID, strFarbe) {
	strElementName = "SL" + nID;
	strAlt = strTitle = strFarbe + " - Klicken für Großansicht";
	
	for (i=1; i < 15; i++) {
		strTempName = "SL";
		if (i < 10) strI = "0" + i; else strI = i;
		strElementName = strTempName + strI;
		
		xElement = document.getElementById(strElementName);
		if (strI == nID) {
			// Transparente Grafik des aktuellen Divs wird durch Slider-Grafik ersetzt
			xElement.src = strPathSliderImage;
			
			// Lümmelbild wird durch die aktuelle Farbe ersetzt
			strImageName = "10004-" + strI;
			xElementMain = document.getElementById("MainImage");
			xElementMain.src = "../de_img/produktinfo/" + strImageName + "-info.jpg";
			xElementMain.alt = strAlt;
			xElementMain.title = strTitle;
			xElementMain.onclick = function () { OpenDetail(10004, nID); };
			nAktivID = nID;
			
			xElementAktFarbe = document.getElementById("ProdInfoTextAktFarbe");
			xElementAktFarbe.innerHTML = strFarbe;
		} else {
			// Eventuelle Slider-Grafik wird durch die transparente Grafik ersetzt
			xElement.src = strPathTrImage;
		}
	}
}

//-->
