(function($){$.mbScrollable={plugin:"mb.scroller",author:"MB",version:"1.0",defaults:{width:950,elementsInPage:4,elementMargin:2,shadow:false,height:"auto",controls:"#controls",slideTimer:600,autoscroll:false,scrollTimer:6000},buildMbScrollable:function(e){return this.each(function(){this.options={};$.extend(this.options,$.mbScrollable.defaults);$.extend(this.options,e);var a=this;var b=this;var c=$(this.options.controls);this.idx=1;this.scrollTo=0;this.elements=$(this).children();this.elements.addClass("scrollEl");c.hide();$(this).children().each(function(){$(this).wrap("<div class='SECont'></div>")});if(this.options.shadow){$(this.elements).css("-moz-box-shadow",this.options.shadow);$(this.elements).css("-webkit-box-shadow",this.options.shadow)}this.elements=$(this).children();this.singleElWidth=(this.options.width/this.options.elementsInPage)-this.options.elementMargin;this.elementsWidth=(this.singleElWidth*this.elements.size())+(this.options.elementMargin*this.elements.size());this.totalPages=Math.ceil(this.elements.size()/this.options.elementsInPage);if(this.options.elementsInPage<this.options.elementsInPage){this.totalPages-=this.options.elementsInPage-this.options.elementsInPage}this.elementsInpage=Math.floor(this.options.width/this.singleElWidth);$(this.elements).css({marginRight:this.options.elementMargin,width:this.singleElWidth,display:"inline-block", float:"left"});var d=$.browser.safari&&b.options.elementsInPage>2?this.options.elementMargin/(this.options.elementsInPage):0;$(a).css({overflow:"hidden",width:this.options.width-d,height:this.options.height,paddingBottom:5,position:"relative"});$(this.elements).wrapAll("<div class='scrollableStrip'><\/div>");this.mbscrollableStrip=$(this).find(".scrollableStrip");$(this.mbscrollableStrip).css({width:this.elementsWidth,position:"relative"});$(this.elements).hover(function(){if($(a)[0].autoScrollActive)$(a).mbStopAutoscroll()},function(){if($(a)[0].autoScrollActive)$(a).mbAutoscroll()});if(this.options.autoscroll&&this.elements.size()>this.options.elementsInPage){this.autoScrollActive=true;$(this).mbAutoscroll()}$(this).mbPageIndex();$(a).mbActivateControls();$(a).mbManageControls();setTimeout(function(){$(".scrollEl").show();c.show()},100)})},mbNextPage:function(){var a=$(this).get(0);if(a.idx==a.totalPages){$(this).mbManageControls();return}var b=$.browser.safari&&a.options.elementsInPage>2?a.options.elementMargin/a.options.elementsInPage:0;a.scrollTo-=((a.singleElWidth+a.options.elementMargin)*a.options.elementsInPage)-b;if(a.scrollTo<-a.elementsWidth+a.options.width)a.scrollTo=-a.elementsWidth+a.options.width;$(a.mbscrollableStrip).animate({marginLeft:a.scrollTo},a.options.slideTimer);a.idx+=1;$(this).mbManageControls()},mbPrevPage:function(){var a=$(this).get(0);if(a.idx==1){$(this).mbManageControls();return}var b=$.browser.safari&&a.options.elementsInPage>2?a.options.elementMargin/a.options.elementsInPage:0;a.scrollTo+=((a.singleElWidth+a.options.elementMargin)*a.options.elementsInPage)+b;if(a.scrollTo>=0)a.scrollTo=0;$(a.mbscrollableStrip).animate({marginLeft:a.scrollTo},a.options.slideTimer);a.idx-=1;$(this).mbManageControls()},mbFirstPage:function(){var a=this;var b=$(this).get(0);b.scrollTo=0;$(b.mbscrollableStrip).animate({marginLeft:b.scrollTo},b.options.slideTimer);b.idx=1;$(this).mbManageControls();$(a).mbStopAutoscroll()},mbLastPage:function(){var a=this;var b=$(this).get(0);b.scrollTo=-b.elementsWidth+b.options.width;$(b.mbscrollableStrip).animate({marginLeft:b.scrollTo},b.options.slideTimer);b.idx=b.totalPages;$(this).mbManageControls();$(a).mbStopAutoscroll()},mbPageIndex:function(){var a=this;var b=$(a).get(0);var c=$(b.options.controls);var d=c.find(".pageIndex");if(d){function getPage(i){b.scrollTo=-((b.singleElWidth+b.options.elementMargin)*(b.options.elementsInPage*(i-1)));if(b.scrollTo<-b.elementsWidth+b.options.width)b.scrollTo=-b.elementsWidth+b.options.width;$(b.mbscrollableStrip).animate({marginLeft:b.scrollTo},b.options.slideTimer);b.idx=Math.floor(i);$(a).mbManageControls()}var n=0;for(var i=1;i<=b.totalPages;i++){n++;var p=$("<span class='page'> "+n+" <\/span>").bind("click",function(){getPage($(this).html());$(a).mbStopAutoscroll()});d.append(p)}}},mbAutoscroll:function(){var a="next";var b=this;var c=$(b).get(0);if(c.autoscroll)return;var d=c.options.scrollTimer;c.autoscroll=true;c.auto=setInterval(function(){a=c.idx==1?"next":c.idx==c.totalPages?"prev":a;if(a=="next")$(b).mbNextPage();else $(b).mbPrevPage()},d);$(this).mbManageControls()},mbStopAutoscroll:function(){var a=this;var b=$(a).get(0);b.autoscroll=false;clearInterval(b.auto);$(this).mbManageControls()},mbActivateControls:function(){var a=this;var b=$(a).get(0);var c=$(b.options.controls);c.find(".first").bind("click",function(){$(a).mbFirstPage()});c.find(".prev").bind("click",function(){$(a).mbStopAutoscroll();$(a).mbPrevPage()});c.find(".next").bind("click",function(){$(a).mbStopAutoscroll();$(a).mbNextPage()});c.find(".last").bind("click",function(){$(a).mbLastPage()});c.find(".start").bind("click",function(){$(a).mbAutoscroll();$(a)[0].autoScrollActive=true});c.find(".stop").bind("click",function(){$(a).mbStopAutoscroll();$(a)[0].autoScrollActive=false})},mbManageControls:function(){var a=this;var b=$(a).get(0);var c=$(b.options.controls);if(b.elements.size()<=b.options.elementsInPage){c.hide()}if(b.idx==b.totalPages){c.find(".last").addClass("disabled");c.find(".next").addClass("disabled")}else{c.find(".last").removeClass("disabled");c.find(".next").removeClass("disabled")}if(b.idx==1){c.find(".first").addClass("disabled");c.find(".prev").addClass("disabled")}else{c.find(".first").removeClass("disabled");c.find(".prev").removeClass("disabled")}if(b.autoscroll){c.find(".start").addClass("sel");c.find(".stop").removeClass("sel")}else{c.find(".start").removeClass("sel");c.find(".stop").addClass("sel")}c.find(".page").removeClass("sel");c.find(".page").eq(b.idx-1).addClass("sel");c.find(".idx").html(b.idx+" / "+b.totalPages)}};$.fn.mbScrollable=$.mbScrollable.buildMbScrollable;$.fn.mbNextPage=$.mbScrollable.mbNextPage;$.fn.mbPrevPage=$.mbScrollable.mbPrevPage;$.fn.mbFirstPage=$.mbScrollable.mbFirstPage;$.fn.mbLastPage=$.mbScrollable.mbLastPage;$.fn.mbPageIndex=$.mbScrollable.mbPageIndex;$.fn.mbAutoscroll=$.mbScrollable.mbAutoscroll;$.fn.mbStopAutoscroll=$.mbScrollable.mbStopAutoscroll;$.fn.mbActivateControls=$.mbScrollable.mbActivateControls;$.fn.mbManageControls=$.mbScrollable.mbManageControls})(jQuery);