(function(D){var C=D.browser.msie&&parseInt(D.browser.version)==6&&typeof window.XMLHttpRequest!="object",A=null,B=[];D.modal=function(E,F){return D.modal.impl.init(E,F)};D.modal.close=function(){D.modal.impl.close()};D.fn.modal=function(E){return D.modal.impl.init(this,E)};D.modal.defaults={opacity:50,overlayId:"simplemodal-overlay",overlayCss:{},containerId:"simplemodal-container",containerCss:{},dataCss:{},zIndex:1000,close:true,closeHTML:'<a class="modalCloseImg" title="Close"></a>',closeClass:"simplemodal-close",position:null,persist:false,onOpen:null,onShow:null,onClose:null};D.modal.impl={opts:null,dialog:{},init:function(E,F){if(this.dialog.data){return false}A=D.browser.msie&&!D.boxModel;this.opts=D.extend({},D.modal.defaults,F);this.zIndex=this.opts.zIndex;this.occb=false;if(typeof E=="object"){E=E instanceof jQuery?E:D(E);if(E.parent().parent().size()>0){this.dialog.parentNode=E.parent();if(!this.opts.persist){this.dialog.orig=E.clone(true)}}}else{if(typeof E=="string"||typeof E=="number"){E=D("<div/>").html(E)}else{alert("SimpleModal Error: Unsupported data type: "+typeof E);return false}}this.dialog.data=E.addClass("simplemodal-data").css(this.opts.dataCss);E=null;this.create();this.open();if(D.isFunction(this.opts.onShow)){this.opts.onShow.apply(this,[this.dialog])}return this},create:function(){B=this.getDimensions();if(C){this.dialog.iframe=D('<iframe src="javascript:false;"/>').css(D.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=D("<div/>").attr("id",this.opts.overlayId).addClass("simplemodal-overlay").css(D.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=D("<div/>").attr("id",this.opts.containerId).addClass("simplemodal-container").css(D.extend(this.opts.containerCss,{display:"none",position:"fixed",zIndex:this.opts.zIndex+2})).append(this.opts.close?D(this.opts.closeHTML).addClass(this.opts.closeClass):"").appendTo("body");this.setPosition();if(C||A){this.fixIE()}this.dialog.container.append(this.dialog.data.hide())},bindEvents:function(){var E=this;D("."+this.opts.closeClass).bind("click.simplemodal",function(F){F.preventDefault();E.close()});D(window).bind("resize.simplemodal",function(){B=E.getDimensions();E.setPosition();if(C||A){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(){D("."+this.opts.closeClass).unbind("click.simplemodal");D(window).unbind("resize.simplemodal")},fixIE:function(){var E=this.opts.position;D.each([this.dialog.iframe||null,this.dialog.overlay,this.dialog.container],function(Q,H){if(H){var P="document.body.clientHeight",K="document.body.clientWidth",T="document.body.scrollHeight",J="document.body.scrollLeft",S="document.body.scrollTop",V="document.body.scrollWidth",O="document.documentElement.clientHeight",I="document.documentElement.clientWidth",M="document.documentElement.scrollLeft",N="document.documentElement.scrollTop",G=H[0].style;G.position="absolute";if(Q<2){G.removeExpression("height");G.removeExpression("width");G.setExpression("height",""+T+" > "+P+" ? "+T+" : "+P+' + "px"');G.setExpression("width",""+V+" > "+K+" ? "+V+" : "+K+' + "px"')}else{var R,F;if(E&&E.constructor==Array){var L=E[0]?typeof E[0]=="number"?E[0].toString():E[0].replace(/px/,""):H.css("top").replace(/px/,"");R=L.indexOf("%")==-1?L+" + (t = "+N+" ? "+N+" : "+S+') + "px"':parseInt(L.replace(/%/,""))+" * (("+O+" || "+P+") / 100) + (t = "+N+" ? "+N+" : "+S+') + "px"';if(E[1]){var U=typeof E[1]=="number"?E[1].toString():E[1].replace(/px/,"");F=U.indexOf("%")==-1?U+" + (t = "+M+" ? "+M+" : "+J+') + "px"':parseInt(U.replace(/%/,""))+" * (("+I+" || "+K+") / 100) + (t = "+M+" ? "+M+" : "+J+') + "px"'}}else{R="("+O+" || "+P+") / 2 - (this.offsetHeight / 2) + (t = "+N+" ? "+N+" : "+S+') + "px"';F="("+I+" || "+K+") / 2 - (this.offsetWidth / 2) + (t = "+M+" ? "+M+" : "+J+') + "px"'}G.removeExpression("top");G.removeExpression("left");G.setExpression("top",R);G.setExpression("left",F)}}})},getDimensions:function(){var E=D(window);var F=D.browser.opera&&D.browser.version>"9.5"&&D.fn.jquery<="1.2.6"?document.documentElement.clientHeight:E.height();return[F,E.width()]},setPosition:function(){var G,F,E=(B[0]/2)-((this.dialog.container.height()||this.dialog.data.height())/2),H=(B[1]/2)-((this.dialog.container.width()||this.dialog.data.width())/2);if(this.opts.position&&this.opts.position.constructor==Array){G=this.opts.position[0]||E;F=this.opts.position[1]||H}else{G=E;F=H}this.dialog.container.css({left:F,top:G})},open:function(){this.dialog.iframe&&this.dialog.iframe.show();if(D.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(D.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);