var CountrySelected = null;
var StateSelected = Array();

function GetCountryStates( cCountry, cStates ) {

 var oCountry = document.getElementById(cCountry);
 var oStates = document.getElementById(cStates);
 var divStates = document.getElementById('div'+ cStates);
 var altStates = document.getElementById('alt'+ cStates);
 
 var i,j, is = false, specialCountry=true;
 var country = oCountry.value;
 var state   = Array();

 for( i=0; i < oStates.options.length; i++)
   if(oStates.options[i].selected)
     state[state.length] = i;

 for( i=0; i<StateSelected.length; i++ )
   if( StateSelected[i][0] == CountrySelected ) {
     StateSelected[i][1] = state; is=true; break;  }

 if( !is )
   StateSelected[StateSelected.length] =
     Array( CountrySelected==null ? country : CountrySelected, state );
// if(CountrySelected == null) CountrySelected = country;
 if(CountrySelected == country) return;
 CountrySelected = country;

 if( divStates != null ) divStates.style.display = 'none';
 if( altStates != null ) altStates.style.display = 'none';

 oStates.options.length = 0;

 if(oCountry.value=='') oCountry.value = 'U.S.';

 if(oCountry.value=='U.S.') { 
   oStates.options[0] = new Option('Select One', '');
   oStates.options[1] = new Option('Alabama', '3');
   oStates.options[2] = new Option('Alaska', '55');
   oStates.options[3] = new Option('Arizona', '22');
   oStates.options[4] = new Option('Arkansas', '46');
   oStates.options[5] = new Option('California', '2');
   oStates.options[6] = new Option('Colorado', '23');
   oStates.options[7] = new Option('Connecticut', '14');
   oStates.options[8] = new Option('Delaware', '24');
   oStates.options[9] = new Option('Florida', '12');
   oStates.options[10] = new Option('Georgia', '25');
   oStates.options[11] = new Option('Hawaii', '26');
   oStates.options[12] = new Option('Idaho', '49');
   oStates.options[13] = new Option('Illinois', '4');
   oStates.options[14] = new Option('Indiana', '28');
   oStates.options[15] = new Option('Iowa', '27');
   oStates.options[16] = new Option('Kansas', '29');
   oStates.options[17] = new Option('Kentucky', '30');
   oStates.options[18] = new Option('Louisiana', '31');
   oStates.options[19] = new Option('Maine', '51');
   oStates.options[20] = new Option('Maryland', '17');
   oStates.options[21] = new Option('Massachusetts', '21');
   oStates.options[22] = new Option('Michigan', '32');
   oStates.options[23] = new Option('Minnesota', '33');
   oStates.options[24] = new Option('Mississippi', '35');
   oStates.options[25] = new Option('Missouri', '34');
   oStates.options[26] = new Option('Montana', '8');
   oStates.options[27] = new Option('Nebraska', '38');
   oStates.options[28] = new Option('Nevada', '40');
   oStates.options[29] = new Option('New Hampshire', '48');
   oStates.options[30] = new Option('New Jersey', '15');
   oStates.options[31] = new Option('New Mexico', '39');
   oStates.options[32] = new Option('New York', '5');
   oStates.options[33] = new Option('North Carolina', '36');
   oStates.options[34] = new Option('North Dakota', '37');
   oStates.options[35] = new Option('Ohio', '19');
   oStates.options[36] = new Option('Oklahoma', '53');
   oStates.options[37] = new Option('Oregon', '41');
   oStates.options[38] = new Option('Pennsylvania', '20');
   oStates.options[39] = new Option('Rhode Island', '50');
   oStates.options[40] = new Option('South Carolina', '47');
   oStates.options[41] = new Option('South Dakota', '11');
   oStates.options[42] = new Option('Tennessee', '42');
   oStates.options[43] = new Option('Texas', '13');
   oStates.options[44] = new Option('Utah', '54');
   oStates.options[45] = new Option('Vermont', '52');
   oStates.options[46] = new Option('Virginia', '18');
   oStates.options[47] = new Option('Washington', '43');
   oStates.options[48] = new Option('Washington D.C.', '16');
   oStates.options[49] = new Option('West Virginia', '45');
   oStates.options[50] = new Option('Wisconsin', '44');
   oStates.options[51] = new Option('Wyoming', '56');  
 }
 else if (oCountry.value=='Canada') {
   oStates.options[0] = new Option('Select One', '');
   oStates.options[1] = new Option('Alberta', '57');
   oStates.options[2] = new Option('British Columbia', '58');
   oStates.options[3] = new Option('Manitoba', '59');
   oStates.options[4] = new Option('New Brunswick', '60');
   oStates.options[5] = new Option('Newfoundland/Labrador', '61');
   oStates.options[6] = new Option('Northwest Territory', '62');
   oStates.options[7] = new Option('Nova Scotia', '63');
   oStates.options[8] = new Option('Nunavut Territory', '64');
   oStates.options[9] = new Option('Ontario', '65');
   oStates.options[10] = new Option('Prince Edward Island', '66');
   oStates.options[11] = new Option('Quebec', '67');
   oStates.options[12] = new Option('Saskatchewan', '68');
   oStates.options[13] = new Option('Yukon Territory', '69');
 }
 else {
   specialCountry = false;
   oStates.options[0] = new Option('International', '7');
 }

 if( specialCountry ) {
   if( divStates != null ) divStates.style.display = '';

   for( i=0; i<StateSelected.length; i++ )
     if( StateSelected[i][0] == CountrySelected ) {
       for( j=0; j < StateSelected[i][1].length; j++)
         if( StateSelected[i][1][j] < oStates.options.length ) {
           oStates.options[StateSelected[i][1][j]].selected = true;
           if( j==0 ) oStates.selectedIndex = StateSelected[i][1][j]; }
       break;  }}

 else {
   if( altStates != null ) altStates.style.display = '';

   oStates.options[0].selected = true;
   oStates.selectedIndex = 0;  }

}