/******************* 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
        
    cboCountry.options.length=0
    z = 0;
    for(i=0;i<sCountryString.split("|").length;i++){
        sCountry = sCountryString.split("|")[i];

        if (z==1 && navigator.appName=="Microsoft Internet Explorer")
        {
            z = 2;
        }

        if (sDefaultCountry == sCountry) {
            sDefault=true;
            z = 1;
            if (navigator.appName!="Microsoft Internet Explorer"){cboState.focus();}
        }
        else {sDefault=false;}


        
        if (sDefault) {
            cboCountry.options[i]=new Option(sCountry,sCountry,sDefault,sDefault);
        }
        else
        {
            if(z==2 && navigator.appName=="Microsoft Internet Explorer")
            {
                sDefault=true;
                z=0;
                cboCountry.options[i]=new Option(sCountry,sCountry,true,true);
                cboState.focus();
            }
            else
            {
                cboCountry.options[i]=new Option(sCountryString.split("|")[i]);
            }
        }
    }
}
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, sDefault
    if(cboState.options){
        cboState.options.length=0
        for(i=0;i<sStateArray[cboCountry.selectedIndex].split("|").length;i++){
            sState = sStateArray[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,sState,sDefault,sDefault)}
            else {cboState.options[i]=new Option(sState,sState);}
        }
    }
}

var sCountryString = "|USA"
        
var sStateArray = new Array()
sStateArray[0]="";
sStateArray[1]="Alabama|Alaska|Arizona|Arkansas|California|Colorado|Connecticut|Delaware|District of Columbia|Florida|Georgia|Hawaii|Idaho|Illinois|Indiana|Iowa|Kansas|Kentucky|Louisiana|Maine|Maryland|Massachusetts|Michigan|Minnesota|Mississippi|Missouri|Montana|Nebraska|Nevada|New Hampshire|New Jersey|New Mexico|New York|North Carolina|North Dakota|Ohio|Oklahoma|Oregon|Pennsylvania|Rhode Island|South Carolina|South Dakota|Tennessee|Texas|Utah|Vermont|Virginia|Washington|West Virginia|Wisconsin|Wyoming";
