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