/*
 * jQuery Infinite Carousel
 * @author admin@catchmyfame.com - http://www.catchmyfame.com
 * @version 2.0.2
 * @date June 12, 2010
 * @category jQuery plugin
 * @copyright (c) 2009 admin@catchmyfame.com (www.catchmyfame.com)
 * @date Feb 17, 2011 This original code is modified by http://plugidea.com/iweb/
 * @license CC Attribution-Share Alike 3.0 - http://creativecommons.org/licenses/by-sa/3.0/
 */

// Slightly modified by @tbx. Replaced "21px" with "0px" to hide navigation and keep keyboard controls
(function(a){a.fn.extend({infiniteCarousel:function(b){var c={transitionSpeed:800,displayTime:6000,textholderHeight:0.25,displayProgressBar:false,displayThumbnails:true,displayThumbnailNumbers:true,displayThumbnailBackground:true,thumbnailFontSize:".7em",easeLeft:"linear",easeRight:"linear",imagePath:"/images/",inView:1,padding:"0px",advance:1,showControls:true,autoHideControls:false,autoHideCaptions:false,autoStart:true,prevNextInternal:true,controlstyle:0,enableKeyboardNav:true,onSlideStart:function(){},onSlideEnd:function(){},onPauseClick:function(){}};var b=a.extend(c,b);return this.each(function(){var G=Math.round(Math.random()*100000000);var w=b;var s=a(this);var t=w.autoStart;var z=a("img",s).length;var C=a("img:first",s).height();var n=a("img:first",s).width();if(w.inView>z-1){w.inView=z-1}a("p",s).hide();a(s).width((n*w.inView)+(w.inView*parseInt(w.padding)*2)).height(C+(parseInt(w.padding)*2));a("ul",s).width(n*z);a("li",s).css({display:"inline","float":"left",padding:w.padding});a("li:last",s).prependTo(a("ul",s));a("ul",s).css("left",-n-(parseInt(w.padding)*2)+"px").width(9999);if(w.displayProgressBar){a(s).append('<div id="progress'+G+'" class="ic-progress-bar" style="position:absolute;bottom:0;background:#bbb;left:0;z-index:1"></div>');a("#progress"+G).width("100%").height(5).css("opacity",".6")}function f(o){o=(o==null)?w.displayTime:o;a("#progress"+G).width("100%").height(5);a("#progress"+G).animate({width:0},o)}var l=parseInt(a(s).css("border-bottom-width"))+parseInt(a(s).css("border-top-width"));if(isNaN(l)){l=0}var g=parseInt(a(s).css("padding-left"));for(i=1;i<=w.inView;i++){if(!w.controlstyle){a(s).append('<div id="textholder'+G+"_"+i+'" class="text-holder" style="margin-bottom:'+-(C*w.textholderHeight+l)+'px;"><span></span></div>');a("#textholder"+G+"_"+i).css({left:(i-1)*(n+parseInt(w.padding)*2),"margin-left":parseInt(w.padding)+g,"margin-right":w.padding});html='<div class="close" id="close'+G+"_"+i+'" style="display: none; width:12px;height:12px;position:absolute;top:2px;right:2px;cursor:pointer;background:url('+w.imagePath+'caption.png) 0 0"></div>';a("#textholder"+G+"_"+i).append(html);if(!w.autoHideCaptions){B(a("li:eq("+i+") p",s).html(),i)}}}if(!w.controlstyle){var L=parseInt(a("#textholder"+G+"_1").css("padding-left"))+parseInt(a("#textholder"+G+"_1").css("padding-right"));if(L>0){a(".text-holder",s).width(n-L)}a(".close",s).each(function(o){a(this).click(function(){a("#textholder"+G+"_"+(o+1)).animate({marginBottom:(-C*w.textholderHeight)-l-1+"px"},500)})})}function B(M,o){if(t||w.autoHideCaptions){a("#close"+G+"_"+o).hide()}if(M!=null){a("#textholder"+G+"_"+o+" span").html(M);a("#textholder"+G+"_"+o).stop().animate({marginBottom:"0px"},500);h()}}function h(){if(!t&&!w.autoHideCaptions&&!w.controlstyle){a(".close",s).fadeIn(250)}}function F(){a(".text-holder",s).stop().animate({marginBottom:(-C*w.textholderHeight-l-1)+"px"},w.transitionSpeed)}if(w.displayThumbnails){function K(o){target_num=this.id.split("_");if(A[0]!=target_num[1]){y="pause";a("#progress"+G).stop().fadeOut();clearTimeout(I);a("#dots li a").css({cursor:"default"}).unbind("click");t=0;setTimeout(function(){a("#play_pause_btn"+G).css("background-position","0 -16px")},w.transitionSpeed);a("#play_pause_btn"+G).unbind("click").bind("click",function(){p()})}if(target_num[1]>A[0]){diff=target_num[1]-A[0];d(diff)}if(target_num[1]<A[0]){diff=A[0]-target_num[1];k(diff)}}var A=[];var H=[];if(w.controlstyle==1){a(s).after('<div id="gallerygraydots" style="background: url('+w.imagePath+'img_trans.gif) repeat-x;position:absolute;z-index:9999;left:0;bottom:0;width:100%;text-align:center;height:43px;overflow:hidden;display:inline;"><ul id="dots" style="padding:0;margin:15px 0;list-style:none;list-style-type:none;"></ul></div>')}else{a(s).after('<div id="simple-nav" style="margin-top: 10px; text-align:center;"><ul id="dots" style="padding:0;margin:0;list-style:none;"></ul></div>')}for(i=0;i<=z-1;i++){if(w.controlstyle==1){if(i==(z-1)){a("#dots").append('<li class="last-dot"><a id="thumb'+G+"_"+(i+1)+'" style="background-image:url('+w.imagePath+"gray_dot.png); _background-image:url("+w.imagePath+'gray_dot.gif);"></a></li>')}else{a("#dots").append('<li><a id="thumb'+G+"_"+(i+1)+'" style="background-image:url('+w.imagePath+"gray_dot.png); _background-image:url("+w.imagePath+'gray_dot.gif);"></a></li>')}}else{if(i==(z-1)){a("#dots").append('<li class="last-dot"><a id="thumb'+G+"_"+(i+1)+'" style="background:url('+w.imagePath+'blue_dot.png) no-repeat 0 0;">'+(i+1)+"</a></li>")}else{a("#dots").append('<li><a id="thumb'+G+"_"+(i+1)+'" style="background:url('+w.imagePath+'blue_dot.png) no-repeat 0 0;">'+(i+1)+"</a></li>")}}if(i<=w.inView){a("#thumb"+G+"_"+i).addClass("active")}H.push(i+1)}for(i=1;i<=w.inView;i++){A.push(H.shift())}if(w.controlstyle==1){a("#gallerygraydots").hover(function(){a("#btn_rt"+G).css("opacity",1);a("#btn_lt"+G).css("opacity",1)},function(){a("#btn_rt"+G).css("opacity",0);a("#btn_lt"+G).css("opacity",0)})}a("#dots li a").hover(function(){a(this).addClass("hover")},function(){if(A[0]!=this.id.split("_")[1]){a(this).removeClass("hover")}});a("#dots li a").bind("click",K)}if(w.showControls){html='<div id="play_pause_btn'+G+'" style="cursor:pointer;position:absolute;top:3px;right:3px;z-index:9999;border:none;width:16px;height:16px;background:url('+w.imagePath+'playpause.gif) no-repeat 0 0"></div>';a(s).append(html);var y="play";a("#play_pause_btn"+G).css("opacity",0).hover(function(){a(this).animate({opacity:"1"},250)},function(){a(this).animate({opacity:".0"},250)});a("#play_pause_btn"+G).click(function(){y=(y=="play")?"pause":"play";(y=="play")?p():r()});if(!w.prevNextInternal){wrapID=a(s).attr("id")+"Wrapper";a(s).wrap('<div id="'+wrapID+'"></div>').css("margin","0 auto");a("#"+wrapID).css("position","relative").width((a(s).width()+40+parseInt(a(s).css("padding-left"))+parseInt(a(s).css("padding-right"))))}arrowsTop=((C/2)-40)+parseInt(w.padding);if(w.controlstyle==1){html='<div id="btn_rt'+G+'" style="position:absolute;right:10px;bottom:11px;cursor:pointer;border:none;width:0px;height:0px;background:url('+w.imagePath+'prev-next-button.png) no-repeat -0px 0"></div>';html+='<div id="btn_lt'+G+'" style="position:absolute;left:10px;bottom:11px;cursor:pointer;border:none;width:0px;height:0px;background:url('+w.imagePath+'prev-next-button.png) no-repeat 0 0"></div>';(w.prevNextInternal)?a("#gallerygraydots").append(html):a("#"+wrapID).append(html);a("#btn_rt"+G).css("opacity",0).click(function(){j("next")}).hover(function(){a(this).css({"background-position":"-0px -0px"})},function(){a(this).css({"background-position":"-0px 0"})});a("#btn_lt"+G).css("opacity",0).click(function(){j("prev")}).hover(function(){a(this).css({"background-position":"0 -0px"})},function(){a(this).css({"background-position":"0 0"})})}else{html='<div id="btn_rt'+G+'" style="position:absolute;right:10px;cursor:pointer;border:none;top:0;width:40px;height:'+C+"px;background:url("+w.imagePath+'next-arrow.png) no-repeat center"></div>';html+='<div id="btn_lt'+G+'" style="position:absolute;left:10px;cursor:pointer;border:none;top:0;width:40px;height:'+C+"px;background:url("+w.imagePath+'prev-arrow.png) no-repeat center"></div>';(w.prevNextInternal)?a(s).append(html):a("#"+wrapID).append(html);a("#btn_rt"+G).css("opacity",0).click(function(){j("next")}).hover(function(){a(this).animate({opacity:"1"},250)},function(){a(this).animate({opacity:".0"},250)});a("#btn_lt"+G).css("opacity",0).click(function(){j("prev")}).hover(function(){a(this).animate({opacity:"1"},250)},function(){a(this).animate({opacity:".0"},250)})}if(w.autoHideControls&&w.prevNextInternal){function E(){a("#play_pause_btn"+G).stop().animate({top:"3px",right:"3px"},250);a("#btn_rt"+G).stop().animate({top:arrowsTop+"px",right:"2px"},250);a("#btn_lt"+G).stop().animate({top:arrowsTop+"px",left:"2px"},250)}function v(){a("#play_pause_btn"+G).stop().animate({top:-16-l+"px",right:-16-l+"px"},250);a("#btn_rt"+G).stop().animate({right:"-16px"},250);a("#btn_lt"+G).stop().animate({left:"-16px"},250)}a(s).hover(E,v);v()}if(w.autoHideCaptions&&!w.controlstyle){var e;function u(){e=true;for(i=1;i<=w.inView;i++){B(a("li:eq("+i+") p",s).html(),i)}}function q(){e=false;F()}a(s).hover(u,q);F()}}function m(){if(w.enableKeyboardNav){a(document).keydown(function(o){if(o.keyCode==39){a("#btn_rt"+G).click();a(document).unbind("keydown")}if(o.keyCode==37){a("#btn_lt"+G).click();a(document).unbind("keydown")}if(o.keyCode==32){a("#play_pause_btn"+G).click()}})}}function j(o){w.onPauseClick.call(this);a("#btn_rt"+G).unbind("click");a("#btn_lt"+G).unbind("click");setTimeout(function(){a("#play_pause_btn"+G).css("background-position","0 -16px")},w.transitionSpeed-1);t=0;a("#progress"+G).stop().fadeOut();y="pause";clearTimeout(I);(o=="prev")?k():d();a("#play_pause_btn"+G).unbind("click");setTimeout(function(){a("#play_pause_btn"+G).bind("click",function(){p()});a("#btn_rt"+G).bind("click",function(){j("next")});a("#btn_lt"+G).bind("click",function(){j("prev")})},w.transitionSpeed)}function r(){a("#play_pause_btn"+G).unbind("click");if(t){w.onPauseClick.call(this);a("#play_pause_btn"+G).fadeTo(250,0,function(){a(this).css({"background-position":"0 -16px",opacity:".0"})}).animate({opacity:0},250);t=0;h();a("#progress"+G).stop().fadeOut();clearTimeout(I);setTimeout(function(){a("#play_pause_btn"+G).bind("click",function(){p()})},w.transitionSpeed)}}function p(){a("#play_pause_btn"+G).unbind("click");if(!t){setTimeout(function(){a("#play_pause_btn"+G).css("background-position","0 0")},w.transitionSpeed-1);t=1;d();I=setInterval(function(){d()},w.displayTime+w.transitionSpeed);setTimeout(function(){a("#play_pause_btn"+G).bind("click",function(){r()})},w.transitionSpeed)}}function J(){F();if(w.showControls&&w.prevNextInternal){a("#play_pause_btn"+G).fadeOut(200);a("#btn_lt"+G).fadeOut(200);a("#btn_rt"+G).fadeOut(200)}if(w.displayThumbnails){for(i=1;i<=z;i++){a("#thumb"+G+"_"+i).removeClass("active hover")}}}function D(){if(w.showControls&&w.prevNextInternal){a("#play_pause_btn"+G).fadeIn(200);a("#btn_lt"+G).fadeIn(200);a("#btn_rt"+G).fadeIn(200)}m();if(w.autoHideCaptions&&e){u()}if(w.displayThumbnails){for(i=0;i<A.length;i++){a("#thumb"+G+"_"+A[i]).addClass("active")}}if(!w.autoHideCaptions&&!w.controlstyle){for(i=1;i<=w.inView;i++){B(a("li:eq("+i+") p",s).html(),i)}}if(w.displayThumbnails){a("#dots li a").unbind("click").bind("click",K).css({cursor:"pointer"});a("#dots li a.active").css({cursor:"default"})}ary=[];for(x=1;x<=w.inView;x++){ary.push(a("img:eq("+x+")",s).attr("src"))}w.onSlideEnd.call(this,ary)}function d(o){if(o==null){o=w.advance}J();if(w.displayThumbnails){for(i=1;i<=o;i++){A.push(H.shift());H.push(A.shift())}}if(w.displayTime==0){clearInterval(I)}a("li:lt("+o+")",s).clone(true).insertAfter(a("li:last",s));w.onSlideStart.call(this,A,"left");a("ul",s).animate({left:-n*(o+1)-(parseInt(w.padding)*(o+1))*2},w.transitionSpeed,w.easeLeft,function(){a("li:lt("+o+")",s).remove();a(this).css({left:-n-parseInt(w.padding)*2});if(w.displayProgressBar&&t){f()}D();if(w.displayTime==0){d()}})}function k(o){if(o==null){o=w.advance}J();if(w.displayThumbnails){for(i=1;i<=o;i++){A.unshift(H.pop());H.unshift(A.pop())}}a("li:gt("+(z-(o+1))+")",s).clone(true).insertBefore(a("li:first",s));w.onSlideStart.call(this,A,"right");a("ul",s).css("left",-(n*(o+1))-(parseInt(w.padding)*((o+1)*2))).animate({left:-n-(parseInt(w.padding)*2)},w.transitionSpeed,w.easeRight,function(){a("li:gt("+(z-1)+")",s).remove();D()})}if(t){var I=setInterval(function(){d()},w.displayTime+w.transitionSpeed);if(w.displayProgressBar){f(w.displayTime+w.transitionSpeed)}}else{y="pause";a("#play_pause_btn"+G).css({"background-position":"0 -16px"})}m()})}})})(jQuery);
