var esTimer;

function esEstimate(postalcode, weight){
	if(alltrim(postalcode) == ""){
		alert("Please enter a postal code.");
		esReset();
		return;
	}
	
	esTimer = setTimeout("esTimeout",5000);
	es_AJAX=GetXmlHttpObject();
	
	var url="/include/AJAX/estshipping.php";
	url=url+"?pc="+postalcode;
	url=url+"&wt="+weight;
	url=url+"&sid="+Math.random();
	es_AJAX.onreadystatechange=es_SC;
	es_AJAX.open("GET",url,true);
	es_AJAX.send(null);
}

function esEnter(e,wt){
	// Can't be done with shipping unless I know the weight
	var charCode = (e.which)? e.which : event.keyCode;
	
	if(charCode == 13){
		var ship_zip = document.getElementById('ShipZip');
		
		if(ship_zip.value){
			esEstimate(ship_zip.value,wt)
		}
	}
}


function es_SC(){
	var ship_zip = document.getElementById('ShipZip');
	var ship_costs = document.getElementById('ShipCosts');
	var ship_btn = document.getElementById('btnEstShipping');
	var ship_retrymsg = document.getElementById('shipRetrymsg');
	var ship_loadimg = document.getElementById('shipLoadImg');
	
	var p_Ship = document.getElementById('p_Ship');
	var p_Ship2 = document.getElementById('p_Ship2');
	
	switch (es_AJAX.readyState){
		case 4:
			clearTimeout(esTimer);
			var rates = eval('(' + es_AJAX.responseText + ')');
			var i = 0;
			ship_costs.options.length = i;
			
			if(typeof(rates) == 'object') {
				for(var carrier in rates) {
					for(var service in rates[carrier]){
						ship_costs.options[i] = new Option(rates[carrier][service]["Description"]+" - $"+rates[carrier][service]["Rate"],carrier+":"+service);
						i++;
					}
				}
			}
			
			ship_loadimg.style.display = "none";
			ship_retrymsg.style.display = "inline";
			ship_costs.style.display = "inline";
			
			p_Ship.style.display = "inline";
			p_Ship2.style.display = "inline";
		break;
		
		case 1:
			ship_btn.style.display = "none";
			ship_zip.style.display = "none";
			p_Ship.style.display = "none";
			p_Ship2.style.display = "none";
			
			ship_loadimg.style.display = "inline";
		break;
	}
}

function esShowSC(){
	var ship_zip = document.getElementById('ShipZip');
	var ship_costs = document.getElementById('ShipCosts');
	var ship_btn = document.getElementById('btnEstShipping');
	var ship_retrymsg = document.getElementById('shipRetrymsg');
	var ship_loadimg = document.getElementById('shipLoadImg');
	
	ship_btn.style.display = "none";
	ship_zip.style.display = "none";
	ship_loadimg.style.display = "none";
	ship_retrymsg.style.display = "inline";
	ship_costs.style.display = "inline";
}

function esReset(){
	var ship_zip = document.getElementById('ShipZip');
	var ship_costs = document.getElementById('ShipCosts');
	var ship_btn = document.getElementById('btnEstShipping');
	var ship_retrymsg = document.getElementById('shipRetrymsg');
	var ship_loadimg = document.getElementById('shipLoadImg');
	
	var p_Ship = document.getElementById('p_Ship');
	var p_Ship2 = document.getElementById('p_Ship2');
	var p_Checkout = document.getElementById('p_Checkout');
	
	
	if(qtyDirty != "undefined" && qtyDirty){
		ship_loadimg.style.display = "none";
		ship_costs.style.display = "none";
		ship_costs.options.length = 0;
		
		ship_retrymsg.style.display = "inline";
		ship_retrymsg.style.color = "#000000";
		
		ship_retrymsg.innerHTML = "Shipping rates are no longer valid.<br>Please click <a href='javascript:cDoClick(\"update\")'>Update</a> to refresh rates";
		return;
	}
	
	ship_btn.style.display = "inline";
	ship_zip.style.display = "inline";
	
	p_Ship.style.display = "inline";
	p_Ship2.style.display = "inline";
	
	ship_loadimg.style.display = "none";
	ship_retrymsg.style.display = "none";
	ship_costs.style.display = "none";
	
	p_Checkout.style.display = "none";
	
	ship_zip.select();
}

function esTimeout(){
	es_AJAX.abort();
	alert("Request timed out. Please retry.")
	esReset();
}
