function mMarquee(target, direction, interval, step, disableMouseEvent) {
	var obj, m1, m2, offsetWidth, marquee, marqueeInterval, direction = direction || 'left', interval = interval || 10, step = step || 1;
	if (typeof(target) == 'string') {
		obj = document.getElementById(target);
	} else {
		obj = target;
	}
	obj.innerHTML = '<div>' + obj.innerHTML.replace(/^\s+|\s+$/g, '') + '</div><div></div>';
	m1 = obj.firstChild, m2 = m1.nextSibling, m2.innerHTML = m1.innerHTML;
	obj.style.overflow = 'hidden';
	if (direction == 'left' || direction == 'right') 
		obj.style.whiteSpace = 'nowrap', m1.style.display = m2.style.display = 'inline';
	function marquee(direction) {
		switch (direction) {
			case 'left':
				if (m2.offsetWidth <= obj.scrollLeft) {
					obj.scrollLeft = 0;
				} else {
					obj.scrollLeft += step;
				}
				break;
			case 'right':
				if (obj.scrollLeft <= 0) {
					obj.scrollLeft = m2.offsetWidth;
				} else {
					obj.scrollLeft -= step;
				}
				break;
			case 'up':
				if (m2.offsetHeight <= obj.scrollTop) {
					obj.scrollTop = 0;
				} else {
					obj.scrollTop += step;
				}
				break;
			case 'down':
				if (obj.scrollTop <= 0) {
					obj.scrollTop = m2.offsetHeight;
				} else {
					obj.scrollTop -= step;
				}
			default:
				break;
		}
	}
	function marqueeMove() {
		marquee(direction);
	}
	marqueeInterval = setInterval(marqueeMove, interval);
	if (!disableMouseEvent) {
		obj.onmouseover = function() { clearInterval(marqueeInterval); };
		obj.onmouseout = function() { marqueeInterval = setInterval(marqueeMove, interval); };
	}
}

