//Calender object
var mCal;

//Function for populating listmenu's
function getListValues(language,oList,lstDiv,action){
	
	contentDiv = lstDiv
	actionTaken = action
	languageUsed = language
	
	//var oShipIsBill = document.all['ship_is_bill'];
	var oShipIsBill = document.getElementById('ship_is_bill');
	var blShipIsBill = oShipIsBill.checked;
	var blBillingCountry = true
	
	if(oList.id == "shipping_country"){
		//Get selected shippingoption
		var oShipping = document.forms['customer_form'].elements['shipping_method']
		var listItemValue = oShipping.options[oShipping.selectedIndex].value		
	}else{
		//Get other selected listitem
		var listItemValue = oList.options[oList.selectedIndex].value
		
		copyShippingFormField(oList);
	}	
	
	var oCountry = document.forms['customer_form'].elements['shipping_country']
	var curShippingCountry = oCountry.options[oCountry.selectedIndex].value
	
	if(blShipIsBill){
		curBillingCountry = curShippingCountry;
	}else{
	var oCountry = document.forms['customer_form'].elements['billing_country']
	var curBillingCountry = oCountry.options[oCountry.selectedIndex].value	
	
	if((oList.id=="shipping_method" || oList.id=="billing_country") && curBillingCountry==""){
		blBillingCountry = false
	}
	}
		
	
	//If country is changed, reset payment options
	if(oList.id == "shipping_country" || (oList.id=="billing_country" && curBillingCountry=="")){
		var oPayment = document.forms['customer_form'].elements['payment_method']
		var boxLength
		
		if(oPayment){
		
		boxLength = oPayment.length
		boxLength2 = oPayment.length
		
		if(boxLength > 1){
		for (i = boxLength; i > 0; i--) {			
			oPayment.options[i] = null;			
			}
		}
	  }
	}
	
	
	if(blBillingCountry){
		
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/customer.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	url=url+"&billing_country="+curBillingCountry
	url=url+"&shipping_country="+curShippingCountry
	url=url+"&list_item_value="+listItemValue
		
	//alert(url)
	SendRequest(url,"GET");
	
	}
	
}

//Update payment option
function UpdatePaymentOption(cartDiv,language,action,orderstatus,skipOrderOverView,OrderId){
	
	
	if(skipOrderOverView){		
		var oPayment = document.forms['customer_form'].elements['payment_method']			
		orderId = OrderId
		skipStep = skipOrderOverView		
		
	}else{
		paymentMethod = ""
		skipStep = false
	}
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language

	//var oPayment = document.all['payment_method'];
	var oPayment = document.forms['payment_options_form'].elements['payment_method'];
	//paymentMethod = oPayment.options[oPayment.selectedIndex].value;	
	paymentMethod = get_radio_value(oPayment);	
	
	//var oShipping = document.all['shipping_method'];
	var oShipping = document.forms['shipping_options_form'].elements['shipping_method'];
	shippingMethod = get_radio_value(oShipping);	
	
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/customer.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	url=url+"&payment_method="+paymentMethod
	url=url+"&shipping_method="+shippingMethod

	
	SendRequest(url,"GET");
}

//Get value from radiobutton field
function get_radio_value(oRadio)
{

	var rad_val;

	if(oRadio.length){
		for (var i=0; i < oRadio.length; i++)
		{
			if (oRadio[i].checked)
			{
				rad_val = oRadio[i].value;
			}
		}
	}else{
		rad_val = oRadio.value;
	}

	return rad_val;
}


//Update customerinfo
function UpdateCustomerInfo(cartDiv,language,action,orderstatus,skipOrderOverView,OrderId){
	
	
	actionTaken = action
	
	
	/*if(skipOrderOverView){
		
		var oPayment = document.forms['customer_form'].elements['payment_method']
		paymentMethod = oPayment.options[oPayment.selectedIndex].value		
		
		orderId = OrderId
		skipStep = skipOrderOverView		
		
	}else{
		paymentMethod = ""
		skipStep = false
	}*/
	
	contentDiv = cartDiv	
	languageUsed = language
		
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/customer.php"
	var postData
	
	var elementTypes
	
	postData="action="+action
	postData=postData+"&language="+language
	postData=postData+"&orderstatus="+orderstatus
	
	var customerForm = document.forms['customer_form']
	var element_name,element_value
	var element_label
	
		
   for(i=0; i<customerForm.elements.length; i++){
   	
   	
   	if(customerForm.elements[i].type !== "button" && customerForm.elements[i].type !== "reset"){   		
   		   		
   		element_name = customerForm.elements[i].name
   		  		
   	  if(customerForm.elements[i].type == "text" || customerForm.elements[i].type == "textarea"){
   	  	
   	  	element_value = customerForm.elements[i].value
   	  	  	  	
   	  }else if(customerForm.elements[i].type == "checkbox"){
      element_value = customerForm.elements[i].checked
      
      if(element_name=="ship_is_bill"){
      	if(!element_value){
      		element_value = 0;
      	}else{
      		element_value = 1;	
      	}
      }else{      
      if(!element_value){
      	element_value = ""
      }
      }
      
     }
      else if(customerForm.elements[i].type == "select-one"){

      	element_value = customerForm.elements[i].options[customerForm.elements[i].selectedIndex].value    
      	
      	    	  	
   	   }   
   	   
   	   //Reset field background color
   	   customerForm.elements[i].style.background = ""
   	   element_value = encodeMyHtml(element_value);
   	   
   	   postData=postData+"&"+element_name+"="+element_value
   		
   	}
   }
   
   
   SendRequest(url,"POST",postData);
}

//Show payment options
function ShowPaymentOptions(cartDiv,language,action){
	
	//Set bookmark to maintain state on refresh
	setPageBookMark('t=pop')
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
		
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/customer.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	
	SendRequest(url,"GET");
}

//Show customerform
function ShowCustomerForm(cartDiv,language,action,orderstatus){
	
	//Set bookmark to maintain state on refresh
	setPageBookMark('t=cuf')
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
		
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/customer.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	url=url+"&orderstatus="+orderstatus
	
	SendRequest(url,"GET");
}

//Confirm order
function ConfirmOrder(cartDiv,language,action,OrderId,payment_method){
	
	//Set bookmark to maintain state on refresh
	setPageBookMark('t=pay%oid='+OrderId+'%pam='+payment_method)
	
	contentDiv = cartDiv
	actionTaken = action
	paymentMethod = payment_method
			
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	url=url+"&orderid="+OrderId
	url=url+"&payment_method="+payment_method
	
	SendRequest(url,"GET");
}

//Pay order
function PayOrder(cartDiv,language,action,OrderId,payment_method){
	contentDiv = cartDiv
	actionTaken = action
	paymentMethod = payment_method
			
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	url=url+"&orderid="+OrderId
	url=url+"&payment_method="+payment_method
	
	SendRequest(url,"GET");
}

//Add new order
function AddOrder(structuurId,cartDiv,language,action){
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
	var quantity
	var product_type
	var cur_product_type = "";
	
	
	
	xmlHttp=GetXmlHttpObject()
	
	var oQuantity;
	oQuantity = document.getElementById('quantity_'+structuurId);
	//Get article quantity
	if(oQuantity){
		//quantity = document.all['quantity_'+structuurId].value;
		quantity = oQuantity.value;
	}else if(document.getElementById('quantity')){
		oQuantity = document.getElementById('quantity');
		quantity = oQuantity.value;
	}
	else{
		quantity  = 1;
	}
	
	//Get article quantity
	//if(document.all['quantity_'+structuurId]){
	/*if(document.all['quantity_'+structuurId]){
		quantity = document.all['quantity_'+structuurId].value;		
	}else{
		quantity  = 1;
	}*/
	
	//Get product type if available
	/*if(document.all['product_type']){
		product_type = document.all['product_type'];
		cur_product_type = product_type.options[product_type.selectedIndex].value;	
	}*/
	if(document.getElementById('product_type')){
		product_type = document.getElementById('product_type');
		cur_product_type = product_type.options[product_type.selectedIndex].value;	
	}	
	
	var url="/modules/sc/modules/order.php"
	url=url+"?structuurId="+structuurId
	url=url+"&language="+language
	url=url+"&action="+action
	url=url+"&quantity="+quantity
	url=url+"&sid="+Math.random()
	if(cur_product_type!==""){
		url=url+"&cur_product_type="+cur_product_type	
	}
	
	SendRequest(url,"GET");	
	
}

//Edit existing order
function EditOrder(orderid,articleId,cartDiv,language,action){
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
	
	var url="/modules/sc/modules/order.php"
	url=url+"?articleid="+articleId
	url=url+"&orderid="+orderid
	url=url+"&language="+language
	url=url+"&action="+action
	url=url+"&sid="+Math.random()
	
	//Quantity change
	if(action=="edit"){
		
	//var quantityField = document.all['quantity'+articleId];
	var quantityField = document.getElementById('quantity'+articleId);
	url=url+"&new_quantity="+quantityField.value	
	}
	xmlHttp=GetXmlHttpObject()	
	
	SendRequest(url,"GET");	
	
	
}

//View message after adding product
function viewMessageAfterAdd(cartDiv,language,action){
	
		
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
	
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?language="+language
	url=url+"&action="+action
	url=url+"&sid="+Math.random()
	
	SendRequest(url,"GET");
	
	}	

//View shoppingcart	
function viewCart(cartDiv,language,action){
	
		
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
	
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?language="+language
	url=url+"&action="+action
	url=url+"&sid="+Math.random()
	
	SendRequest(url,"GET");
	
}	

//Check for existing orders
function CheckOrder(cartDiv,language,action){
	
	
	contentDiv = cartDiv
	actionTaken = action
	languageUsed = language
	
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?language="+language
	url=url+"&action="+action
	url=url+"&sid="+Math.random()
	
	SendRequest(url,"GET");
	
}	

//Show orderoverview
function ShowOrderOverview(cartDiv,language,action){
	
	//Set bookmark to maintain state on refresh
	if(action=="showorderoverview"){
		setPageBookMark('t=oov')
	}else{
		setPageBookMark('t=sco')	
	}	
	
	contentDiv = cartDiv
	actionTaken = action
	
	xmlHttp=GetXmlHttpObject()
	
	var url="/modules/sc/modules/order.php"
	url=url+"?sid="+Math.random()
	url=url+"&action="+action
	url=url+"&language="+language
	
	//alert(url)
	
	SendRequest(url,"GET");
	
}

function setPageBookMark(bookmark){	
	var tmpLocation = window.location.href
	var lastIndex = tmpLocation.lastIndexOf('#')
	
	if(lastIndex>-1){
		tmpLocation = tmpLocation.substring(0,lastIndex)
	}
	
	window.location.href = tmpLocation+'#['+bookmark+']'
}

function getPageBookMark(){
	var tmpLocation = window.location.href
	var lastIndex = tmpLocation.lastIndexOf('#')
	
	if(lastIndex>-1){
		var lastIndex1 = tmpLocation.lastIndexOf('[')
		var lastIndex2 = tmpLocation.lastIndexOf(']')
		var strBookMark = tmpLocation.substring(lastIndex1+1,lastIndex2)
		
		return strBookMark
	}
	
	return ""
}

//Function for showing the shoppingcart
function showSC(oElement,cartDiv,language){
	
var position = findPosition(oElement)
//var cartContent = document.all[cartDiv]
var cartContent = document.getElementById(cartDiv);

cartContent.style.top = position[1];
cartContent.style.left = position[0]-145;

cartContent.style.visibility = 'visible';


}

//Function for hiding the shoppingcart
function hideSC(cartDiv){
cartDiv.style.visibility = 'hidden';
}


//Function for showing/hiding the shoppingcart button
function showScButton(buttonId,visibility){
//var scButton = document.all[buttonId]
var scButton = document.getElementById(buttonId);

scButton.style.visibility = visibility
}

//function for hiding or showing content
function hideShowDiv(elementName,visibility){
	//var element = document.all[elementName];
	var element = document.getElementById(elementName);
	element.style.visibility = visibility;	
}

//Function for determining position of the shoppingcart
function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}

function mouseLeaves (element, evt) {
if (typeof evt.toElement != 'undefined' && evt.toElement && typeof
element.contains != 'undefined') {
return !element.contains(evt.toElement);
}
else if (typeof evt.relatedTarget != 'undefined' && evt.relatedTarget) {
return !contains(element, evt.relatedTarget);
}
}

function contains (container, containee) {
while (containee) {
if (container == containee) {
return true;
}
containee = containee.parentNode;
}
return false;
}

function IsInteger(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function IsEmpty(aTextField) {
   if ((aTextField.value.length==0) ||
   (aTextField.value==null)) {
      return true;
   }
   else { return false; }
}

//function for encoding formvalues
function encodeMyHtml(strToEncode) {
     strToEncode = escape(strToEncode);
     strToEncode = strToEncode.replace(/\//g,"%2F");
     strToEncode = strToEncode.replace(/\?/g,"%3F");
     strToEncode = strToEncode.replace(/=/g,"%3D");
     strToEncode = strToEncode.replace(/&/g,"%26");
     strToEncode = strToEncode.replace(/@/g,"%40");

     return strToEncode
}

function copyShippingFormField(oFormField){
	var oShipIsBill = document.getElementById('ship_is_bill');
	var blShipIsBill = oShipIsBill.checked;
	
	if(blShipIsBill){
		switch(oFormField.id){
			case "billing_address":
			var oShippingAddress = document.getElementById('shipping_address');
			oShippingAddress.value = oFormField.value;
				break;
			case "billing_postalcode":
			var oShippingPostalcode = document.getElementById('shipping_postalcode');
			oShippingPostalcode.value = oFormField.value;
				break;
			case "billing_place":
			var oShippingPlace = document.getElementById('shipping_place');
			oShippingPlace.value = oFormField.value;
				break;
			case "billing_country":
			var oShippingCountry = document.getElementById('shipping_country');
			oShippingCountry.selectedIndex = oFormField.selectedIndex;
				break;
		}
	}
}

//enable or disable billing form fields
function setBillingFormFields(oCheckStatus){
	
var oShippingAddressDetails = document.getElementById('shipping_address_details');
	
var oBillingAddress = document.getElementById('billing_address');
var oBillingPostalcode = document.getElementById('billing_postalcode');
var oBillingPlace = document.getElementById('billing_place');
var oBillingCountry = document.getElementById('billing_country');

var oShippingAddress = document.getElementById('shipping_address');
var oShippingPostalcode = document.getElementById('shipping_postalcode');
var oShippingPlace = document.getElementById('shipping_place');
var oShippingCountry = document.getElementById('shipping_country');


	if(oCheckStatus.checked){
		
		oShippingAddressDetails.style.display = 'none';		
		
		oShippingAddress.value = oBillingAddress.value;
		oShippingPostalcode.value = oBillingPostalcode.value;
		oShippingPlace.value = oBillingPlace.value;
		oShippingCountry.selectedIndex = oBillingCountry.selectedIndex;
		
		
		oShippingAddress.disabled = false;
		oShippingPostalcode.disabled = false;
		oShippingPlace.disabled = false;
		oShippingCountry.disabled = false;
	}else{
		
		oShippingAddressDetails.style.display = 'block';		

		oShippingAddress.disabled = false;
		oShippingPostalcode.disabled = false;
		oShippingPlace.disabled = false;
		oShippingCountry.disabled = false;
		
	}
}

function showCal(inputField){
		//mCal = new dhtmlxCalendarObject("dhtmlxCalendar", false, {isYearEditable: true});
		//mCal.setYearsRange(2000, 2500);
		//mCal.setOnClickHandler(mSelectDate);
		//mCal.draw();
		
		//oCal = document.all[inputField];
		oCal = document.getElementById(inputField);
		
		mCal = new dhtmlxCalendarObject(oCal);
		mCal.show();
	}
	
function hideCal(){
		//mCal = new dhtmlxCalendarObject("dhtmlxCalendar", false, {isYearEditable: true});
		//mCal.setYearsRange(2000, 2500);
		//mCal.setOnClickHandler(mSelectDate);
		//mCal.draw();
		
		mCal.hide();
	}	


