(function($){$.fn.extend({scrollGoods:function(b,c,d){return this.each(function(){if(typeof b=="string"){var a=$.data(this,"scrollGoods");a[b].apply(a,[c,d])}else{new $.scrollGoods(this,b,c)}})}});$.scrollGoods=function(a,b){$.data(a,"scrollGoods",this);this.init(a,b)};$.extend($.scrollGoods.prototype,{init:function(e,f){var g=this;var h={size:4,horizontal:true,activeClass:'active_',firstPageClass:'firstPage_',lastPageClass:'lastPage_',otherPageClass:'otherPage_',verticalClass:'vertical_',speed:300,onSeek:null,items:'.items_',prev:'.prev_',next:'.next_',navi:'.navi_',naviItem:'span'};this.opts=$.extend(h,f);var j=this.root=$(e);var k=$(h.items,j);if(!k.length)k=j;k.css({position:'relative',overflow:'hidden',visibility:'visible'});k.children().wrapAll('<div class="scrollListBox_" style="position:absolute"/>');this.wrap=k.children(":first");this.wrap.css(h.horizontal?"width":"height","200000em").after('<br clear="all"/>');this.items=this.wrap.children();this.index=0;var ws=j.parent().parent().width()-100;k.width(ws);this.items.width((ws)/h.size);$(".scrollListBox_").each(function(){var JustifyBox = k.children().children();var Tallest = 0;  JustifyBox.each(function(){  var ThisHeight = $(this).height();  if(ThisHeight > Tallest){  Tallest = ThisHeight;};});JustifyBox.height(Tallest);k.height(Tallest+20);});if($.isFunction($.fn.mousewheel)){j.bind("mousewheel.scrollGoods",function(a,b){g.move(-b,50);return false})}$(window).bind("keypress.scrollGoods",function(a){if($(a.target).parents(".scrollListBox_").length){if(h.horizontal&&(a.keyCode==37||a.keyCode==39)){g.move(a.keyCode==37?-1:1);return false}}return true});this.items.each(function(a,b){$(this).bind("click.scrollGoods",function(){g.click(a)})});this.activeIndex=0;$(h.prev,j).click(function(){g.prev()});$(h.next,j).click(function(){g.next()});$(h.navi,j).each(function(){var b=$(this);var c=g.getStatus();if(c.mathpages<=1){$(this).parent().parent().children(".prevBox_").hide();$(this).parent().parent().children(".nextBox_").hide();};if(b.is(":empty")&&c.pages!=0&&c.mathpages>1){for(var i=0;i<c.pages+1;i++){var n=$("<"+h.naviItem+"/>").attr("page",i);if(i==0){n.addClass(h.firstPageClass)}else if(i==c.pages){n.addClass(h.lastPageClass)}else{n.addClass(h.otherPageClass)}d=n.click(function(){var a=$(this);a.parent().children().removeClass(h.activeClass);a.addClass(h.activeClass);g.setPage(a.attr("page"));});if(i==0)d.addClass(h.activeClass);b.append(d)}}else{b.children().each(function(i){var a=$(this);a.attr("page",i);if(i==0)a.addClass(h.activeClass);a.click(function(){a.parent().children().removeClass(h.activeClass);a.addClass(h.activeClass);g.setPage(a.attr("page"));})})}})},click:function(a){var b=this.items.eq(a);if(b.attr("href").length>0){location.href(b.attr("href"))};var c=this.opts.activeClass;if(!b.hasClass(c)&&(a>=0||a<this.items.size())){var d=this.items.eq(this.activeIndex).removeClass(c);b.addClass(c);this.seekTo(a-Math.floor(this.opts.size/2));this.activeIndex=a}},getStatus:function(){var a=this.items.size();var s={length:a,index:this.index,size:this.opts.size,mathpages:(a/this.opts.size),pages:Math.floor(a/this.opts.size),page:Math.floor(this.index/this.opts.size)};return s},seekTo:function(a,b){if((this.items.length-this.opts.size)<0){return false};if(a<0)a=0;a=Math.min(a,this.items.length-this.opts.size);var c=this.items.eq(a);if(c.size()==0)return false;this.index=a;if(this.opts.horizontal){var d=this.wrap.offset().left-c.offset().left;this.wrap.animate({left:d},b||this.opts.speed)}var f=$(this.opts.navi,this.root);if(f.length){var g=this.opts.activeClass;var h=Math.round(a/this.opts.size);f.children().removeClass(g).eq(h).addClass(g)}return true;},move:function(a,b){this.seekTo(this.index+a,b)},next:function(a){this.move(1,a)},prev:function(a){this.move(-1,a)},movePage:function(a,b){this.move(this.opts.size*a,b)},setPage:function(a,b){this.seekTo(this.opts.size*a,b)},prevPage:function(a){var b=Math.floor(this.index/this.opts.size);this.seekTo(this.opts.size*(b-1),a)},nextPage:function(a){var b=Math.floor(this.index/this.opts.size);this.seekTo(this.opts.size*(b+1),a)},begin:function(a){this.seekTo(0,a)},end:function(a){this.seekTo(this.items.size()-this.opts.size,a)}})})(jQuery);
