﻿/// <reference path="jquery-1.4.1-vsdoc.js" />

function DoLogin(login, password)
{
    if (login == null) login = $('#Login').val();
    if (password == null) password = $('#Password').val();

    $('#LoginIndicator').show();
    $('#LoginButton').attr('disabled', true);

    $.ajax({
        url: '/cabinet/login',
        data: { login: login, password: password },
        type: 'post',
        success: function (data)
        {
            if (data.Success)
            {
                Redirect('/Cabinet');
                return;
            }

            $('#LoginIndicator').hide();
            $('#LoginButton').attr('disabled', false);
            alert(data.Success == false ? 'Неправильный логин или пароль!' : 'Ошибка во время проверки. Попробуйте еще раз.');
            $('#Login').focus();
        },
        error: function()
        {
            $('#LoginIndicator').hide();
            $('#LoginButton').attr('disabled', false);
            $('#Login').focus();
            alert('Ошибка во время проверки. Попробуйте еще раз.');
        }
    });  
}

function Redirect(url)
{
    window.location = url;
}

function LoadIpDetails()
{
    $('#IpDetailsLoading').show();

    $.ajax({
        url: '/Cabinet/Internet_GetData',
        data: $('#MainForm').serialize(),
        success: function (data)
        {
            $('#IpDetailsData').html(data);
            $('#IpDetailsLoading').hide();
        },
        error: function ()
        {
            $('#IpDetailsLoading').hide();
            alert('Ошибка загрузки данных. Попробуйте еще раз.');
        }
    });  
}

function ExportIpDetails()
{
    Redirect('/Cabinet/Internet_Export?' + $('#MainForm').serialize());
}

function LoadDocuments()
{
    $('#DocumentsLoading').show();

    $.ajax({
        url: '/Cabinet/Documents_GetData',
        data: $('#MainForm').serialize(),
        cache: false,
        success: function (data)
        {
            $('#DocumentsData').html(data);
            $('#DocumentsLoading').hide();
            MapCheckboxSet('Document', function (selectedCount) { $('#DownloadDocumentsButton').attr('disabled', selectedCount == 0); });
        },
        error: function ()
        {
            $('#DocumentsData').html(data);
            $('#DocumentsLoading').hide();
            alert('Ошибка загрузки документов. Попробуйте еще раз.');
        }
    });  
}
/*
function DownloadDocuments()
{
    $('#DownloadDocumentsIndicator').show();
    $.ajax({
        url: '/Cabinet/Documents_PrepareDownload',
        data: $('#MainForm').serialize(),
        success: function (data)
        {
            $('#DownloadDocumentsIndicator').hide();
            $('#DownloadDocumentsButton,.Document,#Document_All,#Month').attr('disabled', false);

            if (data.Url == null)
            {
                alert('Во время подготовки документов произошла ошибка. Попробуйте еще раз через некоторое время.');
                return;
            }
                      
            //$('#ResultFrame').attr('src', data.Url);

            //Redirect(data.Url);
        },
        error: function ()
        {
            $('#DownloadDocumentsIndicator').hide();
            $('#DownloadDocumentsButton,.Document,#Document_All,#Month').attr('disabled', false);

            alert('Во время подготовки документов произошла ошибка. Попробуйте еще раз через некоторое время.');
        }
    });

    $('#DownloadDocumentsButton,.Document,#Document_All,#Month').attr('disabled', true);
}*/

function DownloadDocuments_Begin()
{
    $('#DownloadDocumentsButton').attr('disabled', true);
}

function DownloadDocuments_End(success)
{    
    if (!success)
    {
        alert('Во время подготовки документов произошла ошибка. Попробуйте еще раз через некоторое время.');
    }
}

function ShowContactEditPanel()
{
    $('#ContactEditPanel').slideToggle();
}

function LoadContactInfo(contact)
{
    $('#Contact option').each(function () {
        if (this.text == contact) $('#Contact').val(this.value);
    });
    LoadContact();
}

function ShowContactEditPanelAndSelect(contact)
{
    LoadContactInfo(contact);
    $('#ContactEditPanel').slideDown();
    Redirect('#ContactEditPanel');
}

function LoadContact()
{
    var contact = contacts[$('#Contact').val()];
    $('#Name').val(contact.Name == 'Новый контакт' ? '' : contact.Name);
    $('#ContactName').val(contact.Name);
    $('#Contacts').val(contact.ContactEntries.join('\n'));
    $('#Comment').val('');
    $('#PrimaryOfficerLabel').hide();
    $('.Officer').attr('checked', false);

    if (contact.Name == 'Новый контакт')
    {
        $('#SendContactChangeOrderButton').val('Отправить заявку на создание');
    } 
    else
    {
        $('#SendContactChangeOrderButton').val('Отправить заявку на изменение');
    }

    $.each(contact.OfficerType.split(','), function ()
    {
        $('#Officer_' + parseInt(this)).attr('checked', true);
    });

    //$("form").validate().form();
    $('label.error').hide();
}

function UpdateContact()
{
    $('#Delete').attr('checked', false);
    SendContactChangeOrder();
}

function DeleteContact(contact) 
{
    if (confirm("Вы уверены, что хотите удалить выбранный контакт?")) 
    {
        $('#Delete').attr('checked', true);
        LoadContactInfo(contact);
        SendContactChangeOrder();
    }
}

function SendContactChangeOrder()
{
    if (!$("form").validate().form()) return;

    $('#SendContactChangeOrderIndicator').show();
    $('#SendContactChangeOrderButton').attr('disabled', true);

    $.ajax({
        url: '/Cabinet/Contact_SendOrder',
        data: $('form').serialize(),
        success: function (data)
        {
            $('#SendContactChangeOrderIndicator').hide();
            $('#SendContactChangeOrderButton').attr('disabled', false);

            alert('Заявка отправлена!');
        },
        error: function ()
        {
            $('#SendContactChangeOrderIndicator').hide();
            $('#SendContactChangeOrderButton').attr('disabled', false);

            alert('Ошибка отправки заявки. Попробуйте еще раз.');
        }
    });   
}

function MapCheckboxSet(prefix, handler)
{
    $('#' + prefix + '_All').click(function ()
    {
        $('input:checkbox.' + prefix).attr('checked', $('#' + prefix + '_All').attr('checked'));

        var selected = $('.' + prefix + ':checked').length;
        $('#' + prefix + '_SelectedCount').html(selected);
        if(handler != null) handler(selected);
    })
        
   {
        // на больших объемах начинает тормозить
        $('.' + prefix).click(function ()
        {
            var count = $('.' + prefix).length;
            var selected = $('.' + prefix + ':checked').length;

            $('#' + prefix + '_SelectedCount').html(selected);
            $('#' + prefix + '_All').attr('checked', count == selected);
            if (handler != null) handler(selected);
        });
    } 

    var selected = $('.' + prefix + ':checked').length;
    var count = $('.' + prefix).length;
    //$('#' + prefix + '_SelectedCount').html(selected);
    $('#' + prefix + '_All').attr('checked', count == selected);
    if(handler != null) handler(selected);
}

function CloseContactEditPanel() {
    $('#ContactEditPanel').slideUp();
}
