// -------------------- class htmlSelect -------------------- //
function htmlSelect(id)
{
    this.element = $(id);

    this.addOption = function(name, value, isSelected)
    {
        var oOption = $$$("OPTION");
        oOption.innerHTML = name;
        oOption.value = value;
        if (isSelected) { oOption.selected = true; }
        //oOption.index = index
    
        return this.element.appendChild(oOption)
    }
    
/*    this.setOptions = function(data) //  data can be hash or array
    {
        (data.length) ? this.setOptionsFromArray(data, arguments[1]) : this.setOptionsFromHash(data)
    }

    this.setOptionsFromHash = function(data)
    {
        if ( !objLength(data) ) { return false }
        
        this.deleteOptions()
        var index = 0
        for (var i in data)
        {
            this.addOption(data[i], i, index++)
        }
    }
    
    this.setOptionsFromArray = function(names)
    {
        if (!names || !names.length) {return false}
        ids = (!arguments[1] || !arguments[1].length) ? names : arguments[1]

        this.deleteOptions()

        for (var i=0, l=names.length; i<l; i++)
        {
            if (names[i]) { this.addOption(names[i], ids[i], i) }
        }
    }*/

    this.deleteOptions = function()
    {
        this.element.innerHTML = '';
    }

    this.getSelection = function()
    {
        return this.element.options.length ? parseInt(this.element.options[this.element.selectedIndex].value) : null
    }
    
    this.setSelection = function(value)
    {
        for (var i=0, l=this.element.options.length; i<l; i++)
        {
            if (this.element.options[i].value == value)
            {
                try{ this.element.options[i].selected = true } catch(e){} // IE 6 will set the value but raise an error
                //this.element.selectedIndex = i; 
                return true 
            }
        }
       
        return false
    }
}
