(function($){var aux={navigate:function(dir,$el,$wrapper,opts,cache){var scroll=opts.scroll,factor=1,idxClicked=0;if(cache.expanded){scroll=1;factor=3;idxClicked=cache.idxClicked;}if(dir===1){$wrapper.find('div.ca-item:lt('+scroll+')').each(function(i){$(this).clone(true).css('left',(cache.totalItems-idxClicked+i)*cache.itemW*factor+'px').appendTo($wrapper);});}else{var $first=$wrapper.children().eq(0);$wrapper.find('div.ca-item:gt('+(cache.totalItems-1-scroll)+')').each(function(i){$(this).clone(true).css('left',-(scroll-i+idxClicked)*cache.itemW*factor+'px').insertBefore($first);});}$wrapper.find('div.ca-item').each(function(i){var $item=$(this);$item.stop().animate({left:(dir===1)?'-='+(cache.itemW*factor*scroll)+'px':'+='+(cache.itemW*factor*scroll)+'px'},opts.sliderSpeed,opts.sliderEasing,function(){if((dir===1&&$item.position().left<-idxClicked*cache.itemW*factor)||(dir===-1&&$item.position().left>((cache.totalItems-1-idxClicked)*cache.itemW*factor))){$item.remove();}cache.isAnimating=false;});});},openItem:function($wrapper,$item,opts,cache){cache.idxClicked=$item.index();cache.winpos=aux.getWinPos($item.position().left,cache);$wrapper.find('div.ca-item').not($item).hide();$item.find('div.ca-content-wrapper').css('left',cache.itemW+'px').stop().animate({width:cache.itemW*2+'px',left:cache.itemW+'px'},opts.itemSpeed,opts.itemEasing).end().stop().animate({left:'0px'},opts.itemSpeed,opts.itemEasing,function(){cache.isAnimating=false;cache.expanded=true;aux.openItems($wrapper,$item,opts,cache);});},openItems:function($wrapper,$openedItem,opts,cache){var openedIdx=$openedItem.index();$wrapper.find('div.ca-item').each(function(i){var $item=$(this),idx=$item.index();if(idx!==openedIdx){$item.css('left',-(openedIdx-idx)*(cache.itemW*3)+'px').show().find('div.ca-content-wrapper').css({left:cache.itemW+'px',width:cache.itemW*2+'px'});aux.toggleMore($item,false);}});},toggleMore:function($item,show){(show)?$item.find('a.ca-more').show():$item.find('a.ca-more').hide();},closeItems:function($wrapper,$openedItem,opts,cache){var openedIdx=$openedItem.index();$openedItem.find('div.ca-content-wrapper').stop().animate({width:'0px'},opts.itemSpeed,opts.itemEasing).end().stop().animate({left:cache.itemW*(cache.winpos-1)+'px'},opts.itemSpeed,opts.itemEasing,function(){cache.isAnimating=false;cache.expanded=false;});aux.toggleMore($openedItem,true);$wrapper.find('div.ca-item').each(function(i){var $item=$(this),idx=$item.index();if(idx!==openedIdx){$item.find('div.ca-content-wrapper').css({width:'0px'}).end().css('left',((cache.winpos-1)-(openedIdx-idx))*cache.itemW+'px').show();aux.toggleMore($item,true);}});},getWinPos:function(val,cache){switch(val){case 0:return 1;break;case cache.itemW:return 2;break;case cache.itemW*2:return 3;break;}}},methods={init:function(options){if(this.length){var settings={sliderSpeed:500,sliderEasing:'easeOutExpo',itemSpeed:500,itemEasing:'easeOutExpo',scroll:1};return this.each(function(){if(options){$.extend(settings,options);}var $el=$(this),$wrapper=$el.find('div.ca-wrapper'),$items=$wrapper.children('div.ca-item'),cache={};cache.itemW=$items.width();cache.totalItems=$items.length;if(cache.totalItems>3)$el.prepend('<div class="ca-nav"><span class="ca-nav-prev">Previous</span><span class="ca-nav-next">Next</span></div>')
if(settings.scroll<1)settings.scroll=1;else if(settings.scroll>3)settings.scroll=3;var $navPrev=$el.find('span.ca-nav-prev'),$navNext=$el.find('span.ca-nav-next');$wrapper.css('overflow','hidden');$items.each(function(i){$(this).css({position:'absolute',left:i*cache.itemW+'px'});});$el.find('a.ca-more').live('click.contentcarousel',function(event){if(cache.isAnimating)return false;cache.isAnimating=true;$(this).hide();var $item=$(this).closest('div.ca-item');aux.openItem($wrapper,$item,settings,cache);return false;});$el.find('a.ca-close').live('click.contentcarousel',function(event){if(cache.isAnimating)return false;cache.isAnimating=true;var $item=$(this).closest('div.ca-item');aux.closeItems($wrapper,$item,settings,cache);return false;});$navPrev.bind('click.contentcarousel',function(event){if(cache.isAnimating)return false;cache.isAnimating=true;aux.navigate(-1,$el,$wrapper,settings,cache);});$navNext.bind('click.contentcarousel',function(event){if(cache.isAnimating)return false;cache.isAnimating=true;aux.navigate(1,$el,$wrapper,settings,cache);});});}}};$.fn.contentcarousel=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return methods.init.apply(this,arguments);}else{$.error('Method '+method+' does not exist on jQuery.contentcarousel');}};})(jQuery);