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