var dest_element = null;
var previous_y_pos = -50;

// gradually scroll to main content section
function scroll_to_content(destination_element) {
	ScrollToElement(destination_element, true);
}

// source: http://radio.javaranch.com/pascarello/2005/01/09/1105293729000.html
function ScrollToElement(theElement, gradual){
	dest_element = theElement;

	var selectedPosX = 0;
	var selectedPosY = 0;
			  
	while(theElement != null){
		selectedPosX += theElement.offsetLeft;
		selectedPosY += theElement.offsetTop;
		theElement = theElement.offsetParent;
	}

	if (!gradual) {
		window.scrollTo(selectedPosX,selectedPosY);
	}
	else {
		var current_scroll_position = f_scrollTop();

		var destination_y = 0;
		if (current_scroll_position < selectedPosY - 25)
			destination_y = current_scroll_position + 25;
		else if (current_scroll_position > selectedPosY + 25)
			destination_y = current_scroll_position - 25;
		else return false;

		previous_y_pos = current_scroll_position;

		//window.scrollTo(selectedPosX,selectedPosY);
		window.scrollTo(selectedPosX,destination_y);

		current_scroll_position = f_scrollTop();

		// scrolled to the bottom of page before reaching target y position
		if (previous_y_pos == current_scroll_position)
			return false;

		setTimeout("ScrollToElement(dest_element, true);", 10);
	}
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
