var Dialog=new Class({Implements:Options,options:{speed:1000,maskColor:'#000',backgroundColor:'#fff',width:400,height:'auto',onComplete:Class.empty,onStart:Class.empty},initialize:function(options){this.setOptions(options)},show:function(el){switch($type(el)){case'element':this.el=$(el).clone();if(this.el.tagName=='img')this.preload;break;case'string':this.el=new Element('div',{'styles':{'padding':10,'width':this.options.width,'height':this.options.height}});this.el.set('html',el);break;default:return false;break}this.mask=new Element('div',{'styles':{'position':'absolute','top':0,'left':0,'opacity':0,'height':(window.getHeight()>window.getScrollHeight())?window.getHeight():window.getScrollHeight(),'width':'100%','background':this.options.maskColor,'z-index':9999}});this.pop=new Element('div',{'styles':{'position':'absolute','visibility':'hidden','width':'100%','margin':0,'z-index':10000}});this.message=new Element('div',{'styles':{'background':this.options.backgroundColor,'margin':'0 auto'}});this.close=new Element('span',{'styles':{'display':'block','background':'#000000','text-align':'right','color':'#ffffff','padding':3,'cursor':'pointer'}});this.close.set('text','close');this.close.addEvent('click',this.hide.bind(this));$$('object','select').setStyle('visibility','hidden');document.body.appendChild(this.mask);document.body.appendChild(this.pop);this.close.inject(this.message,'inside')this.el.inject(this.message,'inside');this.message.inject(this.pop,'inside');this.message.setStyle('width',this.el.getCoordinates().width);this.pop.setStyles({'top':window.getScrollTop()-this.pop.getCoordinates().height,'visibility':'visible'});this.fade=new Fx.Tween(this.mask,'opacity',{duration:this.options.speed});this.slide=new Fx.Tween(this.pop,'top',{duration:this.options.speed});this.fade.start('opacity',.8);this.slide.start('top',(window.getScrollTop()+30));this.periodical=this.update.periodical(100,this)},update:function(){this.slide.start('top',(window.getScrollTop()+30));var h=(window.getHeight()>window.getScrollHeight())?window.getHeight():window.getScrollHeight();this.mask.setStyle('height',h)},hide:function(){$$('object','select').setStyle('visibility','visible');$clear(this.periodical);this.fade.start('opacity',0);this.slide.start('top',(window.getScrollTop()-this.pop.getCoordinates().height)).chain(function(){this.pop.dispose();this.mask.dispose();$$('body').setStyle('overflow','auto')}.bind(this))}});