(function(a){function b(b,e){var f=this,g=b.add(f),h=a(window),i,j,k,l=a.tools.expose&&(e.mask||e.expose),m=Math.random().toString().slice(10);if(l){if(typeof l=="string")l={color:l};l.closeOnClick=l.closeOnEsc=false}var n=e.target||b.attr("rel");j=n?a(n):b;if(!j.length)throw"Could not find Overlay: "+n;b&&b.index(j)==-1&&b.click(function(a){f.load(a);return a.preventDefault()});a.extend(f,{load:function(b){if(f.isOpened())return f;var i=d[e.effect];if(!i)throw'Overlay: cannot find effect : "'+e.effect+'"';e.oneInstance&&a.each(c,function(){this.close(b)});b=b||a.Event();b.type="onBeforeLoad";g.trigger(b);if(b.isDefaultPrevented())return f;k=true;l&&a(j).expose(l);var n=e.top,p=e.left,r=j.outerWidth({margin:true}),t=j.outerHeight({margin:true});if(typeof n=="string")n=n=="center"?Math.max((h.height()-t)/2,0):parseInt(n,10)/100*h.height();if(p=="center")p=Math.max((h.width()-r)/2,0);i[0].call(f,{top:n,left:p},function(){if(k){b.type="onLoad";g.trigger(b)}});l&&e.closeOnClick&&a.mask.getMask().one("click",f.close);e.closeOnClick&&a(document).bind("click."+m,function(b){a(b.target).parents(j).length||f.close(b)});e.closeOnEsc&&a(document).bind("keydown."+m,function(a){a.keyCode==27&&f.close(a)});return f},close:function(b){if(!f.isOpened())return f;b=b||a.Event();b.type="onBeforeClose";g.trigger(b);if(!b.isDefaultPrevented()){k=false;d[e.effect][1].call(f,function(){b.type="onClose";g.trigger(b)});a(document).unbind("click."+m).unbind("keydown."+m);l&&a.mask.close();return f}},getOverlay:function(){return j},getTrigger:function(){return b},getClosers:function(){return i},isOpened:function(){return k},getConf:function(){return e}});a.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]);f[c]=function(b){a(f).bind(c,b);return f}});i=j.find(e.close||".close");if(!i.length&&!e.close){i=a('<div class="close"></div>');j.prepend(i)}i.click(function(a){f.close(a)});e.load&&f.load()}a.tools=a.tools||{version:"1.2.2"};a.tools.overlay={addEffect:function(a,b,c){d[a]=[b,c]},conf:{close:null,closeOnClick:true,closeOnEsc:true,closeSpeed:"fast",effect:"default",fixed:!a.browser.msie||a.browser.version>6,left:"center",load:false,mask:null,oneInstance:true,speed:"normal",target:null,top:"10%"}};var c=[],d={};a.tools.overlay.addEffect("default",function(b,c){var d=this.getConf(),e=a(window);if(!d.fixed){b.top+=e.scrollTop();b.left+=e.scrollLeft()}b.position=d.fixed?"fixed":"absolute";this.getOverlay().css(b).fadeIn(d.speed,c)},function(a){this.getOverlay().fadeOut(this.getConf().closeSpeed,a)});a.fn.overlay=function(d){var e=this.data("overlay");if(e)return e;if(a.isFunction(d))d={onBeforeLoad:d};d=a.extend(true,{},a.tools.overlay.conf,d);this.each(function(){e=new b(a(this),d);c.push(e);a(this).data("overlay",e)});return d.api?e:this}})(jQuery);(function(a){function f(c){var e=this.getOverlay().hide(),f=this.getConf(),g=this.getTrigger();e=e.data("img");var h={top:f.start.top,left:f.start.left,width:0};g&&a.extend(h,b(g));f.fixed&&e.css({position:"absolute"}).animate({top:"+="+d.scrollTop(),left:"+="+d.scrollLeft()},0);e.animate(h,f.closeSpeed,c)}function e(c,e){var f=this.getOverlay(),g=this.getConf(),h=this.getTrigger(),k=this,l=f.outerWidth({margin:true}),m=f.data("img");if(!m){var n=f.css("backgroundImage");if(!n)throw"background-image CSS property not set for overlay";n=n.slice(n.indexOf("(")+1,n.indexOf(")")).replace(/\"/g,"");f.css("backgroundImage","none");m=a('<img src="'+n+'"/>');m.css({border:0,display:"none"}).width(l);a("body").append(m);f.data("img",m)}n=g.start.top||Math.round(d.height()/2);var o=g.start.left||Math.round(d.width()/2);if(h){h=b(h);n=h.top;o=h.left}m.css({position:"absolute",top:n,left:o,width:0,zIndex:g.zIndex}).show();c.top+=d.scrollTop();c.left+=d.scrollLeft();c.position="absolute";f.css(c);m.animate({top:f.css("top"),left:f.css("left"),width:l},g.speed,function(){if(g.fixed){c.top-=d.scrollTop();c.left-=d.scrollLeft();c.position="fixed";m.add(f).css(c)}f.css("zIndex",g.zIndex+1).fadeIn(g.fadeInSpeed,function(){k.isOpened()&&!a(this).index(f)?e.call():f.hide()})})}function b(a){var b=a.offset();return{top:b.top+a.height()/2,left:b.left+a.width()/2}}var c=a.tools.overlay,d=a(window);a.extend(c.conf,{start:{top:null,left:null},fadeInSpeed:"fast",zIndex:9999});c.addEffect("apple",e,f)})(jQuery);(function(a){function c(b){if(b)return b.call(a.mask)}function b(){if(a.browser.msie){var b=a(document).height(),c=a(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,b-c<20?c:b]}return[a(window).width(),a(document).height()]}a.tools=a.tools||{version:"1.2.2"};var d;d=a.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:.8,startOpacity:0,color:"#fff",onLoad:null,onClose:null}};var e,f,g,h,i;a.mask={load:function(m,n){if(g)return this;if(typeof m=="string")m={color:m};m=m||h;h=m=a.extend(a.extend({},d.conf),m);e=a("#"+m.maskId);if(!e.length){e=a("<div/>").attr("id",m.maskId);a("body").append(e)}var o=b();e.css({position:"absolute",top:0,left:0,width:o[0],height:o[1],display:"none",opacity:m.startOpacity,zIndex:m.zIndex});m.color&&e.css("backgroundColor",m.color);if(c(m.onBeforeLoad)===false)return this;m.closeOnEsc&&a(document).bind("keydown.mask",function(b){b.keyCode==27&&a.mask.close(b)});m.closeOnClick&&e.bind("click.mask",function(b){a.mask.close(b)});a(window).bind("resize.mask",function(){a.mask.fit()});if(n&&n.length){i=n.eq(0).css("zIndex");a.each(n,function(){var b=a(this);/relative|absolute|fixed/i.test(b.css("position"))||b.css("position","relative")});f=n.css({zIndex:Math.max(m.zIndex+1,i=="auto"?0:i)})}e.css({display:"block"}).fadeTo(m.loadSpeed,m.opacity,function(){a.mask.fit();c(m.onLoad)});g=true;return this},close:function(){if(g){if(c(h.onBeforeClose)===false)return this;e.fadeOut(h.closeSpeed,function(){c(h.onClose);f&&f.css({zIndex:i})});a(document).unbind("keydown.mask");e.unbind("click.mask");a(window).unbind("resize.mask");g=false}return this},fit:function(){if(g){var a=b();e.css({width:a[0],height:a[1]})}},getMask:function(){return e},isLoaded:function(){return g},getConf:function(){return h},getExposed:function(){return f}};a.fn.mask=function(b){a.mask.load(b);return this};a.fn.expose=function(b){a.mask.load(b,this);return this}})(jQuery)
