﻿
function HandleAddSubject() {
    AddSToList("Subject", "", "SelectedSubjects");
}

function HandleAddSubjectSubject() {
    if ($('Subject').selectedIndex > -1 && $('SubjectSubject').selectedIndex > -1) {
        AddSToList("SubjectSubject", "Subject", "SelectedSubjectsSubjects");
    } else {
        alert("יש לסמן תחום ומקצוע על מנת להוסיף לרשימה");
    }
}

function IsItemExistsInList(id, data) {
    ListObj = document.getElementById(id);
    for (i = 0; i < ListObj.options.length; i++) {
        if (ListObj.options[i].innerHTML == data)
            return true;
    }

    return false;
}

function HandleRemoveSubject() {
    RemoveFromList("SelectedSubjects");
//    if ($('SelectedSubjects').options.length == 0)
//        $('AddNewSubjectSubject').disabled = true;
}

function HandleRemoveSubjectSubject() {
    RemoveFromList("SelectedSubjectsSubjects");
}

function HandleAddNewCategory() {
    //var subject = escape($('NewSubjectText').value);
    var subject = $('NewSubjectText').value;
    if (subject == "")
        return;
        
    //check for space as first char or only spaces
    if (subject.indexOf(":") > -1 || subject.indexOf("|") > -1 || Left(subject, 1) == " " || Right(subject, 1) == " ") {
        alert("תו לא חוקי בשדה בשם הקטגוריה");
        return;
    }

    if (!IsItemExistsInList("Subject", subject)) {
        AddItemToSelectedList("Subject", $('NewSubjectText').value, true);
        //AddedCategories[AddedCategories.length] = new Category(subject, -1);
        Categories[Categories.length] = new Category($('NewSubjectText').value, (100000+Categories.length));
        HandleChangeSubjectList(subject);
//        $('AddNewSubjectSubject').disabled = false;

    }
    $('NewSubjectText').value = "";
}



function HandleAddNewSubject() {
    //var subject = escape($('NewSubjectSubjectText').value);
    var subject = $('NewSubjectSubjectText').value;
    if (subject == "")
        return;

    if (subject.indexOf(":") > -1 || subject.indexOf("|") > -1 || Left(subject, 1) == " " || Right(subject, 1) == " ") {
        alert("תו לא חוקי בשם המקצוע");
        return;
    }
    
    if ($('Subject').selectedIndex > -1) {
        var Category = $('Subject').options[$('Subject').selectedIndex].innerHTML;
        //AddedSubjects[AddedSubjects.length] = new Subject(subject, $('SubjectSubject').length, $('Subject').options[$('Subject').selectedIndex].id);
        Subjects[Subjects.length] = new Subject(subject, (100000+Subjects.length), $('Subject').options[$('Subject').selectedIndex].value);

        AddItemToSelectedList("SubjectSubject", subject, true);
        $('NewSubjectSubjectText').value = "";
        HandleAddSubjectSubject();
    }
}

function GetAddedCategoryByName(name) {
    var i = 0;
    for (i = 0; i < AddedCategories.length; i++) {
        if (AddedCategories[i].Name == name)
            return (AddedCategories[i]);
    }

    AddedCategories[AddedCategories.length] = new Category(name, -1);
    return GetAddedCategoryByName(name);
}

function AddItemToSelectedList(id, data, setfocus) {

    var ListTo = document.getElementById(id);
    var newid = ListTo.length+100000;
    var oOption = document.createElement('OPTION');

    ListTo.options.add(oOption);
    oOption.id = newid;
    oOption.innerHTML = data;
    oOption.value = newid;
    if (setfocus)
        ListTo.options[ListTo.options.length - 1].selected = true;
}

function IsBelongToCategory(CatId, SubjId) {
    var i = 0;
    for (i = 0; i < Subjects.length; i++) {
        if (Subjects[i].ID == SubjId) {
            if (Subjects[i].Category.Name == CatId)
                return true;
        }
    }

    for (i = 0; i < AddedSubjects.length; i++) {
        if (AddedSubjects[i].Name == SubjId) {
            if (AddedSubjects[i].Category.Name == CatId)
                return true;
        }
    }

    return false;
}

function RemoveSubjectsSubjectUponCategory(CatId) {
    var ListObj = $('SelectedSubjectsSubjects');
    var i = 0;
    var indexesToRemove = new Array();
    for (i = 0; i < ListObj.options.length; i++) {
        if (IsBelongToCategory(CatId, ListObj.options[i].value))
            indexesToRemove[indexesToRemove.length] = i;
    }

    for (i = 0; i < indexesToRemove.length; i++) {
        ListObj.remove(indexesToRemove[i]);
        for (j = 0; j < indexesToRemove.length; j++)
            indexesToRemove[j]--;
    }
}

function RemoveFromList(ListObjID) {
    var ListObj = $(ListObjID);
    if (ListObj.selectedIndex > -1) {
        if (ListObjID == "SelectedSubjects") {
            var id = ListObj.options[ListObj.selectedIndex].value;
            RemoveSubjectsSubjectUponCategory(id);
        }

        ListObj.remove(ListObj.selectedIndex);
    }
}

function AddSToList(FromId, FromIdb, ToID) {
    var ListFrom = document.getElementById(FromId);
    if (ListFrom.selectedIndex == -1)
        return;

    var FinalText = ListFrom.options[ListFrom.selectedIndex].innerHTML;
    if (FromIdb != "") {
        var ListFromb = document.getElementById(FromIdb);
        FinalText = FinalText + ' : ' + ListFromb.options[ListFromb.selectedIndex].innerHTML;
    }

    var DataToAdd = ListFrom.options[ListFrom.selectedIndex].innerHTML;

    if (DataToAdd == "הכל")
        return;

    if (IsItemExistsInList(ToID, FinalText))
        return;

    var ListTo = document.getElementById(ToID);

    if (ListFrom.selectedIndex > -1) {
        var oOption = document.createElement('OPTION');
        ListTo.options.add(oOption);

        oOption.innerHTML = FinalText;

        oOption.value = ListFrom.options[ListFrom.selectedIndex].value;
        //if (ToID == "SelectedSubjects")
        //            $('AddNewSubjectSubject').disabled = true;

        if (ToID == "SelectedSubjectsSubjects") {
            $(ToID).focus();
                $(ToID).options[$(ToID).options.length - 1].selected = true;
            }
    }
}

function SetUserSubjects() {
    if (UserSbjs == null)
        return;

    var SelectedSubjects = $('SelectedSubjects');
    var SelectedSubjectsSubjects = $('SelectedSubjectsSubjects');
    var i = 0;

    while (UserSbjs.getElementsByTagName('CSubject')[i] != null) {
        var oOption = document.createElement('OPTION');
        SelectedSubjectsSubjects.options.add(oOption);

        if (navigator.userAgent.search(/msie/i) != -1) {
            oOption.innerHTML = UserSbjs.getElementsByTagName('CSubject')[i].childNodes[1].nodeTypedValue;
            oOption.value = UserSbjs.getElementsByTagName('CSubject')[i].firstChild.nodeTypedValue;
        } else {
            if (UserSbjs.getElementsByTagName('CSubject')[i].getElementsByTagName('Name')[0].childNodes[0] != null) {
                oOption.innerHTML = UserSbjs.getElementsByTagName('CSubject')[i].getElementsByTagName('Name')[0].childNodes[0].nodeValue;
                oOption.value = UserSbjs.getElementsByTagName('CSubject')[i].getElementsByTagName('ID')[0].childNodes[0].nodeValue;
            }
        }


        var innerHTML = "";
        var value = "";

        if (UserSbjs.getElementsByTagName('Category')[i] != null) {
            if (navigator.userAgent.search(/msie/i) != -1) {
                innerHTML = UserSbjs.getElementsByTagName('Category')[i].childNodes[1].nodeTypedValue;
                value = UserSbjs.getElementsByTagName('Category')[i].childNodes[0].nodeTypedValue;
            } else {
                if (UserSbjs.getElementsByTagName('Category')[i].getElementsByTagName('Name')[0].childNodes[0] != null) {
                    innerHTML = UserSbjs.getElementsByTagName('Category')[i].getElementsByTagName('Name')[0].childNodes[0].nodeValue;
                    value = UserSbjs.getElementsByTagName('Category')[i].getElementsByTagName('ID')[0].childNodes[0].nodeValue;
                }
            }
        }
        else {
            if (UserCats.getElementsByTagName('Category')[i] != null) {
                if (navigator.userAgent.search(/msie/i) != -1) {
                    innerHTML = UserCats.getElementsByTagName('Category')[i].childNodes[1].nodeTypedValue;
                    value = UserCats.getElementsByTagName('Category')[i].childNodes[1].nodeTypedValue;
                } else {
                    if (UserCats.getElementsByTagName('Category')[i].getElementsByTagName('Name')[0].childNodes[0] != null) {
                        innerHTML = UserCats.getElementsByTagName('Category')[i].getElementsByTagName('Name')[0].childNodes[0].nodeValue;
                        value = UserCats.getElementsByTagName('Category')[i].getElementsByTagName('ID')[0].childNodes[0].nodeValue;
                    }
                }
            }
        }

        if (IsItemExistsInList("SelectedSubjects", value) == false) {
            oOption = document.createElement('OPTION');
            SelectedSubjects.options.add(oOption);
            oOption.innerHTML = innerHTML;
            oOption.value = value;
//            $('AddNewSubjectSubject').disabled = true;
        }
        i++;
    }

}

