(function(f){var c,a,d;var e=[];c={getName:function(){return"Core"},createApp:function(i,g){var h=b();f.extend(h.prototype,a,g);h.prototype.getName=function(){return i};return h},createPlugin:function(i,g){var h=b();f.extend(h.prototype,d,g);h.prototype.getName=function(){return i};return h},getApps:function(){return f.makeArray(e)},getApp:function(g){g=(g||"").toLowerCase();if(typeof e[g]!="undefined"){return e[g]}else{return null}},registerApp:function(g){var h=g.getName().toLowerCase();e.push(g);if(!f.isArray(e[h])){e[h]=[]}e[h].push(g);g.parent=this},unregisterApp:function(h){var i=oPlugin.getName().toLowerCase();var g=f.inArray(h,e);if(g>=0){e.splice(g,1)}if(f.isArray(e[i])){g=f.inArray(h,e[i]);if(g>=0){e[i].splice(g,1)}}},broadcast:function(h,k,j){for(var g=0;g<e.length;g++){e[g]._cast(h,k,j)}this._cast(h,k,j)}};a={_plugins:[],_messages:[],_fn_level:[],registerPlugin:function(i){var h=i.getName().toLowerCase();if(f.inArray(i,this._plugins)>=0){return false}this._plugins.push(i);if(!f.isArray(this._plugins[h])){this._plugins[h]=[]}this._plugins[h].push(i);var g=this._messages;f.each(i,function(j,l){if(!f.isFunction(l)){return true}if(!/^API_((BEFORE_|AFTER_)?[A-Z0-9_]+)$/.test(j)){return true}var k=function(m,n){return i[j](m,n)};k._fn=l;if(!f.isArray(g[RegExp.$1])){g[RegExp.$1]=[]}g[RegExp.$1].push(k)});i.oApp=this;i.cast=function(k,j){return i._cast(k,j)};i.broadcast=function(k,j){i._broadcast(k,j)};return true},unregisterPlugin:function(j){var i=j.getName().toLowerCase();var g=f.inArray(j,this._plugins);if(g>=0){this._plugins.splice(g,1)}if(f.isArray(this._plugins[i])){g=f.inArray(j,this._plugins);if(g>=0){this._plugins[i].splice(g,1)}}var h=this._messages;f.each(j,function(k,l){if(!f.isFunction(l)){return true}if(!/^API_([A-Z0-9_]+)$/.test(k)){return true}if(typeof h[RegExp.$1]=="undefined"){return true}if(f.isArray(h[RegExp.$1])){h[RegExp.$1]=f.grep(h[RegExp.$1],function(n,m){return(n._fn!=l)});if(!h[RegExp.$1].length){delete h[RegExp.$1]}}else{if(h[RegExp.$1]._fn==l){delete h[RegExp.$1]}}});j.oApp=null},cast:function(h,g){return this._cast(this,h,g||[])},broadcast:function(g,i,h){if(this.parent&&this.parent.broadcast){this.parent.broadcast(g,i,h)}},_cast:function(j,g,h){var k,l;var p=this._messages;g=g.toUpperCase();if(p["BEFORE_"+g]||this["API_BEFORE_"+g]){var m=this._cast(j,"BEFORE_"+g,h);if(!m){return}}var o=[],n="API_"+g;if(f.isFunction(this[n])){o.push(this[n](j,h))}if(f.isFunction(p[g])){o.push(p[g](j,h))}else{if(f.isArray(p[g])){for(k=0;k<p[g].length;k++){o.push(p[g][k](j,h))}}}if(o.length<2){o=o[0]}if(p["AFTER_"+g]||this["API_AFTER_"+g]){this._cast(j,"AFTER_"+g,h)}if(!/^(?:AFTER_|BEFORE_)/.test(g)){return o}else{return f.isArray(o)?(f.inArray(false,o)<0):((typeof o=="undefined")?true:!!o)}}};d={oApp:null,_binded_fn:[],_cast:function(h,g){if(this.oApp&&this.oApp._cast){return this.oApp._cast(this,h,g||[])}},_broadcast:function(h,g){if(this.oApp&&this.oApp.broadcast){this.oApp.broadcast(this,mag,g||[])}}};function b(){var g=function(){if(f.isArray(this._plugins)){this._plugins=[]}if(f.isArray(this._messages)){this._messages=[]}if(f.isArray(this._binded_fn)){this._binded_fn=[]}if(f.isFunction(this.init)){this.init.apply(this,arguments)}};return g}window.xe=f.extend(a,c);window.xe.lang={};f(function(){xe.broadcast(xe,"ONREADY")});f(window).load(function(){xe.broadcast(xe,"ONLOAD")})})(jQuery);
