jQuery.fn.Scroll = function(opt,callbackinit,callbackbefore,callbackafter){
                if(!opt) var opt={};
                var vange_ver=1.0;
                var timerID;
                var _this=this.eq(0).find("ul:first");
                var        lineH=opt.lineHeight?parseInt(opt.lineHeight,10):_this.find("li:first").height(), //获取行高
                        lineW=opt.lineWidth?parseInt(opt.lineWidth,10):_this.find("li:first").width(), //获取行宽
                        lineNum=opt.lineNum?parseInt(opt.lineNum,10):0, //总的滚动条目数
                        speed=opt.speed?parseInt(opt.speed,10):500, //卷动速度，数值越大，速度越慢（毫秒）
                        timer=opt.timer?parseInt(opt.timer,10):3000, //滚动的时间间隔（毫秒）
                        direct=opt.direct?opt.direct:"left"; 
                if(lineNum==0) lineNum=1;
                var mPix=0;
                switch (direct){ case "up": mPix=0-lineH; break; case "down": mPix=lineH; break;
                                 case "left": mPix=0-lineW; _this.width(lineNum*lineW); break; 
                                 case "right": mPix=0-(lineNum-2)*lineW;_this.css("margin-left",0-(lineNum-1)*lineW); _this.width(lineNum*lineW);break;}
                //alert(mPix + ":" + direct);
                if(callbackinit != undefined && callbackinit  != null) callbackinit(_this);
                var scrollFunction=function(){
                        var action = {};

                        if(direct =="up" || direct == "down") action={marginTop:mPix};
                        else if(direct=="left" || direct=="right") action={marginLeft:mPix};

                        //alert(action.marginTop + "**" + action.marginLeft);
                        //alert(speed +"**" + mPix);
                        if(callbackbefore != undefined && callbackbefore != null) callbackbefore(_this);
                        _this.animate(action,speed,function(){

                                _this.find("li:first").appendTo(_this);

                                var margin={};
                                switch (direct){ case "up": margin={marginTop:0}; break; case "down": margin={marginTop:0-(lineNum-1)*lineH}; break;
                                                 case "left": margin={marginLeft:0}; break; case "right": margin={marginLeft:0-(lineNum-1)*lineW}; break;  }
                                //alert(margin.marginLeft + "##" + direct);
                                _this.css(margin);
                                if(callbackafter != undefined && callbackafter != null) callbackafter(_this);
                        });
                }
                timerID=setInterval(scrollFunction,timer);
                _this.hover(function(){
                     if(timerID != undefined || timerID != null)
                        clearInterval(timerID);
                },function(){
                     if(timerID == undefined || timerID == null)
                        timerID=setInterval(scrollFunction,timer);
                }).mouseout();
        };              

