// AJAX calls for shipping, submit zip, city, state, country and receive a rate
// Populate that rate into both shipping fields, update total

var invalidAddress = 0; 

function roundSimple(value, places)
{
	if( value.indexOf(".") != -1 )
	{ 
		var splitStr = value.split(".");
		
		var decimalPart = splitStr[1].substring(0,places);	
		
		return(splitStr[0]+"."+decimalPart);
	}
	else
		return value;
	
}

function updateTotal()
{
	var Total = document.checkout.total.value;
	var tax = document.checkout.tax.value;
	var shipping = document.checkout.shipping.value;
	
	if(tax=="") tax = 0; if(shipping=="") shipping=0;
	
	var grandTotal = parseFloat(Total) + parseFloat(tax) + parseFloat(shipping); 
	grandTotal = roundSimple(grandTotal.toString(), 2); 
	document.getElementById("total1").innerHTML = "$"+grandTotal;
	document.getElementById("total2").innerHTML = "$"+grandTotal;
}

function taxjs(amnt)
{
	if(document.checkout.state.value.toLowerCase() == "ca")
	{
		var amnt = amnt*0.0825;
		amnt = roundSimple(amnt.toString(), 2);
		document.getElementById("taxCharge1").innerHTML = "$"+amnt;
		document.getElementById("taxCharge2").innerHTML = "$"+amnt;
		document.checkout.tax.value = amnt; 
		updateTotal(); 	
	}
	else
	{
		var amnt = 0.00;		
		document.getElementById("taxCharge1").innerHTML = "$"+amnt;
		document.getElementById("taxCharge2").innerHTML = "$"+amnt;
		document.checkout.tax.value = amnt; 
		updateTotal(); 
	}
	
	//ajaxShipping()
}

function ajaxShipping()
{
	var city = document.checkout.city.value;
	var state = document.checkout.state.value;
	var zip = document.checkout.zip.value; 
	var country = document.checkout.country.value; 
	
	var Total = document.checkout.total.value;
	var tax = document.checkout.tax.value;
	var shipping = document.checkout.shipping.value; 
	
	var XMLHttpRequestObject = false;
	
	if(window.XMLHttpRequest){
		XMLHttpRequestObject = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		XMLHttpRequestObject =  new ActiveXObject("Microsoft.XMLHTTP");
	}

	//var obj = document.getElementById("editWindow");
	var url = "https://jondo.com/inc/ship/calcShipping.php?city="+city+"&state="+state+"&country="+country+"&zip="+zip;
	XMLHttpRequestObject.open("GET", url, true);
			
	XMLHttpRequestObject.onreadystatechange = function(){
		//alert(XMLHttpRequestObject.readyState);
		if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){			
			
			var shipCost = XMLHttpRequestObject.responseText;
			
			//alert(shipCost);
			
			if(shipCost=="-1")
			{
				//alert("ERROR");
				document.getElementById("shippingError").innerHTML = "<font color='red'><strong>Error: Invalid Address</strong></font>";
				invalidAddress = 1; 
			}
			else
			{
			//alert();
				document.getElementById("shippingCharge1").innerHTML = "$"+shipCost;
				document.getElementById("shippingCharge2").innerHTML = "$"+shipCost;
				document.checkout.shipping.value = shipCost; 
				
				document.getElementById("shippingError").innerHTML = "";
				updateTotal();
				
				invalidAddress = 0; 
			}
		}
	}
	//alert("Benchmark");
	
	XMLHttpRequestObject.send(null); 
}

function doCouponCalc()
{
	var XMLHttpRequestObject = false;
	
	if(window.XMLHttpRequest){
		XMLHttpRequestObject = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		XMLHttpRequestObject =  new ActiveXObject("Microsoft.XMLHTTP");
	}

	var code = document.checkout.coupon.value;

	//var obj = document.getElementById("editWindow");
	var url = "https://jondo.com/inc/ship/coupon.php?code="+code;
	XMLHttpRequestObject.open("GET", url, true);
			
	XMLHttpRequestObject.onreadystatechange = function(){
		//alert(XMLHttpRequestObject.readyState);
		if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){			
			
			var shipCost = XMLHttpRequestObject.responseText;
			if(shipCost=="-1")
			{
				//alert("ERROR");
				document.getElementById("shippingError").innerHTML = "<font color='red'><strong>Error: Invalid Address</strong></font>";
				invalidAddress = 1; 
			}
			else
			{
			//alert();
				document.getElementById("shippingCharge1").innerHTML = "$"+shipCost;
				document.getElementById("shippingCharge2").innerHTML = "$"+shipCost;
				document.checkout.shipping.value = shipCost; 
				
				document.getElementById("shippingError").innerHTML = "";
				updateTotal();
				
				invalidAddress = 0; 
			}
		}
	}
	//alert("Benchmark");
	
	XMLHttpRequestObject.send(null); 
}

function closeConfirm()
{
	document.getElementById("confirmPopup").style.display='none';
	
	document.getElementById("cctype").style.display='block';
	document.getElementById("expMonth").style.display='block';
	document.getElementById("expYear").style.display='block';
}

function confirmOrder()
{
	var errorCodes = orderCheck();
	
	if(invalidAddress==0 && errorCodes==true)
	{	
	
	document.getElementById("confirmPopup").style.display='block';
	document.getElementById('error').innerHTML = "";
	
	//hide these because IE is buggy...
	document.getElementById("cctype").style.display='none';
	document.getElementById("expMon").style.display='none';
	document.getElementById("expYear").style.display='none';
	
	var buff = "<a href='javascript:void(0)' onClick='closeConfirm()'>Change Order/Cancel</a><br>";
	buff += "Please Review Your Order:<hr>";
	buff += "<em>Shipping Address:</em><br>";
	buff+= document.checkout.fName.value + " " + document.checkout.lName.value;
	buff+= "<br>" + document.checkout.city.value + ", " + document.checkout.state.value
	buff+= "<br>" + document.checkout.zip.value + " " + document.checkout.country.value
	buff+= "<br>" + document.checkout.email.value;
	
	buff+= "<br><br><em>Credit Card Information</em><br>Number:" + document.checkout.ccnum.value;
	
	//ajax to coupon codes will go here...
	
	buff+= "<br><br><em>Order Totals</em><br>Subtotal:$" + document.checkout.total.value;
	buff+= "<br>Shipping:$" + document.checkout.shipping.value;
	buff+= "<br>Tax:$" + document.checkout.tax.value;
	
	
	
	
	var gTotal = parseFloat(document.checkout.total.value) + parseFloat(document.checkout.tax.value) + parseFloat(document.checkout.shipping.value);	
	gTotal = roundSimple(gTotal.toString(), 2);
	buff+= "<br><strong>Grand Total:$" + gTotal+"</strong>";
	
	buff+= "<br><input type='submit' value='Confirm Order'>";
	
	document.getElementById("confirmPopup").innerHTML=buff;
	}
	else
	{		
		if(invalidAddress==1) 
			document.getElementById('error').innerHTML="The address you entered seems to be invalid.";
	}
	
}