var obj_marquee = document.getElementById("marquee1");
var repeat = null;
var marquee_spd = 50;

function marquee_init() {
	var obj_unit = obj_marquee.firstChild;
	var marquee_high = parseInt(obj_marquee.style.height);
	var marquee_wide = parseInt(obj_marquee.style.width);
	var unit_high = obj_unit.offsetHeight;
	var unit_wide = obj_unit.offsetWidth;
	var m = 0, n = 0, i = 0;
	var tmp = null;
	
	m = Math.ceil(marquee_wide / unit_wide);
	n = Math.ceil(marquee_high / unit_high);

	obj_unit.style.width = marquee_wide * (m+1);
	obj_unit.rows[0].cells[0].style.width = obj_marquee.style.width;
	
	for(i=0; i<m; i++) {
		tmp = obj_unit.rows[0].insertCell(-1);
		tmp.innerHTML = obj_unit.rows[0].cells[0].innerHTML;
		tmp.style.width = marquee_wide;
		tmp = null;
	}

	for(i=0; i<n; i++) {
		obj_marquee.appendChild(obj_unit.cloneNode(true));
	}

	return;
}

function marquee_show(direction) {
	switch(direction) {
		case "up":
			if(obj_marquee.scrollTop >= obj_marquee.children[1].offsetTop) {
				obj_marquee.scrollTop -= obj_marquee.firstChild.offsetHeight;
			} else {
				obj_marquee.scrollTop++;
			}
			break;
		case "down":
			if(obj_marquee.scrollTop <= 0) {
				obj_marquee.scrollTop += obj_marquee.firstChild.offsetHeight;
			} else {
				obj_marquee.scrollTop--;
			}
			break;
		case "left":
			if(obj_marquee.scrollLeft >= obj_marquee.firstChild.rows[0].cells[0].offsetWidth) {
				obj_marquee.scrollLeft -= obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
			} else {
				obj_marquee.scrollLeft++;
			}
			break;
		case "right":
			if(obj_marquee.scrollLeft <= 0) {
				obj_marquee.scrollLeft += obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
			} else {
				obj_marquee.scrollLeft--;
			}
			break;
		default:
			break;
	}
	return;
}

function marquee_doit() {
	var direction = "";
	direction = obj_marquee.getAttribute("direction");
	if(direction != null) marquee_show(direction);
	direction = obj_marquee.getAttribute("direction2");
	if(direction != null) marquee_show(direction);
	return;
}

marquee_init();
repeat = setInterval("marquee_doit()",marquee_spd);

marquee1.onmouseover = function() {clearInterval(repeat);}
marquee1.onmouseout = function() {repeat=setInterval("marquee_doit()",marquee_spd);}