(function(c){var b=c.browser.msie&&parseInt(c.browser.version)==6&&typeof window.XMLHttpRequest!="object",d=null,a=[];c.modal=function(f,e){return c.modal.impl.init(f,e)};c.modal.close=function(){c.modal.impl.close()};c.fn.modal=function(e){return c.modal.impl.init(this,e)};c.modal.defaults={appendTo:"body",focus:true,opacity:50,overlayId:"simplemodal-overlay",overlayCss:{},containerId:"simplemodal-container",containerCss:{},dataId:"simplemodal-data",dataCss:{},minHeight:null,minWidth:null,maxHeight:null,maxWidth:null,autoResize:false,zIndex:1000,close:true,closeHTML:'<a title="Fechar"></a>',closeClass:"simplemodal-close",escClose:true,overlayClose:true,position:null,persist:true,onOpen:null,onShow:null,onClose:null};c.modal.impl={opts:null,dialog:{},init:function(f,e){if(this.dialog.data){return false}d=c.browser.msie&&!c.boxModel;this.opts=c.extend({},c.modal.defaults,e);this.zIndex=this.opts.zIndex;this.occb=false;if(typeof f=="object"){f=f instanceof jQuery?f:c(f);if(f.parent().parent().size()>0){this.dialog.parentNode=f.parent();if(!this.opts.persist){this.dialog.orig=f.clone(true)}}}else{if(typeof f=="string"||typeof f=="number"){f=c("<div/>").html(f)}else{alert("SimpleModal Error: Unsupported data type: "+typeof f);return false}}this.create(f);f=null;this.open();if(c.isFunction(this.opts.onShow)){this.opts.onShow.apply(this,[this.dialog])}return this},create:function(e){a=this.getDimensions();if(b){this.dialog.iframe=c('<iframe src="javascript:false;"/>').css(c.extend(this.opts.iframeCss,{display:"none",opacity:0,position:"fixed",height:a[0],width:a[1],zIndex:this.opts.zIndex,top:0,left:0})).appendTo(this.opts.appendTo)}this.dialog.overlay=c("<div/>").attr("id",this.opts.overlayId).addClass("simplemodal-overlay").css(c.extend(this.opts.overlayCss,{display:"none",opacity:this.opts.opacity/100,height:a[0],width:a[1],position:"fixed",left:0,top:0,zIndex:this.opts.zIndex+1})).appendTo(this.opts.appendTo);this.dialog.container=c("<div/>").attr("id",this.opts.containerId).addClass("simplemodal-container").css(c.extend(this.opts.containerCss,{display:"none",position:"fixed",zIndex:this.opts.zIndex+2})).append(this.opts.close&&this.opts.closeHTML?c(this.opts.closeHTML).addClass(this.opts.closeClass):"").appendTo(this.opts.appendTo);this.dialog.wrap=c("<div/>").attr("tabIndex",-1).addClass("simplemodal-wrap").css({height:"100%",outline:0,width:"100%"}).appendTo(this.dialog.container);this.dialog.data=e.attr("id",e.attr("id")||this.opts.dataId).addClass("simplemodal-data").css(c.extend(this.opts.dataCss,{display:"none"}));e=null;this.setContainerDimensions();this.dialog.data.appendTo(this.dialog.wrap);if(b||d){this.fixIE()}},bindEvents:function(){var e=this;c("."+e.opts.closeClass).bind("click.simplemodal",function(f){f.preventDefault();e.close()});if(e.opts.close&&e.opts.overlayClose){e.dialog.overlay.bind("click.simplemodal",function(f){f.preventDefault();e.close()})}c(document).bind("keydown.simplemodal",function(f){if(e.opts.focus&&f.keyCode==9){e.watchTab(f)}else{if((e.opts.close&&e.opts.escClose)&&f.keyCode==27){f.preventDefault();e.close()}}});c(window).bind("resize.simplemodal",function(){a=e.getDimensions();e.opts.autoResize?e.setContainerDimensions():e.setPosition();if(b||d){e.fixIE()}else{e.dialog.iframe&&e.dialog.iframe.css({height:a[0],width:a[1]});e.dialog.overlay.css({height:a[0],width:a[1]})}})},unbindEvents:function(){c("."+this.opts.closeClass).unbind("click.simplemodal");c(document).unbind("keydown.simplemodal");c(window).unbind("resize.simplemodal");this.dialog.overlay.unbind("click.simplemodal")},fixIE:function(){var e=this.opts.position;c.each([this.dialog.iframe||null,this.dialog.overlay,this.dialog.container],function(q,j){if(j){var o="document.body.clientHeight",t="document.body.clientWidth",v="document.body.scrollHeight",r="document.body.scrollLeft",m="document.body.scrollTop",h="document.body.scrollWidth",g="document.documentElement.clientHeight",p="document.documentElement.clientWidth",n="document.documentElement.scrollLeft",w="document.documentElement.scrollTop",x=j[0].style;x.position="absolute";if(q<2){x.removeExpression("height");x.removeExpression("width");x.setExpression("height",""+v+" > "+o+" ? "+v+" : "+o+' + "px"');x.setExpression("width",""+h+" > "+t+" ? "+h+" : "+t+' + "px"')}else{var l,f;if(e&&e.constructor==Array){var u=e[0]?typeof e[0]=="number"?e[0].toString():e[0].replace(/px/,""):j.css("top").replace(/px/,"");l=u.indexOf("%")==-1?u+" + (t = "+w+" ? "+w+" : "+m+') + "px"':parseInt(u.replace(/%/,""))+" * (("+g+" || "+o+") / 100) + (t = "+w+" ? "+w+" : "+m+') + "px"';if(e[1]){var k=typeof e[1]=="number"?e[1].toString():e[1].replace(/px/,"");f=k.indexOf("%")==-1?k+" + (t = "+n+" ? "+n+" : "+r+') + "px"':parseInt(k.replace(/%/,""))+" * (("+p+" || "+t+") / 100) + (t = "+n+" ? "+n+" : "+r+') + "px"'}}else{l="("+g+" || "+o+") / 2 - (this.offsetHeight / 2) + (t = "+w+" ? "+w+" : "+m+') + "px"';f="("+p+" || "+t+") / 2 - (this.offsetWidth / 2) + (t = "+n+" ? "+n+" : "+r+') + "px"'}x.removeExpression("top");x.removeExpression("left");x.setExpression("top",l);x.setExpression("left",f)}}})},focus:function(h){var f=this,g=h||"first";var e=c(":input:enabled:visible:"+g,f.dialog.wrap);e.length>0?e.focus():f.dialog.wrap.focus()},getDimensions:function(){var f=c(window);var e=c.browser.opera&&c.browser.version>"9.5"&&c.fn.jquery<="1.2.6"?document.documentElement.clientHeight:c.browser.opera&&c.browser.version<"9.5"&&c.fn.jquery>"1.2.6"?window.innerHeight:f.height();return[e,f.width()]},getVal:function(e){return e=="auto"?0:parseInt(e.replace(/px/,""))},setContainerDimensions:function(){var h=this.getVal(this.dialog.container.css("height")),e=this.dialog.container.width(),i=this.dialog.data.height(),g=this.dialog.data.width();var f=this.opts.maxHeight&&this.opts.maxHeight<a[0]?this.opts.maxHeight:a[0],j=this.opts.maxWidth&&this.opts.maxWidth<a[1]?this.opts.maxWidth:a[1];if(!h){if(!i){h=this.opts.minHeight}else{if(i>f){h=f}else{if(i<this.opts.minHeight){h=this.opts.minHeight}else{h=i}}}}else{h=h>f?f:h}if(!e){if(!g){e=this.opts.minWidth}else{if(g>j){e=j}else{if(g<this.opts.minWidth){e=this.opts.minWidth}else{e=g}}}}else{e=e>j?j:e}this.dialog.container.css({height:h,width:e});if(i>h||g>e){this.dialog.wrap.css({overflow:"auto"})}this.setPosition()},setPosition:function(){var g,f,h=(a[0]/2)-((this.dialog.container.height()||this.dialog.data.height())/2),e=(a[1]/2)-((this.dialog.container.width()||this.dialog.data.width())/2);if(this.opts.position&&this.opts.position.constructor==Array){g=this.opts.position[0]||h;f=this.opts.position[1]||e}else{g=h;f=e}this.dialog.container.css({left:f,top:g})},watchTab:function(g){var f=this;if(c(g.target).parents(".simplemodal-container").length>0){f.inputs=c(":input:enabled:visible:first, :input:enabled:visible:last",f.dialog.data);if(!g.shiftKey&&g.target==f.inputs[f.inputs.length-1]||g.shiftKey&&g.target==f.inputs[0]||f.inputs.length==0){g.preventDefault();var h=g.shiftKey?"last":"first";setTimeout(function(){f.focus(h)},10)}}else{g.preventDefault();setTimeout(function(){f.focus()},10)}},open:function(){this.dialog.iframe&&this.dialog.iframe.show();if(c.isFunction(this.opts.onOpen)){this.opts.onOpen.apply(this,[this.dialog])}else{this.dialog.overlay.show();this.dialog.container.show();this.dialog.data.show()}this.focus();this.bindEvents()},close:function(){if(!this.dialog.data){return false}this.unbindEvents();if(c.isFunction(this.opts.onClose)&&!this.occb){this.occb=true;this.opts.onClose.apply(this,[this.dialog])}else{if(this.dialog.parentNode){if(this.opts.persist){this.dialog.data.hide().appendTo(this.dialog.parentNode)}else{this.dialog.data.hide().remove();this.dialog.orig.appendTo(this.dialog.parentNode)}}else{this.dialog.data.hide().remove()}this.dialog.container.hide().remove();this.dialog.overlay.hide().remove();this.dialog.iframe&&this.dialog.iframe.hide().remove();this.dialog={}}}}})(jQuery);
