var scroll_timer = null;

function scroll_up(view_id, inner_id, speed, event_top, event_middle) {
	view = document.getElementById(view_id);

	inner = document.getElementById(inner_id);

	if (inner.offsetTop < 0) {
		if ( ((inner.offsetTop * -1) + view.offsetHeight) < inner.offsetHeight) {
			if (event_middle.length > 0) {
				cmd = event_middle + "()";
				eval(cmd);
			}
		}
	
		move(inner_id, 0, 10, speed);
		
		cmd = "scroll_up('" + view_id + "', '" + inner_id + "', '" + speed + "', '" + event_top + "', '" + event_middle + "')";
		scroll_timer = setTimeout(cmd, (speed * .4));
		
	} else {
		if (event_top.length > 0) {
			cmd = event_top + "()";
			eval(cmd);
		}
	}

}


function scroll_down(view_id, inner_id, speed, event_bottom, event_middle) {
	view = document.getElementById(view_id);
	
	inner = document.getElementById(inner_id);

	if ( ((inner.offsetTop * -1) + view.offsetHeight) < inner.offsetHeight) {
		if (inner.offsetTop < 0) {
			if (event_middle.length > 0) {
				cmd = event_middle + "()";
				eval(cmd);
			}
		}
	
		move(inner_id, 0, -10, speed);
		
		cmd = "scroll_down('" + view_id + "', '" + inner_id + "', '" + speed + "', '" + event_bottom + "', '" + event_middle + "')";
		scroll_timer = setTimeout(cmd, (speed * .4));

	} else {
		if (event_bottom.length > 0) {
			cmd = event_bottom + "()";
			eval(cmd);
		}
	
	}
}

function scroll_stop() {
	if (scroll_timer != null) {
		clearTimeout(scroll_timer);
	}
}

var fps = 100;
function move(eleId, varX, varY, transTime) {
	if(eleId) {
		i = 0;
		oDiv = document.getElementById(eleId);
		startX = oDiv.style.left.replace(/px/, "") * 1;
		startY = oDiv.style.top.replace(/px/, "") * 1;
		steps = fps * (transTime / 1000);
		delay = transTime / steps;
		incX = varX / steps;
		incY = varY / steps;
	}
	if (i <= steps) {
		var posX = Math.ceil(startX + (i * incX));
		var posY = Math.ceil(startY + (i * incY));
		oDiv.style.left = posX + "px";
		oDiv.style.top = posY + "px";
		i++;
		setTimeout("move()", delay);
	} else {
		// alert('done');
		return;
	}
}
