/******************* File Comments **************************
Filename:		cscombo.js
Description:	This file populates comboboxes with all
	known countries (as of 03/26/2003).  When the user
	selects a country the state combobox will be populated
	with the states associated with the country selected.
Compatibility:
	MSIE 4, 5, 6
	Netscape 4.7, 6, 7
	WebTV
	Opera	
Usage:		I generally have this command executed just before
	the closing < / body > tag.  Also in the onChange event
	of the Country combobox.
Warnings:	There is a bug in IE that requires the focus to 
	be shifted any other control on the form or the defaults
	will be off by one.  There is a fix within the code however 
	if causes focus to be sent to either the country or state
	combobox.  Quick fix would be to add a *.focus();
	event to fire to a textbox on the form.

Example 1:
	...page...
	< SCRIPT >
		FillCountry(document.form1.Country, document.form1.State, 'USA');
		FillState(document.form1.Country, document.form1.State, 'Florida');
		document.form1.Title.focus();
	< / SCRIPT >
	< / body >
	< / html >
	...end...
Example 2:
	 onChange="FillState(document.form1.Country, document.form1.State, 'Florida')"

This file was created by Brian Reeves  (ketapillar'ayat'hotmail.com)
Open Source feel free to take.  I do appreciate feedback as
well.  BTW vote at www.planet-source-code.com thanks.

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified so that the whole contents work by passing the
	comboboxes to the function.  Also changed the coding so
	that it resides in a script include.  No longer requires
	minimal ASP.
*************************************************************/

/******************* FillCountry() Comments *****************
This function needs to be called first to populate the country
combobox.  

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified to allow the passing of combo's instead of hard
	coding them.  Also created the default capabilities of
	passing a default country to be selected.

Example:  FillCountry(NameOfCountryCombo, NameOfStateCombo, DefaultCountry)
*************************************************************/
function FillCountry(cboCountry, cboState, sDefaultCountry){
	var sDefaultCountry, sDefault, sCountry, vCountry
		
	cboCountry.options.length=0
	for(i=0;i<sCountryString.split("|").length;i++){
		sCountry = sCountryString.split("|")[i];
		vCountry = vCountryString.split("|")[i];
		
		if (sDefaultCountry == sCountry) {
			sDefault=true;
			if (navigator.appName=="Microsoft Internet Explorer"){cboState.focus();}
		}
		else {sDefault=false;}
		
		if (sDefault) {cboCountry.options[i]=new Option(sCountry,vCountry,sDefault,sDefault);}
		else {cboCountry.options[i]=new Option(sCountry,vCountry);}
	}
}
if (navigator.appName=="Netscape"){
isNav=true
}

/******************* FillState() Comments *******************
This function needs to be called after the FillCountry() to
populate the State combobox.  Also from the onChange of the
country combobox.

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified to allow the passing of combo's instead of hard
	coding them.  Also created the default capabilities of
	passing a default country to be selected.

Example:  FillState(NameOfCountryCombo, NameOfStateCombo, DefaultState)
*************************************************************/

function FillState(cboCountry, cboState, sDefaultState){
	var sDefaultState, sState, vState, sDefault;
		
	cboState.options.length=0;
	for(i=0;i<sStateArray[cboCountry.selectedIndex].split("|").length;i++){
		sState = sStateArray[cboCountry.selectedIndex].split("|")[i];
		vState = vStateArray[cboCountry.selectedIndex].split("|")[i];
		
		if(sDefaultState == sState) {
			sDefault=true;
			if (navigator.appName=="Microsoft Internet Explorer"){cboState.focus();}
		} 
		else {sDefault=false;}
		
		if(sDefault) {cboState.options[i]=new Option(sState,vState,sDefault,sDefault);}
		else {cboState.options[i]=new Option(sState,vState);}
	}
}

var sCountryString = "Please Select|United Kingdom|Australia";
var vCountryString = "|44|61";
		
var sStateArray = new Array();
var vStateArray = new Array();
sStateArray[0]="Please Select";
vStateArray[0]="";
sStateArray[1]="Please Select|Guernsey Telecoms GSM|Hutchinson 3G (3)|Jersey Telecom GSM|Manx Telecom Pronto GSM|O2 (Cellnet)|Orange|T-Mobile (One 2 One)|Virgin|Vodafone";
vStateArray[1]="|32F455|32F402|32F405|32F485|32F401|32F433|32F403|32F400|32F451";
sStateArray[2]="Please Select|Hutchinson 3G|Hutchinson Tel|One Tel|Singtel Optus|Telstra|Vodafone";
vStateArray[2]="|05F560|05F521|05F580|05F520|05F510|05F530";

