(function($){$.fn.extend({infiniteCarousel:function(options)
{var defaults={transitionSpeed:1500,displayTime:6000,textholderHeight:.2,displayProgressBar:0,displayThumbnails:0,displayThumbnailNumbers:1,displayThumbnailBackground:1,thumbnailWidth:'22px',thumbnailHeight:'21px',thumbnailFontSize:'.9em'};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=$('img:first',obj).height();var imgWidth=$('img:first',obj).width();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({'backgroundColor':'#FFF','opacity':'0.5'});showtext($('li:eq(1) p',obj).html());html='<div id="btn_rt'+randID+'" style="position:absolute;right:0;top:'+((imgHeight/2)-15)+'px"></div>';html+='<div id="btn_lt'+randID+'" style="position:absolute;left:0;top:'+((imgHeight/2)-15)+'px"></div>';$(obj).append(html);html='';$(obj).append(html);$('#pause_btn'+randID).css('opacity','.5').hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.5'},250)});$('#pause_btn'+randID).click(function(){autopilot=0;$('#progress'+randID).stop().fadeOut();clearTimeout(clearInt);$('#pause_btn'+randID).fadeOut(250);$('#play_btn'+randID).fadeIn(250);showminmax();});$('#play_btn'+randID).css('opacity','.5').hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.5'},250)});$('#play_btn'+randID).click(function(){autopilot=1;anim('next');$('#play_btn'+randID).hide();clearInt=setInterval(function(){anim('next');},o.displayTime+o.transitionSpeed);setTimeout(function(){$('#pause_btn'+randID).show();$('#progress'+randID).fadeIn().width(imgWidth).height(5);},o.transitionSpeed);});$('#btn_rt'+randID).css('opacity','.75').click(function(){autopilot=0;$('#progress'+randID).stop().fadeOut();anim('next');setTimeout(function(){$('#play_btn'+randID).fadeIn(250);},o.transitionSpeed);clearTimeout(clearInt);}).hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.75'},250)});$('#btn_lt'+randID).css('opacity','.75').click(function(){autopilot=0;$('#progress'+randID).stop().fadeOut();anim('prev');setTimeout(function(){$('#play_btn'+randID).fadeIn(250);},o.transitionSpeed);clearTimeout(clearInt);}).hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.75'},250)});

if(o.displayThumbnails)
{
	$(obj).append('<div id="thumbs'+randID+'" style="position:absolute; bottom:5px; left:5px; 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;background-image:url(img/thumbs_selected.png);display:inline;float:left;width:'+o.thumbnailWidth+';height:'+o.thumbnailHeight+';line-height:'+o.thumbnailHeight+';padding:0;overflow:hidden;text-align:center;border:none;margin-right:4px;font-size:'+o.thumbnailFontSize+';font-family:Arial;color:#ffffff;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':'url(img/thumbs_selected.png)'});$('#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);}
if(target_num[1]<curr)
{diff=curr-target_num[1];anim('prev',diff);}}
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="/jquery/down.png" title="Minimize" alt="minimize" id="min"/><img style="position:absolute;top:2px;right:18px;display:none;cursor:pointer" src="/jquery/up.png" title="Maximize" alt="maximize" id="max" />';html+='<img style="position:absolute;top:2px;right:6px;display:none;cursor:pointer" src="/jquery/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)
{$('#btn_rt'+randID).fadeOut(500);$('#btn_lt'+randID).fadeOut(500);$('#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();}
$('#btn_rt'+randID).fadeIn(500);$('#btn_lt'+randID).fadeIn(500);$('#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'});});}
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');$('#btn_rt'+randID).fadeIn(500);$('#btn_lt'+randID).fadeIn(500);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();$('#btn_rt'+randID).fadeIn(500);$('#btn_lt'+randID).fadeIn(500);$('#play_btn'+randID).fadeIn(250);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();$('#btn_rt'+randID).fadeIn(500);$('#btn_lt'+randID).fadeIn(500);if(autopilot)$('#pause_btn'+randID).fadeIn(250);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);
