/**
 * jQuery ddCarousel Plugin
 * @version: 1.1 (2011-10-07)
 * 
 * jQuery-плагин для навигации в виде карусели
 
 * При написании плагина использовались исходные коды jCaruoselLite 1.0.1
 * http://gmarwaha.com/jquery/jcarousellite/
 *
 * @copyright 2011, DivanDesign
 * http://www.DivanDesign.ru 
 */

(function(c){c.fn.ddCarousel=function(d){function h(g,b){function d(e){a.parSize=b.vertical?a.parent.innerHeight():a.parent.innerWidth();a.elSize=b.vertical?a.origEl.outerHeight(true):a.origEl.outerWidth(true);a.vis=b.visible=="auto"?parseInt(a.parSize/a.elSize):b.visible;if(b.circular)a.preEl=a.origEl.slice(a.origElCount-a.vis).clone(),a.nextEl=a.origEl.slice(0,a.vis).clone(),a.moved.prepend(a.preEl).append(a.nextEl),e+=a.vis;a.el=c("> .ddCarouselElem",a.moved);a.itemLength=a.el.size();a.curr=e;
a.movedSize=a.elSize*a.itemLength;a.parSize=a.elSize*a.vis;a.el.css({width:a.el.width(),height:a.el.height()});a.moved.css(a.sizeCss,a.movedSize+"px").css(b.vertical?"width":"height",b.vertical?a.el.width():a.el.height()).css(a.animCss,-(a.curr*a.elSize));a.parent.css(a.sizeCss,a.parSize+"px");return e}var f=this,a={running:false};a.animCss=b.vertical?"top":"left";a.sizeCss=b.vertical?"height":"width";a.parent=c(g);a.moved=c(b.movedSelector,a.parent);a.origEl=c(b.elemSelector,a.moved);a.origElCount=
a.origEl.size();a.parent.css("visibility","visible");a.origEl.css({overflow:"hidden","float":b.vertical?"none":"left"});a.moved.css({margin:"0",padding:"0",position:"relative","list-style-type":"none","z-index":"1"});a.parent.css({overflow:"hidden",position:"relative","z-index":"2",left:"0px"});a.parent.addClass("ddCarouselParent");a.moved.addClass("ddCarouselMoved");a.origEl.addClass("ddCarouselElem");b.start=d(b.start);b.btnPrev&&c(b.btnPrev).bind("click",function(){return f.scrollTo(a.curr-b.scroll)});
b.btnNext&&c(b.btnNext).bind("click",function(){return f.scrollTo(a.curr+b.scroll)});b.btnGo&&c.each(b.btnGo,function(a,d){c(d).bind("click",function(){return f.scrollTo(b.circular?b.visible+a:a)})});b.mouseWheel&&a.parent.mousewheel&&a.parent.mousewheel(function(c,d){return d>0?f.scrollTo(a.curr-b.scroll):f.scrollTo(a.curr+b.scroll)});b.auto&&setInterval(function(){f.scrollTo(a.curr+b.scroll)},b.auto+b.speed);c.extend(f,{scrollTo:function(e){if(!a.running){var d=a.el.slice(a.curr).slice(0,a.vis);
if(b.circular)e<=b.start-a.vis-1?(a.moved.css(a.animCss,-((a.itemLength-a.vis*2)*a.elSize)+"px"),a.curr=e==b.start-a.vis-1?a.itemLength-a.vis*2-1:a.itemLength-a.vis*2-b.scroll):e>=a.itemLength-a.vis+1?(a.moved.css(a.animCss,-(a.vis*a.elSize)+"px"),a.curr=e==a.itemLength-a.vis+1?a.vis+1:a.vis+b.scroll):a.curr=e;else if(e<0||e>a.itemLength-a.vis)return;else a.curr=e;var f=a.el.slice(a.curr).slice(0,a.vis);b.beforeStart&&b.beforeStart.call(this,d,f);a.running=true;a.moved.animate(a.animCss=="left"?{left:-(a.curr*
a.elSize)}:{top:-(a.curr*a.elSize)},b.speed,b.easing,function(){b.afterEnd&&b.afterEnd.call(this,d,f);a.running=false});b.circular||(c(b.btnPrev+","+b.btnNext).removeClass("disabled"),c(a.curr-b.scroll<0&&b.btnPrev||a.curr+b.scroll>a.itemLength-a.vis&&b.btnNext||[]).addClass("disabled"))}return false},updateSize:function(){a.parent.css(a.sizeCss,"");a.el.css({width:"",height:""});b.circular&&(a.preEl.remove(),a.nextEl.remove());d(a.curr-a.vis)},data:a})}d=c.extend({btnPrev:null,btnNext:null,btnGo:null,
mouseWheel:false,auto:null,speed:200,easing:null,vertical:false,circular:true,visible:"auto",start:0,scroll:1,beforeStart:null,afterEnd:null,movedSelector:"> ul",elemSelector:"> li"},d||{});return this.each(function(){var g=c(this);g.data("ddCarousel",new h(g,d))})}})(jQuery);
