
if(!SAPO.Component||typeof(SAPO.Component)=='undefined'){SAPO.namespace('Component');}
(function(){var Dimensions=SAPO.Utility.Dimensions,Element=SAPO.Dom.Element,__iFrameCache=false;SAPO.Component.Dialog={version:'1.1',_dialogs:{},_overlayLock:false,_elementsToHide:{"embed":true,"object":true,"iframe":true,"select":true},_pos:false,_zoomDur:500,_definePosition:function(){this._pos={width:false,height:false,top:false,left:false};},_makeNewDialog:function(){var id;var safety=0;var options;while(true){if(typeof arguments[0][0].id!="undefined"){if(typeof this._dialogs[arguments[0][0].id]!="undefined"){return false;}}
if(typeof this._dialogs[id]=="undefined"){options=this._setOptions(arguments[0]);id=options.id;this._dialogs[id]={options:options,overlay:false,component:false,targetElement:false,originalPosition:false,initialHeight:false,initialWidth:false};break;}else{id="SAPODialog_"+Math.round(10000*Math.random());}
if(safety>10){throw"You are creating too many dialogs";}else{safety++;}}
var width=parseInt(options.width,10);var height=options.height;this._currentDialogId=id;if(this._setTargetElement(options)===false){return false;}
var pageDims=this.getPageSize(id);var scrollDims=this.getPageScroll();var left=((Number(pageDims[2])/2)-(width/2));var top=0;if(options.nl2br){options.message=options.message.replace(new RegExp("\\n","g"),'<br />');}
this.addLayer(options.className||'sapo_widget_dialog_component',pageDims);this._dialogs[id].component=this.createMessageComponent(options.message,width,height,top,left,options.className);return{pageDims:pageDims,scrollDims:scrollDims};},_setOptions:function(options){if(typeof options[0]==="string"){options[0]={message:options[0]};}
var elements=this._elementsToHide;if(options[0].hide!==undefined){elements=SAPO.extendObj(this._elementsToHide,options[0].hide);delete options[0].hide;}
var shortcuts={ok:true,cancel:true};if(typeof options[0].shortcuts=="object"){shortcuts=SAPO.extendObj(shortcuts,options[0].shortcuts);delete options[0].shortcuts;}
return Object.extend({id:"SAPODialog_"+Math.round(10000*Math.random()),width:250,height:false,onComplete:false,callBack:false,callBackCancel:false,className:false,targetElement:false,image:false,okLabel:'Ok',okClassName:'confirm',okTabindex:1,imageCancel:false,cancelLabel:'Cancelar',cancelClassName:'cancel',cancelTabindex:2,hide:elements,shortcuts:shortcuts,animate:false,onResize:false,afterResize:false,nl2br:true,debug:false},options[0]||{});},_getDialog:function(id){if(typeof id=="undefined"){id=this._currentDialogId;}
return this._dialogs[id];},_stoHideFlash:false,_intervalHideFlash:6000,_currentDialogId:false,_easing:function(pos){return(-Math.cos(pos*0.9)/2)+0.5;},addLayer:function(className,pageDims){var id=this._currentDialogId;var dialog=this._dialogs[id];var target=dialog.targetElement;var overlay=this._createOverlay(pageDims);var style;this._dialogs[id].overlay=overlay;if(this._stoHideFlash){clearInterval(this._stoHideFlash);this._stoHideFlash=false;}
this._hideAllFlash(className,this._currentDialogId);this._stoHideFlash=setInterval(function(cName,id){this._hideAllFlash(cName,id);}.bindObj(this,className,this._currentDialogId),this._intervalHideFlash);if(target){var pos=target.style.position;if(pos===''||pos==='static'){target.style.position='relative';dialog.originalPosition=Array();dialog.originalPosition[0]=target.style.top;dialog.originalPosition[1]=target.style.left;dialog.originalPosition[2]=target.style.bottom;dialog.originalPosition[3]=target.style.right;target.style.top=0;target.style.left=0;target.style.bottom=0;target.style.right=0;}
target.appendChild(overlay);}else{document.body.appendChild(overlay);}
if(this._getDialog().options.animate){SAPO.Effects.Fade.fromTo(overlay,{from:0,to:0.8,dur:500});}},_createOverlay:function(pageDims){var overlay=document.createElement('div');overlay.style.position='absolute';overlay.style.zIndex='100000';overlay.style.backgroundColor='#696969';overlay.style.cursor='not-allowed';overlay.className='sapo_widget_dialog_overlay';overlay.style.width=pageDims[0]+'px';overlay.style.height=pageDims[1]+'px';overlay.style.left='0px';overlay.style.top='0px';if(this._getDialog().options.animate){if(SAPO.Browser.IE){overlay.style.filter="alpha(opacity:0)";}else{overlay.style.opacity=0;}}else{if(SAPO.Browser.IE){overlay.style.filter="alpha(opacity:50)";}else{overlay.style.opacity=0.5;}}
return overlay;},removeLayer:function(id){if(typeof id=="undefined"){id=this._currentDialogId;}
var dialog=this._dialogs[id];if(typeof dialog=="undefined"){return false;}
if(dialog.component){dialog.component.parentNode.removeChild(dialog.component);}
if(dialog.overlay){dialog.overlay.parentNode.removeChild(dialog.overlay);}
if(dialog.targetElement){if(dialog.originalPosition!==false){dialog.targetElement.style.position='static';dialog.targetElement.style.top=dialog.originalPosition[0];dialog.targetElement.style.left=dialog.originalPosition[1];dialog.targetElement.style.bottom=dialog.originalPosition[2];dialog.targetElement.style.right=dialog.originalPosition[3];}}
this.showAllFlash(id);this._overlayLock=false;delete this._dialogs[id];},_addComponent:function(){var dialog=this._dialogs[this._currentDialogId];if(dialog.targetElement){dialog.targetElement.appendChild(dialog.component);dialog.targetElement=dialog.component.parentNode;}else{document.body.appendChild(dialog.component);}},_setupComponent:function(dialogInfo){var id=this._currentDialogId;var dialog=s$(id);var component=this._dialogs[id].component;this._dialogs[id].initialHeight=dialog.clientHeight;this._dialogs[id].initialWidth=dialog.clientWidth;var height=parseInt(Element.elementHeight(component),10);var top=this._getTopPosition(dialogInfo.pageDims,dialogInfo.scrollDims,height,id);component.style.top=top+'px';if(this._dialogs[id].options.onComplete){this._dialogs[id].options.onComplete(component);}
this._setCloseOnEsc();},_setTargetElement:function(options){var id=this._currentDialogId;var dialog=this._dialogs[id];if(options.targetElement){if(typeof options.targetElement==="string"){dialog.targetElement=document.getElementById(options.targetElement);}else{dialog.targetElement=options.targetElement;}
for(var i in this._dialogs){if(dialog.targetElement===this._dialogs[i].targetElement&&i!=id){delete this._dialogs[id];return false;}}}else{if(this._overlayLock===false){this._overlayLock=true;}else{return false;}}
return true;},_getTopPosition:function(pageDims,scrollDims,height,id){var position=Number((Number(pageDims[3])/2)-(height/2));if(position<0){position=5;}
if(this._getDialog(id).targetElement){return parseInt(position,10);}else{return parseInt(position+Number(scrollDims[1]),10);}},_getLeftPosition:function(pageDims,scrollDims,width,id){var position=Number((Number(pageDims[2])/2)-(width/2));if(position<0){position=5;}
if(this._getDialog(id).targetElement){return parseInt(position,10);}else{return parseInt(position+Number(scrollDims[0]),10);}},_makeOkButton:function(){var ok=document.createElement('INPUT');var options=this._getDialog().options;if(options.image&&typeof(options.image)!='undefined'){ok.type='image';ok.src=options.image;}else{ok.type='button';ok.value=options.okLabel;}
ok.tabIndex=options.okTabindex;ok.className=options.okClassName;SAPO.Dom.Event.observe(ok,'click',function(e,callBack){var id=this._currentDialogId;if(callBack){callBack(this._dialogs[id].component);}
SAPO.Component.Dialog.removeLayer(id);}.bindObjEvent(this,options.callBack));this.setAcceptOnEnter(ok);return ok;},_makeCancelButton:function(){var cancel=document.createElement('INPUT');var options=this._getDialog().options;if(options.imageCancel&&typeof(options.imageCancel)!='undefined'){cancel.type='image';cancel.src=options.imageCancel;}else{cancel.type='button';cancel.value=options.cancelLabel;}
cancel.tabIndex=options.cancelTabindex;cancel.className=options.cancelClassName;SAPO.Dom.Event.observe(cancel,'click',function(e,callBack){var id=this._currentDialogId;if(callBack){callBack(this._dialogs[id].component);}
SAPO.Component.Dialog.removeLayer(id);}.bindObjEvent(this,options.callBackCancel));return cancel;},_isSimpleShortcut:function(ev){if(!ev.shiftKey&&!ev.ctrlKey&&!ev.metaKey&&!ev.altKey){return true;}
return false;},_setCloseOnEsc:function(){var id=this._currentDialogId,options=this._dialogs[id].options,Event=SAPO.Dom.Event,t=this;if(options.shortcuts.cancel&&Event){var evHandler=function(ev){if(ev.keyCode===27&&t._isSimpleShortcut(ev)){Event.stopObserving(document,'keyup',evHandler);if(typeof t._dialogs[id]=="undefined"){return false;}
if(options.callBackCancel){options.callBackCancel(t._dialogs[id].component);}
SAPO.Component.Dialog.removeLayer();}};Event.observe(document,'keyup',evHandler);}},setAcceptOnEnter:function(button){var id=this._currentDialogId,options=this._dialogs[id].options,Event=SAPO.Dom.Event,t=this;if(options.shortcuts.ok&&Event){if(button===null){return false;}
setTimeout(function(){button.focus();},500);var evHandler=function(ev){var el=Event.element(ev);if(el===null){return false;}
var tag=el.tagName.toLowerCase();if(tag==="input"||tag==="textarea"){return false;}
if(ev.keyCode===13&&t._isSimpleShortcut(ev)){Event.stop(ev);Event.stopObserving(document,'keyup',evHandler);if(typeof t._dialogs[id]=="undefined"){return false;}
if(options.callBack){options.callBack(t._dialogs[id].component);}
SAPO.Component.Dialog.removeLayer();}};Event.observe(document,'keyup',evHandler);}},alert:function(){var dialog=this._makeNewDialog(arguments);if(dialog===false){return false;}
var component=this._dialogs[this._currentDialogId].component;var ok=this._makeOkButton();var p=document.createElement('DIV');p.appendChild(ok);component.appendChild(p);this._addComponent();this._setupComponent(dialog);},confirm:function(){var dialog=this._makeNewDialog(arguments);if(dialog===false){return false;}
var component=this._dialogs[this._currentDialogId].component;var ok=this._makeOkButton();var cancel=this._makeCancelButton();var p=document.createElement('DIV');p.appendChild(ok);p.appendChild(cancel);component.appendChild(p);this._addComponent();this._setupComponent(dialog);},info:function(){var dialog=this._makeNewDialog(arguments);if(dialog===false){return false;}
this._addComponent();this._setupComponent(dialog);},createMessageComponent:function(message,width,height,top,left,className){var comp=document.createElement('div');comp.id=this._currentDialogId;comp.style.position='absolute';comp.style.zIndex='100001';comp.style.width=width+'px';if(height){comp.style.height=height+'px';}
comp.style.left=left+'px';comp.style.top=top+'px';comp.style.cursor='default';if(className&&typeof(className)!='undefined'&&className!==null){comp.className=className;}else{comp.style.padding='5px';comp.style.fontFamily='Arial, Verdana, sans-serif';comp.style.fontSize='12px';comp.style.textAlign='center';comp.style.backgroundColor='#FFF';comp.style.border='1px solid black';comp.className='sapo_widget_dialog_component';}
comp.innerHTML=message;return comp;},isInsideComponent:function(elm,className){while(elm.nodeName.toLowerCase()!='body'){if(elm.className.indexOf(className)>=0){return true;}
elm=elm.parentNode;}
return false;},_hideAllFlash:function(className,id){var root,i,l,options,aEmbed,aObject,aIframe,aSelect;if(this._dialogs[id].targetElement){root=this._dialogs[id].targetElement;}else{root=document.body;}
options=this._dialogs[id].options;if(options.hide.embed){aEmbed=root.getElementsByTagName('EMBED');for(i=0,l=aEmbed.length;i<l;i++){if(!this.isInsideComponent(aEmbed[i],className)){aEmbed[i].style.visibility='hidden';}}}
if(options.hide["object"]){aObject=root.getElementsByTagName('OBJECT');for(i=0,l=aObject.length;i<l;i++){if(!this.isInsideComponent(aObject[i],className)){aObject[i].style.visibility='hidden';}}}
var elm,value,css,hideClass='sapo_widget_dialog_hide';if(options.hide.iframe){if(typeof options.hide.iframe==="string"){hideClass=options.hide.iframe;}
aIframe=root.getElementsByTagName('IFRAME');__iFrameCache=[];for(i=0,l=aIframe.length;i<l;i++){elm=aIframe[i];value=false;css=false;if(!this.isInsideComponent(aIframe[i],className)&&this.isInsideComponent(aIframe[i],hideClass)){if(elm.currentStyle){value=elm.currentStyle.display;}
if(!value||value=='auto'){css=document.defaultView.getComputedStyle(elm,null);value=css?css.display:null;}
__iFrameCache.push({node:elm,display:value});elm.style.display="none";}}}
if(options.hide.select){aSelect=root.getElementsByTagName('SELECT');for(i=0,l=aSelect.length;i<l;i++){if(!this.isInsideComponent(aSelect[i],className)){aSelect[i].style.visibility='hidden';}}}},showAllFlash:function(id){var root,i,l,options,aEmbed,aObject,aIframe,aSelect;if(this._stoHideFlash){clearInterval(this._stoHideFlash);this._stoHideFlash=false;}
if(this._dialogs[id].targetElement){root=this._dialogs[id].targetElement;}else{root=document.body;}
options=this._dialogs[id].options;if(options.hide.embed){aEmbed=root.getElementsByTagName('EMBED');for(i=0,l=aEmbed.length;i<l;i++){aEmbed[i].style.visibility='visible';}}
if(options.hide["object"]){aObject=root.getElementsByTagName('OBJECT');for(i=0,l=aObject.length;i<l;i++){aObject[i].style.visibility='visible';}}
if(options.hide.iframe){aIframe=__iFrameCache;for(i=0,l=aIframe.length;i<l;i++){aIframe[i].node.style.display=aIframe[i].display;}
__iFrameCache=false;}
if(options.hide.select){aSelect=root.getElementsByTagName('SELECT');for(i=0,l=aSelect.length;i<l;i++){aSelect[i].style.visibility='visible';}}},getPageScroll:function(){var arrayPageScroll=[Dimensions.scrollWidth(),Dimensions.scrollHeight()];return arrayPageScroll;},getPageSize:function(id){var arrayPageSize,target=false;if(typeof id!="undefined"){target=this._dialogs[id].targetElement;}
if(target){arrayPageSize=[Element.elementWidth(target),Element.elementHeight(target),Element.elementWidth(target),Element.elementHeight(target)];}else{arrayPageSize=[Dimensions.pageWidth(),Dimensions.pageHeight(),Dimensions.viewportWidth(),Dimensions.viewportHeight()];}
return arrayPageSize;},updateSize:function(width,height,id,toResize){if(typeof id=="undefined"||id===null){id=this._currentDialogId;}
var dialog=this._getDialog();if(!dialog){return false;}
var anim=dialog.options.animate,pageDims,scrollDims;if(anim){pageDims=this.getPageSize();scrollDims=this.getPageScroll();this._definePosition();}
var _updateSize=function(o){if(o.el!==null){if(typeof o.width==="number"){if(anim){this._pos.width=o.width;}else{o.el.style.width=o.width+'px';}}
if(typeof o.height==="number"){if(anim){this._pos.height=o.height;}else{o.el.style.height=o.height+'px';}}
if(typeof o.dialog==="undefined"){this._pos.left=(o.left!==false)?this._getLeftPosition(pageDims,scrollDims,o.width):false;this._pos.top=(o.top!==false)?this._getTopPosition(pageDims,scrollDims,o.height):false;this._zoom(o.el,this._zoomDur);}else{this.updatePosition(o.el||o.id||null);}}}.bindObj(this);_updateSize({el:s$(id),width:width,height:height,id:id,dialog:true});if(typeof toResize!=="undefined"&&anim){for(var i=0,l=toResize.length;i<l;i++){this._definePosition();_updateSize(toResize[i]);}}},updatePosition:function(id){var dialog;if(typeof id=="undefined"||id===null){dialog=s$(this._currentDialogId);}else{dialog=s$(id);}
id=dialog.id;if(dialog!==null){var updateLeft=false,updateTop=false,left,top,anim,opt=this._getDialog().options;anim=opt.animate;if(anim){if(!this._pos){this._definePosition();}
updateLeft=this._pos.width;updateTop=this._pos.height;}
var newHeight=updateTop||dialog.clientHeight,initialHeight=this._dialogs[id].initialHeight,newWidth=updateLeft||dialog.clientWidth,initialWidth=this._dialogs[id].initialWidth,pageDims=this.getPageSize(id),scrollDims=this.getPageScroll();if(initialWidth!=newWidth||updateLeft){left=this._getLeftPosition(pageDims,scrollDims,newWidth,id);this._dialogs[id].initialWidth=newWidth;if(!anim){dialog.style.left=left+'px';}else{this._pos.left=left;}}
if(initialHeight!=newHeight||updateTop){top=this._getTopPosition(pageDims,scrollDims,newHeight,id);this._dialogs[id].initialHeight=newHeight;if(!anim){dialog.style.top=top+'px';}else{this._pos.top=top;}}
if(anim){this._zoom(dialog,this._zoomDur);}else{if(opt.afterResize){opt.afterResize();}}}},_zoom:function(el,dur){var Element=SAPO.Dom.Element,animate=SAPO.Effects.Core.animate,width=parseInt(el.style.width,10),height=parseInt(el.style.height,10),top=Element.offsetTop(el),left=Element.offsetLeft(el),hgrow,vgrow,easing=this._easing,n=this._pos,el=el,setCoord=function(c){return function(){el.style[c]=n[c]+'px';};};if(n.left!==false){animate(function(val){el.style.left=parseInt(val,10)+'px';},dur,left,n.left,null,setCoord('left'),easing);}
if(n.top!==false){animate(function(val){el.style.top=parseInt(val,10)+'px';},dur,top,n.top,null,setCoord('top'),easing);}
hgrow=(n.width>width);animate(function(val){if(hgrow){val=(val>n.width)?n.width:val;}else{val=(val<n.width)?n.width:val;}
el.style.width=val+'px';},dur,width,n.width,null,setCoord('width'),easing);vgrow=(n.height>height);animate(function(val){if(vgrow){val=(val>n.height)?n.height:val;}else{val=(val<n.height)?n.height:val;}
el.style.height=val+'px';},dur,height,n.height,null,setCoord('height'),easing);var opt=this._getDialog().options;if(opt.afterResize){setTimeout(function(){opt.afterResize();},dur);}},debug:function(){}};}());
