/*
	Copyright (c) 2000-2003 Alex Russell
	Licensed under the Academic Free License version 1.1
*/try{if(window.__scripts__){__scripts__.provide(__config__.corePath+"sigslot_core.js");};}catch(e){window=this;};if(typeof Function.prototype.apply=='undefined'){Function.prototype.apply=function(oScope, args){var sarg=[];var rtrn, call;if(!oScope)oScope=window;if(!args)args=[];for(var i=0;i < args.length;i++){sarg[i]="args["+i+"]";};call="oScope.__applyTemp__(" + sarg.join(",")+ ");";oScope.__applyTemp__=this;rtrn=eval(call);oScope.__applyTemp__=null;return rtrn;};}; function NW_SignalObj(obj, fp){ this.fp=fp; this.obj=obj; this.slots=[];  this.addSlot=function(pobj, pfp){var slot=null;if(__sig__.isSigFP(pfp)){slot=__sig__.getSig(pfp);}else{slot=new NW_SignalObj(pobj, pfp);__sig__.addSig(slot);};this.slots[this.slots.length]=slot;}; this.rmSlot=function(pobj, pfp){if(__sig__.isSigFP(pfp)){var tslot=__sig__.getSig(pfp);var tsl=this.slots.length;for(var x=(tsl-1);x>=0;x-=1){if(this.slots[x]==tslot){if(this.slots.length>0){this.slots.length-=1;delete this.slots[this.slots.length];};if((arguments.length<3)||(arguments[2]!=true)){return true;};};};return true;}else{return false;};};};  __sig__=new function(){ var uID=0; var connArr=[]; this.lock=false;  this.connect=function(sigObj, sigFP, slotObj, slotFP){var isFound=this.isSigFP(sigFP);if(!isFound){this.addSig(new NW_SignalObj(sigObj, sigFP));};var csig=this.getSig(sigFP);csig.addSlot(slotObj, slotFP);}; this.connectOnce=function(sigObj, sigFP, slotObj, slotFP){var isFound=this.isSigFP(sigFP);if(!isFound){this.addSig(new NW_SignalObj(sigObj, sigFP));};var csig=this.getSig(sigFP);var isIn=false;for(x in csig.slots){if((csig.slots[x].obj==slotObj)&&(csig.slots[x].fp==slotFP)){isIn=true;break;};};if(!isIn){csig.addSlot(slotObj, slotFP);};}; this.connectByName=function(sigObj, sigFuncName, slotObj, slotFuncName){if(sigObj==null){sigObj=window;};if(slotObj==null){slotObj=window;};var sigfn="__sig_wrapped_"+sigFuncName+"__";var slotfn="__sig_wrapped_"+slotFuncName+"__";if(!sigObj[sigfn]){this.addBareSignalByName(sigObj, sigFuncName);};var sigFP=sigObj[sigfn]; var csig=this.getSig(sigFP);if(!slotObj[slotfn]){this.addBareSignalByName(slotObj, slotFuncName);};var slotFP=slotObj[slotfn];csig.addSlot(slotObj, slotFP);}; this.connectOnceByName=function(sigObj, sigFuncName, slotObj, slotFuncName){if(sigObj==null){sigObj=window;};if(slotObj==null){slotObj=window;};var sigfn="__sig_wrapped_"+sigFuncName+"__";var slotfn="__sig_wrapped_"+slotFuncName+"__";if(!sigObj[sigfn]){this.addBareSignalByName(sigObj, sigFuncName);};var sigFP=sigObj[sigfn];var csig=this.getSig(sigFP);if(!slotObj[slotfn]){this.addBareSignalByName(slotObj, slotFuncName);};var slotFP=slotObj[slotfn];var isIn=false;for(x in csig.slots){if((csig.slots[x].obj==slotObj)&&(csig.slots[x].fp==slotFP)){isIn=true;break;};};if(!isIn){csig.addSlot(slotObj, slotFP);};}; this.disconnectByName=function(sigObj, sigFuncName, slotObj, slotFuncName){if(sigObj==null){sigObj=window;};if(slotObj==null){slotObj=window;};var sigFP=sigObj["__sig_wrapped_"+sigFuncName+"__"];var slotFP=slotObj["__sig_wrapped_"+slotFuncName+"__"];var csig=this.getSig(sigFP);csig.rmSlot(slotObj, slotFP);}; this.disconnectAllByName=function(sigObj, sigFuncName, slotObj, slotFuncName){if(sigObj==null){sigObj=window;};if(slotObj==null){slotObj=window;};var sigfn="__sig_wrapped_"+sigFuncName+"__";var slotfn="__sig_wrapped_"+slotFuncName+"__";var slotFP=slotObj[slotfn];var sigFP=sigObj[sigfn];var csig=this.getSig(sigFP);csig.rmSlot(slotObj, slotFP, true);}; this.disconnect=function(sigObj, sigFuncName, slotObj, slotFuncName){var csig=this.getSig(sigFP);csig.rmSlot(slotObj, slotFP);}; this.disconnectAll=function(sigObj, sigFP, slotObj, slotFP){var csig=this.getSig(sigFP);csig.rmSlot(slotObj, slotFP, true);}; this.addBareSignal=function(sigObj, sigFP){this.addSig(new NW_SignalObj(sigObj, sigFP));}; this.addBareSig=this.addBareSignal; this.addBareSignalByName=function(sigObj, sigFuncName){if(sigObj==null){sigObj=window;};if(!sigObj[sigFuncName]){sigObj[sigFuncName]=function(){return true;};};var sfn="__sig_wrapped_"+sigFuncName+"__";if(!sigObj[sfn]){var sigFP=sigObj[sigFuncName];sigObj[sfn]=sigFP;sigObj[sigFuncName]=function(){var alen=arguments.length;var tarr=[];for(var x=0;x<alen;x++){tarr[tarr.length]=arguments[x];};return __sig__.emitWithArgsArr(sigObj[sfn], tarr);};};var sigFP=sigObj[sfn];var isFound=this.isSigFP(sigFP);if(!isFound){this.addSig(new NW_SignalObj(sigObj, sigFP));};return true;}; this.addBareSigByName=this.addBareSignalByName; this.addSig=function(sigObj){var cUID=uID++;connArr[cUID]=sigObj;}; this.isSigFP=function(fp){var isFound=false;for(var x in connArr){if(connArr[x].fp==fp){isFound=true;};};return isFound;}; this.getSig=function(fp){for(var x in connArr){if(connArr[x].fp==fp){return connArr[x];};};return null;}; this.emit=function(fp){for(x in connArr){if(connArr[x].fp==fp){var csig=connArr[x];var alen=arguments.length;var tarr=new Array();var ret=null;for(var x=1;x<alen;x++){tarr[tarr.length]=arguments[x];};if(csig.fp){ret=(csig.fp).apply(csig.obj, tarr);};if(!this.lock){for(y in csig.slots){if((csig.slots[y])&&(csig.slots[y].fp)){var ntarr=new Array(csig.slots[y].fp);ntarr=ntarr.concat(tarr);this.emit.apply(this, ntarr);};};};return ret;};};}; this.emitWithArgsArr=function(fp, argsArr){for(x in connArr){if(connArr[x].fp==fp){var ret=null;var csig=connArr[x];if(csig.fp){ret=(csig.fp).apply(csig.obj, argsArr);};if(!this.lock){for(y in csig.slots){if((csig.slots[y])&&(csig.slots[y].fp)){var ntarr=new Array(csig.slots[y].fp);ntarr=ntarr.concat(argsArr);this.emit.apply(this, ntarr);};};};return ret;};};};};__signals_registry__=__sig__; try{if(window.__scripts__){__scripts__.finalize(__config__.corePath+"sigslot_core.js");};}catch(e){};