var xmlHttp
var contentDiv
var actionTaken
var mainAction
var paymentMethod = ""
var languageUsed
var orderId
var skipStep

function stateChanged()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{


		if(xmlHttp.status== 200 || xmlHttp.status== 304){
			updatePage();
		}else{
			//An error occured
			alert(xmlHttp.statusText);
		}
	}
}

function updatePage(){
	
	//alert(xmlHttp.responseText)

	
if(actionTaken == "checkorder"){
		//Does order exist?
		var IsOrder = eval(xmlHttp.responseText);
		
	if(IsOrder){

			mainAction = "checkorder"

			//Show shoppingcart
			//showScButton('ww_knop','visible');
			showHideControl('cartDiv','block');
			viewCart(contentDiv,languageUsed,'viewcart');
		}
		
		//Update cartinfo after update or delete
	}else if(actionTaken=="viewcart" && mainAction=="checkorder"){
		
		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText

		mainAction = ""

		//Get bookmark for pagestate
		var strBookMark = ''
		var strTarget = ''

		strBookMark = getPageBookMark()

		if(strBookMark.length>-1){

			var arrBookMark = strBookMark.split('%')

			//Targetpage
			var arrTarget = arrBookMark[0].split('=')
			strTarget = arrTarget[1]

			switch(strTarget)
			{
				case "sco":
				ShowOrderOverview('cartoverview',languageUsed,'vieworder')
				break
				case "cuf":
				ShowCustomerForm('cartoverview',languageUsed,'showcustomerform')
				break
				case "oov":
				ShowOrderOverview('cartoverview',languageUsed,'showorderoverview');
				break
				case "pop":
				ShowPaymentOptions('cartoverview',languageUsed,'showpaymentoptions');
				break
				case "pay":

				//Current OrderId
				var arrOrderId = arrBookMark[1].split('=')
				var intOrderId = arrOrderId[1]
				//Current method of payment
				var arrPayment = arrBookMark[2].split('=')
				var strPayment = arrPayment[1]

				ConfirmOrder('cartoverview',languageUsed,'confirmorder',intOrderId,strPayment)
				break
				default:
				break
			}
		}

	}else if(actionTaken=="viewcart" && mainAction=="delete"){

		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText

		mainAction = ""

		//Get bookmark for pagestate
		var strBookMark = ''
		var strTarget = ''
		strBookMark = getPageBookMark()

		if(strBookMark.length>-1){

			var arrBookMark = strBookMark.split('%')

			//Targetpage
			var arrTarget = arrBookMark[0].split('=')
			strTarget = arrTarget[1]

			switch(strTarget)
			{
				case "sco":
				ShowOrderOverview('cartoverview',languageUsed,'vieworder')
				break
				case "oov":
				ShowOrderOverview('cartoverview',languageUsed,'showorderoverview');
				break
				case "pop":
				ShowPaymentOptions('cartoverview',languageUsed,'showpaymentoptions');
				break
			}
		}

	}
	else if(actionTaken=="edit"){

		//Check if validationerrors occured
		var strValidationErrors = xmlHttp.responseText
		var strValidationMessage = ''
		var arrValidationErrors

		arrValidationErrors = strValidationErrors.split("||")


		//Errors found
		if(!eval(arrValidationErrors[0])){
			strValidationMessage = arrValidationErrors[1];
			valDiv = document.getElementById('validation_errors2');
			valDiv.style.visibility = 'visible';
			valDiv.innerHTML = strValidationMessage
		}else{

			mainAction = "edit"
			ShowOrderOverview('cartoverview',languageUsed,'vieworder')

		}
	}else if(actionTaken=="vieworder"){

		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText

		//Hide error messages
		if(document.getElementById('validation_errors')){
			document.getElementById('validation_errors').innerHTML = ''
		}
		//Update shoppingcart
		viewCart('cartDiv',languageUsed,'viewcart');
	}else if(actionTaken=="delete"){

		mainAction = "delete";
		viewCart('cartDiv',languageUsed,'viewcart');
	}
	else if(actionTaken=="updatecustomer"){
		
			
		//Check if validationerrors occured
		var strValidationErrors = xmlHttp.responseText
		var strValidationMessage = ''
		var arrValidationErrors
		var arrValidationErrors1

		arrValidationErrors1 = strValidationErrors.split("##")
		arrValidationErrors = arrValidationErrors1[0].split("||")

		//alert(strValidationErrors);


		//Errors found
		if(!eval(arrValidationErrors[0])){

			var arrLen=arrValidationErrors1.length

			for ( var i=0, len=arrLen; i<len; ++i ){
				arrValidationErrors = arrValidationErrors1[i].split("||")
				strValidationMessage+="<li>"+arrValidationErrors[1]

				//alert(arrValidationErrors[1]);

				oValField = document.getElementById(arrValidationErrors[2]);
				oValField.style.background = "#FF6F6F";

				//document.all[arrValidationErrors[2]].style.background = "#FF6F6F"
			}

			if(!document.getElementById("validation_errors")){
				//Create Div to hold usermessage "checkout/proceed shopping"
				var mainScDiv = document.getElementById("cartoverview");
				var oDiv = document.createElement("div");
				oDiv.id = "validation_errors";
				oDiv.innerHTML = strValidationMessage
				mainScDiv.appendChild(oDiv);
				oDiv.onmouseover = function() {
					hideShowDiv("validation_errors","hidden");
				}
				hideShowDiv("validation_errors","visible");
			}else{
				valDiv = document.getElementById('validation_errors');
				hideShowDiv("validation_errors","visible");
				valDiv.innerHTML = strValidationMessage
			}

			/*valDiv = document.getElementById('validation_errors');
			valDiv.style.display = 'block';
			valDiv.innerHTML = strValidationMessage*/

		}else{
			//No errors
			//Show paymentoptions
			//ShowPaymentOptions(contentDiv,languageUsed,'showpaymentoptions');

			if(skipStep){
				//Don't show orderoverview
				//ConfirmOrder(contentDiv,languageUsed,'confirmorder',orderId,paymentMethod);


			}else{
				ShowOrderOverview(contentDiv,languageUsed,'showorderoverview');
			}

		}
	}else if(actionTaken=="updatepaymentoption"){
		if(skipStep){
			//Don't show orderoverview
			ConfirmOrder(contentDiv,languageUsed,'confirmorder',orderId,paymentMethod);

		}else{
			ShowOrderOverview(contentDiv,languageUsed,'showorderoverview');
		}
	}
	else if(actionTaken=="add"){
		
		//alert(xmlHttp.responseText)

		//Check if validationerrors occured
		var strValidationErrors = xmlHttp.responseText
		var strValidationMessage = ''
		var arrValidationErrors

		arrValidationErrors = strValidationErrors.split("||")

		//Errors found

		//alert(arrValidationErrors[0])	;

		if(!eval(arrValidationErrors[0])){
			strValidationMessage = arrValidationErrors[1];

			alert(strValidationMessage);

			//valDiv = document.getElementById('validation_errors2');
			//valDiv.style.visibility = 'visible';
			//valDiv.innerHTML = strValidationMessage
		}else{


			//Show shoppingcart button
			//showScButton('ww_knop','visible');
			showHideControl('cartDiv','block');

			if(!document.getElementById("actionAfterAdd")){
				//Create Div to hold usermessage "checkout/proceed shopping"
				var mainScDiv = document.getElementById("cartoverview");
				var oDiv = document.createElement("div");
				oDiv.id = "actionAfterAdd";

				mainScDiv.appendChild(oDiv);
			}

			hideShowDiv('actionAfterAdd','visible');

			//Retrieve the message
			viewMessageAfterAdd('actionAfterAdd',languageUsed,'viewaddmessage');


		}
	}else if(actionTaken=="viewaddmessage"){

		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText

		//Hide errormessage
		//document.getElementById('validation_errors2').innerHTML = ''
		//Update shoppingcart
		viewCart('cartDiv',languageUsed,'viewcart');
	}else if(actionTaken=="showorderoverview"){
		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText
		//Update shoppingcart
		viewCart('cartDiv',languageUsed,'viewcart');
	}else if(actionTaken=="loginStatus"){
		if(xmlHttp.responseText!==""){
			document.getElementById(contentDiv).innerHTML = xmlHttp.responseText
			//Show login status
			hideShowDiv(contentDiv,'visible');
			laden();
			//Check order after checking login status
		}
		CheckOrder('cartDiv',languageUsed,'checkorder');
	}else{

		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText

		if(actionTaken=="confirmorder"){
			
			showHideControl('cartDiv','none');

			if(paymentMethod=="machtiging" || paymentMethod.indexOf("ideal")>-1 || paymentMethod.indexOf("creditcard")>-1){

				//Name of current window for returnpage payment
				self.name='payopener';
				//Submit payment form
				document.forms['pay_form'].submit();
			}else{
				//Order confirmed, hide shoppingcart
				//hideShowDiv('ww_knop','hidden');
				//hideShowDiv('cartDiv','hidden');
			}

			//Update shoppingcart
			viewCart('cartDiv',languageUsed,'viewcart');

		}else if(actionTaken=="payorder"){
			if(paymentMethod=="machtiging" || paymentMethod.indexOf("ideal")>-1 || paymentMethod.indexOf("creditcard")>-1){
				//Name of current window for returnpage payment
				self.name='payopener';
				//Submit payment form
				document.forms['pay_form'].submit();
			}
		}
	}


}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		//Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	return xmlHttp;
}

//Send Ajax request
function SendRequest(url,method,postdata){
	xmlHttp.onreadystatechange=stateChanged
	xmlHttp.open(method,url,true)
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	if(method=="POST"){
		xmlHttp.send(postdata)
	}else{
		xmlHttp.send(null)
	}
}