var flags={LOADING:1,SCRIPT_LOADED:2,DOM_CREATED:4,UPDATED:8,PINNED:16,MINIMALISED:32};var Component={BASE_URL:"",CONTROLLER:"",parent_el:"#home",prefix:"cmp_",component_status:{},component_params:{},component_options:{},component_refresh:{},getStatus:function(a){var b=this;return b.component_status[a]},setStatus:function(b,a){var c=this;c.component_status[b]=Number(c.component_status[b])^a},hasStatus:function(b,a){var c=this;if((c.component_status[b]&a)){return true}return false},minimalise:function(a){var b=this;if(b.hasStatus(a,flags.MINIMALISED)){jQuery("#"+b.prefix+a).css({display:"block"});jQuery("#component_ct_"+a).children(".component_header").children(".component_minimalise:first").html("_");b.setStatus(a,flags.MINIMALISED)}else{jQuery("#"+b.prefix+a).css({display:"none"});jQuery("#component_ct_"+a).children(".component_header").children(".component_minimalise:first").html("[ ]");b.setStatus(a,flags.MINIMALISED)}},pin:function(a){var b=this;if(!(b.hasStatus(a,flags.PINNED))){jQuery("#component_ct_"+a).draggable("disable");jQuery("#component_ct_"+a).children(".component_header").children(".component_pin:first").html("(X)");b.setStatus(a,flags.PINNED)}else{jQuery("#component_ct_"+a).draggable("enable");jQuery("#component_ct_"+a).children(".component_header").children(".component_pin:first").html("( )");b.setStatus(a,flags.PINNED)}},reload:function(c,b){if(jQuery("#"+d.prefix+c)==null){return false}var d=this;var a=(typeof b=="object")?b:{};jQuery.extend(a,{params:d.component_params[c]});d.load(c,a)},init:function(g,f){var h="";if(typeof g=="string"){h=g.split(",")}var e=h.length;for(var b=0;b<e;b++){var c=parseQueryString(h[b]);var a=(typeof f=="object")?f:{};jQuery.extend(a,{params:c});if(typeof c=="object"){var d=h[b].substr(0,h[b].indexOf("?"));this.load(d,a)}else{this.load(h[b],a)}}},loadFromString:function(f){var e=f.split(",");var d=e.length;for(var a=0;a<d;a++){var b=parseQueryString(e[a]);if(typeof b=="object"){var c=e[a].substr(0,e[a].indexOf("?"));_this.load(c,{params:b})}else{_this.load(e[a])}}},remove:function(b,a){var d=this;if(d.hasStatus(b,0)){return false}else{if(typeof self[b]=="object"){d.component_status[b]=undefined;self[b]=undefined}try{d.stopRefresh(b);jQuery("#"+d.prefix+b).parent(".component_ct").remove();jQuery("#"+d.prefix+b).remove();jQuery(d.component_options[b].target).empty()}catch(c){alert(c);return false}}},create:function(d,g,j){var f=this;var e="#"+f.prefix+d;var i=f.prefix+d;if(typeof j!="object"){j={}}if(this.component_options[d]=="object"){j=this.component_options[d]}var a=(j.target)?j.target:undefined;var b=(j.draggable==true)?true:false;if(f.getStatus(d,flags.SCRIPT_LOADED)){if(jQuery(e).length){jQuery(e).remove()}if(a!=undefined){e=a}if(b){if(jQuery(e).parent(".component_ct").length){var c=jQuery(e).parent(".component_ct").children(".component_header:first");jQuery(e).parent(".component_ct").draggable({handle:c,grid:[5,5],containment:"html",snapTolerance:20})}else{jQuery(e).draggable({handle:c,grid:[5,5],snapTolerance:20})}}var h=jQuery("#component_ct_"+d).children(".component_header:first");if(h.length>0){h.children(".component_title").html(d);h.children(".component_reload").bind("click",function(){f.reload(d)});h.children(".component_close").bind("click",function(){f.remove(d)});h.children(".component_pin").bind("click",function(){f.pin(d)});h.children(".component_minimalise").bind("click",function(){f.minimalise(d)})}f.setStatus(d,flags.DOM_CREATED)}else{if(!(f.getStatus(d,flags.LOADING))){this.load(d)}else{return false}}},startRefresh:function(b,a){var c=this;if(a==undefined){return false}this.component_refresh[b]=setInterval(function(){c.update(b)},a)},stopRefresh:function(a){clearInterval(this.component_refresh[a])},update:function(b,c){var d=this;if(jQuery("#"+d.prefix+b)==null){return false}var a={component:b,context:"components"};jQuery.extend(a,c);jQuery.extend(a,d.component_params[b]);if(!(d.getStatus(b,flags.DOM_CREATED))){return false}d.handleRequest(b,a)},handleRequest:function(c,b,a){var d=this;if(a!=undefined){if(a.fade==true){jQuery(a.target).fadeOut()}if(a.loading==true){jQuery(a.target).fadeOut(function(){jQuery(this).html('<div style="width: 100%; height: 200px;"><table width="100%" height="200"><tr><th class="centerText"><h2>Loading</h2><img src="'+Component.BASE_URL+'/kalydo_console/images/loading.gif" /></th></tr></table></div>').fadeIn()})}}jQuery.makeRequest(d.CONTROLLER,b,function(f,e){f=f.data||f;if(f.success=="true"){if(typeof self[c]=="object"&&a.target!=undefined){if(d.getStatus(c)&flags.DOM_CREATED){jQuery(a.target).html(f.html);if(a.bindEvents==true){pageObj.bindBehaviors(jQuery(a.target))}}else{d.create(c,f.html,d.component_options[c]);if(a.bindEvents==true){pageObj.bindBehaviors(jQuery(a.target))}}}else{if(f.script!=undefined&&f.script!=""){baseUrl=Component.BASE_URL||"";jQuery.getScript(baseUrl+f.script,function(){d.setStatus(c,flags.SCRIPT_LOADED);d.create(c,f.html,a);if(typeof a.onload=="function"){a.onload()}if(a.bindEvents==true&&a.target!=undefined){}try{self[c].init(c)}catch(g){}})}else{d.create(c,f.html,a);if(typeof a.onload=="function"){a.onload()}}}if(a!=undefined){if(a.fade==true){jQuery(a.target).html(f.html).fadeIn()}else{jQuery(a.target).html(f.html)}pageObj.bindBehaviors(jQuery(a.target))}}else{if(typeof(console)=="object"){console.info(f)}}})},load:function(d,b){if(b==undefined){alert("ERROR: No options specified!")}if(b.target==undefined){if(typeof console!="undefined"){console.warn("No target specified")}}var f=this;if(typeof b!="object"){b={}}var c={component:d,context:"components"};var e=(b.params!=undefined)?b.params:{};var a={};a[d]=b;jQuery.extend(f.component_options,a);jQuery.extend(c,e);jQuery.extend(f.component_params[d],e);if(!(f.getStatus(d,0))){f.setStatus(d,flags.LOADING)}f.handleRequest(d,c,b);if(b.refresh){this.startRefresh(d,b.refresh)}}};