
var formSent = new Boolean(false);

var xmlhttpObj;

function loadXMLDoc(url) {
	xmlhttpObj = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			xmlhttpObj = new XMLHttpRequest();
        } catch(e) {
			xmlhttpObj = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	xmlhttpObj = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		xmlhttpObj = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		xmlhttpObj = false;
        	}
		}
    }
	if(xmlhttpObj) {
		xmlhttpObj.onreadystatechange = handleResponse;
		xmlhttpObj.open("GET", url, true);
		xmlhttpObj.send("");
	}
}


function validatePlaceOrder()
{

	var elems,err,errList,errMsg,contactErr;	

	if(formSent == true)
	{
		alert("Your order is being submitted. Please wait.");
		return false;
	}
	

	err = 0;

	if(err == 0)
	{
		formSent = true;
		return true;
	}

}


function newWindow(theurl,thewidth,theheight){

	newWin = window.open(theurl,'newWindow','width=' + thewidth + ',height=' + theheight + ',toolbar=no,location=no,scrollbars=no');

}





function updateDelivery(dType){
	
	var haveVipProducts,totWeight,VIPWeight,delivery,specialDelivery,thisVat,thisTotal,thisUrl,pNo,deliveryType,deliveryDate,deliveryDateSelect,selectedDate,deliveryDate;
	
	var weekday=new Array(7);
	weekday[0]="Sunday";
	weekday[1]="Monday";
	weekday[2]="Tuesday";
	weekday[3]="Wednesday";
	weekday[4]="Thursday";
	weekday[5]="Friday";
	weekday[6]="Saturday";
	
	var month=new Array(12);
	month[0]="January";
	month[1]="February";
	month[2]="March";
	month[3]="April";
	month[4]="May";
	month[5]="June";
	month[6]="July";
	month[7]="August";
	month[8]="September";
	month[9]="October";
	month[10]="November";
	month[11]="December";	

	haveVipProducts = document.getElementById("haveVipProducts").value;

	totWeight = document.getElementById("totWeight").value;

	VIPWeight = document.getElementById("VIPWeight").value;

	delivery = document.getElementById("delivery").value;

	specialDelivery = document.getElementById("specialDelivery").value;

	thisVat = document.getElementById("thisVat");

	thisTotal = document.getElementById("thisTotal");
	
	pNo = document.getElementById("pNo").value;
	
	deliveryType = document.getElementById("deliverytype").value;
	deliveryDate = document.getElementById("deliverydate").value;
	
	deliveryTypeSelect = document.getElementById("deliverytype");
	
	deliveryDateSelect = document.getElementById("deliverydate");
	
	selectedDate = deliveryDateSelect.selectedIndex;

	// send post to page which works out postage and returns a string, containing:
	// new vat,total and delivery costs

	// do xml post

	thisUrl = "http://www.nexus-t.co.uk/calculatedelivery.asp?haveVipProducts=" + haveVipProducts + "&totWeight=" + totWeight + "&VIPWeight=" + VIPWeight + "&delivery=" + delivery + "&specialDelivery=" + specialDelivery + "&pNo=" + pNo + "&deliveryType=" + deliveryType + "&deliveryDate=" + deliveryDate;

	loadXMLDoc(thisUrl);
	
	if(deliveryDate == "undefined"){
	
		// leave it alone !
	
	}		
	// Update the date one, if Saturday delivery option chosen
	else if(deliveryType == 17)
	{	
		// clear out old values
		deliveryDateSelect.length = 0;
		
		var d = new Date();
		var thisDate;
		
		while(weekday[d.getDay()] != "Saturday")
		{
			// add a day on to the date
			d.setDate(d.getDate()+1);			
		}		
		
		// while it aint saturday

		deliveryDateSelect.length = 14;

		for (i=0;i<14;i++)
		{
		  	// get the next saturday		  		  	
		  	
		  	deliveryDateSelect.options[i].text = weekday[d.getDay()] + " - " + fixJDate(d.getDate()) + "/" + fixJDate(d.getMonth() + 1) + "/" + d.getFullYear();
		  	
		  	d.setDate(d.getDate()+7);
		  	
		  	// select it if its ours - aint needed man
		  	/*
		  	if(selectedDate == i && i > 0){
		  	
				deliveryDateSelect.options[i].selected = true;
		  	}
		  	*/
		  	
  		}
	
	}
	else if(deliveryType == 1 || deliveryType == 2 || deliveryType == 3 || deliveryType == 4 || deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text.indexOf("Non UK") > 0)
	{
		
		// Add 2 Days on to dates
		
		// clear out old values
		deliveryDateSelect.length = 0;
		
		var d = new Date();
		var thisDate;
		
		// if its a Thursday
		//alert("Today Is: " + d);
		if(weekday[d.getDay()] == "Thursday")
		{
			// add 4 days on to the date to make it wednesday
			if(d.getUTCHours() + 1 >= 17)
			{
				d.setDate(d.getDate()+5);
			}
			else
			{
				d.setDate(d.getDate()+4);
				//alert("Today Is: " + d);
			}
		}		
		else if(weekday[d.getDay()] == "Friday")
		{
			// add 4 days on to the date to make it wednesday
			if(d.getUTCHours() + 1 >= 17)
			{
				d.setDate(d.getDate()+5);
			}
			else
			{
				d.setDate(d.getDate()+4);
				//alert("Today Is: " + d);
			}
		}
		else if(weekday[d.getDay()] == "Saturday")
		{
			// add 4 days on to the date to make it wednesday
			d.setDate(d.getDate()+4);			
		}
		
		else if(weekday[d.getDay()] == "Sunday")
		{		
			// just add 3 days on to the date to make it wednesday
			d.setDate(d.getDate()+3);		
		}
		else
		{
			// just add 3 days on to the date						
			d.setDate(d.getDate()+3);		
		}
		
		deliveryDateSelect.length = 14;
		
		var i = 0;
		
		for(i=0; i<14; i++)
		{
		  	// get the next delivery day 
		  	// NOT saturdays or sundays
			if(weekday[d.getDay()] != "Saturday" && weekday[d.getDay()] != "Sunday")
			{
			     //deliveryDateSelect.length = deliveryDateSelect.length + 1; 
			     deliveryDateSelect.options[i].text = weekday[d.getDay()] + " - " + fixJDate(d.getDate()) + "/" + fixJDate(d.getMonth() + 1) + "/" + d.getFullYear();
			}
			else
			{
			     i = i - 1;
			}
											
			d.setDate(d.getDate()+1);
  		}	
  	}
  	else if(deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text.indexOf("3-4") > 0) {
  	  		
  		// clear out old values
		deliveryDateSelect.length = 0;
		deliveryDateSelect.length = 1;
  		deliveryDateSelect.options[0].text = "N/A";  	
		
	}
	else
	{	
		// must be next day
		
		if(deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text.indexOf("next day") > 0)
		{
		
			//alert(deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text);
			
			// just add one day on - no weekends though
			
			// Add 1 Day on to dates

			// clear out old values
			deliveryDateSelect.length = 0;

			var d = new Date();
			var thisDate;

			// if its a weekender

			if(weekday[d.getDay()] == "Friday")
			{
				// add 4 days on to the date to make it tuesday
				//alert("TODAY IS: " + d);
				
				if(d.getUTCHours() + 1 >= 17)
				{				
					d.setDate(d.getDate()+4);
					//alert("DELIVERY DATE IS: " + d);
				}
				else
				{
					d.setDate(d.getDate()+3);
				}
			}				
			else if(weekday[d.getDay()] == "Saturday")
			{
				// add 3 days on to the date to make it tuesday
				//alert("TODAY IS: " + d);
				d.setDate(d.getDate()+3);			
			}
			else if(weekday[d.getDay()] == "Sunday")
			{		
				// just add 2 days on to the date to make it tuesday
				//alert("TODAY IS: " + d);
				d.setDate(d.getDate()+2);		
			}
			else
			{
				// just add 1 day on to the date
				// check the time
				
				
				if(d.getUTCHours() + 1 >= 17)
				{
					d.setDate(d.getDate()+2);
				}
				else
				{
					d.setDate(d.getDate()+1);
				}
			}

			deliveryDateSelect.length = 14;

			var i = 0;

			for(i=0;i < 14;i++)
			{
				// get the next delivery day 
				// NOT saturdays or sundays
				if(weekday[d.getDay()] != "Saturday" && weekday[d.getDay()] != "Sunday")
				{				
					deliveryDateSelect.options[i].text = weekday[d.getDay()] + " - " + fixJDate(d.getDate()) + "/" + fixJDate(d.getMonth() + 1) + "/" + d.getFullYear();					
				}
				else
				{				
				  i = i - 1;				  
				}

				d.setDate(d.getDate()+1);	  			  				
			}
		
		}
		else if(deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text.indexOf("ustomer Collection") > 0)		
		{
		
			// check for system
			
			var isSystem = false;
			
			if (document.getElementById('haveSys')) {
			
				isSystem = true;
			}	
			
			// clear out old values
			deliveryDateSelect.length = 0;

			var d = new Date();
			var thisDate;		
			if(weekday[d.getDay()] == "Friday")
			{
				if(isSystem) {
									
					if(d.getUTCHours() + 1 >= 17)
					{
						// add a week + 3 days on to the date to make it next monday
						d.setDate(d.getDate()+10);
					}
					else
					{
						// add 7 days to make it friday
						d.setDate(d.getDate()+7);
						//alert("Today Is: " + d);
					}					
				}	
				else {
					// add 4 days on to the date to make it wednesday
					if(d.getUTCHours() + 1 >= 17)
					{
						d.setDate(d.getDate()+4);
					}
					else
					{
						d.setDate(d.getDate()+3);
						//alert("Today Is: " + d);
					}
				}	
				
			}
			else if(weekday[d.getDay()] == "Saturday")
			{
				if(isSystem) {
				
					// add 5 days on to the date to make it friday
					d.setDate(d.getDate()+6);
					
				}
				else {
				
					// add 4 days on to the date to make it wednesday
					d.setDate(d.getDate()+3);				
				}
			}

			else if(weekday[d.getDay()] == "Sunday")
			{		
			
				if(isSystem) {
				
					// just add 4 days on to the date to make it friday
					d.setDate(d.getDate()+5);
				}
				else {
					// just add 3 days on to the date to make it wednesday
					d.setDate(d.getDate()+2);				
				}				
				
			}
			else
			{
				// just add a week on to the date
				
				if(isSystem) {
				

					d.setDate(d.getDate()+7);		
				}
				else {
				
					if(d.getUTCHours() + 1 >= 17)
					{

						d.setDate(d.getDate()+2);
					}
					else
					{
						d.setDate(d.getDate()+1);
					}				
				}
			}

			deliveryDateSelect.length = 14;

			var i = 0;

			for(i=0; i<14; i++)
			{
				if(weekday[d.getDay()] != "Sunday")
				{				
					deliveryDateSelect.options[i].text = weekday[d.getDay()] + " - " + fixJDate(d.getDate()) + "/" + fixJDate(d.getMonth() + 1) + "/" + d.getFullYear();					
				}
				else
				{				
				  i = i - 1;				  
				}

				d.setDate(d.getDate()+1);			
			}			
		}
		
		else if(deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text.indexOf("PC System") > 0)		
		{
			// clear out old values
			deliveryDateSelect.length = 0;
			
			// 5 working days

			var d = new Date();
			var thisDate;		
			if(weekday[d.getDay()] == "Friday")
			{									
				if(d.getUTCHours() + 1 >= 17)
				{
					// add a week + 3 days on to the date to make it next monday
					d.setDate(d.getDate()+10);
				}
				else
				{
					// add 7 days to make it friday
					d.setDate(d.getDate()+7);
					//alert("Today Is: " + d);
				}									
			}
			else if(weekday[d.getDay()] == "Saturday")
			{
				d.setDate(d.getDate()+6);
					
			}

			else if(weekday[d.getDay()] == "Sunday")
			{		
			
				
				// just add 5 days on to the date to make it friday
				d.setDate(d.getDate()+5);
				
			}
			else
			{
				// just add a week on to the date				
				d.setDate(d.getDate()+7);		
			}

			deliveryDateSelect.length = 14;

			var i = 0;

			for(i=0; i<14; i++)
			{
				if(weekday[d.getDay()] != "Sunday")
				{				
					deliveryDateSelect.options[i].text = weekday[d.getDay()] + " - " + fixJDate(d.getDate()) + "/" + fixJDate(d.getMonth() + 1) + "/" + d.getFullYear();					
				}
				else
				{				
				  i = i - 1;				  
				}

				d.setDate(d.getDate()+1);			
			}			
		}			
		else
		{
		
			// must be eire
			// assume its the same as the 2 day wait ?
			// alert("No Rule: " + deliveryTypeSelect.options[deliveryTypeSelect.selectedIndex].text);
					
		}
		
		
	}	

}


function handleResponse() {

var res, diff, oldDeliveryStr, totalStr, noVatTotal, vatRate;

oldDeliveryStr = document.getElementById("delivery").value;
totalStr = document.getElementById("thisTotal").value;
noVatTotal = document.getElementById("noVatTotal").value;
vatRate = document.getElementById("vatRate").value;

diff = new Number(0);
    
if(xmlhttpObj != null) {

    if ( xmlhttpObj.readyState == 4 ) {
	
	res = xmlhttpObj.responseText;
	
	var numTot = new Number(totalStr.replace(/,/,""));
	var numDel = new Number(res);
	var numOldDel = new Number(oldDeliveryStr);
	
	var numVatRate = new Number(vatRate);
	var numNoVatTotal = new Number(noVatTotal);
	
	numTot = (numNoVatTotal + numDel)
	
	var tmpVat;
	var totalIncVat;
	
	// to do - get VAT rate from db
	
	//tmpVat = numTot.toFixed(2) * 0.175;
	
	tmpVat = numTot.toFixed(2) * 0.175;
		
	totalIncVat = tmpVat + numTot
		
	var newTotalStr;
	
	if(totalIncVat.toFixed(2) > 1000)
	{
	    
	    newTotalStr = new String("" + totalIncVat.toFixed(2));
	    newTotalStr = newTotalStr.substring(0,1) + "," + newTotalStr.substring(1);
	    
	}
	else
	{
	     newTotalStr = new String("" + totalIncVat.toFixed(2));
	}
	
	document.getElementById("totaldiv").innerHTML = "";
	
	document.getElementById("totaldiv").innerHTML = "£" + newTotalStr;
	
	document.getElementById("deliverycost").innerHTML = "£" + numDel.toFixed(2);
	
	document.getElementById("delivery").value = numDel.toFixed(2);
	
	// Update the hidden form element
	
	//document.getElementById("thisTotal").value = numTot.toFixed(2);//
	
	document.getElementById("thisTotal").value = totalIncVat.toFixed(2);
	
	// Update the bloomin vat
		
	document.getElementById("vatdiv").innerHTML = "£" + tmpVat.toFixed(2);
	document.getElementById("vathidden").value = tmpVat.toFixed(2);
	
    }
    
 }
 else
 {
  //alert("NO XML OBJECT");
 }
  
}

function fixJDate(dateStr) {

	var dresult, tmpStr;
	
	tmpStr = new String("" + dateStr);
	
	if(tmpStr.length == 1) {
	
		dresult = new String("0" + tmpStr);
	
	}
	else
	{
		dresult = tmpStr;
	
	}
	
	tmpStr = null;
	
	return dresult;

}



function openCvcWindow(thewidth,theheight) {

    var cvcPageUrl;
    cvcPageUrl = "cvc.asp";    
    newWin = window.open(cvcPageUrl,'newWindow','width=' + thewidth + ',height=' + theheight + ',toolbar=no,location=no,scrollbars=yes,resizable=yes');
	
}






