
if (THC == undefined) 
{
		var THC = {}; 
} 

//see http://javascript.crockford.com/private.html for description of javascript
//public, private and privileged functions
THC.ShippingController = function () 
{ 	

//============================================================================
	//							CONSTRUCTOR 
	//============================================================================
	//			(must be declared after all functions to be used)
	var that = this;
	
	
	//============================================================================
	//							END CONSTRUCTOR
	//============================================================================
	//============================================================================
	//							PRIVATE FUNCTIONS 
    //============================================================================    	
	
	//============================================================================
	//							END PRIVATE FUNCTIONS 
    //============================================================================  	

	//============================================================================
	//							PRIVILEGED (PUBLIC) FUNCTIONS 
    //============================================================================	
    this.getShippingRates = function()
    {
     	var shippingZip = dojo.byId("shippingZip").value;
     	var shippingDiv = dojo.byId("shippingDiv");
     	var ajaxUrl = "getShippingRates.html?shippingZip="+shippingZip;
     	var state;
     	 if(dojo.byId("state"))
     	 {
     	   	state =  dojo.byId("state").value;
     	   	ajaxUrl += "&state="+state;
     	  }
     	var city;
     	 if(dojo.byId("city"))
     	 {
     	 	city = dojo.byId("city").value;
     	 	ajaxUrl += "&city="+city;
     	 }
     	var response;
     	if(shippingZip)
     	{
	     	shippingDiv.innerHTML ="";
	     	var request = dojo.xhrGet(
	 		{
	   	 		url:ajaxUrl,
			 	error: function(type, errObj)
			 	{ 
			 		alert("Error getting shipping rates");					
			 	},
			 	load: function(type, data, evt)
			 	{	
					response = eval(data.xhr.responseText);
			 	},
			 	sync: true,
			    mimetype: "text/plain"
			});
			if(response.error)
			{
			  shippingDiv.innerHTML = "<span class='star'>"+response.error+"</span>";
			}
			else if(response.rates)
			{
				var rateString = "";
				if(shippingDiv)
				{	
					for (rate in response.rates)
					{						
						rateString += response.rates[rate].serviceDescription + " - $" + response.rates[rate].cost +"<br/>";
					}
					shippingDiv.innerHTML = rateString;
				}
			}
		}
    };
    
    //============================================================================
	//							END PRIVILEGED (PUBLIC) FUNCTIONS 
    //============================================================================	
    
	
};

//============================================================================
//							PUBLIC FUNCTIONS 
//============================================================================	
//The prototype mechanism is used for inheritance. It also conserves memory
//as all objects use one definition of the function.
THC.ShippingController.prototype =
{	

};
//============================================================================
//							END PUBLIC FUNCTIONS 
//============================================================================	