var country_code;
function handleDivTag(divtag){
   var divtag;
   return divtag;
}

function createRequestObject() {
	var req;
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("There was a problem creating the XMLHttpRequest object");
	}
	return req;
}

var http_ship = createRequestObject();
var divhandler_ship = new handleDivTag(null);

function sendRequest_ship(zip, ship, divtag) {
	if (divtag == "small_cart") {
		document.getElementById(divtag).innerHTML = "<div style='padding-left: 80px'>Recalculating...</div>";
		if (zip == "") var more = "shipping="+ship;
		if (ship=="") var more = "zip="+zip; 
		http_ship.open("get", "ship_checkout.php?"+more);
	}
	http_ship.onreadystatechange = handleResponse_ship;
	divhandler_ship.divtag = divtag;
	http_ship.send(null);
}

function handleResponse_ship() {
	if(http_ship.readyState == 4 && http_ship.status == 200){
		var response = http_ship.responseText;
		if(response) {
			document.getElementById(divhandler_ship.divtag).innerHTML = response;
			document.getElementById("s_zip").disabled = false;
			action_cert("update", "");
		}
	}
}
function ship_zip(zip, event) {
	var objRegExp  = /(^-?\d\d*$)/;
	var int_go = false;
	//alert(event);
	if (event) {
		if (event.keyCode) {
			code = event.keyCode;
			if ((code > 47 && code < 58) || (code > 95 && code < 106)) int_go = true;
		}
	}
	else {
		int_go = true;	
	}
	if (objRegExp.test(zip) && zip.length == 5 && int_go) {
		//alert(zip);
		//document.write("Zip: "+zip);
		document.getElementById("s_zip").disabled = true;
		var more = "zip="+zip;
		//
		var url = "filebin/xml/ship_option_xml.php?zip="+zip;
		var xml = new JKL.ParseXML(url);
		var data = xml.parse();
		if (data) {
			if (data["ship_options"]) {
				if (document.getElementById("shipping_checkout_div")) document.getElementById("shipping_checkout_div").innerHTML = data["ship_options"];
				sendRequest_ship(zip, "", 'small_cart');
			}
		}
		//let's check state:
		check_state_zip(zip);
		document.getElementById("s_phone_0").focus();
	}
	else if (zip.replace(/\s+/g,'').length == 6) {
		//CA
		document.getElementById("s_zip").disabled = true;
		var more = "zip="+zip;
		//we need to get Canada Province for tax
		if (document.getElementById("s_state")) {
			var canada_province = document.getElementById("s_state").value;
			more += "&canada_province="+canada_province;
		}
		var url = "filebin/xml/ship_option_xml.php?"+more;
		var xml = new JKL.ParseXML(url);
		var data = xml.parse();
		if (data) {
			if (data["ship_options"]) {
				if (document.getElementById("shipping_checkout_div")) document.getElementById("shipping_checkout_div").innerHTML = data["ship_options"];
				sendRequest_ship(zip+"&canada_province="+canada_province, "", 'small_cart');
			}
		}		
		//sendRequest_ship(zip, "", 'small_cart');
		//let's check state
		check_state_zip(zip);
		document.getElementById("s_phone_0").focus();
	}
}
function select_state_checkout(obj) {
	//get country code through attribute country
	if (obj.options[obj.selectedIndex].getAttribute("country")) country_code = obj.options[obj.selectedIndex].getAttribute("country");
	else country_code = "";
	if (document.getElementById("s_zip")) {
		var s_zip = document.getElementById("s_zip");
		//alert(country_code+" "+s_zip.value.length);
		if ((s_zip.value.length == 5 || s_zip.value.replace(/\s+/g,'').length == 6) && country_code != "") {
			//Validate
			if (s_zip.value.length == 5 && country_code == "CA") alert("State/Province doesn't match zip/postal code");
			if (s_zip.value.replace(/\s+/g,'').length == 6 && country_code == "US") alert("State/Province doesn't match zip/postal code");
			//If canada province selected and postal code is not empty
			if (s_zip.value.replace(/\s+/g,'').length == 6 && country_code == "CA") {
				var more = "zip="+s_zip.value.replace(/\s+/g,'');
				//we need to get Canada Province for tax
				//if (document.getElementById("s_state")) {
				var canada_province = document.getElementById("s_state").value;
				more += "&canada_province="+canada_province;
				//}
				var url = "filebin/xml/ship_option_xml.php?"+more;
				var xml = new JKL.ParseXML(url);
				var data = xml.parse();
				if (data) {
					if (data["ship_options"]) {
						if (document.getElementById("shipping_checkout_div")) document.getElementById("shipping_checkout_div").innerHTML = data["ship_options"];
						sendRequest_ship(s_zip.value.replace(/\s+/g,'')+"&canada_province="+canada_province, "", 'small_cart');
					}
				}
			}
		}
	}
	//alert(country_code);
	//change country based on country_code
	
}
function check_state_zip(zip) {
	if (country_code != "") {
		if (zip.length == 5 && country_code == "CA") alert("State/Province doesn't match zip/postal code");
		if (zip.replace(/\s+/g,'').length == 6 && country_code == "US") alert("State/Province doesn't match zip/postal code");
	}
}
function select_country_checkout(obj) {
		
}
function set_country_code() {
	if (document.getElementById("s_state")) {
		obj = document.getElementById("s_state");
		if (obj.options[obj.selectedIndex].getAttribute("country")) country_code = obj.options[obj.selectedIndex].getAttribute("country");
		else country_code = "";
	}
	else {
		country_code = "";
	}
}
addOnloadEvent(set_country_code);
