﻿function dhscroll(){
    //author:dh20156
    var dh = this;
    this.autoid = null;
    //鍧?
    this.scrollDOM = null;
    //鍧?
    this.scrollCDOM = null;
    //灞曠ず瀹藉害锛堝拰鍧?瀹藉害涓€鑷达級
    this.showwidth = 0;
    //姣忔婊氬姩闀垮害
    this.steplength = 22;
    var oldlength = this.steplength;
    //婊氬姩鏃堕棿闂撮殧
    this.steptime = 1;
    //鍋滈】鏃堕棿
    this.resttime = 3000;
    //婊氬姩闀垮害
    this.uvwidth = 0;

    //鏃犵紳璁剧疆杩囩▼
    this.getsw = function() {
    
        var tempw = this.scrollCDOM.offsetWidth;
        var temps = this.scrollCDOM.innerHTML;
        this.scrollCDOM.innerHTML = [temps,temps].join("");
        this.scrollCDOM.style.width = tempw*2+"px";
        if(document.attachEvent){
            this.scrollDOM.attachEvent("onmouseover",dh.pause);
            this.scrollDOM.attachEvent("onmouseout",dh.goon);
        }else{
            this.scrollDOM.addEventListener("mouseover",dh.pause,true);
            this.scrollDOM.addEventListener("mouseout",dh.goon,true);
        }
        this.uvwidth = Math.ceil(this.scrollDOM.scrollWidth / 2);
    }

    //浠庡彸鍒板乏
    this.scrollleft = function(){
        if(this.autoid!=null){
            window.clearTimeout(this.autoid);
        }
        var uvleft = this.scrollDOM.scrollLeft;
        uvleft += this.steplength;

        this.scrollDOM.scrollLeft = uvleft;

        if(uvleft>=this.uvwidth){
            this.scrollDOM.scrollLeft = 0;
        }

        if(uvleft % this.showwidth == 0){
            this.autoid = window.setTimeout(function(){dh.scrollleft()},dh.resttime);
        }else{
            this.autoid = window.setTimeout(function(){dh.scrollleft()},dh.steptime);
        }
        
    }

    //浠庡乏鍒板彸
    this.scrollright = function() {
        if (this.autoid != null) {
            window.clearTimeout(this.autoid);
        }
        var uvleft = this.scrollDOM.scrollLeft;
        uvleft -= this.steplength;

        this.scrollDOM.scrollLeft = uvleft;

        if (uvleft <= 0) {
            this.scrollDOM.scrollLeft = this.uvwidth;
            
        }

        if (uvleft % this.showwidth == 0) {
            this.autoid = window.setTimeout(function() { dh.scrollright() }, dh.resttime);
        } else {
            this.autoid = window.setTimeout(function() { dh.scrollright() }, dh.steptime);
        }
    }

    //寮€濮嬫粴鍔紝鍙傛暟涓烘柟鍚戯紝棣栧睆鏄惁鍋滈】
    this.go = function(direction, rest) {
        if(this.autoid!=null){
            window.clearTimeout(this.autoid);
        }
        if(direction=="left"){
            if(rest){
                this.autoid = window.setTimeout(function(){dh.scrollleft()},5000);
            }else{
                dh.scrollleft();
            }
        }else{
            if(rest){
                this.autoid = window.setTimeout(function(){dh.scrollright()},5000);
            }else{
                dh.scrollright();
            }
        }
    }

    //寰€鍙?
    this.pre = function(){
            this.scrollright();
    }
    //寰€宸?
    this.next = function(){
            this.scrollleft();
    }
    //鏆傚仠
    this.pause = function(){
        dh.oldlength = dh.steplength;
        dh.steplength = 0;
    }
    //缁х画
    this.goon = function(){
        dh.steplength = dh.oldlength;
    }
}
