function clearList(list) 
    {
    var i = 0;
    var o = list.options;

    for (i = o.length; i >= 0; --i)
		o[i] = null;
    list.disabled = true;
    }


function addElement(list, text_in, value_in)
    {
    var o = list.options;
    var nIdx;
    if (o.length < 0) //IE for Mac 4.5 sets length to -1 if list is empty
        nIdx = 0;
    else
        nIdx = o.length;
		
    o[nIdx] = new Option(text_in, value_in);
    list.disabled = false;
    }


function addElementAtPos(list, pos, text_in, value_in)
    {
    var o = list.options;
    var nIdx = 0;

    if ((pos < 0) || (pos > o.length))
        return;

    addElement(list, '', '');
    for (nIdx = o.length - 1; nIdx > pos; nIdx--)
    {
        o[nIdx].text = o[nIdx - 1].text;
        o[nIdx].value = o[nIdx - 1].value;
    }
    o[pos] = new Option(text_in, value_in);
    list.disabled = false;
    }


function setDefaultByText(list, text_in)
    {
    with (list)
        {
        for (var i = 0; i < (options.length); i++)
             {
             if (options[i].text == text_in)
                 {
                 selectedIndex = i;
                 return;
                 }
             }
        }
    }

function setDefaultByIText(list, text_in)
    {
    with (list)
        {
        if(options.length > 0) selectedIndex = 0; // in case desired text_in value is not present, set a default
        for (var i = 0; i < (options.length); i++)
             {
             if (options[i].text.toLowerCase() == text_in.toLowerCase())
                 {
                 selectedIndex = i;
                 return;
                 }
             }
        }
    }

function getSelectedText(list)
{
	if(list.selectedIndex>=0)
		return list.options[list.selectedIndex].text;
	else
		return null;
}

function getSelectedValue(list)
{
	if(list.selectedIndex>=0)
		return list.options[list.selectedIndex].value;
	else
		return null;
}

function setDefaultByValue(list, value_in)
    {
    with (list)
        {
        for (var i = 0; i < (options.length); i++)
             {
             if (options[i].value == value_in)
                 {
                 selectedIndex = i;
                 return;
                 }
             }
        }
    }


function fillList(list, valuesArray, defaultText, defaultValue)
{
    clearList(list);
	seperator='#';
	
    for (var i = 0; i < valuesArray.length; i++)
    {
        if (valuesArray[i])
		{

			if (valuesArray[i].indexOf(seperator) != -1)
			{
				var values = valuesArray[i].split(seperator);
				sName = values[1];
				sValue = values[0];
			}
			else
				sName = sValue = values[i];

            addElement(list, sName, sValue);
        }
    }
        
    if(defaultText)
		setDefaultByText(list, defaultText);
    else if(defaultValue)
		setDefaultByValue(list, defaultValue);
        
}
    