/**
 * jQuery Carousel Plugin v1.0
 * http://zheltov.su/
 *
 * Copyright 2011, Dmitry Zheltov <dmzhelt@rambler.ru>
 * Licensed like jQuery, see http://jquery.org/license
 *
 * Date: Mon Oct 31 22:56:48 2011 +0400
 */
(function(a){a.extend({carousel:{defaults:{cropClass:"crop",prevClass:"prev",nextClass:"next",activeClass:"active",inactiveClass:"inactive",prevHtml:"",nextHtml:"",slideBy:1},key:"carousel",init:function(b,c){var c=a.extend(this.defaults,c);var d=b.find("ul li").first().width();var e=b.find("ul li").size();var f=d*e;var g=b.width()/d;b.find("ul").wrap('<div class="'+c.cropClass+'"></div>').width(f);b.append('<div class="'+c.prevClass+'">'+c.prevHtml+"</div>").append('<div class="'+c.nextClass+'">'+c.nextHtml+"</div>");var h="div[class*="+c.prevClass+"]";var i="div[class*="+c.nextClass+"]";b.data(this.key,{opts:c,width:d,count:e,perFrame:g,prevSelector:h,nextSelector:i,frontPos:0,endPos:g});b.find(h).bind("click",{carousel:this},function(a){var c=a.data.carousel;if(!c.isPrevControlActive(b))return;c.slide(b,b.data(c.key).opts.slideBy).updateControlsStatus(b)});b.find(i).bind("click",{carousel:this},function(a){var c=a.data.carousel;if(!c.isNextControlActive(b))return;c.slide(b,-b.data(c.key).opts.slideBy).updateControlsStatus(b)});this.updateControlsStatus(b)},isPrevControlActive:function(a){var b=a.data(this.key);return b.count>b.perFrame&&0!=b.frontPos?true:false},isNextControlActive:function(a){var b=a.data(this.key);return b.count>b.perFrame&&b.count!=b.endPos?true:false},setControlStatus:function(a,b,c){var d=a.data(this.key);a.find(b).removeClass(d.opts.activeClass).removeClass(d.opts.inactiveClass).addClass(c?d.opts.activeClass:d.opts.inactiveClass)},updateControlsStatus:function(a){var b=a.data(this.key);this.setControlStatus(a,b.prevSelector,this.isPrevControlActive(a));this.setControlStatus(a,b.nextSelector,this.isNextControlActive(a))},slide:function(a,b){var c=a.data(this.key);if(c.opts.slideBy>1){if(b<0&&c.count-c.endPos<c.opts.slideBy){b=-(c.count-c.endPos)}if(b>0&&c.frontPos<c.opts.slideBy){b=c.frontPos}}a.find("ul").animate({"margin-left":(b>0?"+":"-")+"="+c.width*Math.abs(b)+"px"},500);c.frontPos-=b;c.endPos-=b;a.data(this.key,c);return this}}});a.fn.carousel=function(b){return this.each(function(){a.carousel.init(a(this),b)})}})(jQuery)
