linkBase = "/";
linkBaseInfo = "/infosystem/";

function showIndexPopup(){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	window.open(linkBase +"popup/reifenindex","indexpopup","dependent=yes,height=800, width=1000,left=100,top=100,location=no,menubar=no,toolbar=no,scrollbars=yes");
}
function showSavedCarts(page){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var requestUrl = linkBase+'index/showSavedCart';
	try{
		var request = new Ajax.Request(
			requestUrl,
			{
				method:'get',
				parameters: 'page='+encodeURIComponent(page),
				onComplete: handleShowSavedCarts
			}
		);
	} catch (e){
		alert('Error: ' +e.toString());
	}
}
function showImage(pictureShow, pictureLinkto, labelLink, newLabel){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var html = "<table cellpadding='0' cellspacing='0' border='0'>"
			   +"<tr><td><img src='"+linkBase+"images/produkt/"+pictureShow+"'></td>";
		html += "<tr><td align='right'><a href='javascript:showImage(\""+pictureLinkto+"\", \""+pictureShow+"\",\""+newLabel+"\",\""+labelLink+"\");'>-&gt; "+labelLink+" &lt;-</a></td></tr>";
		html += "</table>";
	document.getElementById("imageDiv").innerHTML = html;
}

function showImageNew(pictureShow, pictureLinkto, btOff, btOn, alt, btNewoff, btNewon, altNew){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var html = "<table cellpadding='0' cellspacing='0' border='0'>"
		+"<tr><td><img src='"+linkBase+"images/produkt/"+pictureShow+"'></td>";
	html += "<tr><td align='right'><div style='height:3px'></div><a href='javascript:showImageNew(\""+pictureLinkto+"\", \""+pictureShow+"\",\""+btNewoff+"\",\""+btNewon+"\",\""+altNew+"\",\""+btOff+"\",\""+btOn+"\",\""+alt+"\");'><img src='"+btOff+"' alt='' title='' border='0' onmouseover=\"this.src='"+btOn+"'\" onmouseout=\"this.src='"+btOff+"'\"></a></td></tr>";
	html += "</table>";
	html += "</table>";
	document.getElementById("imageDiv").innerHTML = html;
}
function showVariants(artnr, vehicleId){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var params = "?artnr="+encodeURIComponent(artnr)+"&vehicleId="+encodeURIComponent(vehicleId);
	window.open(linkBase +"artikeldetails/endrohre"+params,"erpopup","dependent=yes,height=700, width=700,left=100,top=100,location=no,menubar=no,toolbar=no,scrollbars=yes");
}
function checkFields(lang){
	if(document.getElementById('vorname').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Vorname muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field forename!");
		}
		document.getElementById('vorname').focus();
		return false;
	}
	if(document.getElementById('nachname').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Nachname muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field surname!");
		}
		document.getElementById('nachname').focus();
		return false;
	}
	if(document.getElementById('strasse').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Stra%DFe muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field street!");
		}
		document.getElementById('strasse').focus();
		return false;
	}
	if(document.getElementById('plz').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Plz muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field zip!");
		}
		document.getElementById('plz').focus();
		return false;
	}
	if(document.getElementById('ort').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Stadt muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field city!");
		}
		document.getElementById('ort').focus();
		return false;
	}
	if(document.getElementById('telefon').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld Telefon muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field phone!");
		}
		document.getElementById('telefon').focus();
		return false;
	}
	if(document.getElementById('email').value == ""){
		if(lang == "de"){
			alert(unescape("Das Feld E-Mail muss ausgef%FCllt werden!"));
		}
		else{
			alert("You have to fill out the field e-mail!");
		}
		document.getElementById('email').focus();
		return false;
	}
	if(! checkEmail(document.getElementById('email').value, true)){
		if(lang == "de"){
			alert(unescape("Ihre E-Mail-Adresse ist syntaktisch falsch!"));
		}
		else{
			alert("Your e-mail is invalid!");
		}
		document.getElementById('email').focus();
		return false;
	}
	return true;
}
function changeWheelFilters(index,status){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var requestUrl = linkBase+'warengruppe/changewheelfilters';
	var width = document.DetailsFelgen.breite.value;
	var size = document.DetailsFelgen.groesse.value;
	var design1 = document.DetailsFelgen.design1.value;
	var design2 = document.DetailsFelgen.design2.value;
	var color1 = document.DetailsFelgen.farbe1.value;
	var color2 = document.DetailsFelgen.farbe2.value;
	
	params = 'width='+encodeURIComponent(width)+'&size='+encodeURIComponent(size)+'&design1='+encodeURIComponent(design1)+'&design2='+encodeURIComponent(design2)+'&color1='+encodeURIComponent(color1)+'&color2='+encodeURIComponent(color2)+'&index='+encodeURIComponent(index)+'&status='+encodeURIComponent(status)
	
	if(document.DetailsFelgen.lochkreis){
		var loch = document.DetailsFelgen.lochkreis.value;
		params +='&lochkreis='+encodeURIComponent(loch);
	}
	if(document.DetailsFelgen.withCertificate && document.DetailsFelgen.withCertificate.checked){
		var cert = document.DetailsFelgen.withCertificate.value;
		params +='&withCertificate='+encodeURIComponent(cert);
	}
	try{
		var request = new Ajax.Request(
			requestUrl,
			{
				method:'post',
				parameters: params,
				onComplete: handleChangeWheelFilters
			}
		);
	} catch (e){
		alert('Error: ' +e.toString());
	}
}
function changeWheelFiltersRight(){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var requestUrl = linkBase+'artikelanzeige/changewheelfiltersright';
	var width = document.DetailsFelgen.breite.value;
	var size = document.DetailsFelgen.groesse.value;
	var design1 = document.DetailsFelgen.design1.value;
	var design2 = document.DetailsFelgen.design2.value;
	var color1 = document.DetailsFelgen.farbe1.value;
	var color2 = document.DetailsFelgen.farbe2.value;
	
	params = 'width='+encodeURIComponent(width)+'&size='+encodeURIComponent(size)+'&design1='+encodeURIComponent(design1)+'&design2='+encodeURIComponent(design2)+'&color1='+encodeURIComponent(color1)+'&color2='+encodeURIComponent(color2);
	
	if(document.DetailsFelgen.lochkreis){
		var loch = document.DetailsFelgen.lochkreis.value;
		params +='&lochkreis='+encodeURIComponent(loch);
	}
	if(document.DetailsFelgen.withCertificate.checked){
		var cert = document.DetailsFelgen.withCertificate.value;
		params +='&withCertificate='+encodeURIComponent(cert);
	}
	try{
		var request = new Ajax.Request(
			requestUrl,
			{
				method:'post',
				parameters: params,
				onComplete: handleChangeWheelFiltersRight
			}
		);
	} catch (e){
		alert('Error: ' +e.toString());
	}
}
function handleChangeWheelFiltersRight(reply){
	var x = "nix";
	/*try{
		$('WheelFilterDivRight').innerHTML = reply.responseText;
	}catch (e){
		alert('Error: ' +e.toString());
	}*/
}
function handleChangeWheelFilters(reply){
	try{
		$('WheelFilterDiv').innerHTML = reply.responseText;
	}catch (e){
		alert('Error: ' +e.toString());
	}
}
function handleShowSavedCarts(reply){
	try{
		$('savedcarts').innerHTML = reply.responseText;
	}catch (e){
		alert('Error: ' +e.toString());
	}
}
function loadSavedCart(cartId, lang, positions, loadMessageId){
	var loadIt = true;
	var askKeepMerchant = false;

	/*
	$loadMessageId = 1; //Basic load Question
	$loadMessageId = 2; //laod questions + assortment change hint
	$loadMessageId = 3; //load question + keep merchant question
	$loadMessageId = 4; //laod questions + assortment change hint +keep merchant question
	*/
	if(loadMessageId == 1 || loadMessageId == 3){
		if(positions > 0){
			if(lang == "de") loadIt = confirm("Beim laden des gespeicherten Warenkorbs geht Ihr bisheriger Warenkorb verloren! Vorgang fortsetzen?");
			else if(lang == "en") loadIt = confirm("If you load this cart your current cart gets discarded. Continue loading?");
			else loadIt = confirm("If you load this cart your current cart gets discarded. Continue loading?");
		}
		
		if(loadMessageId == 3) askKeepMerchant = true;
	}
	if(loadMessageId == 2){
		if(lang == "de") loadIt = confirm("Beim laden des gespeicherten Warenkorbs geht Ihr bisheriger Warenkorb verloren und das Sortiment wird gewechselt!\nVorgang fortsetzen?");
		else if($lang == "en") loadIt = confirm("If you load this cart your current cart gets discarded and the assortment of goods gets changed.\nContiune loading?") 
		else loadIt = confirm("If you load this cart your current cart gets discarded and the assortment of goods gets changed.\nContiune loading?")
	}
	if(loadIt){
		if(askKeepMerchant){
			if(lang == "de") askKeepMerchant = confirm(unescape("Der Warenkorb wurde ohne H%E4ndler gespeichert. Klicken sie auf OK um Ihren H%E4ndler beizubehalten oder auf Abbrechen um ihn abzuw%E4hlen%3F"));
			else if($lang == "en") askKeepMerchant = confirm("The cart was saved without merchant selected. Press OK to keep your selected merchant or Cancel to deselect him.");
			if(!askKeepMerchant) document.getElementById("doMerchant"+cartId).value = "deselect";
		}
		document.forms['wl'+cartId].submit();
	}
}
function askEraseCart(lang){
	var eraseCart = false;
	if(lang == "de"){
		eraseCart = confirm("Warenkorb leeren?");
	}
	else if(lang == "en"){
		eraseCart = confirm("Clear shopping cart?");
	}
	
	if(eraseCart){
		if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
		var requestUrl = linkBase + 'warenkorb/clearcartrequest';
		try{
			var request = new Ajax.Request(
				requestUrl,
				{
					method:'post',
					parameters: '',
					onComplete: dummyCallback
				}
			);
		} catch (e){
			alert('Error: ' +e.toString());
		}
	}
	return true;
}
function dummyCallback(reply){
	var x = 'nix';
}
function checkOneSelected(lang){
	//one dealer selected?
	elements = document.getElementsByTagName("input");
 	count = elements.length;
 	var oneSelected = false;   // if at least one checkbox a vehicle table is in the view
  	for(var i = 0; i < count; i++){
 		if(elements[i].type == 'radio'){
 			if(elements[i].checked == true){
 				oneSelected = true;
 			}
 		}
 	}
 	if(oneSelected){
 		return true;
 	}
 	else{
 		if(lang == "de"){
 			alert(unescape("W%E4hlen Sie zuerst einen H%E4ndler aus der Liste!"));
 		}
 		else{
 			alert("Select a dealer from the list first!");
 		}
 		return false;
 	}
}
function deleteSavedCart(cartId, lang){
	deleteIt = false;
	if(lang == "de"){
		deleteIt = confirm("Warenkorb wird entfernt! Vorgang fortsetzen?");
	}
	else if(lang == "en"){
		deleteIt = confirm("Cart gets deleted! Continue?");
	}
	else{
		deleteIt = confirm("Cart gets deleted! Continue?");
	}
	if(deleteIt){
		if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
		var requestUrl = linkBase + 'warenkorb/deletesavedcart';
		try{
			var request = new Ajax.Request(
				requestUrl,
				{
					method:'post',
					parameters: 'cartId='+encodeURIComponent(cartId),
					onComplete: handleShowSavedCarts
				}
			);
		} catch (e){
			alert('Error: ' +e.toString());
		}
	}
}
function askEraseOrder(lang){
	deleteId = false;
	if(lang == "de"){
		deleteIt = confirm("Bestellung wird entfernt! Vorgang fortsetzen?");
	}
	else{
		deleteIt = confirm("Order gets deleted! Continue?");
	}
	return deleteIt;
}
function captureKeyEventAndSubmit(event, formname){
	if(navigator.appName == "Microsoft Internet Explorer"){
		if(event.keyCode == 13){
			document.forms[formname].submit();
		}
	}else{
		if(event.which == 13){
			document.forms[formname].submit();
		}
	}
}
function checkWheelSpacer(){
    if(document.Spacersel.Spacer.value == ''){
    	alert(unescape("Sie m%FCssen zuerst eine Distanzscheibe ausw%E4hlen um fortzufahren."));
    	return false;
    }
	return true;
}
function checkCountValid(){
	var value = document.Felge.count.value;
	var valid = true;
	if(!isFinite(value)){
	 	valid = false;
	}
	else{
		if(value < 1){
			valid = false;
		}
	}
	if(valid){
		return true;
	}
	else {
		alert(unescape("Ung%FCltige Anzahl"));
		return false;
	} 
}
function checkReifenEingabe(lang){
	if(document.Reifen.breite.value == "" || document.Reifen.hoehe.value == "" || document.Reifen.durchmesser.value == ""){
		if(lang == "de"){
			alert(unescape("Bitte f%FCllen Sie die Felder mit Ihrer originalen Reifendimension%21"));
		}
		else{
			alert("Fill your original tire dimension in the fields please!");
		}
		return false;
	}
	return true;
}

function refreshTireFilter(paramName, paramValue){
	if(location.pathname.indexOf(linkBaseInfo) > -1) linkBase = linkBaseInfo;
	var requestUrl = linkBase + 'artikelanzeige/refreshtirefilter';
	try{
		var request = new Ajax.Request(
			requestUrl,
			{
				method:'post',
				parameters: 'name='+encodeURIComponent(paramName)+"&val="+encodeURIComponent(paramValue),
				onComplete: writeReplyInTireDiv
			}
		);
	} catch (e){
		alert('Error: ' +e.toString());
	}
}

function writeReplyInTireDiv(reply){
	try{
		$('tireFilterAllSizes').innerHTML = reply.responseText;
	}catch (e){
		alert('Error: ' +e.toString());
	}
}

function wheelSubmitWithUndercutTrim(lang, artnr, prefix){
	var noTrimChecked = false;
	
	//check if general without option is checked
	if(document.getElementById("WoOpt"+artnr)){
		if(document.getElementById("WoOpt"+artnr).checked){
			return true;
		}
		else if(document.getElementById("links"+artnr).style.display == 'block'){
			//show hint for option selection and show input fields
			if(lang == 'de') alert(unescape('W%E4hlen%20Sie%20bitte%20aus%20den%20verf%FCgbaren%20Optionen%20aus.'));
			else alert("Please choose from the available options.");
			
			document.getElementById("links"+artnr).style.display = 'none';
			document.getElementById("linkh"+artnr).style.display = 'block';
			document.getElementById("options"+artnr).style.display = 'block';
			return false;
		}
	}
	
	if(document.getElementById("OhneRim"+artnr).checked == true) noTrimChecked = true;
	else{
		var ral = document.getElementById("URim"+artnr).value;
		if(!isFinite(ral)){
			//invalid color
			if(lang == "de"){
				alert(unescape("Ung%FCltiger RAL Farbcode. Nur Ziffern sind erlaubt%21"));
				return false;
			}
			else{
				alert("Invalid RAL colour code. Only numbers are allowed!");
				return false;
			}
		}
		else if(ral == ""){
			if(lang == "de"){
				alert(unescape("Sie m%FCssen den gew%FCnschten Farbcode eingeben oder aus den Standardfarben Rot und Gelb w%E4hlen. Oder sie markieren ohne Undercut Colour Trim."));
				return false;
			}
			else{
				alert("You have to provide your wanted coulor code or choose among the basic coulors red and yellow. Or you can check the without Undercout Colour Trim option.");
				return false;
			}
		}
		document.forms[prefix+artnr].utrim.value = ral;
	}
	return true;
}

function wheelSubmitWithTrim(lang, artnr, prefix, withSwarovski){
	var noTrimChecked = false;
	
	var globalNoOptionChecked = false;
	//check if general without option is checked
	if(document.getElementById("WoOpt"+artnr)){
		if(document.getElementById("WoOpt"+artnr).checked){
			globalNoOptionChecked = true;
			noTrimChecked = true;
		}
		else if(document.getElementById("links"+artnr).style.display == 'block'){
			//show hint for option selection and show input fields
			if(lang == 'de') alert(unescape('W%E4hlen%20Sie%20bitte%20aus%20den%20verf%FCgbaren%20Optionen%20aus.'));
			else alert("Please choose from the available options.");
			
			document.getElementById("links"+artnr).style.display = 'none';
			document.getElementById("linkh"+artnr).style.display = 'block';
			document.getElementById("options"+artnr).style.display = 'block';
			return false;
		}
	}
	
	
	if(!globalNoOptionChecked && document.getElementById("OhneRim"+artnr).checked == true){
		noTrimChecked = true; 
	}
	else if(!globalNoOptionChecked){
		//check if ral or swarovski is selected
		
		var id = "ralchecked"+artnr+"1";
		if(document.getElementById(id).checked){
			//basic ral color
			var ral = document.getElementById("Rim"+artnr).value;
			if(!isFinite(ral)){
				//invalid color
				if(lang == "de"){
					alert(unescape("Ung%FCltiger RAL Farbcode. Nur Ziffern sind erlaubt%21"));
					return false;
				}
				else{
					alert("Invalid RAL colour code. Only numbers are allowed!");
					return false;
				}
			}
			document.forms[prefix+artnr].trim.value = ral;
		}
		else if(document.getElementById("ralchecked"+artnr+"2")){
			var tmp = 2;
			var oneChecked = false;
			while(document.getElementById("ralchecked"+artnr+tmp)){
				if(document.getElementById("ralchecked"+artnr+tmp).checked){
					document.forms[prefix+artnr].trim.value = document.getElementById("ralchecked"+artnr+tmp).value;
					oneChecked = true;
					break;
				}
				tmp++;
			}
			if(!oneChecked){
				if(lang == "de"){
					alert(unescape('Sie%20m%FCssen%20entweder%20den%20gew%FCnschten%20Farbcode%20eingeben%20oder%20aus%20den%20Standardfarben%20w%E4hlen.%20Oder%20Sie%20w%E4hlen%20Swarovski%20Kristalle%20oder%20ohne%20Option.'))
					return false;
				}
				else{
					alert("You have to provide your wanted coulor code or choose among the basic coulors red and yellow. Or you select a Swarovski crystal or the without option.");
					return false;
				}
			}
		}
		else{
			//no ral or selected, show alert (sw option not present)
			if(lang == "de"){
				alert(unescape("Sie m%FCssen den gew%FCnschten Farbcode eingeben oder aus den Standardfarben Rot und Gelb w%E4hlen. Oder sie markieren ohne colour trim."));
				return false;
			}
			else{
				alert("You have to provide your wanted coulor code or choose among the basic coulors red and yellow. Or you can check the without colour trim option.");
				return false;
			}
		}
	}
	
	if(document.getElementById("Schraube"+artnr+"1")){
		//screw options are present checke for selected
		var cnt = 1;
		while(document.getElementById("Schraube"+artnr+cnt)){
			if(document.getElementById("Schraube"+artnr+cnt).checked){
				document.forms[prefix+artnr].aussenringschrauben.value = document.getElementById("Schraube"+artnr+cnt).value;
			}
			cnt++;
		}
	}

	if(document.getElementById("Sw_rimbolt"+artnr+"1")){
		cnt = 1;
		var id = "Sw_rimbolt"+artnr+cnt;
		while(document.getElementById(id)){
			id = "Sw_rimbolt"+artnr+cnt;
			if(document.getElementById(id).checked){
				document.forms[prefix+artnr].sw_aussenringschrauben.value = document.getElementById(id).value;
				break;
			}
			cnt++;
		}
	}
	if(document.getElementById("Emblem"+artnr)){
		document.forms[prefix+artnr].speichenemblem.value = document.getElementById("Emblem"+artnr).value;
	}
	if(document.getElementById("Wheelzart"+artnr)){
		document.forms[prefix+artnr].wheelzart.value = document.getElementById("Wheelzart"+artnr).value;
		//check if wheelzart with ral is selected, if so ral color has to be filled
		if(document.getElementById("Wheelzart"+artnr).value == "RM-WHEELZ-ART-RAL"){
			var wa_ral = document.getElementById("Wa_ral"+artnr).value;
			if(wa_ral == ""){
				if(lang == "de") alert(unescape('Sie%20m%FCssen%20den%20gew%FCnschten%20Farbcode%20f%FCr%20Ihr%20Wheelz%20Art%20eingeben%2C%20oder%20aus%20den%20Standardfarben%20Rot%20und%20Gelb%20w%E4hlen.'));
				else alert(unescape('You%20have%20to%20provide%20your%20wanted%20coulor%20code%20for%20the%20Wheel%20Art%20or%20choose%20among%20the%20basic%20coulors%20red%20and%20yellow.'));
				return false;
			}
			else if(!isFinite(wa_ral)){
				if(lang == "de") alert(unescape("Ung%FCltiger RAL Farbcode. Nur Ziffern sind erlaubt%21"));
				else alert("Invalid RAL colour code. Only numbers are allowed!");
				return false;					
			}
		}
	}
	if(document.getElementById("Wa_ral"+artnr)){
		document.forms[prefix+artnr].wheelzart_ral.value = document.getElementById("Wa_ral"+artnr).value;
	}
	return true;
}
function wheelSubmit(lang, artnr, prefix){
	if(document.getElementById("Schraube"+artnr+"1")){
		//screw options are present checke for selected
		var cnt = 1;
		var id = "Schraube"+artnr+cnt;
		while(document.getElementById(id)){
			id = "Schraube"+artnr+cnt;
			if(document.getElementById(id).checked){
				document.forms[prefix+artnr].aussenringschrauben.value = document.getElementById(id).value;
				break;
			}
			cnt++;
		}
	}
	if(document.getElementById("Emblem"+artnr)){
		document.forms[prefix+artnr].speichenemblem.value = document.getElementById("Emblem"+artnr).value;
	}
	if(document.getElementById("Wheelzart"+artnr)){
		document.forms[prefix+artnr].wheelzart.value = document.getElementById("Wheelzart"+artnr).value;
		//check if wheelzart with ral is selected, if so ral color has to be filled
		if(document.getElementById("Wheelzart"+artnr).value == "RM-WHEELZ-ART-RAL"){
			var wa_ral = document.getElementById("Wa_ral"+artnr).value;
			if(wa_ral == ""){
				if(lang == "de") alert(unescape('Sie%20m%FCssen%20den%20gew%FCnschten%20Farbcode%20f%FCr%20Ihr%20Wheelz%20Art%20eingeben%2C%20oder%20aus%20den%20Standardfarben%20Rot%20und%20Gelb%20w%E4hlen.'));
				else alert(unescape('You%20have%20to%20provide%20your%20wanted%20coulor%20code%20for%20the%20Wheel%20Art%20or%20choose%20among%20the%20basic%20coulors%20red%20and%20yellow.'));
				return false;
			}
			else if(!isFinite(wa_ral)){
				if(lang == "de") alert(unescape("Ung%FCltiger RAL Farbcode. Nur Ziffern sind erlaubt%21"));
				else alert("Invalid RAL colour code. Only numbers are allowed!");
				return false;					
			}
		}
	}
	if(document.getElementById("Wa_ral"+artnr)){
		document.forms[prefix+artnr].wheelzart_ral.value = document.getElementById("Wa_ral"+artnr).value;
	}
	if(document.getElementById("Sw_rimbolt"+artnr+"1")){
		//screw options are present checke for selected
		var cnt = 1;
		var id = "Sw_rimbolt"+artnr+cnt;
		while(document.getElementById(id)){
			id = "Sw_rimbolt"+artnr+cnt;
			if(document.getElementById(id).checked){
				document.forms[prefix+artnr].sw_aussenringschrauben.value = document.getElementById(id).value;
				break;
			}
			cnt++;
		}
	}
	return true;
}
function checkVariants(lang, select, fname){
	var value = document.getElementById(select).value;
	var valid = true;
	if(value == -1){
		if(lang == "de"){
			alert(unescape("Bitte w%E4hlen Sie zuerst ein Endrohr."));
		}
		else{
			alert("Please choose a exhaust-pipe end first.");
		}
		valid = false;
	}
	if(value == "ohne"){
		if(lang == "de"){
			var confirmed = confirm(unescape("Ohne Endrohr ist die Montage nicht m%F6glich. Artikel in den Warenkorb legen%3F"));
		}
		else{
			var confirmed = confirm("Without a exhaust-pipe end assembling isn't possible. Add article to cart?");
		}
		if(confirmed == false){
		  valid = false;
		}
	}
	//check valid quantity
	var count = document.forms[fname].count.value;
	var countValid = true;
	if(! isFinite(count) ){
		countValid = false;
	}
	else{
		if(count < 1){
			countValid = false;
		}
	}
	if(!countValid){
		if(lang == "de"){
			alert(unescape("Ung%FCltige Anzahl"));
		}
		else{
			alert("Invalid quantity");
		}
		return false;
	}
	
	if(valid == true){
		document.forms[fname].Endrohrartnr.value = value;
		return true;
	}
	else return false;
}
function checkZusatzleistungen(formname, count){
	formname = "wf"+formname;
	var zl = "";
	for(i = 0; i < count; i++){
		var id = "zl" + (i+1);
		if($(id).checked == true){
		 	zl = zl + $(id).value + ";;;";
		}
	}
	document.forms[formname].zusatzleistungen.value = zl;
}
function confirmOriginChange(lang, positions){
 	if(positions == 0){
 		return true;
 	}else{
	 	if(lang == "de"){
	 		return confirm(unescape("Beim wechsel der Zugeh%F6rigkeit wird Ihr bisheriger Warenkorb gel%F6scht%2C da sich unser Sortiment f%FCr die Schweiz und die EU unterscheiden. M%F6chten sie fortfahren%3F"));
	 	}
	 	else{
	 		return confirm("If you change your affiliation your current cart will be deleted because our assortment of goods differs for Switzerland and the EU. Change affiliation?");
	 	}
	}
}
function checkEmail( email, allowFullname )
{
  var existFullname = false;
  var status = true;
  var fullname = "";
  var adress = "";
  if ( email.length < 8 )
    return false;
  var emailBegin = email.indexOf("<");
  var emailEnd = email.lastIndexOf(">");

  if ( (emailBegin == -1) && (emailEnd == -1) )
    return checkEmailAdr( email );

  if ( ( (emailBegin == -1) && (emailEnd != -1) )
      || ( (emailBegin != -1) && (emailEnd == -1) ) )
    return false;

  adress = email.substring( emailBegin+1, emailEnd );

  if ( ! checkEmailAdr( adress ) )
    return false;

  if ( email.length == adress.length + 2 )
    return true;
  else
    if ( ! allowFullname )
      return false;

  if ( emailEnd == email.length - 1 )
  {
    if ( emailBegin == 0 )
      return true;
    if ( email.charAt( emailBegin -1 ) != ' ' )
      return false;
    fullname = email.substring( 0, emailBegin-1 );
    return checkUsername ( fullname, "<>()[],;:@\"" );
  }

  return false ;
}

function checkEmailAdr( address )
{
  var status = true;
  var username = "";
  var hostname = "";

  if ( address.length < 8 )
    return false;

  var seperate = address.lastIndexOf("@");
  if ( seperate == -1 )
    return false;

  username = address.substring(0, seperate );
  if ( ! checkUsername( username, "<>()[],;:@\" " ) )
    return false;

  hostname = address.substring(seperate+1, address.length );
  if ( ! checkHostname( hostname ) )
    return false;

  return true;
}
function isDigit( ch )
{
  if ( (ch >= '0') && (ch <= '9') )
    return true;
  else
    return false;
}


function isAlpha( ch )
{
  if ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) )
    return true;
  else
    return false;
}


function isAlnum( ch )
{
  if ( isAlpha( ch ) || isDigit( ch ) )
    return true;
  else
    return false;
}


function notIn( str1, str2 )
{
  var i = 0;
  var j = str2.length;
  for( ; i<j; i++ )
  {
    var str3 =  str2.charAt(i);
    if( str1.indexOf( str3 ) != -1 )
      return false;
  }
  return true;
}


function checkUsername( username, mustBeQuoted )
{
  var i = 0;
  var j = username.length;
  if ( username.charAt(0) != '"' )
  {
    if ( (username.charAt(0) <  ' ') || (username.charAt(0) >  '~')
          || !notIn( mustBeQuoted, username.charAt(0) ) )
      return false;
    for( i=1; i<j; i++ )
    {
      if ( ( (username.charAt(i) < ' ') || (username.charAt(i) >  '~')
            || !notIn ( mustBeQuoted, username.charAt(i) ) )
           && ( username.charAt(i-1) != '\\' ) )
        return false;
    }
  }
  else
  {
    if ( username.charAt( j-1 ) != '"' )
      return false;
    for( i=1; i<j-1; i++ )
    {
      if ( ( (username.charAt(i) == '\n') || (username.charAt(i) == '\r')
            || (username.charAt(i) == '\"') )
          && (username.charAt(i-1) != '\\') )
        return false;
    }

  }
  return true;
}


function checkNr ( nr )
{
  var i=0;
  var j=nr.length;

  if( j < 1 )
    return false;

  for( ; i<j; i++ )
    if( ( nr.charAt(i) < '0' ) || ( nr.charAt(i) > '9' ) )
      return false;

  return true;
}


function checkIpnr( ipnr )
{
  var iL=0;
  var iC=0;
  var i=0;
  var sNr = "";

  for( ; i< ipnr.length; i++ )
  {
    if ( ipnr.charAt(i) == '.' )
    {
      if ( !iL || (iL> 3) || parseInt( sNr,10 ) > 255 )
        return false;
      iC++;
      iL = 0;
      sNr = "";
      continue;
    }
    if ( isDigit ( ipnr.charAt(i) ) )
    {
      iL++;
      sNr = sNr + ipnr.charAt(i);
      continue;
    }
    return false;
  }

  if ( parseInt( sNr,10 ) > 255 )
    return false;
  if ( ( (iC==3) && (iL>=1) && (iL<=3) ) || ( (iC==4) && (!iL) )  )
    return true;
  else
    return false;
}


function checkFqdn( fqdn )
{
  var iL=0;
  var iC=0;
  var i=fqdn.length-1;

  if ( (fqdn.charAt(0) == '.') || (fqdn.charAt(0) == '-') )
    return false;
  if ( fqdn.charAt(i) == '.' )
    i=i-1;

  for( ; i>=0; i-- )
  {
    if ( fqdn.charAt(i) == '.' )
    {
      if ( iL < 2 && iC < 2 )
        return false;
      if ( fqdn.charAt(i-1) == '-' )
        return false;
      iC++;
      iL = 0;
      continue;
    }
    if ( isAlnum ( fqdn.charAt(i) ) )
    {
      iL++;
      continue;
    }
    if ( fqdn.charAt(i) == '-' )
    {
      if ( !iL )
        return false;
      iL++;
      continue;
    }
    return false;
  }

  if ( !iC || ( iL == 1 && iC < 2 ) || ( !iL && iC==1 ) ) {
    return false;
  }

  return true;

}


function checkHostname( hostname )
{
  if ( hostname.charAt(0) == '[' )
  {
    if ( hostname.charAt(hostname.length-1) != ']' )
      return false;
    var ipnr = hostname.substring( 1, hostname.length -1 );
      return checkIpnr( ipnr );
  }

  if ( hostname.charAt(0) == '#' )
  {
    var nr = hostname.substring( 1, hostname.length );
      return checkNr( nr );
  }

  return checkFqdn( hostname );
}
