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