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