﻿function CallGetCountryStatesList(countryId, listId, hiddenId, onSuccess)
{
    var onRequestComplete = function(result) {
        ShowCountries(result);   
        if(typeof(HideSpinner) == "function") {
            HideSpinner();
        }
    }
    if (!!onSuccess && typeof(onSuccess) == "function") {
        onRequestComplete = function(result) {
            ShowCountries(result);   
            onSuccess(); 
            if(typeof(HideSpinner) == "function") {
                HideSpinner();
            }
        }
    }
    if(typeof(ShowSpinner) == "function") {
        ShowSpinner();
    }
    GBX.WebServices.GetCountryStates.GetCountryStatesList(countryId, listId, hiddenId, onRequestComplete);
}

function ShowCountries(result)
{
    var listId = result[0];
    var hiddenId = result[1];
    var states = result[2];

    var hidden = document.getElementById(hiddenId);
    var statesList = document.getElementById(listId);
    statesList.options.length = 0;
    
    if (states != null)
    {
        statesList.options[0] = new Option(' ', 0);
        for (var i=1; i < states.length; i++)
        {
            statesList.options[i] = new Option(states[i].StateDesc, states[i].Id);
            if(statesList.options[i].value == hidden.value) {
                statesList.options[i].selected = true;
            }
        }
        if(statesList.selectedIndex == -1) {
            hidden.value = statesList.options[0].value;
        }
        
    }
    if(statesList.options[0] != null && hidden != statesList)
        hidden.value = statesList.options[0].value;
}

