(function($){$.fn.extend({infiniteCarousel:function(options)
{var defaults={transitionSpeed:1500,displayTime:6000,textholderHeight:.3,displayProgressBar:1,displayThumbnails:1,displayThumbnailNumbers:1,displayThumbnailBackground:1,thumbnailWidth:'20px',thumbnailHeight:'20px',thumbnailFontSize:'.7em'};var options=$.extend(defaults,options);return this.each(function(){var randID=Math.round(Math.random()*100000000);var o=options;var obj=$(this);var curr=1;var numImages=$('img',obj).length;var imgHeight=233;var imgWidth=920;var autopilot=1;$('p',obj).hide();$(obj).width(imgWidth).height(imgHeight);if(o.displayProgressBar)
{$(obj).append('<div id="progress'+randID+'" style="position:absolute;bottom:0;background:#bbb;left:'+$(obj).css('paddingLeft')+'"></div>');$('#progress'+randID).width(imgWidth).height(5).css('opacity','.5');}
$(obj).css({'overflow':'hidden','position':'relative'});$('li:last',obj).prependTo($('ul',obj));$('ul',obj).css('left',-imgWidth+'px');$('ul',obj).width(9999);$('ul',obj).css({'list-style':'none','margin':'0','padding':'0','position':'relative'});$('li',obj).css({'display':'inline','float':'left'});$(obj).append('<div id="textholder'+randID+'" class="textholder" style="position:absolute;bottom:0px;margin-bottom:'+-imgHeight*o.textholderHeight+'px;left:'+$(obj).css('paddingLeft')+'"></div>');var correctTHWidth=parseInt($('#textholder'+randID).css('paddingTop'));var correctTHHeight=parseInt($('#textholder'+randID).css('paddingRight'));$('#textholder'+randID).width(imgWidth-(correctTHWidth*2)).height((imgHeight*o.textholderHeight)-(correctTHHeight*2)).css({'opacity':'0.9'});showtext($('li:eq(1) p',obj).html());html='<div class="pause_btn" <a href="javascript:void(0);"><img id="pause_btn'+randID+'" /></a>';html+='<a href="javascript:void(0);"><img id="play_btn'+randID+'" /></a>';$(obj).append(html);if(o.displayThumbnails)
{$(obj).after('<div class="thumbs" id="thumbs'+randID+'" style="position:relative;overflow:auto;text-align:left;padding-top:5px;"></div>');for(i=0;i<=numImages-1;i++)
{thumb=$('img:eq('+(i+1)+')',obj).attr('src');$('#thumbs'+randID).append('<div class="thumb" id="thumb'+randID+'_'+(i+1)+'" style="cursor:pointer;display:inline;float:left;width:'+o.thumbnailWidth+';height:'+o.thumbnailHeight+';line-height:'+o.thumbnailHeight+';padding:0;overflow:hidden;text-align:center;border:2px solid #ccc;margin-right:4px;font-size:'+o.thumbnailFontSize+';font-family:Arial;color:#000;text-shadow:0 0 3px #fff">'+(i+1)+'</div>');if(i==0)$('#thumb'+randID+'_1').css({'border-color':'#ff0000'});}
thumb=$('img:first',obj).attr('src');$('#thumb'+randID+'_'+numImages).css({'background-image':'none'});$('#thumbs'+randID+' div.thumb:not(:first)').css({'opacity':'.65'});$('#thumbs'+randID+' div.thumb').hover(function(){$(this).animate({'opacity':.99},150)},function(){if(curr!=this.id.split('_')[1])$(this).animate({'opacity':.65},250)});$('#thumbs'+randID+' div').bind('click',thumbclick);if(!o.displayThumbnailNumbers)$('#thumbs'+randID+' div').text('');if(!o.displayThumbnailBackground)$('#thumbs'+randID+' div').css({'background-image':'none'});}
function thumbclick(event)
{target_num=this.id.split('_');if(curr!=target_num[1])
{$('#thumb'+randID+'_'+curr).css({'border-color':'#ccc'});$('#progress'+randID).stop().fadeOut();clearTimeout(clearInt);$('#thumbs'+randID+' div').css({'cursor':'default'}).unbind('click');autopilot=0;setTimeout(function(){$('#play_btn'+randID).fadeIn(250);},o.transitionSpeed);}
if(target_num[1]>curr)
{diff=target_num[1]-curr;anim('next',diff);autopilot=1;$('#play_btn'+randID).hide();clearInt=setInterval(function(){anim('next');},o.displayTime+o.transitionSpeed);}
if(target_num[1]<curr)
{diff=curr-target_num[1];anim('prev',diff);autopilot=1;$('#play_btn'+randID).hide();clearInt=setInterval(function(){anim('next');},o.displayTime+o.transitionSpeed);}}
function showtext(t)
{if(t!=null)
{$('#textholder'+randID).html(t).animate({marginBottom:'0px'},500);showminmax();}}
function showminmax()
{if(!autopilot)
{html='<img style="position:absolute;top:2px;right:18px;display:none;cursor:pointer" src="/js/infiniteCarousel/images/down.png" title="Minimize" alt="minimize" id="min" /><img style="position:absolute;top:2px;right:18px;display:none;cursor:pointer" src="/js/infiniteCarousel/images/up.png" title="Maximize" alt="maximize" id="max" />';html+='<img style="position:absolute;top:2px;right:6px;display:none;cursor:pointer" src="/js/infiniteCarousel/images/close.png" title="Close" alt="close" id="close" />';$('#textholder'+randID).append(html);$('#min').fadeIn(250).click(function(){$('#textholder'+randID).animate({marginBottom:(-imgHeight*o.textholderHeight)-(correctTHHeight*2)+24+'px'},500,function(){$("#min,#max").toggle();});});$('#max').click(function(){$('#textholder'+randID).animate({marginBottom:'0px'},500,function(){$("#min,#max").toggle();});});$('#close').fadeIn(250).click(function(){$('#textholder'+randID).animate({marginBottom:(-imgHeight*o.textholderHeight)-(correctTHHeight*2)+'px'},500);});}}
function borderpatrol(elem)
{$('#thumbs'+randID+' div').css({'border-color':'#ccc'}).animate({opacity:0.65},500);setTimeout(function(){elem.css({'border-color':'#ff0000'}).animate({'opacity':.99},500);},o.transitionSpeed);}
function anim(direction,dist)
{$('#textholder'+randID).animate({marginBottom:(-imgHeight*o.textholderHeight)-(correctTHHeight*2)+'px'},500);$('#pause_btn'+randID).fadeOut(250);$('#play_btn'+randID).fadeOut(250);if(direction=="next")
{if(curr==numImages)curr=0;if(dist>1)
{borderpatrol($('#thumb'+randID+'_'+(curr+dist)));$('li:lt(2)',obj).clone().insertAfter($('li:last',obj));$('ul',obj).animate({left:-imgWidth*(dist+1)},o.transitionSpeed,function(){$('li:lt(2)',obj).remove();for(j=1;j<=dist-2;j++)
{$('li:first',obj).clone().insertAfter($('li:last',obj));$('li:first',obj).remove();}
$('#play_btn'+randID).fadeIn(250);showtext($('li:eq(1) p',obj).html());$(this).css({'left':-imgWidth});curr=curr+dist;$('#thumbs'+randID+' div').bind('click',thumbclick).css({'cursor':'pointer'});$('#progress'+randID).width(imgWidth).height(5);$('#progress'+randID).animate({'width':0},o.displayTime,function(){$('#pause_btn'+randID).fadeOut(50);setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed)});});}
else
{borderpatrol($('#thumb'+randID+'_'+(curr+1)));$('#thumbs'+randID+' div').css({'cursor':'default'}).unbind('click');$('li:first',obj).clone().insertAfter($('li:last',obj));$('ul',obj).animate({left:-imgWidth*2},o.transitionSpeed,function(){$('li:first',obj).remove();$('ul',obj).css('left',-imgWidth+'px');if(autopilot)$('#pause_btn'+randID).fadeIn(250);showtext($('li:eq(1) p',obj).html());if(autopilot)
{$('#progress'+randID).width(imgWidth).height(5);$('#progress'+randID).animate({'width':0},o.displayTime,function(){$('#pause_btn'+randID).fadeOut(50);setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed)});}
curr=curr+1;$('#thumbs'+randID+' div').bind('click',thumbclick).css({'cursor':'pointer'});});}}
if(direction=="prev")
{if(dist>1)
{borderpatrol($('#thumb'+randID+'_'+(curr-dist)));$('li:gt('+(numImages-(dist+1))+')',obj).clone().insertBefore($('li:first',obj));$('ul',obj).css({'left':(-imgWidth*(dist+1))}).animate({left:-imgWidth},o.transitionSpeed,function(){$('li:gt('+(numImages-1)+')',obj).remove();$('#play_btn'+randID).fadeIn(250);$('#progress'+randID).width(imgWidth).height(5);$('#progress'+randID).animate({'width':0},o.displayTime,function(){$('#pause_btn'+randID).fadeOut(50);setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed)});showtext($('li:eq(1) p',obj).html());curr=curr-dist;$('#thumbs'+randID+' div').bind('click',thumbclick).css({'cursor':'pointer'});});}
else
{borderpatrol($('#thumb'+randID+'_'+(curr-1)));$('#thumbs'+randID+' div').css({'cursor':'default'}).unbind('click');$('li:last',obj).clone().insertBefore($('li:first',obj));$('ul',obj).css('left',-imgWidth*2+'px').animate({left:-imgWidth},o.transitionSpeed,function(){$('li:last',obj).remove();if(autopilot)$('#pause_btn'+randID).fadeIn(250);$('#progress'+randID).width(imgWidth).height(5);$('#progress'+randID).animate({'width':0},o.displayTime,function(){$('#pause_btn'+randID).fadeOut(50);setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed)});showtext($('li:eq(1) p',obj).html());curr=curr-1;if(curr==0)curr=numImages;$('#thumbs'+randID+' div').bind('click',thumbclick).css({'cursor':'pointer'});});}}}
var clearInt=setInterval(function(){anim('next');},o.displayTime+o.transitionSpeed);$('#progress'+randID).animate({'width':0},o.displayTime+o.transitionSpeed,function(){$('#pause_btn'+randID).fadeOut(100);setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed)});});}});})(jQuery);
