/* Copyright (c) 2006, Yahoo! Inc. All rights reserved. Code licensed under the BSD License:http://developer.yahoo.net/yui/license.txt Version: 0.11.4*/ 
YAHOO.util.CustomEvent=function(_1,_2,_3){
	this.type=_1;
	this.scope=_2||window;
	this.silent=_3;
	this.subscribers=[];
	if(!this.silent){
	}
};

YAHOO.util.CustomEvent.prototype={
	subscribe:function(fn,_5,_6){
		this.subscribers.push(new YAHOO.util.Subscriber(fn,_5,_6));
	},unsubscribe:function(fn,_7){
		var _8=false;
		for(var i=0,len=this.subscribers.length;i<len;++i){
			var s=this.subscribers[i];
			if(s&&s.contains(fn,_7)){
				this._delete(i);
				_8=true;
			}
		}
		return _8;
	},fire:function(){
		var len=this.subscribers.length;
		if(!len&&this.silent){
			return;
		}
		var _12=[];
		for(var i=0;i<arguments.length;++i){
			_12.push(arguments[i]);
		}
		if(!this.silent){
		}
		for(i=0;i<len;++i){
			var s=this.subscribers[i];
			if(s){
				if(!this.silent){
				}
				var _13=(s.override)?s.obj:this.scope;
				s.fn.call(_13,this.type,_12,s.obj);
			}
		}
	},unsubscribeAll:function(){
		for(var i=0,len=this.subscribers.length;i<len;++i){
			this._delete(len-1-i);
		}
	},_delete:function(_14){
		var s=this.subscribers[_14];
		if(s){
			delete s.fn;
			delete s.obj;
		}
		this.subscribers.splice(_14,1);
	},toString:function(){
		return "CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;
	}
};

YAHOO.util.Subscriber=function(fn,obj,_16){
	this.fn=fn;
	this.obj=obj||null;
	this.override=(_16);
};

YAHOO.util.Subscriber.prototype.contains=function(fn,obj){
	return (this.fn==fn&&this.obj==obj);
};

YAHOO.util.Subscriber.prototype.toString=function(){
	return "Subscriber { obj: "+(this.obj||"")+", override: "+(this.override||"no")+" }";
};

if(!YAHOO.util.Event){
	YAHOO.util.Event=function(){
		var _17=false;
		var _18=[];
		var _19=[];
		var _20=[];
		var _21=[];
		var _22=[];
		var _23=0;
		var _24=[];
		var _25=[];
		var _26=0;
		return {
			POLL_RETRYS:200,POLL_INTERVAL:50,EL:0,TYPE:1,FN:2,WFN:3,SCOPE:3,ADJ_SCOPE:4,isSafari:(/Safari|Konqueror|KHTML/gi).test(navigator.userAgent),isIE:(!this.isSafari&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),addDelayedListener:function(el,_28,fn,_29,_30){
				_19[_19.length]=[el,_28,fn,_29,_30];
				if(_17){
					_23=this.POLL_RETRYS;
					this.startTimeout(0);
				}
			},startTimeout:function(_31){
				var i=(_31||_31===0)?_31:this.POLL_INTERVAL;
				var _32=this;
				var _33=function(){
					_32._tryPreloadAttach();
				};
				this.timeout=setTimeout(_33,i);
			},onAvailable:function(_34,_35,_36,_37){
				_24.push({id:_34,fn:_35,obj:_36,override:_37});
				_23=this.POLL_RETRYS;
				this.startTimeout(0);
			},addListener:function(el,_38,fn,_39,_40){
				if(!fn||!fn.call){
					return false;
				}
				if(this._isValidCollection(el)){
					var ok=true;
					for(var i=0,len=el.length;i<len;++i){
						ok=(this.on(el[i],_38,fn,_39,_40)&&ok);
					}
					return ok;
				}else{
					if(typeof el=="string"){
						var oEl=this.getEl(el);
						if(_17&&oEl){
							el=oEl;
						}else{
							this.addDelayedListener(el,_38,fn,_39,_40);
							return true;
						}
					}
				}
				if(!el){
					return false;
				}
				if("unload"==_38&&_39!==this){
					_20[_20.length]=[el,_38,fn,_39,_40];
					return true;
				}
				var _43=(_40)?_39:el;
				var _44=function(e){
					return fn.call(_43,YAHOO.util.Event.getEvent(e),_39);
				};
				var li=[el,_38,fn,_44,_43];
				var _47=_18.length;
				_18[_47]=li;
				if(this.useLegacyEvent(el,_38)){
					var _48=this.getLegacyIndex(el,_38);
					if(_48==-1||el!=_21[_48][0]){
						_48=_21.length;
						_25[el.id+_38]=_48;
						_21[_48]=[el,_38,el["on"+_38]];
						_22[_48]=[];
						el["on"+_38]=function(e){
							YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),_48);
						};
					}_22[_48].push(li);
				}else{
					if(el.addEventListener){
						el.addEventListener(_38,_44,false);
					}else{
						if(el.attachEvent){
							el.attachEvent("on"+_38,_44);
					}
				}
			}
			return true;
		},fireLegacyEvent:function(e,_49){
			var ok=true;
			var le=_22[_49];
			for(var i=0,len=le.length;i<len;++i){
				var li=le[i];
				if(li&&li[this.WFN]){
					var _51=li[this.ADJ_SCOPE];
					var ret=li[this.WFN].call(_51,e);
					ok=(ok&&ret);
				}
			}
			return ok;
		},getLegacyIndex:function(el,_53){
			var key=this.generateId(el)+_53;
			if(typeof _25[key]=="undefined"){
				return -1;
			}else{
				return _25[key];
			}
		},useLegacyEvent:function(el,_55){
			if(!el.addEventListener&&!el.attachEvent){
				return true;
			}else{
				if(this.isSafari){
					if("click"==_55||"dblclick"==_55){
						return true;
					}
				}
			}
			return false;
		},removeListener:function(el,_56,fn,_57){
			if(!fn||!fn.call){
				return false;
			}
			var i,len;
			if(typeof el=="string"){
				el=this.getEl(el);
			}else{
				if(this._isValidCollection(el)){
					var ok=true;
					for(i=0,len=el.length;i<len;++i){
						ok=(this.removeListener(el[i],_56,fn)&&ok);
					}
					return ok;
				}
			}
			if("unload"==_56){
				for(i=0,len=_20.length;i<len;i++){
					var li=_20[i];
					if(li&&li[0]==el&&li[1]==_56&&li[2]==fn){
						_20.splice(i,1);
						return true;
					}
				}
				return false;
			}
			var _58=null;
			if("undefined"==typeof _57){
				_57=this._getCacheIndex(el,_56,fn);
			}
			if(_57>=0){
				_58=_18[_57];
			}
			if(!el||!_58){
				return false;
			}
			if(this.useLegacyEvent(el,_56)){
				var _59=this.getLegacyIndex(el,_56);
				var _60=_22[_59];
				if(_60){
					for(i=0,len=_60.length;i<len;++i){
						li=_60[i];
						if(li&&li[this.EL]==el&&li[this.TYPE]==_56&&li[this.FN]==fn){
							_60.splice(i,1);
						}
					}
				}
			}else{
				if(el.removeEventListener){
					el.removeEventListener(_56,_58[this.WFN],false);
				}else{
					if(el.detachEvent){
						el.detachEvent("on"+_56,_58[this.WFN]);
					}
				}
			}
			delete _18[_57][this.WFN];
			delete _18[_57][this.FN];
			_18.splice(_57,1);
			return true;
		},getTarget:function(ev,_62){
			var t=ev.target||ev.srcElement;
			return this.resolveTextNode(t);
		},resolveTextNode:function(_64){
			if(_64&&_64.nodeName&&"#TEXT"==_64.nodeName.toUpperCase()){
				return _64.parentNode;
			}else{
				return _64;
			}
		},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;
		},getXY:function(ev){
			return [this.getPageX(ev),this.getPageY(ev)];
		},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 this.resolveTextNode(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,_68,fn){
			for(var i=0,len=_18.length;i<len;++i){
				var li=_18[i];
				if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_68){
					return i;
				}
			}
			return -1;
		},generateId:function(el){
			var id=el.id;
			if(!id){
				id="yuievtautoid-"+_26;
				++_26;
				el.id=id;
			}
			return id;
		},_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(){
		},_load:function(e){
			_17=true;
			var EU=YAHOO.util.Event;
			EU._simpleRemove(window,"load",EU._load);
		},_tryPreloadAttach:function(){
			if(this.locked){
				return false;
			}
			this.locked=true;
			var _72=!_17;
			if(!_72){
				_72=(_23>0);
			}
			var _73=[];
			for(var i=0,len=_19.length;i<len;++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];
					}else{
						_73.push(d);
					}
				}
			}
			_19=_73;
			var _75=[];
			for(i=0,len=_24.length;i<len;++i){
				var _76=_24[i];
				if(_76){
					el=this.getEl(_76.id);
					if(el){
						var _77=(_76.override)?_76.obj:el;
						_76.fn.call(_77,_76.obj);
						delete _24[i];
					}else{
						_75.push(_76);
					}
				}
			}
			_23=(_73.length===0&&_75.length===0)?0:_23-1;
			if(_72){
				this.startTimeout();
			}
			this.locked=false;
			return true;
		},purgeElement:function(el,_78,_79){
			var _80=this.getListeners(el,_79);
			if(_80){
				for(var i=0,len=_80.length;i<len;++i){
					var l=_80[i];
					this.removeListener(el,l.type,l.fn);
				}
			}
			if(_78&&el&&el.childNodes){
				for(i=0,len=el.childNodes.length;i<len;++i){
					this.purgeElement(el.childNodes[i],_78,_79);
				}
			}
		},getListeners:function(el,_82){
			var _83=[];
			if(_18&&_18.length>0){
				for(var i=0,len=_18.length;i<len;++i){
					var l=_18[i];
					if(l&&l[this.EL]===el&&(!_82||_82===l[this.TYPE])){
						_83.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.SCOPE],adjust:l[this.ADJ_SCOPE],index:i});
					}
				}
			}
			return (_83.length)?_83:null;
		},_unload:function(e){
			var EU=YAHOO.util.Event;
			for(var i=0,len=_20.length;i<len;++i){
				var l=_20[i];
				if(l){
					var _84=(l[EU.ADJ_SCOPE])?l[EU.SCOPE]:window;
					l[EU.FN].call(_84,EU.getEvent(e),l[EU.SCOPE]);
					delete _20[i];
					l=null;
				}
			}
			if(_18&&_18.length>0){
				var j=_18.length;
				while(j){
					var _86=j-1;
					l=_18[_86];
					if(l){
						EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],_86);
					}
					l=null;
					j=j-1;
				}
				EU.clearCache();
			}
			for(i=0,len=_21.length;i<len;++i){
				delete _21[i][0];
				delete _21[i];
			}
			EU._simpleRemove(window,"unload",EU._unload);
		},_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||dd.scrollLeft)){
				return [dd.scrollTop,dd.scrollLeft];
			}else{
				if(db){
					return [db.scrollTop,db.scrollLeft];
				}else{
					return [0,0];
				}
			}
		},_simpleAdd:function(el,_88,fn,_89){
			if(el.addEventListener){
				el.addEventListener(_88,fn,(_89));
			}else{
				if(el.attachEvent){
					el.attachEvent("on"+_88,fn);
				}
			}
		},_simpleRemove:function(el,_90,fn,_91){
			if(el.removeEventListener){
				el.removeEventListener(_90,fn,(_91));
			}else{
				if(el.detachEvent){
					el.detachEvent("on"+_90,fn);
				}
			}
		}
	};
}
	();
	YAHOO.util.Event.on=YAHOO.util.Event.addListener;
	if(document&&document.body){
		YAHOO.util.Event._load();
	}else{
		YAHOO.util.Event._simpleAdd(window,"load",YAHOO.util.Event._load);
	}
	YAHOO.util.Event._simpleAdd(window,"unload",YAHOO.util.Event._unload);
	YAHOO.util.Event._tryPreloadAttach();
}
