/*
 * jquery.tools 1.0.0 - The missing UI library
 * 
 * [tools.overlay-1.0.2]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * Build: Wed Jun 03 14:46:55 GMT+00:00 2009
 */
(function(b){b.tools=b.tools||{version:{}};b.tools.version.overlay="1.0.2";var c=[];function a(h,d){var q=this,p=b(window),f,m,r,i,k,l;var e=d.expose&&b.tools.version.expose;function n(o,s){b(q).bind(o,function(u,t){if(s&&s.call(this)===false&&t){t.proceed=false}});return q}b.each(d,function(o,s){if(b.isFunction(s)){n(o,s)}});var j=d.target||h.attr("rel");var g=j?b(j):null;if(!g){g=h}else{k=h}p.load(function(){l=g.attr("overlay");if(!l){l=g.css("backgroundImage");if(!l){throw"background-image CSS property not set for overlay element: "+j}l=l.substring(l.indexOf("(")+1,l.indexOf(")")).replace(/\"/g,"");g.css("backgroundImage","none");g.attr("overlay",l)}r=g.outerWidth({margin:true});i=g.outerHeight({margin:true});m=b('<img src="'+l+'"/>');m.css({border:0,position:"absolute",display:"none"}).width(r).attr("overlay",true);b("body").append(m);if(k){k.bind("click.overlay",function(o){q.load(o.pageY-p.scrollTop(),o.pageX-p.scrollLeft());return o.preventDefault()})}if(!d.close||!g.find(d.close).length){g.prepend('<div class="close"></div>');d.close="div.close"}f=g.find(d.close);f.bind("click.overlay",function(){q.close()});if(d.preload){setTimeout(function(){var o=new Image();o.src=l},2000)}});b.extend(q,{load:function(v,u){if(q.isOpened()){return q}if(d.oneInstance){b.each(c,function(){this.close()})}var t={proceed:true};b(q).trigger("onBeforeLoad",t);if(!t.proceed){return q}if(e){m.expose(d.expose);m.expose().load()}v=v||d.start.top;u=u||d.start.left;var o=d.finish.top;var s=d.finish.left;if(o=="center"){o=Math.max((p.height()-i)/2,0)}if(s=="center"){s=Math.max((p.width()-r)/2,0)}if(!d.start.absolute){v+=p.scrollTop();u+=p.scrollLeft()}if(!d.finish.absolute){o+=p.scrollTop();s+=p.scrollLeft()}m.css({top:v,left:u,width:d.start.width,zIndex:d.zIndex}).show();m.animate({top:o,left:s,width:r},d.speed,function(){g.css({position:"absolute",top:o,left:s});var w=m.css("zIndex");f.add(g).css("zIndex",++w);g.fadeIn(d.fadeInSpeed,function(){b(q).trigger("onLoad")})});return q},close:function(){if(!q.isOpened()){return q}var t={proceed:true};b(q).trigger("onBeforeClose",t);if(!t.proceed){return q}if(e){m.expose().close()}if(m.is(":visible")){g.hide();var s=d.start.top;var o=d.start.left;if(k){t=k.offset();s=t.top+k.height()/2;o=t.left+k.width()/2}m.animate({top:s,left:o,width:0},d.closeSpeed,function(){b(q).trigger("onClose",t)})}return q},getBackgroundImage:function(){return m},getContent:function(){return g},getTrigger:function(){return k},isOpened:function(){return g.is(":visible")},getConf:function(){return d},onBeforeLoad:function(o){return n("onBeforeLoad",o)},onLoad:function(o){return n("onLoad",o)},onBeforeClose:function(o){return n("onBeforeClose",o)},onClose:function(o){return n("onClose",o)}});b(document).keydown(function(o){if(o.keyCode==27){q.close()}});if(d.closeOnClick){b(document).bind("click.overlay",function(o){if(!g.is(":visible, :animated")){return}var s=b(o.target);if(s.attr("overlay")){return}if(s.parents("[overlay]").length){return}q.close()})}}b.fn.overlay=function(e){var f=this.eq(typeof e=="number"?e:0).data("overlay");if(f){return f}var d=b(window);var g={start:{top:Math.round(d.height()/2),left:Math.round(d.width()/2),width:0,absolute:false},finish:{top:80,left:"center",absolute:false},speed:"normal",fadeInSpeed:"fast",closeSpeed:"fast",close:null,oneInstance:true,closeOnClick:true,preload:true,zIndex:9999,api:false,expose:null,target:null};if(b.isFunction(e)){e={onBeforeLoad:e}}b.extend(true,g,e);this.each(function(){f=new a(b(this),g);c.push(f);b(this).data("overlay",f)});return g.api?f:this}})(jQuery);
