function DivScroller(id, speed, initialScroll, initialScrollLimit, requiredDelay)
{
	isCSS = (document.body && document.body.style) ? true : false;
	isW3C = (isCSS && document.getElementById) ? true : false;
	if(! isW3C){
		return;
	}
	
	this.divObj = document.getElementById(id);
	this.lastMousePos = 0;
	this.currentMousePos = 0;
	this.speed = speed;
	this.initialScrollLimit = initialScrollLimit;
	this.delay = 3000;
	
	if(requiredDelay){
		this.delay = requiredDelay;
	}
	
	 
	if (this.divObj ){
       	this.divObj.style.overflow = 'hidden';
		 this.divObj.style.overflowX = 'hidden';
		this.divObj.speed = speed;
		this.divObj.intervalIDRight = null;
		this.divObj.intervalIDLeft = null;
		this.divObj.scrollingRight = false;		
	}	
	
	this.divObj.onmousemove = function(evt){
		evt = (evt) ? evt : ((window.event) ? window.event : null);
	
		if(evt){
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		
			if(elem){
				//this.currentMousePos = evt.clientY
				this.currentMousePos = evt.clientX;
				if(this.currentMousePos < this.lastMousePos){
					scrollLeft(this, this.speed);
				}
				else if(this.currentMousePos > this.lastMousePos) {
					scrollRight(this, this.speed);
				}
				
				//alert("Direction: " + direction + " Current: " + currentMousePos + " Last: " + lastMousePos);
				this.lastMousePos = this.currentMousePos;
			}
		}
	}	
	
	
	//time out func to scroll down list
	this.timeoutFuncRight = function(){
			var self = this;
			self.divObj.intervalCount = 0;
			this.divObj.intervalIDRight = setInterval(function(){scrollRight(self.divObj, 4, self.initialScrollLimit);}, 2);
	}
	
	
	
	
	//time out func to scroll up list
	this.timeoutFuncLeft = function(){
		var self = this;
		this.divObj.intervalIDLeft = setInterval(function(){scrollLeft(self.divObj, 4, self.initialScrollLimit);}, 2);
	}
	
	
	if(initialScroll){
		var self = this;
		setTimeout(function(){self.timeoutFuncRight();},self.delay);
		setTimeout(function(){self.timeoutFuncLeft();}, self.delay + 1000);
	}
	
}	
	
	
	
function scrollRight (divObj, speed, initialScrollLimit){
	//Scroll
	nextVal = divObj.scrollLeft + speed;
	divObj.scrollLeft += speed;
	
	//Stop at right limit
	if(divObj.scrollLeft  != nextVal){
		clearInterval(divObj.intervalIDRight);
		divObj.scrollingRight = false;
		return;
	}
	
	if(initialScrollLimit){
		if(divObj.scrollLeft >= initialScrollLimit){
			divObj.scrollingRight = false;
			clearInterval(divObj.intervalIDRight);
		}
		else{
			divObj.scrollingRight = true;
		}
	}
		
	
}

function scrollLeft (divObj, speed, initialScrollLimit){
	
	if(divObj.scrollingRight && initialScrollLimit){
		return;
	}
	
	divObj.scrollLeft -= speed;
	if(divObj.scrollLeft <= 0){
		divObj.scrollLeft = 0;
		if(initialScrollLimit){
			clearInterval(divObj.intervalIDLeft);
		}
	}
		
}
