var TimedMouseOver=Class.create();TimedMouseOver.prototype={initialize:function(element){this.element=$(element);this.options=Object.extend({animParameters:{duration:0.4},showAnimParameters:{},hideAnimParameters:{},effect:'appear',queue:'q-mouse-over',autoCloseDelay:200},arguments[1]||{});if(this.options.externalControl){this.control=$(this.options.externalControl);}
this.onMouseEnter=this._onMouseEnter.bindAsEventListener(this);this.onMouseLeave=this._onMouseLeave.bindAsEventListener(this);if(Prototype.Browser.IE){this.element.observe('mouseenter',this.onMouseEnter);this.element.observe('mouseleave',this.onMouseLeave);if(this.control){this.control.observe('mouseenter',this.onMouseEnter);this.control.observe('mouseleave',this.onMouseLeave);}}
else{this.emulatedMouseEnter=this._emulatedMouseEnter.bindAsEventListener(this);this.emulatedMouseLeave=this._emulatedMouseLeave.bindAsEventListener(this);this.element.observe('mouseover',this.emulatedMouseEnter);this.element.observe('mouseout',this.emulatedMouseLeave);if(this.control){this.control.observe('mouseover',this.emulatedMouseEnter);this.control.observe('mouseout',this.emulatedMouseLeave);}}},show:function(){if(!this.element.visible()){var opts=Object.extend(this.options.animParameters,this.options.showAnimParameters);this._notify('onBeforeShow');new Effect.toggle(this.element,this.options.effect,opts);this._notify('onShow');}},hide:function(){if(this.element.visible()){var opts=Object.extend(this.options.animParameters,this.options.showAnimParameters);this._notify('onBeforeHide');new Effect.toggle(this.element,this.options.effect,opts);this._notify('onHide');}},setAutoCloseTimer:function(){this.clearAutoCloseTimer();var cb=function(){this.clearAutoCloseTimer();this.hide();};this.timer=setInterval(cb.bind(this),this.options.autoCloseDelay);},clearAutoCloseTimer:function(){if(this.timer){clearInterval(this.timer);this.timer=null;}},_onMouseEnter:function(event){this.clearAutoCloseTimer();this._notify('onMouseEnter');if(!this.element.visible()){this.show();}},_onMouseLeave:function(event){this._notify('onMouseLeave');this.setAutoCloseTimer();},_emulatedMouseEnter:function(event){if(!event.relatedTarget){return}
if((event.relatedTarget==event.currentTarget)||(event.relatedTarget.childOf(event.currentTarget))){return}
this.onMouseEnter(event);},_emulatedMouseLeave:function(event){if(!event.relatedTarget){return}
if((event.relatedTarget==event.currentTarget)||(event.relatedTarget.childOf(event.currentTarget))){return}
this.onMouseLeave(event);},_notify:function(eventName){if(this.options[eventName]){this.options[eventName](this);}}};var Sidebar=Class.create();Sidebar.prototype={initialize:function(divID){this.div=$(divID);this.isExtended=0;this.options=Object.extend({animParameters:{},queue:'sidebar',contentsID:this.div.down('.sidebarContents'),autoCloseDelay:200},arguments[1]||{});this.blindParams=Object.extend({duration:0.3,scaleX:true,scaleY:true,scaleContent:false},this.options.animParameters);this.onMouseEnter=this._onMouseEnter.bindAsEventListener(this);this.onMouseLeave=this._onMouseLeave.bindAsEventListener(this);if(Prototype.Browser.IE){this.div.observe('mouseenter',this.onMouseEnter);this.div.observe('mouseleave',this.onMouseLeave);}
else{this.emulatedMouseEnter=this._emulatedMouseEnter.bindAsEventListener(this);this.emulatedMouseLeave=this._emulatedMouseLeave.bindAsEventListener(this);this.div.observe('mouseover',this.emulatedMouseEnter);this.div.observe('mouseout',this.emulatedMouseLeave);}},toggle:function(){new Effect.toggle(this.options.contentsID,'blind',this.blindParams);},setAutoCloseTimer:function(){this.clearAutoCloseTimer();var cb=function(){this.clearAutoCloseTimer();this.toggle()};this.timer=setInterval(cb.bind(this),this.options.autoCloseDelay);},clearAutoCloseTimer:function(){if(this.timer){clearInterval(this.timer);this.timer=null;}},_onMouseEnter:function(event){this.clearAutoCloseTimer();if(!$(this.options.contentsID).visible()){this.toggle();}},_onMouseLeave:function(event){this.setAutoCloseTimer();},_emulatedMouseEnter:function(event){if(!event.relatedTarget){return}
if((event.relatedTarget==event.currentTarget)||(event.relatedTarget.childOf(event.currentTarget))){return}
this.onMouseEnter(event);},_emulatedMouseLeave:function(event){if(!event.relatedTarget){return}
if((event.relatedTarget==event.currentTarget)||(event.relatedTarget.childOf(event.currentTarget))){return}
this.onMouseLeave(event);}};function getFieldsAndLabels(ids){var fields=$A(ids).map(function(elem){return $(elem)});var labels=$$("label").select(function(elem){return ids.include(elem.htmlFor)});return labels.concat(fields);}
function formErrors(ids){var elems=getFieldsAndLabels(ids);elems.invoke('addClassName','error');new Effect.Parallel(elems.map(function(elem){return new Effect.Pulsate(elem,{sync:true})}),{duration:4.0});}
function clearFormErrors(ids){var elems=getFieldsAndLabels(ids);elems.invoke('removeClassName','error');}
function formNoDoublePost(elem){form=$(elem).up('form');$(form).getElements().each((function(input){inputType=input.getAttribute('type');if((inputType=='submit')||(inputType=='reset')){input.disable();Element.addClassName(input,'disabled');}}));$(form).appendChild(Builder.node('span',[Builder.node('img',{src:'/images/throbber.gif',style:'padding: 0 5px; vertical-align: middle'}),"Working..."]));$(form).appendChild(Builder.node('input',{type:'hidden',name:elem.name,value:elem.value}));return true;}
function initFormNoDoublePost(){inputs=document.getElementsByTagName('input');$A(inputs).each((function(elem){inputType=elem.getAttribute('type');if((inputType=='submit')&&(Element.hasClassName(elem,'no-double-post'))){elem.onclick=function(){formNoDoublePost(elem);elem.form.submit();};}}));}
FastInit.addOnLoad(initFormNoDoublePost);function autoFocusForms(){firstForm=$$('form.auto-focus').first();if(firstForm){Form.focusFirstElement(firstForm);}}
FastInit.addOnLoad(autoFocusForms);
