/**
* @version $Id: brick.js 727 2009-03-31 11:18:10Z AKuzmin $
* @package CMSBrick
* @copyright Copyright (C) 2008 CMSBrick. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
*/

if (typeof Brick == 'undefined' || !Brick){ Brick = {};}

Brick.env = function(){
	return {
		version: '1.1.2',
		language: 'ru',
		user:{ 
			name: 'guest', session: '', group: 0,
			isAdmin: function(){ return this.group >= 6; },
			isModerator: function(){ return this.group >= 5; },
			isRegistred: function(){ return this.group >= 4; },
			isRegister: function(){ return this.group >= 4; }
		},
		host: ''
	}
}();

Brick.env.host = function(){
	return 'http://'+document.location.host;
}();

Brick.objectExists = function(str){
	var d=str.split(".");
  var o=Brick;
  for (j=(d[0] == "Brick")?1:0; j<d.length; j++) {
  	if (typeof o[d[j]] == 'undefined'){
  		return false;
  	}
    o=o[d[j]];
  }
  
  return true;
};

/**/
Brick.namespace = function() {
  var a=arguments, o=null, i, j, d;
  for (i=0; i<a.length; i=i+1) {
  	d=a[i].split(".");
    o=Brick;
    for (j=(d[0] == "Brick") ? 1 : 0; j<d.length; j=j+1) {
    	o[d[j]]=o[d[j]] || {};
      o=o[d[j]];
    }
  }
  return o;
};

Brick.namespace('util');
Brick.namespace('widget');

(function(){

	var cleanScript = function(o){
		if (!o.childNodes.length){
			return "";
		}
		var i, s = "", c;
		for (i=0;i<o.childNodes.length;i++){
			c = o.childNodes[i];
			if (typeof c.tagName != 'undefined'){
				if (c.tagName.toLowerCase() == 'script'){
					s += c.innerHTML;
					o.removeChild(c);
				}else{
					s += cleanScript(c);
				}
			}
		}
		return s;
	};
	
	Brick.cleanScript = cleanScript;
	
	var elClear = function(el){ while(el.childNodes.length){el.removeChild(el.childNodes[0]);} };
	Brick.elClear = elClear;

	Brick.elCreate = function(tag, parent){
		var el = document.createElement(tag);
		if (typeof parent != 'undefined'){
			parent.appendChild(el);
		}
		return el;
	};

})();

/* * * * * * * * * * * * CSS Style Manager * * * * * * * * * * */
(function(){
	Brick.util.CSS = {};
	
	/**
	 * Добавление стиля CSS в браузер
	 */
	Brick.util.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);
	}
})();

/* * * * * * * * * * * * Template Manager * * * * * * * * * * */
(function(){
	
	Brick.util.Template = {};
	Brick.util.Template.fillLanguage = function(t){
		if (typeof t == 'undefined'){
			return;
		}
		
		var lang = Brick.env.language;
		var exp = new RegExp("(\{\#[a-zA-Z_\.]+\})", "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<arr.length;i++){
					key = arr[i].replace(/[\{#\}]/g, '');
					phrase = Brick.util.Language.getc(key);
					if (!YAHOO.lang.isNull(phrase)){
						s = s.replace(arr[i], phrase);
					}
				}
			}
			t[name] = s;
		}
	}
	
	Brick.util.Template.setProperty = function(t, name, value){
		var exp = new RegExp("\{v\#"+name+"\}", "g");
		return t.replace(exp, value);
	}
	
})();

/* * * * * * * * * * * * Template Id Manager * * * * * * * * * * */
(function(){
	
	var counter = 0;
	
	var idman = function(template){
		if (typeof template == 'undefined'){
			return;
		}
		this.init(template);
	};
	
	idman.prototype = {
		init: function(t){
		
			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<arr.length;i++){
						if (!uniq[arr[i]])
							uniq[arr[i]] = 'bkgtid_'+counter++;
						
						s = s.replace(new RegExp(arr[i], "gi"), uniq[arr[i]]);
						
						key = arr[i].replace(/\{gi#([a-zA-Z0-9_\-]+)\}/, '$1');
						this['_global'][key] = uniq[arr[i]];
					}
				}
				t[name] = s;
			}
		
			exp = new RegExp("(\{i\#[a-z0-9_\-]+\})", "gi");
			for (var name in t){
				s = t[name];
				arr = s.match(exp)
				if (YAHOO.lang.isArray(arr)){
					this[name] = {};
					for (i=0;i<arr.length;i++){
						key = arr[i].replace(/\{i#([a-zA-Z0-9_\-]+)\}/, '$1');
						if (typeof this[name][key] == 'undefined'){
							genid = 'bktid_'+name.substring(0,1)+key.substring(0,1)+'_'+counter++;
							this[name][key] = genid;
							s = s.replace(new RegExp(arr[i], "gi"), genid);
						}
					}
				}
				t[name] = s;
			}
		}
	}
	
	Brick.util.TIdManager = idman;
	
})();

/* * * * * * * * * * * * Language Manager * * * * * * * * * * */
(function(){
	
	var clone = function(from, to){
		for (var el in from){
			if (YAHOO.lang.hasOwnProperty(from, el)){
				if (YAHOO.lang.isObject(from[el])){
					if (typeof to[el] == 'undefined')
						to[el] = {};
					clone(from[el], to[el])
				}else{
					to[el] = from[el];
				}
			}
		}
	};
	
	var language = function(){
		this._dict = {};
	};
	
	language.prototype = {
		getData: function(){
			return this._dict[Brick.env.language];
		},
		add: function(lang, o){
			if (typeof this._dict[lang] == 'undefined')
				this._dict[lang] = {};
			clone(o, this._dict[lang]);
		},
		get: function(lang, key){
			var l = this._dict[lang], k = key.split('.'), i;
			for (i=0;i<k.length;i++){
				l = l[k[i]];
				if (typeof l == 'undefined'){
					return null;
				}
			}
			
			return l;
		},
		getc: function(key){
			return this.get(Brick.env.language, key);
		},
		dump: function(lang){
			alert(YAHOO.lang.dump(this._dict[lang]));
		}
	}
	
	Brick.util.Language = new language();
	
})();

/* * * * * * * * * * * * JS Loader * * * * * * * * * * */
(function(){

	/*
	// Example: 
	Brick.Loader.add(
			{
				mod:
					[
					 {name:'user',files:['user.js']},
					 {name:'blog',files:['blog.js']}
					 ]
			}
	);
	/**/
	
	var module = function(o){
		this.yahoo = [];
		this.ext = [];
		this.mod = [];
		this.isLoad = false;
		this.event = null;
		this.init(o);
	}
	module.prototype = {
		init: function(o){
			if (typeof o.yahoo != 'undefined'){ this.yahoo = o.yahoo; }
			if (typeof o.ext != 'undefined'){ this.ext = o.ext; }
			if (typeof o.mod != 'undefined'){ this.mod = o.mod; }
			this.event = { onSuccess: o.onSuccess, onFailure: o.onFailure, executed: false}
		}
	}
	
	var loader = function(){
		
		this._isProccess = false;
		this._countModule = 0;
		this._modules = [];
		this._reqYUI = {};
		
		this.init();
	};
	
	loader.prototype = {
		init: function(){
			var __self = this;
			this._yuiLoader = new YAHOO.util.YUILoader({ 
		    base: "/js/yui/2.6.0/",
				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) );
		    }
			});
		},
		add: function(o){
			var m = new module(o);
			this._modules[this._modules.length] = m;
			if (!this._isProccess){
				this._start();
			}
		},
		addRange: function(o){
			var m, i;
			for (i=0;i<o.length;i++){
				m = new module(o[i]);
				this._modules[this._modules.length] = m;
			}
			if (!this._isProccess){ this._start(); }
		},
		_event: function(error){
			var __self = this;
			this._isProccess = false;
			/**
			 * Если в процессе загрузки модулей были добавлены еще модули,
			 * то события предыдущих модулей остаются в ожидании и производится запуск
			 * загрузки оставшихся
			 */
			if (this._modules.length != this._countModule){
				this._start();
				return;
			}

			if (this._reqtinymce){
				/**
				 * Был запрошен gzip-модуль TinyMCE  
				 */
				this._reqtinymce = false;
				tinyMCE_GZ.init(
					{
						baseURL: '/js/tinymce/3.2.1.1',
						themes : "advanced",
						plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
				    languages : "en,ru", disk_cache : true, version: '3.2.1.1'
					}, 
					function() {__self._event();}
				);
				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<this._modules.length;i++){
				m = this._modules[i];
				if (!m.isLoad){
					m.isLoad = true;
					// Brick Module
					for (j=0;j<m.mod.length;j++){ mlib[mlib.length] = m.mod[j]; }
					// Ext
					for (j=0;j<m.ext.length;j++){ elib[elib.length] = m.ext[j]; }
					// YAHOO
					for (j=0;j<m.yahoo.length;j++){
						r = m.yahoo[j];
						if (typeof this._reqYUI[r] == 'undefined'){
							this._reqYUI[r] = true;
							ylib[ylib.length] = r; 
						}
					}
				}
			}
			var loader = this._yuiLoader;
			if (ylib.length > 0){
				for (i=0;i<ylib.length;i++){loader.calculate({require: ylib[i]});}
			}
			if (elib.length > 0){
				var l = [];
				var nm, fp, type;
				for (i=0;i<elib.length;i++){
					nm = elib[i].name;
					type = 'js';
					switch(nm){
					case 'tinymce':
						this._reqtinymce = true;
						// alert("Brick.Loader: This is a old thersion!\n Please, use mod:[{name:'sys', files:['tiny_mce_gzip.js']}]");
						fp = "/js/tinymce/3.2.1.1/tiny_mce_gzip.js?v=5";
						break;
					case 'accordionview':
						fp = "/gzip.php?file=/js/yui/2.6.0/accordionview/accordionview-min.js";
						loader.addModule({
							name: "reset-fonts", type: "css", 
							fullpath: "/js/yui/2.6.0/reset-fonts/reset-fonts.css"});
						loader.addModule({
							name: "accordionview-css", type: "css", 
							fullpath: "/js/yui/2.6.0/accordionview/assets/skins/sam/accordionview.css"});
						loader.require("reset-fonts");
						loader.require("accordionview-css");
						loader.calculate({require: "button"});
						loader.calculate({require: "animation"});
						break;
					default:
						fp = elib[i].fullpath;
						type = elib[i].type;
					}
					l[l.length] = nm;
					loader.addModule({name: nm, type: type, fullpath: fp});
				}				
				loader.require(l);
			}
			if (mlib.length > 0){
				var mm, mb, mv, minfo, rq=[];
				for (i=0;i<mlib.length;i++){
					mm = mlib[i].name;
					minfo = Brick.Modules[mm];
					
					if (minfo){
						for (j=0;j<mlib[i].files.length;j++){
							mb = mlib[i].files[j];
							mv = "";
							for (k=0;k<minfo.length;k++){
								if (minfo[k]['f'] == mb){ mv = minfo[k]['k']; }
							}
							rq[rq.length]=mm+mb;
							loader.addModule({
								name: mm+mb, 
								type: "js", 
								fullpath: "/gzip.php?type=mod&module="+mm+"&version="+mv+"&file="+mb
							});
					}
					}
				}
				loader.require(rq);
			}
			loader.insert();
		}
	}
	
	/**/
	Brick.Loader = function(){
		return {
			mods: [],
			add: function(o){
				this.mods[this.mods.length] = o;
			} 
		}
	}();
	

	var onReadyExecute = false;
	var readyFunc = [];
	var oldList = [];
	if (typeof window.bReady != 'undefined'){
		// oldList = window.bReady.list;
	}
	
	window.bReady = function(){
		return {
			on: function(f){
				if (typeof f != 'function'){
					alert('window.bReady.on(f): f must be function');
					return;
				}
				if (onReadyExecute){
					//try{ 
						f(); 
					//}catch(e){}
				}else{
					readyFunc[readyFunc.length] = { func: f, executed: false };
				}
			}
		}
	}();
	
	for (var i=0;i<oldList.length;i++){
		window.bReady.on(oldList[i]);
	}
	
	var onReady = function(){
		for (var i=0;i<readyFunc.length;i++){
			if (!readyFunc.executed){
				readyFunc[i].executed = true;
				//try{
					readyFunc[i].func();
				//}catch(e){}
			}
		}
		onReadyExecute = true;
	}
	Brick.Loader.add({ onSuccess: onReady });

	YAHOO.util.Event.onDOMReady(function(){
		var old = Brick.Loader;

		Brick.Loader = new loader();
		Brick.Loader.addRange(old.mods);
	});
})();

Brick.uniqurl = function(url){
	if (typeof Brick.uniqurl.querycount == 'undefined'){
		Brick.uniqurl.querycount = 0;
	}
	Brick.uniqurl.querycount++;
	var d = new Date();
	url += '&uniqurl='+Brick.uniqurl.querycount+d.getTime();
	return url;
};

Brick.readScript = function(text){
	var s = document.createElement("script");
	s.charset = "utf-8";
	s.text = text;
	document.body.appendChild(s);
};

Brick.byteToString = function(byte){
	var ret = byte;
	var px = "";
	if (byte < 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.widget.WindowWait = function(){
	var win = null;
	return {
		show: function(){
			var wWait = new YAHOO.widget.Panel("wait",{ 
				width:"280px", 
				fixedcenter:true, close:false, draggable:false, 
				zindex:1001, modal:true, visible:false
			});
			
			wWait.setHeader("Идет загрузка...");
			wWait.setBody('<center><img src="/images/loading_line.gif" /></center>');
			wWait.render(document.body);
			wWait.show();
			win = wWait;
		},
		hide: function(){
			if (YAHOO.lang.isNull(win)){ return; }
			win.destroy();
			win = null;
		}
	}
}();

(function(){
	
	var uniqurl = Brick.uniqurl;
	var wWait = Brick.widget.WindowWait;
	var readScript = Brick.readScript;
	

	var sendPost = function(module, brick, cfg ){

		cfg = cfg || {};
		cfg['json'] = cfg['json'] || {}; 

		var post = "json="+encodeURIComponent(YAHOO.lang.JSON.stringify(cfg['json']));
		wWait.show();
		YAHOO.util.Connect.asyncRequest("POST", 
			uniqurl('/ajax/query.html?md='+module+'&bk='+brick), 
			{
				success: function(o) {
					wWait.hide(); 
					readScript(o.responseText);
					if (typeof cfg.success == 'function'){
						cfg.success(o);
					}
				}, 
				failure: function(o){ 
					wWait.hide(); 
					alert("CONNECTION FAILED!"); 
				}
			}, 
			post
		);
	};
	
	Brick.util.Connection = {};
	Brick.util.Connection.sendCommand = function(module, brick, cfg){
		
		if (typeof YAHOO.util.Connect == 'undefined' || typeof YAHOO.lang.JSON == 'undefined'){
			wWait.show();
			Brick.Loader.add({
		    yahoo: ['connection', 'json'],
		    onSuccess: function() {
					wWait.hide();
					sendPost(module, brick, cfg);
				},
				onFailure: function(){
					wWait.hide();
				}
			});
		}else{
			sendPost(module, brick, cfg);
		}
	}
	

	
})();


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){
			if (udate*1 == 0){
				return "";
			}
			var msec = udate*1000;
			var cd = new Date(msec);
			
			var day = z(cd.getDate());
			var mon = z(cd.getMonth());
			var mons= mp[cd.getMonth()];
			var min = z(cd.getMinutes()+1);
			var hour = z(cd.getHours());
			
			if (type == 1){
				return day+'.'+mon+'.'+cd.getFullYear()+', '+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);
				return s+', '+tm;
			}
		}
	}
}();
(function(){Brick.util.Language.add('ru',{
	'img':{
		'icons':{
			'empty': "/images/empty.gif",
			'menu': "/images/paper_bag.png",
			'link': "/images/chain.png",
			'page': "/images/document.png",
			'up': "/images/arrow_up.png",
			'down': "/images/arrow_down.png",
			'edit': "/images/cm.gif",
			'plus': "/images/plus0.png",
			'remove': "/images/icon-remove.gif",
			'collapse': "/images/_collapse.png",
			'expand': "/images/_expand.png"
		}
	},
	'button': {
		'new': 'Новый',
		'create': 'Создать',
		'add': 'Добавить',
		'edit': 'Править',
		'save': 'Сохранить',
		'cancel': 'Отмена'
	}
});})();
if (typeof Component != 'undefined'){
	Brick.add('', 'brick', Component);
	Component = undefined;
}	

(function(){
var m={},v=[];

v=[];
v[v.length]={f:'cp.js', k:'615381def3d5f4e7781de7d6f34777a1'};
v[v.length]={f:'cp_admin.js', k:'591ff8d10015a06c7371aeea5bcccda7'};
v[v.length]={f:'cp_admin_man.js', k:'6e5af0c5fa94583f38b59eddd3bdd689'};
v[v.length]={f:'cp_man.js', k:'5adc50e22d3d0a7116cb8aee990fa4f2'};
v[v.length]={f:'editor.js', k:'8e34ba5ac83c6a329f552647a4099f3f'};
m['sitemap']=v;

v=[];
v[v.length]={f:'filemanager.js', k:'c7b811a963f5e75d504780b7aa4dda67'};
m['filemanager']=v;

v=[];
v[v.length]={f:'cp.js', k:'af3d8c44fdd9e0efc9b14ecd2541b3dc'};
m['admin']=v;

v=[];
v[v.length]={f:'cp.js', k:'75f23d1bb2f55a0943b50fe1cbb68a75'};
v[v.length]={f:'cp_admin.js', k:'235e6d9d6d4e071a059f468eca34a561'};
v[v.length]={f:'cp_admin_man.js', k:'fe00310cfc1c9e83880bf8d9d5cc3142'};
v[v.length]={f:'cp_man.js', k:'960b8db4f8a5bbd5c7ec7e0d4636f09f'};
v[v.length]={f:'cp_man_profile.js', k:'588bec385c45bd84b50a46d2febeae9e'};
v[v.length]={f:'cp_user.js', k:'a5bc549bead8b27bc636019d8a0b41cc'};
v[v.length]={f:'cp_user_man.js', k:'ed9b3c13cbde7dfdf7eaaa4e3d9d1d1d'};
v[v.length]={f:'cpanel.js', k:'c65d1a27896593c3e614956f77819570'};
v[v.length]={f:'guest.js', k:'6f1d88c32727e87446c7b6d7fb7f9322'};
v[v.length]={f:'profile.js', k:'2944bddccb811c8b6a5f0cf9e613623d'};
v[v.length]={f:'user.js', k:'422ea004d47f7faa7d4183787494772d'};
m['user']=v;

v=[];
v[v.length]={f:'cp.js', k:'edfdb7315992a9eea0b7320869259842'};
v[v.length]={f:'cp_admin.js', k:'1f230c7d5df0b1fba31f5dd93b15ca4f'};
v[v.length]={f:'cp_admin_man.js', k:'f07fea93ff1a2f540fb3319ff8f50c4d'};
v[v.length]={f:'cp_man.js', k:'18e44aee15c668db57f4141722bd41be'};
v[v.length]={f:'editor.js', k:'d7ef2d9303572a6bca22c06fb54468e6'};
m['news']=v;

v=[];
v[v.length]={f:'blog.js', k:'f900cdcd197e686af343a07924ea79fc'};
v[v.length]={f:'category.js', k:'e8f6cbb283501f042d603e89dddb1896'};
v[v.length]={f:'cp.js', k:'771dfb287ec578cc4a1dfc8b6b0142f9'};
v[v.length]={f:'cp_admin.js', k:'a36c162cc2acd3008ef9d3a2643b7b3b'};
v[v.length]={f:'cp_admin_man.js', k:'7c01719a32920711cef43f99a9e2b137'};
v[v.length]={f:'cp_man.js', k:'a089571427983ce8216254bf0d3f141c'};
v[v.length]={f:'topic.js', k:'b5d305542b53183e8fc856032d068249'};
m['blog']=v;

v=[];
v[v.length]={f:'comment.js', k:'2260503817b7ea0f0afcccb1bd0598cf'};
v[v.length]={f:'cp.js', k:'6956f56dce1fbbe2e89063e422bec7ed'};
v[v.length]={f:'cp_admin.js', k:'295c92f65ae84ec855a3dfecbe05a3ce'};
v[v.length]={f:'cp_admin_man.js', k:'a86e90a1eabf615920155a3315be501f'};
v[v.length]={f:'cp_man.js', k:'3cd06977dec503e8816060eeeccbda41'};
m['comment']=v;

v=[];
v[v.length]={f:'cp_admin.js', k:'763b5c369d02c0f615bb1f6fb800c308'};
v[v.length]={f:'cp_admin_man.js', k:'4b01078352d45bf78332d39ffff377ec'};
v[v.length]={f:'price.js', k:'d5ce4de090e2184bb3eb082d5667c643'};
m['price']=v;

v=[];
v[v.length]={f:'cp.js', k:'2565ecfa37938b95ce0c963ac5a8b808'};
v[v.length]={f:'cp_admin.js', k:'6abd43dd406ddeeab68249749493ccb8'};
v[v.length]={f:'cp_admin_man.js', k:'9134006d5fc9b98390a106fcd335b837'};
v[v.length]={f:'cp_man.js', k:'7165aad8a45a7f082fb53468c9ddd34d'};
m['style']=v;

v=[];
v[v.length]={f:'brick.js', k:'900e4ebc34b369636c7195caaf75d54e'};
v[v.length]={f:'config.js', k:'a2c2396fbe4594248a376e85a330d230'};
v[v.length]={f:'container.js', k:'eaa0c970b8bd66c9421ec3dce2cc1b48'};
v[v.length]={f:'data.js', k:'4d5ec0b200b60381c88244ff483b4748'};
v[v.length]={f:'editor.js', k:'be7a6a0026348a85415b91d182ca17a6'};
v[v.length]={f:'form.js', k:'aa320217ab3d617050a8d2cb6b947770'};
v[v.length]={f:'table.js', k:'f4580abf1e910f46e39c5793d1435c8b'};
v[v.length]={f:'widgets.js', k:'908b95a117331a557aecef020553e04b'};
m['sys']=v;

v=[];
v[v.length]={f:'api.js', k:'2e937cbf9e0a28091a6812b338c1fbf7'};
v[v.length]={f:'attachment.js', k:'fd0f1a7f72e214ef689ba92009d96f88'};
v[v.length]={f:'cp.js', k:'e373de969ba7e4bc7574c6b4f1813369'};
v[v.length]={f:'cp_admin.js', k:'f5aa81de2d2ff574768fd9eba9881403'};
v[v.length]={f:'cp_admin_man.js', k:'48d968e8cb079844c51419fd90794de2'};
v[v.length]={f:'cp_man.js', k:'d14b0ce521333cb6382408e412fcde38'};
v[v.length]={f:'message.js', k:'46a018c19d64a113c715b20f795adfaf'};
v[v.length]={f:'preview.js', k:'7159127d214ec5f2f5b02300b97b74b5'};
m['subscribe']=v;

Brick.Modules = m;
})();