﻿$(document).ready(function () {

    $(".TableItem, .TableAltItem")
    .bind('click', function () { $(".TableItem, .TableAltItem").css('background', 'white'); $(this).css('background', 'rgb(11, 176, 230)'); })
    .bind('mouseover', function () { if ($(this).css('background') != 'rgb(11, 176, 230)') $(this).css('background', 'rgb(191, 234, 250)'); })
    .bind('mouseout', function () { if ($(this).css('background') != 'rgb(11, 176, 230)') $(this).css('background', 'White'); });


    var classLookup = ".LookupDepartment";
    var classListSelector = ".ListSelectorDepartment";

    var divUcModal = "divUcDepartmentModal";
    var hdnUcModalOpener = ".hdnUcDepartmentModalDialogOpener";
    var btnUcModalOpener = ".btnDialogOpenerUcDepartmentModal";

    var divUcEdit = ".divUcDepartmentEdit";
    var hdnUcEditOpener = ".hdnUcDepartmentEditDialogOpener";
    var btnUcEditOpener = ".btnDialogOpenerUcDepartmentEdit";

    var closeDialogEdit = ".CloseDialogEditDepartment";

    var _Title = "Структурні підрозділи";

    var _editTitle = "Редагування структурних підрозділів";

    //---------Створення локапа----------------
    $(classLookup).each(
            function () {
                var txtLookup = $(this);
                var hdn = $("input[x_lookup_id=" + txtLookup[0].id + "]"); // hidden в якому зберігається ІD вибраного елемента в локапі (для постбека)
                txtLookup.weblookup(
                {
                    url: "/Services/LookupService.asmx/DepartmentList",
                    urlOne: "/Services/LookupService.asmx/DepartmentOne",
                    renderitem: function (item) {
                        return item.DepartmentName;
                    },
                    rendertext: function (item) {
                        return item.DepartmentName;
                    },
                    changeSelectedItem: function (item) // викликається при зміні значення в локапі
                    {
                        if (item == null) {
                            hdn.val("-1");
                        }
                        else {
                            hdn.val(item.DepartmentID); //присвоюється hidden ІD вибраного елемента (для постбека)
                        }
                    }
                }
                ).keypress(
                    function (event) {
                        if (event.keyCode == 13) {
                            event.preventDefault();
                        }
                    });

                if (hdn.val() != "" && hdn.val() != "-1") {
                    txtLookup.weblookup("setItem", hdn.val()) // при постбеці якщо в hidden е значення - вставляємо в локап
                }
            }
    )
    //---------Кнопка на ДатаГрід яка передає дані в локап----------------
    $(classListSelector).each(
        function () {
            var img = $(this); //кнопка яка передає значення в локап 
            if (img.attr("x_id") != null) {
                img.click(
                    function (event) {
                        //по натисканню шукаемо діалогове вікно в якому лежить дана кнопка
                        var divDialog = $(event.target).parent();
                        while (!divDialog.hasClass(divUcModal)) {
                            divDialog = divDialog.parent();
                        }
                        // В ділоговому вікні шукаємо hidden. 
                        //По його val() знаходимо локап в який передаємо значення атрибуту кнопки x_id (ID вибраного елемента)
                        $("#" + divDialog.children("input[type=hidden]").val()).weblookup("setItem", $(event.target).attr("x_id"))
                        divDialog.dialog("close");
                    }
                )
            }
        });
    //---------Створюємо діалогове вікно для передачі даних в локап----------------
    $("." + divUcModal).dialog(
    {
        modal: true,
        autoOpen: false,
        overlay: { backgroundColor: '#000', opacity: 0.5 },
        title: _Title,
        width: 880,
        open: function (type, data) { $(this).dialog("widget").appendTo("form:first"); },
        close: function (event) {
            //передаємо в hidden значення "0" (до постбека вікно було закрите)
            $("input[x_divid=" + $(event.target).attr("x_modal_id") + "]").val("0");
        }
    }).dialog("widget").appendTo("form:first");
    //---------Відкриває діалогове вікно якщо воно було відкрите до постбека----------------
    $(hdnUcModalOpener).each(
        function () {
            var hdn = $(this); // hidden якай відповідає за відкриття діалогово вікна
            if (hdn.attr("x_divid") != null) {
                // шукаємо діалогове вікно в якого атрибут x_modal_id = значенню атрибута x_divid даного hidden  
                var _dialog = $("[x_modal_id=" + hdn.attr("x_divid") + "]");
                if (hdn.val() == "1") {
                    _dialog.dialog("open");
                }
            }
        });

    //---------Кнопка яка відкриває діалогове вікно для передачі даних в локап----------------
    $(btnUcModalOpener).click(function (event) {
        var img = $(event.target); //сама кнопка
        //по атрибуту кнопки bt_divid шукаємо діалогове вікно з атрибутом x_modal_id який = bt_divid
        var _dialog = $("[x_modal_id=" + img.attr("bt_divid") + "]");
        _dialog.dialog("open");
        //в цьому вікні знаходимо hidden якому передаємо ID локапа з атрибута LookupId кнопки  
        _dialog.children("input[type=hidden]").val(img.attr("LookupId"));
        //в hidden атрибут якого x_divid = bt_divid кнопки (відповідає атрибуту x_modal_id модального вікна)
        //присвоюемо значення 1 (до постбека діалогове вікно було відкрите) 
        $("input[x_divid=" + img.attr("bt_divid") + "]").val("1");
        return false;
    });

    //---------Створюємо діалогове вікно дла редагування----------------                    
    $(divUcEdit).dialog(
    {
        modal: true,
        autoOpen: false,
        overlay: { backgroundColor: '#000', opacity: 0.5 },
        title: _editTitle,
        width: 800,
        open: function (type, data) { $(this).dialog("widget").appendTo("form:first").keypress(function (event) { if (event.keyCode == 13) { $(this).find(closeDialogEdit).click(); } }); },
        close: function (event) {
            //передаємо в hidden значення "0" (до постбека вікно було закрите)
            $("input[x_divid=" + $(event.target).attr("x_modal_id") + "]").val("0");
        }
    });
    //---------Відкриває діалогове вікно якщо воно було відкрите до постбека----------------
    $(hdnUcEditOpener).each(
        function () {
            var hdn = $(this); // hidden якай відповідає за відкриття діалогово вікна
            if (hdn.attr("x_divid") != null) {
                // шукаємо діалогове вікно в якого атрибут x_modal_id = значенню атрибута x_divid даного hidden  
                var _dialog = $("[x_modal_id=" + hdn.attr("x_divid") + "]");
                if (hdn.val() == "1") {
                    _dialog.dialog("open");
                }
            }
        });
    //---------Кнопка яка відкриває діалогове вікно добавлення запису(редагування)----------------
    $(btnUcEditOpener).click(function (event) {
        //в hidden атрибут якого x_divid = bt_divid кнопки (відповідає атрибуту x_modal_id модального вікна)
        //присвоюемо значення 1 (до постбека діалогове вікно було відкрите) 
        $("input[x_divid=" + $(event.target).attr("bt_divid") + "]").val("1");
        return true;
    });



    // Код характерний лише для даного модуля



    var txtParentDepartmentID = $(".txtParentDepartmentID");
    var hdnParentDepartmentID = $(".hdnParentDepartmentID"); ; // hidden в якому зберігається ІD вибраного елемента в локапі (для постбека)

    if (txtParentDepartmentID.size() == 1) {
        txtParentDepartmentID.weblookup(
                {
                    url: "/RivnePortal/Services/LookupService.asmx/DepartmentList",
                    urlOne: "/RivnePortal/Services/LookupService.asmx/DepartmentOne",
                    otherInputParameters: { "includeInactive": false },
                    inputHiddenId: hdnParentDepartmentID[0].id,
                    multiSelectKeyName: "DepartmentID",
                    renderitem: function (item) {
                        if (item.DepartmentID == item.ParentDepartmentID) {
                            return item.DepartmentName;
                        }
                        else {
                            return item.ParentDepartmentName + ". " + item.DepartmentName;
                        }
                    },
                    rendertext: function (item) {
                        if (item.DepartmentID == item.ParentDepartmentID) {
                            return item.DepartmentName;
                        }
                        else {
                            return item.ParentDepartmentName + ". " + item.DepartmentName;
                        }                    
                    }
                }
                ).keypress(
                    function (event) {
                        if (event.keyCode == 13) {
                            event.preventDefault();
                        }
                    });
    }

});
 
