;(function () {
    "use strict";
    var module = {'exports': {}},
        exports = {},
        version = "ver293",
        productionDomains = ['www.e1.ru','e1.ru','m.e1.ru'],
        document = window.document,
        location = window.location,
        isMobileMode = window.location.hostname.search('m.e1.ru') >= 0 || window.location.hostname.search('m2.e1.ru') >= 0;
    
    var loadScript = function(url, callback) {

        var script,
            head = document.head || document.documentElement;
        script = document.createElement("script");
        script.async = true;
        script.src = url;
        // Attach handlers for all browsers
        script.onload = script.onreadystatechange = function(_, isAbort) {
            if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {
                // Handle memory leak in IE
                script.onload = script.onreadystatechange = null;
                // Remove the script
                if (script.parentNode) {
                    script.parentNode.removeChild(script);
                }
                // Dereference the script
                script = null;
                // Callback if not abort
                if (!isAbort) {
                    callback(200, "success");
                }
            }
        };
        // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
        // Use native DOM manipulation to avoid our domManip AJAX trickery
        head.insertBefore(script, head.firstChild);
    };
    
    var loadStyle = function (url) {
        var style = document.createElement('link');
        style.setAttribute('type', 'text/css');
        style.setAttribute('rel', 'stylesheet');
        style.setAttribute('href', url);
        document.getElementsByTagName('head')[0].appendChild(style);
    };
    
    
    var fedsp = new function() {
    
        this._GET = function () {
            var _GET = {};
            var __GET = window.location.search.substring(1).split("&"); 
            for(var i=0; i<__GET.length; i++) { 
               var getVar = __GET[i].split("="); 
               _GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1]; 
            }
            return _GET;
        }
    
        this.hash = 'e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0';
        this.locationHash = '';
        
        this.data = {me: {}};
        
        this.crs = {"aurora":{"id":"264","cr_region":"e1","label":"aurora","abbr":"au","name":"\u0426\u0420 \u0428\u0438\u0440\u043e\u043a\u0430\u044f \u0420\u0435\u0447\u043a\u0430","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.488401","address":"\u043c\u043a\u0440\u043d. \u0428\u0438\u0440\u043e\u043a\u0430\u044f \u0420\u0435\u0447\u043a\u0430, \u0443\u043b. \u0415\u0432\u0433\u0435\u043d\u0438\u044f \u0421\u0430\u0432\u043a\u043e\u0432\u0430 35\/2 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \"\u0420\u0430\u0437\u0434\u043e\u043b\u044c\u0435 \u0445\u043e\u043c\u044f\u043a\u0430\"","latitude":"56.78851","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 908 903 98 58","transit":"","frozen":""},"yuzhny":{"id":"274","cr_region":"e1","label":"yuzhny","abbr":"yu","name":"\u0426\u0420 \u042e\u0436\u043d\u044b\u0439","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.621936","address":"\u0443\u043b. \u0411\u0435\u043b\u0438\u043d\u0441\u043a\u043e\u0433\u043e, 154","latitude":"56.811335","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-343-200-72-11","transit":"","frozen":""},"burevestnik":{"id":"282","cr_region":"e1","label":"burevestnik","abbr":"bu","name":"\u0426\u0420 \u0411\u0443\u0440\u0435\u0432\u0435\u0441\u0442\u043d\u0438\u043a","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.561847","address":"\u0443\u043b. \u0411\u0435\u043b\u043e\u0440\u0435\u0447\u0435\u043d\u0441\u043a\u0430\u044f, 28\u0430","latitude":"56.816385","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 9000447227","transit":"","frozen":""},"uktus":{"id":"286","cr_region":"e1","label":"uktus","abbr":"uk","name":"\u0426\u0420 \u0423\u043a\u0442\u0443\u0441","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.680434","address":"\u0443\u043b. \u042f\u043a\u0443\u0442\u0441\u043a\u0430\u044f, 10","latitude":"56.782558","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d:  +7 (902) 871-21-67","transit":"","frozen":""},"elizabeth":{"id":"296","cr_region":"e1","label":"elizabeth","abbr":"el","name":"\u0426\u0420 \u0415\u043b\u0438\u0437\u0430\u0432\u0435\u0442","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.616079","address":"\u0443\u043b. \u0411\u0438\u0441\u0435\u0440\u0442\u0441\u043a\u0430\u044f, 39","latitude":"56.747956","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 9028712167 ","transit":"","frozen":""},"ekat":{"id":"141","cr_region":"e1","label":"ekat","abbr":"c","name":"\u0426\u0420 \u0414\u0432\u043e\u0440\u0435\u0446 \u041c\u043e\u043b\u043e\u0434\u0435\u0436\u0438","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.582365","address":"\u0423\u043b. \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f, 29","latitude":"56.837485","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-922-192-9352","transit":"","frozen":""},"botanika":{"id":"159","cr_region":"e1","label":"botanika","abbr":"b","name":"\u0426\u0420 \u0411\u043e\u0442\u0430\u043d\u0438\u043a\u0430","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.631583","address":"\u0443\u043b. \u041c\u0430\u0448\u0438\u043d\u043d\u0430\u044f, 58","latitude":"56.803224","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (922) 129-16-41","transit":"","frozen":"1"},"uralmash":{"id":"161","cr_region":"e1","label":"uralmash","abbr":"u","name":"\u0426\u0420 \u0423\u0440\u0430\u043b\u043c\u0430\u0448","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.614758","address":"\u0443\u043b. \u041a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u0432, 56","latitude":"56.89266","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 919-371-94-99","transit":"","frozen":""},"sortirovka":{"id":"186","cr_region":"e1","label":"sortirovka","abbr":"s","name":"\u0426\u0420 \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.532922","address":"\u0443\u043b. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f, 33, 1\u0439 \u043f\u043e\u0434\u044a\u0435\u0437\u0434\r\n","latitude":"56.86674","contacts":"\u0422\u0435\u043b: 8-904-988-45-49","transit":"","frozen":"1"},"mobile":{"id":"190","cr_region":"e1","label":"mobile","abbr":"m","name":"\u0426\u0420 \u0412\u0442\u043e\u0440\u0447\u0435\u0440\u043c\u0435\u0442","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.608847","address":"\u0443\u043b. \u041e\u043a\u0440\u0443\u0436\u043d\u0430\u044f, 1\u0434","latitude":"56.755274","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (963) 44-91-481","transit":"","frozen":""},"michurina":{"id":"192","cr_region":"e1","label":"michurina","abbr":"i","name":"\u0426\u0420 \u041f\u0435\u0440\u0432\u043e\u043c\u0430\u0439\u0441\u043a\u0430\u044f","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.643441","address":"\u0443\u043b. \u041f\u0435\u0440\u0432\u043e\u043c\u0430\u0439\u0441\u043a\u0430\u044f, 82","latitude":"56.845224","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (900) 205-13-66","transit":"","frozen":"1"},"academ":{"id":"196","cr_region":"e1","label":"academ","abbr":"a","name":"\u0426\u0420 \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.528187","address":"\u041a\u0440\u0430\u0441\u043d\u043e\u043b\u0435\u0441\u044c\u044f, 95 (\u041b\u043e\u043c\u0431\u0430\u0440\u0434)","latitude":"56.789042","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (902) 446-48-96","transit":"","frozen":""},"yugozapad":{"id":"216","cr_region":"e1","label":"yugozapad","abbr":"y","name":"\u0426\u0420 \u042e\u0433\u043e-\u0417\u0430\u043f\u0430\u0434\u043d\u044b\u0439","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.536204","address":"\u0443\u043b. \u0417\u043e\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f,9; \u0431\u0443\u0442\u0438\u043a 218, 2,5 \u044d\u0442\u0430\u0436, \u0432\u0445\u043e\u0434 \u0441 \u0443\u043b.\u0417\u043e\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f.","latitude":"56.813666","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-992-331-06-00","transit":"","frozen":""},"apelsin":{"id":"222","cr_region":"e1","label":"apelsin","abbr":"ap","name":"\u0426\u0420 \u0410\u043f\u0435\u043b\u044c\u0441\u0438\u043d","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.595498","address":"\u0443\u043b.\u041e\u0441\u0442\u0440\u043e\u0432\u0441\u043a\u043e\u0433\u043e,1","latitude":"56.80035","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (982) 726-98-26","transit":"","frozen":"1"},"solnechny":{"id":"226","cr_region":"e1","label":"solnechny","abbr":"sl","name":"\u0426\u0420 \u0421\u043e\u043b\u043d\u0435\u0447\u043d\u044b\u0439","color":"","color_css":"","fee":"30","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.571414","address":"\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u043e\u0432, 1","latitude":"56.747383","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (902) 871-21-67","transit":"","frozen":""},"pervouralsk":{"id":"268","cr_region":"e1","label":"pervouralsk","abbr":"pu","name":"\u0426\u0420 \u041f\u0435\u0440\u0432\u043e\u0443\u0440\u0430\u043b\u044c\u0441\u043a","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"59.953346","address":"\u0433.\u041f\u0435\u0440\u0432\u043e\u0443\u0440\u0430\u043b\u044c\u0441\u043a, \u0443\u043b. \u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439, 29","latitude":"56.917563","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 9022749076","transit":"","frozen":"1"},"zarechny":{"id":"284","cr_region":"e1","label":"zarechny","abbr":"zr","name":"\u0426\u0420 \u0417\u0430\u0440\u0435\u0447\u043d\u044b\u0439","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"61.319729","address":"\u0433.\u0417\u0430\u0440\u0435\u0447\u043d\u044b\u0439, \u0443\u043b.\u041b\u0435\u043d\u0438\u043d\u0430,12","latitude":"56.814582","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 9021880168","transit":"","frozen":"1"},"sredneuralsk":{"id":"290","cr_region":"e1","label":"sredneuralsk","abbr":"su","name":"\u0426\u0420 \u0421\u0440\u0435\u0434\u043d\u0435\u0443\u0440\u0430\u043b\u044c\u0441\u043a","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.471315","address":"\u0433.\u0421\u0440\u0435\u0434\u043d\u0435\u0443\u0440\u0430\u043b\u044c\u0441\u043a, \u0443\u043b. \u0423\u0440\u0430\u043b\u044c\u0441\u043a\u0430\u044f, 11","latitude":"56.989399","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 9122320880 ","transit":"","frozen":""},"berezovsky":{"id":"178","cr_region":"e1","label":"berezovsky","abbr":"e","name":"\u0426\u0420 \u0411\u0435\u0440\u0435\u0437\u043e\u0432\u0441\u043a\u0438\u0439","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.819574","address":"\u0433. \u0411\u0435\u0440\u0435\u0437\u043e\u0432\u0441\u043a\u0438\u0439  \u0443\u043b. \u0410\u043d\u0443\u0447\u0438\u043d\u0430, 1\u0430","latitude":"56.907598","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-9021509059","transit":"","frozen":""},"sysert":{"id":"220","cr_region":"e1","label":"sysert","abbr":"sy","name":"\u0426\u0420 \u0421\u044b\u0441\u0435\u0440\u0442\u044c","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.83321","address":"\u0433. \u0421\u044b\u0441\u0435\u0440\u0442\u044c, \u0421\u0432\u0435\u0440\u0434\u043b\u043e\u0432\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u0443\u043b. \u0420\u0430\u0431\u043e\u0447\u0435\u0439 \u041c\u043e\u043b\u043e\u0434\u0435\u0436\u0438, 28\u0431","latitude":"56.515603","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-9122769188","transit":"","frozen":""},"polevskoy":{"id":"224","cr_region":"e1","label":"polevskoy","abbr":"p","name":"\u0426\u0420 \u041f\u043e\u043b\u0435\u0432\u0441\u043a\u043e\u0439","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.244814","address":"\u041f\u043e\u043b\u0435\u0432\u0441\u043a\u043e\u0439, \u0443\u043b. \u0412\u0435\u0440\u0448\u0438\u043d\u0438\u043d\u0430, 35","latitude":"56.49288","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: +7 (900) 045-09-97","transit":"","frozen":"1"},"vpyshma":{"id":"228","cr_region":"e1","label":"vpyshma","abbr":"vp","name":"\u0426\u0420 \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u041f\u044b\u0448\u043c\u0430","color":"","color_css":"","fee":"40","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.557922","address":"\u0433. \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u041f\u044b\u0448\u043c\u0430, \u0443\u043b. \u042e\u0431\u0438\u043b\u0435\u0439\u043d\u0430\u044f, 13","latitude":"56.97884","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8 (963) 852-21-84","transit":"","frozen":"1"},"novouralsk":{"id":"206","cr_region":"e1","label":"novouralsk","abbr":"n","name":"\u0426\u0420 \u041d\u043e\u0432\u043e\u0443\u0440\u0430\u043b\u044c\u0441\u043a","color":"","color_css":"","fee":"55","custodian_fee_once":"20","custodian_fee_repeat":"5","is_cr":"1","is_abonement":"1","longitude":"60.097077","address":"\u0443\u043b. \u0413\u0435\u0440\u0446\u0435\u043d\u0430, \u0434.10","latitude":"57.244196","contacts":"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8-982-648-07-65","transit":"","frozen":""},"boxberry":{"id":"280","cr_region":"e1","label":"boxberry","abbr":"bb","name":"Boxberry","color":"","color_css":"","fee":"0","custodian_fee_once":"0","custodian_fee_repeat":"0","is_cr":"","is_abonement":"","longitude":null,"address":"","latitude":null,"contacts":"","transit":"","frozen":""},"kurier":{"id":"143","cr_region":"e1","label":"kurier","abbr":"k","name":"\u041a\u0443\u0440\u044c\u0435\u0440\u0441\u043a\u0430\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430","color":"","color_css":"","fee":"0","custodian_fee_once":"0","custodian_fee_repeat":"0","is_cr":"","is_abonement":"","longitude":"0","address":"","latitude":"0","contacts":"","transit":"","frozen":""},"org":{"id":"145","cr_region":"e1","label":"org","abbr":"o","name":"\u0423 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u0430","color":"","color_css":"","fee":"0","custodian_fee_once":"0","custodian_fee_repeat":"0","is_cr":"","is_abonement":"","longitude":"0","address":"","latitude":"0","contacts":"","transit":"","frozen":""},"razdachi":{"id":"147","cr_region":"e1","label":"razdachi","abbr":"r","name":"\u0420\u0430\u0437\u0434\u0430\u0447\u0438 \u043f\u043e \u0433\u043e\u0440\u043e\u0434\u0443","color":"","color_css":"","fee":"0","custodian_fee_once":"0","custodian_fee_repeat":"0","is_cr":"","is_abonement":"","longitude":"0","address":"","latitude":"0","contacts":"","transit":"","frozen":""}};
        this.rubricKinds = {"man":{"name":"\u041c\u0443\u0436\u0447\u0438\u043d\u0430\u043c","service_name":"man","position":0},"woman":{"name":"\u0416\u0435\u043d\u0449\u0438\u043d\u0430\u043c","service_name":"woman","position":100},"pregnant":{"name":"\u041c\u0430\u043c\u0430\u043c \u0438 \u043c\u0430\u043b\u044b\u0448\u0430\u043c","service_name":"pregnant","position":200},"child":{"name":"\u0414\u0435\u0442\u044f\u043c","service_name":"child","position":300},"home":{"name":"\u0414\u043b\u044f \u0434\u043e\u043c\u0430 \u0438 \u0434\u0430\u0447\u0438","service_name":"home","position":400},"soul":{"name":"\u0414\u043b\u044f \u0434\u0443\u0448\u0438","service_name":"soul","position":500},"gift":{"name":"\u041f\u0440\u0430\u0437\u0434\u043d\u0438\u043a, \u043f\u043e\u0434\u0430\u0440\u043a\u0438","service_name":"gift","position":600},"sport":{"name":"\u0421\u043f\u043e\u0440\u0442 \u0438 \u0442\u0443\u0440\u0438\u0437\u043c","service_name":"sport","position":700},"zoo":{"name":"\u0417\u043e\u043e\u0442\u043e\u0432\u0430\u0440\u044b","service_name":"zoo","position":800},"food":{"name":"\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043f\u0438\u0442\u0430\u043d\u0438\u044f","service_name":"food","position":900},"accessories":{"name":"\u0410\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b","service_name":"accessories","position":1000},"school":{"name":"\u0414\u043b\u044f \u0448\u043a\u043e\u043b\u044b \u0438 \u043e\u0444\u0438\u0441\u0430","service_name":"school","position":1100},"car":{"name":"\u0410\u0432\u0442\u043e\u0442\u043e\u0432\u0430\u0440\u044b","service_name":"car","position":1200},"health":{"name":"\u0417\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u043a\u0440\u0430\u0441\u043e\u0442\u0430","service_name":"health","position":1300},"other":{"name":"\u0414\u0440\u0443\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b","service_name":"other","position":1400}};
        this.packageCaseNewsletterKinds = {"extend":{"short":"\u041f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u043c \u0441\u0431\u043e\u0440","long":"\u041f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u043c \u0441\u0431\u043e\u0440 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0434\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u043a\u0438:<br>\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u044b \u0441\u0442\u043e\u043f\u0430 \u0438 \u0440\u0430\u0437\u0434\u0430\u0447 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f."},"assist":{"short":"\u041f\u043e\u043c\u043e\u0433\u0430\u0439\u0442\u0435 \u0434\u043e\u0441\u043e\u0431\u0440\u0430\u0442\u044c","long":"\u041d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043f\u0430\u0440\u0430 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u043f \u0441\u0431\u043e\u0440\u0430!<br>\u041f\u043e\u043c\u043e\u0433\u0430\u0439\u0442\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0436\u0435 \u0434\u043e\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u043a\u0443\u043f\u043e\u0447\u043a\u0443."},"renewal":{"short":"\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435","long":"\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u043f\u043e \u0437\u0430\u043a\u0443\u043f\u043a\u0435!<br>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0432\u0441\u0435 \u043b\u0438 \u0412\u0430\u0448\u0438 \u0437\u0430\u043a\u0430\u0437\u044b \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b, \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u044b."},"revise":{"short":"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0432\u0435\u0440\u043a\u0430","long":"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0441\u0432\u0435\u0440\u043a\u0430 \u043f\u043e \u0441\u0431\u043e\u0440\u0443, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439,<br>\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e \u0434\u043e\u0437\u0430\u043a\u0430\u0437\u044b, \u043e\u0442\u043a\u0430\u0437\u044b \u0443\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b."},"payout":{"short":"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0441\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043e\u043f\u043b\u0430\u0442\u044b","long":"\u0415\u0441\u043b\u0438 \u0443 \u0412\u0430\u0441 `\u0443\u043f\u0441` \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 ( \u0438 \u0440\u0430\u043d\u0435\u0435 \u0412\u044b \u043d\u0435 \u043f\u043b\u0430\u0442\u0438\u043b\u0438 \u0430\u0432\u0430\u043d\u0441),<br>\u0442\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0412\u0430\u0448 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d."},"delay":{"short":"\u0420\u0430\u0437\u0434\u0430\u0447\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f","long":"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0420\u0430\u0437\u0434\u0430\u0447\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u043f\u0440\u0438\u043d\u043e\u0448\u0443 \u0412\u0430\u043c \u0441\u0432\u043e\u0438 \u0438\u0437\u0432\u0438\u043d\u0435\u043d\u0438\u044f,<br>\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u0440\u043e\u043a\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0439 \u0440\u0430\u0437\u0434\u0430\u0447\u0438.<br>\u0413\u0440\u0443\u0437 \u0441\u043a\u043e\u0440\u043e \u0431\u0443\u0434\u0435\u0442! \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0436\u0434\u0435\u043c."},"distribution":{"short":"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0440\u0430\u0437\u0434\u0430\u0447\u0438","long":"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0415\u0441\u043b\u0438 \u0443 \u0412\u0430\u0441 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 `\u0443\u043f\u0441`, \u0442\u043e \u0412\u0430\u0448 \u0437\u0430\u043a\u0430\u0437, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043f\u0440\u0438\u0448\u0435\u043b.<br>\u041d\u043e \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0442\u043e\u0432\u0430\u0440 \u0432 \u0438\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435,<br>\u0438 \u0412\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u043a\u0443\u043f\u0430!<br>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437?"},"feedback":{"short":"\u0411\u0443\u0434\u0443 \u0440\u0430\u0434\u0430 \u0412\u0430\u0448\u0438\u043c \u043e\u0442\u0437\u044b\u0432\u0430\u043c","long":"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c!<br>\u0412\u044b \u0440\u0430\u043d\u0435\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0432 \u043c\u043e\u0435\u0439 \u0437\u0430\u043a\u0443\u043f\u043e\u0447\u043a\u0435, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0412\u0430\u043c \u0432\u0441\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c.<br>\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0442\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043c\u043d\u0435 \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440!<br>\u0418, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434\u0430 \u043b\u044e\u0431\u044b\u043c \u0412\u0430\u0448\u0438\u043c \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u043f\u043e \u0437\u0430\u043a\u0430\u0437\u0430\u043c!<br>\u041a\u0442\u043e \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b - \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e!"},"new":{"short":"\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043a\u0443\u043f","long":"\u041d\u0430\u0447\u0430\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0432\u044b\u043a\u0443\u043f \u043f\u043e \u0437\u0430\u043a\u0443\u043f\u043a\u0435.<br>\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u043a\u0430\u0437\u044b!"},"any":{"short":"\u041d\u043e\u0432\u043e\u0441\u0442\u0438 \u043f\u043e \u0437\u0430\u043a\u0443\u043f\u043a\u0435","long":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u0437\u0430\u043a\u0443\u043f\u043a\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442\u0435."}};
        
                this.region = "e1"; 
                this.forum_id = 90; 
                this.topic_id = 90000000687912; 
                this.isOrg = 0; 
                this.isWorker = 0; 
                this.isModerator = 0; 
                this.isCoordinator = 0; 
                this.isAdmin = 0; 
                this.modes = {"sver":"\u0421\u0432\u0435\u0440\u043a\u0430","sbor":"\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043e\u043f\u043b\u0430\u0442\u044b","razd":"\u0420\u0430\u0437\u0434\u0430\u0447\u0438","shop":"\u0421\u0431\u043e\u0440 \u0437\u0430\u043a\u0430\u0437\u043e\u0432"}; 
                this.branches = {"sp":"\u0421\u041f","pv":"\u041f\u0412","vp":"\u0412\u041f"}; 
                
        this.templates = {};
        
        this.initDataUrl = '//fedsp.com/remote/e1/data/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0?jsoncallback=fedsp.initdata';
        this.initTableUrl = '//fedsp.com/remote/e1/table/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0?jsoncallback=fedsp.inittable';
        this.initShopUrl = '//fedsp.com/remote/e1/shop/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0?async=on&jsoncallback=fedsp.initshop';
        this.initCollectionUrl = '//fedsp.com/remote/e1/collection/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0?collection=collection_id&jsoncallback=fedsp.initcollection';
        this.reInit = function(){
            loadScript(this.initDataUrl + '&reinit=1', function(){});
        }
        
        this.cookie = {
            set: function(name, value, expires, path, domain, secure) {
                if (!name || !value)
                    return false;
                var str = name + '=' + encodeURIComponent(value);
                if (expires)
                    str += '; expires=' + expires.toGMTString();
                if (path)
                    str += '; path=' + path;
                if (domain)
                    str += '; domain=' + domain;
                if (secure)
                    str += '; secure';
                document.cookie = str;
                return true;
            },
            get: function(name) {
                var pattern = "(?:; )?" + name + "=([^;]*);?";
                var regexp = new RegExp(pattern);
                if (regexp.test(document.cookie))
                    return decodeURIComponent(RegExp["$1"]);
                return false;
            },
            remove: function(name, path, domain) {
                this.set(name, 1, new Date(0), path, domain);
                return true;
            }
        };
        
        
        this.listener = function(event) {
            if( 
                event.origin != (window.location.protocol + '//fedsp.ru') &&
                event.origin != (window.location.protocol + '//fedsp.com') &&
                event.origin != (window.location.protocol + '//fed-sp.ru') &&
                event.origin != (window.location.protocol + '//fed-sp.com') 
              ) {
              /* что-то прислали с чужого домена - проигнорируем.. */
              return;
            }

            if (event.data == 'reload') {
                window.location.reload();
            }
        }

        
        this.nl2br = function( text ) {
            if (text && typeof text == 'string')
                return text.replace(/([^>])\n/g, '$1<br/>');
            else
                return text;
        }

        // deprecated
        // старая версия обращения к кроссдомену через GET в формате  jsonp
        this.jsonpFormRequest = function (arr, form, options, formcallback) {
            var errorMessage = '';
            var errorRequiredElement = fedsp._.find(fedsp.$(form).find('[required]:visible'), function(el) {
                if (el.value.length == 0) {
                    errorMessage = 'Не заполнено обязательное поле!';
                    return true;
                } else if (el.type == 'tel' && !el.value.match(/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/)) {
                    errorMessage = 'Некорректно заполнен номер телефона!';
                    return true;
                }
                return false;
            });
            fedsp.$(form).find('[required]:visible').css({background: 'unset'})
            if (errorRequiredElement) {
                errorRequiredElement.focus();
                fedsp.$(errorRequiredElement).css({background: '#FFCCCC'})
                alert (errorMessage + " На поле наведен фокус.");
            } else {
                fedsp.$.getJSON(
                    options.url + '?jsoncallback=?',
                    arr,
                    function(data) {
                        formcallback(data);
                        return false;
                    }
                );
            }
            return false;
        }
        
        // use it
        // новая версия кошерного кроссдоменного запроса через GET или POST (задается в форме как method)
        // через классический ajax запрос с CORS
        this.jsonFormRequest = function (arr, form, options, formcallback) {
            fedsp.$.ajax({
                dataType: "json",
                crossDomain: true,
                xhrFields: {
                    withCredentials: true
                },
                type: ("type" in options && options.type.search(/^post$/i) >=0 ? "POST" : "GET"),
                url: options.url,
                data: arr,
                success: function(data) {
                    formcallback(data);
                    return false;
                }
            });
            return false;
        }
        
        this.inittemplates = function(data) {
            fedsp.templates = data;
        }
        
        this.getThemeName = function() {
            /* theme name need */
            var subject = this.$('h1.e1-forum__title').text() || this.$('title').text();
            if (subject) {
                subject = subject.replace(/<\/?[^>]+>/gi, '').replace(/"/g, '&quot;').replace(/'/g, '&prime;').trim();
            }
            return subject;
        }
        
        this.initoptions = function(data) {
            (function( self, $, _, data ) {
                
                    var subject = self.getThemeName();
                    var compiled = _.template(self.templates['options.jsonp']);
                    var options = compiled({self: self, _: _, data: self.data, me: self.data.me, subject: subject});
                    $('#fedsp-widget-options').html(options);
                    
                    $('#fedsp-widget-options').find('.fedsp.options').find('input.upload-form-link').click(function(){
                                                    //clean
                            window.exports = undefined;
                            if (window.module && 'exports' in window.module) window.module.exports = undefined;
                            
                            var editor = $('#fedsp-widget-options').find('.fedsp.options').find('#total-table-editor');
                            if (editor && editor.length) {
                                $(editor).toggle();
                            } else if (self.templates['table-editor.jsonp'] &&  !isMobileMode ) {
                                var load = function() {
                                    loadScript(/*'https://unpkg.com/vue'*/ 'https://unpkg.com/vue@2.6.11/dist/vue.js', function(){
                                        loadScript('https://unpkg.com/xlsx@0.15.5/dist/shim.min.js', function(){
                                            loadScript('https://unpkg.com/xlsx@0.15.5/dist/xlsx.full.min.js', function(){
                                                var compiled = _.template(self.templates['table-editor.jsonp']);
                                                $('#fedsp-widget-options').find('.fedsp.options').append(
                                                    compiled({table: data.table, self: self, $: $, _: _, data: data, me: data.me})
                                                )
                                            })
                                        })
                                    })
                                }
                                if (data['attachedStatus'] == 'fail') {
                                    loadScript(fedsp.initTableUrl, function() {
                                        load()
                                    })
                                } else {
                                    load()
                                }
                            }
                                            });
                    
                    $('#fedsp-widget-options').find('.fedsp.options').find('form.excelsource').find('a.original-excel').click(function(){
                        $(this).parents('form.excelsource').ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                $(form).find('img').attr('src', '//fedsp.com/images/animate/loading4.gif');
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && _.size(data)) _.each(data, function(value, i) {
                                        var d = new Date ( data[i]['tstamp'] * 1000 );
                                        var title = data[i]['filename'] + ' [' + Math.round( data[i]['size']/1000 ) + ' Kb] от ' + d.toLocaleDateString() + ' ' + d.toLocaleTimeString();
                                        $(form).after('<a target="_blank" class="excel-source" href="' + data[i]['url'] + '" title="' + title + '"><img width="24" hspace="3" align="absmiddle" src="//fedsp.com/images/sp/excel48.png"> ' + data[i]['filename'] + ' [' + Math.round( data[i]['size']/1000 ) + 'Kb] </a> &nbsp; ');
                                    });
                                    $(form).remove();
                                });
                            }
                        });
                        return false;
                    });
                    
                    // for fast attach by multiorg
                    $('#fedsp-widget-options').find('.fedsp.options').find('form.attach-package-form').submit(function(){
                        $(this).attr('disabled', 'disabled');
                        $(this).find('i').addClass('rotate');
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(response){
                                    // work here;
                                    if (response && response == 'ok') {
                                        alert('Сбор заказов успешно прикреплен.');
                                        self.reInit();
                                    } else {
                                        alert('Произошла ошибка. Сбор заказов не был прикреплен. Попробуйте это позднее.');
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    
                    $('#fedsp-widget-options').find('.fedsp.options').find('.package-add').click(function(){
                        var container = $('#fedsp-widget-options').find('.fedsp.options').find('.fedsp-package-add-form');
                        if (container && container.length) {
                            $(container).toggle();
                        } else {
                            
                            $('#fedsp-widget-options').find('.fedsp.options').append('<div style="clear:both;"></div><div class="fedsp-package-add-form" align="center"><img style="padding:0; margin:0;" src="//fedsp.com/images/animate/loading11.gif"></div>');
                            
                            $(this).parents('form.available-packages-form').ajaxSubmit({
                                beforeSubmit: function(arr, form, options){
                                    return self.jsonpFormRequest(arr, form, options, function(packages){
                                        // work here;
                                        var container = $('#fedsp-widget-options').find('.fedsp.options').find('.fedsp-package-add-form');
                                        var compiled = _.template(self.templates['package-add.jsonp']);
                                        var tpl = compiled({self: self, _: _, $: $, data: self.data, me: self.data.me, packages: packages, subject: subject});
                                        $(container).empty().append(tpl);
                                        
                                        $(container).find('form.attach-package-form').submit(function(){
                                            $(this).attr('disabled', 'disabled');
                                            $(this).find('i').addClass('rotate');
                                            $(this).ajaxSubmit({
                                                beforeSubmit: function(arr, form, options){
                                                    return self.jsonpFormRequest(arr, form, options, function(response){
                                                        // work here;
                                                        if (response && response == 'ok') {
                                                            alert('Сбор заказов успешно прикреплен.');
                                                            self.reInit();
                                                        } else {
                                                            alert('Произошла ошибка. Сбор заказов не был прикреплен. Попробуйте это позднее.');
                                                        }
                                                    });
                                                }
                                            });
                                            return false;
                                        });
                                        
                                    });
                                }
                            });
                            
                        }
                        return false;
                    });
                
            })( this, this.$, this._,  this.data);
        }
        
        this.initdata = function(data) {
            
            var self = this;
        
            /*   -===   Yandex.Metrika counter   ===-   */
            try { window.yaCounter24932759 = new Ya.Metrika({id:24932759, accurateTrackBounce:true});
            } catch(e) { }
            /*          /Yandex.Metrika counter           */
        
            if (data && this._.size(data)) this.$.each( data, function( key, value ) {
                fedsp.data[key] = value;
            });
            
            /* init table options */
            this.initoptions();
            /* * * * */
            
            this.$('#fedsp-widget-table').empty();
            
            /* if attached table */
            if (data && data['attachedTable'] && ( data['attachedStatus'] == 'ok' || data['attachedStatus'] == 'done' ) ) {
                this.$('#fedsp-widget-table').html("<p align='center' style='vertical-align: middle; background: #FFFFFF; margin: 0px; padding: 1%;'><img style='padding:0; margin:0;' src='//fedsp.com/images/animate/loading11.gif'></p>");
                loadScript(fedsp.initTableUrl, function(){});
            }
            
            /* if attached package */
            if (data && data['attachedPackage']) {
                this.$('#fedsp-widget-table').html("<p align='center' style='vertical-align: middle; background: #FFFFFF; margin: 0px; padding: 1%;'><img style='padding:0; margin:0;' src='//fedsp.com/images/animate/loading11.gif'></p>");
                if (data['attachedPackageStatus'] == 'ok' || data['attachedPackageStatus'] == 'done' || data['attachedPackageStatus'] == 'frustrate') {
                    // moved to init loadStyle("//fedsp.com/remote/bootstrap.part.css", function(){});
                    loadScript("//fedsp.com/remote/bootstrap.part.js", function(){
                        loadScript(fedsp.initShopUrl, function(){});
                    });
                } else {
                    // moved to init loadStyle("//fedsp.com/remote/bootstrap.part.css", function(){});
                    loadScript("//fedsp.com/remote/bootstrap.part.js", function(){
                        self.initshop({});
                    });
                }
            }
            
            if (!data.me.id || !parseInt(data.me.id)) return;
            
            (function( self, $, _, data ) {
                if (self.templates['goods.jsonp'] && $('#fedsp-widget-1').length) {
                    var compiled = _.template(self.templates['goods.jsonp']);
                    var goods = compiled({goods: self.data.goods, self: self, _: _, data: self.data, me: self.data.me});
                    $('#fedsp-widget-1').html(goods);
                    
                    /* flag up in button if is active goods */
                    if( _.size(self.data.goods['sver']) || _.size(self.data.goods['sbor']) || _.size(self.data.goods['razd']) || _.size(goods['orders'])) {
                        if(!$('#fedsp-widget-1-but').hasClass('active'))
                            $('#fedsp-widget-1-but').addClass('active');
                        if(!$('.fedsp-widget-1-but').hasClass('active'))
                            $('.fedsp-widget-1-but').addClass('active');
                        if(!$('.fedsp-widget-1-but').hasClass('event'))
                            $('.fedsp-widget-1-but').addClass('event');
                    }
                    
                    /* personal user data change  */
                    
                    $('.fedsp.goods').find('form.personform').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data['submit'] == 'ok') {
                                        $(form).find('[name=submit]').before("<br><span class='control-info submit'>Данные успешно изменены</span>");
                                        alert('Данные успешно изменены');
                                        self.reInit();
                                    } else if (_.size(data)) {
                                        $.each( data, function( key, value ) {
                                            $(form).find('[name=' + key + ']').after("<br><span class='control-info error'>" + value + "</span>");
                                        });
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    
                    /*    * * *     */
                    
                    
                    /* magnet card order */
                    
                    $('.fedsp.goods').find('form.cardorderform').submit(function(){
                        if ( data.me && data.me.mycr && self.crs[data.me.mycr] && parseInt(self.crs[data.me.mycr]['is_cr']) ) {
                            if (data.me && data.me.phone) {
                                $(this).ajaxSubmit({
                                    beforeSubmit: function(arr, form, options){
                                        return self.jsonpFormRequest(arr, form, options, function(data){
                                            // work here;
                                            if (data && data == 'ok') {
                                                                                                alert('Заказ принят. Информация о раздаче карт будет во вкладке "Покупки"');
                                                self.reInit();
                                            } else {
                                                alert(data);
                                            }
                                        });
                                    }
                                });
                            } else {
                                $('.fedsp').find('form.personform').find('input[name=fsp_phone]').parents('.control-group').addClass('error');
                                alert('Заказ карты невозможен без указания номера телефона!');
                            }

                        } else {
                            $('.fedsp').find('form.personform').find('select[name=fsp_mycr]').parents('.control-group').addClass('error');
                            alert('Заказ карты невозможен без указания ЦР!');
                        }
                        return false;
                    });
                    
                    /*    * * *     */
                    
                    
                    /*  user to org feedback  */
                    
                        $('.fedsp.goods').find('.raiting_area').click(function(e){
                            e.preventDefault();
                            var rate = $(this).attr('rate');
                            $(this).parent().parent().find('input[value="'+rate+'"]').click().change();
                        });     
                        $('.fedsp.goods').find('.need-feedback-org').click(function(){
                            $(this).hide();
                            $(this).parents('td.info').find('.org-feedback-grade').show();
                            return false;
                        });
                        $('.fedsp.goods').find('input.rat_variant').change(function(){
                            $(this).parents('td.info').find('.org-feedback-grade').hide();
                            $(this).parents('td.info').find('.org-feedback-msg').show();
                        });
                        $('.fedsp.goods').find('form.orgfeedbackform').submit(function(){
                            $(this).ajaxSubmit({
                                beforeSubmit: function(arr, form, options){
                                    return self.jsonpFormRequest(arr, form, options, function(data){
                                        // work here;
                                        if (data && data == 'ok') {
                                            alert('Спасибо! Ваше мнение ценно для нас.');
                                            self.reInit();
                                        } else {
                                            alert('Произошла ошибка! Пожалуйста попробуйте позднее.');
                                        }
                                    });
                                }
                            });
                            return false;
                        });
                    
                    /*    *  *  *   */
                    
                    /* promocode activate */
                    
                    $('.fedsp.goods').find('form.promoform').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                $(form).find('.promo-msg').empty();
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data['submit'] == 'ok') {
                                        $(form).find('.control-group').hide();
                                        $(form).find('.promo-msg').html("<span class='control-info submit'>Промо-код успешно активирован.</span>");
                                    } else if (_.size(data)) {
                                        $(form).find('.promo-msg').empty().append("<br>");
                                        $.each( data, function( key, value ) {
                                            $(form).find('.promo-msg').append("<span class='control-info error'>" + value + "</span><br>");
                                        });
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    
                    /*    * * *     */
                    
                    /*    refuse feedback    */
                    $('.fedsp.goods').find('form.refuse-feedback').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                $(form).parents('tr.orders-block.need-feedback').hide();
                                return self.jsonFormRequest(arr, form, options);
                            }
                        });
                        return false;
                    });
                    /*    * * *     */
                    
                    /* personal data secure open */
                    $('.fedsp.goods').find('.personal-secure-info').find('a.asbut').click(function(){
                        $('.fedsp.goods').find('.personal-secure-info').slideToggle(0);
                        $('.fedsp.goods').find('.personal-secure').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.personal-secure-link').click(function(){
                        $('.fedsp.goods').find('.personal-secure').slideToggle(0);
                        /*$('.fedsp.goods').find('.personal-secure-info').slideToggle(0);*/
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    
                    $('.fedsp.goods').find('.close-widget-1').click(function(){
                        $(".sp-widget").slideToggle("slow");
                        return false;
                    }); 
                    
                    $('.fedsp.goods').find(".close-widget-1").on('click', function(){
                        $('#fedsp-widget-1').slideToggle();
                        return false;
                    });
                    $('.fedsp.goods').find('.personal-promo-link').click(function(){
                        $('.fedsp.goods').find('.personal-promo').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.sver-block-link').click(function(){
                        $('.fedsp.goods').find('.sver-block').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.sbor-block-link').click(function(){
                        $('.fedsp.goods').find('.sbor-block').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.razd-block-link').click(function(){
                        $('.fedsp.goods').find('.razd-block').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.orders-block-link').click(function(){
                        if (self.cookie.get('hide_block_fedsp_orders')) {
                            self.cookie.remove('hide_block_fedsp_orders', '/');
                        } else {
                            self.cookie.set('hide_block_fedsp_orders', 1, new Date((new Date()).setYear(2100)), '/');
                        }
                        $('.fedsp.goods').find('.orders-block').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    $('.fedsp.goods').find('.about-block-link').click(function(){
                        $('.fedsp.goods').find('.about-block').slideToggle(0);
                        $(this).parent().find('.chevron-down').toggleClass('icon-chevron-down').toggleClass('icon-chevron-up');
                    });
                    
                    if (data.forumThemeNeedExtra) {
                        self.themeCollect();
                    }
                }
                
                self.initMessenger();
                
            })( this, this.$, this._,  this.data);
        };
        
        this.inittable = function(data) {
            if (data && this._.size(data)) this.$.each( data, function( key, value ) {
                fedsp.data[key] = value;
            });
            
            if ( ['ok','done'].indexOf(fedsp.data['attachedStatus']) < 0 ) return;
            
            /* init table options */
            this.initoptions();
            /* * * * * */
            
            (function( self, $, _, data, table ) {
            
                if (table.viewReason && self.templates['table-org.jsonp'] && $('#fedsp-widget-table').length && ( _.contains(table.viewReason, 'admin') || _.contains(table.viewReason, 'moderator') || _.contains(table.viewReason, 'org') ) && !isMobileMode ) {
                    /* view as moderator admin or org(owner) */
                
                    var compiled = _.template(self.templates['table-org.jsonp']);
                    var htmlTable = compiled({table: data.table, self: self, $: $, _: _, data: data, me: data.me});
                    
                    $('#fedsp-widget-table').html(htmlTable);
                    
                    var tableExcelNode = $('.fedsp.table').find('table.excel');
                    
                    
                    
                    $(tableExcelNode).find("td[col=" + table['login_field'] + "]").addClass("sellogin");
                    $(tableExcelNode).find("td[col=" + table['cost_field'] + "]").addClass("selcost");
                    $(tableExcelNode).find("td[col=" + table['totalcost_field'] + "]").addClass("seltotalcost");  
                    if (parseInt(table['quantity_field']) > 0) {
                        $(tableExcelNode).find("td[col=" + table['quantity_field'] + "]").addClass("selquantity");
                    }
                    
                    /*   -= org to user feedbacks  =- */
                    $(tableExcelNode).find('.gofeedback').click(function(){
                        $(this).hide().parent().find('div.feedback-cell').show();
                    });
                    $(tableExcelNode).find('span.em-radio').click(function(){
                        var p = $(this).parent('');
                        $(p).find('span.em-radio').removeClass('active');
                        $(p).find('input[name=rate]').val( $(this).attr('v') );
                        $(this).addClass('active');
                    });

                    $(tableExcelNode).find('form.urateform').submit(function() {
                        if ( parseInt($(this).find('input[name=rate]').val()) > 0 ) {
                            $(this).ajaxSubmit({
                                beforeSubmit: function(arr, form, options){
                                    return self.jsonpFormRequest(arr, form, options, function(data){
                                        // work here;
                                        if (data && data == 'ok') {
                                            alert('Спасибо! Ваше мнение ценно для нас.');
                                            var p = $(form).parent();
                                            var rate = $(p).find('input[name=rate]').val();
                                            var rate_comment = $(p).find('input[name=rate_comment]').val();
                                            $(p).html("<span class='estimate estim" + rate + "_selected' title='" + rate + "'><sup>" + rate + "</sup></span><br clear='all'>" + rate_comment);
                                        } else {
                                            alert('Произошла ошибка! Пожалуйста попробуйте позднее.');
                                        }
                                    });
                                }
                            });
                        } else {
                            alert('Ошибка. Оценка не выбрана!');
                        }
                        return false;
                    });
                    /*   -= feedbacks  =- */
                    
                    
                    /*   -=  my requisites =-   */
                    $('.fedsp.table').find('form.requisite-form-del').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        alert('Выполнено!');
                                        loadScript(fedsp.initTableUrl, function(){});
                                    } else {
                                        alert(data);
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    $('.fedsp.table').find('form.requisite-form-add').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        alert('Выполнено!');
                                        loadScript(fedsp.initTableUrl, function(){});
                                    } else {
                                        alert(data);
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    /*   -=  my requisites =-   */
                    
                    
                    
                    /*   -=  admin notices =-   */
                    
                    $('.fedsp.table').find('form.adm-notice-form-add').find('textarea[name=notice]').autoResize();
                    $('.fedsp.table').find('form.adm-notice-form-add').submit(function(){
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        $(form).before( self.nl2br( $(form).find('textarea[name=notice]' ).val() ) ).fadeOut('slow', function(){
                                            $(form).parents('fieldset').css({'opacity': 1});
                                            $(form).remove();
                                        });
                                    } else {
                                        alert(data);
                                    }
                                });
                            }
                        });
                        return false;
                    
                    });

                    $('.fedsp.table').find('form.adm-notice-form-del').submit(function(){
                        if (confirm('Желаете удалить административное сообщение?')) $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        $(form).parents('fieldset').fadeOut('slow', function(){
                                            $(form).remove();
                                        });
                                    } else {
                                        alert(data);
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    /*   -=  admin notices =-   */
                    
                    
                    /*   -=  fail global admin report =-  */
                    $('.fedsp.table').find('form.fail-report').click(function() {
                        if (confirm("Забраковать отчет - означает сменить его статус на - НЕ ПРИНЯТ. Это позволит оргу прикрепить новый отчет в эту тему. Точно бракуем?")) $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        $('.fedsp.table').animate({ height: 0}, 2000, function() { 
                                            $('.fedsp.table').remove(); 
                                            alert('В ажуре, босс.');
                                            window.location.reload();
                                        });
                                    } else {
                                        alert('Прости! Не могу этого сейчас сделать. Что-то пошло не так. Наверно истек срок. :)');
                                    }
                                });
                            }
                        });
                        return false;
                    });
                    /*   -=  fail global admin report =-  */
                    

                    /*   -=  send notifications for users about requisite =-  */
                    $('.fedsp.table').find('form.form-send-notifications').click(function() {
                        var current_self = this;
                        $(current_self).find('button').attr('disabled', 'disabled');
                        $(current_self).find('button>i').css('display', 'none');
                        $(current_self).find('button>img').css('display', 'inline-block');
                        setTimeout(function(){
                            $(current_self).ajaxSubmit({
                                beforeSubmit: function(arr, form, options){
                                    return self.jsonpFormRequest(arr, form, options, function(data){
                                        // message in an answer from server
                                        alert(data);
                                        $(current_self).find('button').removeAttr('disabled');
                                        $(current_self).find('button>img').css('display', 'none');
                                        $(current_self).find('button>i').css('display', 'inline-block');
                                        return false;
                                    });
                                }
                            });
                        }, 200);
                        return false;
                    });
                    /*   -=  send notifications for users about requisite =-  */
                    

                    /*   -=  actual sum edit =-  */
                    $(tableExcelNode).find('form.actual-sum').submit(function(){
                        var inp = $(this).find('input.sum[name=actual_sum]')
                        if ( ($(inp).val()).length ) $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                $(inp).addClass('loading');
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data.length) {
                                        $(inp).val(data).attr('v', data);
                                        $(form).find('input[type=submit]').fadeOut();
                                        self.calcTableTotalSum();
                                    } else {
                                        alert('Прозошла ошибка! Невозможно сменить сумму. Попробуйте это позднее.');
                                        $(inp).val($(inp).attr('v'));
                                        $(form).find('input[type=submit]').fadeOut();
                                    }
                                    $(inp).removeClass('loading');
                                });
                            }
                        });
                        return false;
                    }).find('input.sum[name=actual_sum]').focus(function(){
                        $(this).parent().find('input[type=submit]').show();
                    }).blur(function(){
                        var self = this;
                        setTimeout(function(){
                            $(self).parent().find('input[type=submit]').fadeOut(1000, function(){
                                $(self).val($(self).attr('v'));
                            });
                        },1000);
                    });
                    $(tableExcelNode).find('form.actual-sum').find('.tozero').click(function(){
                        var f = $(this).parents('form.actual-sum');
                        $(f).find('input[name=actual_sum]').val(0);
                        $(f).submit();
                        $(this).hide();
                        return false;
                    });
                    /*   -=  actual sum edit =-  */
                    
                    
                    
                    /*           -= minimizer Org Chat =-         */
                    if("localStorage" in window && window.localStorage){
                        try {
                            $('.fedsp.table').find('table.summary').find('a.org-chat-hide-link[key]').click(function(){
                                var key = $(this).attr('key');
                                var val = table['hideComments'][key] || false;
                                if (key && val) {
                                    $(this).parents('tr.rowtotal').find('div.ucom').slideToggle();
                                    if (window.localStorage.getItem(key)) {
                                        localStorage.removeItem(key);
                                    } else {
                                        localStorage.setItem(key, val);
                                    }
                                }
                            });
                            
                            
                            $('.fedsp.table').find('table.summary').find('.hide-all-comments').text('свернуть все').after('&nbsp;/&nbsp;')
                            .click(function() {
                                $('.fedsp.table').find('table.summary').find('tr.rowtotal[user]').find('form.addcomment-form').find('div.ucom').slideUp();
                                
                                _.each(table['hideComments'], function(value, key) {
                                    localStorage.setItem(key, table['hideComments'][key]);
                                });
                                return false;
                            });
                            
                            $('.fedsp.table').find('table.summary').find('.show-all-comments').text('развернуть все')
                            .click(function() {
                                $('.fedsp.table').find('table.summary').find('tr.rowtotal[user]').find('form.addcomment-form').find('div.ucom').slideDown();
                                
                                _.each(table['hideComments'], function(value, key) {
                                    localStorage.removeItem(key);
                                });
                                return false;
                            });
                            
                        } catch(BogusQuotaExceededErrorOnIos5) {
                            // Thanks be to iOS5 Private Browsing mode which throws
                            // QUOTA_EXCEEDED_ERRROR DOM Exception 22.
                        }
                    }
                    /*           -= minimizer Org Chat =-         */
                    
                    
                    
                    
                    
                    
                    $('.fedsp.table').find('.new-penalty-link').click(function(){
                        $('.fedsp.table').find('fieldset.new-penalty').toggle();
                    });
                    
                    /*                         -= add new penalty =-                       */
                    $('.fedsp.table').find('form.user-penalty-form-add').find('textarea').autoResize();
                    $('.fedsp.table').find('form.user-penalty-form-add').find('input[name=otherpretension]').click(function(){
                        $(this).parent().find('input[name=pretension]').click();
                    });
                    $('.fedsp.table').find('form.user-penalty-form-add').submit(function(){
                        var nick = $.trim($(this).find('input[name=login]').val());
                        var pretension = $(this).find('input[name=pretension]:checked').val() || $.trim($(this).find('input[name=otherpretension]').val());
                        var verdict = $.trim($(this).find('textarea[name=verdict]').val());
                        var solution = $.trim($(this).find('input[name=solution]').val());
                        if (!nick) {
                            alert("Пожалуйста укажите Ник участника.");
                            return false;
                        }
                        if (!pretension) {
                            alert("Пожалуйста укажите Наименование претензии.");
                            return false;
                        }
                        if (!verdict) {
                            alert("Пожалуйста изложите суть конфликта.");
                            return false;
                        }
                        if (!solution) {
                            alert("Пожалуйста укажите Решение, которое Вас устроит.");
                            return false;
                        }
                        var inMembers = $.inArray(
                            nick,
                            $.map( table.members, function( value ) {
                                return value.login;
                            })
                        );
                        if (inMembers>=0 || (inMembers<0 && confirm('Введенный ник отсутвует в таблице, все равно продолжить?'))) {
                            $.ajax({
                                type: "POST",
                                dataType: "text",
                                crossDomain: true,
                                url: $(this).attr('action'),
                                data: { 
                                    login: nick,
                                    fio: $.trim($(this).find('input[name=fio]').val()),
                                    phone: $.trim($(this).find('input[name=phone]').val()),
                                    pretension: pretension,
                                    verdict: verdict,
                                    order_link: $.trim($(this).find('input[name=order_link]').val()),
                                    privat: $.trim($(this).find('textarea[name=privat]').val()),
                                    solution: solution
                                }
                            }).done(function(data) {
                                if (data && data == 'ok') {
                                    alert("Ваша претензия успешно принята, ожидайте рассмотрение арбитром.");
                                    loadScript(fedsp.initTableUrl, function(){});
                                } else {
                                    alert(data);
                                }
                            });
                        }
                        return false;
                    });
                    /*                         -= /add new penalty =-                       */
                    
                    /*                         -= add new penalty comment =-                       */
                    $('.fedsp.table').find('form.user-penalty-comment-form-add').find('textarea').autoResize();
                    $('.fedsp.table').find('form.user-penalty-comment-form-add').submit(function(){
                        var verdict = $.trim($(this).find('textarea[name=verdict]').val());
                        if (!verdict) {
                            alert("Пожалуйста заполните комментарий.");
                            return false;
                        }
                        $.ajax({
                            type: "POST",
                            dataType: "text",
                            crossDomain: true,
                            url: $(this).attr('action'),
                            data: { 
                                id: $(this).find('input[name=id]').val(),
                                verdict: verdict
                            }
                        }).done(function(data) {
                            if (data && data == 'ok') {
                                alert("Ваш новый комментарий успешно добавлен, ожидайте рассмотрение арбитром.");
                                loadScript(fedsp.initTableUrl, function(){});
                            } else {
                                alert(data);
                            }
                        });
                        
                        return false;
                    });
                    /*                         -= /add new penalty comment =-                       */
                    
                    /*                           -= init themes connector =-                        */
                    self.initconnectorthemes(data);
                    /*                           -= /init themes connector =-                        */
                    
                    /*  //view as moderator admin or org(owner) */
                } else if (table.viewReason && self.templates['table-member.jsonp'] && _.contains(table.viewReason, 'member') ) {
                    /* view as member */
                    
                    var compiled = _.template(self.templates['table-member.jsonp']);
                    var htmlTable = compiled({table: data.table, self: self, $: $, _: _, data: data, me: data.me});
                    $('#fedsp-widget-table').html(htmlTable);
                    
                    $('.fedsp.table').find('textarea.comment').autoResize();
                    
                    $('.fedsp.table').find('form.addcomment-form').find('select[name=paymentmethod]').change(function(){
                        var lableVariant = {
                            1: 'референс',
                            2: '&#8470; терминала, &#8470; чека',
                            3: '4 последних цифры карты, код авторизации',
                            4: '4 последних цифры карты, &#8470; банкомата, &#8470; чека',
                            5: '&#8470; банкомата, &#8470; чека',
                            6: '&#8470; отделения банка',
                            7: '4 последних цифры карты',
                            8: '&#8470; терминала, &#8470;чека',
                            9: '&#8470; терминала, &#8470; чека',
                            10: 'подробные данные о платеже'
                        };

                        var num = parseInt($(this).find('option:selected').attr('num'));
                        if (num && num > 0 && num <= 10) $('.fedsp.table').find('form.addcomment-form').find('label.control-label[for=payaccount]').html(lableVariant[num]);
                    });
                    
                    
                    
                    
                    
                    
                    
                    
                    
                } else {
                    /* not member, not admin */
                    $('#fedsp-widget-table').html("<div class='fedsp nothing'><h4 align='center'>Извините, но Вам ничего не пришло!</h4></div>");
                    if (isMobileMode  && ( _.contains(table.viewReason, 'admin') || _.contains(table.viewReason, 'moderator') || _.contains(table.viewReason, 'org') ) ) {
                    $('#fedsp-widget-table').find('.nothing').append("<p align='center'>Управление итоговыми таблицами в мобильной версии недоступно.<br>Для этого используйте <a href='" + data.table.url + "'>основной сайт</a>.</p>");
                    }
                }
                
                
                /*    -=*** общие для админского(оргского) и пользовательского видов экшены ***=-    */
                
                
                /*  -= buttons maximize/minimaze table container  =- */ 
                $('.fedsp.table-open-but').click(function(){
                    $(this).parent().find('.fedsp.table').find('.bottom-fog').hide();
                    $(this).hide();
                    $(this).parent().find('.fedsp.table-close-but').show();
                    $(this).parent().find('.fedsp.table').animate({ height:"100%"}, 200);
                    return false;
                });
                    
                $('.fedsp.table-close-but').click(function(){
                    $(this).parent().find('.fedsp.table').find('.bottom-fog').show();
                    $(this).hide();
                    $(this).parent().find('.fedsp.table-open-but').show();
                    $(this).parent().find('.fedsp.table').animate({ height:"200px"}, 200);
                    return false;
                });
                /*  -= buttons maximize/minimaze table container  =- */ 
                
                self.calcTableTotalSum();
                
                /*   -= row select colorize =-   */
                $(tableExcelNode).find('tr.rowtotal').click(function () {
                    var user = $(this).attr('user');
                    $(tableExcelNode).find('tr.roworder').removeClass('active');
                    $(tableExcelNode).find('tr.roworder[user=' + user + ']').addClass('active');
                    $(tableExcelNode).find('tr.rowtotal').removeClass('active');
                    $(tableExcelNode).find('tr.rowtotal[user=' + user + ']').addClass('active');
                });
                /*   -= row select colorize =-   */
                
                
                
                /*           -= change cr =-           */
                $('.fedsp.table').find('form.changecr-form').submit(function() {
                    
                    $(this).ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(data){
                                // work here;
                                if (data && data.length) {
                                    alert("Выполнено.");
                                    
                                    $(form).parents('.rowtotal').find('b[fee]').each(function (i) { 
                                       $(this).attr('fee', self.crs[ $(form).find('select[name=place]').val() ]['fee']);
                                       $(this).find('span.fee').text( $(this).attr('fee') + 'р');
                                    });
                                    self.calcTableTotalSum();
                                } else {
                                    alert ("Действие более невозможно.");
                                }
                                var sel = $(form).find('select[name=place]');
                                $(sel).removeClass('loading');
                                if (!$(sel).hasClass('usereye')) $(sel).attr('disabled', 'disabled');
                            });
                        }
                    });
                    return false;
                });
                $('.fedsp.table').find('form.changecr-form').find('select[name=place]:not(:disabled)').change(function(){
                    $(this).addClass('loading');
                    $(this).parents('form').submit();
                });
                /*           -= change cr =-           */

                
                
                
                
                /*   -= add comment =-   */
                $('.fedsp.table').find('form.addcomment-form').submit(function(){
                    /* textarea.comment может быть пустым, когда заполняются поля об оплате */
                    if ( 1 /* ($(this).find('textarea.comment').val()).length */ ) {
                        $(this).find(':input').hide();
                        $(this).find('select').hide();
                        $(this).parent().css('background', 'url("//fedsp.com/images/animate/loading11.gif") no-repeat scroll center center transparent');
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data.length) {
                                        $(form).find('input[type=text]').val('');
                                        $(form).find('select').val('');
                                        $(form).find('textarea').val('');
                                        /* not apeend() , only html(), server put all messages */
                                        $(form).find('.ucom').html( self.nl2br(data) );
                                    } else {
                                        alert('Произошла ошибка! Сообщение не отправлено.');
                                    }
                                    $(form).parent().css('background', 'transparent');
                                    $(form).find(':input').show();
                                    $(form).find('select').show();
                                });
                            }
                        });
                    }
                    return false;
                });
                /*   -= add comment =-   */
                
                
                
                
                
                /*    -=*** общие для админского(оргского) и пользовательского видов экшены ***=-    */
                
                if(!self.checkISMSIE)
                    document.dispatchEvent(new Event('resize'));
                else
                    document.dispatchEvent(self.createNewEvent('resize'));
                
            })( this, this.$, this._, this.data, this.data.table);
        };
        
        this.initshop = function(data) {
            
            if (data && this._.size(data)) this.$.each( data, function( key, value ) {
                fedsp.data[key] = value;
            });
            
            (function( self, $, _, data, shop ) {
                                var compiled = _.template(self.templates['shop.jsonp']);
                var htmlShop = compiled({shop: data.shop, self: self, _: _, data: data, me: data.me});    
                $('#fedsp-widget-table').html(htmlShop);
                
                                        /** events sttach **/
                                        
                /* init modal */
                $('#fedsp-widget-table').find("#fedsp-modal").modal({backdrop: false, keyboard: true, show: false, remote: false})
                .on('hidden', function (e) {
                    /* close product modal or order modal */
                    if ('hash' in location && location.hash.search('product-') != -1) {
                        if ($(e.target).has('.product-container').length && $(e.target).has('.product-container').not(':hidden')) {
                            e.preventDefault();
                            if ('history' in window) {
                                history.replaceState(null, null, window.location.pathname + window.location.search);
                            } else {
                                location.replace('_');
                            }
                        }
                    }
                    /*
                    if ('history' in window) {
                        history.back();
                    }
                    */
                })
                .on('shown', function (e) {
                    /* show product modal */
                    var targetId = $(e.target).attr('id');
                    var premodalOffsetTop = $('#fedsp-widget-table').find("#fedsp-modal").offset().top;
                    var pageTop = $(window).scrollTop();
                    if (!pageTop && 'root' in window && 'scrollTop' in window.root && 'appTop' in window.root) {
                        /* in VK frame */
                        pageTop = window.root.scrollTop - window.root.appTop;
                        if (pageTop < 0) pageTop = 0;
                    }
                    if (targetId && targetId == 'fedsp-modal') {
                        $('#fedsp-widget-table').find("#fedsp-modal").find('.modal.product-container').animate({
                            top: pageTop - premodalOffsetTop + 5
                        });
                    }
                    if ('hash' in location && self.locationHash && location.hash != self.locationHash) {
                        //location.hash = self.locationHash;
                        if ('history' in window) {
                            history.replaceState(null, null, self.locationHash);
                        } else {
                            location.replace(self.locationHash);
                        }
                    }
                    /*
                    $("html,body").stop().animate({
                        scrollTop: $(this).find('a[name]').offset().top
                    }, 750 );
                    */
                });
                
                /* case stats change */
                $('#fedsp-widget-table').find('form.case-status').on('submit', function(){
                    var title = $(this).find('input[type=submit]').attr('title');
                    var confirmation = $(this).attr('confirmation');
                    if (!confirmation || (confirmation && confirm(confirmation) ) ) {
                        if (!title || (title && confirm(title + ' Продолжить?') ) ) {
                            $(this).find('i').addClass('rotate');
                            $(this).ajaxSubmit({
                                beforeSubmit: function(arr, form, options){
                                    return self.jsonpFormRequest(arr, form, options, function(response){
                                            // work here;
                                            if (response && response == 'ok') {
                                                alert('Выполнено');
                                                self.reInit();
                                            } else {
                                                alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                            }
                                    });
                                }
                            });
                        }
                    }
                    return false;
                });
                
                /* keyboard keypress listener */
                $(window).off('keyup', self.keyboard);
                $(window).on('keyup', self.keyboard);
                
                /*                        -= package case options editor =-                        */
                $('#fedsp-widget-table').find('.package-case_options_show-act').on('click', function(e){
                    e.preventDefault();

                    $('#fedsp-widget-table').find('.package-case_options_static').toggle();
                    $('#fedsp-widget-table').find('.package-case_options_editor').toggle();
    
                    return false;
                });
                /*$('#fedsp-widget-table').find('textarea.intro').autoResize({ animate:false, extraSpace: 30 });*/
                $('#fedsp-widget-table').find('form.package-case_options_form').on('submit', function(){
                    
                    $(this).find('i').addClass('rotate');
                    $(this).ajaxSubmit({
                        beforeSubmit: function(arr, form, options) {
                            return self.jsonFormRequest(arr, form, options, function(response){
                                // work here;
                                if (response && response == 'ok') {
                                    alert('Выполнено');
                                    self.reInit();
                                } else {
                                    alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                }
                            });
                        }
                    });
                    return false;
                });
                /*                        -= /package case options editor =-                        */
                
                /*                       -= modal package newsletter send =-                        */
                $('#fedsp-widget-table').find('.modal.newsletter-send')
                .modal({backdrop: false, show: false, remote: false})
                .find('.modal-cancel').on('click', function(){
                    $(this).parents('.modal.newsletter-send').modal('toggle')
                    return false;
                });
                
                $('#fedsp-widget-table').find('.do-newsletter-send').on('click', function(){
                    var kind = $(this).attr('kind')
                    $('#fedsp-widget-table').find('.modal.newsletter-send:not([kind=' + kind + '])').modal('hide');
                    $('#fedsp-widget-table').find('.modal.newsletter-send[kind=' + kind + ']').modal('toggle');
                    return false;
                });
                
                $('#fedsp-widget-table').find('.modal.newsletter-send').find('form').on('submit', function(){
                    $(this).find('i.icon-envelope').addClass('rotate');
                    $(this).find('button[type=submit]').attr('disabled', 'disabled');
                    $(this).ajaxSubmit({
                        beforeSubmit: function(arr, form, options) {
                            return self.jsonFormRequest(arr, form, options, function(response){
                                // work here;
                                $(form).find('i.icon-envelope').removeClass('rotate');
                                $(this).find('button[type=submit]').removeAttr('disabled', 'disabled');
                                if (response && response == 'ok') {
                                    alert('Выполнено');
                                    $('#fedsp-widget-table').find('.modal.newsletter-send').modal('hide');
                                    self.reInit();
                                } else {
                                    alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                }
                            });
                        }
                    });
                    return false;
                });
                
                /*                       -= /modal package newsletter send =-                   */
                
                /*                           -= init themes connector =-                        */
                self.initconnectorthemes(data);
                /*                           -= /init themes connector =-                        */
                
                if(!self.checkISMSIE)
                    document.dispatchEvent(new Event('resize'));
                else
                    document.dispatchEvent(self.createNewEvent('resize'));
                    
                self.loadCollections();
                
            })( this, this.$, this._, this.data, this.data.shop);
            
                    };
        
        this.initcollection = function(collection) {
            var self = this;
            if (collection && collection.id) {
                if (collection.products && this._.size(collection.products)) {
                    this._.each(self.data.shop.collects, function(collect, ckey){
                        if (collect.id == collection.id) {
                            self.data.shop.collects[ckey]['products'] = collection.products;
                            return self.renderCollection(collect.id)
                        }
                    });
                } else {
                    // если массив товаров пришел пустой,
                    // то значит коллекция содержит только скрытые товары и не должна быть
                    // отображена, скрываем коллекцию
                    this.$('#fedsp-widget-table .collection[collection_id=' + collection.id + ']').hide();
                    // и продолжим обрабатывать следующие коллекции
                    this.loadCollections()
                }
            } else {
                // если по непонятной причине ответ пришел пустой,
                // то на не этом дальнейшая обработка последующих
                // коллекций прекратится. запустим её
                this.loadCollections()
            }
        }
        
        this.loadCollections = function() {
            (function( self, $, _, data, shop ) {
                $('#fedsp-widget-table .collection.lazy:not(.empty_package_case_required_attributes):first').each(function() {
                    var collection_id = $(this).attr('collection_id')
                    $(this).removeClass('lazy')
                    if (collection_id < 1000) {
                        return self.renderCollection(collection_id)
                    } else {
                        loadScript(fedsp.initCollectionUrl.replace('collection_id', collection_id), function(){});
                        //return self.loadCollections()
                    }
                });
            })( this, this.$, this._, this.data, this.data.shop);
        }
        
        this.renderCollection = function(collection_id) {
            var ckey, collect;
            for (ckey in this.data.shop.collects) {
                if (!this.data.shop.collects.hasOwnProperty(ckey)) continue;
                if (this.data.shop.collects[ckey].id == collection_id) {
                    collect = this.data.shop.collects[ckey];
                    break;
                }
            }
            
            if (!collect) return;
            (function( self, $, _, data, shop, ckey, collect) {
                var template = _.template(self.templates['collection.jsonp']);
                var compiled = $(template({shop: data.shop, self: self, _: _, data: data, me: data.me, ckey: ckey, collect: collect}));
                
                                        /** events sttach **/
                /* collection remote */
                $(compiled).find('.control-left').on('click', function(){
                    var el = $(this).parent().find('.collect-list');
                    $(el).stop().animate({
                        scrollLeft: $(el).scrollLeft() - Math.round(0.85 * $(el).width())
                    }, 500, "swing");
                    return false;
                });
                
                $(compiled).find('.control-right').on('click', function(){
                    var el = $(this).parent().find('.collect-list');
                    $(el).stop().animate({
                        scrollLeft: $(el).scrollLeft() + Math.round(0.85 * $(el).width())
                    }, 500, "swing");
                    return false;
                });
                
                $(compiled).find('.control-down').on('click', function(){
                    var $collect = $(this).parents('.collection');
                    $collect.find('.collect-block').addClass('expand');
                    //$collect.find('ul.collect-ul').attr('line-width', $collect.find('ul.collect-ul').css('width')).css('width', 'auto');
                    // change background preview
                    $collect.find('li.product').find('.img:first img[preview]').each(function( index ) {
                        var preview = $(this).attr('preview');
                        var img=new Image();
                        var self = this;
                        if (preview && $(self).attr('src').indexOf(preview) < 0) {
                            img.src = preview;
                            img.onload = function() {
                                $(self).attr('src', preview);
                            }
                        }
                    });
                    if(!self.checkISMSIE)
                        document.dispatchEvent(new Event('resize'));
                    else
                        document.dispatchEvent(self.createNewEvent('resize'));
                    return false;
                });
                
                $(compiled).find('.control-up').on('click', function(){
                    var $collect = $(this).parents('.collection');
                    $('html, body').animate({scrollTop: $collect.offset().top}, 500);
                    $collect.find('.collect-block').removeClass('expand');
                    $collect.find('ul.collect-ul').css('width', $collect.find('ul.collect-ul').attr('line-width'));
                    if(!self.checkISMSIE)
                        document.dispatchEvent(new Event('resize'));
                    else
                        document.dispatchEvent(self.createNewEvent('resize'));
                    return false;
                });
                
                /* product click */
                $(compiled).find('li.product').find('.img.img-polaroid').on('click', function(e){
                    var ckey = parseInt($(this).attr('ckey'));
                    var pkey = parseInt($(this).attr('pkey'));
                    self.renderProduct(data, ckey, pkey);
                    if (e.preventDefault) {
                        e.preventDefault();
                    } else { 
                        return false;
                    }
                });
                
                $('#fedsp-widget-table .collection[collection_id=' + collect.id + ']').replaceWith(compiled)
                
                // autoopen product card if location hash has product-xxxxxx
                if ('hash' in location && location.hash.search('product-') != -1) {
                    // auto open product view
                    var product_id = location.hash.replace(/#product-/, '');
                    if (product_id && _.size( _.where(collect.products, {id: product_id}) )) {
                        _.each(data.shop.collects, function(value, ckey) {
                            _.each(data.shop.collects[ckey]['products'], function(value, pkey) {
                                if ( data.shop.collects[ckey]['products'][pkey]['id'] == product_id ) {
                                    self.renderProduct(data, ckey, pkey);
                                    return;
                                }
                            });
                        });
                    }
                }
                
            })( this, this.$, this._, this.data, this.data.shop, ckey, collect);
            this.loadCollections()
        };
        
        /* keyboard control in gallery*/
        this.keyboard = function(ev) {
            if (document.activeElement 
                && document.activeElement.nodeName 
                && (document.activeElement.nodeName.toLowerCase() == 'input' || document.activeElement.nodeName.toLowerCase() == 'textarea' )) {
                return false;
            }
            var $modal = fedsp.$('#fedsp-widget-table').find("#fedsp-modal");
            if ($modal.find(".modal.product-container:visible").length) {
                switch(ev.keyCode) {
                    case 27:  // escape
                        $modal.find('button.close').click();
                        break;
                    case 37:  // left
                        if (! $modal.find('.modal.order-popover:visible').length && !$modal.find('.modal.row-closer-popover:visible').length) { 
                            $modal.find('.control-left').click();
                        }
                        break;
                    case 39:  // right
                        if (! $modal.find('.modal.order-popover:visible').length && !$modal.find('.modal.row-closer-popover:visible').length) { 
                            $modal.find('.control-right').click();
                        }
                        break;
                }
            }
        }
        
        this.parseSizes = function(sizes) {
            var sizesArray = [];
            var _ = this._,
                $ = this.$;
            _.each(sizes.toString().split(';'), function(value, key, list) {
                _.each(value.toString().split(','), function(value, key, list) {
                    /*
                    if (value.search(/-/)) {
                        var range = value.match(/(\d+)(\D+)*-(\D+)*(\d+)/i);
                        if (range && range[1] && range[4] && ( parseInt(range[4]) - parseInt(range[1]) < 100 ) ) {
                            for (var i = parseInt(range[1]); i <= parseInt(range[4]); i++) {
                                sizesArray.push(i);
                            }
                        } else {
                            if ($.trim(value)) sizesArray.push($.trim(value));
                        }
                    } else {
                        if ($.trim(value)) sizesArray.push($.trim(value));
                    }
                    */
                    if ($.trim(value)) {
                        // size@n
                        var matches = $.trim(value).match(/(.*)@(\d+)$/);
                        if (_.isArray(matches) && matches[1] && $.trim(matches[1]) && matches[2] && parseInt(matches[2])) {
                            for (var i = 0; i < parseInt(matches[2]); i++) {
                                sizesArray.push($.trim(matches[1]));
                            }
                        } else { 
                            if ( !_.contains(sizesArray, $.trim(value)) ) {
                                sizesArray.push($.trim(value));
                            }
                        }
                    }
                }, this)
            }, this);
            return sizesArray;
        };
        
        this.renderProduct = function(data, ckey, pkey) {
            this.locationHash = '#product-' + data.shop.collects[ckey]['products'][pkey]['id'];
            (function( self, $, _, data, ckey, pkey ) {
                var compiled = _.template(self.templates['product.jsonp']);
                var htmlProduct = compiled({self: self, shop: data.shop, package: data.shop.package, collect: data.shop.collects[ckey], product: data.shop.collects[ckey]['products'][pkey], data: data, me: data.me, ckey: ckey, pkey: pkey});
                var $modal = $('#fedsp-widget-table').find("#fedsp-modal");
                /* контайнер modal перенесен в шаблон выше и сам больше не обновлянтся, только его содержимое */
                /* $modal.empty().append(htmlProduct).modal('show'); */
                $modal.find('.modal.product-container').empty().append(htmlProduct);
                if ('isShown' in $modal && $modal.isShown) {
                    // also open
                } else {
                    $modal.modal('hide').modal('show');
                }
                                
                $modal.find('ul.list-pictures li').on('click', function(){
                    $(this).parent().find('li').removeClass('active');
                    $(this).addClass('active');
                    $modal.find('.main-picture img.main-image').attr('src', $(this).attr('fullthumb'));
                    $modal.find('.main-picture .hover-cover a').attr('href', $(this).attr('full'));
                    return false;
                });
                
                $modal.find('.control-left').on('click', function(){
                    if (data.shop.collects[ckey]['products'][pkey - 1]) {
                        self.renderProduct(data, ckey, pkey-1);
                    } else {
                        self.renderProduct(data, ckey, _.size(data.shop.collects[ckey]['products'])-1);
                    }
                    return false;
                });
                
                $modal.find('.control-right').on('click', function(){
                    if (data.shop.collects[ckey]['products'][pkey + 1]) {
                        self.renderProduct(data, ckey, pkey+1);
                    } else {
                        self.renderProduct(data, ckey, 0);
                    }
                    return false;
                });
                
                $modal.find('.main-picture .main-image').on('click', function(){
                    if (data.shop.collects[ckey]['products'][pkey + 1]) {
                        self.renderProduct(data, ckey, pkey+1);
                    } else {
                        self.renderProduct(data, ckey, 0);
                    }
                    return false;
                });
                
                                if ('stock' in data.shop.collects[ckey] && data.shop.collects[ckey]['stock']) {
                    // org stocks loader
                    if ('orgStocks' in data.shop.collects[ckey]['products'][pkey]) {
                        self.renderOrgStocks(data, ckey, pkey);
                    } else {
                        $.getJSON( "//fedsp.com/remote/e1/orgstocks/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0" + '?jsoncallback=?', { product_id: data.shop.collects[ckey]['products'][pkey]['id'] } )
                        .done(function( json ) {
                            if (json) {
                                self.data.shop.collects[ckey]['products'][pkey]['orgStocks'] = json;
                                self.renderOrgStocks(data, ckey, pkey);
                            } else {
                                $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'ostocks').empty();
                            }
                        })
                        .fail(function( jqxhr, textStatus, error ) {
                            $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'ostocks').empty();
                        });
                    }
                } else {
                    // standart orders loader
                    if ('orders' in data.shop.collects[ckey]['products'][pkey]) {
                        self.renderOrders(data, ckey, pkey);
                    } else {
                        $.getJSON( "//fedsp.com/remote/e1/orders/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0" + '?jsoncallback=?', { product_id: data.shop.collects[ckey]['products'][pkey]['id'] } )
                        .done(function( json ) {
                            if (json) {
                                self.data.shop.collects[ckey]['products'][pkey]['orders'] = json;
                                self.renderOrders(data, ckey, pkey);
                            } else {
                                $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'orders').empty();
                            }
                        })
                        .fail(function( jqxhr, textStatus, error ) {
                            $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'orders').empty();
                        });
                    }
                }
                
            })(this, this.$, this._, data, parseInt(ckey), parseInt(pkey));
        }
        
        this.renderOrgStocks = function(data, ckey, pkey) {
            (function( self, $, _, data, ckey, pkey ) {
                var $modal = $('#fedsp-widget-table').find("#fedsp-modal");
                var compiled = _.template(self.templates['orgstocks.jsonp']);
                
                $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'ostocks').empty().append(
                    compiled({self: self, shop: data.shop, package: data.shop.package, collect: data.shop.collects[ckey], product: data.shop.collects[ckey]['products'][pkey], data: data, me: data.me, ckey: ckey, pkey: pkey, $modal: $modal})
                );
                
                var $orderPopover = $modal.find('.order-popover');
                $orderPopover.modal({backdrop: false, show: false, remote: false});
                $orderPopover.find('.modal-cancel').on('click', function(){
                    $orderPopover.modal('hide');
                    return false;
                });
                
                $modal.find('.do-order-popover').on('click', function(){
                    $modal.find('.order-popover').modal('hide');
                    $(this).parent().find('.order-popover').modal('toggle');
                    /* $orderPopover.modal('show'); Chromium crush */
                    return false;
                });
                
                // delete order
                var orderDelete = _.throttle(function(){
                    var ckey = parseInt($(this).attr('ckey'));
                    var pkey = parseInt($(this).attr('pkey'));
                    var okey = parseInt($(this).attr('okey'));
                    if ( parseInt(data.me.id) == parseInt(data.shop.package.owner_id) || parseInt(data.me.id) == parseInt(data.shop.packageCase.organizer_id) ) {
                        if (!confirm("Удаляя заказ участника вы должны самостоятельно уведомить его об этом. Удалить заказ прямо сейчас?")) return false;
                    } else {
                        if (!confirm("Вы уверены, что хотите отменить заказ?")) return false;
                    }
                    $(this).find('i').addClass('rotate');
                    $(this).parent().ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(response){
                                    // work here;
                                    if (response && response == 'ok') {
                                        alert('Заказ успешно удален.');
                                        delete data.shop.collects[ckey]['products'][pkey]['orgStocks'];
                                        self.renderProduct(data, ckey, pkey);
                                    } else {
                                        alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                        $modal.find('i.rotate').removeClass('rotate');
                                    }
                            });
                        }
                    });
                    return false;
                }, 10000);
                $modal.find('.del-order').click(orderDelete);
                
                // add order
                var orderEdit = _.throttle(function(){
                    var ckey = parseInt($(this).attr('ckey'));
                    var pkey = parseInt($(this).attr('pkey'));
                    var okey = parseInt($(this).attr('okey'));
                    $(this).find('i').addClass('rotate');
                    $(this).parents('form.form-order').ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(response){
                                // work here;
                                if (response && response == 'ok') {
                                    alert('Заказ сделан');
                                    delete data.shop.collects[ckey]['products'][pkey]['orgStocks'];
                                    self.renderProduct(data, ckey, pkey);
                                } else {
                                    alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                    $modal.find('i.rotate').removeClass('rotate');
                                }
                            });
                        }
                    });
                    return false;
                }, 10000, {trailing: false});
                $modal.find('.edit-order').click(orderEdit);
                
                // init tooltips
                $modal.find("[data-toggle='tooltip']").tooltip().on('hide.bs.tooltip', function(e) {
                    // https://stackoverflow.com/questions/17310327/bootstrap-tooltip-hides-selector-toggle-element
                    // I actually discovered this is a namespacing conflict from interaction between Prototype and Bootstrap 2.3.
                    e.preventDefault();
                    $('div.tooltip').hide();
                });
                
            })(this, this.$, this._, data, parseInt(ckey), parseInt(pkey));
        }
        
        this.renderOrders = function(data, ckey, pkey) {
            (function( self, $, _, data, ckey, pkey ) {
                var $modal = $('#fedsp-widget-table').find("#fedsp-modal");
                var compiled = _.template(self.templates['product-orders.jsonp']);
                var htmlProductOrders = compiled({self: self, shop: data.shop, package: data.shop.package, collect: data.shop.collects[ckey], product: data.shop.collects[ckey]['products'][pkey], data: data, me: data.me, ckey: ckey, pkey: pkey, $modal: $modal});
                $modal.find('#product' + data.shop.collects[ckey]['products'][pkey]['id'] + 'orders').empty().append(htmlProductOrders);
                
                                
                var $orderPopover = $modal.find('.order-popover');
                $orderPopover.modal({backdrop: false, show: false, remote: false});
                $orderPopover.find('.modal-cancel').on('click', function(){
                    $orderPopover.modal('hide');
                    return false;
                });
                
                $orderPopover.find('input.numberminus').on('click', function(){
                    var inp = $(this).parent().find('.numberval');
                    var v = parseInt( $(inp).val() );
                    if (_.isNaN(v)) {
                        v = 1;
                    } else if(v <= 1) {
                        v = 1;
                    } else {
                        v--;
                    }
                    $(inp).val(v).trigger("change");
                    return false;
                });
                $orderPopover.find('input.numberplus').on('click', function(){
                    var inp = $(this).parent().find('.numberval');
                    var v = parseInt( $(inp).val() );
                    if (_.isNaN(v)) {
                        v = 1;
                    } else {
                        v++;
                    }
                    $(inp).val(v).trigger("change");
                    return false;
                });
                $orderPopover.find('input.numberval').on('change', function(){
                    var val = $(this).val();
                    if (val && parseInt(val) < 1) {
                        $(this).val(1);
                        return false;
                    }
                });
                
                
                $modal.find('.do-order-popover').on('click', function(){
                    if ($(this).hasClass('cannot')) {
                        alert("Вы не можете отказаться или изменить заказ в закрытом ряду. Подробнее о сборах заказов рядами смотрите в условиях закупки и правилах СП.");
                        return false;
                    }
                    $modal.find('.order-popover').modal('hide');
                    $(this).parent().find('.order-popover').modal('toggle');
                    /* $orderPopover.modal('show'); Chromium crush */
                    return false;
                });
                
                // class .redirect-to-do-order-popover redirect click to .do-order-popover
                $modal.find('.redirect-to-do-order-popover[isize]').on('click', function(){
                    var isize = $(this).attr('isize');
                    $(this).parents('table.product-orders:first').find('a.do-order-popover[isize=' + isize + ']').click();
                });
                
                // popover for org row closer
                
                var $rowCloserPopover = $modal.find('.row-closer-popover');
                $rowCloserPopover.modal({backdrop: false, show: false, remote: false});
                $rowCloserPopover.find('.modal-cancel').on('click', function(){
                    $rowCloserPopover.modal('hide');
                    return false;
                });
                
                $modal.find('.do-row-closer-popover').on('click', function(){
                    $modal.find('.row-closer-popover').modal('hide');
                    $(this).parent().find('.row-closer-popover').modal('toggle');
                    return false;
                });
                
                // class .redirect-to-do-row-closer-popover redirect click to .do-row-closer-popover
                $modal.find('.redirect-to-do-row-closer-popover').on('click', function(){
                    $(this).parents('table.product-orders:first').find('a.do-row-closer-popover').click();
                });
                
                // delete order
                var orderDelete = _.throttle(function(){
                    var okey = parseInt($(this).attr('okey'));
                    if ( "user_id" in self.data.shop['collects'][ckey]['products'][pkey]['orders'][okey] && self.data.shop['collects'][ckey]['products'][pkey]['orders'][okey]['user_id'] == self.data.me.id) {
                        if (!confirm("Вы уверены, что хотите отменить заказ?")) return false;
                    } else {
                        if (!confirm("Удаляя заказ участника вы должны самостоятельно уведомить его об этом. Удалить заказ прямо сейчас?")) return false;
                    }
                    if ($(this).hasClass('cannot')) {
                        alert("Вы не можете отказаться от заказа в закрытом ряду. Подробнее о сборах заказов рядами смотрите в условиях закупки и правилах СП.");
                        return false;
                    }
                    $(this).find('i').addClass('rotate');
                    $(this).parent().ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(response){
                                    // work here;
                                    if (response && response == 'ok') {
                                        alert('Ваш заказ успешно удален.');
                                                                                self.data.shop['collects'][ckey]['products'][pkey]['orders'].splice(okey, 1);
                                        self.renderProduct(data, ckey, pkey);
                                    } else {
                                        alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                    }
                            });
                        }
                    });
                    return false;
                }, 10000);
                $modal.find('.del-order').click(orderDelete);
                
                // add or edit order
                var orderEdit = _.throttle(function(){
                    var ckey = parseInt($(this).attr('ckey'));
                    var pkey = parseInt($(this).attr('pkey'));
                    var okey = parseInt($(this).attr('okey'));
                    $(this).find('i').addClass('rotate');
                    $(this).parents('form.form-order').ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(response){
                                    // work here;
                                    if (response && _.isArray(response) && okey < 0) {
                                        alert('Заказы сделаны, наличие обновлено.');
                                        for (var r in response) {
                                            if (!response.hasOwnProperty(r)) continue;
                                            (self.data.shop['collects'][ckey]['products'][pkey]['orders']).push(response[r]);
                                        }
                                        self.renderProduct(data, ckey, pkey);
                                    } else if (response && _.isObject(response)) {
                                        if (okey < 0) {
                                            alert('Заказ сделан');
                                            (self.data.shop['collects'][ckey]['products'][pkey]['orders']).push(response);
                                        } else {
                                            alert('Заказ успешно изменен');
                                            self.data.shop['collects'][ckey]['products'][pkey]['orders'][okey] = response;
                                        }
                                        self.renderProduct(data, ckey, pkey);
                                    } else {
                                        alert('Произошла ошибка. ' + response + ' Действие не было выполнено. Попробуйте это позднее.');
                                        $(self).find('i').removeClass('rotate');
                                    }
                                    
                            });
                            
                        }
                    });
                    return false;
                }, 10000, {trailing: false});
                $modal.find('.edit-order').click(orderEdit);
                
                // init tooltips
                $modal.find("[data-toggle='tooltip']").tooltip().on('hide.bs.tooltip', function(e) {
                    // https://stackoverflow.com/questions/17310327/bootstrap-tooltip-hides-selector-toggle-element
                    // I actually discovered this is a namespacing conflict from interaction between Prototype and Bootstrap 2.3.
                    e.preventDefault();
                    $('div.tooltip').hide();
                });
                
            })(this, this.$, this._, data, parseInt(ckey), parseInt(pkey));
        }
        
        this.renderOrder = function(data, ckey, pkey, okey, size) {
            var ckey = parseInt(ckey), 
                pkey = parseInt(pkey), 
                okey = parseInt(okey);
            var compiled = this._.template(this.templates['order.jsonp']);
            var htmlOrder = compiled({self: this, shop: data.shop, collect: data.shop.collects[ckey], product: data.shop.collects[ckey]['products'][pkey], order: (data.shop.collects[ckey]['products'][pkey]['orders'][okey] || {}), data: data, me: data.me, ckey: ckey, pkey: pkey, okey: okey, _: this._, size: size});
                        return htmlOrder;
        }
        
        this.renderRowCloser = function(data, ckey, pkey, row, sizes, ordersBySizes) {
            var compiled = this._.template(this.templates['rowcloser.jsonp']);
            var htmlOrder = compiled({self: this, shop: data.shop, collect: data.shop.collects[ckey], product: data.shop.collects[ckey]['products'][pkey], data: data, me: data.me, ckey: ckey, pkey: pkey, _: this._, row: row, sizes: sizes, ordersBySizes});
            return htmlOrder;
        }
        
        this.renderAuth = function() {
            var compiled = this._.template(this.templates['auth.jsonp']);
            var htmlAuth = compiled({self: this, data: this.data, me: this.data.me});
            return htmlAuth;
        }
        
        this.calcTableTotalSum = function() {
            (function( self, $, _, data, table ) {
                var summaryNode = $('.fedsp.table').find('.summary'),
                    costNode = $('.fedsp.table').find('.table_cost_total'),
                    totalNode = $('.fedsp.table').find('.table_actual_total'),
                    cost = 0,
                    fee = 0,
                    actual_sum = 0;
                    
                if (costNode.length) 
                    $(costNode).text('пересчет');
                $(summaryNode).find('.rowtotal').each(function (i) {
                    var costItem = $(this).find('b[cost]');
                    
                    if (costItem.length) {
                        var subcost = $(costItem).attr('cost');
                        var subfee = $(costItem).attr('fee');
                        if (subcost && ! _.isNaN( parseFloat(subcost) ) && subfee && ! _.isNaN( parseFloat(subcost) ) ) {
                            subcost = parseFloat(subcost);
                            subfee = parseFloat(subfee);
                            cost += subcost;
                            fee += subfee;
                            if (parseInt(table.chervonec))
                                $(this).find('.rowcost').text( ' = ' + Math.round(subcost + subfee) + 'р' );
                        }
                    }
                });
                if (costNode.length) {
                    if (parseInt(table.chervonec))
                        $(costNode).text(Math.round(cost + fee) + 'р');
                    else
                        $(costNode).text(Math.round(cost) + 'р');
                }
                if (totalNode.length) {
                    $(totalNode).text('пересчет');
                    $(summaryNode).find('tr.rowtotal').each(function (i) {
                        var actualSumItem = $(this).find('input[name=actual_sum]');
                        if (actualSumItem) {
                            if ($(actualSumItem).val() && ! _.isNaN(parseFloat($(actualSumItem).val())))
                                actual_sum += parseFloat($(actualSumItem).val());
                        }
                    });
                    $(totalNode).text(Math.round(actual_sum) + 'р');
                }
            })( this, this.$, this._, this.data, this.data.table);
        };
        
        this.firstPostNormalizer = function(srcPost) {
            return (function( self, $, _ ) {
                try {
                    if (srcPost) {
                        $(srcPost).find('div, noindex, img').remove();
                        $(srcPost).find(':not(a, b, i, s, span, font, center, h1, h2, h3, h4, h5, h6, label, var, address, code, legend, plaintext, small, article, aside, blockquote, big, stryke, strong, style, sub, sup, br, hr)').remove();
                        $(srcPost).find('a[href^="javascript"]').remove();
                        $(srcPost).find('a').attr('rel', 'nofollow').attr('target', '_blank');
                        $(srcPost).find('a[href^="/"]:not(a[href^="//"])').attr('href', function( i, val ) {
                            return '//' + window.location.hostname + val;
                        });
                        return $.trim($(srcPost).html());
                    } else {
                        return '';
                    }
                } catch(e) { }
            })( this, this.$, this._ );    
        }
        
        this.themeCollect = function() {
            (function( self, $, _ ) {
                try {
                    var _GET = self._GET();
                    if (_GET && 't' in _GET && parseInt(_GET['t']) && $("a[name=" + parseInt(_GET['t']) + "]").length) {
                        var title = $.trim( document.title.substring(0,50).replace(/\t/g, ' ').replace(/\n/g, ' ').replace(/\r/g, ' ').replace(/ {1,}/g," ") );
                        var post = $.trim( $("a[name=" + parseInt(_GET['t']) + "]").next().text().replace(/\t/g, ' ').replace(/\n/g, ' ').replace(/\r/g, ' ').replace(/ {1,}/g," ") );
                        var postsrc = '';
                        var postnormal = '';
                        var postContainer = false;
                        if (parseInt(_GET['t'])) {
                            postsrc = $('#float' + parseInt(_GET['t'])).parent().html();
                            postnormal = self.firstPostNormalizer( $('#float' + parseInt(_GET['t'])).parent().clone() );
                        }
                        $.ajax({
                            type: "POST",
                            dataType: "json",
                            crossDomain: true,
                            url: '//fedsp.com/remote/e1/themecollect/e5wUL5YFiMdglCystFfmmMU92pJzrv73MXIqFdGnmCOwsNUrYFfdMt8X7vTw4BRfDS4FK2qLjl43ACvCjUYU7CkQ0Lrn3wTCvEXLqAJtS%2FOD4RLELMNLls7Uu%2B924W4HNHXtV2NZFSNGSfV%2Bc2wWm0wk%2FFRtdSt0',
                            data: { title: title, post: post, postsrc: postsrc, postnormal: postnormal }
                        });
                    }
                } catch(e) { }
            })( this, this.$, this._ );    
        }
        
        this.initconnectorthemes = function(data) {
            (function( self, $, _, data ) {
                $('.fedsp').find('form.theme-unconnect-form').on('submit', function(){
                    if (confirm("Отвязать текущую таблицу от выбранной закупки?")) {
                        $(this).find("button[type=submit]").addClass('rotate').attr('disabled', 'disabled');
                        $(this).ajaxSubmit({
                            beforeSubmit: function(arr, form, options){
                                return self.jsonpFormRequest(arr, form, options, function(data){
                                    // work here;
                                    if (data && data == 'ok') {
                                        alert("Успешно выполнено");
                                        loadScript(fedsp.initDataUrl, function(){});
                                    } else {
                                        alert(data);
                                    }
                                });
                            }
                        });
                    }
                    return false;
                });
                $('.fedsp').find('form.theme-connect-form').on('submit', function(){
                    $(this).find('i').addClass('rotate');
                    $(this).find("button[type=submit]").attr('disabled', 'disabled');
                    $(this).ajaxSubmit({
                        beforeSubmit: function(arr, form, options){
                            return self.jsonpFormRequest(arr, form, options, function(data){
                                // work here;
                                if (data && data == 'ok') {
                                    alert("Успешно выполнено");
                                    loadScript(fedsp.initDataUrl, function(){});
                                } else {
                                    alert(data);
                                    $(form).find('i').removeClass('rotate');
                                    $(form).find("button[type=submit]").removeAttr('disabled');
                                }
                            });
                        }
                    });
                    return false;
                });
                
                return false;
            })( this, this.$, this._,  this.data);
        }
        
                
        //need to use only for IE
        this.createNewEvent = function (eventName) {
            if(typeof(Event) === 'function') {
                var event = new Event(eventName);
            }else{
                var event = document.createEvent('Event');
                event.initEvent(eventName, true, true);
            }
            
            return event;
        }
        
        this.checkISMSIE = function(){
            var rv = -1;
            if (navigator.appName == 'Microsoft Internet Explorer') {
                var ua = navigator.userAgent;
                var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
                if (re.exec(ua) != null)
                    rv = parseFloat(RegExp.$1);
            } else if (navigator.appName == 'Netscape') {
                var ua = navigator.userAgent;
                var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
                if (re.exec(ua) != null)
                    rv = parseFloat(RegExp.$1);
            }

            return rv > 0 ? true : false;
        }
        
        // init messenger
        this.initMessenger = function () {
            if ( !('messengerApp' in window) && (
                ("section" in fedsp.data && "branch" in fedsp.data.section && fedsp.data.section.branch) ||
                ("forum_id" in fedsp && [205, 233, 207, 224, 206, 218, 217, 216, 220, 228, 227, 226, 231, 230, 232, 229, 210, 222, 209, 208, 211, 215, 212, 213, 214, 234].indexOf(parseInt(fedsp.forum_id)) >= 0) ||
                window.location.pathname == "/sp/"
                )) {
                loadScript('//fedsp.com/js/messenger/messenger.js?' + version, function(){
                    messengerApp.config.theme = "e1";
                });
            }
        }
    };
    
    window.fedsp = fedsp;
    window.exports = exports;
    
    loadStyle("//fedsp.com/remote/bootstrap.part.css?v2", function(){});
            loadStyle('//fedsp.com/remote/e1/compiler/' + version + ',reset.css,common.css,goods.css,table.css,options.css,shop.css,productnew.css', function(){});
        loadScript('//fedsp.com/remote/underscore-min.1.5.2.js', function() {
        fedsp._ = exports._.noConflict();
        var _ = fedsp._;
        window.module = module;
        loadScript('//fedsp.com/remote/jquery-1.10.0.min.js', function() {
            /*console.log('You are running jQuery version: ' + jQuery.fn.jquery + ' on main site');*/
            /*console.log('You are running jQuery version: ' + module.exports.fn.jquery + ' on local');*/
            fedsp.$ = module.exports.noConflict();
            var $ = fedsp.$;
                                                loadScript('//fedsp.com/remote/e1/compiler/' + version + ',common.jsonp?jsoncallback=fedsp.inittemplates', function(){
                loadScript(fedsp.initDataUrl, function(){});
                /* fedsp "my purchases" button event to open widget-1 */
                if ( location.hostname.search("www.e1.ru") >=0 ) {
                    $('.fedsp-widget-1-but').on('click', function(){
                        $('#fedsp-widget-1').slideToggle();
                        return false;
                    });
                }
                // loading dummy
                if (fedsp.$('#fedsp-widget-1').length) {
                    fedsp.$('#fedsp-widget-1').html("<div class='fedsp goods' style='background: #FFFFFF;'><p align='center' style='padding:100px;'>Загрузка...<br><br><img style='padding:0; margin:0;' src='//fedsp.com/images/animate/loading11.gif'></p></div>");
                }
                // load other parallel components
                /* create widget-2 container */
                var max_width = $('#fedsp-widget-2').width();
                if (parseInt(max_width)) {
                    max_width += "px";
                } else { 
                    max_width = "auto";
                }
                fedsp.$('#fedsp-widget-2').html("<div id='fedsp-widget-options' style='max-width:" + max_width + ";'></div><div style='clear:both;'></div><div id='fedsp-widget-table' style='max-width:" + max_width + ";'></div>");
                /* * * * */
                if (productionDomains.indexOf(window.location.hostname) >= 0) {
                    loadScript('//fedsp.com/remote/jquery.form.min.js', function(){});
                } else {
                    loadScript('//fedsp.com/remote/jquery.form.dev.js', function(){});
                }
                loadScript('//fedsp.com/remote/jquery.autoresize.min.js', function(){});
            });
            
            fedsp.$(document).ready(function(){
                //alert('i`m ready!');
                // antischlack
                if ('ao_aB' in window && Array && Array.isArray(ao_aB) && ao_aB.indexOf('fedsp.com') < 0) {
                    ao_aB.push('fedsp.com'); ao_aB.push('fedsp.ru'); ao_aB.push('fed-sp.com'); ao_aB.push('fed-sp.ru');
                }
            });
        });
    });

    if (isMobileMode) {
        loadStyle('//fedsp.com/remote/e1/compiler/' + version + ',mobile.css', function(){});
    }

    fedsp.initMessenger();
    
    if (window.addEventListener){
        window.addEventListener("message", fedsp.listener, false);
    } else {
        window.attachEvent("onmessage", fedsp.listener);
    }
    
}).call(window);

// antischlack
if ('ao_aB' in window && Array && Array.isArray(ao_aB) && ao_aB.indexOf('fedsp.com') < 0) {
    ao_aB.push('fedsp.com'); ao_aB.push('fedsp.ru'); ao_aB.push('fed-sp.com'); ao_aB.push('fed-sp.ru');
}
