YAHOO.util.CustomEvent=function(b,a){this.type=b;this.scope=a||window;this.subscribers=[];if(YAHOO.util.Event){YAHOO.util.Event.regCE(this)}};YAHOO.util.CustomEvent.prototype={subscribe:function(b,c,a){this.subscribers.push(new YAHOO.util.Subscriber(b,c,a))},unsubscribe:function(c,e){var d=false;for(var a=0;a<this.subscribers.length;++a){var b=this.subscribers[a];if(b&&b.contains(c,e)){this._delete(a);d=true}}return d},fire:function(){for(var a=0;a<this.subscribers.length;++a){var c=this.subscribers[a];if(c){var b=(c.override)?c.obj:this.scope;c.fn.call(b,this.type,arguments,c.obj)}}},unsubscribeAll:function(){for(var a=0;a<this.subscribers.length;++a){this._delete(a)}},_delete:function(a){var b=this.subscribers[a];if(b){delete b.fn;delete b.obj}delete this.subscribers[a]}};YAHOO.util.Subscriber=function(b,c,a){this.fn=b;this.obj=c||null;this.override=(a)};YAHOO.util.Subscriber.prototype.contains=function(a,b){return(this.fn==a&&this.obj==b)};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var d=false;var e=[];var b=[];var g=[];var c=[];var f=[];var a=[];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(k,h,p,r,j){if(this._isValidCollection(k)){var q=true;for(var n=0;n<k.length;++n){q=(this.on(k[n],h,p,r,j)&&q)}return q}else{if(typeof k=="string"){if(d){k=this.getEl(k)}else{b[b.length]=[k,h,p,r,j];return true}}}if(!k){return false}if("unload"==h&&r!==this){g[g.length]=[k,h,p,r,j];return true}var t=(j)?r:k;var l=function(u){return p.call(t,YAHOO.util.Event.getEvent(u),r)};var s=[k,h,p,l,t];var o=e.length;e[o]=s;if(this.useLegacyEvent(k,h)){var m=this.getLegacyIndex(k,h);if(m==-1){m=f.length;f[m]=[k,h,k["on"+h]];a[m]=[];k["on"+h]=function(u){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(u),m)}}a[m].push(o)}else{if(k.addEventListener){k.addEventListener(h,l,false)}else{if(k.attachEvent){k.attachEvent("on"+h,l)}}}return true},fireLegacyEvent:function(o,p){var m=true;var l=a[p];for(i=0;i<l.length;++i){var k=l[i];if(k){var h=e[k];var n=h[this.ADJ_SCOPE];var j=h[this.WFN].call(n,o);m=(m&&j)}}return m},getLegacyIndex:function(k,l){for(var j=0;j<f.length;++j){var h=f[j];if(h&&h[0]==k&&h[1]==l){return j}}return -1},useLegacyEvent:function(h,j){return((!h.addEventListener&&!h.attachEvent)||(j=="click"&&this.isSafari))},removeListener:function(n,o,m){if(typeof n=="string"){n=this.getEl(n)}else{if(this._isValidCollection(n)){var l=true;for(var k=0;k<n.length;++k){l=(this.removeListener(n[k],o,m)&&l)}return l}}var h=null;var j=this._getCacheIndex(n,o,m);if(j>=0){h=e[j]}if(!n||!h){return false}if(n.removeEventListener){n.removeEventListener(o,h[this.WFN],false)}else{if(n.detachEvent){n.detachEvent("on"+o,h[this.WFN])}}delete e[j][this.WFN];delete e[j][this.FN];delete e[j];return true},getTarget:function(k,j){var h=k.target||k.srcElement;if(j&&h&&"#text"==h.nodeName){return h.parentNode}else{return h}},getPageX:function(j){var h=j.pageX;if(!h&&0!==h){h=j.clientX||0;if(this.isIE){h+=this._getScrollLeft()}}return h},getPageY:function(h){var j=h.pageY;if(!j&&0!==j){j=h.clientY||0;if(this.isIE){j+=this._getScrollTop()}}return j},getRelatedTarget:function(j){var h=j.relatedTarget;if(!h){if(j.type=="mouseout"){h=j.toElement}else{if(j.type=="mouseover"){h=j.fromElement}}}return h},getTime:function(j){if(!j.time){var h=new Date().getTime();try{j.time=h}catch(k){return h}}return j.time},stopEvent:function(h){this.stopPropagation(h);this.preventDefault(h)},stopPropagation:function(h){if(h.stopPropagation){h.stopPropagation()}else{h.cancelBubble=true}},preventDefault:function(h){if(h.preventDefault){h.preventDefault()}else{h.returnValue=false}},getEvent:function(j){var h=j||window.event;if(!h){var k=this.getEvent.caller;while(k){h=k.arguments[0];if(h&&Event==h.constructor){break}k=k.caller}}return h},getCharCode:function(h){return h.charCode||(h.type=="keypress")?h.keyCode:0},_getCacheIndex:function(l,m,k){for(var j=0;j<e.length;++j){var h=e[j];if(h&&h[this.FN]==k&&h[this.EL]==l&&h[this.TYPE]==m){return j}}return -1},_isValidCollection:function(h){return(h&&h.length&&typeof h!="string"&&!h.tagName&&!h.alert&&typeof h[0]!="undefined")},elCache:{},getEl:function(h){return document.getElementById(h)},clearCache:function(){for(i in this.elCache){delete this.elCache[i]}},regCE:function(h){c.push(h)},_load:function(h){d=true},_tryPreloadAttach:function(){var k=!d;for(var h=0;h<b.length;++h){var l=b[h];if(l){var j=this.getEl(l[this.EL]);if(j){this.on(j,l[this.TYPE],l[this.FN],l[this.SCOPE],l[this.ADJ_SCOPE]);delete b[h]}}}if(k){setTimeout("YAHOO.util.Event._tryPreloadAttach()",50)}},_unload:function(n,m){for(var j=0;j<g.length;++j){var h=g[j];if(h){var k=(h[this.ADJ_SCOPE])?h[this.SCOPE]:window;h[this.FN].call(k,this.getEvent(n),h[this.SCOPE])}}if(e&&e.length>0){for(j=0;j<e.length;++j){h=e[j];if(h){this.removeListener(h[this.EL],h[this.TYPE],h[this.FN])}}this.clearCache()}for(j=0;j<c.length;++j){c[j].unsubscribeAll();delete c[j]}for(j=0;j<f.length;++j){delete f[j][0];delete f[j]}},_getScrollLeft:function(){return this._getScroll()[1]},_getScrollTop:function(){return this._getScroll()[0]},_getScroll:function(){var h=document.documentElement;db=document.body;if(h&&h.scrollTop){return[h.scrollTop,h.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()};
