/** * Name: piroBox v.1.2.1 * Date: November 2009 * Autor: Diego Valobra (http://www.pirolab.it),(http://www.diegovalobra.com) * Version: 1.2.1 * 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, scrollImage : null, pirobox_next : 'piro_next_out', pirobox_prev : 'piro_prev_out', radius : 4, close_all : '.piro_close,.piro_overlay', slideShow : null, slideSpeed : null //slideshow duration in seconds }, opt); function start_pirobox() { var corners = '
There seems to be an Error: Close Pirobox
'); $('.close_pirobox').bind('click',function() { $('.err_mess').remove(); main_cont.add(bg_overlay).fadeOut(opt.close_speed); main_cont.removeClass('loading'); $('.c_c').append(piro_play); return false; }); } 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(); if(imgH+100 > w_H || imgW+100 > w_W){ var new_img_W = imgW; var new_img_H = imgH; var _x = (imgW + 250)/w_W; var _y = (imgH + 250)/w_H; if ( _y > _x ){ new_img_W = Math.round(imgW * (1/_y)); new_img_H = Math.round(imgH * (1/_y)); } else { new_img_W = Math.round(imgW * (1/_x)); new_img_H = Math.round(imgH * (1/_x)); } imgH += new_img_H; imgW += new_img_W; $(img).height(new_img_H).width(new_img_W).hide(); $('.c_c div').animate({height:new_img_H+'px',width:new_img_W+'px'},opt.my_speed); main_cont.animate({ height : (new_img_H+20) + 'px' , width : (new_img_W+20) + 'px' , marginLeft : '-' +((new_img_W)/2+10) +'px', marginTop : parseInt($(document).scrollTop())-(new_img_H/1.9)-20},opt.my_speed, function(){ $('.piro_nav,.caption').css({width:(new_img_W)+'px'}); $('.piro_nav').css('margin-left','-'+(new_img_W+5)/2+'px'); var caption_height = caption.height(); caption.css({'bottom':'-'+(caption_height+5)+'px'}); $('.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'}); $(img).show().fadeIn(300); main_cont.removeClass('loading'); if(opt.slideShow == 'slideshow'){ piro_play.add(piro_stop).show(); }else{ piro_play.add(piro_stop).hide(); } }); }else{ $(img).height(imgH).width(imgW).hide(); $('.c_c div').animate({height:imgH+'px',width:imgW+'px'},opt.my_speed); main_cont.animate({ height : (imgH+20) + 'px' , width : (imgW+20) + 'px' , marginLeft : '-' +((imgW)/2+10) +'px', marginTop : parseInt($(document).scrollTop())-(imgH/1.9)-20},opt.my_speed, function(){ $('.piro_nav,.caption').css({width:(imgW)+'px'}); $('.piro_nav').css('margin-left','-'+(imgW+5)/2+'px'); var caption_height = caption.height(); caption.css({'bottom':'-'+(caption_height+5)+'px'}); $('.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'}); $(img).fadeIn(300); main_cont.removeClass('loading'); if(opt.slideShow == 'slideshow'){ piro_play.add(piro_stop).show(); }else{ piro_play.add(piro_stop).hide(); } }); } } img.src = my_url; var win_h = $(window).height(); var nav_h = $('.piro_prev_out').height(); $('.piro_prev_out').add('.piro_next_out').css({marginTop : parseInt($(document).scrollTop())+(win_h/nav_h-125)}); $('.caption p').css({'-moz-border-radius':opt.radius+'px','-khtml-border-radius':opt.radius+'px','-webkit-border-radius':opt.radius+'px','border-radius':opt.radius+'px'}); piro_stop.bind('click',function(x){ x.preventDefault(); clearTimeout(timer); $(piro_gallery).children().removeAttr('class'); $('.stop').remove(); $('.c_c').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).children().addClass(opt.slideShow); $('.play').remove(); $('.c_c').append(piro_stop); } piro_next.add(piro_prev).css({'width':'0px'}); return slideshow(); }); $(opt.close_all).bind('click',function(c) { clearTimeout(timer); if($(img).is(':visible')){ c.preventDefault(); piro_close.add(bg_overlay).add(main_cont).add(caption).add(piro_next).add(piro_prev).fadeOut(opt.close_speed); main_cont.removeClass('loading'); $(piro_gallery).children().removeAttr('class'); piro_next.add(piro_prev).css('width',my_nav_w+'px').hide(); $('.stop').remove(); $('.c_c').append(piro_play); piro_play.hide(); } }); function slideshow(){ clearTimeout(timer); if( $(piro_gallery).filter('.item').is('.last')){ $(piro_gallery).children().removeAttr('class'); piro_next.add(piro_prev).css('width',my_nav_w+'px'); $('.stop').remove(); $('.c_c').append(piro_play); piro_play.hide(); }else if($(piro_gallery).children().is('.' + opt.slideShow )){ piro_next.click(); } } var timer = setInterval(slideshow,opt.slideSpeed*1000 ); $().bind("keydown", function (c) { if (c.keyCode === 27) { c.preventDefault(); if($(img).is(':visible') || $('.c_c>div>p>a').is('.close_pirobox')){ piro_close.add(bg_overlay).add(main_cont).add(caption).add(piro_next).add(piro_prev).fadeOut(opt.close_speed); main_cont.removeClass('loading'); clearTimeout(timer); $(piro_gallery).children().removeAttr('class'); $('.stop').remove(); $('.c_c').append(piro_play); piro_next.add(piro_prev).css('width',my_nav_w+'px'); $(piro_gallery).add(piro_single).children().fadeTo(100,1); } } }).bind("keydown", function(e) { if ($('.c_c').is('.unique') || $('.item').is('.first')){ }else if($('.c_c').is('.c_c')&&(e.keyCode === 37)) { e.preventDefault(); if($(img).is(':visible')){ clearTimeout(timer); $(piro_gallery).children().removeAttr('class'); $('.stop').remove(); $('.c_c').append(piro_play); piro_next.add(piro_prev).css('width',my_nav_w+'px'); piro_prev.click(); } } if ($('.c_c').is('.unique') || $('.item').is('.last')){ }else if($('.c_c').is('.c_c')&&(e.keyCode === 39)) { e.preventDefault(); if($(img).is(':visible')){ clearTimeout(timer); $(piro_gallery).children().removeAttr('class'); $('.stop').remove(); $('.c_c').append(piro_play); piro_next.add(piro_prev).css('width',my_nav_w+'px'); piro_next.click(); } } }); $.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; } function scrollImage (){ if($(main_cont).is(':visible')){ window.onscroll = function (){ var main_cont_h = $(main_cont).height(); main_cont.css({ marginTop : parseInt($(this).scrollTop())-(main_cont_h/1.9)-10 }); var Nwin_h = $(window).height(); var Nnav_h = $('.piro_prev_out').height(); $('.piro_prev_out').add('.piro_next_out').css({marginTop : parseInt($(document).scrollTop())+(Nwin_h/Nnav_h-125)}); } } } if(opt.scrollImage == true){ return scrollImage(); } } } start_pirobox(); } })(jQuery);