Your IP : 3.141.244.88


Current Path : /usr/local/mgr5/skins/orion/
Upload File :
Current File : //usr/local/mgr5/skins/orion/billmgrStore.init.js

(function(window) {
  if (window.billmgrStore) { return; }
  //set pageInfo for global settings
  window.pageInfo = {};
  pageInfo.store = true;
  var billmgrStore = {},
      cssUrl = 'default/showcase.css',
      cssSpriteUrl = '../common/sprite.css',
      //jsStoreUrl = 'devel/app-store.js',
      jsStoreUrl = 'app-store.min.js',
      jsUtilsUrl = 'utils.min.js',
      jsLibsUrl = 'lib/libs.min.js',
      localJqueryUrl = 'lib/jquery.js',
      jqueryUrl = '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',
      scripts = document.getElementsByTagName('script'),
      selfFile = scripts[scripts.length - 1],
      url = selfFile.src.split('billmgrStore.init.js')[0],
      parentNode = selfFile.parentNode,
      doc = window.document;

  billmgrStore.init = function(options) {
    options = options || {};
    if (!options.id && options.startform) {
      createWorkDiv();
      options.id = 'isp-store-wrapper';
    }
    for (var key in options) {
      /**
       * support options:
       * required:
       * host: string [host of billing, for example https://172.31.240.3:1500]
       * startform: string [name of function for view]
       * optional:
       * basket: {
       *   blockId: string [id of block where insert basket block]
       * }
       * usermenu: {
       *   blockId: string [id of block where insert usermenu block]
       * }
       * title: boolen [show title of form] 
       * wizard_step: boolen [show step of wizard]
       * custom_css: string [url of custom css file]
      **/

      if (!window.pageInfo.hasOwnProperty(key)) {
        window.pageInfo[key] = options[key];
        if (key === 'host') {
          window.pageInfo.url = options[key] + '/billmgr';
        }
      }
    }
    //set define messages
    pageInfo.messages = {
        empty :  'Поле обязательно для заполнения'
        ,hintLivefilter: 'Внимание! Это быстрый поиск по содержимому списка текущей страницы, для поиска по всем данным воспользуйтесь фильтром'
        ,usefulLinksTitle: 'Полезные ссылки'
        ,validChangeVal: 'Значение поля было изменено валидатором'
        ,fileMaxSize: 'Размер файла должен быть не более __VALUE__'
      };
    pageInfo.step = 'Шаг';
    billmgrStore.id = options.id;
    takeLoader(options.id);
    //load scripts & css
    //jquery
    injectScript({
      url: jqueryUrl,
    });
    //main css
    injectCss(url + cssUrl);
    //sprite css
    injectCss(url + cssSpriteUrl);
    if (options.custom_css) {
      injectCss(options.custom_css);
    }
    //libs.js
    //injectScript({ url: url + jsLibsUrl, defer: true });
    //utils.js
    //injectScript({ url: url + jsUtilsUrl, defer: true });
    //app-store.init.js
    injectScript({ url: url + jsStoreUrl, defer: true });
    runApp();
  };

  function runApp() {
    if (window.App && typeof window.App.init === 'function') {
      window.App.init();
    } else {
      setTimeout(function() { runApp(); }, 500);
    }
  }

  function injectScript(opt) {
    var script = document.createElement('script');
    script.src = opt.url;
    script.async = opt.async ? true : false;
    script.defer = opt.defer ? true : false;
    script.charset = 'utf-8';
    document.body.appendChild(script);
  }

  function injectCss(url) {
    var link = document.createElement('link');
    link.setAttribute('rel', 'stylesheet');
    link.setAttribute('type', 'text/css');
    link.setAttribute('href', url);
    document.getElementsByTagName("head")[0].appendChild(link)
  }

  function injectjQueryCheckerScript(url) {
    var script = document.createElement('script');
    script.charset = 'utf-8';
    script.innerHTML =  "window.jQuery || document.write(\"<script src='" + url + "'></script>\");";
    document.body.appendChild(script);
  }

  function createWorkDiv() {
    var el = doc.createElement('div');
    el.id = 'isp-store-wrapper';
    el.className = 'i-form-wr b-ispstore__wrapper';
    var inner = doc.createElement('div');
    inner.id = 'main-wrapper';
    inner.appendChild(el);
    parentNode.appendChild(inner);
  }

  function takeLoader(id) {
    if (id && doc.getElementById(id)) {
      var e = doc.getElementById(id);
      e.innerHTML = '<table id="isps_loading_indicator" cellpadding="0" cellspacing="0" style="width:100%;background-color:transparent;">' +
        '<tr>' +
          '<td style="padding:30px;text-align:center">' +
            '<img src="' + url  + 'img/store-loader.gif"/>' +
          '</td>' +
        '</tr>' +
      '</table>';
    }
  }

  window.billmgrStore = billmgrStore;
}(window));