﻿function ElementeAppendOptionLast(strElementID, strValue, strText) {

    var elOptNew = document.createElement('option');
    elOptNew.text   = strText
    elOptNew.value  = strValue

    var elSel = CheckGetElement(strElementID);
    if (!elSel) return;

    try {
        elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch (ex) {
        elSel.add(elOptNew); // IE only
    }
}

function ElementeRemoveOptionLast(strElementID) {

    var elSel = CheckGetElement(strElementID);
    if (!elSel) return;
    
    if (elSel.length < 1) return false;
    elSel.remove(elSel.length - 1);
    return true;
}

function ElementeRemoveOptionAll(strElementID) {

    var elSel = CheckGetElement(strElementID);
    if (!elSel) return;
    
    while (elSel.length >= 1) elSel.remove(0);
    return true;

} 

function ElementeSelectValueInt(strElementID,vValue) {

    var elSel = CheckGetElement(strElementID);
    if (elSel) {
        for (var i = 0; i <= elSel.length - 1; i++) {
            if (parseInt(elSel.options[i].value, 10) == vValue) {
                elSel.selectedIndex = i;
                return i;
            };
        };
    };
    return -1;
};


function ElementeSelectCopy(strElementSourceID, strElementTargetID, vValue) {

    var elSource = CheckGetElement(strElementSourceID);
    var elTarget = CheckGetElement(strElementTargetID);
    if (!elSource || !elTarget) return -1;
    
    for (var i = 0; i <= elSource.length - 1; i++) {
        if (parseInt(elSource.options[i].value, 10) == vValue) {
            ElementeAppendOptionLast(strElementTargetID,elSource.options[i].value,elSource.options[i].text);
            return i;
        };
    };
    return -1;
};

function ElementeSelectCopyAll(strElementSourceID, strElementTargetID) {

    var elSource = CheckGetElement(strElementSourceID);
    var elTarget = CheckGetElement(strElementTargetID);
    if (!elSource || !elTarget) return -1;

    for (var i = 0; i <= elSource.length - 1; i++) {
        ElementeAppendOptionLast(strElementTargetID, elSource.options[i].value, elSource.options[i].text);
    };
    return 0;
};

function ElementeSelectCount(strElementID) {
    var elSource = CheckGetElement(strElementID);
    if (!elSource) return 0;
    return elSource.length;
};

function ElementeSelectGetValueInt(strElementID, iIndex) {
    var elSource = CheckGetElement(strElementID);
    if (!elSource || (iIndex < 0) || (iIndex>elSource.length-1)) return -1;
    return parseInt(elSource.options[iIndex].value, 10);
};


function ElementeSelectSetIndex(strElementID, iIndex) {
    var elSource = CheckGetElement(strElementID);
    if (!elSource || (iIndex > elSource.length - 1)) return -1;
    elSource.selectedIndex = iIndex;
    return iIndex;
    
};
