(function(a,b){var c=a.Widget.prototype,d={pos:"left",pos2:"right",dim:"width"},e={pos:"top",pos2:"bottom",dim:"height"};a.widget("rs.carousel",{options:{itemsPerPage:"auto",itemsPerTransition:"auto",orientation:"horizontal",loop:false,pagination:true,insertPagination:null,nextPrevActions:true,insertNextAction:null,insertPrevAction:null,speed:"normal",easing:"swing",startAt:null,nextText:"Next",prevText:"Previous",create_:null,beforeAnimate:null,afterAnimate:null},_create:function(){this.page=1;this._elements();this._defineOrientation();this._addMask();this._addNextPrevActions();this.refresh(false);this._trigger("create_",null,this.elements);return},_elements:function(){var a=this.elements={},c="."+this.widgetBaseClass;a.mask=this.element.children(c+"-mask");a.runner=this.element.find(c+"-runner").first();a.items=a.runner.children(c+"-item");a.pagination=b;a.nextAction=b;a.prevAction=b;return},_addClasses:function(){if(!this.oldClass){this.oldClass=this.element[0].className}this._removeClasses();var a=this.widgetBaseClass,b=[];b.push(a);b.push(a+"-"+this.options.orientation);b.push(a+"-items-"+this.options.itemsPerPage);this.element.addClass(b.join(" "));return},_removeClasses:function(){var b=this,c=[];this.element.removeClass(function(d,e){a.each(e.split(" "),function(a,d){if(d.indexOf(b.widgetBaseClass)!==-1){c.push(d)}});return c.join(" ")});return},_defineOrientation:function(){if(this.options.orientation==="horizontal"){this.isHorizontal=true;this.helperStr=d}else{this.isHorizontal=false;this.helperStr=e}return},_addMask:function(){var a=this.elements;if(a.mask.length){return}a.mask=a.runner.wrap('<div class="'+this.widgetBaseClass+'-mask" />').parent();this.maskAdded=true;return},_setRunnerWidth:function(){if(!this.isHorizontal){return}var a=this;this.elements.runner.width(function(){return a._getItemDim()*a.getNoOfItems()});return},_getItemDim:function(){return this.elements.items["outer"+this.helperStr.dim.charAt(0).toUpperCase()+this.helperStr.dim.slice(1)](true)},getNoOfItems:function(){return this.elements.items.length},_addNextPrevActions:function(){if(!this.options.nextPrevActions){return}var b=this,c=this.elements,d=this.options,e=this.widgetBaseClass;this._removeNextPrevActions();c.prevAction=a('<a href="#" class="'+e+'-action-prev">'+d.prevText+"</a>").bind("click."+this.widgetName,function(a){a.preventDefault();b.prev()});c.nextAction=a('<a href="#" class="'+e+'-action-next">'+d.nextText+"</a>").bind("click."+this.widgetName,function(a){a.preventDefault();b.next()});a.isFunction(d.insertPrevAction)?d.insertPrevAction.apply(c.prevAction[0]):c.prevAction.appendTo(this.element);a.isFunction(d.insertNextAction)?d.insertNextAction.apply(c.nextAction[0]):c.nextAction.appendTo(this.element)},_removeNextPrevActions:function(){var a=this.elements;if(a.nextAction){a.nextAction.remove();a.nextAction=b}if(a.prevAction){a.prevAction.remove();a.prevAction=b}return},_addPagination:function(){if(!this.options.pagination){return}var b=this,c=this.elements,d=this.options,e=this.widgetBaseClass,f=[],g=this.getNoOfPages(),h;this._removePagination();for(h=1;h<=g;h++){f[h]='<li class="'+e+'-pagination-link"><a href="#page-'+h+'">'+h+"</a></li>"}c.pagination=a('<ol class="'+e+'-pagination" />').append(f.join("")).delegate("a","click."+this.widgetName,function(a){a.preventDefault();b.goToPage(parseInt(this.hash.split("-")[1],10))});a.isFunction(d.insertPagination)?d.insertPagination.apply(c.pagination[0]):c.pagination.insertAfter(c.mask);return},_removePagination:function(){if(this.elements.pagination){this.elements.pagination.remove();this.elements.pagination=b}return},_setPages:function(){var a=1,b=0,c=this.getNoOfPages();this.pages=[];while(b<c){if(a>this.getNoOfItems()){a=this.getNoOfItems()}this.pages[b]=a;a+=this.getItemsPerTransition();b++}return},getPages:function(){return this.pages},getNoOfPages:function(){var a=this.getItemsPerTransition();if(a<=0){return 0}return Math.ceil((this.getNoOfItems()-this.getItemsPerPage())/a)+1},getItemsPerPage:function(){if(typeof this.options.itemsPerPage==="number"){return this.options.itemsPerPage}return Math.floor(this._getMaskDim()/this._getItemDim())},getItemsPerTransition:function(){if(typeof this.options.itemsPerTransition==="number"){return this.options.itemsPerTransition}return this.getItemsPerPage()},_getMaskDim:function(){return this.elements.mask[this.helperStr.dim]()},next:function(a){var b=this.page+1;if(this.options.loop&&b>this.getNoOfPages()){b=1}this.goToPage(b,a);return},prev:function(a){var b=this.page-1;if(this.options.loop&&b<1){b=this.getNoOfPages()}this.goToPage(b,a);return},goToPage:function(a,b){if(!this.options.disabled&&this._isValid(a)){this.prevPage=this.page;this.page=a;this._go(b)}return},_isValid:function(a){if(a<=this.getNoOfPages()&&a>=1){return true}return false},_makeValid:function(a){if(a<1){a=1}else if(a>this.getNoOfPages()){a=this.getNoOfPages()}return a},_go:function(a){this._slide(a);return},_slide:function(a){this._trigger("beforeAnimate",null,this.elements);var b=this,c=a===false?0:this.options.speed,d={},e=this._getAbsoluteLastPos(),f=this.elements.items.eq(this.pages[this.page-1]-1).position()[this.helperStr.pos];if(f>e){f=e}d[this.helperStr.pos]=-f;this.elements.runner.stop().animate(d,c,this.options.easing,function(){b._trigger("afterAnimate",null,b.elements)});this._updateUi();return},_getAbsoluteLastPos:function(){var a=this.elements.items.eq(this.getNoOfItems()-1);return a.position()[this.helperStr.pos]+this._getItemDim()-this._getMaskDim()-parseInt(a.css("margin-"+this.helperStr.pos2),10)},_updateUi:function(){if(this.options.pagination){this._updatePagination()}if(this.options.nextPrevActions){this._updateNextPrevActions()}return},_updatePagination:function(){var a=this.widgetBaseClass,b=a+"-pagination-link-active";this.elements.pagination.children("."+a+"-pagination-link").removeClass(b).eq(this.page-1).addClass(b);return},_updateNextPrevActions:function(){var a=this.elements,b=this.page,c=this.widgetBaseClass+"-action-disabled";a.nextAction.add(a.prevAction).removeClass(c);if(!this.options.loop){if(b===this.getNoOfPages()){a.nextAction.addClass(c)}else if(b===1){a.prevAction.addClass(c)}}return},add:function(a){this.elements.runner.append(a);this.refresh();return},remove:function(a){if(this.getNoOfItems()>0){this.elements.items.filter(a).remove();this.refresh()}return},_setOption:function(b,d){var e=["itemsPerPage","itemsPerTransition","orientation"];c._setOption.apply(this,arguments);switch(b){case"orientation":this.elements.runner.css(this.helperStr.pos,"").width("");this._defineOrientation();break;case"pagination":if(d){this._addPagination();this._updateUi()}else{this._removePagination()}break;case"nextPrevActions":if(d){this._addNextPrevActions();this._updateUi()}else{this._removeNextPrevActions()}break;case"loop":this._updateUi();break}if(a.inArray(b,e)!==-1){this.refresh()}return},_checkDisabled:function(){if(this.getNoOfItems()<=this.getItemsPerPage()){this.elements.runner.css(this.helperStr.pos,"");this.disable()}else{this.enable()}return},refresh:function(a){if(a!==false){this._recacheItems()}this._addClasses();this._setPages();this._addPagination();this._checkDisabled();this._setRunnerWidth();this.page=this._makeValid(this.page);this.goToPage(this.page,false);return},_recacheItems:function(){this.elements.items=this.elements.runner.children("."+this.widgetBaseClass+"-item");return},destroy:function(){var a=this.elements,b={};this.element.removeClass().addClass(this.oldClass);if(this.maskAdded){a.runner.unwrap("."+this.widgetBaseClass+"-mask")}b[this.helperStr.pos]="";b[this.helperStr.dim]="";a.runner.css(b);this._removePagination();this._removeNextPrevActions();c.destroy.apply(this,arguments);return},getPage:function(){return this.page},getPrevPage:function(){return this.prevPage},goToItem:function(a,b){if(typeof a!=="number"){a=this.elements.items.index(a)+1}if(a<=this.getNoOfItems()){this.goToPage(Math.ceil(a/this.getItemsPerTransition()),b)}return}});a.rs.carousel.version="0.8.5"})(jQuery)
