﻿function RemoveSelectedOption(deleteBtnName, listBoxName, containerID) {
    var listBox = document.getElementById(listBoxName);
    if (listBox == null ||
        listBox.options.length == 0 ||
        listBox.selectedIndex < 0) {
        return;
    }
    listBox.options[listBox.selectedIndex] = null;
    ListBoxChanged(containerID, listBox);
    SelectionChanged(deleteBtnName, listBoxName);
}
function AddOptions(listBox, text, value, valueAlternative) {
    if (listBox == null)
        return;
    //return if item already exist
    for (var i = 0; i < listBox.options.length; i++) {
        if (listBox.options[i].value == value ||
        listBox.options[i].value == valueAlternative) {
            return;
        }
    }
    var opt = new Option(text, value);
    listBox.options[listBox.options.length] = opt;
    
}
function ListBoxChanged(containerID, listBox) {
    var container = document.getElementById(containerID);
    if (container == null ||
        listBox == null) {
        return;
    }
    container.value = escape("<listboxes>" + serialize(listBox) + "</listboxes>");
}
function SelectionChanged(deleteButton, listBoxName) {

    var deleteBtn = document.getElementById(deleteButton);
    var listBox = document.getElementById(listBoxName);
    if (deleteBtn == null ||
        listBox == null)
        return;

    deleteBtn.disabled = listBox.selectedIndex < 0; 
}
function AddLanguages(listFrom, listTo, listBoxName, containerID) {
    var from = $find(listFrom);
    var to = $find(listTo);
    var listBox = document.getElementById(listBoxName);

    if (from == null ||
        to == null ||
        listBox == null)
        return;
    var fromSelected = from.get_selectedItem();
    var toSelected = to.get_selectedItem();
    if (fromSelected == null ||
        toSelected == null)
        return;
    var text = fromSelected.get_text() + ' - ' + toSelected.get_text();
    var value = fromSelected.get_value() + ',' + toSelected.get_value();
    var valueAlt = toSelected.get_value() + ',' + fromSelected.get_value();
    AddOptions(listBox, text, value, valueAlt);
    ListBoxChanged(containerID, listBox);
}
function serialize(dropdown) {
    var value = '<' + dropdown.id + '>';
    for (var i = 0; i < dropdown.options.length; i++) {
        value += '<option><key><![CDATA[' + dropdown.options[i].text + ']]></key><value><![CDATA[' + dropdown.options[i].value + ']]></value></option>';
    }
    value += '</' + dropdown.id + '>';
    return value
}
