(function(B){function A(F,H,O){var Q=this;var C={speed:500,top:100,close:null,onBeforeLoad:null,onLoad:null,onClose:null,closeOnClick:true};if(typeof H=="function"){H={onLoad:H}}B.extend(C,H);var K=B(F.attr("rel"));if(!K.length){alert("Cannot find element: "+F.attr("rel")+', missing "#" in rel- attribute?');return }if(K.is(":visible")){return }if(!C.close){C.close="div.close";if(K.find(C.close).length==0){K.prepend('<div class="close"></div>')}}var E=K.find(C.close);K.bind("click.overlay",function(R){R.stopPropagation()});E.one("click.overlay",function(){P()});var D=K.outerWidth({margin:true});var J=B("#_overlayImage");if(!J.length){J=B("<img id='_overlayImage'>");J.css({border:0,position:"absolute"}).width(D).hide();B("body").append(J)}var I=K.attr("bg");if(!I){I=K.css("backgroundImage");I=I.substring(I.indexOf("(")+1,I.indexOf(")"));K.attr("bg",I);K.css("backgroundImage","none")}J.attr("src",I.replace(/\"/g,""));function N(R){var T=C[R];if(T){try{return T.call(J,K,F,E)}catch(S){alert("Error calling overlay::"+R+", "+S);return false}}return true}var M=B(window);var L=M.scrollTop()+C.top;var G=M.scrollLeft()+Math.max((M.width()-J.width())/2,0);if(N("onBeforeLoad")===false){return }J.css({top:O.pageY,left:O.pageX,width:0}).show();J.animate({top:L,left:G,width:D,height:0},C.speed,function(){K.css({position:"absolute",top:L,left:G}).fadeIn("fast",function(){N("onLoad");var R=J.css("zIndex");if(R=="auto"){R=0}E.add(K).css("zIndex",++R);if(C.closeOnClick){M.bind("click.overlay",function(S){var T=B(S.target);if(T.attr("id")=="_overlayImage"){return }if(T.attr("bg")){return }if(T.parents("[bg]").length){return }P()})}})});function P(){if(N("onClose")===false){return }if(J.is(":visible")){J.hide();K.hide();if(C.closeOnClick){M.unbind("click.overlay")}M.unbind("keypress.overlay")}}M.bind("keypress.overlay",function(R){if(R.keyCode==27){P()}});B.overlayClose=function(){P()}}B.fn.overlay=function(C){this.bind("click.overlay",function(E){var D=new A(B(this),C,E);return E.preventDefault()});return this}})(jQuery);
