// JavaScript Document
var resorts;
/**
 * Used to parse the city option value and get the city code.
 * @param val city option value
 */
function parseCityCode(val)
{
    if( !(val == "" || val.indexOf('_ @') > -1 || val.indexOf('_-@') > -1) )
    {
        var start = val.indexOf('_', 0);
        var end = val.indexOf('@', start);
        return val.substring(start + 1, end);
    }
    else
    {
        return "";
    }
}

/**
 * Used to populate resorts for a given city code.
 * @param val city option value
 * @param id Resort "select" element id.
 */
function selectResort(val, id)
{
    var code = parseCityCode(val);
    var index = 0;
    var obj = document.getElementById(id);    
    if(code != '')
    {
        if(!resorts)
        {
            resorts = eval("ResortJason");
        }

        var length = obj.length;
        for(var x = 0; x < length; x++)
        {
            obj.remove(0);
        }
        for (var resortCode in resorts)
        {
            var resort = resorts[resortCode];
            if(code == resort.city)
            {
                var rCode = resortCode + "_" + resort.preCity;
                obj.options[++index] = new Option(resort.name, rCode);
            }
        }
        if(obj.length > 0)
        {
            obj.options[0] = new Option("--ANY--", "");
            obj.disabled = false;
            obj.selectedIndex = 0;
        }
        else
        {
            obj.disabled = true;
        }
    }
    else
    {
        for( var x = 0; x < length; x++ )
        {
            obj.remove(0);
        }
        obj.disabled = true;        
    }
    setResort();
}

/**
 * Used to select a perticular resort, which was selected previously.
 */
function setResort()
{
    var resCode = document.getElementById('preResCode') != null ? document.getElementById('preResCode').value : "";
    if(resCode != "")
    {
        setOption(resCode + "_", 'DPDepartureResort');
    }
}

/**
 * Used to select a dropdown option which matches to the given value.
 * @param code The value that should be compared with the dropdown option.
 * @param id id of the select element.
 */
function setOption(code, id)
{
    var obj = document.getElementById(id);
    var options = obj.options;
    for (var x = 0; x < options.length; x++)
    {
        if(options[x].value.indexOf(code) > -1)
        {
            obj.selectedIndex = x;
        }
    }
}