/* Packed
 *
 * libs/mochikit/Style.js
 * libs/mochikit/Signal.js
 *
 */
if(typeof (dojo)!="undefined"){
dojo.provide("MochiKit.Style");
dojo.require("MochiKit.Base");
dojo.require("MochiKit.DOM");
}
if(typeof (JSAN)!="undefined"){
JSAN.use("MochiKit.Base",[]);
JSAN.use("MochiKit.DOM",[]);
}
try{
if(typeof (MochiKit.Base)=="undefined"){
throw "";
}
}
catch(e){
throw "MochiKit.Style depends on MochiKit.Base!";
}
try{
if(typeof (MochiKit.DOM)=="undefined"){
throw "";
}
}
catch(e){
throw "MochiKit.Style depends on MochiKit.DOM!";
}
if(typeof (MochiKit.Style)=="undefined"){
MochiKit.Style={};
}
MochiKit.Style.NAME="MochiKit.Style";
MochiKit.Style.VERSION="1.4";
MochiKit.Style.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
MochiKit.Style.toString=function(){
return this.__repr__();
};
MochiKit.Style.EXPORT_OK=[];
MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];
MochiKit.Style.Dimensions=function(w,h){
this.w=w;
this.h=h;
};
MochiKit.Style.Dimensions.prototype.__repr__=function(){
var _3=MochiKit.Base.repr;
return "{w: "+_3(this.w)+", h: "+_3(this.h)+"}";
};
MochiKit.Style.Dimensions.prototype.toString=function(){
return this.__repr__();
};
MochiKit.Style.Coordinates=function(x,y){
this.x=x;
this.y=y;
};
MochiKit.Style.Coordinates.prototype.__repr__=function(){
var _6=MochiKit.Base.repr;
return "{x: "+_6(this.x)+", y: "+_6(this.y)+"}";
};
MochiKit.Style.Coordinates.prototype.toString=function(){
return this.__repr__();
};
MochiKit.Base.update(MochiKit.Style,{getStyle:function(_7,_8){
var _9=MochiKit.DOM;
var d=_9._document;
_7=_9.getElement(_7);
_8=MochiKit.Base.camelize(_8);
if(!_7||_7==d){
return undefined;
}
if(_8=="opacity"&&_7.filters){
var _b=(MochiKit.Style.getStyle(_7,"filter")||"").match(/alpha\(opacity=(.*)\)/);
if(_b&&_b[1]){
return parseFloat(_b[1])/100;
}
return 1;
}
var _c=_7.style?_7.style[_8]:null;
if(!_c){
if(d.defaultView&&d.defaultView.getComputedStyle){
var _d=d.defaultView.getComputedStyle(_7,null);
_8=_8.replace(/([A-Z])/g,"-$1").toLowerCase();
_c=_d?_d.getPropertyValue(_8):null;
}else{
if(_7.currentStyle){
_c=_7.currentStyle[_8];
}
}
}
if(_8=="opacity"){
_c=parseFloat(_c);
}
if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_8)!=-1)){
if(MochiKit.Style.getStyle(_7,"position")=="static"){
_c="auto";
}
}
return _c=="auto"?null:_c;
},setStyle:function(_e,_f){
_e=MochiKit.DOM.getElement(_e);
for(var _10 in _f){
if(_10=="opacity"){
MochiKit.Style.setOpacity(_e,_f[_10]);
}else{
_e.style[MochiKit.Base.camelize(_10)]=_f[_10];
}
}
},setOpacity:function(_11,o){
_11=MochiKit.DOM.getElement(_11);
var _13=MochiKit.Style;
if(o==1){
var _14=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));
_11.style["opacity"]=_14?0.999999:1;
if(/MSIE/.test(navigator.userAgent)){
_11.style["filter"]=_13.getStyle(_11,"filter").replace(/alpha\([^\)]*\)/gi,"");
}
}else{
if(o<0.00001){
o=0;
}
_11.style["opacity"]=o;
if(/MSIE/.test(navigator.userAgent)){
_11.style["filter"]=_13.getStyle(_11,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")";
}
}
},getElementPosition:function(_15,_16){
var _17=MochiKit.Style;
var dom=MochiKit.DOM;
_15=dom.getElement(_15);
if(!_15||(!(_15.x&&_15.y)&&(!_15.parentNode===null||_17.getStyle(_15,"display")=="none"))){
return undefined;
}
var c=new _17.Coordinates(0,0);
var box=null;
var _1b=null;
var d=MochiKit.DOM._document;
var de=d.documentElement;
var b=d.body;
if(!_15.parentNode&&_15.x&&_15.y){
c.x+=_15.x||0;
c.y+=_15.y||0;
}else{
if(_15.getBoundingClientRect){
box=_15.getBoundingClientRect();
c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
}else{
if(_15.offsetParent){
c.x+=_15.offsetLeft;
c.y+=_15.offsetTop;
_1b=_15.offsetParent;
if(_1b!=_15){
while(_1b){
c.x+=_1b.offsetLeft;
c.y+=_1b.offsetTop;
_1b=_1b.offsetParent;
}
}
var ua=navigator.userAgent.toLowerCase();
if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("AppleWebKit")!=-1&&_17.getStyle(_15,"position")=="absolute")){
c.x-=b.offsetLeft;
c.y-=b.offsetTop;
}
}
}
}
if(typeof (_16)!="undefined"){
_16=arguments.callee(_16);
if(_16){
c.x-=(_16.x||0);
c.y-=(_16.y||0);
}
}
if(_15.parentNode){
_1b=_15.parentNode;
}else{
_1b=null;
}
while(_1b){
var _20=_1b.tagName.toUpperCase();
if(_20==="BODY"||_20==="HTML"){
break;
}
var _21=_17.getStyle(_1b,"display");
if(_21!="inline"&&_21!="table-row"){
c.x-=_1b.scrollLeft;
c.y-=_1b.scrollTop;
}
if(_1b.parentNode){
_1b=_1b.parentNode;
}else{
_1b=null;
}
}
return c;
},setElementPosition:function(_22,_23,_24){
_22=MochiKit.DOM.getElement(_22);
if(typeof (_24)=="undefined"){
_24="px";
}
var _25={};
var _26=MochiKit.Base.isUndefinedOrNull;
if(!_26(_23.x)){
_25["left"]=_23.x+_24;
}
if(!_26(_23.y)){
_25["top"]=_23.y+_24;
}
MochiKit.DOM.updateNodeAttributes(_22,{"style":_25});
},getElementDimensions:function(_27){
var _28=MochiKit.Style;
var dom=MochiKit.DOM;
if(typeof (_27.w)=="number"||typeof (_27.h)=="number"){
return new _28.Dimensions(_27.w||0,_27.h||0);
}
_27=dom.getElement(_27);
if(!_27){
return undefined;
}
var _2a=_28.getStyle(_27,"display");
if(_2a!="none"&&_2a!==""&&typeof (_2a)!="undefined"){
return new _28.Dimensions(_27.offsetWidth||0,_27.offsetHeight||0);
}
var s=_27.style;
var _2c=s.visibility;
var _2d=s.position;
s.visibility="hidden";
s.position="absolute";
s.display="";
var _2e=_27.offsetWidth;
var _2f=_27.offsetHeight;
s.display="none";
s.position=_2d;
s.visibility=_2c;
return new _28.Dimensions(_2e,_2f);
},setElementDimensions:function(_30,_31,_32){
_30=MochiKit.DOM.getElement(_30);
if(typeof (_32)=="undefined"){
_32="px";
}
var _33={};
var _34=MochiKit.Base.isUndefinedOrNull;
if(!_34(_31.w)){
_33["width"]=_31.w+_32;
}
if(!_34(_31.h)){
_33["height"]=_31.h+_32;
}
MochiKit.DOM.updateNodeAttributes(_30,{"style":_33});
},setDisplayForElement:function(_35,_36){
var _37=MochiKit.Base.extend(null,arguments,1);
var _38=MochiKit.DOM.getElement;
for(var i=0;i<_37.length;i++){
_36=_38(_37[i]);
if(_36){
_36.style.display=_35;
}
}
},getViewportDimensions:function(){
var d=new MochiKit.Style.Dimensions();
var w=MochiKit.DOM._window;
var b=MochiKit.DOM._document.body;
if(w.innerWidth){
d.w=w.innerWidth;
d.h=w.innerHeight;
}else{
if(b.parentElement.clientWidth){
d.w=b.parentElement.clientWidth;
d.h=b.parentElement.clientHeight;
}else{
if(b&&b.clientWidth){
d.w=b.clientWidth;
d.h=b.clientHeight;
}
}
}
return d;
},getViewportPosition:function(){
var c=new MochiKit.Style.Coordinates(0,0);
var d=MochiKit.DOM._document;
var de=d.documentElement;
var db=d.body;
if(de&&(de.scrollTop||de.scrollLeft)){
c.x=de.scrollLeft;
c.y=de.scrollTop;
}else{
if(db){
c.x=db.scrollLeft;
c.y=db.scrollTop;
}
}
return c;
},__new__:function(){
var m=MochiKit.Base;
this.elementPosition=this.getElementPosition;
this.elementDimensions=this.getElementDimensions;
this.hideElement=m.partial(this.setDisplayForElement,"none");
this.showElement=m.partial(this.setDisplayForElement,"block");
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
m.nameFunctions(this);
}});
MochiKit.Style.__new__();
MochiKit.Base._exportSymbols(this,MochiKit.Style);
if(typeof (dojo)!="undefined"){
dojo.provide("MochiKit.Signal");
dojo.require("MochiKit.Base");
dojo.require("MochiKit.DOM");
dojo.require("MochiKit.Style");
}
if(typeof (JSAN)!="undefined"){
JSAN.use("MochiKit.Base",[]);
JSAN.use("MochiKit.DOM",[]);
JSAN.use("MochiKit.Style",[]);
}
try{
if(typeof (MochiKit.Base)=="undefined"){
throw "";
}
}
catch(e){
throw "MochiKit.Signal depends on MochiKit.Base!";
}
try{
if(typeof (MochiKit.DOM)=="undefined"){
throw "";
}
}
catch(e){
throw "MochiKit.Signal depends on MochiKit.DOM!";
}
try{
if(typeof (MochiKit.Style)=="undefined"){
throw "";
}
}
catch(e){
throw "MochiKit.Signal depends on MochiKit.Style!";
}
if(typeof (MochiKit.Signal)=="undefined"){
MochiKit.Signal={};
}
MochiKit.Signal.NAME="MochiKit.Signal";
MochiKit.Signal.VERSION="1.4";
MochiKit.Signal._observers=[];
MochiKit.Signal.Event=function(src,e){
this._event=e||window.event;
this._src=src;
};
MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){
var _44=MochiKit.Base.repr;
var str="{event(): "+_44(this.event())+", src(): "+_44(this.src())+", type(): "+_44(this.type())+", target(): "+_44(this.target());
if(this.type()&&this.type().indexOf("key")===0||this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu"){
str+=", modifier(): "+"{alt: "+_44(this.modifier().alt)+", ctrl: "+_44(this.modifier().ctrl)+", meta: "+_44(this.modifier().meta)+", shift: "+_44(this.modifier().shift)+", any: "+_44(this.modifier().any)+"}";
}
if(this.type()&&this.type().indexOf("key")===0){
str+=", key(): {code: "+_44(this.key().code)+", string: "+_44(this.key().string)+"}";
}
if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
str+=", mouse(): {page: "+_44(this.mouse().page)+", client: "+_44(this.mouse().client);
if(this.type()!="mousemove"){
str+=", button: {left: "+_44(this.mouse().button.left)+", middle: "+_44(this.mouse().button.middle)+", right: "+_44(this.mouse().button.right)+"}}";
}else{
str+="}";
}
}
if(this.type()=="mouseover"||this.type()=="mouseout"){
str+=", relatedTarget(): "+_44(this.relatedTarget());
}
str+="}";
return str;
},toString:function(){
return this.__repr__();
},src:function(){
return this._src;
},event:function(){
return this._event;
},type:function(){
return this._event.type||undefined;
},target:function(){
return this._event.target||this._event.srcElement;
},_relatedTarget:null,relatedTarget:function(){
if(this._relatedTarget!==null){
return this._relatedTarget;
}
var _46=null;
if(this.type()=="mouseover"){
_46=(this._event.relatedTarget||this._event.fromElement);
}else{
if(this.type()=="mouseout"){
_46=(this._event.relatedTarget||this._event.toElement);
}
}
if(_46!==null){
this._relatedTarget=_46;
return _46;
}
return undefined;
},_modifier:null,modifier:function(){
if(this._modifier!==null){
return this._modifier;
}
var m={};
m.alt=this._event.altKey;
m.ctrl=this._event.ctrlKey;
m.meta=this._event.metaKey||false;
m.shift=this._event.shiftKey;
m.any=m.alt||m.ctrl||m.shift||m.meta;
this._modifier=m;
return m;
},_key:null,key:function(){
if(this._key!==null){
return this._key;
}
var k={};
if(this.type()&&this.type().indexOf("key")===0){
if(this.type()=="keydown"||this.type()=="keyup"){
k.code=this._event.keyCode;
k.string=(MochiKit.Signal._specialKeys[k.code]||"KEY_UNKNOWN");
this._key=k;
return k;
}else{
if(this.type()=="keypress"){
k.code=0;
k.string="";
if(typeof (this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){
k.code=this._event.charCode;
k.string=String.fromCharCode(k.code);
}else{
if(this._event.keyCode&&typeof (this._event.charCode)=="undefined"){
k.code=this._event.keyCode;
k.string=String.fromCharCode(k.code);
}
}
this._key=k;
return k;
}
}
}
return undefined;
},_mouse:null,mouse:function(){
if(this._mouse!==null){
return this._mouse;
}
var m={};
var e=this._event;
if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){
m.client=new MochiKit.Style.Coordinates(0,0);
if(e.clientX||e.clientY){
m.client.x=(!e.clientX||e.clientX<0)?0:e.clientX;
m.client.y=(!e.clientY||e.clientY<0)?0:e.clientY;
}
m.page=new MochiKit.Style.Coordinates(0,0);
if(e.pageX||e.pageY){
m.page.x=(!e.pageX||e.pageX<0)?0:e.pageX;
m.page.y=(!e.pageY||e.pageY<0)?0:e.pageY;
}else{
var de=MochiKit.DOM._document.documentElement;
var b=MochiKit.DOM._document.body;
m.page.x=e.clientX+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);
m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0);
}
if(this.type()!="mousemove"){
m.button={};
m.button.left=false;
m.button.right=false;
m.button.middle=false;
if(e.which){
m.button.left=(e.which==1);
m.button.middle=(e.which==2);
m.button.right=(e.which==3);
}else{
m.button.left=!!(e.button&1);
m.button.right=!!(e.button&2);
m.button.middle=!!(e.button&4);
}
}
this._mouse=m;
return m;
}
return undefined;
},stop:function(){
this.stopPropagation();
this.preventDefault();
},stopPropagation:function(){
if(this._event.stopPropagation){
this._event.stopPropagation();
}else{
this._event.cancelBubble=true;
}
},preventDefault:function(){
if(this._event.preventDefault){
this._event.preventDefault();
}else{
if(this._confirmUnload===null){
this._event.returnValue=false;
}
}
},_confirmUnload:null,confirmUnload:function(msg){
if(this.type()=="beforeunload"){
this._confirmUnload=msg;
this._event.returnValue=msg;
}
}});
MochiKit.Signal._specialMacKeys={3:"KEY_ENTER",63289:"KEY_NUM_PAD_CLEAR",63276:"KEY_PAGE_UP",63277:"KEY_PAGE_DOWN",63275:"KEY_END",63273:"KEY_HOME",63234:"KEY_ARROW_LEFT",63232:"KEY_ARROW_UP",63235:"KEY_ARROW_RIGHT",63233:"KEY_ARROW_DOWN",63302:"KEY_INSERT",63272:"KEY_DELETE"};
(function(){
var _4e=MochiKit.Signal._specialMacKeys;
for(i=63236;i<=63242;i++){
_4e[i]="KEY_F"+(i-63236+1);
}
})();
MochiKit.Signal._specialKeys={8:"KEY_BACKSPACE",9:"KEY_TAB",12:"KEY_NUM_PAD_CLEAR",13:"KEY_ENTER",16:"KEY_SHIFT",17:"KEY_CTRL",18:"KEY_ALT",19:"KEY_PAUSE",20:"KEY_CAPS_LOCK",27:"KEY_ESCAPE",32:"KEY_SPACEBAR",33:"KEY_PAGE_UP",34:"KEY_PAGE_DOWN",35:"KEY_END",36:"KEY_HOME",37:"KEY_ARROW_LEFT",38:"KEY_ARROW_UP",39:"KEY_ARROW_RIGHT",40:"KEY_ARROW_DOWN",44:"KEY_PRINT_SCREEN",45:"KEY_INSERT",46:"KEY_DELETE",59:"KEY_SEMICOLON",91:"KEY_WINDOWS_LEFT",92:"KEY_WINDOWS_RIGHT",93:"KEY_SELECT",106:"KEY_NUM_PAD_ASTERISK",107:"KEY_NUM_PAD_PLUS_SIGN",109:"KEY_NUM_PAD_HYPHEN-MINUS",110:"KEY_NUM_PAD_FULL_STOP",111:"KEY_NUM_PAD_SOLIDUS",144:"KEY_NUM_LOCK",145:"KEY_SCROLL_LOCK",186:"KEY_SEMICOLON",187:"KEY_EQUALS_SIGN",188:"KEY_COMMA",189:"KEY_HYPHEN-MINUS",190:"KEY_FULL_STOP",191:"KEY_SOLIDUS",192:"KEY_GRAVE_ACCENT",219:"KEY_LEFT_SQUARE_BRACKET",220:"KEY_REVERSE_SOLIDUS",221:"KEY_RIGHT_SQUARE_BRACKET",222:"KEY_APOSTROPHE"};
(function(){
var _4f=MochiKit.Signal._specialKeys;
for(var i=48;i<=57;i++){
_4f[i]="KEY_"+(i-48);
}
for(i=65;i<=90;i++){
_4f[i]="KEY_"+String.fromCharCode(i);
}
for(i=96;i<=105;i++){
_4f[i]="KEY_NUM_PAD_"+(i-96);
}
for(i=112;i<=123;i++){
_4f[i]="KEY_F"+(i-112+1);
}
})();
MochiKit.Signal.Ident=function(_51){
this.source=_51.source;
this.signal=_51.signal;
this.listener=_51.listener;
this.isDOM=_51.isDOM;
this.objOrFunc=_51.objOrFunc;
this.funcOrStr=_51.funcOrStr;
this.connected=_51.connected;
};
MochiKit.Signal.Ident.prototype={};
MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){
return "["+this.NAME+" "+this.VERSION+"]";
},toString:function(){
return this.__repr__();
},_unloadCache:function(){
var _52=MochiKit.Signal;
var _53=_52._observers;
for(var i=0;i<_53.length;i++){
if(_53[i].signal!=="onload"&&_53[i].signal!=="onunload"){
_52._disconnect(_53[i]);
}
}
},_listener:function(src,sig,_57,obj,_59){
var _5a=MochiKit.Signal;
var E=_5a.Event;
if(!_59){
return MochiKit.Base.bind(_57,obj);
}
obj=obj||src;
if(typeof (_57)=="string"){
if(sig==="onload"||sig==="onunload"){
return function(_5c){
obj[_57].apply(obj,[new E(src,_5c)]);
var _5d=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:obj,funcOrStr:_57});
MochiKit.Signal._disconnect(_5d);
};
}else{
return function(_5e){
obj[_57].apply(obj,[new E(src,_5e)]);
};
}
}else{
if(sig==="onload"||sig==="onunload"){
return function(_5f){
_57.apply(obj,[new E(src,_5f)]);
MochiKit.Signal.disconnect(src,sig,_57);
var _60=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:_57});
MochiKit.Signal._disconnect(_60);
};
}else{
return function(_61){
_57.apply(obj,[new E(src,_61)]);
};
}
}
},_browserAlreadyHasMouseEnterAndLeave:function(){
return /MSIE/.test(navigator.userAgent);
},_mouseEnterListener:function(src,sig,_64,obj){
var E=MochiKit.Signal.Event;
return function(_67){
var e=new E(src,_67);
try{
e.relatedTarget().nodeName;
}
catch(err){
return;
}
e.stop();
if(MochiKit.DOM.isChildNode(e.relatedTarget(),src)){
return;
}
e.type=function(){
return sig;
};
if(typeof (_64)=="string"){
return obj[_64].apply(obj,[e]);
}else{
return _64.apply(obj,[e]);
}
};
},_getDestPair:function(_69,_6a){
var obj=null;
var _6c=null;
if(typeof (_6a)!="undefined"){
obj=_69;
_6c=_6a;
if(typeof (_6a)=="string"){
if(typeof (_69[_6a])!="function"){
throw new Error("'funcOrStr' must be a function on 'objOrFunc'");
}
}else{
if(typeof (_6a)!="function"){
throw new Error("'funcOrStr' must be a function or string");
}
}
}else{
if(typeof (_69)!="function"){
throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");
}else{
_6c=_69;
}
}
return [obj,_6c];
},connect:function(src,sig,_6f,_70){
src=MochiKit.DOM.getElement(src);
var _71=MochiKit.Signal;
if(typeof (sig)!="string"){
throw new Error("'sig' must be a string");
}
var _72=_71._getDestPair(_6f,_70);
var obj=_72[0];
var _74=_72[1];
if(typeof (obj)=="undefined"||obj===null){
obj=src;
}
var _75=!!(src.addEventListener||src.attachEvent);
if(_75&&(sig==="onmouseenter"||sig==="onmouseleave")&&!_71._browserAlreadyHasMouseEnterAndLeave()){
var _76=_71._mouseEnterListener(src,sig.substr(2),_74,obj);
if(sig==="onmouseenter"){
sig="onmouseover";
}else{
sig="onmouseout";
}
}else{
var _76=_71._listener(src,sig,_74,obj,_75);
}
if(src.addEventListener){
src.addEventListener(sig.substr(2),_76,false);
}else{
if(src.attachEvent){
src.attachEvent(sig,_76);
}
}
var _77=new MochiKit.Signal.Ident({source:src,signal:sig,listener:_76,isDOM:_75,objOrFunc:_6f,funcOrStr:_70,connected:true});
_71._observers.push(_77);
if(!_75&&typeof (src.__connect__)=="function"){
var _78=MochiKit.Base.extend([_77],arguments,1);
src.__connect__.apply(src,_78);
}
return _77;
},_disconnect:function(_79){
if(!_79.connected){
return;
}
_79.connected=false;
if(!_79.isDOM){
return;
}
var src=_79.source;
var sig=_79.signal;
var _7c=_79.listener;
if(src.removeEventListener){
src.removeEventListener(sig.substr(2),_7c,false);
}else{
if(src.detachEvent){
src.detachEvent(sig,_7c);
}else{
throw new Error("'src' must be a DOM element");
}
}
},disconnect:function(_7d){
var _7e=MochiKit.Signal;
var _7f=_7e._observers;
var m=MochiKit.Base;
if(arguments.length>1){
var src=MochiKit.DOM.getElement(arguments[0]);
var sig=arguments[1];
var obj=arguments[2];
var _84=arguments[3];
for(var i=_7f.length-1;i>=0;i--){
var o=_7f[i];
if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===_84){
_7e._disconnect(o);
if(!_7e._lock){
_7f.splice(i,1);
}else{
_7e._dirty=true;
}
return true;
}
}
}else{
var idx=m.findIdentical(_7f,_7d);
if(idx>=0){
_7e._disconnect(_7d);
if(!_7e._lock){
_7f.splice(idx,1);
}else{
_7e._dirty=true;
}
return true;
}
}
return false;
},disconnectAllTo:function(_88,_89){
var _8a=MochiKit.Signal;
var _8b=_8a._observers;
var _8c=_8a._disconnect;
var _8d=_8a._lock;
var _8e=_8a._dirty;
if(typeof (_89)==="undefined"){
_89=null;
}
for(var i=_8b.length-1;i>=0;i--){
var _90=_8b[i];
if(_90.objOrFunc===_88&&(_89===null||_90.funcOrStr===_89)){
_8c(_90);
if(_8d){
_8e=true;
}else{
_8b.splice(i,1);
}
}
}
_8a._dirty=_8e;
},disconnectAll:function(src,sig){
src=MochiKit.DOM.getElement(src);
var m=MochiKit.Base;
var _94=m.flattenArguments(m.extend(null,arguments,1));
var _95=MochiKit.Signal;
var _96=_95._disconnect;
var _97=_95._observers;
var i,_99;
var _9a=_95._lock;
var _9b=_95._dirty;
if(_94.length===0){
for(i=_97.length-1;i>=0;i--){
_99=_97[i];
if(_99.source===src){
_96(_99);
if(!_9a){
_97.splice(i,1);
}else{
_9b=true;
}
}
}
}else{
var _9c={};
for(i=0;i<_94.length;i++){
_9c[_94[i]]=true;
}
for(i=_97.length-1;i>=0;i--){
_99=_97[i];
if(_99.source===src&&_99.signal in _9c){
_96(_99);
if(!_9a){
_97.splice(i,1);
}else{
_9b=true;
}
}
}
}
_95._dirty=_9b;
},signal:function(src,sig){
var _9f=MochiKit.Signal;
var _a0=_9f._observers;
src=MochiKit.DOM.getElement(src);
var _a1=MochiKit.Base.extend(null,arguments,2);
var _a2=[];
_9f._lock=true;
for(var i=0;i<_a0.length;i++){
var _a4=_a0[i];
if(_a4.source===src&&_a4.signal===sig){
try{
_a4.listener.apply(src,_a1);
}
catch(e){
_a2.push(e);
}
}
}
_9f._lock=false;
if(_9f._dirty){
_9f._dirty=false;
for(var i=_a0.length-1;i>=0;i--){
if(!_a0[i].connected){
_a0.splice(i,1);
}
}
}
if(_a2.length==1){
throw _a2[0];
}else{
if(_a2.length>1){
var e=new Error("Multiple errors thrown in handling 'sig', see errors property");
e.errors=_a2;
throw e;
}
}
}});
MochiKit.Signal.EXPORT_OK=[];
MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];
MochiKit.Signal.__new__=function(win){
var m=MochiKit.Base;
this._document=document;
this._window=win;
this._lock=false;
this._dirty=false;
try{
this.connect(window,"onunload",this._unloadCache);
}
catch(e){
}
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
m.nameFunctions(this);
};
MochiKit.Signal.__new__(this);
if(MochiKit.__export__){
connect=MochiKit.Signal.connect;
disconnect=MochiKit.Signal.disconnect;
disconnectAll=MochiKit.Signal.disconnectAll;
signal=MochiKit.Signal.signal;
}
MochiKit.Base._exportSymbols(this,MochiKit.Signal);


