/**
 * Author - koder_alex
 * ISQ - 669906617
 * VK - https://vk.com/koder_alex
 * KL - http://koder-alex.ru
 * It is forbidden to give, sell, modify.
 */
var timeOut = 10000;
var selector = '#main';
var timerIdUpdateJs = undefined;
var request = {update: 5E3, limit: 10, page: 2, peer: 0};

function requestUpdateMail() {
    var node = $('#contactUpdate');
    node.length === 0 && (node = $('#messages'));
    if (node.length == 1) {
        request.limit = parseInt(node.attr('data-limit'));
        request.update = parseInt(node.attr('data-update'));
    }
}

function updateJSMail() {
    var contactUpdate = $('#contactUpdate'), messageUpdate = $('#messages');
    if (contactUpdate.length === messageUpdate.length) {
        return;
    }
    if (request.peer == 0 && messageUpdate.length > 0 && messageUpdate.attr('data-peer') !== undefined) {
        request.peer = parseInt(messageUpdate.attr('data-peer'));
        messageUpdate.removeAttr('data-peer');
        $('.vk_mail').keypress(function (e) {
            if (e.shiftKey && (10 === e.keyCode || 13 === e.keyCode)) {
                $('#write_submit').click();
                e.preventDefault();
            }
        });
    }
    timerIdUpdateJs = TimerVisibl.every(request.update, function () {
        if (contactUpdate.length === messageUpdate.length) {
            TimerVisibl.stop(timerIdUpdateJs);
            return;
        }
        if (contactUpdate.length > 0) {
            mail.updateContact();
        }
        if (messageUpdate.length > 0) {
            if (request.peer > 0) {
                mail.updateMail(request.peer);
            }
        }
        return;
    });
}
$(document).ajaxRequest('a:not([data-noajax])', selector, {timeout: timeOut});

$(document).on('submit', 'form:not([data-noajax])', function (event) {
    $.ajaxRequest.submit(event, selector, {timeout: timeOut});
});
$(document).on('click', '[type=submit]:not([data-noajax])', function (event) {
    $.ajaxRequest.pressingButton(event); // ловим нажатие кнопки
    $("#smile_panel").remove();
    $("#stick_panel").remove();
});
$(document).on('ajaxRequest:start', function () { // старт перехода
    NProgress.start();
    UI.toTop.hide();
    request.peer = 0;
    request.page = 2;
    // удаляем таймер
    if (timerIdUpdateJs !== undefined) {
        TimerVisibl.stop(timerIdUpdateJs);
        timerIdUpdateJs = undefined;
    }
    if((typeof mediaUpload) != "undefined") {
        mediaUpload.clearAttaches();
    }
    Emotions.toggle()
    /**
     * здесь можно прописать остальные возможности
     * к примеру
     * если открыта боковая панелька
     * то здесь можно вызвать закрытие панельки
     * чтоб потом вовремя перехода нечего не висело лишнего
     */
});
$(document).on('ajaxRequest:end', function () { // завершение перехода
    request.peer = 0;
    request.page = 2;
    NProgress.done();
    requestUpdateMail();
    updateJSMail();
    SmileButton.init();
    Stickers.init();

    UI.clearInt(Intervals);
    var loc = $("#location");
    loc = (loc !== null ? loc.text().trim() : '');
    var back = $("#app-ajax-back").attr('href');
    if (back !== undefined) {
        loc = "<a href=\"" + back + "\">" + loc + "</a>";
    } else {
        loc = "<span>" + loc + "</span>";
    }
    $('#top .top--title').html(loc);
    $("body").removeClass("__js-sidebar-show");
    UI.addStylerForm();
    UI.mouseEnter();
    USER.title = $('title').text();
    UI.addScript(document.location.pathname + document.location.search);
    if ($("textarea[data-focus='1']")) {
        UI.formFocus($("textarea[data-focus='1']"));
    }
    if((typeof mediaUpload) != "undefined") {
        mediaUpload.clearAttaches();
    }
});
$(function () {
    requestUpdateMail();
    updateJSMail();
    UI.addScript(document.location.pathname + document.location.search);
    if((typeof mediaUpload) != "undefined") {
        mediaUpload.clearAttaches();
    }
});