YAHOO.util.CustomEvent=function(_1,_2){
this.type=_1;
this.scope=_2||window;
this.subscribers=[];
if(YAHOO.util["Event"]){
YAHOO.util.Event.regCE(this);
}
};
YAHOO.util.CustomEvent.prototype={subscribe:function(fn,_4,_5){
this.subscribers.push(new YAHOO.util.Subscriber(fn,_4,_5));
},unsubscribe:function(fn,_7){
var _8=false;
for(var i=0;i<this.subscribers.length;++i){
var s=this.subscribers[i];
if(s&&s.contains(fn,_7)){
this._delete(i);
_8=true;
}
}
return _8;
},fire:function(){
for(var i=0;i<this.subscribers.length;++i){
var s=this.subscribers[i];
if(s){
var _d=(s.override)?s.obj:this.scope;
var _e=arguments;
s.fn.call(_d,this.type,arguments,s.obj);
}
}
},unsubscribeAll:function(){
for(var i=0;i<this.subscribers.length;++i){
this._delete(i);
}
},_delete:function(_10){
var s=this.subscribers[_10];
if(s){
delete s.fn;
delete s.obj;
}
delete this.subscribers[_10];
}};
YAHOO.util.Subscriber=function(fn,obj,_14){
this.fn=fn;
this.obj=obj||null;
this.override=(_14);
};
YAHOO.util.Subscriber.prototype.contains=function(fn,obj){
return (this.fn==fn&&this.obj==obj);
};
if(!YAHOO.util.Event){
YAHOO.util.Event=function(){
var _17=false;
var _18=[];
var _19=[];
var _1a=[];
var _1b=[];
var _1c=[];
var _1d=[];
return {EL:0,TYPE:1,FN:2,WFN:3,SCOPE:3,ADJ_SCOPE:4,isSafari:(navigator.userAgent.match(/safari/gi)),isIE:(!this.isSafari&&navigator.userAgent.match(/msie/gi)),addListener:function(el,_1f,fn,_21,_22){
if(this._isValidCollection(el)){
var ok=true;
for(var i=0;i<el.length;++i){
ok=(this.on(el[i],_1f,fn,_21,_22)&&ok);
}
return ok;
}else{
if(typeof el=="string"){
if(_17){
el=this.getEl(el);
}else{
_19[_19.length]=[el,_1f,fn,_21,_22];
return true;
}
}
}
if(!el){
return false;
}
if("unload"==_1f&&_21!==this){
_1a[_1a.length]=[el,_1f,fn,_21,_22];
return true;
}
var _25=(_22)?_21:el;
var _26=function(e){
return fn.call(_25,YAHOO.util.Event.getEvent(e),_21);
};
var li=[el,_1f,fn,_26,_25];
var _29=_18.length;
_18[_29]=li;
if(this.useLegacyEvent(el,_1f)){
var _2a=this.getLegacyIndex(el,_1f);
if(_2a==-1){
_2a=_1c.length;
_1c[_2a]=[el,_1f,el["on"+_1f]];
_1d[_2a]=[];
el["on"+_1f]=function(e){
YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),_2a);
};
}
_1d[_2a].push(_29);
}else{
if(el.addEventListener){
el.addEventListener(_1f,_26,false);
}else{
if(el.attachEvent){
el.attachEvent("on"+_1f,_26);
}
}
}
return true;
},fireLegacyEvent:function(e,_2d){
var ok=true;
var le=_1d[_2d];
for(i=0;i<le.length;++i){
var _30=le[i];
if(_30){
var li=_18[_30];
var _32=li[this.ADJ_SCOPE];
var ret=li[this.WFN].call(_32,e);
ok=(ok&&ret);
}
}
return ok;
},getLegacyIndex:function(el,_35){
for(var i=0;i<_1c.length;++i){
var le=_1c[i];
if(le&&le[0]==el&&le[1]==_35){
return i;
}
}
return -1;
},useLegacyEvent:function(el,_39){
return ((!el.addEventListener&&!el.attachEvent)||(_39=="click"&&this.isSafari));
},removeListener:function(el,_3b,fn){
if(typeof el=="string"){
el=this.getEl(el);
}else{
if(this._isValidCollection(el)){
var ok=true;
for(var i=0;i<el.length;++i){
ok=(this.removeListener(el[i],_3b,fn)&&ok);
}
return ok;
}
}
var _3f=null;
var _40=this._getCacheIndex(el,_3b,fn);
if(_40>=0){
_3f=_18[_40];
}
if(!el||!_3f){
return false;
}
if(el.removeEventListener){
el.removeEventListener(_3b,_3f[this.WFN],false);
}else{
if(el.detachEvent){
el.detachEvent("on"+_3b,_3f[this.WFN]);
}
}
delete _18[_40][this.WFN];
delete _18[_40][this.FN];
delete _18[_40];
return true;
},getTarget:function(ev,_42){
var t=ev.target||ev.srcElement;
if(_42&&t&&"#text"==t.nodeName){
return t.parentNode;
}else{
return t;
}
},getPageX:function(ev){
var x=ev.pageX;
if(!x&&0!==x){
x=ev.clientX||0;
if(this.isIE){
x+=this._getScrollLeft();
}
}
return x;
},getPageY:function(ev){
var y=ev.pageY;
if(!y&&0!==y){
y=ev.clientY||0;
if(this.isIE){
y+=this._getScrollTop();
}
}
return y;
},getRelatedTarget:function(ev){
var t=ev.relatedTarget;
if(!t){
if(ev.type=="mouseout"){
t=ev.toElement;
}else{
if(ev.type=="mouseover"){
t=ev.fromElement;
}
}
}
return t;
},getTime:function(ev){
if(!ev.time){
var t=new Date().getTime();
try{
ev.time=t;
}
catch(e){
return t;
}
}
return ev.time;
},stopEvent:function(ev){
this.stopPropagation(ev);
this.preventDefault(ev);
},stopPropagation:function(ev){
if(ev.stopPropagation){
ev.stopPropagation();
}else{
ev.cancelBubble=true;
}
},preventDefault:function(ev){
if(ev.preventDefault){
ev.preventDefault();
}else{
ev.returnValue=false;
}
},getEvent:function(e){
var ev=e||window.event;
if(!ev){
var c=this.getEvent.caller;
while(c){
ev=c.arguments[0];
if(ev&&Event==ev.constructor){
break;
}
c=c.caller;
}
}
return ev;
},getCharCode:function(ev){
return ev.charCode||(ev.type=="keypress")?ev.keyCode:0;
},_getCacheIndex:function(el,_54,fn){
for(var i=0;i<_18.length;++i){
var li=_18[i];
if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_54){
return i;
}
}
return -1;
},_isValidCollection:function(o){
return (o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");
},elCache:{},getEl:function(id){
return document.getElementById(id);
},clearCache:function(){
for(i in this.elCache){
delete this.elCache[i];
}
},regCE:function(ce){
_1b.push(ce);
},_load:function(e){
_17=true;
},_tryPreloadAttach:function(){
var _5c=!_17;
for(var i=0;i<_19.length;++i){
var d=_19[i];
if(d){
var el=this.getEl(d[this.EL]);
if(el){
this.on(el,d[this.TYPE],d[this.FN],d[this.SCOPE],d[this.ADJ_SCOPE]);
delete _19[i];
}
}
}
if(_5c){
setTimeout("YAHOO.util.Event._tryPreloadAttach()",50);
}
},_unload:function(e,me){
for(var i=0;i<_1a.length;++i){
var l=_1a[i];
if(l){
var _64=(l[this.ADJ_SCOPE])?l[this.SCOPE]:window;
l[this.FN].call(_64,this.getEvent(e),l[this.SCOPE]);
}
}
if(_18&&_18.length>0){
for(i=0;i<_18.length;++i){
l=_18[i];
if(l){
this.removeListener(l[this.EL],l[this.TYPE],l[this.FN]);
}
}
this.clearCache();
}
for(i=0;i<_1b.length;++i){
_1b[i].unsubscribeAll();
delete _1b[i];
}
for(i=0;i<_1c.length;++i){
delete _1c[i][0];
delete _1c[i];
}
},_getScrollLeft:function(){
return this._getScroll()[1];
},_getScrollTop:function(){
return this._getScroll()[0];
},_getScroll:function(){
var dd=document.documentElement;
db=document.body;
if(dd&&dd.scrollTop){
return [dd.scrollTop,dd.scrollLeft];
}else{
if(db){
return [db.scrollTop,db.scrollLeft];
}else{
return [0,0];
}
}
}};
}();
YAHOO.util.Event.on=YAHOO.util.Event.addListener;
if(document&&document.body){
YAHOO.util.Event._load();
}else{
YAHOO.util.Event.on(window,"load",YAHOO.util.Event._load,YAHOO.util.Event,true);
}
YAHOO.util.Event.on(window,"unload",YAHOO.util.Event._unload,YAHOO.util.Event,true);
YAHOO.util.Event._tryPreloadAttach();
}
YAHOO.util.KeyListener=function(_66,_67,_68,_69){
if(!_69){
_69=YAHOO.util.KeyListener.KEYDOWN;
}
var _6a=new YAHOO.util.CustomEvent("keyPressed");
this.enabledEvent=new YAHOO.util.CustomEvent("enabled");
this.disabledEvent=new YAHOO.util.CustomEvent("disabled");
if(typeof _66=="string"){
_66=document.getElementById(_66);
}
if(typeof _68=="function"){
_6a.subscribe(_68);
}else{
_6a.subscribe(_68.fn,_68.scope,_68.correctScope);
}
var _6b=function(e,obj){
var _6e=e.charCode||e.keyCode;
if(!_67.shift){
_67.shift=false;
}
if(!_67.alt){
_67.alt=false;
}
if(!_67.ctrl){
_67.ctrl=false;
}
if(e.shiftKey==_67.shift&&e.altKey==_67.alt&&e.ctrlKey==_67.ctrl){
if(_67.keys instanceof Array){
for(var i=0;i<_67.keys.length;i++){
if(_6e==_67.keys[i]){
_6a.fire(_6e,e);
break;
}
}
}else{
if(_6e==_67.keys){
_6a.fire(_6e,e);
}
}
}
};
this.enable=function(){
if(!this.enabled){
YAHOO.util.Event.addListener(_66,_69,_6b);
this.enabledEvent.fire(_67);
}
this.enabled=true;
};
this.disable=function(){
if(this.enabled){
YAHOO.util.Event.removeListener(_66,_69,_6b);
this.disabledEvent.fire(_67);
}
this.enabled=false;
};
};
YAHOO.util.KeyListener.KEYDOWN="keydown";
YAHOO.util.KeyListener.KEYUP="keyup";
YAHOO.util.KeyListener.prototype.enable=function(){
};
YAHOO.util.KeyListener.prototype.disable=function(){
};
YAHOO.util.KeyListener.prototype.enabledEvent=null;
YAHOO.util.KeyListener.prototype.disabledEvent=null;
YAHOO.util.Key=new function(){
this.DOM_VK_UNDEFINED=0;
this.DOM_VK_RIGHT_ALT=18;
this.DOM_VK_LEFT_ALT=18;
this.DOM_VK_LEFT_CONTROL=17;
this.DOM_VK_RIGHT_CONTROL=17;
this.DOM_VK_LEFT_SHIFT=16;
this.DOM_VK_RIGHT_SHIFT=16;
this.DOM_VK_META=157;
this.DOM_VK_BACK_SPACE=8;
this.DOM_VK_CAPS_LOCK=20;
this.DOM_VK_DELETE=127;
this.DOM_VK_END=35;
this.DOM_VK_ENTER=13;
this.DOM_VK_ESCAPE=27;
this.DOM_VK_HOME=36;
this.DOM_VK_NUM_LOCK=144;
this.DOM_VK_PAUSE=19;
this.DOM_VK_PRINTSCREEN=154;
this.DOM_VK_SCROLL_LOCK=145;
this.DOM_VK_SPACE=32;
this.DOM_VK_TAB=9;
this.DOM_VK_LEFT=37;
this.DOM_VK_RIGHT=39;
this.DOM_VK_UP=38;
this.DOM_VK_DOWN=40;
this.DOM_VK_PAGE_DOWN=34;
this.DOM_VK_PAGE_UP=33;
};


