(function(c){var i=c.browser.msie&&parseInt(c.browser.version)==6&&typeof window.XMLHttpRequest!="object",j=null,d=[];c.modal=function(a,b){return c.modal.impl.init(a,b)};c.modal.close=function(){c.modal.impl.close()};c.fn.modal=function(a){return c.modal.impl.init(this,a)};c.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:1E3,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};c.modal.impl={opts:null,dialog:{},init:function(a,b){if(this.dialog.data)return false;j=c.browser.msie&&!c.boxModel;this.opts=c.extend({},c.modal.defaults,b);this.zIndex=this.opts.zIndex;this.occb=false;if(typeof a=="object"){a=a instanceof jQuery?a:c(a);if(a.parent().parent().size()>
0){this.dialog.parentNode=a.parent();if(!this.opts.persist)this.dialog.orig=a.clone(true)}}else if(typeof a=="string"||typeof a=="number")a=c("<div/>").html(a);else{alert("SimpleModal Error: Unsupported data type: "+typeof a);return false}this.create(a);this.open();c.isFunction(this.opts.onShow)&&this.opts.onShow.apply(this,[this.dialog]);return this},create:function(a){d=this.getDimensions();if(i)this.dialog.iframe=c('<iframe src="javascript:false;"/>').css(c.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=c("<div/>").attr("id",this.opts.overlayId).addClass("simplemodal-overlay").css(c.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=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=a.attr("id",a.attr("id")||this.opts.dataId).addClass("simplemodal-data").css(c.extend(this.opts.dataCss,{display:"none"}));this.setContainerDimensions();
this.dialog.data.appendTo(this.dialog.wrap);if(i||j)this.fixIE()},bindEvents:function(){var a=this;c("."+a.opts.closeClass).bind("click.simplemodal",function(b){b.preventDefault();a.close()});a.opts.close&&a.opts.overlayClose&&a.dialog.overlay.bind("click.simplemodal",function(b){b.preventDefault();a.close()});c(document).bind("keydown.simplemodal",function(b){if(a.opts.focus&&b.keyCode==9)a.watchTab(b);else if(a.opts.close&&a.opts.escClose&&b.keyCode==27){b.preventDefault();a.close()}});c(window).bind("resize.simplemodal",
function(){d=a.getDimensions();a.opts.autoResize?a.setContainerDimensions():a.setPosition();if(i||j)a.fixIE();else{a.dialog.iframe&&a.dialog.iframe.css({height:d[0],width:d[1]});a.dialog.overlay.css({height:d[0],width:d[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 a=this.opts.position;c.each([this.dialog.iframe||
null,this.dialog.overlay,this.dialog.container],function(b,g){if(g){var e=g[0].style;e.position="absolute";if(b<2){e.removeExpression("height");e.removeExpression("width");e.setExpression("height",'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"');e.setExpression("width",'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"')}else{var f;if(a&&a.constructor==Array){b=
a[0]?typeof a[0]=="number"?a[0].toString():a[0].replace(/px/,""):g.css("top").replace(/px/,"");b=b.indexOf("%")==-1?b+' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"':parseInt(b.replace(/%/,""))+' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"';if(a[1]){f=typeof a[1]=="number"?a[1].toString():
a[1].replace(/px/,"");f=f.indexOf("%")==-1?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"'}}else{b='(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"'}e.removeExpression("top");e.removeExpression("left");e.setExpression("top",b);e.setExpression("left",f)}}})},focus:function(a){var b=this;a=c(":input:enabled:visible:"+(a||"first"),b.dialog.wrap);a.length>0?a.focus():b.dialog.wrap.focus()},getDimensions:function(){var a=c(window);return[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:a.height(),a.width()]},getVal:function(a){return a=="auto"?0:parseInt(a.replace(/px/,""))},setContainerDimensions:function(){var a=this.getVal(this.dialog.container.css("height")),b=this.dialog.container.width(),g=this.dialog.data.height(),e=this.dialog.data.width(),f=this.opts.maxHeight&&this.opts.maxHeight<d[0]?this.opts.maxHeight:d[0],
h=this.opts.maxWidth&&this.opts.maxWidth<d[1]?this.opts.maxWidth:d[1];a=a?a>f?f:a:g?g>f?f:g<this.opts.minHeight?this.opts.minHeight:g:this.opts.minHeight;b=b?b>h?h:b:e?e>h?h:e<this.opts.minWidth?this.opts.minWidth:e:this.opts.minWidth;this.dialog.container.css({height:a,width:b});if(g>a||e>b)this.dialog.wrap.css({overflow:"auto"});this.setPosition()},setPosition:function(){var a,b;a=d[0]/2-(this.dialog.container.height()||this.dialog.data.height())/2;b=d[1]/2-(this.dialog.container.width()||this.dialog.data.width())/
2;if(this.opts.position&&this.opts.position.constructor==Array){a=this.opts.position[0]||a;b=this.opts.position[1]||b}else{a=a;b=b}this.dialog.container.css({left:b,top:a})},watchTab:function(a){var b=this;if(c(a.target).parents(".simplemodal-container").length>0){b.inputs=c(":input:enabled:visible:first, :input:enabled:visible:last",b.dialog.data);if(!a.shiftKey&&a.target==b.inputs[b.inputs.length-1]||a.shiftKey&&a.target==b.inputs[0]||b.inputs.length==0){a.preventDefault();var g=a.shiftKey?"last":
"first";setTimeout(function(){b.focus(g)},10)}}else{a.preventDefault();setTimeout(function(){b.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);