(function($){if(!$.fn.c1){$.fn.c1=function(name,options){if(this.c1[name]) return this.c1[name].call(this,options);return this;}} $.fn.c1.gallery=function(options){options=$.extend({selector:'.gallery',speed:'normal',animation:'fade',zIndex:1},options);function _showImage(pos){var current=(options.position!=null?$(images.images[options.position]):null);var image=$(images.images[pos]);if(image.length==0) return;if(options.animation=='slide'){var list=$('ul',images.scroll);var offset=list.offset();var left=offset?(offset.left-image.offset().left):0;list.animate({'left':left+'px'},options.speed);}else{if(current) current.css('z-index',options.zIndex);image.css('z-index',options.zIndex+1).fadeIn(options.speed,function(){if(current) current.hide();});} if(thumbs.images[options.position]) $(thumbs.images[options.position]).removeClass(options.selector.replace('.','')+'-thumb-active');if(thumbs.images[pos]){var thumb=$(thumbs.images[pos]);thumb.addClass(options.selector.replace('.','')+'-thumb-active');var scroll=thumbs.scroll.offset();scroll.width=thumbs.scroll.width();scroll.right=scroll.left+scroll.width;var bounds=thumb.offset();bounds.width=thumb.outerWidth();bounds.right=bounds.left+bounds.width;var left=scroll.left+(scroll.width/2)-(bounds.width/2);var shift=left-bounds.left;if(shift!=0){var list=$('ul',thumbs.scroll);var left=parseInt(list.css('left'));left=(isNaN(left)?0:left)+shift;if(left>0) left=0;else if(left<(0-list.outerWidth()+scroll.width)) left=0-list.outerWidth()+scroll.width;list.animate({'left':left+'px'},options.speed);}} options.position=pos;$('a',images.prev)[pos==0?'hide':'show']();$('a',images.next)[pos>=(images.images.length-1)?'hide':'show']();} function _scrollThumbs(direction){var list=$('ul',thumbs.scroll);var left=parseInt(list.css('left'));left=Math.floor((isNaN(left)?0:left)-(thumbs.scrollWidth/2*direction));if(leftthumbs.bounds.left) left=thumbs.bounds.left;list.animate({'left':left+'px'},'slow');$('a',thumbs.prev)[left==thumbs.bounds.left?'hide':'show']();$('a',thumbs.next)[left==thumbs.bounds.right?'hide':'show']();} function _images(){var list=$('ul',images.scroll);var listHeight=0;if(options.animation=='slide'){var listWidth=0;var scrollWidth=images.scroll.width();images.images.each(function(){$(this).width(scrollWidth);listWidth+=$(this).width();});listHeight=list.width(listWidth).height();}else{images.images.each(function(){var height=$(this).height();if(height>listHeight) listHeight=height;});} images.scrollWidth=images.scroll.width();if(images.scroll.height()==0) images.scroll.height(listHeight);images.prev.append('');images.prev.find('a').click(function(){_showImage(options.position-1);return false;});images.next.append('');images.next.find('a').click(function(){_showImage(options.position+1);return false;});if(images.images.length>1) $('a',images.next).fadeIn(options.speed);} function _thumbs(){if(thumbs.images.length==0) return;var list=$('ul',thumbs.scroll);var listWidth=0;thumbs.images.each(function(){listWidth+=$(this).width();});list.width(listWidth);thumbs.scrollWidth=thumbs.scroll.width();if(thumbs.scroll.height()==0) thumbs.scroll.height(list.height());var listOffset=list.offset();var itemOffset=$('li:first-child',list).offset();thumbs.bounds={left:listOffset.left-itemOffset.left};thumbs.bounds.right=thumbs.bounds.left-listWidth+thumbs.scrollWidth;thumbs.prev.append('').find('a').hide().click(function(){_scrollThumbs(-1);return false;});thumbs.next.append('').find('a').hide().click(function(){_scrollThumbs(1);return false;});if(thumbs.bounds.right<0) $('a',thumbs.next).fadeIn(options.speed);} var images={images:$(options.selector+'-image',this),next:$(options.selector+'-image-next',this),prev:$(options.selector+'-image-prev',this),scroll:$(options.selector+'-image-scroll',this)};if(options.lightbox) $(options.selector+'-image a',this).c1('lightbox',options.lightbox);_images();var thumbs={images:$(options.selector+'-thumb',this),next:$(options.selector+'-thumb-next',this),prev:$(options.selector+'-thumb-prev',this),scroll:$(options.selector+'-thumb-scroll',this)};_thumbs();options.position=null;_showImage(0);if(images.images.length==0&&options.lightbox){$(options.selector+'-thumb a',this).c1('lightbox',options.lightbox);}else{$(options.selector+'-thumb a',this).each(function(i){$(this).click(function(){_showImage(i);return false;});});} return this;};})(jQuery);