// if form has state pull down, set the country dynamically
var us_states = [ "AL","AP","AE","AA","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL",
	      		  "IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV",
	      		  "NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX",
	      		  "UT","VT","VA","WA","WI","WV", "WI","WY" ];      

// candian : 16 st/prov                  
var ca_prov = ["AB","BC","LB","MB","NB","NF","NWT","NS","NU","ON","PI","PQ","PE","SK","YT"];
// australia : 8 st/prov
var aus_sp = ["ACI","NSW","NT","QLD","SA","TAS","VIC","WAU"];

// argentina : 24 st/prov
var arg_sp = ["BA","CA","CF","CH","CO","CR","CU","ER","FO","JU","LP","LR","ME","MI","NE","RN","SC","SE","SF","SJ","SL","TF","TU"];
//var arg_sp = ["BA","CA","CF","CH","CO","CR","CU","ER","FO","JU","LP","LR","ME","MI","NE","RN","SA","SC","SE","SF","SJ","SL","TF","TU"];

// brazil : 24 st/prov
var bra_sp = ["AC","AM","BA","DF","CE","ES","FN","GO","MG","PB","PE","RJ","RN","RS","RO","RR","SP","SE","TO"];

// mexico : 32 st/prov
var mex_sp	= ["AGS","BCN","BCS","CAMP","CHIH","CHIS","COAH","COL","DF","DGO","GRO","GTO","HGO","JAL","MEX","MICH","MOR","NAY","NL","OAX","PUE","QRO","QROO","SIN","SLP","SON","TAB","TAM","TLAX","VER","YUC","ZAC"];

// MISCELLANOUS: US TERRITORIES .IF they are in state drop-down, set the country to US..
// American Samoa (AS)
// Guam (GU)
// Federated States of Micronesia (FM)
// Marshall Islands (MH)
// Northern Marianas Islands (MP)
// Palau (PW)
// Puerto Rico (PR)
// Virgin Islands (VI)
var misc = ["AS", "GU", "FM", "MH", "MP", "PW", "PR", "VI"];

function inArray( p_val, p_array ){
   if(p_val == null || p_array == null)
      return false;
   
   for( var i =0; i < p_array.length ; i++){
      if( p_array[i] == p_val ){
         return true;
	  }
   }
   return false;
}

function setCountryValue (ctry,val)
{
    if(ctry == null)
			return;

	if(ctry.options != null) // country is a drop-down
	{
		for( var n =0; n < ctry.options.length ; n++)
			if( ctry.options[n].value == val )
			{
				ctry.selectedIndex = n;
				//debug('In commErr::setCountry(), set country ' + val + ' from State selected');//
				break;
			}
	}
	else // country is a text field
		ctry.value = val;
}

function setCountry( ctry, stateProv )
{
     if( stateProv == null || ctry == null)
	     return;
    
	  var state = stateProv.options[stateProv.selectedIndex].value;

		if(  inArray(state, us_states) || inArray(state, misc) ) //@
			setCountryValue(ctry,'US');
		else if (  inArray(state, ca_prov) )
			setCountryValue(ctry,'CA');  
		else if (  inArray(state, aus_sp) )
			setCountryValue(ctry,'AU');            
		//else if (  inArray(state, bra_sp) )
		//	setCountryValue(ctry,'BR');
		else if (  inArray(state, mex_sp) )
			setCountryValue(ctry,'MX');
		else
			setCountryValue(ctry,''); //@
}                      

function clearState(stateField){
   if(fm.country == null || fm.country.options == null || stateField == null)
      return;
   var cntry = fm.country.options[ fm.country.selectedIndex ].value ;
   if(cntry != 'US' || cntry != 'CA')
      stateField.selectedIndex = 0;
}

// if country is not US/CA , clear the stateProv field
function clearStateProv(ctry, stateField)
{
	if(ctry == null || ctry.options == null || stateField == null)
			return;

	var cntry = ctry.options[ ctry.selectedIndex ].value ;
	var state = stateField.options[stateField.selectedIndex].value;

	if(  cntry == 'US' && ( inArray(state, us_states) || inArray(state, misc) ) )
		return;
	else if (  cntry == 'CA' && inArray(state, ca_prov) )
		return;
	else if (  cntry == 'AU' && inArray(state, aus_sp) )
		return;
	//else if (  cntry == 'BR' && inArray(state, bra_sp) )
	//	return;
	else if (  cntry == 'MX' && inArray(state, mex_sp) )
		stateField.selectedIndex = 0;
	else
		stateField.selectedIndex = 0;	
}
