var FloatingPanel=Class.create({togglePanel:function(b){if($(this.panel).visible())this.closePanel();else{this.event("beforeOpen");var a=$(this.panelTarget).cumulativeOffset(),c=$(this.panelTarget).viewportOffset(),e=document.viewport.getHeight(),d=document.viewport.getWidth(),f=$(this.panel).getHeight(),g=$(this.panel).getWidth();e=e-c[1]-10;c=d-c[0]-10;d=this.correctPosition?f-e:0;c=this.correctPosition?g-c:0;d=d>0?a[1]-d:a[1]+parseInt(this.topOffset);a=c>0?a[0]-c:a[0]+$(this.panelTarget).getWidth()+
parseInt(this.rightOffset);$(this.panel).setStyle({left:a+"px",top:d+"px"});window.external&&typeof window.XMLHttpRequest=="undefined"&&this.insertIframe(d,a,g,f);if(this.effects)new Effect.Appear($(this.panel),{duration:this.effectDuration});else $(this.panel).show();if(this.ajaxUrl)new Ajax.Updater($(this.panel),this.ajaxUrl,{method:"get",onComplete:this.event("afterOpen")});else this.event("afterOpen")}this.allowDefault||Event.stop(b)},insertIframe:function(b,a,c,e){this.myFrame=document.createElement("IFRAME");
this.myFrame.frameBorder=0;this.myFrame.scrolling="no";this.myFrame.style.zIndex=1;this.myFrame.style.position="absolute";Element.extend(this.myFrame);this.myFrame.setStyle({top:b+"px",left:a+"px",width:c+"px",height:e+"px"});document.body.appendChild(this.myFrame)},closePanel:function(b){this.event("beforeClose");this.myFrame&&Element.remove(this.myFrame);if(this.effects)new Effect.Fade($(this.panel),{duration:this.effectDuration});else $(this.panel).hide();b&&Event.stop(b);this.event("afterClose",
this.effectDuration)},doClosePanel:function(){this.fp_delay=this.closePanel.bind(this).delay(this.closeDelay)},stopClosePanel:function(){window.clearTimeout(this.fp_delay)},startObserving:function(){Event.observe(this.trigger,this.triggerEvent,this.togglePanel.bindAsEventListener(this));if(this.triggerEvent=="mouseover"&&!this.sticky){Event.observe(this.trigger,"mouseout",this.doClosePanel.bindAsEventListener(this));Event.observe(this.panel,"mouseover",this.stopClosePanel.bindAsEventListener(this));
Event.observe(this.panel,"mouseout",this.doClosePanel.bindAsEventListener(this))}else this.triggerEvent=="focus"&&!this.sticky&&Event.observe(this.trigger,"blur",this.closePanel.bindAsEventListener(this));this.sticky&&Event.observe(this.closeButton,"click",this.closePanel.bindAsEventListener(this));!this.allowDefault&&this.triggerEvent!="click"&&Event.observe(this.trigger,"click",function(b){Event.stop(b)})},event:function(b,a){if(this.events[b])this.events[b].delay(a!=undefined?a:0)},initialize:function(b,
a,c){if(!(!b||!a||!$(b)||!$(a))){this.trigger=b;this.panel=a;this.triggerEvent="mouseover";this.sticky=false;this.closeButton=null;this.allowDefault=false;this.correctPosition=true;this.panelTarget=this.trigger;this.closeDelay=0.45;this.rightOffset=10;this.topOffset=0;this.fp_delay="";this.effectDuration=0.3;this.effects=true;this.events={};this.ajaxUrl=null;this.loading="/images/loading/spinner-trans.gif";if(c){this.opts=c;if(this.opts.triggerEvent)this.triggerEvent=this.opts.triggerEvent;if(this.opts.closeButton&&
$$("#"+this.panel+" #"+this.opts.closeButton+"").length>0)this.closeButton=this.opts.closeButton;if(this.closeButton)this.sticky=true;if(this.opts.allowDefault==true)this.allowDefault=true;if(this.opts.correctPosition==false)this.correctPosition=false;if(this.opts.target)this.panelTarget=this.opts.target;if(this.opts.closeDelay)this.closeDelay=this.opts.closeDelay;if(this.opts.rightOffset)this.rightOffset=this.opts.rightOffset;if(this.opts.topOffset)this.topOffset=this.opts.topOffset;if(this.opts.effects==
"off")this.effects=false;if(this.opts.effectDuration)this.effectDuration=this.opts.effectDuration;if(this.opts.beforeClose&&typeof this.opts.beforeClose=="function")this.events.beforeClose=this.opts.beforeClose;if(this.opts.afterClose&&typeof this.opts.afterClose=="function")this.events.afterClose=this.opts.afterClose;if(this.opts.beforeOpen&&typeof this.opts.beforeOpen=="function")this.events.beforeOpen=this.opts.beforeOpen;if(this.opts.afterOpen&&typeof this.opts.afterOpen=="function")this.events.afterOpen=
this.opts.afterOpen;if(this.opts.ajaxUrl)this.ajaxUrl=this.opts.ajaxUrl;if(this.opts.loading)this.loading=this.opts.loading}this.startObserving()}}});

