/**
* Name: piroBox v.1.2.2
* Date: May 2010
* Autor: Diego Valobra (http://www.pirolab.it),(http://www.diegovalobra.com)
* Version: 1.2.2
* Licence: CC-BY-SA http://creativecommons.org/licenses/by-sa/2.5/it/
**/

(function($){$.fn.piroBox=function(opt){opt=jQuery.extend({my_speed:null,close_speed:300,bg_alpha:0.5,close_all:'.piro_close,.piro_overlay',slideShow:null,slideSpeed:null},opt);function start_pirobox(){var corners='<tr>'+'<td colspan="3" class="pirobox_up"></td>'+'</tr>'+'<tr>'+'<td class="t_l"></td>'+'<td class="t_c"></td>'+'<td class="t_r"></td>'+'</tr>'+'<tr>'+'<td class="c_l"></td>'+'<td class="c_c"><span><span></span></span><div></div></td>'+'<td class="c_r"></td>'+'</tr>'+'<tr>'+'<td class="b_l"></td>'+'<td class="b_c"></td>'+'<td class="b_r"></td>'+'</tr>'+'<tr>'+'<td colspan="3" class="pirobox_down"></td>'+'</tr>';var window_height=$(document).height();var bg_overlay=$(jQuery('<div class="piro_overlay"></div>').hide().css({'opacity':+opt.bg_alpha,'height':window_height+'px'}));var main_cont=$(jQuery('<table class="pirobox_content" cellpadding="0" cellspacing="0"></table>'));var caption=$(jQuery('<div class="pirobox_caption"></div>'));var piro_nav=$(jQuery('<div class="piro_nav"></div>'));var piro_close=$(jQuery('<a href="#close" class="piro_close" title="close"></a>'));var piro_play=$(jQuery('<a href="#play" class="play" title="play slideshow"></a>'));var piro_stop=$(jQuery('<a href="#stop" class="stop" title="stop slideshow"></a>'));var piro_prev=$(jQuery('<a href="#prev" class="piro_prev" title="previous image"></a>'));var piro_next=$(jQuery('<a href="#next" class="piro_next" title="next image"></a>'));$('body').append(bg_overlay).append(main_cont);main_cont.append(corners);$('.pirobox_up').append(piro_close);$('.pirobox_down').append(piro_nav);$('.pirobox_down').append(piro_play);piro_play.hide();$('.pirobox_down').append(piro_prev).append(piro_next);piro_nav.append(caption);var my_nav_w=piro_prev.width();main_cont.hide();var my_gall_classes=$("a[class^='pirobox']");var map=new Object();for(var i=0;i<my_gall_classes.length;i++){var it=$(my_gall_classes[i])
map['a.'+it.attr('class')]=0;}
var gall_settings=new Array();for(var key in map){gall_settings.push(key);}
for(var i=0;i<gall_settings.length;i++){$(gall_settings[i]).each(function(rel){this.rel=rel+1+" of "+$(gall_settings[i]).length;});var add_first=$(gall_settings[i]+':first').addClass('first');var add_last=$(gall_settings[i]+':last').addClass('last');}
$(my_gall_classes).each(function(rev){this.rev=rev+0});var imgCache=$(my_gall_classes).each(function(){this.href});var hidden=$('body').append('<div id="imgCache" style="display:none"></div').children('#imgCache');$.each(imgCache,function(i,val){$('<div/>').css({'background':'url('+val+')'}).appendTo(hidden);});var piro_gallery=$(my_gall_classes);$.fn.fixPNG=function(){return this.each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod="+($(this).css('backgroundRepeat')=='no-repeat'?'crop':'scale')+", src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')
$(this).css('position','relative');});}});};$.browser.msie6=($.browser.msie&&/MSIE 6\.0/i.test(window.navigator.userAgent));if($.browser.msie6&&!/MSIE 8\.0/i.test(window.navigator.userAgent)){$('.t_l,.t_c,.t_r,.c_l,.c_r,.b_l,.b_c,.b_r,a.piro_next, a.piro_prev,a.piro_prev_out,a.piro_next_out,.c_c,.piro_close,a.play,a.stop').fixPNG();var ie_w_h=$(document).height();bg_overlay.css('height',ie_w_h+'px');}
if($.browser.msie){opt.close_speed=0;}
$(window).resize(function(){var new_w_bg=$(document).height();bg_overlay.css({'visibility':'visible','height':+new_w_bg+'px'});});piro_prev.add(piro_next).bind('click',function(c){c.preventDefault();var image_count=parseInt($(piro_gallery).filter('.item').attr('rev'));var start=$(this).is('.piro_prev_out,.piro_prev')?$(piro_gallery).eq(image_count-1):$(piro_gallery).eq(image_count+1);if(!start.size()){start=$(this).is('.piro_prev_out,.piro_prev')?$(piro_gallery).eq($(piro_gallery).size()-1):$(piro_gallery).eq(0);}
start.click();piro_close.add(caption).add(piro_next).add(piro_prev).css('visibility','hidden');});$(piro_gallery).each(function(array){var item=$(this);item.unbind();item.bind('click',function(c){c.preventDefault();piro_open(item.attr('href'));var this_url=item.attr('href');var descr=item.attr('title');var number=item.attr('rel');if(descr==""){caption.html('<p>'+this_url+'<em class="number">'+number+'</em><a href=\''+this_url+' class="link_to" target="_blank" title="Open Image in a new window"></a></p>');}else{caption.html('<p>'+descr+'<em class="number">'+number+'</em><a href=\''+this_url+' class="link_to" target="_blank" title="Open Image in a new window"></a></p>');}
if(item.is('.last')){$('.number').css('text-decoration','underline');}else{$('.number').css('text-decoration','none');}
if(item.is('.first')){piro_prev.hide();piro_next.show();}else{piro_next.add(piro_prev).show();}
if(item.is('.last')){piro_prev.show();piro_next.hide();piro_play.css('width','0');}else{piro_play.css('width','40px');}
if(item.is('.last')&&item.is('.first')){piro_prev.add(piro_next).hide();$('.number').hide();piro_play.remove();}
$(piro_gallery).filter('.item').removeClass('item');item.addClass('item');$('.c_c').removeClass('unique');});});var piro_open=function(my_url){piro_play.add(piro_stop).hide();piro_close.add(caption).add(piro_next).add(piro_prev).css('visibility','hidden');if(main_cont.is(':visible')){$('.c_c div').children().fadeOut(300,function(){$('.c_c div').children().remove();load_img(my_url);});}else{$('.c_c div').children().remove();main_cont.show();bg_overlay.fadeIn(300,function(){load_img(my_url);});}}
var load_img=function(my_url){if(main_cont.is('.loading')){return;}
main_cont.addClass('loading');var img=new Image();img.onerror=function(){var main_cont_h=$(main_cont).height();main_cont.css({marginTop:parseInt($(document).scrollTop())-(main_cont_h/1.9)});$('.c_c div').append('<p class="err_mess">There seems to be an Error: <a href="#close" class="close_pirobox">Close Pirobox</a></p>');$('.close_pirobox').bind('click',function(c){c.preventDefault();piro_close.add(bg_overlay).add(main_cont).add(caption).add(piro_next).add(piro_prev).hide(0,function(){img.src='';});main_cont.removeClass('loading');});}
img.onload=function(){var imgH=img.height;var imgW=img.width;var main_cont_h=$(main_cont).height();var w_H=$(window).height();var w_W=$(window).width();$(img).height(imgH).width(imgW).hide();$('.c_c div').animate({height:imgH+'px',width:imgW+'px'},opt.my_speed);var fix=imgH/w_H*2.3;if(w_H<imgH){h_fix=fix;}else{h_fix=2;}
main_cont.animate({height:(imgH+40)+'px',width:(imgW+40)+'px',marginLeft:'-'+((imgW)/2+20)+'px',marginTop:parseInt($(document).scrollTop())-(imgH/h_fix)},opt.my_speed,function(){$('.piro_nav,.pirobox_caption').css({width:(imgW)+'px','margin-bottom':'10px'});$('.piro_nav').css('margin-left','-'+(imgW)/2+'px');var caption_height=caption.height();$('.c_c div').append(img);piro_close.css('display','block');piro_next.add(piro_prev).add(piro_close).css('visibility','visible');caption.css({'visibility':'visible','display':'block','opacity':'0.8','overflow':'hidden'});main_cont.hover(function(){caption.stop().fadeTo(200,0.8);},function(){caption.stop().fadeTo(200,0);});$(img).fadeIn(300);main_cont.removeClass('loading');if(opt.slideShow===true){piro_play.add(piro_stop).show();}else{piro_play.add(piro_stop).hide();}});}
img.src=my_url;$('html').bind("keyup",function(c){if(c.keyCode==27){c.preventDefault();if($(img).is(':visible')||$('.c_c>div>p>a').is('.close_pirobox')){$(piro_gallery).removeClass('slideshow').removeClass('item');piro_close.add(bg_overlay).add(main_cont).add(caption).add(piro_next).add(piro_prev).hide(0,function(){img.src='';});main_cont.removeClass('loading');clearTimeout(timer);$('.stop').remove();$('.c_c').append(piro_play);$('.sc_menu').css('display','none');$('ul.sc_menu li a').removeClass('img_active').css('opacity','0.4');piro_next.add(piro_prev).show().css({'top':'50%'});$(piro_gallery).children().fadeTo(100,1);}}});$('html').bind("keyup",function(e){if($('.item').is('.first')){}else if(e.keyCode==37){e.preventDefault();if($(img).is(':visible')){clearTimeout(timer);$('.stop').remove();$('.c_c').append(piro_play);piro_prev.click();}}});$('html').bind("keyup",function(z){if($('.item').is('.last')){}else if(z.keyCode==39){z.preventDefault();if($(img).is(':visible')){clearTimeout(timer);$('.stop').remove();$('.c_c').append(piro_play);piro_next.click();}}});var win_h=$(window).height();piro_stop.bind('click',function(x){x.preventDefault();clearTimeout(timer);$(piro_gallery).removeClass('slideshow');$('.stop').remove();$('.pirobox_down').append(piro_play);piro_next.add(piro_prev).css('width',my_nav_w+'px');});piro_play.bind('click',function(w){w.preventDefault();clearTimeout(timer);if($(img).is(':visible')){$(piro_gallery).addClass('slideshow');$('.play').remove();$('.pirobox_down').append(piro_stop);}
piro_next.add(piro_prev).css({'width':'0px'});return slideshow();});$(opt.close_all).bind('click',function(c){$(piro_gallery).removeClass('slideshow');clearTimeout(timer);if($(img).is(':visible')){c.preventDefault();piro_close.add(bg_overlay).add(main_cont).add(caption).add(piro_next).add(piro_prev).hide(0,function(){img.src='';});main_cont.removeClass('loading');$(piro_gallery).removeClass('slideshow');piro_next.add(piro_prev).css('width',my_nav_w+'px').hide();$('.stop').remove();$('.pirobox_down').append(piro_play);piro_play.hide();}});if(opt.slideShow===true){function slideshow(){if($(piro_gallery).filter('.item').is('.last')){clearTimeout(timer);$(piro_gallery).removeClass('slideshow');$('.stop').remove();$('.pirobox_down').append(piro_play);piro_next.add(piro_prev).css('width',my_nav_w+'px');}else if($(piro_gallery).is('.slideshow')&&$(img).is(':visible')){clearTimeout(timer);piro_next.click();}}
var timer=setInterval(slideshow,opt.slideSpeed*1000);}}}
start_pirobox();}})(jQuery);