﻿	var stopScroll = false;
	
	function scroll(wh_div, wh_table, wh_cell, wh_dir, wh_delay, wh_initpos) {
		var elTable = document.getElementById(wh_table);
		var elCell = document.getElementById(wh_cell);
		var elRow = elCell.parentElement;
		var elDiv = document.getElementById(wh_div);
		var wh_inc, wh_maxvalue;
		var elNewRow, elNewCell;
		
		if (wh_dir == "up") {
			var elNewRow = elRow.cloneNode(true);
			elNewRow.id = "";
			elRow.parentElement.appendChild(elNewRow);
			wh_inc = 1;
			wh_maxvalue = elRow.offsetHeight;

			elDiv.scrollTop = wh_initpos - elDiv.clientHeight;
		} else if (wh_dir == "down") {
			var elNewRow = elRow.cloneNode(true);
			elRow.id = "";
			elRow.parentElement.appendChild(elNewRow);
			wh_inc = - 1;
			wh_maxvalue = elRow.offsetHeight;
			wh_initpos *= 2;
			elDiv.scrollTop = wh_initpos - elDiv.clientHeight;
		} else if (wh_dir == "left") {
			var elNewCell = elCell.cloneNode(true);
			elNewCell.id = "";
			elCell.parentElement.appendChild(elNewCell);
			wh_inc = 1;
			wh_maxvalue = elCell.offsetWidth;
			elDiv.scrollLeft = wh_initpos - elDiv.clientWidth;
		} else {
			var elNewCell = elCell.cloneNode(true);
			elCell.id = "";
			elCell.parentElement.appendChild(elNewCell);
			wh_inc = - 1;
			wh_maxvalue = elCell.offsetWidth;
			wh_initpos *= 2;
			elDiv.scrollLeft = wh_initpos - elDiv.clientWidth;
		}
		
		doScroll(wh_div, wh_table, wh_dir, wh_delay, wh_initpos, wh_maxvalue, wh_inc);
	}
	
	function doScroll(wh_div, wh_table, wh_dir, wh_delay, wh_initpos, wh_maxvalue, wh_inc) {
		var elTable = document.getElementById(wh_table);
		var elDiv = document.getElementById(wh_div);

		if (!stopScroll) {
			if (wh_dir == "up") {
				if (elDiv.scrollTop + wh_inc > wh_maxvalue) elDiv.scrollTop = wh_initpos;
			} else if (wh_dir == "left") {
				if (elDiv.scrollLeft + wh_inc > wh_maxvalue) elDiv.scrollLeft = wh_initpos;
			} else if (wh_dir == "down") {
				if (elDiv.scrollTop == 0) elDiv.scrollTop = wh_maxvalue;
			} else if (wh_dir == "right") {
				if (elDiv.scrollLeft == 0) elDiv.scrollLeft = wh_maxvalue;
			}
			
			if (wh_dir == "up" || wh_dir == "down") elDiv.scrollTop += wh_inc;
			else elDiv.scrollLeft += wh_inc;
		}

			window.setTimeout("doScroll('" + wh_div + "', '" + wh_table + "', '" + wh_dir + "', " + wh_delay + ", " + wh_initpos + ", " + wh_maxvalue + ", " + wh_inc + ")", wh_delay);
	}