// ---- Below is generic code that can be reused on all AJAX projects
// Create a new XMLHttpRequest object to talk to the Web server
function setXmlHttpObject(handler) { 
		var objXmlHttp = null; 
		//Depending on the browser, try to create the xmlHttp object 
		try {
			objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			objXmlHttp.onreadystatechange = handler;
		} catch (e) {
			try {
				objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				objXmlHttp.onreadystatechange = handler;
			} catch (e2) {
				objXmlHttp = false;
			}
		}	
		if (!objXmlHttp && typeof XMLHttpRequest != 'undefined') {
			objXmlHttp = new XMLHttpRequest();
			if (objXmlHttp.overrideMimeType) {
				objXmlHttp.overrideMimeType('text/xml');
			}
			objXmlHttp.onreadystatechange = handler;
		}
		//Return the instantiated object 
		return objXmlHttp; 
}



// XMLHttp send POST request 
function xmlHttpSend(xmlHttp, url) {
	if (navigator.appName.indexOf('Microsoft')!=-1){
		xmlHttp.open('POST', url, true);
	}
	else {
		xmlHttp.open('GET', url, true);
	}
	xmlHttp.send(null); 
}
// ---- End generic code

// ---- NWB specific functions - used to get shipping info from UPS

// runs when shipping method changed or 'verify' button clicked
function getShipping() {
	var shipping_service_id = document.getElementById("shipping_service_id").value;
	var url = "/store/trans/trans_shopping_cart.cfm?shipping_service_id=" + escape(shipping_service_id) + "&cart_action=cart_ship_rate";
	if (document.getElementById("zip").value !== null && document.getElementById("zip").value !== undefined){
		if (document.getElementById("zip").value == '' || document.getElementById("zip").value.length > 5 || isNaN(document.getElementById("zip").value)){
			alert("Please enter a valid US zip code");
			return false;
		}
		else {
			document.getElementById("verifying_msg").style.display = '';
			var zip = document.getElementById("zip").value;
			var url = url + "&zip=" + escape(zip);
			//Create the xmlHttp object to use in request & specify function to run when data received back
			xmlHttp = setXmlHttpObject(updatePage);
			xmlHttpSend(xmlHttp, url);
		}
	}
}


// runs when radio button clicked to choose USA vs. Intl
function setShipCalcCtry(radioBtn) {
	var zip = document.getElementById("zip").value;
	var shipping_service_id = document.getElementById("shipping_service_id").value;	
	var ctry = radioBtn.value;		
	var cart_action = 'cart_ship_rate';
	var url = "/store/trans/trans_shopping_cart.cfm?shipping_service_id=" + escape(shipping_service_id) + "&cart_action=" + escape(cart_action) + "&zip=" + escape(zip) + "&ctry=" + escape(ctry);
	xmlHttp = setXmlHttpObject(updatePage);
	xmlHttpSend(xmlHttp, url);

}