
var shipTypeListId;
var countrySelected;

function SetStateVisibility (countries, statesId, stateId)
{		
	if (countries.selectedIndex != -1)
		countrySelected = countries.options[countries.selectedIndex].value;		

	var usSelected = countrySelected == 'US';
	var states = document.getElementById (statesId);
	if (states != null)
		states.style.display = (usSelected) ? '' : 'none';
		
	var state = document.getElementById (stateId);
	if (state != null)	
	{			
		state.style.display = (usSelected) ? 'none' : '';		
		state.value = '';
	}		
}

function OnCountryChange (countries, statesId, stateId, zipcodesId, zipcodeId, shippingTypeId)
{		
	shipTypeListId = shippingTypeId;
	if (countries.selectedIndex != -1)
	{
		countrySelected = countries.options[countries.selectedIndex].value;		
		if (countrySelected.length > 0)
			ChangeCountry ();
	}

	var usSelected = countrySelected == 'US';
	var states = document.getElementById (statesId);
	if (states != null)
		states.style.display = (usSelected) ? '' : 'none';
		
	var state = document.getElementById (stateId);
	if (state != null)	
	{			
		state.style.display = (usSelected) ? 'none' : '';		
		state.value = '';
	}	
	
	var zipcodes = document.getElementById (zipcodesId);
	if (zipcodes != null)
	{
		zipcodes.style.display = (usSelected && zipcodes.options.length > 0) ? '' : 'none';
		
		var zipcode = document.getElementById (zipcodeId);
		if (zipcode != null)	
		{	
			zipcode.style.display = (usSelected && zipcodes.options.length > 0) ? 'none' : '';
			if (zipcodes.options.length > 0 && zipcodes.selectedIndex != -1)
				zipcode.value = zipcodes.options[zipcodes.selectedIndex].text;
		}		
	}					
}

function ChangeCountry_CallBack (response)
{
	try
	{
		if (response.error != null)
		{
			alert (response.error); 
			return;
		}
		
		var countryChanged = response.value;
		if (countryChanged != null && typeof (countryChanged) == 'boolean')
		{
			var o = document.getElementById ('lbCurrencyChanged');
			if (o != null)
				o.style.display = (countryChanged) ? '' : 'none';
		}				
		
		if (shipTypeListId != null && shipTypeListId.length > 0)
			LoadShippingCost ();			
	}
	catch (e)
	{
		alert (e);
	}			
}

function ChangeCountry ()
{
	try
	{	
		if (countrySelected != null && countrySelected.length > 0)		
			AjaxAddressMethods.ChangeCountry (countrySelected, ChangeCountry_CallBack);
	}
	catch (e)
	{		
		alert (e);
	}
}

function LoadShippingCost_CallBack (response)
{
	try
	{
		if (response.error != null)
		{
			alert (response.error); 
			return;
		}
		
		var shiptypes = response.value;
		if (shiptypes == null || typeof (shiptypes) != 'object')
			return;
		
		var shippingtypes = document.getElementById (shipTypeListId);
		if (shippingtypes != null)
		{	
			var selected;
			if (shippingtypes.selectedIndex >= 0)
				selected = shippingtypes.options[shippingtypes.selectedIndex].value;

			shippingtypes.options.length = shiptypes.length;			
			for (var i=0; i < shiptypes.length && i < shippingtypes.options.length; i++)
			{
				var opt = shiptypes[i];
				shippingtypes.options[i] = new Option (opt[1], opt[0]);
								
				if (opt[0] == selected)
					shippingtypes.selectedIndex = i;
			}
		}
	}
	catch (e)
	{
		alert (e);
	}
}	

function LoadShippingCost ()
{			
	try
	{	
		if (countrySelected != null && countrySelected.length > 0)		
			AjaxAddressMethods.GetShippingCost (countrySelected, LoadShippingCost_CallBack);
	}
	catch (e)
	{		
		alert (e);
	}
}