var Roar=new Class({Implements:[Options,Events,Chain],options:{duration:7000,position:"upperLeft",container:null,bodyFx:null,itemFx:null,margin:{x:10,y:10},offset:10,className:"roar",onShow:$empty,onHide:$empty,onRender:$empty},initialize:function(A){this.setOptions(A);this.items=[];this.container=$(this.options.container)||document},alert:function(C,B){var D=Array.link(arguments,{message:String.type,options:Object.type});var A=[new Element("p",{html:D.message,"class":"img_margin"})];return this.inject(A,D.options)},inject:function(A,J){if(!this.body){this.render()}J=J||{};if(typeof (J.duration)=="undefined"){J.duration=this.options.duration}if(typeof (J.className)!="undefined"){this.options.className=J.className}if(typeof (J.position)!="undefined"){this.options.position=J.position}var D=[-this.options.offset,0];var H=this.items.getLast();if(H){D[0]=H.retrieve("roar:offset");D[1]=D[0]+H.offsetHeight+this.options.offset}var G={opacity:1};G[this.align.y]=D;var I=new Element("div",{"class":this.options.className,opacity:0}).adopt(new Element("div",{"class":"roar-bg",opacity:0.9}),A);I.setStyle(this.align.x,0).store("roar:offset",D[1]).set("morph",$merge({unit:"px",link:"cancel",onStart:Chain.prototype.clearChain,transition:Fx.Transitions.Back.easeOut},this.options.itemFx));var E=this.remove.create({bind:this,arguments:[I],delay:10});var B=new Element("span",{html:'<img src="/gfx/icons/closeRound.gif" />',styles:{position:"absolute",top:"1px",right:"1px","z-index":"1003",cursor:"pointer"},events:{click:function(){E();return false}}}).inject(I,"top");this.items.push(I.addEvent("click",function(){E();if(typeof (J.click)=="function"){J.click()}}));if(J.duration){var F=false;var C=(function(){C=null;if(!F){E()}}).delay(this.options.duration);I.addEvents({mouseover:function(){F=true},mouseout:function(){F=false;if(!C){E()}}})}I.inject(this.body).morph(G);this.fireEvent("onShow",[I,this.items.length]);return I},remove:function(B){var A=this.items.indexOf(B);if(A==-1){return this}this.items.splice(A,1);B.removeEvents();var C={opacity:0};C[this.align.y]=B.getStyle(this.align.y).toInt()-B.offsetHeight-this.options.offset;B.morph(C).get("morph").chain(B.destroy.bind(B),this.restack());return this.fireEvent("onHide",[B,this.items.length]).callChain(B)},empty:function(){while(this.items.length){this.remove(this.items[0])}return this},restack:function(){var B={},A=0;this.items.each(function(C){B[this.align.y]=A;C.store("roar:offset",A).morph(B).get("morph");A+=C.offsetHeight+this.options.offset},this);this.reposition()},render:function(){this.position=this.options.position;if($type(this.position)=="string"){var A={x:"center",y:"center"};this.align={x:"left",y:"top"};if((/left|west/i).test(this.position)){A.x="left"}else{if((/right|east/i).test(this.position)){this.align.x=A.x="right"}}if((/upper|top|north/i).test(this.position)){A.y="top"}else{if((/bottom|lower|south/i).test(this.position)){this.align.y=A.y="bottom"}}this.position=A}this.body=new Element("div",{"class":"roar-body"}).inject(document.body);if(Browser.Engine.trident4){this.body.addClass("roar-body-ugly")}this.moveTo=this.body.setStyles.bind(this.body);this.reposition();if(this.options.bodyFx){var C=new Fx.Morph(this.body,$merge({unit:"px",chain:"cancel",transition:Fx.Transitions.Circ.easeOut},this.options.bodyFx));this.moveTo=C.start.bind(C)}var B=this.reposition.bind(this);window.addEvents({scroll:B,resize:B});this.fireEvent("onRender",this.body)},reposition:function(){var C=document.getCoordinates(),B=document.getScroll(),D=this.options.margin;C.left+=B.x;C.right+=B.x;C.top+=B.y;C.bottom+=B.y;var A=($type(this.container)=="element")?this.container.getCoordinates():C;this.moveTo({left:(this.position.x=="right")?(Math.min(A.right,C.right)-D.x-15):(Math.max(A.left,C.left)+D.x),top:(this.position.y=="bottom")?(Math.min(A.bottom,C.bottom)-D.y-28):(Math.max(A.top,C.top)+D.y)})}});