
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+
(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)
this.insertBefore(document.createElement(html),this.firstChild);});}
return this;};})(jQuery);;(function($){$.fn.tinyLightbox=function(options){return this.each(function(){!$.data(this,'tinyLightbox')&&$.data(this,'tinyLightbox',new tinyLightbox(this,options)).init();});};$.fn.tinyLightbox.defaults={item:'a',slideshowSpeed:5000,slideshowAutostart:false,pathAttr:'href',descrAttr:'title',speed:300,labelImage:'Image',labelOf:'of',animation:'original',keyNavigation:true,cycle:false,minWidth:250,minHeight:190,overlayOpacity:0.7,bgiframe:true};function tinyLightbox(container,options){var template='\
  <div id="tiny-lightbox" class="tiny-lightbox-animating tiny-lightbox-loading">\
   <div id="tiny-lightbox-overlay" data-action="close"></div>\
   <div id="tiny-lightbox-box" >\
    <div id="tiny-lightbox-image"></div>\
    <a id="tiny-lightbox-prev" data-action="showPrev" hidefocus="hidefocus" href="#">\
     <span data-action="showPrev"></span>\
    </a>\
    <a id="tiny-lightbox-next" data-action="showNext" hidefocus="hidefocus" href="#">\
     <span data-action="showNext"></span>\
    </a>\
   </div>\
   <div id="tiny-lightbox-bar">\
    <div id="tiny-lightbox-description"></div>\
    <span id="tiny-lightbox-stats"></span>\
    <a id="tiny-lightbox-close" title="Close" alt="Close" data-action="close" href="#"></a>\
    <a id="tiny-lightbox-slideshow" title="Slideshow" alt="Slideshow" data-action="slideshow" href="#"/>\
   </div>\
  </div>\
 ';var self=this,$container=$(container),$tl,$elems,$stats,$descr,$prevNext,Animations,activeIndex,running,cycle;var s=this.s=$.extend({},$.fn.tinyLightbox.defaults,options);this.init=function()
{cycle=s.cycle;Animations=$.fn.tinyLightbox[s.animation](self);$elems=$(s.item+'['+s.pathAttr+']',$container);$container.bind('click',function(e){var $elem=$(e.target).closest(s.item);activeIndex=$elems.index($elem[0]);if(activeIndex==-1)return;if(self.$tl)return false;self.$tl=$(template).appendTo(document.body);self.$overlay=$('#tiny-lightbox-overlay').css('opacity',s.overlayOpacity);resizeOverlay();self.$box=$('#tiny-lightbox-box');self.$image=$('#tiny-lightbox-image');self.path=$elem.attr(s.pathAttr);self.boxData={width:self.$box.width(),height:self.$box.height(),top:parseInt(self.$box.css('top'))+self.docData.scrollTop,borderWidth:(self.$box.outerWidth()-self.$box.innerWidth())/2||0};setLeft();self.$bar=$('#tiny-lightbox-bar');$descr=$('#tiny-lightbox-description');$stats=$('#tiny-lightbox-stats');updateBar();self.$tl.bind('click',function(e){var act=$(e.target).attr('data-action');if(!act)return;self[act]();return false;});$prevNext=$('#tiny-lightbox-next, #tiny-lightbox-prev').bind('mouseover',function(){$('span',this).addClass('tiny-lightbox-hover');}).bind('mouseout',function(){$('span',this).removeClass('tiny-lightbox-hover');});$(window).bind('resize',resizeOverlay);s.keyNavigation&&$(document).bind('keydown',keyNavigation);s.bgiframe&&$.fn.bgiframe&&self.$tl.bgiframe();Animations.start(function(){preload(self.path,function(){Animations.animate(function(){resizeOverlay();self.$tl.removeClass('tiny-lightbox-animating');if(s.slideshowAutostart){running=setTimeout(slideshow,s.slideshowSpeed);self.$bar.addClass('tiny-lightbox-slideshow-running');};});});});return false;});};this.showNext=function(){change(activeIndex+1);};this.showPrev=function(){change(activeIndex-1);};this.slideshow=function(sw){if(running&&!sw){clearTimeout(running);cycle=s.cycle;self.$bar.removeClass('tiny-lightbox-slideshow-running');running=false;}else{cycle=true;self.$bar.addClass('tiny-lightbox-slideshow-running');change(activeIndex+1,function(){running=setTimeout(function(){self.slideshow(true);},s.slideshowSpeed);});};};this.close=function(){clearTimeout(running);$prevNext.unbind('mouseover mouseout');$(window).unbind('resize',resizeOverlay);s.keyNavigation&&$(document).unbind('keydown',keyNavigation);Animations.close(function(){self.$tl.unbind('click').remove();delete self.$tl;});};function resizeOverlay(){self.docData={width:$(window).width(),height:$(document).height(),scrollTop:$(window).scrollTop(),scrollLeft:$(window).scrollLeft()};self.$tl.add(self.$overlay).css({height:self.docData.height,width:self.docData.width});};function keyNavigation(e){e.keyCode==39?self.showNext():e.keyCode==37?self.showPrev():e.keyCode==27&&self.close();};function preload(url,callback){self.$tl.addClass('tiny-lightbox-loading');var img=new Image();img.onload=function(){self.$tl.removeClass('tiny-lightbox-loading');$.extend(self.boxData,{width:img.width>s.minWidth?img.width:s.minWidth,height:img.height>s.minHeight?img.height:s.minHeight});setLeft();callback();};img.src=self.path=url;};function setLeft(){self.boxData.left=(self.docData.width-(self.boxData.width+self.boxData.borderWidth*2))/2;};function updateBar(){$stats.text(s.labelImage+' '+(activeIndex+1)+' '+s.labelOf+' '+$elems.length);var descr=$elems.eq(activeIndex).attr(s.descrAttr);$descr.html(descr)[descr?'show':'hide']();};function change(id,callback){if(self.$tl.hasClass('tiny-lightbox-animating'))return;if(id>$elems.length-1||id<0){if(cycle)
change(id<0?$elems.length-1:0,callback);else{self.$tl.addClass('tiny-lightbox-animating');Animations.limit(function(){self.$tl.removeClass('tiny-lightbox-animating');});};return;};activeIndex=id;self.$tl.addClass('tiny-lightbox-animating');Animations.prepare(function(){preload($elems.eq(activeIndex).attr(s.pathAttr),function(){updateBar();Animations.animate(function(){self.$tl.removeClass('tiny-lightbox-animating');resizeOverlay();$(callback);});});});};};})(jQuery);;(function($){$.fn.tinyLightbox.original=function(inst){return{start:function(callback){inst.$overlay.animate({opacity:'show'},inst.s.speed,function(){inst.$box.css({visibility:'visible',left:inst.boxData.left,top:inst.boxData.top});callback();});},animate:function(callback){inst.$box.animate({height:inst.boxData.height},inst.s.speed,function(){$(this).animate({width:inst.boxData.width,left:inst.boxData.left},inst.s.speed,function(){inst.$image.css('background-image','url('+inst.path+')').fadeIn(inst.s.speed,function(){inst.$bar.css({top:inst.boxData.top+inst.boxData.height+inst.boxData.borderWidth*2,left:inst.boxData.left,width:inst.boxData.width}).slideDown(inst.s.speed,callback);});});});},prepare:function(callback){inst.$bar.slideUp(inst.s.speed,function(){inst.$image.fadeOut(inst.s.speed,callback);});},limit:function(callback){shake(4,inst.s.speed/2,40,'+',0);function shake(times,speed,distance,dir,timesNow){timesNow++;dir=dir=='+'?'-':'+';inst.$bar.hide();inst.$box.animate({left:dir+'='+distance},speed,function(){timesNow<times?shake(times,speed,distance,dir,timesNow):inst.$bar.show()&&callback();});};},close:function(callback){this.prepare(function(){inst.$box.fadeOut(inst.s.speed,function(){inst.$overlay.fadeOut(inst.s.speed,callback);});});}};};})(jQuery);