/**
 * Smooth move script - This script is to replace the position:fixed css style
 * 
 * 
 */
 
var smooth_oldtop = 0;
var smooth_running = false;
var smooth_abort = false;
var smooth_top = 0;
var smooth_element = null;
var smooth_sticky = false;
var smooth_speed = 0.1;

var smooth_window_scrollTop = 0;
var smooth_window_scrollLeft = 0;

function smooth_goto(y)
{
	smooth_oldtop = y;
	smooth_running = true;
	smooth_scroll();
}

function smooth_get_scroll()
{
  	if (window.pageYOffset) {
 		smooth_window_scrollLeft = window.pageXOffset;
 		smooth_window_scrollTop = window.pageYOffset;
  	} else if (window.document.body && window.document.body.scrollTop) {
 		smooth_window_scrollLeft = window.document.body.scrollLeft;
 		smooth_window_scrollTop = window.document.body.scrollTop;
  	} else if (window.document.documentElement && window.document.documentElement.scrollTop) {
 		smooth_window_scrollLeft = window.document.documentElement.scrollLeft;
 		smooth_window_scrollTop = window.document.documentElement.scrollTop;
  	} else {
 		smooth_window_scrollLeft = -1;
 		smooth_window_scrollTop = -1;
  	}
}

function smooth_set_sticky(sticky)
{
	smooth_sticky = sticky;
}

function smooth_abort_scroll()
{
	smooth_abort = true;
}

function smooth_scroll()
{
	smooth_running = true;

	Dif = (parseInt(smooth_window_scrollTop) + parseInt(smooth_oldtop) - smooth_element.offsetTop) * smooth_speed;
	if (isNaN(Dif)) Dif=0

	if(Dif != 0 && !smooth_abort)
	{
		smooth_top = parseFloat(smooth_top) + parseFloat(Dif);
		smooth_element.style.top = Math.round(smooth_top) + "px";
		window.setTimeout("smooth_scroll()", 1);
	} else {
		smooth_running = false;
		if(!smooth_abort)
			smooth_element.style.top = parseInt(smooth_window_scrollTop) + parseInt(smooth_oldtop) + "px";
		else
	    	smooth_abort = false;
	}		
} 	

function smooth_update_position()
{
	if(!smooth_running && !smooth_sticky)
	{
		smooth_running = true;
		smooth_top = parseInt(smooth_element.offsetTop);
		smooth_oldtop = parseInt(smooth_element.offsetTop) - parseInt(smooth_window_scrollTop);
		smooth_get_scroll();
		
		if(smooth_speed >= 1)
		{
			smooth_element.style.top = parseInt(smooth_window_scrollTop) + parseInt(smooth_oldtop) + "px";
			smooth_running = false;
		} else {
			smooth_scroll();
		}
	} else {
		smooth_get_scroll();
	}
	window.setTimeout("smooth_update_position()", 1);
}

function smooth_init(element_id)
{
	smooth_element = window.document.getElementById(element_id);
	smooth_get_scroll();
	smooth_update_position();
}
