	
	// Orderform JavaScript

	var orderBeeingSent = 0;

	//Display order Result:
	function setOrderResult(success, msg, language)
	{
		hideLoading();
		orderBeeingSent = 0;
		
		if(success)
		{
			//OK:
			document.getElementById('divShopCartContent').style.display = "none";
			document.getElementById('divShopCartContentCheckout').style.display = "none";
			document.getElementById('divShopCartContentOrderResult').style.display = "block";
			document.getElementById('divOrderSuccess').style.display = "block";
			document.getElementById('divOrderError').style.display = "none";
			
			document.getElementById('divOrderTabLink').innerHTML = "&nbsp;";
			
			document.getElementById('divOrderBuResult').innerHTML = lang_closeCart;
			
			//Update User Rights:
			document.getElementById('myiFrameUser').src = '../shopShared/includes/remote_processUserRights.php?updateOnly=true';
		}
		else
		{
			//NOT OK:
			document.getElementById('divOrderErrorMsg').innerHTML = msg;

			document.getElementById('divOrderBuResult').innerHTML = lang_backToForm;

			document.getElementById('divShopCartContent').style.display = "none";
			document.getElementById('divShopCartContentCheckout').style.display = "none";
			document.getElementById('divShopCartContentOrderResult').style.display = "block";
			document.getElementById('divOrderError').style.display = "block";
			document.getElementById('divOrderSuccess').style.display = "none";
		}	
	}


	
	
	//Order result: Show checkout-form or close checkout:
	function toggleOrderResult()
	{
		
		var objError= document.getElementById('divOrderError');
		
		//Success oder Error sichtbar:
		if(objError.style.display=="block")
		{
			//Error, show checkout-form again:
			document.getElementById('divShopCartContentOrderResult').style.display = "none";
			document.getElementById('divShopCartContentCheckout').style.display = "block";
		}
		else
		{
			//Success, close cart/checkout:
			closeDetails('divShopCart',0);
		}
	}
	
	//display message that art item no longer availalbe:
	function displayArtItemUnavailable(bDo){
		if(bDo) alert(lang_orderArtItemUnavailable);
	}
	
	//after order check, show login or send order (with check via script):
	function doAfterOrderCheck(success, summe, language)
	{
		if(success)
		{
			//Submit order if summe:;
			if(summe)
			{
				checkAndSendOrder(language);
			}else{
				alert(lang_orderNoSum);
				updateShoppingCart("0,00", 0, 0);
				hideLoading();
			}
		}
		else
		{
			//showLoginForm:
			var objShopCartLogin = top.document.getElementById('divShopCartLogin');
	
			//first time, just show msg, second time alert:
			if(objShopCartLogin.style.display == 'none')
			{
				showLoginMessage('loginFirst',0);
			}else{
				alert(lang_loginMsgLogFirst);
			}
			
			document.getElementById('divShopCartLogin').style.display = 'block';
			hideLoading();
		}
	}
	

	//Show cart content or checkout-form:
	function toggleCartContent()
	{
		var checkOut = document.getElementById('divShopCartContentCheckout');
		
		if(checkOut.style.display=="block")
		{
			
			if(document.getElementById('divShopCartContent').innerHTML != "<!-- -->"){
				//show cart content:
				checkOut.style.display = "none";
				document.getElementById('divShopCartContent').style.display = "block";
				document.getElementById('divShopCartContentCheckout').style.display = "none";
				document.getElementById('divShopCartContentOrderResult').style.display = "none";				
			}else{
				//reload cart content:
				displayShoppingCart();
				
				reloadShoppingCart();
			}

		}
		else
		{
			var orderResult = document.getElementById('divShopCartContentOrderResult');
			
			if(orderResult.style.display=="none"){
				
				myProtocol = window.location.protocol;
				if(myProtocol=="http:")
				{
					//Switch to HTTPS and show checkout
					//on move, change here:
					top.location.href = "https://www.audiostrobe.com/websiteNew/shop"+myShop+"/index.php?language="+myLanguage+"&displayCheckout=1";
				}
				else
				{
					//show checkout:
					checkOut.style.display = "block";
					document.getElementById('divShopCartContent').style.display = "none";
					document.getElementById('divShopCartLogin').style.display = "none";
					processFullCosts(myLanguage);	
				}
			
			}else{
				//show cart content:
				checkOut.style.display = "none";
				document.getElementById('divShopCartContent').style.display = "block";			
			}
			orderResult.style.display = "none";
		}
	}	
	
	
	
	
	function processFullCosts(language)
	{
		var country = document.getElementById('country').value;
		
		document.getElementById('myiFrameCart').src = "../shopShared/includes/remote_processCosts.php?language=" + language + "&country=" + country;
		
		//unhide Lastschfift if DE/hide in not DE:
		if(radioValue(document.forms["order"].cmd) == "DD.RG") showPaymentLayer('layerLastschrift');
	}
	
	
	
	function showPaymentLayer(layer)
	{

		if(layer)
		{
			document.getElementById('layerDebitOnly').style.display = "none";
			document.getElementById('layerLastschrift').style.display = "none";
			document.getElementById('layerKarte').style.display = "none";
			document.getElementById('layerRechnung').style.display = "none";	
			
			if(layer=='layerKarte')
			{
				document.getElementById(layer).style.display = "block";
			}
			
			if(layer=='layerLastschrift')
			{
				var country = document.getElementById('country').value;

				if(country=="DE") {
					document.getElementById(layer).style.display = "block";
				} else {
					document.getElementById('layerDebitOnly').style.display = "block";
				}

			}
			
			if(layer=='layerRechnung')
			{
				document.getElementById(layer).style.display = "block";
			}
		}	
	}
	

	//before submitting: check if logged in/check if email taken:
	function submitThisOrder(language)
	{
		loading(0);
		
		var email = document.getElementById('email').value;
		
		if(email)
		{
			//check logged-in/email is given:
			document.getElementById('myiFrameCart').src = "../shopShared/includes/remote_processOrderCheck.php?submitOrder=1&language=" + language + "&email=" + email;
		}
		else
		{
			//no email: run into check:
			checkAndSendOrder(language);
		}
		
		
	}
	
	//Check Input fields and submit order:
	function checkAndSendOrder(language)
	{
		var checkForm = false;
		
		checkForm = checkAddressData(language);
		
		if(checkForm) checkForm = checkMyForm(language);

		if(checkForm)
		{
			var buSubmitOrder = top.document.getElementById('buSubmitOrder');
			buSubmitOrder.blur();
			buSubmitOrder.innerHTML = lang_submittingOrder;
			
			sendNum = document.getElementById('Account_Number');
			sendHolder = document.getElementById('Account_Holder');
			senPaymentCode = document.getElementById('Payment_Code');
			
			num1 = document.getElementById('Card_Number1').value;
			num2 = document.getElementById('Card_Number2').value;
			num3 = document.getElementById('Card_Number3').value;
			num4 = document.getElementById('Card_Number4').value;	
			
			debitOwner = document.getElementById('Account_Owner').value;
			debitAccount = document.getElementById('Account').value;
			cardOwner = document.getElementById('Card_Owner').value;
			
			document.getElementById('Account_Country').value = document.getElementById('country').value;
			
			street1 = document.getElementById('street').value;
			street2 = document.getElementById('street_n1').value;
			if(street2) street2 = " " + street2;
			document.getElementById('Address_street').value = street1 + street2;
	
			senPaymentCode.value = cmd;
			
			if(cmd == "CC.RG")
			{
				sendNum.value = num1 + num2 + num3 + num4;
				sendHolder.value = cardOwner;
			}
			if(cmd == "DD.RG")
			{
				sendNum.value = debitAccount;
				sendHolder.value = debitOwner;
			}
			
			if(cmd == "VK")
			{
				document.forms["order"].action = "https://www.audiostrobe.com/heidelpay/msg-success.php";
			}
			else
			{
				document.forms["order"].action = "https://ctpe.net/frontend/payment.prc";
			}

			
			if(orderBeeingSent==0)
			{
				document.forms["order"].submit();
				//wait 60s order to be send:
				setTimeout( function () { checkOrderTimeout(); }, 60000);
			}
			orderBeeingSent = 1;
		
		}
		else
		{
			hideLoading();	
		}
		
	}
	
	function checkOrderTimeout()
	{	
	 	if(orderBeeingSent == 1)
		{
			//Fehlerseite anzeigen:
			document.getElementById('myiFrameCart').src = "../shopShared/includes/remote_processOrderResult.php?returnerr=1&prcp=nok";
		}
	}


	function checkAddressData(language)
	{
	
		forename = document.getElementById("forename").value;
		surname = document.getElementById("surname").value;
		street = document.getElementById("street").value;
		postcode = document.getElementById("postcode").value;
		city = document.getElementById("city").value;
		country = document.getElementById("country").value;
		email = document.getElementById("email").value;
		phone = document.getElementById("phone").value;
		
		noError = true;
		
		if(!forename || !surname || !street || !postcode || !city || !country || !email || !phone) noError = false;
		
		if(language == "de") myErrorText = unescape("Bitte f%FCllen Sie alle Eingabefelder bez%FCglich Ihrer Adresse aus.");
		if(language == "en") myErrorText = "Please fill in all adress data input fields.";
		if(language == "pl") myErrorText = "Please fill in all input fields.";
		
		if(!noError) alert(myErrorText);
	
		return noError;
	
	}



	function checkMyForm(language)
	{

		cmd = radioValue(document.forms["order"].cmd);	
		noError = true;
	
		if(language == "de") if(cmd == false) { noError = new Array("cmd", unescape("Bitte w%E4hlen Sie eine Zahlungsmethode aus.") ); }
		if(language == "en") if(cmd == false) { noError = new Array("cmd", "Please choose a method of payment."); }
		if(language == "pl") if(cmd == false) { noError = new Array("cmd", unescape("Prosz%u0119 wybra%u0107 form%u0119 p%u0142atno%u015Bci.") ); }
	
		
		if(cmd == "CC.RG")
		{
			brand1 = document.getElementById('VISA').checked;
			brand2 = document.getElementById('MASTER').checked;
			brand3 = document.getElementById('DINER').checked;
			brand4 = document.getElementById('AMEX').checked;
		
			num1 = document.getElementById('Card_Number1').value;
			num2 = document.getElementById('Card_Number2').value;
			num3 = document.getElementById('Card_Number3').value;
			num4 = document.getElementById('Card_Number4').value;
			
			cardOwner = document.getElementById('Card_Owner').value;
			
			month = document.getElementById('Month').value;
			year = document.getElementById('Year').value;
			
	
			if(language == "en") if( !cardOwner ) { noError = new Array("Card_Owner", "Please enter the card owner of the credit card."); }
			if(language == "de") if( !cardOwner ) { noError = new Array("Card_Owner", "Bitte geben Sie den Inhaber der Kreditkarte an."); }
			
			if(language == "en") if( !month || !year ) { noError = new Array("Month", "Please enter the expiration date of your credit card."); }
			if(language == "de") if( !month || !year ) { noError = new Array("Month", unescape("Bitte geben Sie die G%FCltigkeit Ihrer Kreditkarte an.") ); }
			
			validCard = isValidCreditcard(num1 + num2 + num3 + num4);
			if(language == "en") if( validCard==false ) { noError = new Array("Card_Number1", "Please enter a valid credit card number."); }
			if(language == "de") if( validCard==false ) { noError = new Array("Card_Number1", unescape("Bitte geben Sie eine g%FClige Kreditkartennummer ein.") ); }
	
			if(language == "en") if( !brand1 && !brand2 && !brand3 && !brand4 ) { noError = new Array("cmd", "Please specify the credit card brand."); }
			if(language == "de") if( !brand1 && !brand2 && !brand3 && !brand4 ) { noError = new Array("cmd", "Bitte geben Sie den Typ Ihrer Kreditkarte an."); }
		}
		
		
		if(cmd == "DD.RG")
		{

			debitOwner = document.getElementById('Account_Owner').value;
			debitAccount = document.getElementById('Account').value;
			debitBank = document.getElementById('BLZ').value;
	
			if(language == "en") if( !debitOwner || !debitAccount || !debitBank ) { noError = new Array("Account_Owner", "Please fill in the three input fields: account holder, account number and bank code."); }
			if(language == "de") if( !debitOwner || !debitAccount || !debitBank ) { noError = new Array("Account_Owner", "Bitte geben Sie den Kontoinhaber, die Kontonummer als auch die Bankleitzahl an."); }
		
			if(language == "en") if(document.getElementById('country').value!="DE")  { noError = new Array("cmd", "Currently, direct debit is possible for Germany only."); }
			if(language == "de") if(document.getElementById('country').value!="DE")  { noError = new Array("cmd", unescape("Das Lastschriftverfahren ist momentan nur für Deutschland verf%FCgbar.")); }
		}
		
		if(noError != true)
		{
			alert(noError[1]);
			if(noError[0]!="cmd") document.forms["order"].elements[noError[0]].focus();
			noError = false;
		}
		
		return noError;
	}
	
	
	// Credit Card Validation Javascript
	// copyright 12th May 2003, by Stephen Chapman, Felgall Pty Ltd
	// http://javascript.about.com/library/blccard.htm
	function isValidCreditcard(creditcard)
	{
		// remove non-numerics
		var v = "0123456789";
		var w = "";
		for (i=0; i < creditcard.length; i++) 	{
			x = creditcard.charAt(i);
			if (v.indexOf(x,0) != -1) { w += x; }
		}
		// validate number
		j = w.length / 2;
		if (j < 6.5 || j > 8 || j == 7) { return false; }
		k = Math.floor(j);
		m = Math.ceil(j) - k;
		c = 0;
		
		for (i=0; i<k; i++) 	{
			a = w.charAt(i*2+m) * 2;
			c += a > 9 ? Math.floor(a/10 + a%10) : a;
		}
		for (i=0; i<k+m; i++) 	{
			c += w.charAt(i*2+1-m) * 1;
		}
		return (c%10 == 0);
	}
	
	/*
	function radioValue(rObj)
	{
		for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
		return false;
	}
	*/
	
	function radioValue(radioObj) {
		if(!radioObj)
			return false;
		var radioLength = radioObj.length;
		if(radioLength == undefined)
			if(radioObj.checked)
				return radioObj.value;
			else
				return false;
		for(var i = 0; i < radioLength; i++) {
			if(radioObj[i].checked) {
				return radioObj[i].value;
			}
		}
		return false;
	}
