$(function() {
    $('#pid301').attr('checked', true).attr('disabled', true);
    $('#pid302').attr('checked', true).attr('disabled', true);
    $('#pid401').change(function() { if (!this.checked) $('#pid402').attr('checked', false); });
    $('#pid402').change(function() { if (this.checked) $('#pid401').attr('checked', true); });
    $('#pid615').change(function() { if (!this.checked) $('#pid603').attr('checked', false); });
    $('#pid603').change(function () { if (this.checked) $('#pid615').attr('checked', true); });    
    $('#pid501').change(function () {
        if (!this.checked) {
            $('#pid503').attr('checked', false);
            $('#pid505').attr('checked', false);
        }
    });
    $('#pid503').change(function () { if (this.checked) $('#pid501').attr('checked', true); });
    $('#pid505').change(function () { if (this.checked) $('#pid501').attr('checked', true); });
    $('#pid502').change(function () { if (!this.checked) $('#pid504').attr('checked', false); });
    $('#pid504').change(function () { if (this.checked) $('#pid502').attr('checked', true); });
    $('#pid325').change(function () { CheckSystemFields(false); });

    $('#arid').multipleSelect({ ChooseResource: CommonResources.All });
    $('#ownarid').multipleSelect({ ChooseResource: CommonResources.Select });
    //$('#pid622').change(function () { if (this.checked) $('#pid623').attr('checked', false); });
    //$('#pid623').change(function () { if (this.checked) $('#pid622').attr('checked', true); });
    //$('#pid601').change(function () {
    //    if (!this.checked) {
    //        $('#pid622').attr('checked', false);
    //        $('#pid623').attr('checked', false);
    //    }
    //});

    $('#pid601').change(function () {
        if (!this.checked) {
            //$('#pid601').attr('checked', false);
            $('#radiopid601').hide();
            //$('#pid601').trigger("change");
        } else {
            $('#radiopid601').show();
        }
    });
    //Просмотр каталога активов
    $('#pid608').change(function () {
        if (!this.checked) {
            $('#pid609').attr('checked', false);
            $('#radiopid608').hide();
            $('#pid609').trigger("change");
        } else {
            $('#radiopid608').show();
        }
    });

   
    //Редактирование каталога активов
    $('#pid609').change(function() {
        if (this.checked) {
            $('#pid608').attr('checked', true);
            $('#radiopid609').show();
            $('#pid608').trigger("change");
        } else {
            $('#radiopid609').hide();
        }
    });
    //Просмотр отчетов
    $('#pid106').change(function () {
        if (this.checked) {
            $('#radiopid106').show();
        } else {
            $('#radiopid106').hide();
        }
    });
    
    //#region обработчики радио-переключателей прав доступа по заявкам и активам
    $('input[name=serviceperm]').on("click", function () {
        $(this).attr("checked", true);
    });
    //Уточнение уровня доступа к каталогу активов (не даём редактировать то, что мы не можем просматривать)
    //при изменении прав на просмотр
    $('input[name=assetperm8]').on("click", function () {
        $(this).attr("checked", true);
    });
    //При изменении прав на редактирование
    $('input[name=assetperm9]').on("click", function () {
        $(this).attr("checked", true);
    });
    
    //Уточнение уровня доступа по заявкам (не даём редактировать то, что мы не можем просматривать)
    //при изменении прав на просмотр
    $('input[name=taskview]').on("click", function () {
        $(this).attr("checked", true);
    });
    //При изменении прав на редактирование
    $('input[name=taskedit]').on("click", function () {
        $(this).attr("checked", true);
    });
    //#endregion
    
    CheckSystemFields(true);
    $('input.radio').each(function(i, el) {
        var id = getId(el.id);
        if ($('#pid' + id).attr('checked')) $(el).attr('checked', true);
    });
    
    $('input.radio').change(function() {
        var id = getId(this.id);
        $('#pid' + id).attr('checked', true);
        if ($(this).attr('name') && $(this).attr('name') == 'taskedit') {
            unCheckOtherRadio($(this), true, false);
        }
        if ($(this).attr('name') && $(this).attr('name') == 'taskview') {
            unCheckOtherRadio($(this), true, true);
        }
        if ($(this).attr('name') && $(this).attr('name') == 'assetperm9') {
            unCheckOtherRadio($(this), false, false);
        }
        if ($(this).attr('name') && $(this).attr('name') == 'assetperm8') {
            unCheckOtherRadio($(this), false, true);
        }
        if ($(this).attr('name') && $(this).attr('name') == 'reportview') {
            if (id == '171') {
                $('#pid172').attr('checked', false);
            } else {
                $('#pid171').attr('checked', false);
            }
        }
        if ($(this).attr('name') && $(this).attr('name') == 'serviceperm') {
            if (id == '622') {
                $('#pid623').attr('checked', false);
            } else {
                $('#pid622').attr('checked', false);
            }
        }
    });

    $('label[for=pid617]').attr('data-exec-text', $('label[for=pid617] span').text());
    if ($("#typeid2:checked").length > 0) {
        switchRoleFields('client');
    }
    else if ($("#typeid1:checked").length > 0) {
        switchRoleFields('executor');
    }
    
    attachDescription(327, 300, RoleResources.HistoryHint);

    $(".spanHint").tooltip({ position: { my: "left top+15", at: "left center" }, tooltipClass:"width300px" });

    $.validator.addMethod("greater9", function (value, element) {
        return parseInt(value) > 9 || parseInt(value) === 0
    }, FormResources.ValueFrom10to99);

    $.validator.addClassRules({
        greater9 : {greater9 : true}
    })

});
//уровень доступа по заявкам (заменено функцией и она добавлена в событие  $('input.radio').change)
function unCheckOtherRadio(check,isTaskMode, isViewMode) {
    var nameAttribute = isTaskMode ? (isViewMode) ? 'taskview' : 'taskedit' : (isViewMode) ? 'assetperm8' : 'assetperm9';
    var otherNameAttribute = isTaskMode ? (isViewMode) ? 'taskedit' : 'taskview' : (isViewMode) ?'assetperm9':'assetperm8';
    var thisorder = parseInt($(check).attr("sortorder"), 10);
    var otherorder = parseInt($('input[name=' + otherNameAttribute + ']:checked').attr("sortorder"), 10);
    $('input[name=' + nameAttribute + '][sortorder!=' + $(check).attr("sortorder") + ']').each(function (i, el) {
        var id = getId(el.id);
        if ($('#pid' + id).attr('checked')) $('#pid' + id).removeAttr('checked');
    });
    if ((isViewMode && (thisorder < otherorder)) || (!isViewMode && (thisorder > otherorder))) {
        $('input[name=' + otherNameAttribute + ']').attr("checked", false);
        $('input[name=' + otherNameAttribute + '][sortorder=' + thisorder + ']').attr("checked", true).trigger("change");
    }
}

/*tabs -- */

function setTab(id) {
   
    $('#tab').val(id);
    $('.tab').hide();
    $("#" + id).show();

    $('#tabid').val(id);
   
    $("#tabs a").removeClass('selected');
    $("#a" + id).addClass('selected');

    return false;
}

/*-- tabs*/

function attachDescription(pid, width, resource) {
    var $pid = $('label[for="pid' + pid + '"]');
    var $link = $('<a/>').attr('href', '#').click(function() { return false; }).text('[?]').addClass('inline-block nounderline');
    $link.mouseout(function() { $('#e' + pid + 'hint').hide(); });
    $link.mouseover(function() { $('#e' + pid + 'hint').show(); });

    var $hint = $('<div/>').attr('id', 'e' + pid + 'hint').addClass('popupwrapper indent20 hidden');
    var $popup = $('<div/>').addClass('popup').css('width', width + 'px');
    var $desc = $('<div/>').addClass('details').text(resource);
    
    $hint.append($popup.append($desc));

    $pid.append($link);
    $pid.after($hint);
}

function CheckSystemFields(init) {
    if ($('#pid325').is(':checked')) {
        $('#pid326').attr('checked', true).attr('disabled', true);
        var html = '<input type="hidden" name="pid" value="326" id="pid326h"/>';
        $('#pid326').closest('td').append(html);
    }
    else if(!init) {
        $('#pid326').removeAttr('checked').removeAttr('disabled');
        $('#pid326h').remove();
    }
}

function CheckPermission(pid) {
    var checked = $("#pid" + pid + ":checked").length > 0;
    switch (pid) {
        case 603: //editusers
            if (checked) {
                $('#pid606').attr('checked', true);
                $('input.userallroles').attr('checked', false);
                $('#ridwrapper').removeClass('hidden');
            } else {
                $('#ridwrapper').addClass('hidden');
            }
            break;
        case 625: //editusers own company
            if (checked) {
                $('#pid606').attr('checked', true);
                $('#pid615').attr('checked', true);
                $('input.userallroles').attr('checked', false);
                $('#ownridwrapper').removeClass('hidden');
            } else {
                $('#ownridwrapper').addClass('hidden');
            }
            break;
        case 606: //editmyaccount
            if (!checked) {
                $('#pid603').attr('checked', false);
            }
        default:
            break;
    }
    return false;
}
function switchRoleFields(type) {
    switch (type) {
        case 'executor':
            $('#lipid401').show();
            $('#lipid402').show();
            $('#lipid503').show();
            $('#lipid504').show();
            $('#lipid505').show();
            $('#fieldrate').show();
            $('#lipid601').show();
            $('#lipid602').show();
            $('#lipid603').show();
            $('#lipid607').show();
            //$('#lipid609').show();
            $('#lipid610').show();
            $('#lipid612').show();
            $('#lipid613').show();
            $('#lipid614').show(); 
            $('#lipid626').hide();
            $('#cco626field').show();
            //$('#lipid622').show();
            $('label[for=pid617] span').text($('label[for=pid617]').attr('data-exec-text'));
            $('#pid625').attr('checked', false); $('#lipid625').hide();
            $('#fieldCommentEditTimeout').show();
            $('#fieldAutoUpdateTimeout').show();
            break;
        case 'client':
            $('#pid401').attr('checked', false); $('#lipid401').hide();
            $('#pid402').attr('checked', false); $('#lipid402').hide();
            $('#pid503').attr('checked', false); $('#lipid503').hide();
            $('#pid504').attr('checked', false); $('#lipid504').hide();
            $('#pid505').attr('checked', false); $('#lipid505').hide();
            $('#fieldrate').hide(); $('#fieldrate').hide();
            $('#pid601').attr('checked', false); $('#lipid601').hide();
            $('#pid602').attr('checked', false); $('#lipid602').hide();
            $('#pid603').attr('checked', false); $('#lipid603').hide();
            $('#pid607').attr('checked', false); $('#lipid607').hide();
            //$('#pid609').attr('checked', false); $('#lipid609').hide();
            $('#pid610').attr('checked', false); $('#lipid610').hide();
            $('#pid612').attr('checked', false); $('#lipid612').hide();
            $('#pid613').attr('checked', false); $('#lipid613').hide();
            $('#pid614').attr('checked', false); $('#lipid614').hide();
            $('#pid626').attr('checked', false); $('#lipid626').hide();
            $('#cco626').attr('checked', false); $('#cco626field').hide();
            $('label[for=pid617] span').text(RoleResources.ClientShowUserRole);
            $('#lipid625').show();
            $('#fieldCommentEditTimeout').hide();
            $('#fieldAutoUpdateTimeout').hide();
            break;
    }
}

function selectRoleNameLanguage() {
    var url = 'fieldlanguage.ivp/load?required=true&table=Roles&field=NameXml&id=' + $('#id').val();
    openDialog(url, 'selectlanguage', { width: 900, height: 650 });
    return false;
}

function selectRoleDescriptionLanguage() {
    var url = 'fieldlanguage.ivp/load?textarea=true&table=Roles&field=DescriptionXml&id=' + $('#id').val();
    openDialog(url, 'selectlanguage', { width: 900, height: 650 });
    return false;
}

function selectRoleAcronymLanguage() {
    var url = 'fieldlanguage.ivp/load?textarea=true&table=Roles&field=AcronymXml&id=' + $('#id').val();
    openDialog(url, 'selectlanguage', { width: 900, height: 650 });
    return false;
}

function sync626() {
    if ($('#cco626').is(':checked')) {
        $('#pid626').attr('checked', true);
    } else {
        $('#pid626').attr('checked', false);
    }
}
