

var countryArray = new Array("9999|---POPULAR CHOICES---","US|United States","CA|Canada","AU|Australia","GB|United Kingdom","FR|France","NL|Netherlands","IT|Italy","8888|---ALPHABETICAL LIST ---","AF|Afghanistan","AL|Albania","DZ|Algeria","AS|American Samoa","AD|Andorra","AO|Angola","AI|Anguilla","AQ|Antarctica","AG|Antigua and Barbuda","AR|Argentina","AM|Armenia","AW|Aruba","AU|Australia","AT|Austria","AZ|Azerbaijan","BS|Bahamas","BH|Bahrain","BD|Bangladesh","BB|Barbados","BY|Belarus","BE|Belgium","BZ|Belize","BJ|Benin","BM|Bermuda","BT|Bhutan","BO|Bolivia","BW|Botswana","BV|Bouvet Island","BA|Boznia and Herzegovina","BR|Brazil","IO|British Indian Ocean Territory","BN|Brunei Darussalam","BG|Bulgaria","BF|Burkina Faso","BI|Burundi","KH|Cambodia","CM|Cameroon","CA|Canada","CV|Cape Verde","KY|Cayman Islands","CF|Central African Republic","TD|Chad","CL|Chile","CN|China","CX|Christmas Island","CC|Cocos (Keeling) Islands","CO|Colombia","KM|Comoros","CG|Congo","CD|Congo, The Democratic Republic of The","CK|Cook Islands","CR|Costa Rica","HR|Croatia","CU|Cuba","CY|Cyprus","CZ|Czech Republic","CI|Côte D'Ivoire","DK|Denmark","DJ|Djibouti","DM|Dominica","DO|Dominican Republic","TP|East Timor","EC|Ecuador","EG|Egypt","SV|El Salvador","GQ|Equatorial Guinea","ER|Eritrea","EE|Estonia","ET|Ethiopia","FK|Falkland Islands (Malvinas)","FO|Faroe Islands","FJ|Fiji","FI|Finland","FR|France","GF|French Guiana","PF|French Polynesia","TF|French Southern Territories","GA|Gabon","GM|Gambia","GE|Georgia","DE|Germany","GH|Ghana","GI|Gibraltar","GR|Greece","GL|Greenland","GD|Grenada","GP|Guadeloupe","GU|Guam","GT|Guatemala","GN|Guinea","GW|Guinea-Bissau","GY|Guyana","HT|Haiti","HM|Heard Island and McDonald Islands","VA|Holy See (Vatican City State)","HN|Honduras","HK|Hong Kong","HU|Hungary","IS|Iceland","IN|India","ID|Indonesia","IR|Iran, Islamic Republic of","IQ|Iraq","IE|Ireland","IL|Israel","IT|Italy","JM|Jamaica","JP|Japan","JO|Jordan","KZ|Kazakstan","KE|Kenya","KI|Kiribati","KP|Korea, Democratic People's Republic","KR|Korea, Republic of","KW|Kuwait","KG|Kyrgyzstan","LA|Lao People's Democratic Republic","LV|Latvia","LB|Lebanon","LS|Lesotho","LR|Liberia","LY|Libyan Arab Jamahiriya","LI|Liechtenstein","LT|Lithuania","LU|Luxembourg","MO|Macau","MK|Macedonia","MG|Madagascar","MW|Malawi","MY|Malaysia","MV|Maldives","ML|Mali","MT|Malta","MH|Marshall Islands","MQ|Martinique","MR|Mauritania","MU|Mauritius","YT|Mayotte","MX|Mexico","FM|Micronesia, Federated States of","MD|Moldova, Republic of","MC|Monaco","MN|Mongolia","MS|Montserrat","MA|Morocco","MZ|Mozambique","MM|Myanmar","NA|Namibia","NR|Nauru","NP|Nepal","NL|Netherlands","AN|Netherlands Antilles","NC|New Caledonia","NZ|New Zealand","NI|Nicaragua","NE|Niger","NG|Nigeria","NU|Niue","NF|Norfolk Island","MP|Northern Mariana Islands","NO|Norway","OM|Oman","PK|Pakistan","PW|Palau","PS|Palestinian Territory, Occupied","PA|Panama","PG|Papua New Guinea","PY|Paraguay","PE|Peru","PH|Philippines","PN|Pitcairn","PL|Poland","PT|Portugal","PR|Puerto Rico","QA|Qatar","RO|Romania","RU|Russian Federation","RW|Rwanda","RE|Réunion","SH|Saint Helena","KN|Saint Kitts and Nevis","LC|Saint Lucia","PM|Saint Pierre and Miquelon","VC|Saint Vincent and The Grenadines","WS|Samoa","SM|San Marino","ST|Sao Tome and Principe","SA|Saudi Arabia","SN|Senegal","SC|Seychelles","SL|Sierra Leone","SG|Singapore","SK|Slovakia","SI|Slovenia","SB|Solomon Islands","SO|Somalia","ZA|South Africa","GS|South Georgia and The South Sandwhich Islands","ES|Spain","LK|Sri Lanka","SD|Sudan","SR|Suriname","SJ|Svalbard and Jan Mayen","SZ|Swaziland","SE|Sweden","CH|Switzerland","SY|Syrian Arab Republic","TW|Taiwan, Province of China","TJ|Tajikistan","TZ|Tanzania, United Republic of","TH|Thailand","TG|Togo","TK|Tokelau","TO|Tonga","TT|Trinidad and Tobago","TN|Tunisia","TR|Turkey","TM|Turkmenistan","TC|Turks and Caicos Islands","TV|Tuvalu","UG|Uganda","UA|Ukraine","AE|United Arab Emirates","GB|United Kingdom","US|United States","UM|United States Minor Outlying Islands","UY|Uruguay","UZ|Uzbekistan","VU|Vanuatu","VE|Venezuela","VN|Viet Nam","VG|Virgin Islands, British","VI|Virgin Islands, U.S.","WF|Wallis and Futuna","EH|Western Sahara","YE|Yemen","YU|Yugoslavia","ZM|Zambia","ZW|Zimbabwe");





  function addCountryList(myselect) {

    var codeArray, x;

    for( x=0; x < countryArray.length; x++ ) {

	  codeArray = countryArray[x].split("|");

	  var new_option = document.createElement("OPTION");

	  new_option.value = codeArray[0];

	  new_option.text = codeArray[1];

      //myselect.add(new_option);

	  myselect.options[x+1] = new_option;

	}

  }

  

  function addCountryListSelected(couSelect, couValue, staSelect, staValue) {

    var codeArray, x;

	couSelect.length = 0;

	var new_option = document.createElement("OPTION");

  new_option.value = "";

	new_option.text = "Country";	  

	//couSelect.add(new_option);

	couSelect.options[0] = new_option;

	

    for( x=0; x < countryArray.length; x++ ) {

	  codeArray = countryArray[x].split("|");

	  var new_option = document.createElement("OPTION");

      new_option.value = codeArray[0];

	  new_option.text = codeArray[1];

      //couSelect.add(new_option);

	  couSelect.options[x+1] = new_option;



	  if( codeArray[0] == couValue ) {

	    new_option.selected = true;

		populateRegion(staSelect, couValue, staValue, false);

	  }

	}

  }

  function addCountryListSelected1(couSelect, couValue, staSelect, staValue) {

    var codeArray, x;

	couSelect.length = 0;

	var new_option = document.createElement("OPTION");

  new_option.value = "Whole World";

	new_option.text = "Whole World";	  

	//couSelect.add(new_option);

	couSelect.options[0] = new_option;

	

    for( x=0; x < countryArray.length; x++ ) {

	  codeArray = countryArray[x].split("|");

	  var new_option = document.createElement("OPTION");

      new_option.value = codeArray[0];

	  new_option.text = codeArray[1];

      //couSelect.add(new_option);

	  couSelect.options[x+1] = new_option;



	  if( codeArray[0] == couValue ) {

	    new_option.selected = true;

		populateRegion(staSelect, couValue, staValue, false);

	  }

	}

  }



var zipLength = 0;

var zipLengthShipping = 0;



function initializeRegions( selectedRegion ) {

	if( document.account.country.options[document.account.country.selectedIndex].value != '--NULL--' ) {

		populateRegion(document.account.state_or_province,document.account.country.options[document.account.country.selectedIndex].value,selectedRegion,false);

	}

}



function populateRegion(optionField,selected,selectedRegion,shipping) {



    var selectedArray = new Array( new Array("-", "--------") );

	if (selected == '') {

        selectedArray = XX_Array;

    } else {

        selectedArray = eval(selected + "_Array");

    }

    while (selectedArray.length < optionField.options.length+1) {

        optionField.options[(optionField.options.length - 1)] = null;

    }

    var selectedIx=0;

    for (var i=0; i < selectedArray.length; i++) {

        if( i==selectedArray.length-1 ) {

            if( shipping ) {

                zipLengthShipping = selectedArray[i];

            } else {

                zipLength = selectedArray[i];

            }

        } else {

            var option = new Option(selectedArray[i][1], selectedArray[i][0]);

            if( option.value == selectedRegion ) {

                selectedIx = i;

            }

            eval("optionField.options[i]=option");

            optionField.options[selectedIx].selected=true;

        }

    }

    if (optionField.options[0].value == '') {

        optionField.options[0]= null;

        //if ( navigator.appName == 'Netscape') {

        //    if (parseInt(navigator.appVersion) < 4) {

        //    window.history.go(0);

        //    }else {

        //        if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {

        //            window.history.go(0);

        //        }

        //    }

        //}

    }

}



function verifyZipCode( zipCode, country, shipping ) {



	var mask_CA = "ANA NAN";

	var mask_US = "NNNNN";

	var mask_US2 = "NNNNN-NNNN";

	var mask_SE = "NNN NN";

	var mask_PL = "NN-NNN"

	var mask_NL = "NNNN AA";



	var zipCodeLength = zipLength;



	if( shipping ) {

		zipCodeLength = zipLengthShipping;

	}



	if( zipCodeLength==0 ) {

		return true;

	} else {

		// check the length for all but SPECIAL zip codes

		if( zipCodeLength >= 0 && zipCodeLength != zipCode.length ) {

			window.alert( "The postal code is not the right length" );

			return false;

		}

		// check the special zip codes now

		if( country == "CA" ) {

			if( !checkMask( zipCode, mask_CA ) ) {

				window.alert( "Canadian postal codes are of the following format: ANA NAN - where A is a letter and N is a number" );

				return false;

			}

		}

		if( country == "US" ) {

			if( !checkMask( zipCode, mask_US ) && !checkMask( zipCode, mask_US2 ) ) {

				window.alert( "US postal codes are of the following format: ##### or #####-####" );

				return false;

			}

		}

		if( country == "SE" ) {

			if( !checkMask( zipCode, mask_SE ) ) {

				window.alert( "Sweedish postal codes are of the following format: ### ##" );

				return false;

			}

		}

		if( country == "PL" ) {

			if( !checkMask( zipCode, mask_PL ) ) {

				window.alert( "Polish postal codes are of the following format: ##-###" );

				return false;

			}

		}

		if( country == "NL" ) {

			if( !checkMask( zipCode, mask_NL ) ) {

				window.alert( "Dutch postal codes are of the following format: NNNN AA - where A is a letter and N is a number" );

				return false;

			}

		}

		return true;

	}

}



function checkMask( inStr, mask ) {

	if( inStr.length != mask.length ) {

		return false;

	}



	var letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

	var numbers = "0123456789";



	for (var i=0; i < inStr.length; i++ ) {

		var chr = inStr.charAt(i);

		var msk = mask.charAt(i);

		if( msk=='A' ) {

			if (letters.indexOf(chr) == -1 ) {

          	return false;

  			}

		}

		if( msk=='N' ) {

			if (numbers.indexOf(chr) == -1 ) {

          	return false;

  			}

		}

		if( msk==' ' ) {

			if( chr != ' ' ) {

				return false;

			}

		}

		if( msk=='-' ) {

			if( chr != '-' ) {

				return false;

			}

		}

	}

	return true;

}


