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