
var Virtual={};Virtual.Base=new Class({options:{className:'',easing:'elastic',duration:1600,position:'center',mode:'vertical',opacify:'darken',onCloseComplete:''},initialize:function(text,options){this.text=text;this.setOptions(options);this.box=new Element('div',{'id':'virtualBox2.0','class':this.options.className,'styles':{'position':'absolute','z-index':1000}});this.createOverlay();this.createPage();switch(this.options.easing){case'elastic':this.transition=Fx.Transitions.Elastic.easeOut;break;case'bounce':this.transition=Fx.Transitions.Bounce.easeOut;break;case'normal':this.transition=Fx.Transitions.Sine.easeInOut;break;};switch(this.options.position){case'top':this.pos=20;break;case'center':this.pos=50;break;case'bottom':(this.options.mode=='vertical')?this.pos=75:this.pos=80;break;};this.settings={duration:this.options.duration,transition:this.transition,wait:false,unit:'%'};this.fxTop=new Fx.Style(this.box,'top',this.settings);this.fxLeft=new Fx.Style(this.box,'left',this.settings);this.mechanize();if(this.options.initialize)this.options.initialize.call(this);},createOverlay:function(){this.overlay=new Element('div',{'id':'overlay','styles':{'position':'absolute','top':'0px','left':'0px','width':'100%','height':window.getScrollHeight(),'background-color':(this.options.opacify=='darken')?'#333333':'#FFFFFF','opacity':'0.8','z-index':900}});},createPage:function(){this.page=new Element('div',{'id':'virtualBox2.0page','styles':{'position':'absolute','top':window.getScrollTop(),'left':'0px','width':window.getWidth()+'px','height':window.getHeight()+'px','z-index':900}});},mechanize:function(){this.box.addEvent('click',this.removeElements.bind(this));this.box.setHTML(this.text);},appendElements:function(){this.box.injectInside(this.page);this.page.injectInside($E('body'));this.overlay.injectTop($E('body'));},customize:function(){if($('virtualBox2.0'))return;switch(this.options.mode){case'vertical':this.box.setStyles({'top':'-20%','left':'50%'});break;case'horizontal':this.box.setStyles({'top':'50%','left':'-20%'});break;}
this.appendElements();this.box.setStyles({'margin-left':-this.box.getStyle('width').toInt()/2,'margin-top':-(this.box.getStyle('height').toInt()/2)+200});this.marginY=this.box.getStyle('height').toInt()/2;this.marginX=this.box.getStyle('width').toInt()/2;this.fxTop.setOptions(this.settings);this.fxLeft.setOptions(this.settings);(this.options.mode=='vertical')?this.fxTop.start(-20,this.pos):this.fxLeft.start(-20,this.pos);},removeElements:function(){var opt={duration:800,transition:Fx.Transitions.linear};if(this.options.mode=='vertical'){this.fxTop.setOptions(opt);this.fxTop.start(-this.marginY*4).chain(function(){this.page.remove();this.overlay.remove();if(this.options.onCloseComplete!=""){this.options.onCloseComplete();}}.bind(this));}
else if(this.options.mode=='horizontal'){this.fxLeft.setOptions(opt);this.fxLeft.start(-this.marginX*4).chain(function(){this.page.remove();this.overlay.remove();if(this.options.onCloseComplete!=""){this.options.onCloseComplete();}}.bind(this));}}});Virtual.Base.implement(new Options);Virtual.Box=Virtual.Base.extend({initialize:function(text,options){this.parent(text,options);},start:function(){this.customize();},setText:function(text){this.box.setHTML(text);return this;}});