/* @copyright Copyright (C) 2011 Abricos. All rights reserved. @license http://www.gnu.org/copyleft/gpl.php GNU/GPL, see LICENSE.php @version $Id: brick.js 1411 2012-02-02 07:57:25Z roosit $ */ /** * Ядро Abricos! User Interface Library * @module Sys * @namespace * @title Brick Global */ if (typeof Brick == 'undefined' || !Brick){ /** * Глобальный объект пространства имен * @class Brick * @static */ Brick = {}; } /** * Вернуть True, если объект определен, иначе False *

Usage:
* if (!Brick.objectExists('Brick.mod.mymodule')){ return; }

* @method objectExists * @static * @param {String} namespace Идентификатор объекта, * например "Brick.mod.user.API" * @return {Boolean} */ Brick.objectExists = function(namespace){ var obj = Brick.convertToObject(namespace); return !YAHOO.lang.isNull(obj); }; /** * Конвертировать идентификатор объекта в объект. * * @method convertToObject * @static * @param {String} path Идентификатор объекта, * например "Brick.mod.blog.API.showTopicListByUserWidget" * @return {Object} */ Brick.convertToObject = function(path){ var d=path.split("."); var o=Brick; for (j=(d[0] == "Brick")?1:0; j
 * Brick.namespace("property.package");
 * Brick.namespace("YAHOO.property.package");
 * 
* Either of the above would create Brick.property, then * Brick.property.package * * Be careful when naming packages. Reserved words may work in some browsers * and not others. For instance, the following will fail in Safari: *
 * YAHOO.namespace("really.long.nested.namespace");
 * 
* This fails because "long" is a future reserved word in ECMAScript * * @method namespace * @static * @param {String*} arguments 1-n namespaces to create * @return {Object} A reference to the last namespace object created */ Brick.namespace = function() { var a=arguments, o=null, i, j, d; for (i=0; i 0){ var find = false; for (var i=0;i'+mod.name+':'+ ccName); }else if (!Brick.componentRegistered(mod.name, ccName)){ // Brick.console('Нехватает: '+this.mName+':'+this.cName+'=>'+mod.name+':'+ ccName); return false; } } } return true; }, register: function(){ if (this.isReg){ return; } this.isReg = true; var moduleName = this.mName, componentName = this.cName, component = this.component; var namespace = 'mod'; var NS = Brick.namespace(namespace); NS[moduleName] = NS[moduleName] || {}; NS = NS[moduleName]; component.namespace = NS; if (!NS['API']){ NS['API'] = new Brick.Component.API(moduleName); } component.entryPoint(NS); delete component.entryPoint; component.isRegistered = true; component.onLoad(); fireChecker(component); Brick.Component.registerEvent.fire(component); } }; var waiter = [], counter = 0; /** * Инициализация и регистрация JS компонента указанного модуля платформы Abricos * @method add * @static * @param {String} moduleName Имя модуля * @param {String} componentName Имя компонента * @param {Brick.Component} component Компонент модуля */ Brick.add = function(moduleName, componentName, component){ components[moduleName] = components[moduleName] || {}; if (components[moduleName][componentName]){ // что за безобразие?! alert('Error: The component is already registered!\nModuleName='+moduleName+'\nComponentName='+componentName); return; } Brick._ldCk[moduleName][componentName+'.js']['ok'] = true; component.isRegistered = false; components[moduleName][componentName] = component; component.moduleName = moduleName; component.name = componentName; component.template = new Brick.Template(component); component._counter = counter++; component.language = Brick.util.Language.geta(['mod', moduleName]); var initCSS = false; component.buildTemplate = function(w, ts){ if (!initCSS){ var CSS = Brick.util.CSS; if (CSS[moduleName] && CSS[moduleName][componentName]){ CSS.update(CSS[moduleName][componentName]); delete CSS[moduleName][componentName]; } initCSS = true; } w._TM = component.template.build(ts); w._T = w._TM.data; w._TId = w._TM.idManager; return w._TM; }; component.requires = component.requires || {}; var loadinfo = component.requires; var rg = new RegEngine(moduleName, componentName, component); waiter[waiter.length] = rg; loadinfo.onSuccess = function() { // проверить, все ли вложенные компоненты прогружены var isReg = false; do { isReg = false; for (var i=waiter.length-1;i>=0;i--){ var r = waiter[i]; if (!r.isReg){ // еще не загружался if (r.isLoadDep()){ // зависимости все загружены r.register(); isReg = true; } } } } while(isReg); }; Brick.Loader.add(loadinfo); }; /** * Компонент модуля платформы Abricos. * * @class Brick.Component * @constructor * @param {Object} config (optional) Конфигурация компонента */ Brick.Component = function(config){ /** * Конфигурация компонента. * Имеет значения: * config.buildTemplate - сформировать шаблон и менеджер его * идентификаторов, по умолчанию True. * * @property config * @type Object */ this.config = YAHOO.lang.merge({ buildTemplate: true }, config || {}); /** * Имя компонента * @property name * @type String */ this.name = ''; /** * Имя модуля которому принадлежит этот компонент. * @property moduleName * @type String */ this.moduleName = ''; /** * Дополнительные компоненты (сторонние JavaScript и CSS файлы, компоненты * платформы Abricos), которые должны быть загружены, перед инициализацей * данного компонента. * См. Brick.Loader. * * @property requires * @type Object */ this.requires = {}; var __self = this; /** * Точка входа в компонент. Вход будет осуществлен после * загрузки всех необходимых дополнительных компонентов. * * @property source * @type Function */ this.entryPoint = function(){}; /** * Выполняется после того, как компонент загружен и инициализирован.
* Особой надобности в этом методе нет, создан для удобства. Если слишком * большой файл и необходимо выполнить ряд функций в конце инициализации всех * классов, то удобнее этот ряд функций разместить в начале файла в этом методе. * * @method onLoad */ this.onLoad = function(){}; /** * Шаблон компонента. * * @property template * @type Brick.Template */ this.template = null; }; /** * Событие регистрации модуля. * * @event registerEvent * @static */ Brick.Component.registerEvent = new YAHOO.util.CustomEvent("registerEvent"); /** * API модуля. * * @class Brick.Component.API * @constructor * @param {String} name Имя модуля */ Brick.Component.API = function(name){ var widgets = {}; /** * Имя модуля которому принадлежит API * * @property name * @type String */ this.name = name; /** * Выполнить функцию, предварительно загрузив необходимый компонент * из текущего модуля. * Использует статичный метод Brick.Component.API.fire(). * @method fn * @param {String} componentName Имя компонента, который необходимо подгрузить * @param {Function} fn Функция, которая будет выполнена */ this.fn = function(componentName, fn){ Brick.Component.API.fireFunction(this.name, componentName, fn); }; /** * Добавить виджет в коллекцию * * @method addWidget * @param {String} name Имя виджета * @param {Object} widget Объект виджета */ this.addWidget = function(name, widget){ this.removeWidget(name); widgets[name] = widget; }; /** * Удалить виджет из коллекции. Если у виджета определен * метод destroy, то вызвать его. * * @method removeWidget * @param {String} name Имя виджета */ this.removeWidget = function(name){ if (widgets[name]){ // if (typeof widgets[name]['destroy'] == 'function'){ // widgets[name].destroy(); // } // this.removeWidget(name); delete widgets[name]; } }; /** * Получить виджет из коллекции. * * @method getWidget * @param {String} name Имя виджета * @return {Object} */ this.getWidget = function(name){ return widgets[name]; }; }; /** * Вызвать метод API компонента из указанного модуля. *

* Принцип работы метода: *

* *

* @method fire * @static * @param {String} moduleName Имя модуля * @param {String} componentName Имя компонента * @param {String} methodName Имя метода * @param {Object} param (optional) Параметры для вызываемого метода * @param {Function} func (optional) Дополнительная функция, которая будет * выполнена по окончанию запуска метода. */ Brick.Component.API.fire = function(moduleName, componentName, methodName, param, func){ var fr = new APIFireElement(moduleName, componentName, methodName, param, func); fr.start(); }; /** * Выполнить указанную функцию, при необходимости, предварительно * загрузить компонент модуля. * * @method fireFunction * @static * @param {String} moduleName Имя модуля * @param {String} componentName Имя компонента * @param {Function} fn Функция, которая будет выполнена */ Brick.Component.API.fireFunction = function(moduleName, componentName, fn){ var fr = new APIFireElement(moduleName, componentName, fn); fr.start(); }; var fireElements = {}; var fireElementsIdInc = 0; var fireChecker = function(component){ var ids = []; for (var n in fireElements){ ids[ids.length] = n; } for (var i=0;iНе используется, оставлено для совместимости. * * @method get * @param {String} id (optional) Идентификатор менеджера шаблона. * @param {String} names (optional) Разделы в шаблоне указанные через * запятую из которых будет подготовлен шаблон для работы. * Если параметр не указан, то шаблон будет подготовлен из всех * разделов. * @return {Brick.Template.Manager} */ get: function(id, names){ id = id || 'default'; names = names || ''; if (!this._managers[id]){ this._managers[id] = new Brick.Template.Manager(this, id, names); } return this._managers[id]; }, /** * Удалить менеджер шаблона. * * @method remove * @param {String} id (optional) Идентификатор менеджера шаблона. */ remove: function(id){ delete this._managers[id]; }, /** * Очистить хеш таблицу менеджеров шаблона. * * @method clear */ clear: function(){ this._managers = {}; } }; /** * Менеджер подготовленного для работы шаблона. * * @class Brick.Template.Manager * @constructor * @param {Brick.Template} owner * @param {String} id * @param {String} names */ Brick.Template.Manager = function(owner, id, names){ names = names || ''; /** * Основатель. * * @property owner * @type Brick.Template */ this.owner = owner; /** * Идентификатор менеджера подготовленого шаблона. * * @property id * @type String */ this.id = id; var _clone = function(t){ var ct = {}; if (names != ''){ var arr = names.split(','); for (var i=0;i
* Путь идентификатор в шаблоне: tname.elname, где tname - * элемент шаблона, elname - имя идентификатора HTML элемента в шаблоне.
* * @method getElId * @param {String} teId Путь идентификатора HTML элемента в шаблоне. * @return {String} */ getElId: function(teId){ var arr = teId.split('.'); if (arr.length != 2){ return null; } var idM = this.idManager; if (!idM[arr[0]] || !idM[arr[0]][arr[1]]){ return null; } return idM[arr[0]][arr[1]]; }, /** * Получить элемент опираясь на данные из шаблона. * * @method getEl * @param {String} teId Путь идентификатора HTML элемента в шаблоне. * @return {HTMLElement} */ getEl: function(teId){ var id = this.getElId(teId); if (!YAHOO.util.Dom){ var el = document.getElementById(id); if (!el){ return null; } return el; }else{ return YAHOO.util.Dom.get(id); } } }; })(); (function(){ /** * Класс по работе со страницей браузера * @class Brick.Page * @static */ Brick.Page = {}; var notPages = []; /** * Перегрузить страницу в браузере * * @method reload * @static * @param {String} url (optional) URL открываемой страницы */ Brick.Page.reload = function(url){ if (url){ window.location.href = url; return; } var cpage = window.location.pathname; for (var i=0;i<= cpage.length="" &&="" cpage.substring(0,="" npage.length)="=" npage){="" window.location.href="/" ;="" return;="" }="" }="" window.location.reload(false);="" };="" *="" *="" ="" ="" ,="" ="" ="" ="" ="" .="" *="" ="" ="" ="" ="" ="" ="" ="" ,="" ="" ="" *="" ="" ="" ="" ="" ="" notoverloadpage,="" ="" ="" ="" *="" ="" .="" */="" brick.page.addnotoverloadpage="function(pageAdress){" notpages[notpages.length]="pageAdress;" };="" })();="" *="" *="" ="" ="" ="" *="" *="" @class="" brick.env="" *="" @static="" */="" brick.env="Brick.env" ||="" {="" *="" *="" ="" ="" *="" @property="" version="" *="" @type="" string="" */="" version:="" '0',="" *="" *="" ="" ="" ,="" 'ru'="" -="" ,="" 'en'="" -="" ="" ="" ..="" *="" @property="" language="" *="" @type="" string="" */="" language:="" 'ru',="" *="" *="" ="" ="" (="" ,="" ="" ="" ="" ="" ="" ="" )="" *="" @property="" host="" *="" @type="" string="" */="" host:="" document.location.hostname="" };="" *="" *="" ="" ="" js="" ="" *="" @class="" brick.env.lib="" *="" @static="" */="" brick.env.lib="{" *="" *="" ="" yahoo!="" user="" interface="" library="" *="" @method="" yui="" *="" @type="" string="" */="" yui:="" '2.8.1r1'="" };="" *="" *="" ="" ="" *="" @class="" brick.usergroup="" *="" @static="" */="" brick.usergroup="{" *="" *="" ="" ="" ""="" *="" @property="" guest="" *="" @type="" integer="" *="" @default="" 1="" */="" guest:="" 1,="" *="" *="" ="" ="" ""="" *="" @property="" user="" *="" @type="" integer="" *="" @default="" 2="" */="" user:="" 2,="" *="" *="" ="" ="" ""="" *="" @property="" admin="" *="" @type="" integer="" *="" @default="" 3="" */="" admin:="" 3="" };="" *="" *="" ="" ="" ="" ="" *="" @class="" brick.env.user="" *="" @static="" */="" brick.env.user="{" *="" *="" ="" ="" *="" @property="" id="" *="" @type="" integer="" */="" id:="" 0,="" *="" *="" ="" ()="" ="" *="" @property="" name="" *="" @type="" string="" */="" name:="" 'guest',="" *="" *="" ="" ="" *="" @property="" session="" *="" @type="" string="" */="" session:="" '',="" *="" *="" ="" ="" :="" *="">
*
1
Гость
*
2
Авторизован
*
3
Администратор
*
* @property group * @type Array * @default 2 */ group: ['1'], /** * Вернуть True, если пользователь является администратором * @method isAdmin * @static * @return {Boolean} */ isAdmin: function(){ var g = Brick.env.user.group; for (var i=0;i 1){ return true; } } return false; }, isRegistred: function(){ return Brick.env.user.isRegister(); } }; Brick.namespace('util'); ////////////////////////// CSS Style Manager ////////////////////////// /** * Менеджер CSS стилей * @class CSS * @namespace Brick.util * @static */ (function(){ var CSS = {}; /** * Добавить CSS стиль на текущую страницу в браузере * * @method update * @static * @param {String} t Текст CSS */ CSS.update = function(t){ if (typeof t == 'undefined'){ return; } var style = document.createElement('style'); style['type'] = 'text/css'; if (style.styleSheet){ // IE style.styleSheet.cssText = t; }else{ var tt1 = document.createTextNode(t); style.appendChild(tt1); } var hh1 = document.getElementsByTagName('head')[0]; hh1.appendChild(style); }; Brick.util.CSS = CSS; })(); ////////////////////////// Template Manager ////////////////////////// (function(){ /** * Менеджер шаблонов * @class Template * @namespace Brick.util * @static */ var Template = {}; /** * Заменить в тексте шаблона идентификаторы фраз языка на * значения текущего языка. * * @method fillLanguage * @static * @param {String} t Текст шаблона */ Template.fillLanguage = function(t){ if (typeof t == 'undefined'){ return; } var lang = Brick.env.language; var exp = new RegExp("(\{\#[a-zA-Z0-9_\.\-]+\})", "g"), s, arr, key, phrase, i; for (var name in t){ s = t[name]; arr = s.match(exp); if (YAHOO.lang.isArray(arr)){ for (i=0;i
* В тексте шаблона ищет конструкции формата {i#name}, где * name - имя идентификатора, и заменяет их на уникальное значение.
* Необходимость данного менеджера заключается в том, чтобы создаваемые элементы Dom * из шаблона, имели уникальные идентификаторы. *

* Например: *

	 * var t = { 
	 *   panel: "<div id='{i#myid}'>Hello world!</div>"
	 * }; 
	 * var tID = new Brick.util.TIdManager(t);
	 * 
	 * document.body.innerHTML = t['panel'];
	 * 
	 * // Получить Dom элемент по именнованому идентификатору myid  
	 * var div = YAHOO.util.Dom.get(tID['panel']['myid']);
	 * 
*

* * @class TIdManager * @namespace Brick.util * @constructor * @param {[String, String]} t Ассоциативный массив коллекции шаблонов JS компонента */ var TIdManager = function(t){ if (typeof t == 'undefined'){ return; } this['_global'] = {}; var s, arr, key, genid, i; // global id setting var exp = new RegExp("(\{gi\#[a-z0-9_\-]+\})", "gi"); var uniq = {}; for (var name in t){ s = t[name]; arr = s.match(exp); if (YAHOO.lang.isArray(arr)){ for (i=0;i
* Brick.Loader основан на загрузчкие YAHOO.util.YUILoader и позволяет * динамически подгружать js и css файлы. * *

* Пример: *

	 * Brick.Loader.add({
	 *   yahoo: ['tabview'],
	 *   mod:[
	 *     {name: 'sys', files: ['data.js']},
	 *     {name: 'feedback', files: ['cp_message.js', 'cp_config.js']}
	 *   ],
	 *   onSuccess: function() {
	 *     alert('Load complete!');
	 *   }
	 * });
	 * 
* Здесь загрузчику будет сформирован запрос подгрузить компоненты: *
    *
  • JS компонент tabview фреймворка YAHOO! User Interface Library, * местоположение файла /js/yui/[версия yui]/tabview/tabview.js
  • *
  • JS компонент data фреймоврка Abricos! User Interface Library, * модуля Sys, местоположение файла /modules/sys/js/data.js
  • *
  • JS компонент cp_message фреймоврка Abricos! User Interface Library, * модуля Feedback, местоположение файла /modules/feedback/js/cp_message.js
  • *
  • JS компонент cp_config фреймоврка Abricos! User Interface Library, * модуля Feedback, местоположение файла /modules/feedback/js/cp_config.js
  • *

    * По окончанию загрузки, выполнится событие onSuccess, которое * отобразит сообщение Load complete! * @class Loader * @namespace Brick * @static */ var loader = function(){ this._isProccess = false; this._countModule = 0; this._modules = []; this._reqYUI = {}; var __self = this; this._yuiLoader = new YAHOO.util.YUILoader({ base: "/js/yui/"+Brick.env.lib.yui+"/", gzip: true, gzipBase: "/gzip.php?file=", filter: "MIN", ignore: ['containercore'], onSuccess: function() { __self._event(false); }, onFailure: function (err){ __self._event(true); alert ('Ошибка загрузки модуля: ' + YAHOO.lang.dump(err) ); } }); }; loader.prototype = { /** * Запросить загрузку JS/CSS файлов * * @method add * @static * @param {Object} param */ add: function(param){ var m = new module(param); this._addModule(m); if (!this._isProccess){ this._start(); } }, addRange: function(o){ var m, i; for (i=0;i< 10){="" ="" ="" ,="" ="" ="" ="" ="" this.add({mod:[{name:="" n,="" files:="" [nn]}]});="" }="" }="" }="" }="" if="" (this._modules.length="" !="this._countModule){" this._start();="" return;="" }="" */="" ="" ="" .="" ="" ="" ="" ="" ="" ="" ="" ="" ="" ="" ="" ="" ="" this._isproccess="true;" ="" ="" ="" ="" fifo="" (="" ="" )="" var="" i,="" m,="" cnt="this._modules.length;" for(i="cnt-1;i">=0;i--){ m = this._modules[i]; if (m.event.executed){ break; } m.event.executed = true; var f = error ? m.event.onFailure : m.event.onSuccess; //try{ if (typeof f == 'function'){ f(); } //}catch(e){ alert(YAHOO.lang.dump(e)); } } this._isProccess = false; // Во время выполнения событий были добавлены еще модули на загрузку. if (this._modules.length != this._countModule){ this._start(); } }, _start: function(){ this._isProccess = true; this._countModule = this._modules.length; var i, m, j, k, r, ylib = [], elib = [], mlib = []; for (i=0;i 0){ for (i=0;i 0){ var l = []; var nm, fp, type; for (i=0;i 0){ var mm, mb, mv, minfo, rq=[]; var count = mlib.length; for (var ii=0;ii< 1024){="" ret="byte;" px="б" ;="" }else="" if="" (byte="">< 1024*1024){="" ret="Math.round((byte/1024)*100)/100;" px="кб" ;="" }else{="" ret="Math.round((byte/1024/1024)*100)/100;" px="мб" ;="" }="" return="" ret+'="" '+px;="" };="" brick.dateext="function(){" var="" m="['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'];" var="" mp="['Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря'];" var="" ds="['Вчера'," '',="" ''];="" var="" z="function(num){" if="" (num="">< 10){="" return="" '0'+num;="" }="" return="" num;="" };="" return="" {="" convert:="" function(udate,="" type,="" hidetime){="" if="" (!udate="" ||="" udate="=" null){="" return="" "";="" }="" if="" (typeof="" udate['gettime']="=" 'function'){="" udate="udate.getTime()/1000;" }="" if="" (udate*1="=" 0){="" return="" "";="" }="" hidetime="hideTime" ||="" false;="" var="" msec="udate*1000;" var="" cd="new" date(msec);="" var="" day="z(cd.getDate());" var="" mon="z(cd.getMonth()+1);//" +1="" ..="" ="" ="" ="" 0="" var="" mons="mp[cd.getMonth()];" var="" min="z(cd.getMinutes());" var="" hour="z(cd.getHours());" if="" (type="=" 1){="" var="" s="day+'.'+mon+'.'+cd.getFullYear();" if="" (!hidetime){="" s="" +=", " +hour+':'+(min);="" }="" return="" s;="" }else="" if="" (type="=" 2){//="" ="" ="" ="" ="" ="" ="" ..="" return="" day+'.'+mon+'.'+cd.getfullyear();="" }else="" if="" (type="=" 3){="" return="" day+'="" '+mp[cd.getmonth()]+'="" '+cd.getfullyear();="" }else="" if="" (type="=" 4){="" return="" hour+':'+(min);="" }else{="" var="" ld="new" date(),="" s;="" ld="new" date(ld.getfullyear(),="" ld.getmonth(),="" ld.getdate());="" var="" v="(Math.round(ld.getTime()/1000)" -="" udate)/60/60/24;="" if="" (v=""> 0 && v < 1){="" s="ds[0];" }else="" if="" (v="">< 0="" &&="" v="">-2){ s = ds[1]; }else{ s = day+' '+mp[cd.getMonth()]+' '+cd.getFullYear(); } var tm = hour+':'+(min); if (!hideTime){ s += ', ' + tm; } return s; } }, unixToArray: function(udate){ var msec = udate*1000; var cd = new Date(msec); return { 'day': cd.getDate(), 'month': cd.getMonth(), 'year': cd.getFullYear(), 'min': cd.getMinutes()+1, 'hour': cd.getHours() }; } }; }(); (function(){Brick.util.Language.add('ru',{ 'img':{ 'icons':{ 'empty': "/images/empty.gif" } }, 'button': { 'new': 'Новый', 'create': 'Создать', 'add': 'Добавить', 'edit': 'Править', 'save': 'Сохранить', 'cancel': 'Отмена' } });})();if (typeof Component != 'undefined'){ Brick.add('sys', 'brick', Component); Component = undefined; } (function(){ var m={},v=[]; v=[]; v[v.length]={f:'appbos.js', k:'425450206c161be3f458a767055e9d42'}; v[v.length]={f:'board.js', k:'3ff0fed12ef7d7b0b1fd890cfc7daecb'}; v[v.length]={f:'cp.js', k:'ab90b8307c56934d13bd6a37e8cf613b'}; v[v.length]={f:'roles.js', k:'c40c2d21fc0ecf8ce2041d51b94e2f41'}; m['bostick']=v; v=[]; v[v.length]={f:'app.js', k:'1c95a4777783ca0ae7f53587f1bc2282'}; v[v.length]={f:'appbos.js', k:'548406e5d7731a678a8ec80e56151396'}; v[v.length]={f:'board.js', k:'fd7c0c35aaa4106ed8f32bdaf273538d'}; v[v.length]={f:'calenapi.js', k:'8e598cd22117809f0436330fb20d161c'}; v[v.length]={f:'calendar.js', k:'2207475462aa2252c8b90575efa93431'}; v[v.length]={f:'cp.js', k:'94c17f008ab0d6352b880f8cb098e120'}; v[v.length]={f:'dayboard.js', k:'626702d635d34d7eb8a84baa245dcc1a'}; v[v.length]={f:'event.js', k:'8e51182b9ba3876751c4631de2fa4c64'}; v[v.length]={f:'lib.js', k:'45dd3373e67b78a84f6a83aacade2495'}; v[v.length]={f:'monthboard.js', k:'41fa60220e80ee5eee80e7729acaf843'}; v[v.length]={f:'roles.js', k:'f034b490497685ff87279a8d5a52c881'}; v[v.length]={f:'weekboard.js', k:'6e058142895cd6bbeab3b03bcce5e82f'}; m['calendar']=v; v=[]; v[v.length]={f:'lib.js', k:'b50ef3a1e332110b953adfb385056454'}; v[v.length]={f:'user.js', k:'d5c14463ff16a5d4d6b41f757b0e2768'}; m['social']=v; v=[]; v[v.length]={f:'api.js', k:'427043f1b7ce3d32c80d58724ace956e'}; v[v.length]={f:'brick.js', k:'c946703286098fc4a361a4529527ade6'}; v[v.length]={f:'container.js', k:'2b1af2d00fc9c7936ea88b45b7583648'}; v[v.length]={f:'cp.js', k:'20a6d9889b583be2b1f2813ac05a4b03'}; v[v.length]={f:'cp_config.js', k:'3463f42972eefe084aa3bcc4570d353b'}; v[v.length]={f:'cp_modules.js', k:'0241f6f3d2f5bd6a0a7b4e2dedbbefcc'}; v[v.length]={f:'cp_permission.js', k:'70d9c9dc4b33dc87df75269bacce4967'}; v[v.length]={f:'cp_template.js', k:'9f41a7a3929cc0700ebcc175027d3e18'}; v[v.length]={f:'data.js', k:'f4d7c08309f560c4e150706a6e3971e5'}; v[v.length]={f:'date.js', k:'83b66d8f8a336928bfcb01d64369d22a'}; v[v.length]={f:'editor.js', k:'71b4d8d47b610dc211e1e49589a34036'}; v[v.length]={f:'form.js', k:'d56485f11052ff3c89b9f4ea4a22c279'}; v[v.length]={f:'item.js', k:'5aac85a78fb8fddd6515a6d4c6d52c27'}; v[v.length]={f:'number.js', k:'f76125a36d7ec6fa54a7683d7ed5e126'}; v[v.length]={f:'wait.js', k:'ae502c1790d6d5e41129aa4c5e5340e3'}; v[v.length]={f:'widgets.js', k:'d06e25b63ef246fed7da29c587dc0005'}; m['sys']=v; v=[]; v[v.length]={f:'api.js', k:'e4f8591ca59cd6dbf6d7622ee94f6ff2'}; v[v.length]={f:'appbos.js', k:'c5d62f03259bcc4de9c5907b95425c49'}; v[v.length]={f:'os.js', k:'939a563812cbc5ee2563d24489432931'}; m['webos']=v; v=[]; v[v.length]={f:'api.js', k:'102b21a50009a3e8cc3823c35246ead0'}; v[v.length]={f:'cp.js', k:'f18a55bcf2eed58a985d85f38f128907'}; v[v.length]={f:'form.js', k:'e1dee339326d11d1ae1cec82b37bf092'}; v[v.length]={f:'manager.js', k:'89aaf9c72e11639d2c2740656d42ea5e'}; m['feedback']=v; v=[]; v[v.length]={f:'home.js', k:'6975a38d52dd47cba4474ed2c5fc6a86'}; v[v.length]={f:'label.js', k:'79f639c3e75f5be4957d11971ee06372'}; v[v.length]={f:'lib.js', k:'84e712561b7de01345bb35d0db91aa23'}; v[v.length]={f:'os.js', k:'af4981736358cd06e2b0dd8462990d0d'}; v[v.length]={f:'pagelist.js', k:'42f4a2f70bbc3c95ccceb4c97a8b723d'}; m['bos']=v; v=[]; v[v.length]={f:'catalog.js', k:'4f83497728e3b923b249d7ede00af918'}; v[v.length]={f:'cp.js', k:'3eec3973868c58a9c92c8c7c505c453a'}; v[v.length]={f:'eleditor.js', k:'5db93e22511ceb2fd956ced16bace8e7'}; v[v.length]={f:'element.js', k:'4f0f7d15c7890f5a6c4af58dc588bae9'}; v[v.length]={f:'eloption.js', k:'bd1cb8d23e529876fd35065576369f36'}; v[v.length]={f:'eltype.js', k:'9ef7309dccb6ed4e623b9e5507812f90'}; m['catalog']=v; v=[]; v[v.length]={f:'api.js', k:'283893d420cb01448ef98b99b2199ee0'}; v[v.length]={f:'cp.js', k:'a6132d076be44720f53b1b01da41d430'}; v[v.length]={f:'editor.js', k:'6f8312edce01e1749ffffc47bfd7f329'}; v[v.length]={f:'lib.js', k:'da00ded957aedd9138997bab99cdc93f'}; v[v.length]={f:'manager.js', k:'9ef587b0a6b866da0df7d12be8cdc87f'}; v[v.length]={f:'paginator.js', k:'597cfa828215d9813ad5c32a6c1c26b7'}; v[v.length]={f:'roles.js', k:'79b1f48ba8df4bfb25ffb96bf8f0d1f7'}; v[v.length]={f:'ui.js', k:'349b3af830fd26f45039873bfe9c9a9e'}; m['sitemap']=v; v=[]; v[v.length]={f:'account.js', k:'5ac4b3825487dd80c3fd0df550b28287'}; v[v.length]={f:'cp.js', k:'fd49e09da6a9f267a0f7dcc59aa6183b'}; v[v.length]={f:'lib.js', k:'db2e2da93adc29ca4de5252ac29b829b'}; v[v.length]={f:'profile.js', k:'0e057a8aa09556ecbe744470c68724ee'}; v[v.length]={f:'roles.js', k:'a6f88927bd110a83ae1f57c9ff308b85'}; v[v.length]={f:'upfapi.js', k:'6add2e16d46501b93f3deacf7b6655f6'}; v[v.length]={f:'users.js', k:'9dbecc0ba0423a64912a7fb8054854b3'}; v[v.length]={f:'viewer.js', k:'b161b97807be0db5712ffb373503a46f'}; v[v.length]={f:'ws.js', k:'0e60d2e6b34348e9095f7e4611613b69'}; m['uprofile']=v; v=[]; v[v.length]={f:'api.js', k:'7fedf02e672fc83057c4733a45c0746a'}; v[v.length]={f:'app.js', k:'373ec0866413e1765aef75a20e7f7566'}; v[v.length]={f:'appbos.js', k:'7e15e6a461af09d7587eeaaaa97daa28'}; v[v.length]={f:'application.js', k:'3d096fb9b31756b64895cfb91541bb1f'}; v[v.length]={f:'board.js', k:'97aa1d0f0343245a873814f273f7af47'}; v[v.length]={f:'cp.js', k:'b98156dc1b652722b23681b188256cb4'}; v[v.length]={f:'cpanel.js', k:'d6b0d4987301b320635f75f469abf447'}; v[v.length]={f:'guest.js', k:'aa9dfea67b1a45b80736e337bc9aa42a'}; v[v.length]={f:'manager.js', k:'1bcf0507f410bd914be6d37ebb2a3c8a'}; v[v.length]={f:'permission.js', k:'105d126b69f64dfc1303adf05115f82b'}; v[v.length]={f:'ui.js', k:'e3b38d0244617ac673a446236936fea7'}; m['user']=v; v=[]; v[v.length]={f:'lib.js', k:'fb682924a58950728441492ef3624186'}; m['export']=v; v=[]; v[v.length]={f:'bot.js', k:'069fef9b3d151c3a17f3ff7a1987147e'}; m['antibot']=v; v=[]; v[v.length]={f:'api.js', k:'35b2c959d076a4fbac9e64a9b209605a'}; v[v.length]={f:'chanel.js', k:'88a7118e9938fe86c69ae61f03419e7a'}; v[v.length]={f:'cp.js', k:'18b06dfd3c9f9e98f0e74f44e62a7528'}; v[v.length]={f:'manager.js', k:'6ae0d3892c0fafbecb687ac173a45da1'}; v[v.length]={f:'online.js', k:'37f1ac6d9119107c4a1d76cf4069c857'}; m['rss']=v; v=[]; v[v.length]={f:'app.js', k:'fea67a81b760bf53477fc282f4f45c8c'}; v[v.length]={f:'appbos.js', k:'202909a30058333cf24a9b0926a05805'}; v[v.length]={f:'board.js', k:'f2c110f13532c1f510d064e22db756a6'}; v[v.length]={f:'bosonline.js', k:'c97737321c8c735c20461ee0b8560a43'}; v[v.length]={f:'cp.js', k:'76a3c73a3c8a17ad4d7d47f5176613e5'}; v[v.length]={f:'lib.js', k:'7335cfa89102bb3239ceb034d768fe5d'}; v[v.length]={f:'manager.js', k:'a22893d62b3ac433c711715ee4b4a49a'}; v[v.length]={f:'roles.js', k:'7a82e1c3bf5affa88bb7f5e60992d6d2'}; v[v.length]={f:'taglist.js', k:'146b88cd552a73b14715d57d05a91c05'}; v[v.length]={f:'topiclist.js', k:'88de2cdc43b1300cf9c647429ab68cfc'}; m['blog']=v; v=[]; v[v.length]={f:'about.js', k:'0a3650bbab04418e5c57915eedf89b09'}; v[v.length]={f:'accounteditor.js', k:'21f4cec5791f3f1e2a610cb88713fc67'}; v[v.length]={f:'accountinfo.js', k:'0e14ef96a44df60870aa2db5a00b7942'}; v[v.length]={f:'accountlist.js', k:'c44ba23464beb45d164b3bebf8c66e28'}; v[v.length]={f:'appbos.js', k:'f4d2490d9fa1150b94deedc3a0037a9b'}; v[v.length]={f:'category.js', k:'6e8c669a63675c289c09812575eba809'}; v[v.length]={f:'cp.js', k:'ceb62dea99b195a059ffebd833ec39b5'}; v[v.length]={f:'currency.js', k:'53a405ad8b37ced48216ab8de4481e65'}; v[v.length]={f:'groupeditor.js', k:'1ddcc58dce47cf13c9d62a32ab0ae737'}; v[v.length]={f:'groupview.js', k:'4c9d6470562b3de1436d1aaed2e7ab44'}; v[v.length]={f:'lib.js', k:'c5927d87cabffb36999fd3bcb32b5ed5'}; v[v.length]={f:'oper.js', k:'50b513bff5ff7e6cb4c1ed18d447e985'}; v[v.length]={f:'operlist.js', k:'8057b9b73762af91c328017d918bbe0e'}; v[v.length]={f:'opermove.js', k:'d27ca84932fb733633f2da51e0618581'}; v[v.length]={f:'roles.js', k:'53dd459e6b36a153163d1c4cd6b13a2d'}; v[v.length]={f:'userrole.js', k:'ba354aad0f03bf27a8455abb899048da'}; v[v.length]={f:'wspace.js', k:'a437a80d1887a557451be092923a07b1'}; m['money']=v; v=[]; v[v.length]={f:'calendar.js', k:'d21831bc80df410653f982805934958e'}; v[v.length]={f:'period.js', k:'dced674812b64eca68e9b8007257dcf2'}; m['widget']=v; v=[]; v[v.length]={f:'cp.js', k:'a54c11ca0276df619b3db5137fc0cb5b'}; v[v.length]={f:'editor.js', k:'be87544014bb251ee979fafe1d402332'}; v[v.length]={f:'manager.js', k:'2e783ad0044dae398d5dc972be53d3e1'}; v[v.length]={f:'online.js', k:'9d5fbf285df77fda401e2b2a94a62fb8'}; v[v.length]={f:'roles.js', k:'cbce8508a1775b582aa84a044fa4c671'}; m['news']=v; v=[]; v[v.length]={f:'app.js', k:'4018d6b47b7aefe6c1881f3e8f4c2e31'}; v[v.length]={f:'appbos.js', k:'273282dc05cfeff8957f6d239a3202eb'}; v[v.length]={f:'calendar_plugin.js', k:'e374588e05f27fd7c93d7ead5cc0fbf3'}; v[v.length]={f:'cp.js', k:'2fcdfe8d3f656a3580f465dbc145a262'}; v[v.length]={f:'dept.js', k:'264c65e04d6b57925eb11bafef77dc1d'}; v[v.length]={f:'employee.js', k:'f6cfb97b635a90528933d7ce310ec257'}; v[v.length]={f:'post.js', k:'0a7a78ec8c96e1adb315b23f3d6de2d4'}; v[v.length]={f:'roles.js', k:'7b297e1041da54883e967766a6774928'}; m['company']=v; v=[]; v[v.length]={f:'app.js', k:'d4dd16b81b93bc214c5b6478441391ad'}; v[v.length]={f:'board.js', k:'e7bc8e05a8d3e44efdda3979673cdfb2'}; v[v.length]={f:'cp.js', k:'9c2ab625b9e587ae985be819d5af3c02'}; v[v.length]={f:'find.js', k:'d2afbf4f69b6d7b878a25ea240b81e24'}; v[v.length]={f:'help.js', k:'c65f1872eb5cb820ea944931cefa7721'}; v[v.length]={f:'lib.js', k:'a2b3879deed518e9db7dab4e6126e04b'}; v[v.length]={f:'project.js', k:'a430475dfdaed9c80fbd361cdffba9cf'}; v[v.length]={f:'roles.js', k:'f54cf0a434b420121c6a5948fcf6aa95'}; v[v.length]={f:'users.js', k:'bd40c30c97c89a8990f72954c6b53635'}; m['bopros']=v; v=[]; v[v.length]={f:'app.js', k:'6774576bd297f12409b87872ca45d8b2'}; v[v.length]={f:'appbos.js', k:'f2016542d58592a355b778f4925da4b5'}; v[v.length]={f:'cp.js', k:'ef4b468b0f9af1f20b577304a8b520f5'}; v[v.length]={f:'manager.js', k:'0fe5ae8356b0306d9ee76ec88ec325d1'}; v[v.length]={f:'roles.js', k:'7bb77cf434ad0daf58d4681cb7a6c792'}; m['note']=v; v=[]; v[v.length]={f:'about.js', k:'ee54aba299938e666bf8bf08cf22916e'}; v[v.length]={f:'app.js', k:'3b759e32d39a8176baf60fdf75f2d808'}; v[v.length]={f:'appbos.js', k:'721ee0e77d9fa801487fbddc12a68cc4'}; v[v.length]={f:'board.js', k:'51ec0075dfe0de591d38fb1c7c6aee7b'}; v[v.length]={f:'bosonline.js', k:'cdd926ae1d6bacdeba0d8b506296f924'}; v[v.length]={f:'chart.js', k:'56576b175df064d62afc83d0263618fe'}; v[v.length]={f:'checklist.js', k:'99f05d94621a3d775483d9d51617260e'}; v[v.length]={f:'comments.js', k:'279ddbcfd284edf75d607b53a5d13df3'}; v[v.length]={f:'cp.js', k:'65852dc838c4e599f904af5f2390fdbe'}; v[v.length]={f:'easylist.js', k:'96287931e5a5734aa6500b710fde647e'}; v[v.length]={f:'explore.js', k:'58fdd9045b6ff2bd3db26697d8bbec16'}; v[v.length]={f:'history.js', k:'01e1db57a92e9ff9bdea17352ba6d1ee'}; v[v.length]={f:'lib.js', k:'bd98981f853f5a1f2f56b9c666cdf8c5'}; v[v.length]={f:'roles.js', k:'d08705cfea96f319dc11ee70825a1fb2'}; v[v.length]={f:'taskeditor.js', k:'8bd7f42d7b7a0a50b61650138ac100b5'}; v[v.length]={f:'tasklist.js', k:'a564c96098a3a7cce7944d990c6a852e'}; v[v.length]={f:'taskview.js', k:'80d823670f0ae77763ea313f3b175ccb'}; v[v.length]={f:'towork.js', k:'ad13fb8392b9a2f1bc91198a082b0329'}; v[v.length]={f:'users.js', k:'f10e486982d7730c4b089bc0d85d9b33'}; v[v.length]={f:'ws.js', k:'d68567088500bddfeccf6139a6eadbae'}; m['botask']=v; v=[]; v[v.length]={f:'api.js', k:'cbb7344a3062ac9cb2e9e012e9939800'}; v[v.length]={f:'comment.js', k:'2240c3a6d439f757ccc3ae54e0216d19'}; v[v.length]={f:'cp.js', k:'9a477e209f3da0e8cfa72997ca981971'}; v[v.length]={f:'manager.js', k:'a22fc21db169a1b4ef8322e3d6198cd9'}; m['comment']=v; v=[]; v[v.length]={f:'api.js', k:'18eee795f93f584697b2aaebdfd9b983'}; v[v.length]={f:'attachment.js', k:'e07c40bebf37108d55d3c43bb76a7867'}; v[v.length]={f:'cp.js', k:'edaacbf933f1a0384c854f95a4b9599a'}; v[v.length]={f:'editor.js', k:'a60da2d9968a94e49523f1fe62e183ca'}; v[v.length]={f:'filemanager.js', k:'d0801ebc28d36b3bd303fcfc15ed571a'}; v[v.length]={f:'lib.js', k:'1a33268dacec3b3c0c0869470a1d1846'}; v[v.length]={f:'manager.js', k:'bca5036f5bdde6d952cd12fdbda9e4aa'}; m['filemanager']=v; v=[]; v[v.length]={f:'api.js', k:'e47384cf3cdcb30cba3032396733bf53'}; v[v.length]={f:'v_editor.js', k:'19f493c4018f697e76587959b5bb8865'}; m['tinymce']=v; v=[]; v[v.length]={f:'app.js', k:'95fe89d70da1a13f4db811c6f9851b5e'}; v[v.length]={f:'billing.js', k:'dd4891684bdd986649c08c649baeb5ad'}; v[v.length]={f:'cart.js', k:'22d4e4ca754a9a1385a145e0ccf4f9dd'}; v[v.length]={f:'config.js', k:'1b117b67bb20cc829649256e45ebee58'}; v[v.length]={f:'cp.js', k:'958f597c2e4147d649bea1e49507765c'}; v[v.length]={f:'delivery.js', k:'07f72ac128da1bcf801883668915b604'}; v[v.length]={f:'discount.js', k:'8b3c59b19dc93cc0ed1127f7ae8de924'}; v[v.length]={f:'manager.js', k:'4f67fdeb627177a4a0d094e3d7d68dae'}; v[v.length]={f:'order.js', k:'1d1a562ba490193daa0c43dc7f1cafb9'}; v[v.length]={f:'payment.js', k:'49c404c1e2e30a9c7bcd31a4a2036c23'}; v[v.length]={f:'productlist.js', k:'0167fd022b5bc61f4fe13e1d01a7aa38'}; v[v.length]={f:'ui-admin.js', k:'8e8c51ea115d02cd4b1c09709c69ee6b'}; v[v.length]={f:'ui.js', k:'8018224de1edd0e17589d834ffdbb6bd'}; m['eshop']=v; Brick.Modules = m; })();