window.onload = function(){
	window.setInterval(move_to_destination,1);
}
function move_to_destination(){
    var map_container = document.getElementById('map_container');
    var table_results = document.getElementById('table_loc');
	var table_offset = findPosY(table_results) - window.document.body.scrollTop;
	var current_offset = (map_container.current_offset||0);
	var destination_offset = Math.abs(table_offset);
	var speed = 5;

	// TOP LIMIT
	if(table_offset>0) destination_offset = 0;

	// BOTTOM LIMIT
	var bottom_limit = findPosY(document.getElementById('divider_landing'))-document.getElementById('map_container_contents').scrollHeight-findPosY(table_results)-40;
	destination_offset = Math.min(destination_offset,bottom_limit);

	// NUDGE TOWARD DESTINATION
	if(current_offset!=destination_offset){
		var delta = Math.max(Math.floor(Math.abs((current_offset-destination_offset)/speed)),1);
		current_offset += (current_offset<destination_offset)?delta:-delta;
		map_container.current_offset = current_offset;
		if(current_offset>0) map_container.style.paddingTop = current_offset + 'px';
	}
}
function findPosY(obj){
    var curtop = 0;
    if(obj.offsetParent){
        while(true){
          curtop += obj.offsetTop;
          if(!obj.offsetParent) break;
          obj = obj.offsetParent;
        }
    }else if(obj.y){
        curtop += obj.y;
    }
    return curtop;
}
