/*
 * jQuery Infinite Carousel
 * @author admin@catchmyfame.com - http://www.catchmyfame.com
 * @version 3.0.1
 * @date January 3, 2012
 * @category jQuery plugin
 * @copyright (c) admin@catchmyfame.com (www.catchmyfame.com)
 * @license CC Attribution-Share Alike 3.0 - http://creativecommons.org/licenses/by-sa/3.0/
 */
(function(a){a.fn.extend({infiniteCarousel:function(b){var c={transitionSpeed:800,displayTime:6000,displayProgressRing:true,progressRingColorOpacity:"0,0,0,.5",progressRingBackgroundOn:true,progressRingBackgroundColorOpacity:"255,255,255,.5",thumbnailType:"none",easeLeft:"linear",easeRight:"linear",imagePath:"/js/infinitecarousel/images/",inView:1,margin:0,advance:1,customClass:null,showControls:true,autoHideCaptions:false,autoPilot:false,prevNextInternal:true,internalThumbnails:false,enableKeyboardNav:true,onSlideStart:function(){},onSlideEnd:function(){},onPauseClick:function(){},onPlayClick:function(){}};var b=a.extend(c,b);return this.each(function(){var w=b;var r=a(this);var H=Math.round(Math.random()*100000000);var s=a("li",r).length;var e=[];var g=[];var D=[];var G=[];var v,F;var A,I;var h;var q,p=0;var k="HTMLCanvasElement" in window;a("li",r).each(function(i){e.push(a("p",this).html());g.push(a("a",this).attr("href"));G.push(a(this).find("iframe").attr("longdesc"));D.push(a(this).find("img, iframe").attr("src"))});if(w.inView>s){w.inView=s}if(w.advance>w.inView){w.advance=w.inView}v=a(this).find("img, iframe").width();F=a(this).find("img, iframe").height();a(r).replaceWith('<div class="infiniteCarousel" id="ic_'+H+'">');r=a("#ic_"+H);a(r).height(F).width(v*w.inView).css({overflow:"hidden",position:"relative"});a(r).append('<div class="ic_tray" style="position:relative;width:'+(s*2)*v+"px;left:-"+v+'px">');for(var C=0;C<s;C++){a("div.ic_tray",r).append('<div style="overflow:hidden;background:url(images/wait.gif) no-repeat scroll 50% 50% #ddd;float:left;position:relative;width:'+v+"px;height:"+F+'px;" class="infiniteCarousel_item">')}a(".infiniteCarousel_item",r).each(function(o){if(D[o].indexOf("youtube.com")>0||D[o].indexOf("vimeo.com")>0||D[o].indexOf("funnyordie.com")>0){var i=D[o].split("?");a(this).append('<iframe src="'+i[0]+"?wmode=opaque&"+i[1]+'" frameborder="0" allowfullscreen="" style="width: '+v+"px; height: "+F+'px">" />');if(g[o]!=undefined){a("iframe",this).wrap('<a class="ic_link" href="'+g[o]+'"></a>')}}else{a(this).append('<img src="'+D[o]+'" />');if(g[o]!=undefined){a("img",this).wrap('<a class="ic_link" href="'+g[o]+'"></a>')}}if(e[o]!=undefined){a(this).append('<div class="ic_caption" style="position:absolute;bottom:0;">'+e[o]+"</div>")}});a(".infiniteCarousel_item",r).clone().appendTo(a("div.ic_tray",r));a(".infiniteCarousel_item",r).each(function(i){a(this).attr("id","ic_"+H+"_"+i)});a(".ic_tray",r).prepend(a(".infiniteCarousel_item:last").remove());if(w.margin!=0){a(r).width(a(r).width()+(w.inView+1)*w.margin).height(a(r).height()+2*w.margin);a(".infiniteCarousel_item",r).css("margin",w.margin+"px 0px "+w.margin+"px "+w.margin+"px");a(".ic_tray",r).css("left",parseInt(a(".ic_tray",r).css("left"))-w.margin+"px").width(a(".ic_tray",r).width()+w.margin*(s*2))}a(r).append('<div class="ic_left_nav" style="position:absolute;left:0;width:32px;top:'+(F/2-16)+'px;">').append('<div class="ic_right_nav" style="position:absolute;width:32px;right:0;top:'+(F/2-16)+'px;">');a(".ic_left_nav",r).append('<img style="cursor:pointer;" src="'+w.imagePath+'left.png" />');a(".ic_right_nav",r).append('<img style="cursor:pointer;" src="'+w.imagePath+'right.png" />');if(!w.prevNextInternal&&(parseInt(a(r).css("border-left-width"))+parseInt(a(r).css("border-right-width")))>0){a(".ic_right_nav",r).css("right","-"+(parseInt(a(r).css("border-left-width"))+parseInt(a(r).css("border-right-width")))+"px")}a(".ic_left_nav img",r).on("click",function(i){if(!a(".ic_tray",r).is(":animated")){y();j(w.advance)}});a(".ic_right_nav img",r).on("click",function(i){if(!a(".ic_tray",r).is(":animated")){y();d(w.advance)}});if(w.inView==s){w.displayProgressRing=false;w.thumbnailType="none";w.showControls=false;w.autoPilot=false;w.enableKeyboardNav=false;a(".ic_left_nav,.ic_right_nav",r).hide()}if(!w.prevNextInternal){a(r).wrap('<div id="ic_'+H+'_wrapper" class="ic_wrapper" style="padding:0 32px;position:relative;">');a("#ic_"+H+"_wrapper").width(a(r).width());a("#ic_"+H+"_wrapper").prepend(a(".ic_left_nav",r).detach());a("#ic_"+H+"_wrapper").prepend(a(".ic_right_nav",r).detach())}else{a(r).hover(function(){a(".ic_left_nav",r).stop().animate({opacity:1,left:"0px"},300);a(".ic_right_nav",r).stop().animate({opacity:1,right:"0px"},300)},function(){a(".ic_left_nav",r).stop().animate({opacity:0,left:"-32px"},500);a(".ic_right_nav",r).stop().animate({opacity:0,right:"-32px"},500)})}a("#ic_"+H).addClass("ic_peek_padding");a("#ic_"+H+"_wrapper").width(a(r).width()+parseInt(a("#ic_"+H).css("padding-left"))+parseInt(a("#ic_"+H).css("padding-right")));if(w.thumbnailType!="none"){a(r).append('<div id="ic_'+H+'_thumbnail_tray" class="ic_thumbnail_tray" style="position:absolute;bottom:0;padding:5px 0;width:100%;text-align:center;">');a("#ic_"+H+"_thumbnail_tray").append('<div class="ic_thumbnails">');for(var C=0;C<s;C++){a(".ic_thumbnails",r).append('<div class="ic_button" style="cursor:pointer">')}for(var C=0;C<w.inView;C++){a(".ic_button:eq("+C+")",r).addClass("ic_active")}a(".ic_button").hover(function(){if(!a(this).hasClass("ic_active")){a(this).css("background","#699")}},function(){a(this).css("background","")});if(w.thumbnailType=="images"){a(".ic_button",r).each(function(i){if(D[i]!=undefined){thumbImage=D[i]}if(G[i]!=undefined){thumbImage=G[i]}a(this).append('<img width="100%" height="100%" src="'+thumbImage+'" />')})}if(w.thumbnailType=="numbers"){a(".ic_button",r).each(function(i){a(this).html(i+1)})}if(w.thumbnailType=="count"){a(".ic_button",r).remove();a(".ic_thumbnails",r).html("<span>1</span> of "+s);B()}if(!w.internalThumbnails){if(!a("#ic_"+H+"_wrapper").length){a(r).wrap('<div id="ic_'+H+'_wrapper" class="ic_wrapper" style="position:relative;">');a("#ic_"+H+"_wrapper").width(a(r).width())}a("#ic_"+H+"_thumbnail_tray").css({bottom:"",position:"relative"}).appendTo(a("#ic_"+H+"_wrapper"))}var x=(a("#ic_"+H+"_wrapper").length)?a("#ic_"+H+"_wrapper"):r;a(".ic_button",x).on("click",function(){if(!a(".ic_tray",r).is(":animated")){y();var K=parseInt(a(".infiniteCarousel_item:eq(1)",r).attr("id").split("_").pop());var J=a(this).index();if(K>(s-1)){K-=s}var o=Math.abs(K-J);var i=s-o;var u=Math.min(o,i);if(K<J){if(o<i||o==i){d(u)}if(o>i){j(u)}}if(K>J){if(o<i){j(u)}if(o>i||o==i){d(u)}}}})}if((!w.prevNextInternal||!w.internalThumbnails)&&w.customClass!==null){a("#ic_"+H+"_wrapper").addClass("ic_"+w.customClass)}else{if(w.customClass!==null){a(r).addClass("ic_"+w.customClass)}}if(w.enableKeyboardNav){a(document).keydown(function(i){if(i.keyCode==39){if(!a(".ic_tray",r).is(":animated")){y();d(w.advance)}}if(i.keyCode==37){if(!a(".ic_tray",r).is(":animated")){y();j(w.advance)}}if(i.keyCode==80||i.keyCode==111){if(!a(".ic_tray",r).is(":animated")){if(w.autoPilot){l()}}}if(i.keyCode==83||i.keyCode==115){if(!a(".ic_tray",r).is(":animated")){E()}}})}if(w.showControls){a(r).append('<div id="ic_controls_'+H+'" class="ic_controls" style="background:url('+w.imagePath+'controls.png) no-repeat -12px 0;opacity:.5;cursor:pointer;height:10px;position:absolute;right:9px;top:10px;width:10px;z-index:1">');if(!w.autoPilot){a("#ic_controls_"+H).css("background-position","1px 0")}a(".ic_controls",r).on("click",function(){if(!a(".ic_tray",r).is(":animated")){if(w.autoPilot){l()}else{E()}}})}if(k){a(r).append('<canvas id="ic_canvas_'+H+'" width="30" height="30" style="position:absolute;top:0;right:0;"></canvas>');var z=a("#ic_canvas_"+H)[0].getContext("2d");z.lineWidth=3;z.strokeStyle="rgba("+w.progressRingColorOpacity+")";z.shadowOffsetX=0;z.shadowOffsetY=0;z.shadowBlur=3;z.shadowColor="#fff";if(!w.displayProgressRing){a("#ic_canvas_"+H).hide()}}else{a(r).append('<div id="ic_ie_timer_'+H+'" style="width:100%;height:6px;position:absolute;bottom:0;left:0;background:#ccc"></div>');a("#ic_ie_timer_"+H).css("opacity",".25")}function t(){if(w.autoHideCaptions){a(".ic_caption",r).stop().animate({bottom:-F+"px"})}}function n(){if(w.autoHideCaptions){a(".ic_caption",r).stop().animate({bottom:"0px"})}}function B(){thumbButtonStart=parseInt(a(".infiniteCarousel_item",r).attr("id").split("_").pop())+1;if(thumbButtonStart>(s-1)){thumbButtonStart-=s}if(w.thumbnailType=="count"){var J=[];for(var u=thumbButtonStart;u<thumbButtonStart+w.inView;u++){J.push(((u+1)>s)?(u+1)-s:(u+1))}var K=J.pop();var o=(w.inView>1)?" & ":"";a(".ic_thumbnails span",x).text(J.join(", ")+o+K)}for(var u=thumbButtonStart;u<thumbButtonStart+w.inView;u++){(u>s-1)?a(".ic_button:eq("+Math.abs(s-u)+")",x).addClass("ic_active"):a(".ic_button:eq("+u+")",x).addClass("ic_active")}}function j(i){w.onSlideStart.call(this);a(".ic_button",x).removeClass("ic_active");a(".infiniteCarousel_item",r).slice(-i).prependTo("#ic_"+H+" .ic_tray",r);a(".ic_tray",r).css({left:"-="+(v*i)+"px"});a(".ic_tray",r).stop().animate({left:"+="+v*i+"px"},w.transitionSpeed,w.easeRight,function(){n();B();w.onSlideEnd.call(this)});t()}function d(i){w.onSlideStart.call(this);a(".ic_button",x).removeClass("ic_active");a(".ic_tray",r).stop().animate({left:"-="+(v+w.margin)*i+"px"},w.transitionSpeed,w.easeLeft,function(){a(".infiniteCarousel_item",r).slice(0,i).appendTo("#ic_"+H+" .ic_tray",r);a(".ic_tray",r).css({left:"-"+(v+w.margin)+"px"});n();B();w.onSlideEnd.call(this);if(w.autoPilot){m(w.displayTime)}});t()}function l(){w.onPauseClick.call(this);w.autoPilot=false;a("#ic_controls_"+H).css("background-position","1px 0");clearInterval(h);p=q}function E(){w.autoPilot=true;if(w.autoPilot&&!a(".ic_tray",r).is(":animated")){m(w.displayTime)}a("#ic_controls_"+H).css("background-position","-12px 0")}function y(){w.onPlayClick.call(this);w.autoPilot=false;f();a("#ic_controls_"+H).css("background-position","1px 0");clearInterval(h)}function m(i){var o=new Date().getTime(),u,J=0;h=setInterval(function(){if(J<359){u=new Date().getTime();q=(u-o)+p;J=Math.floor(q/i*360);if(J>359){J=359}if(k){z.clearRect(0,0,30,30);z.save();z.translate(15,15);z.rotate(-Math.PI/2);if(w.progressRingBackgroundOn){z.strokeStyle="rgba("+w.progressRingBackgroundColorOpacity+")";z.beginPath();z.arc(0,0,10,0,(360*(Math.PI/180)),true);z.stroke();z.strokeStyle="rgba("+w.progressRingColorOpacity+")"}z.beginPath();z.arc(0,0,10,0,(J*(Math.PI/180)),true);z.stroke();z.restore()}else{a("#ic_ie_timer_"+H,r).css("width",99-Math.floor((q/i)*100)+"%")}}else{p=0;clearInterval(h);d(w.advance)}},20)}function f(){p=0;if(k){z.clearRect(0,0,30,30);z.save();z.translate(15,15);z.rotate(-Math.PI/2);z.beginPath();z.arc(0,0,10,0,(360*(Math.PI/180)),true);z.stroke();z.restore()}}if(w.autoPilot&&!a(".ic_tray",r).is(":animated")){m(w.displayTime)}else{f()}})}})})(jQuery);
