(function(A){A.modal=function(C,B){return A.modal.impl.init(C,B)};A.modal.close=function(){A.modal.impl.close(true)};A.fn.modal=function(B){return A.modal.impl.init(this,B)};A.modal.defaults={overlay:50,overlayId:"modalOverlay",overlayCss:{},containerId:"modalContainer",containerCss:{},close:true,closeTitle:"Close",closeClass:"modalClose",persist:true,onOpen:null,onShow:null,onClose:null};A.modal.impl={opts:null,dialog:{},init:function(C,B){if(this.dialog.data){return false}this.opts=A.extend({},A.modal.defaults,B);if(typeof C=="object"){C=C instanceof jQuery?C:A(C);if(C.parent().parent().size()>0){this.dialog.parentNode=C.parent();if(!this.opts.persist){this.dialog.original=C.clone(true)}}}else{if(typeof C=="string"||typeof C=="number"){C=A("<div>").html(C)}else{if(console){console.log("SimpleModal Error: Unsupported data type: "+typeof C)}return false}}this.dialog.data=C.addClass("modalData");C=null;this.create();this.open();if(A.isFunction(this.opts.onShow)){this.opts.onShow.apply(this,[this.dialog])}return this},create:function(){this.dialog.overlay=A("<div>").attr("id",this.opts.overlayId).addClass("modalOverlay").css(A.extend(this.opts.overlayCss,{opacity:this.opts.overlay/100,height:"100%",width:"100%",position:"fixed",left:0,top:0,zIndex:3000})).hide().appendTo("body");this.dialog.container=A("<div>").attr("id",this.opts.containerId).addClass("modalContainer").css(A.extend(this.opts.containerCss,{position:"fixed",zIndex:3100})).append(this.opts.close?'<a class="modalCloseImg '+this.opts.closeClass+'" title="'+this.opts.closeTitle+'"></a>':"").hide().appendTo("body");if(A.browser.msie&&(A.browser.version<7)){this.fixIE()}this.dialog.container.append(this.dialog.data.hide())},bindEvents:function(){var B=this;A("."+this.opts.closeClass).click(function(C){C.preventDefault();B.close()})},unbindEvents:function(){A("."+this.opts.closeClass).unbind("click")},fixIE:function(){var C=A(document.body).height()+"px";var B=A(document.body).width()+"px";this.dialog.overlay.css({position:"absolute",height:C,width:B});this.dialog.container.css({position:"absolute"});this.dialog.iframe=A('<iframe src="javascript:false;">').css(A.extend(this.opts.iframeCss,{opacity:0,position:"absolute",height:C,width:B,zIndex:1000,width:"100%",top:0,left:0})).hide().appendTo("body")},open:function(){if(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(B){if(!this.dialog.data){return false}if(A.isFunction(this.opts.onClose)&&!B){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.original.appendTo(this.dialog.parentNode)}}else{this.dialog.data.remove()}this.dialog.container.remove();this.dialog.overlay.remove();if(this.dialog.iframe){this.dialog.iframe.remove()}this.dialog={}}this.unbindEvents()}}})(jQuery);