Event.Publisher=Class.create();Object.extend(Event.Publisher,{_ls_event_targets:null,_event_source_id:null,_fl_trace_events:false,getEventSourceId:function(){if(typeof this._event_source_id=="function"){return this._event_source_id()
}else{return this._event_source_id}},getEventTarget:function(a){if(!this._ls_event_targets){this._ls_event_targets=new Array()
}if(!this._ls_event_targets[a]){document.body.appendChild(this._ls_event_targets[a]=document.createElement("A"))
}return this._ls_event_targets[a]},addEventListener:function(c,a,d){var e=this.getEventTarget(c);
Event.observe(e,"click",a,d);if(this._fl_trace_events){var b={publisher:this.getEventSourceId(),event_name:c,listener:a,capturing:d,event_source_proxy:e};
this.dispatchEvent("eventListenerAdded",b,true,true)}},removeEventListener:function(c,a,d){var e=this.getEventTarget(c);
Event.stopObserving(e,"click",a,d);if(this._fl_trace_events){var b={publisher:this.getEventSourceId(),event_name:c,listener:a,capturing:d,event_source_proxy:e};
this.dispatchEvent("eventListenerRemoved",b,true,true)}},dispatchEvent:function(d,c,g,f){var a=this.getEventTarget(d);
var e={event_name:d,event_target:this,data:c?c:null};if(!g){g=false}if(!f){f=false
}var b=Event.create(e,g,f,true,a);if(this._fl_trace_events){if(d.match(/event(?:ListenerAdded|ListenerRemoved|Dispatched|Received)/)){return
}var c={publisher:this.getEventSourceId(),event_name:d,event_data:e,can_bubble:g,cancelable:f,event_source_proxy:a,result:b};
this.dispatchEvent("eventDispatched",c,true,true)}},toggleEventsTrace:function(){var a=Event.Tracer.findTracer();
if(!a||!this._fl_trace_events){this._fl_trace_events=true;a=Event.Tracer.startTrace();
a.registerPublisher(this)}else{this._fl_trace_events=false;if(a){a.unregisterPublisher(this)
}}return this._fl_trace_events},isEventsTraceActive:function(){return this._fl_trace_events
}});Event.Listener=Class.create();Object.extend(Event.Listener,{_listens:null,getEventHandlerName:function(b){var a=b.split(/[ _]/).join("-").camelize();
return"on"+a.charAt(0).toUpperCase()+a.substr(1)},listenForEvent:function(a,d,c,f){if(!f){f=this.getEventHandlerName(d)
}if(!this._listens){this._listens=new Array()}var b=this[f];if(typeof(f)=="function"){b=f
}var e=b.bindAsEventListener(this);this._listens.push([a,d,c,f,e]);a.addEventListener(d,e,c)
},stopListeningForEvent:function(a,d,b,f){if(!this._listens){return false}if(!f){f=this.getEventHandlerName(d)
}var c=-1;var e=this._listens.detect(function(h,g){if((h[0]==a)&&(h[1]==d)&&(h[2]==b)&&(h[3]==f)){c=g;
return true}});if(c>=0){this._listens.splice(c,1);a.removeEventListener(d,e[4],b);
return true}return false}});Object.extend(Event,{create:function(b,a,f,e,d){var c;
if(document.createEvent){if(!a){a=false}if(!f){f=false}if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){c=document.createEvent("HTMLEvents");
c.initEvent("click",a,f)}else{c=document.createEvent("MouseEvents");c.initMouseEvent("click",a,f,window,0,0,0,0,0,false,false,false,false,0,null)
}}else{c=document.createEventObject();c.event_type="onclick"}c.event_data=b;if(e){Event.dispatch(d,c)
}return c},dispatch:function(b,a){if(document.createEvent){return b.dispatchEvent(a)
}else{return b.fireEvent((typeof(a.event_type)!="undefined")?a.event_type:"onclick",a)
}}});
