/* ------------------------------------------------------------------------ Class: prettyPhoto Use: Lightbox clone for jQuery Author: Stephane Caron (http://www.no-margin-for-errors.com) Version: 2.2.2 ------------------------------------------------------------------------- */ (function($){$.fn.prettyPhoto=function(settings){var isSet=false;var setCount=0;var setPosition=0;var arrayPosition=0;var hasTitle=false;var caller=0;var doresize=true;var imagesArray=[];$(window).scroll(function(){_centerPicture()});$(window).resize(function(){_centerPicture();_resizeOverlay()});$(document).keyup(function(e){switch(e.keyCode){case 37:if(setPosition==1)return;changePicture('previous');break;case 39:if(setPosition==setCount)return;changePicture('next');break;case 27:close();break}});settings=$.extend({animationSpeed:'normal',padding:40,opacity:0.35,showTitle:true,allowresize:true,counter_separator_label:'/'},settings);$(this).each(function(){imagesArray[imagesArray.length]=this;$(this).bind('click',function(){open(this);return false})});function open(el){caller=$(el);theRel=$(caller).attr('rel');galleryRegExp=/\[(?:.*)\]/;theGallery=galleryRegExp.exec(theRel);contentType="image";if($(caller).attr('href').indexOf('.swf')>0){hasTitle=false;contentType='flash'};isSet=false;setCount=0;for(i=0;i1)isSet=true;if($(imagesArray[i]).attr('href')==$(el).attr('href')){setPosition=setCount;arrayPosition=i}}};_buildOverlay(isSet);$('div.pictureHolder p.currentTextHolder').text(setPosition+settings.counter_separator_label+setCount);_centerPicture();$('div.pictureHolder #fullResImageContainer').hide();$('.loaderIcon').show();(contentType=='image')?_preload():_writeFlash()};showimage=function(width,height,containerWidth,containerHeight,contentHeight,contentWidth,resized){$('.loaderIcon').hide();var scrollPos=_getScroll();if($.browser.opera){windowHeight=window.innerHeight;windowWidth=window.innerWidth}else{windowHeight=$(window).height();windowWidth=$(window).width()};$('div.pictureHolder .content').animate({'height':contentHeight,'width':containerWidth},settings.animationSpeed);projectedTop=scrollPos['scrollTop']+((windowHeight/2)-(containerHeight/2));if(projectedTop<0)projectedTop=0+$('div.prettyPhotoTitle').height();$('div.pictureHolder').animate({'top':projectedTop,'left':((windowWidth/2)-(containerWidth/2)),'width':containerWidth},settings.animationSpeed,function(){$('#fullResImage').attr({'width':width,'height':height});$('div.pictureHolder').width(containerWidth);$('div.pictureHolder .hoverContainer').height(height).width(width);_shownav();$('div.pictureHolder #fullResImageContainer').fadeIn(settings.animationSpeed);if(resized)$('a.expand,a.contract').fadeIn(settings.animationSpeed)})};function changePicture(direction){if(direction=='previous'){arrayPosition--;setPosition--}else{arrayPosition++;setPosition++};if(!doresize)doresize=true;$('div.pictureHolder .hoverContainer,div.pictureHolder .details').fadeOut(settings.animationSpeed);$('div.pictureHolder #fullResImageContainer').fadeOut(settings.animationSpeed,function(){$('.loaderIcon').show();_preload()});_hideTitle();$('a.expand,a.contract').fadeOut(settings.animationSpeed,function(){$(this).removeClass('contract').addClass('expand')})};function close(){$('div.pictureHolder,div.prettyPhotoTitle').fadeOut(settings.animationSpeed,function(){$('div.prettyPhotoOverlay').fadeOut(settings.animationSpeed,function(){$('div.prettyPhotoOverlay,div.pictureHolder,div.prettyPhotoTitle').remove();if($.browser.msie&&$.browser.version==6){$('select').css('visibility','visible')}})})};function _checkPosition(){if(setPosition==setCount){$('div.pictureHolder a.next').css('visibility','hidden');$('div.pictureHolder a.arrow_next').addClass('disabled').unbind('click')}else{$('div.pictureHolder a.next').css('visibility','visible');$('div.pictureHolder a.arrow_next.disabled').removeClass('disabled').bind('click',function(){changePicture('next');return false})};if(setPosition==1){$('div.pictureHolder a.previous').css('visibility','hidden');$('div.pictureHolder a.arrow_previous').addClass('disabled').unbind('click')}else{$('div.pictureHolder a.previous').css('visibility','visible');$('div.pictureHolder a.arrow_previous.disabled').removeClass('disabled').bind('click',function(){changePicture('previous');return false})};$('div.pictureHolder p.currentTextHolder').text(setPosition+settings.counter_separator_label+setCount);(isSet)?$c=$(imagesArray[arrayPosition]):$c=$(caller);if($c.attr('title')){$('div.pictureHolder .description').show().html(unescape($c.attr('title')))}else{$('div.pictureHolder .description').hide().text('')};if($c.find('img').attr('alt')&&settings.showTitle){hasTitle=true;$('div.prettyPhotoTitle .prettyPhotoTitleContent').html(unescape($c.find('img').attr('alt')))}else{hasTitle=false}};function _fitToViewport(width,height){hasBeenResized=false;$('div.pictureHolder .details').width(width);$('div.pictureHolder .details p.description').width(width-parseFloat($('div.pictureHolder a.close').css('width')));contentHeight=height+parseFloat($('div.pictureHolder .details').height())+parseFloat($('div.pictureHolder .details').css('margin-top'))+parseFloat($('div.pictureHolder .details').css('margin-bottom'));contentWidth=width;containerHeight=height+parseFloat($('div.prettyPhotoTitle').height())+parseFloat($('div.pictureHolder .top').height())+parseFloat($('div.pictureHolder .bottom').height());containerWidth=width+settings.padding;imageWidth=width;imageHeight=height;if($.browser.opera){windowHeight=window.innerHeight;windowWidth=window.innerWidth}else{windowHeight=$(window).height();windowWidth=$(window).width()};if(((containerWidth>windowWidth)||(containerHeight>windowHeight))&&doresize&&settings.allowresize){hasBeenResized=true;if((containerWidth>windowWidth)&&(containerHeight>windowHeight)){var xscale=(containerWidth+200)/windowWidth;var yscale=(containerHeight+200)/windowHeight}else{var xscale=windowWidth/containerWidth;var yscale=windowHeight/containerHeight}if(yscale>xscale){imageWidth=Math.round(width*(1/yscale));imageHeight=Math.round(height*(1/yscale))}else{imageWidth=Math.round(width*(1/xscale));imageHeight=Math.round(height*(1/xscale))};contentHeight=imageHeight+parseFloat($('div.pictureHolder .details').height())+parseFloat($('div.pictureHolder .details').css('margin-top'))+parseFloat($('div.pictureHolder .details').css('margin-bottom'));contentWidth=imageWidth;containerHeight=imageHeight+parseFloat($('div.prettyPhotoTitle').height())+parseFloat($('div.pictureHolder .top').height())+parseFloat($('div.pictureHolder .bottom').height());containerWidth=imageWidth+settings.padding;$('div.pictureHolder .details').width(contentWidth);$('div.pictureHolder .details p.description').width(contentWidth-parseFloat($('div.pictureHolder a.close').css('width')))};return{width:imageWidth,height:imageHeight,containerHeight:containerHeight,containerWidth:containerWidth,contentHeight:contentHeight,contentWidth:contentWidth,resized:hasBeenResized}};function _centerPicture(){if($('div.pictureHolder').size()>0){var scrollPos=_getScroll();if($.browser.opera){windowHeight=window.innerHeight;windowWidth=window.innerWidth}else{windowHeight=$(window).height();windowWidth=$(window).width()};if(doresize){projectedTop=(windowHeight/2)+scrollPos['scrollTop']-($('div.pictureHolder').height()/2);if(projectedTop<0)projectedTop=0+$('div.prettyPhotoTitle').height();$('div.pictureHolder').css({'top':projectedTop,'left':(windowWidth/2)+scrollPos['scrollLeft']-($('div.pictureHolder').width()/2)});$('div.prettyPhotoTitle').css({'top':$('div.pictureHolder').offset().top-$('div.prettyPhotoTitle').height(),'left':$('div.pictureHolder').offset().left+(settings.padding/2)})}}};function _shownav(){if(isSet)$('div.pictureHolder .hoverContainer').fadeIn(settings.animationSpeed);$('div.pictureHolder .details').fadeIn(settings.animationSpeed);_showTitle()};function _showTitle(){if(settings.showTitle&&hasTitle){$('div.prettyPhotoTitle').css({'top':$('div.pictureHolder').offset().top,'left':$('div.pictureHolder').offset().left+(settings.padding/2),'display':'block'});$('div.prettyPhotoTitle div.prettyPhotoTitleContent').css('width','auto');if($('div.prettyPhotoTitle').width()>$('div.pictureHolder').width()){$('div.prettyPhotoTitle div.prettyPhotoTitleContent').css('width',$('div.pictureHolder').width()-(settings.padding*2))}else{$('div.prettyPhotoTitle div.prettyPhotoTitleContent').css('width','')};$('div.prettyPhotoTitle').animate({'top':($('div.pictureHolder').offset().top-22)},settings.animationSpeed)}};function _hideTitle(){$('div.prettyPhotoTitle').animate({'top':($('div.pictureHolder').offset().top)},settings.animationSpeed,function(){$(this).css('display','none')})};function _preload(){_checkPosition();imgPreloader=new Image();nextImage=new Image();if(isSet)nextImage.src=$(imagesArray[arrayPosition+1]).attr('href');prevImage=new Image();if(isSet&&imagesArray[arrayPosition-1])prevImage.src=$(imagesArray[arrayPosition-1]).attr('href');$('div.pictureHolder .content').css('overflow','hidden');if(isSet){$('div.pictureHolder #fullResImage').attr('src',$(imagesArray[arrayPosition]).attr('href'))}else{$('div.pictureHolder #fullResImage').attr('src',$(caller).attr('href'))};imgPreloader.onload=function(){var correctSizes=_fitToViewport(imgPreloader.width,imgPreloader.height);imgPreloader.width=correctSizes['width'];imgPreloader.height=correctSizes['height'];setTimeout('showimage(imgPreloader.width,imgPreloader.height,'+correctSizes["containerWidth"]+','+correctSizes["containerHeight"]+','+correctSizes["contentHeight"]+','+correctSizes["contentWidth"]+','+correctSizes["resized"]+')',500)};(isSet)?imgPreloader.src=$(imagesArray[arrayPosition]).attr('href'):imgPreloader.src=$(caller).attr('href')};function _getScroll(){scrollTop=window.pageYOffset||document.documentElement.scrollTop||0;scrollLeft=window.pageXOffset||document.documentElement.scrollLeft||0;return{scrollTop:scrollTop,scrollLeft:scrollLeft}};function _resizeOverlay(){$('div.prettyPhotoOverlay').css({'height':$(document).height(),'width':$(window).width()})};function _writeFlash(){flashParams=$(caller).attr('rel').split(';');$(flashParams).each(function(i){if(flashParams[i].indexOf('width')>=0)flashWidth=flashParams[i].substring(flashParams[i].indexOf('width')+6,flashParams[i].length);if(flashParams[i].indexOf('height')>=0)flashHeight=flashParams[i].substring(flashParams[i].indexOf('height')+7,flashParams[i].length);if(flashParams[i].indexOf('flashvars')>=0)flashVars=flashParams[i].substring(flashParams[i].indexOf('flashvars')+10,flashParams[i].length)});$('.pictureHolder #fullResImageContainer').append('');$('#fullResImage').hide();contentHeight=parseFloat(flashHeight)+parseFloat($('div.pictureHolder .details').height())+parseFloat($('div.pictureHolder .details').css('margin-top'))+parseFloat($('div.pictureHolder .details').css('margin-bottom'));contentWidth=parseFloat(flashWidth)+parseFloat($('div.pictureHolder .details').width())+parseFloat($('div.pictureHolder .details').css('margin-left'))+parseFloat($('div.pictureHolder .details').css('margin-right'));containerHeight=contentHeight+parseFloat($('div.pictureHolder .top').height())+parseFloat($('div.pictureHolder .bottom').height());containerWidth=parseFloat(flashWidth)+parseFloat($('div.pictureHolder .content').css("padding-left"))+parseFloat($('div.pictureHolder .content').css("padding-right"))+settings.padding;setTimeout('showimage('+flashWidth+','+flashHeight+','+containerWidth+','+containerHeight+','+contentHeight+','+contentWidth+')',500)};function _buildOverlay(){backgroundDiv="
";$('body').append(backgroundDiv);$('div.prettyPhotoOverlay').css('height',$(document).height()).bind('click',function(){close()});pictureHolder='
Expand
Close

';titleHolder='
';$('body').append(pictureHolder).append(titleHolder);$('.pictureHolder,.titleHolder').css({'opacity':0});$('a.close').bind('click',function(){close();return false});$('a.expand').bind('click',function(){if($(this).hasClass('expand')){$(this).removeClass('expand').addClass('contract');doresize=false}else{$(this).removeClass('contract').addClass('expand');doresize=true};_hideTitle();$('div.pictureHolder .hoverContainer,div.pictureHolder #fullResImageContainer').fadeOut(settings.animationSpeed);$('div.pictureHolder .details').fadeOut(settings.animationSpeed,function(){_preload()});return false});$('.pictureHolder .previous,.pictureHolder .arrow_previous').bind('click',function(){changePicture('previous');return false});$('.pictureHolder .next,.pictureHolder .arrow_next').bind('click',function(){changePicture('next');return false});$('.hoverContainer').css({'margin-left':settings.padding/2});if(!isSet){$('.hoverContainer,.nav').hide()};if($.browser.msie&&$.browser.version==6){$('select').css('visibility','hidden')};$('div.prettyPhotoOverlay').css('opacity',0).fadeTo(settings.animationSpeed,settings.opacity,function(){$('div.pictureHolder').css('opacity',0).fadeIn(settings.animationSpeed,function(){$('div.pictureHolder').attr('style','left:'+$('div.pictureHolder').css('left')+';top:'+$('div.pictureHolder').css('top')+';')})})}}})(jQuery);