function SelBtn(sw, no) {
    var btn = document.getElementById('btn' + no);
    var selbtn = document.getElementById('selbtn' + no);
    if (sw == 1) {
        btn.className = 'btn' + no + ' novis';
        selbtn.className = 'selbtn' + no;
    }
    else {
        btn.className = 'btn' + no;
        selbtn.className = 'selbtn' + no + ' novis';
    }
}

function AddOption(opt, sel, place) {
    if (place > -1)
        sel.add(opt, place);
    else {
        try {
            sel.add(opt, null);
        }
        catch(ex) {
            sel.add(opt);
        }
    }
}

var WasChange = false;

function SelectMain(form) {
    form.maintext.value = form.mainmenu.options[form.mainmenu.selectedIndex].text;  
    form.mainupbtn.disabled = true;
    form.maindownbtn.disabled = true;
    form.mainmodbtn.disabled = false;
    form.maindelbtn.disabled = false;
    if (form.mainmenu.selectedIndex > 0)
        form.mainupbtn.disabled = false;
    if (form.mainmenu.selectedIndex < form.sub.options.length - 1)
        form.maindownbtn.disabled = false;

    form.upbtn.disabled = true;
    form.downbtn.disabled = true;
    form.modbtn.disabled = true;
    form.delbtn.disabled = true;
    if (WasChange && form.sub.options.length > 0) {
        var i = 0;
        choseText = form.sub.options[0].attributes['main'].nodeValue;
        while (i < form.allsubmenu.options.length) {
            if (form.allsubmenu.options[i].attributes['main'].nodeValue == choseText)
                form.allsubmenu.remove(i);  
            else
                i++;
        }
        while (form.sub.options.length) {
            newOpt = document.createElement("option");
            newOpt.text = form.sub.options[0].text;
            newOpt.value = form.sub.options[0].value;
            newOpt.setAttribute('main', form.sub.options[0].attributes['main'].nodeValue);
            newOpt.setAttribute('order', form.sub.options[0].attributes['order'].nodeValue);
            AddOption(newOpt, form.allsubmenu, -1);
            form.sub.remove(0);
        }
    }
    WasChange = false;
    while (form.sub.options.length) {
        form.sub.remove(0);
    }
    choseText = form.mainmenu.options[form.mainmenu.selectedIndex].value;
    for (i = 0; i < form.allsubmenu.options.length; i++) {
        if (form.allsubmenu.options[i].attributes['main'].nodeValue == choseText) {
            newOpt = document.createElement("option");
            newOpt.text = form.allsubmenu.options[i].text;
            newOpt.value = form.allsubmenu.options[i].value;
            newOpt.setAttribute('main', form.allsubmenu.options[i].attributes['main'].nodeValue);
            newOpt.setAttribute('order', form.allsubmenu.options[i].attributes['order'].nodeValue);
            AddOption(newOpt, form.sub, -1);           
        }
    }
}

function SelectSub(form) {
    form.subtext.value = form.sub.options[form.sub.selectedIndex].text;
    form.upbtn.disabled = true;
    form.downbtn.disabled = true;
    form.modbtn.disabled = false;
    form.delbtn.disabled = false;
    if (form.sub.selectedIndex > 0)
        form.upbtn.disabled = false;
    if (form.sub.selectedIndex < form.sub.options.length - 1)
        form.downbtn.disabled = false;
}

function UpSub(sel) {
    if (sel.selectedIndex > 0) {
        var txt = sel.options[sel.selectedIndex - 1].text
        sel.options[sel.selectedIndex - 1].text = sel.options[sel.selectedIndex].text
        sel.options[sel.selectedIndex].text = txt;
        sel.selectedIndex = sel.selectedIndex - 1;
        if (sel.id == 'sub')
            SelectSub(sel.form);
        else
            SelectMain(sel.form);
        WasChange = true;
    }
}

function DownSub(sel) {
    if (sel.selectedIndex < sel.options.length - 1) {
        var txt = sel.options[sel.selectedIndex + 1].text
        sel.options[sel.selectedIndex + 1].text = sel.options[sel.selectedIndex].text
        sel.options[sel.selectedIndex].text = txt;
        sel.selectedIndex = sel.selectedIndex + 1;
        if (sel.id == 'sub')
            SelectSub(sel.form);
        else
            SelectMain(sel.form);
        WasChange = true;
    }
}

function NewMain(form) {
    if (form.maintext != '') {
        newOpt = document.createElement("option");
        newOpt.text = form.maintext.value;
        newOpt.value = form.mainmenu.options.length + 1;
        AddOption(newOpt, form.mainmenu, -1);
        if (form.mainmenu.selectedIndex > -1) {
            var i = form.mainmenu.length - form.mainmenu.selectedIndex - 1;
            form.mainmenu.selectedIndex = form.mainmenu.length - 1;
            while (i > 0) {
                UpSub(form.mainmenu);
                i--;
            }
        }
        WasChange = true;
    }
}

function NewSub(form) {
    if (form.subtext != '' && form.mainmenu.selectedIndex > -1) {
        newOpt = document.createElement("option");
        newOpt.text = form.subtext.value;
        newOpt.setAttribute('main', form.mainmenu.options[form.mainmenu.selectedIndex].value);
        newOpt.setAttribute('order', form.sub.options.length + 1);
        newOpt.value = form.mainmenu.options[form.mainmenu.selectedIndex].value + "_" + (form.sub.options.length + 1);
        AddOption(newOpt, form.sub, -1);
        if (form.sub.selectedIndex > -1) {
            var i = form.sub.length - form.sub.selectedIndex - 1;
            form.sub.selectedIndex = form.sub.length - 1;
            while (i > 0) {
                UpSub(form.sub);
                i--;
            }
        }
        WasChange = true;
    }
}

function ModifyMain(form) {
    if (form.mainmenu.selectedIndex < form.mainmenu.options.length && form.mainmenu.selectedIndex > -1) {
        form.mainmenu.options[form.mainmenu.selectedIndex].text = form.maintext.value; 
        WasChange = true;
    }
}

function ModifySub(form) {
    if (form.sub.selectedIndex < form.sub.options.length && form.sub.selectedIndex > -1) {
        form.sub.options[form.sub.selectedIndex].text = form.subtext.value; 
        WasChange = true;
    }
}

function DeleteMain(form) {
    if (form.mainmenu.selectedIndex < form.mainmenu.options.length && form.mainmenu.selectedIndex > -1) {
        var txt;
        var i = form.mainmenu.selectedIndex + 1;
        while (i < form.mainmenu.options.length) {
            form.mainmenu.options[i - 1].text = form.mainmenu.options[i].text
            i++;
        }
        form.mainmenu.remove(form.mainmenu.options.length - 1);
        WasChange = true;
    }
}

function DeleteSub(form) {
    if (form.sub.selectedIndex < form.sub.options.length && form.sub.selectedIndex > -1) {
        var txt;
        var i = form.sub.selectedIndex + 1;
        while (i < form.sub.options.length) {
            form.sub.options[i - 1].text = form.sub.options[i].text
            i++;
        }
        form.sub.remove(form.sub.options.length - 1);
        WasChange = true;
    }
}

function SubmitMenu(form) {
    form.result.value = "";
    if (form.mainmenu.selectedIndex > -1)
        SelectMain(form);
    while (form.mainmenu.options.length) {
        form.result.value += "('" + form.mainmenu.options[0].text + "',0," + form.mainmenu.options[0].value + "),";
        form.mainmenu.remove(0);
    }
    while (form.allsubmenu.options.length) {
        form.result.value += "('" + form.allsubmenu.options[0].text + "'," + form.allsubmenu.options[0].attributes['main'].nodeValue + "," + form.allsubmenu.options[0].attributes['order'].nodeValue + ")";
        form.allsubmenu.remove(0);
        if (form.allsubmenu.options.length) form.result.value += ",";
    }    
    form.submit();
}