// JaSCL - JAvaScript Common Library
// Copyright (C) 2006 IP Labs GmbH <http://www.iplabs.de/>
// $Id: EventHandler.js 101369 2010-08-18 08:37:43Z t.schueller $
var onLoadHandler;function EventHandler(j){this.id=j;}EventHandler.funcs=new Object();EventHandler.add=function(j,g,l){var _,a;_=new u(g,l);a=EventHandler.funcs[j];if(!a){a=new Array();EventHandler.funcs[j]=a;}a.push(_);return _;};EventHandler.v=EventHandler.prototype;EventHandler.v.add=function(g,l){return EventHandler.add(this.id,g,l);};EventHandler.run=function(j){var b,c;var a;var e,f;var g;a=EventHandler.funcs[j];if(!a){return;}olqDelayed=-1;do{e=0;for(b=0,c=a.length;b<c;b++){g=a[b];if(!g.finished){if(g.runDepCheck()){g.run();}else{e++;}}}if(e==f){throw new Error("Cannot resolve all dependencies for event handler "+j);}f=e;}while(e>0)};EventHandler.v.run=function(){EventHandler.run(this.id);};EventHandler.runOnLoad=function(){onLoadHandler.run();};function u(g,l){this.func=g;this.params=new Array();this.depCheck=l;}u.w=u.prototype;u.w.func=null;u.w.params=null;u.w.depCheck=null;u.w.finished=false;u.w.addParam=function(s){this.params.push(s);return this;};u.w.setParams=function(t){this.params=t;return this;};u.w.run=function(){var h;var b;this.finished=true;h="this.func(";for(b in this.params){if(b>0){h+=",";}h+="this.params["+b+"]";}h+=")";eval(h);};u.w.runDepCheck=function(){if(this.depCheck){return this.depCheck()===true;}else{return true;}};onLoadHandler=new EventHandler("onLoad");if(window.jQuery!=null)jQuery(window).load(EventHandler.runOnLoad);else throw new Error("EventHandler depends on jQuery");
