(function($){$.mbScrollable={plugin:"mb.scroller",author:"MB",version:"1.0",defaults:{dir:"orizontal",width:950,elementsInPage:4,elementMargin:2,shadow:false,height:"auto",controls:"#controls",slideTimer:600,autoscroll:false,scrollTimer:6000},buildMbScrollable:function(g){return this.each(function(){this.options={};$.extend(this.options,$.mbScrollable.defaults);$.extend(this.options,g);var a=this;var b=this;this.isVertical=this.options.dir!="orizontal";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();var d=this.options.elementsInPage<this.elements.size()?this.options.elementsInPage:this.elements.size();if(this.isVertical){this.singleElDim=(this.options.height/d)-this.options.elementMargin;$(this.elements).css({marginBottom:this.options.elementMargin,height:this.singleElDim,width:this.options.width})}else{this.singleElDim=(this.options.width/d)-this.options.elementMargin;$(this.elements).css({marginRight:this.options.elementMargin,width:this.singleElDim,display:"inline-block"})}this.elementsDim=(this.singleElDim*this.elements.size())+(this.options.elementMargin*this.elements.size());this.totalPages=Math.ceil(this.elements.size()/this.options.elementsInPage);var e=$.browser.safari&&b.options.elementsInPage>2?this.options.elementMargin/(this.options.elementsInPage):0;if(this.isVertical)$(a).css({overflow:"hidden",height:this.options.height-e,width:this.options.width,paddingRight:5,position:"relative"});else $(a).css({overflow:"hidden",width:this.options.width-e,height:this.options.height,paddingBottom:5,position:"relative"});var f=$("<div class='scrollableStrip'/>").css({width:this.elementsDim,position:"relative"});$(this.elements).wrapAll(f);this.mbscrollableStrip=$(this).find(".scrollableStrip");$(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();setTimeout(function(){$(".scrollEl").fadeIn()},1000);$(a).mbManageControls()})},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.singleElDim+a.options.elementMargin)*a.options.elementsInPage)-b;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+=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.singleElDim+a.options.elementMargin)*a.options.elementsInPage)+b;if(a.isVertical){if(a.scrollTo>=0)a.scrollTo=0;$(a.mbscrollableStrip).animate({marginTop:a.scrollTo},a.options.slideTimer)}else{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).get(0);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);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;$(this).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()});c.append(p)}}},mbAutoscroll:function(){var a="next";var b=$(this).get(0);if(b.autoscroll)return;var c=b.options.scrollTimer;b.autoscroll=true;b.auto=setInterval(function(){a=b.idx==1?"next":b.idx==b.totalPages?"prev":a;if(a=="next")$(b).mbNextPage();else $(b).mbPrevPage()},c);$(b).mbManageControls()},mbStopAutoscroll:function(){var a=$(this).get(0);a.autoscroll=false;clearInterval(a.auto);$(a).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()}else{c.fadeIn()}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);
