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