var SexyAlertBox=new Class({Implements:[Chain],getOptions:function(){return{name:"SexyAlertBox",zIndex:65555,onReturn:false,onReturnFunction:$empty,BoxStyles:{width:500},OverlayStyles:{"background-color":"#000",opacity:0.7},showDuration:200,showEffect:Fx.Transitions.linear,closeDuration:100,closeEffect:Fx.Transitions.linear,moveDuration:500,moveEffect:Fx.Transitions.Back.easeOut,onShowStart:$empty,onShowComplete:$empty,onCloseStart:$empty,onCloseComplete:function(properties){this.options.onReturnFunction(this.options.onReturn)}.bind(this)}},initialize:function(options){this.i=0;this.setOptions(this.getOptions(),options);this.Overlay=new Element("div",{id:"BoxOverlay",styles:{display:"none",position:"absolute",top:"0",left:"0",opacity:0,"z-index":this.options.zIndex,"background-color":this.options.OverlayStyles["background-color"],height:window.getScrollHeight()+"px",width:window.getScrollWidth()+"px"}});this.Content=new Element("div",{id:this.options.name+"-BoxContenedor"});this.Contenedor=new Element("div",{id:this.options.name+"-BoxContent"}).adopt(this.Content);this.InBox=new Element("div",{id:this.options.name+"-InBox"}).adopt(this.Contenedor);this.Box=new Element("div",{id:this.options.name+"-Box",styles:{display:"none","z-index":this.options.zIndex+2,position:"absolute",top:"0",left:"0",width:this.options.BoxStyles.width+"px"}}).adopt(this.InBox);this.Overlay.injectInside(document.body);this.Box.injectInside(document.body);this.preloadImages();window.addEvent("resize",function(){if(this.options.display==1){this.Overlay.setStyles({height:window.getScrollHeight()+"px",width:window.getScrollWidth()+"px"});this.replaceBox()}}.bind(this));this.Box.addEvent("keydown",function(event){if(event.key=="esc"){this.options.onReturn=false;this.display(0)}}.bind(this));window.addEvent("scroll",this.replaceBox.bind(this))},preloadImages:function(){var img=new Array(2);img[0]=new Image();img[1]=new Image();img[2]=new Image();img[0].src=this.Box.getStyle("background-image").replace(new RegExp("url\\('?([^']*)'?\\)","gi"),"$1");img[1].src=this.InBox.getStyle("background-image").replace(new RegExp("url\\('?([^']*)'?\\)","gi"),"$1");img[2].src=this.Contenedor.getStyle("background-image").replace(new RegExp("url\\('?([^']*)'?\\)","gi"),"$1")},togFlashObjects:function(state){var hideobj=new Array("embed","iframe","object");for(y=0;y<hideobj.length;y++){var objs=document.getElementsByTagName(hideobj[y]);for(i=0;i<objs.length;i++){objs[i].style.visibility=state}}},display:function(option){if(this.Transition){this.Transition.cancel()}if(this.options.display==0&&option!=0||option==1){if(Browser.Engine.trident4){$$("select","object","embed").each(function(node){node.style.visibility="hidden"})}this.togFlashObjects("hidden");this.Overlay.setStyle("display","block");this.options.display=1;this.fireEvent("onShowStart",[this.Overlay]);this.Transition=new Fx.Tween(this.Overlay,{property:"opacity",duration:this.options.showDuration,transition:this.options.showEffect,onComplete:function(){sizes=window.getSize();scrollito=window.getScroll();this.Box.setStyles({display:"block",left:(scrollito.x+(sizes.x-this.options.BoxStyles.width)/2).toInt()});this.replaceBox();this.fireEvent("onShowComplete",[this.Overlay])}.bind(this)}).start(this.options.OverlayStyles.opacity)}else{if(Browser.Engine.trident4){$$("select","object","embed").each(function(node){node.style.visibility="visible"})}this.togFlashObjects("visible");this.queue.delay(500,this);this.Box.setStyles({display:"none",top:0});this.Content.empty();this.options.display=0;this.fireEvent("onCloseStart",[this.Overlay]);if(this.i==1){this.Transition=new Fx.Tween(this.Overlay,{property:"opacity",duration:this.options.closeDuration,transition:this.options.closeEffect,onComplete:function(){this.fireEvent("onCloseComplete",[this.Overlay])}.bind(this)}).start(0)}}},replaceBox:function(){if(this.options.display==1){sizes=window.getSize();scrollito=window.getScroll();if(this.MoveBox){this.MoveBox.cancel()}this.MoveBox=new Fx.Morph(this.Box,{duration:this.options.moveDuration,transition:this.options.moveEffect}).start({left:(scrollito.x+(sizes.x-this.options.BoxStyles.width)/2).toInt(),top:(scrollito.y+(sizes.y-this.Box.offsetHeight)/2).toInt()});this.focusin.delay(this.options.moveDuration,this)}},focusin:function(){if($chk($("BoxAlertBtnOk"))){$("BoxAlertBtnOk").focus()}else{if($chk($("BoxPromptInput"))){$("BoxPromptInput").focus()}else{if($chk($("BoxConfirmBtnOk"))){$("BoxConfirmBtnOk").focus()}}}},queue:function(){this.i--;this.callChain()},messageBox:function(type,message,properties,input){this.chain(function(){properties=$extend({textBoxBtnOk:"OK",textBoxBtnCancel:"Cancelar",textBoxInputPrompt:null,password:false,onComplete:$empty},properties||{});this.options.onReturnFunction=properties.onComplete;this.ContenedorBotones=new Element("div",{id:this.options.name+"-Buttons"});if(type=="alert"||type=="info"||type=="error"||type=="criticalError"){if(type!="criticalError"){this.AlertBtnOk=new Element("input",{id:"BoxAlertBtnOk",type:"submit",value:properties.textBoxBtnOk,styles:{width:"70px"}});this.AlertBtnOk.addEvent("click",function(){this.options.onReturn=true;this.display(0)}.bind(this))}if(type=="alert"){this.clase="BoxAlert"}else{if(type=="error"||type=="criticalError"){this.clase="BoxError"}else{if(type=="info"){this.clase="BoxInfo"}}}this.Content.setProperty("class",this.clase).set("html",message);if(type!="criticalError"){this.AlertBtnOk.injectInside(this.ContenedorBotones);this.ContenedorBotones.injectInside(this.Content)}this.display(1)}else{if(type=="confirm"){this.ConfirmBtnOk=new Element("input",{id:"BoxConfirmBtnOk",type:"submit",value:properties.textBoxBtnOk,styles:{width:"70px"}});this.ConfirmBtnCancel=new Element("input",{id:"BoxConfirmBtnCancel",type:"submit",value:properties.textBoxBtnCancel,styles:{width:"70px"}});this.ConfirmBtnOk.addEvent("click",function(){this.options.onReturn=true;this.display(0)}.bind(this));this.ConfirmBtnCancel.addEvent("click",function(){this.options.onReturn=false;this.display(0)}.bind(this));this.Content.setProperty("class","BoxConfirm").set("html",message);this.ConfirmBtnOk.injectInside(this.ContenedorBotones);this.ConfirmBtnCancel.injectInside(this.ContenedorBotones);this.ContenedorBotones.injectInside(this.Content);this.display(1)}else{if(type=="prompt"){this.PromptBtnOk=new Element("input",{id:"BoxPromptBtnOk",type:"submit",value:properties.textBoxBtnOk,styles:{width:"70px"}});this.PromptBtnCancel=new Element("input",{id:"BoxPromptBtnCancel",type:"submit",value:properties.textBoxBtnCancel,styles:{width:"70px"}});type=properties.password?"password":"text";this.PromptInput=new Element("input",{id:"BoxPromptInput",type:type,value:input,styles:{width:"250px"}});this.PromptBtnOk.addEvent("click",function(){this.options.onReturn=this.PromptInput.value;this.display(0)}.bind(this));this.PromptBtnCancel.addEvent("click",function(){this.options.onReturn=false;this.display(0)}.bind(this));this.Content.setProperty("class","BoxPrompt").set("html",message+"<br />");this.PromptInput.injectInside(this.Content);new Element("br").injectInside(this.Content);this.PromptBtnOk.injectInside(this.ContenedorBotones);this.PromptBtnCancel.injectInside(this.ContenedorBotones);this.ContenedorBotones.injectInside(this.Content);this.display(1)}else{this.options.onReturn=false;this.display(0)}}}});this.i++;if(this.i==1){this.callChain()}},criticalError:function(message,properties){this.messageBox("criticalError",message,properties)},alert:function(message,properties){this.messageBox("alert",message,properties)},info:function(message,properties){this.messageBox("info",message,properties)},error:function(message,properties){this.messageBox("error",message,properties)},confirm:function(message,properties){this.messageBox("confirm",message,properties)},prompt:function(message,input,properties){this.messageBox("prompt",message,properties,input)}});SexyAlertBox.implement(new Events,new Options);window.addEvent("domready",function(){Sexy=new SexyAlertBox()});