// Copyright (c) 2006 Ariel Patiņo (http://www.ficticio.com)
// ariel.patino@gmail.com
// Contributors:
// 
transpMessage=Class.create();transpMessage.prototype={initialize:function(options)
{this.msg="";this.type="message";this.message="";this.objBody=null;this.options=Object.extend({buttons:'',onOk:null,onCancel:null,posTop:null,posLeft:null},options||{});this.iefix=false;this.objBody=document.getElementsByTagName("body").item(0)
if(!$(this.message))
{var objMessage=document.createElement("div");objMessage.setAttribute('id','transparentMessage');Element.setStyle(objMessage,{display:'none'});this.message=this.objBody.appendChild(objMessage);this.message.style.zIndex=10;if(!this.iefix&&(navigator.appVersion.indexOf('MSIE')>0)&&(navigator.userAgent.indexOf('Opera')<0)&&(Element.getStyle(this.message,'position')=='absolute'))
{new Insertion.After(this.message,'<iframe id="'+this.message.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.message.id+'_iefix');}}},fixIEOverlapping:function()
{Position.clone(this.message,this.iefix);this.iefix.style.zIndex=99;this.message.style.zIndex=100;Element.show(this.iefix);},alerta:function(msg)
{Element.update(this.message,msg);Element.removeClassName(this.message,'transparentMessageModal');Element.removeClassName(this.message,'transparentMessageOk');Element.addClassName(this.message,'transparentMessageNok');this.show();},modal:function(msg,options)
{this.options=Object.extend({buttons:'',onOk:null,onCancel:null,style:null,posTop:null,posLeft:null},options||{});this.options.modal=true;Element.update(this.message,msg);if(this.options.buttons=="OKCANCEL")
{var ok=document.createElement("INPUT");ok.type="button";ok.id="transparentMessage_BtnOK";ok.value="Aceptar";ok=this.message.appendChild(ok);Element.addClassName(ok,'button');var cancel=document.createElement("INPUT");cancel.type="button";cancel.id="transparentMessage_BtnCANCEL";cancel.value="Cancelar";cancel=this.message.appendChild(cancel);Element.addClassName(cancel,'button');}
else if(this.options.buttons=="OK")
{var ok=document.createElement("INPUT");ok.type="button";ok.id="transparentMessage_BtnOK";ok.value="Aceptar";ok=this.message.appendChild(ok);Element.addClassName(ok,'button');}
else if(this.options.buttons=="CANCEL")
{var cancel=document.createElement("INPUT");cancel.type="button";cancel.id="transparentMessage_BtnCANCEL";cancel.value="Cancelar";cancel=this.message.appendChild(cancel);Element.addClassName(cancel,'button');}
Element.removeClassName(this.message,'transparentMessageNok');Element.removeClassName(this.message,'transparentMessageOk');Element.addClassName(this.message,'transparentMessageModal');this.show();},mensaje:function(msg)
{Element.update(this.message,msg);Element.removeClassName(this.message,'transparentMessageModal');Element.removeClassName(this.message,'transparentMessageNok');Element.addClassName(this.message,'transparentMessageOk');this.show();},show:function()
{var arrayPageSize=this.getPageSize();var arrayPageScroll=this.getPageScroll();var hElement=String(Element.getStyle(this.message,'offsetHeight'));if(this.options.posTop)
{var lightboxTop=this.options.posTop;}
else
{var lightboxTop=(Math.ceil((Math.ceil(arrayPageScroll[1])+(Math.ceil(arrayPageSize[3])))/2));}
Element.setTop(this.message,lightboxTop);var wElement=String(Element.getStyle(this.message,'width'));if(this.options.posLeft)
{Element.setLeft(this.message,this.options.posLeft-Math.ceil(wElement.trimChars()/2));}
else
{Element.setLeft(this.message,(Math.ceil(arrayPageSize[0]/2)-Math.ceil(wElement.trimChars()/2)));}
if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),10);Element.show(this.message);if(!this.options.modal)
{this.objBody.onmousedown=this.hide.bindAsEventListener(this);}
if($('transparentMessage_BtnOK'))
{$('transparentMessage_BtnOK').onclick=this.hide.bindAsEventListener(this);}
if($('transparentMessage_BtnCANCEL'))
{$('transparentMessage_BtnCANCEL').onclick=this.hide.bindAsEventListener(this);}},close:function()
{Element.hide(this.message);if(this.iefix)
{Element.hide(this.iefix);}
if(this.options.modal)
{this.options.modal=false;}
else
{this.objBody.onmousedown=null;}
Element.hide(this.message);if(this.iefix)
{Element.hide(this.iefix);}},hide:function()
{if(this.options.modal)
{this.options.modal=false;if(arguments.length>0)
{var myElement=Event.element(arguments[0]);if(myElement.id=="transparentMessage_BtnOK")
{if(typeof this.options.onOk=='function')
{this.options.onOk.call();}}
else if(myElement.id=="transparentMessage_BtnCANCEL")
{if(typeof this.options.onCancel=='function')
{this.options.onCancel.call();}}}}
this.close();},getPageSize:function()
{var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY)
{xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(this.objBody.scrollHeight>this.objBody.offsetHeight){xScroll=this.objBody.scrollWidth;yScroll=this.objBody.scrollHeight;}else{xScroll=this.objBody.offsetWidth;yScroll=this.objBody.offsetHeight;}
var windowWidth,windowHeight;if(document.height){windowWidth=document.width;windowHeight=document.height;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body)
{windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;},getPageScroll:function()
{var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;}
arrayPageScroll=new Array('',yScroll);return arrayPageScroll;}}