// selectEvoScript.js

function moveSelectedItems(fromSelect, toSelect, message) {
    while (fromSelect.options.selectedIndex >= 0) {
        var i = fromSelect.options.selectedIndex;
        if (isItem(fromSelect.options[i].text, toSelect, message) == -1)
            toSelect.options[toSelect.options.length] = 
                new Option(fromSelect.options[i].text, fromSelect.options[i].value);
        fromSelect.options[i] = null;
    }
    return false;
}

function copySelectedItems(fromSelect, toSelect, message) {
    while (fromSelect.options.selectedIndex >= 0) {
        var i = fromSelect.options.selectedIndex;
        fromSelect.options[i].selected = false;
      if (isItem(fromSelect.options[i].text, toSelect, message) == -1)
            toSelect.options[toSelect.options.length] = 
                new Option(fromSelect.options[i].text, fromSelect.options[i].value);
      }
    return false;
}

function copyAllItems(fromSelect, toSelect, message) {
    for (var i = 0 ; i < fromSelect.options.length; i++) {
        if (isItem(fromSelect.options[i].text, toSelect, message) == -1)
            toSelect.options[toSelect.options.length] = 
                new Option(fromSelect.options[i].text, fromSelect.options[i].value);
    }
    return false;
}

function removeSelectedItems(fromSelect) {
    while (fromSelect.options.selectedIndex >= 0)
        fromSelect.options[fromSelect.options.selectedIndex] = null;

    return false;
}

function removeAllItems(fromSelect) {
    for (i = 0 ; i < fromSelect.options.length; i++)
        fromSelect.options[i] = null;

    return false;
}

function moveItem(element, toSelect, checkedSelect, message) {
    var value = element.value;
    if (value == '')
        return false;
    if (isItem(value, toSelect, message) >= 0)
        return false;
    var i = isItem(value, checkedSelect, null);
    if (i == -1) {
        //value='#' + value;
        if (isItem(value, toSelect, message) >= 0)
            return false;
        toSelect.options[toSelect.options.length] = new Option(value, '#'+value);
    } else {
        toSelect.options[toSelect.options.length] = 
            new Option(checkedSelect.options[i].text, checkedSelect.options[i].value);
    }
    element.value='';
    return false;
}

function isItem(text, select, message) {
    if (! select.options)
        return -1;
    var re = new RegExp('^'+text+'$', 'i');
    for (var i = 0 ; i < select.options.length; i++)
        if (re.test(select.options[i].text)) {
            if (message != null && message != '')
                alert(text + message);
            return i;
        }
    return -1;
}

function selectAllOptions(select) {
    if (select == null || select.options == null)
	return true;
    for(i=0; i < select.options.length; i++)
        select.options[i].selected = true;
    return true;        
}
        
function unselectAlloptions(select) {
    while (select.options.selectedIndex >= 0)
        select.options[select.options.selectedIndex].selected = false;
}       

function selectItem(text, select) {
    unselectAlloptions(select);
    if (text == '')
        return;
    var re = new RegExp('^'+text, 'i');
    for(var i=0; i < select.options.length; i++)
        if (re.test(select.options[i].text)) {
            select.options[i].selected = true;
            return;
        }           
}

function setOptions(select, taboptions) {
    var optionsOldLength = select.options.length;
    for (var i = optionsOldLength-1; i >= 0; i--)    
        select.options[i] = null;		 
    if (! taboptions)
        return;
    for (var i = 0; i < taboptions.length; i++)      
        select.options[i] = taboptions[i];	 
}

var globalgo = false;

