function bindArguments(B){var A=[];for(var C=1;C<arguments.length;C++){A.push(arguments[C])}return function(){return B.apply(this,A)}}function WSEvent(){this.evts=[];this.builtinEvts=[]}WSEvent.prototype.getActionIdx=function(C,E,F){if(C){var B=this.evts[C];if(B){var A=B.length;for(var D=A-1;D>=0;D--){if(B[D].action==E&&B[D].binding==F){return D}}}else{return -1}}return -1};WSEvent.prototype.addListener=function(B,C,D){if(this.evts[B]){if(this.getActionIdx(B,C,D)==-1){var A=this.evts[B];A[A.length]={action:C,binding:D}}}else{this.evts[B]=[];this.evts[B][0]={action:C,binding:D}}};WSEvent.prototype.removeListener=function(B,C,D){if(this.evts[B]){var A=this.actionExists(B,C,D);if(A>=0){this.evts[B].splice(A,1)}}};WSEvent.prototype.fireEvent=function(F,A,B){if(!B){B=[]}if(this.evts){var D=this.evts[A];if(D){for(var C=0;C<D.length;C++){var E=D[C].action;if(D[C].binding){if(E){E.apply(D[C].binding,B)}}else{if(E){E(F,B)}}}}}return false};var appEvents=new WSEvent();