/* File: js/prototype/alert_bar.js, Ratio: 50.7% */

AlertBar=Class.create();AlertBar.prototype={hideAnimation:null,showAnimation:null,hideTimeoutId:null,defaultparams:$H({autoHideAfter:false,closeable:false,customClass:false,hideDuration:.1,pushBody:false,options:new Array(),addOpaque:false}),params:{},bar:null,initialize:function(text)
{this.closeButton=new Element('a').addClassName('close').update('X');this.hideEvent=this.hide.bindAsEventListener(this);},show:function(text,params)
{if(this.hideAnimation)
{this.hideAnimation.cancel();this.hideAnimation=null;}
if(this.hideTimeoutId)
{clearTimeout(this.hideTimeoutId);this.hideTimeoutId=null;}
this.params=this.defaultparams.merge(params).toObject();if(!this.bar)
{this.bar=new Element('div').addClassName('alert_bar').update('<div class="message">'+text+'</div>');document.body.appendChild(this.bar);this.bar.appendChild(this.closeButton);this.closeButton.observe('click',this.hideEvent);}
else
{this.bar.className='alert_bar';this.bar.setStyle({top:'0px'});this.bar.update('<div class="message">'+text+'</div>');this.bar.appendChild(this.closeButton);this.bar.show();}
buttons=[];is_buttons=false;this.params.options.each(function(e,index)
{if(e&&e['text']&&e['callback'])
{is_buttons=true;ele=new Element('a',{className:"large_button large_blue",href:"javascript:void(0);"}).insert(new Element('span').update(e['text']));ele.observe('click',e['callback']);buttons.push(ele);}});if(is_buttons)
{ele=new Element('div',{className:'alert_buttons'});this.bar.select("div.message")[0].insert(ele);buttons.each(function(e,index)
{ele.insert(e);});}
if(this.params.addOpaque)
{if(!$('alert_bar_opaque'))
{opaque=new Element('div',{id:'alert_bar_opaque'});opaque.setOpacity(0.8);$$('body')[0].insert(opaque);}
$('alert_bar_opaque').show();}
else
{if($('alert_bar_opaque'))
{$('alert_bar_opaque').hide();}}
if(typeof this.params.customClass=="string")this.bar.addClassName(this.params.customClass);if(this.params.closeable)
{this.closeButton.show();}
else this.closeButton.hide();this.bar.show();if(typeof this.params.autoHideAfter=="number"&&this.params.autoHideAfter>0)
{this.hideTimeoutId=this.hideEvent.delay(this.params.autoHideAfter);}},hide:function()
{this.hideAnimation=new Effect.Move(this.bar.identify(),{y:-this.bar.getHeight(),mode:'relative',duration:this.params.hideDuration,afterFinish:function(evt)
{this.hideTimeoutId=null;this.hideAnimation=null;if($('root'))
{$('root').setStyle({marginTop:'0'})}}});if($('alert_bar_opaque'))
{$('alert_bar_opaque').hide();}}}