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(){
	
	//Does order exist?
	if(actionTaken == "checkorder"){
		var IsOrder = eval(xmlHttp.responseText);
		
		if(IsOrder){
			
			mainAction = "checkorder"
			
			//Show shoppingcart
			//showScButton('ww_knop','visible');
			showScButton('cartDiv','visible');
			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 "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=="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"){		
		
		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText
		
		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("||")	
		
			
		//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 orderoverview
			
			if(skipStep){
				//Don't show orderoverview
				ConfirmOrder(contentDiv,languageUsed,'confirmorder',orderId,paymentMethod);
				
				
			}else{
				ShowOrderOverview(contentDiv,languageUsed,'showorderoverview');
			}
			
		}
		}else if(actionTaken=="add"){
			
			//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{
				
			
				//Show shoppingcart button
			//showScButton('ww_knop','visible');			
			showScButton('cartDiv','visible');			
			
			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{
		
		document.getElementById(contentDiv).innerHTML = xmlHttp.responseText
		
		if(actionTaken=="confirmorder"){
		
		if(paymentMethod=="machtiging" || paymentMethod.indexOf("ideal")>-1){
			
			//Name of current window for returnpage payment
			self.name='_mainpage';	
			//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');	
		
	}
		}
	
	
}

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)
	}
}