jQuery(document).ready(function(){
	jQuery("form#taxCalculatorForm input#calculate").click(function() {
		var link      = urlPrefix + "://" + domain + "/store/remote/tax.cfm/mode/calculateTaxes";
		var params    = "json=1"
		var zipCode   = jQuery("form#taxCalculatorForm input#zipCode").val();
		var serviceId = jQuery("form#taxCalculatorForm #serviceId").val();

		if(zipCode == "") {
			alert("Please enter your zip code.");
			return false;
		}

		if(serviceId == "") {
			alert("Please select a shipping service.");
			return false;
		}

		jQuery(this).attr("disabled",true).css("cursor","default").animate({opacity:0.4},"fast");

		params = params + "&zipCode=" + zipCode + "&serviceId=" + serviceId;

		jQuery("div#calcResultLayer").hide();
		jQuery("div#calcLoadingLayer").show();

		jQuery.post(link, params, function(json){
			if(json.recordcount == 1) {
				var result        = json.data.result[0];
				var definition    = json.data.definition[0];
				var cartTotal     = json.data.carttotal[0];
				var cartPounds    = json.data.cartpounds[0];
				var cartOunces    = json.data.cartounces[0];
				var taxRate       = json.data.taxrate[0];
				var taxTotal      = json.data.taxtotal[0];
				var shippingTotal = json.data.shippingtotal[0];
				var handlingTotal = json.data.handlingtotal[0];
				var grandTotal    = json.data.grandtotal[0];

				if(result == 1) {
					// Update any spans.
					if(handlingTotal > 0) {
						jQuery("span#handlingTotal").html("$" + handlingTotal.toFixed(2));
						jQuery("div#handlingDiv").show();
					} else {
						jQuery("div#handlingDiv").hide();
					}

					jQuery("span#cartTotal").html("$" + cartTotal.toFixed(2));
					jQuery("span#cartPounds").html(cartPounds.toFixed(1));
					jQuery("span#cartOunces").html(cartOunces.toFixed(1));
					jQuery("span#taxRate").html(taxRate + "%");
					jQuery("span#taxTotal").html("$" + taxTotal.toFixed(2));
					jQuery("span#shippingTotal").html("$" + shippingTotal.toFixed(2));
					jQuery("span#grandTotal").html("$" + grandTotal.toFixed(2));

					jQuery("div#calcResultLayer").show();
				} else {
					alert(definition);
				}
			} else {
				alert("There was an error. If this occurs frequently, please contact the site administrator.");
			}
	
			jQuery("form#taxCalculatorForm input#calculate").attr("disabled",false).css("cursor","pointer").animate({opacity:1},"fast");

			jQuery("div#calcLoadingLayer").hide();
		}, "json");
	});

	jQuery("form#taxCalculatorForm input#zipCode").keyup(function(e){
		var doContinue = true;
		var keyCode    = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;

		if(keyCode == 13) {
			jQuery("form#taxCalculatorForm input#calculate").click();
			doContinue = false;
		}

		return doContinue;
	});
});