function getCountryData(countryCode, url, updateHTML, selectedRegionCode, useRegionAll)
{
  if (countryCode)
  {
  	data = 'country=' + escape(countryCode);
  	if (selectedRegionCode)
  	{
  		data = data + '&selectedRegion='+ selectedRegionCode;
  	}
  	if (useRegionAll)
  	{
  		data = data + '&useRegionAll=true';
  	}
  	
	$.ajax({
		url: url,
		data: data,
		dataType: 'json',
		error: function(response, status, error) {
					window.alert("Unable to get country region. If this continues, contact support.");				
		},
		success: function(json) {
		  // Update the region select drop down.
		  var regionHTML = json.regionHTML;
		  var regions = updateHTML.regions;
          for(var i=0; i < regions.length; i++)
          {
		    var result = regionHTML.replace('%ID%', regions[i].id);
		    result = result.replace('%NAME%', regions[i].name);
		    if (regions[i].onchange)
		    {
			    result = result.replace('%ONCHANGE%', regions[i].onchange);
			}
			else
			{
			    result = result.replace('%ONCHANGE%', '');			
			}

		    if (regions[i].styleClass)
		    {
			    result = result.replace('%STYLECLASS%', regions[i].styleClass);
			}
			else
			{
			    result = result.replace('%STYLECLASS%', '');			
			}
						
			if (regions[i].disabled)
			{
				result = result.replace("%DISABLED%", "disabled=\"disabled\"");
			}
			else
			{
				result = result.replace("%DISABLED%", "");
			}
			
	  	    document.getElementById(regions[i].divId).innerHTML = result;
          }
          
          // Update the phone hint.
          var ph = json.phoneHint;
   		  var phoneHints = updateHTML.phoneHints;
          if (phoneHints)
          {
          	for(var i=0; i<phoneHints.length; i++)
          	{
          		if (ph && jQuery.trim(ph) != '')
          		{
          			// This method expect a span tag inside the element that contains the phone hint
				  	$('#' + phoneHints[i] + ' span').text(ph);
				  	$('#' + phoneHints[i]).show();
          		}
          		else
          		{
				  	$('#' + phoneHints[i]).hide();          		
          		}
          	}
          }
          
          // Update the postal code hint.
          var postHint = json.postalCodeHint;
   		  var postalHints = updateHTML.postalHints;
          if (postalHints)
          {
          	for(var i=0; i<postalHints.length; i++)
          	{
          		if (postHint && jQuery.trim(postHint) != '')
          		{
          			// This method expect a span tag inside the element that contains the phone hint
				  	$('#' + postalHints[i] + ' span').text(postHint);
				  	$('#' + postalHints[i]).show();
          		}
          		else
          		{
				  	$('#' + postalHints[i]).hide();          		
          		}
          	}
          }
		}
	});
  }
}