(function($){var ie6=$.browser.msie&&parseInt($.browser.version)==6&&typeof window.XMLHttpRequest!="object",ieQuirks=null,w=[];
$.modal=function(data,options){return $.modal.impl.init(data,options)
};
$.modal.close=function(){$.modal.impl.close()
};
$.fn.modal=function(options){return $.modal.impl.init(this,options)
};
$.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};
$.modal.impl={opts:null,dialog:{},init:function(data,options){if(this.dialog.data){return false
}ieQuirks=$.browser.msie&&!$.boxModel;
this.opts=$.extend({},$.modal.defaults,options);
this.zIndex=this.opts.zIndex;
this.occb=false;
if(typeof data=="object"){data=data instanceof jQuery?data:$(data);
if(data.parent().parent().size()>0){this.dialog.parentNode=data.parent();
if(!this.opts.persist){this.dialog.orig=data.clone(true)
}}}else{if(typeof data=="string"||typeof data=="number"){data=$("<div/>").html(data)
}else{alert("SimpleModal Error: Unsupported data type: "+typeof data);
return false
}}this.dialog.data=data.addClass("simplemodal-data").css(this.opts.dataCss);
data=null;
this.create();
this.open();
if($.isFunction(this.opts.onShow)){this.opts.onShow.apply(this,[this.dialog])
}return this
},create:function(){w=this.getDimensions();
if(ie6){this.dialog.iframe=$('<iframe src="javascript:false;"/>').css($.extend(this.opts.iframeCss,{display:"none",opacity:0,position:"fixed",height:w[0],width:w[1],zIndex:this.opts.zIndex,top:0,left:0})).appendTo("body")
}this.dialog.overlay=$("<div/>").attr("id",this.opts.overlayId).addClass("simplemodal-overlay").css($.extend(this.opts.overlayCss,{display:"none",opacity:this.opts.opacity/100,height:w[0],width:w[1],position:"fixed",left:0,top:0,zIndex:this.opts.zIndex+1})).appendTo("body");
this.dialog.container=$("<div/>").attr("id",this.opts.containerId).addClass("simplemodal-container").css($.extend(this.opts.containerCss,{display:"none",position:"fixed",zIndex:this.opts.zIndex+2})).append(this.opts.close?$(this.opts.closeHTML).addClass(this.opts.closeClass):"").appendTo("body");
this.setPosition();
if(ie6||ieQuirks){this.fixIE()
}this.dialog.container.append(this.dialog.data.hide())
},bindEvents:function(){var self=this;
$("."+this.opts.closeClass).bind("click.simplemodal",function(e){e.preventDefault();
self.close()
});
$(window).bind("resize.simplemodal",function(){w=self.getDimensions();
self.setPosition();
if(ie6||ieQuirks){self.fixIE()
}else{self.dialog.iframe&&self.dialog.iframe.css({height:w[0],width:w[1]});
self.dialog.overlay.css({height:w[0],width:w[1]})
}})
},unbindEvents:function(){$("."+this.opts.closeClass).unbind("click.simplemodal");
$(window).unbind("resize.simplemodal")
},fixIE:function(){var p=this.opts.position;
$.each([this.dialog.iframe||null,this.dialog.overlay,this.dialog.container],function(i,el){if(el){var bch="document.body.clientHeight",bcw="document.body.clientWidth",bsh="document.body.scrollHeight",bsl="document.body.scrollLeft",bst="document.body.scrollTop",bsw="document.body.scrollWidth",ch="document.documentElement.clientHeight",cw="document.documentElement.clientWidth",sl="document.documentElement.scrollLeft",st="document.documentElement.scrollTop",s=el[0].style;
s.position="absolute";
if(i<2){s.removeExpression("height");
s.removeExpression("width");
s.setExpression("height",""+bsh+" > "+bch+" ? "+bsh+" : "+bch+' + "px"');
s.setExpression("width",""+bsw+" > "+bcw+" ? "+bsw+" : "+bcw+' + "px"')
}else{var te,le;
if(p&&p.constructor==Array){var top=p[0]?typeof p[0]=="number"?p[0].toString():p[0].replace(/px/,""):el.css("top").replace(/px/,"");
te=top.indexOf("%")==-1?top+" + (t = "+st+" ? "+st+" : "+bst+') + "px"':parseInt(top.replace(/%/,""))+" * (("+ch+" || "+bch+") / 100) + (t = "+st+" ? "+st+" : "+bst+') + "px"';
if(p[1]){var left=typeof p[1]=="number"?p[1].toString():p[1].replace(/px/,"");
le=left.indexOf("%")==-1?left+" + (t = "+sl+" ? "+sl+" : "+bsl+') + "px"':parseInt(left.replace(/%/,""))+" * (("+cw+" || "+bcw+") / 100) + (t = "+sl+" ? "+sl+" : "+bsl+') + "px"'
}}else{te="("+ch+" || "+bch+") / 2 - (this.offsetHeight / 2) + (t = "+st+" ? "+st+" : "+bst+') + "px"';
le="("+cw+" || "+bcw+") / 2 - (this.offsetWidth / 2) + (t = "+sl+" ? "+sl+" : "+bsl+') + "px"'
}s.removeExpression("top");
s.removeExpression("left");
s.setExpression("top",te);
s.setExpression("left",le)
}}})
},getDimensions:function(){var el=$(window);
var h=$.browser.opera&&$.browser.version>"9.5"&&$.fn.jquery<="1.2.6"?document.documentElement.clientHeight:el.height();
return[h,el.width()]
},setPosition:function(){var top,left,hCenter=(w[0]/2)-((this.dialog.container.height()||this.dialog.data.height())/2),vCenter=(w[1]/2)-((this.dialog.container.width()||this.dialog.data.width())/2);
if(this.opts.position&&this.opts.position.constructor==Array){top=this.opts.position[0]||hCenter;
left=this.opts.position[1]||vCenter
}else{top=hCenter;
left=vCenter
}this.dialog.container.css({left:left,top:top})
},open:function(){this.dialog.iframe&&this.dialog.iframe.show();
if($.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($.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);