(function($){Selector=(!window.Selector)?{}:window.Selector;var THUMB_CONTAINER_HEIGHT=95;var THUMB_HOVER_IN_DELAY=50;var THUMB_HOVER_OUT_DELAY=100;var THUMB_HOVER_OFFSET_TOP=105;var THUMB_HOVER_OFFSET_LEFT=75;var THUMB_HOVER_HEIGHT=77;var THUMB_HOVER_X_PADDING=20;var THUMB_HOVER_ARROW_OFFSET_BOTTOM=2;var THUMB_HOVER_ARROW_OFFSET_LEFT=72;var THUMB_HOVER_MAX_WIDTH=175;var THUMB_HOVER_MARGINS=18;var CAPTION_TOP_PADDING=10;var CAPTION_MAX_LENGTH=100;var IE6_IMAGES_CONTAINER_HEIGHT=330;var IE6_CAPTION_ALLOWANCE=22;var IMAGE_LOAD_TIMEOUT=750;var IMAGE_MARGINS=20;var cssWidth=function(element){var width=parseInt(element.css('width').replace(/px/,''));return width};var cssHeight=function(element){var height=parseInt(element.css('height').replace(/px/,''));return height};Selector.productImager={render:function($context){var self=this,$container=($context)?$('#product_display #images',$context):$('#product_display #images'),$images=($context)?$('#product_display #images img.product_image',$context):$('#product_display #images img.product_image'),$spinner=($context)?$('#product_display #images #spinner',$context):$('#product_display #images #spinner'),count=0;self.$selected=null;self.fitToTallestImage($container,$images);$spinner.css('marginTop',($container.height()/2)-(cssHeight($spinner)/2)+'px').show();$container.data('initHeight',$container.height()).data('captionOffset',0);$images.each(function(){var $image=$(this),img=new Image(),first=((++count)==1);img.src=$image.attr('src');if($image.attr('title')){$caption=self.addCaption($container,$image,img);if(!$.browser.msie&&!$.browser.version!='6.0'){if($caption.data('height')>$container.data('captionOffset')){var containerHeight=$container.data('initHeight')+$caption.data('height');$container.height(containerHeight).data('captionOffset',$caption.data('height'))}}else if($container.data('captionOffset')==0)$container.height(new Number(IE6_IMAGES_CONTAINER_HEIGHT+IE6_CAPTION_ALLOWANCE))};$image.bind('show',function(e,callback){var func=(typeof callback=='function')?callback:function(){};$(this).fadeIn('slow',func)}).bind('hide',function(e,callback){var func=(typeof callback=='function')?callback:function(){};$(this).fadeOut('fast',func)});$image.data('index',(count-1)).load(function(){var $caption=$image.data('caption'),captionOffset=0;if($caption)captionOffset=$caption.data('height');if(first){$spinner.hide();$image.trigger('show')}});if(first){setTimeout(function(){if($image.is(':hidden'))$image.trigger('load')},IMAGE_LOAD_TIMEOUT)}});if($images.length>1)self.imagesNavigation($container,$images)},fitToTallestImage:function($container,$images){var maxHeight=0,self=this;this.tallestImage=false;$.each($images,function(){var $image=$(this),height=cssHeight($image);if(height>maxHeight){maxHeight=height;self.tallestImage=$image}});if(maxHeight>0)$container.height(maxHeight+IMAGE_MARGINS)},addCaption:function($container,$image,thumb){var $caption=$('<div />').addClass('caption'),text=$image.attr('title');trimmedText=(text.length>CAPTION_MAX_LENGTH)?text.substring(0,CAPTION_MAX_LENGTH).trim().concat('...'):text;$caption.html(this.limitedMarkdownParse(trimmedText));$container.append($caption);$caption.data('height',$caption.height()+CAPTION_TOP_PADDING).hide();$image.attr('title','').data('caption',$caption).bind('show',function(e){$caption.fadeIn('slow')}).bind('hide',function(e){$caption.fadeOut('fast')});return $caption},limitedMarkdownParse:function(string){return string.replace(/\*\*([^\*]*)\*\*/g,'<strong>$1</strong>').replace(/\*([^\*]*)\*/g,'<em>$1</em>').replace(/__([^_]*)__/g,'<strong>$1</strong>').replace(/_([^_]*)_/g,'<em>$1</em>')},imagesNavigation:function($container,$images){var self=this,$more=$('<div />').attr('id','more_images');$container.after($more);var $prev=$('<a />').addClass('prev').attr('href','#prev').click(function(e){e.preventDefault();var $prevImage=self.$selected.prev('img');if($prevImage.length>0)self.selectImage($prevImage)}).text('Previous Image');var $next=$('<a />').addClass('next').attr('href','#next').click(function(e){e.preventDefault();var $nextImage=self.$selected.next('img');if($nextImage.length>0)self.selectImage($nextImage)}).text('Next Image');$more.append($prev);var count=0;$images.each(function(){var $image=$(this),first=((++count)==1),$activeThumb=null;$image.data('thumb_hover',false);var $link=$('#'+$image.attr('id')+'_thumb');var thumb=new Image();thumb.src=$link.attr('href');var thumbWidth=$link.attr('width');var thumbHeight=$link.attr('height');var $link=$('<a />').addClass('img_preview').click(function(){self.selectImage($image)}).hover(function(){window.setTimeout(function(){$image.data('thumb_hover',true).trigger('show_thumb')},THUMB_HOVER_IN_DELAY)},function(){window.setTimeout(function(){$image.data('thumb_hover',false).trigger('hide_thumb')},THUMB_HOVER_OUT_DELAY)}).text('Select Image');$image.bind('show_thumb',function(){if(self.$selected.attr('id')!=$image.attr('id')){if($activeThumb!=null)$activeThumb.trigger('remove_thumb');var $thumb=$('<div />').addClass('thumb'),$img=$('<img />').attr('src',thumb.src);var pad=(THUMB_CONTAINER_HEIGHT-thumb.height)/2;$img.css('marginTop',pad+'px');var shrinkOffset=(THUMB_HOVER_MAX_WIDTH-(thumb.width+THUMB_HOVER_X_PADDING))/2;$thumb.append($img).css('top',$link.offset().top-THUMB_HOVER_OFFSET_TOP).css('left',$link.offset().left-THUMB_HOVER_OFFSET_LEFT+shrinkOffset).css('width',thumbWidth+'px').css('height',(new Number(thumbHeight)+THUMB_HOVER_MARGINS)+'px').css('cursor','pointer').click(function(){self.selectImage($image)});$more.append($thumb);var $arrow=$('<div />').addClass('thumb_arrow').css('cursor','pointer').click(function(){self.selectImage($image)});$arrow.css('top',$thumb.offset().top+$thumb.height()+THUMB_HOVER_ARROW_OFFSET_BOTTOM).css('left',$thumb.offset().left+THUMB_HOVER_ARROW_OFFSET_LEFT-shrinkOffset).css('paddingBottom','5px');$more.append($arrow);var over=function(){$(this).data('hover',true)};var out=function(){var $this=$(this);window.setTimeout(function(){$this.data('hover',false);$image.trigger('hide_thumb')},THUMB_HOVER_OUT_DELAY)};$image.data('thumb',{t:$thumb.data('hover',false).hover(over,out),a:$arrow.data('hover',false).hover(over,out)});if($activeThumb==null)$activeThumb=$image}}).bind('hide_thumb',function(){var data=$image.data('thumb');if(data){var $thumb=data.t,$arrow=data.a;if(!$image.data('thumb_hover')&&!$thumb.data('hover')&&!$arrow.data('hover'))$image.trigger('remove_thumb')}}).bind('remove_thumb',function(){var data=$image.data('thumb');if(data){var $thumb=data.t,$arrow=data.a;$thumb.remove();$arrow.remove()}});if(first){self.$selected=$image;$link.addClass('img_selected')};$more.append($link)});$more.append($next);this.$images=$images;this.$more=$more},selectImage:function($image){var self=this;if(this.$selected.attr('id')==$image.attr('id'))return false;$('.img_selected').removeClass('img_selected');this.$selected.trigger('hide',function(){$image.trigger('show')});this.$selected=$image;this.$more.find('.thumb, .thumb_arrow').remove();this.$more.find('.img_preview:eq('+$image.data('index')+')').addClass('img_selected');return true}}})(jQuery)