function rotator(scrollItems, interval, denominator){  
    this.obj = $(scrollItems);
	this.position = $(scrollItems).position().left;
	this.interval = interval;
	this.denominator = denominator;	
}

rotator.prototype.obj = '';
rotator.prototype.items = '';
rotator.prototype.direction = 'horizontal'; // [vertical|horizontal]
rotator.prototype.interval = '5'; // 數字越大, 移動的速度越慢
rotator.prototype.denominator = '5'; // 數字越大, 移動的間距越小

rotator.prototype.speed = 'constant' //[constant|slow] 等速|漸慢
rotator.prototype.position = 0;

rotator.prototype._timer = '';


rotator.prototype.moveto = function(position) {
    this.moveby(position - this.position);
}

rotator.prototype.moveby = function(distance) {
    clearTimeout(this._timer);
    this.position += distance;

    if(this.direction == 'vertical'){
            
    } else if(this.direction == 'horizontal'){
        this.obj.css('margin-left', (parseInt(this.obj.css('margin-left').replace("px", ""))-parseInt(distance))+"px");
    }			
    if(distance > 0){
        this.obj.find('div:last').insertBefore(this.obj.find('div:first'));
	} else {
	    this.obj.find('div:first').insertAfter(this.obj.find('div:last'));
	}
    this.move();
}


rotator.prototype.move = function() {
    var self = this;
    
    function  update(){
        if(self.direction == 'vertical'){
            distance = self.position - self.obj.position().top;
        } else if(self.direction == 'horizontal'){
            distance = self.position - self.obj.position().left;
        }
        if(distance == 0){
			return 0;
        }

        if(self.speed == 'constant'){
            if(distance > 0 && self.denominator < distance){		
    	        move = self.denominator;
			} else if(distance < 0 && self.denominator + distance < 0){
			    move = 0 - self.denominator;		
		    } else {
		        move = distance;			    
		    }
        } else if(self.speed == 'slow'){
            move = Math.ceil(distance / self.denominator);
            if(distance > 0 && move == 0){
                move = 1;
            } else if(distance < 0 && move == 0){
                move = -1;
            }
        }
    
		
        if(self.direction == 'vertical'){
            self.obj.scrollTop += move;
        } else if(self.direction == 'horizontal'){
            self.obj.css('left', self.obj.position().left + move);
        }
		
        self._timer = window.setTimeout ( update, self.interval );
    }

    this._timer = setTimeout(update, this.interval);  	
}

rotator.prototype.exchange = function() {
    
}

