
(function($){$.fn.popeye=function(options){var obj=$(this);var enPlaceholder=$('<div />');var opts=$.extend({},$.fn.popeye.defaults,options);function debug(text){if(window.console&&window.console.log){window.console.log(text);}};return this.each(function(){function display(i,transition){transition=transition||false;var stageIm={backgroundImage:'url('+im.small[i]+')',backgroundPosition:'center'};if(transition){ppyStage.fadeTo(100,0,function(){$(this).css(stageIm).fadeTo(100,1);});}
else{ppyStage.css(stageIm);}
ppyStage.click(function(){ppyStage.unbind();enlarge(cur);});ppyCap.text(im.title[i]);ppyTotal.text(' '+tot);ppyCur.text((cur+1)+' ');};function enlarge(i){var imHeight=obj.outerHeight();var imWidth=obj.outerWidth();var imTop=obj.offset().top-parseInt(obj.css('marginTop'),10);var imLeft=obj.offset().left-parseInt(obj.css('marginLeft'),10);var imRight=$(window).width()-(obj.offset().left+imWidth)-parseInt(obj.css('marginRight'),10);var imFloat=obj.css('float');var imMarginTop=obj.css('margin-top');var imMarginRight=obj.css('margin-right');var imMarginBottom=obj.css('margin-bottom');var imMarginLeft=obj.css('margin-left');var cssEnlargedPpy={position:'absolute',top:imTop,zIndex:'100'};if(opts.direction=='left'){cssEnlargedPpy.left=imLeft;}
else if(opts.direction=='right'){cssEnlargedPpy.right=imRight;}
var cssPlaceholder={height:imHeight,width:imWidth,float:imFloat,marginTop:imMarginTop,marginRight:imMarginRight,marginBottom:imMarginBottom,marginLeft:imMarginLeft};enPlaceholder.css(cssPlaceholder);obj.after(enPlaceholder);obj.prependTo($('body'));obj.css(cssEnlargedPpy);obj.addClass(opts.eclass);ppyToolsWrap.hide();ppyStageWrap.addClass(opts.lclass);ppyStage.fadeTo((opts.duration/2),0);var preloader=new Image();preloader.src=im.large[i];preloader.onload=function(){var imWidth=preloader.width;var imHeight=preloader.height;var cssStageIm={backgroundImage:'url('+im.large[i]+')',backgroundPosition:'left top'};var cssStageTo={width:imWidth,height:imHeight};ppyStage.animate(cssStageTo,{queue:false,duration:opts.duration,easing:opts.easing,complete:function(){ppyStage.click(function(){ppyStage.unbind();ppyStage.removeAttr('title');compact(cur);});ppyStage.attr('title',opts.clabel);$(this).css(cssStageIm).fadeTo((opts.duration/2),1);}});};};function compact(i){ppyStage.fadeTo((opts.duration/2),0).animate(cssCompactStage,{queue:false,duration:opts.duration,easing:opts.easing,complete:function(){enPlaceholder.after(obj);obj.css(cssCompactPpy);ppyToolsWrap.show();obj.removeClass(opts.eclass);enPlaceholder.remove();display(cur);$(this).fadeTo((opts.duration/2),1,function(){ppyStageWrap.removeClass(opts.lclass);});}});};var im={small:[],title:[],large:[],width:[],height:[]};var maxWidth=1000;var maxHeight=1000;obj.find('li').each(function(i){im.small[i]=$(this).find('img').attr('src');im.title[i]=$(this).find('img').attr('alt');im.large[i]=$(this).find('a').attr('href');im.width[i]=$(this).find('img').width();im.height[i]=$(this).find('img').height();if(maxWidth>im.width[i]){maxWidth=im.width[i];}
if(maxHeight>im.height[i]){maxHeight=im.height[i];}});if(opts.stageW){maxWidth=opts.stageW;}
if(opts.stageH){maxHeight=opts.stageH;}
var cur=0;var tot=im.small.length;obj.find('ul').remove();var ppyStageWrap=$('<div class="popeye-stagewrap" />');var ppyStage=$('<div class="popeye-stage" />');var ppyToolsWrap=$('<div class="popeye-tools-wrap" />');var ppyTools=$('<div class="popeye-tools" />');var ppyCount=$('<span class="popeye-count" />');var ppyCur=$('<em class="popeye-cur" />');var ppyTotal=$('<em class="popeye-total" />');var ppyPrev=$('<a href="#" class="popeye-prev">'+opts.plabel+'</a>');var ppyNext=$('<a href="#" class="popeye-next">'+opts.nlabel+'</a>');var ppyEnlarge=$('<a href="#" class="popeye-enlarge">'+opts.blabel+'</a>');var ppyCap=$('<div class="popeye-cap" />');obj.append(ppyStageWrap);ppyStageWrap.append(ppyStage);ppyStageWrap.after(ppyToolsWrap);ppyToolsWrap.append(ppyTools);ppyTools.append(ppyPrev);ppyTools.append(ppyCount);ppyCount.append(ppyCur);ppyCount.append(ppyTotal);ppyCur.after(opts.oflabel);ppyTools.append(ppyEnlarge);ppyTools.append(ppyNext);ppyTools.after(ppyCap);var cssCompactPpy={position:'relative',overflow:'hidden',height:'auto',overflow:'hidden',top:0};if(opts.direction=='left'){cssCompactPpy.left=0;}
else if(opts.direction=='right'){cssCompactPpy.right=0;}
var cssCompactStage={width:maxWidth,height:maxHeight};var cssPpyCap={width:maxWidth};var ppyToolsWidth=parseInt(maxWidth);if(!isNaN(parseInt(ppyTools.css('borderLeftWidth'),10))){ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('borderLeftWidth'),10);}
if(!isNaN(parseInt(ppyTools.css('borderRightWidth'),10))){ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('borderRightWidth'),10);}
ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('paddingLeft'),10);ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('paddingRight'),10);if(!isNaN(parseInt(ppyTools.css('marginLeft'),10))){ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('marginLeft'),10);}
if(!isNaN(parseInt(ppyTools.css('marginRight'),10))){ppyToolsWidth=ppyToolsWidth-parseInt(ppyTools.css('marginRight'),10);}
ppyToolsWidth=ppyToolsWidth+'px';var cssPpyTools={width:ppyToolsWidth};obj.css(cssCompactPpy);if(opts.jclass){obj.addClass(opts.jclass);}
ppyStage.css(cssCompactStage);ppyCap.css(cssPpyCap);ppyTools.css(cssPpyTools);display(cur);ppyPrev.click(function(){if(cur<=0){cur=tot-1;}else{cur--;}
display(cur,true);return false;});ppyNext.click(function(){if(cur<(tot-1)){cur++;}else{cur=0;}
display(cur,true);return false;});ppyEnlarge.click(function(){ppyStage.unbind();enlarge(cur);return false;});});};$.fn.popeye.defaults={jclass:'popeye-hasjs',eclass:'popeye-haspopped',lclass:'popeye-isloading',direction:'left',duration:400,easing:'swing',nlabel:'next',plabel:'previous',oflabel:'of',blabel:'enlarge',clabel:'Click to close'};})(jQuery);