﻿var wcore = {
    dlgCallBack: null,
    hasEvents: false,
    adRotatorId: 0,
    adList: null,
    adTarget: '',
    processEvents: function () {
        $.get('/ajax.aspx?action=UnlockSession');
    },
    init: function () {
        $('.activePageNameContainer').parents("span").addClass("activePage");
        var dtc = $('#personalCabinetRoot');
        if (dtc.length > 0) { $('#adRotator').hide(); }
        $('.dtd').each(function (evt) { $(evt.target).val($(evt.target).val()); });
        $('.dtd').bind('change', function (evt) { $(evt.target).addClass('changed'); });
        $(document).bind('scroll', function (e) {
            wcore.hasEvents = true;
        });
        $(document).bind('mousemove', function () { wcore.hasEvents = true; });
        setInterval(function () { wcore.processEvents(); wcore.hasEvents = false; }, 5000);
        wcore.initSubmits();
    },
    initSubmits: function () {
        $('input[type="submit"]').bind('click', function (e) {
            var je = $(e.target);
            var jf = je.parents('form');
            je.attr('disabled', 'disabled');
            je.val('обработка....');
            jf[0].submit();
        });
    },
    checkAjaxResult: function (data, showMessage) {
        $("#sysStatus").hide();
        if (data == null) { alert("Запрошенное действие завершилось неудачно. Повторите попытку позже"); return false; }
        var res = data.getElementsByTagName("result");
        if (res.length == 0) { return false; }
        var tp = res[0].getAttribute("type");
        if (tp == "ok") { return true; }
        if (tp == "fail") { if (showMessage == true) { ("Ошибка : " + res[0].firstChild.nodeValue); } return false; }
        return true;
    },
    doGet: function (url, params, callback) {
        $('#sysStatus').show();
        $.get(url, params, function (data, callback) { wcore.doGetCallBack(data, callback); }, "xml");
    },
    doPost: function (url, data, callback) {
        $("#sysStatus").show();
        $.post(url, data, function (data, callback) { wcore.doGetCallBack(data, callback); }, "xml");
    },
    doGetCallBack: function (data, callback) {
        $("#sysStatus").hide();
        if (!wcore.checkAjaxResult(data)) { return false; }
        if (callback != null) {
            callback(data);
        }
    },
    showStatus: function (html) {
        $('body').append('<div class="_dlg"><div class="_dlgc">' + html + '</div></div>');
    },
    hideStatus: function () {
        $('#_dlg').remove();
    },
    collectFormFields: function (formName) {
        var xf = "<ff>";
        $('form[name="' + formName + '"] input[type="text"]').each(function (i, e) { var je = $(e); xf += "<" + je.attr('name') + '><![CDATA[' + je.val() + ']]></' + je.attr('name') + '>'; });
        $('form[name="' + formName + '"] input[type="password"]').each(function (i, e) { var je = $(e); xf += "<" + je.attr('name') + '><![CDATA[' + je.val() + ']]></' + je.attr('name') + '>'; });
        $('form[name="' + formName + '"] textarea').each(function (i, e) { var je = $(e); xf += "<" + je.attr('name') + '><![CDATA[' + je.val() + ']]></' + je.attr('name') + '>'; });
        $('form[name="' + formName + '"] select').each(function (i, e) { var je = $(e); xf += "<" + je.attr('name') + '><![CDATA[' + je.val() + ']]></' + je.attr('name') + '>'; });
        $('form[name="' + formName + '"] input[type="checkbox"]').each(function (i, e) { var je = $(e); xf += "<" + je.attr('name') + '>' + (je.attr('checked') == 'on' ? '1' : '0') + '</' + je.attr('name') + '>'; })
        xf += "</ff>";
        return xf;
    },
    showLoader: function (txt) {
        wcore.showDialog((txt != null && txt != undefined ? txt + "<br />" : "") + '<img src="/img/ajax-loader.gif" alt="" />');
    },
    showDialog: function (content, caption) {
        $('._dlg').remove();
        $('body').prepend('<table class="_dlg"><tr><td id="_dlgcell"><table style="width:100%;"><tr><td style="width:24%;"></td><td><div class="_dlgcntrl"><table style="width:100%;"><tr><td id="__dlgcap" style="text-align:left;">' + (caption == undefined ? '' : caption) + '</td><td style="text-align:right;"><a href="javascript:void(0);" onclick="wcore.closeDialog()">X</a></td></tr></table></div><div class="_dlgc">' + content + '</div></td><td style="width:24%;"></td></tr></table></td></tr></table>');
    },
    closeDialog: function () {
        $('._dlgc').slideUp('slow', function () { $('._dlg').remove(); });
    },
    rotateAds: function (targetId) {
        if (wcore.adTarget == '') { wcore.adTarget = targetId; }
        var adc = $('#' + wcore.adTarget);
        if (adc.length != 1) { return; }
        if (wcore.adList == null) {
            $.get('/', { extname: 'AdRotator.GetList' }, function (data) {
                if (wcore.checkAjaxResult(data)) {
                    var l = data.getElementsByTagName('l');
                    if (l.length != 1) { return; }
                    wcore.adList = l[0];
                    $('#' + wcore.adTarget).attr('src', l[0].getElementsByTagName('i')[0].getAttribute('src'));
                    if (wcore.adRotatorId == 0) { wcore.adRotatorId = window.setInterval("wcore.rotateAds()", 5000); }
                }
            }, 'xml');
        } else {
            var items = wcore.adList.getElementsByTagName('i');
            var cur = $('#' + wcore.adTarget).attr('src');
            var src = '';
            for (var i = 0; i < items.length; i++) {
                if (items[i].getAttribute('src') == cur) {
                    if (i < items.length - 1) {
                        src = items[i + 1].getAttribute('src');
                    } else {
                        src = items[0].getAttribute('src');
                    }
                }
                if (src != '') {
                    break;
                }
            }
            if (src == '') {
                src = items[0].getAttribute('src');
            }
            if (src != '') {
                $('#' + wcore.adTarget).fadeTo('slow', .1, function () {
                    $('#' + wcore.adTarget).attr('src', src).fadeTo('slow', 1);
                });
            }
        };
    }
}
$(document).bind('ready', function (evt) { wcore.init(); });
