var scrollColumn = null;
var startScroll = null;
/*
Event.observe(window, 'load', function() {
Event.observe(window, "scroll", mapScrollObserver); 
startScroll = null;
}, false);
*/
var mapScrollObserver = function (event) {
	if ( scrollColumn ) { 
		clearInterval( scrollColumn );
	} else { 	
		startScroll = document.documentElement.scrollTop;
	}
	 scrollColumn = setInterval("moveScrollColumn()", 300);
}

var moveBox = function (num){
	var scrollBox = document.getElementById('scrollBox');
	var mapTop = findPosition($('rightColumn'));
		if(num>(mapTop[1]-4)){
			new Effect.Move(scrollBox,{x:0, y: (num-(mapTop[1]-4)), mode: 'absolute'});				
		}else{
			new Effect.Move(scrollBox,{x:0, y: 0, mode: 'absolute'});			
		}
	scrollBox = null;	
}

var moveScrollColumn = function (){
	var num = findScrollDist();	
	if(startScroll==num){
		clearInterval( scrollColumn );
		scrollColumn = null;
		moveBox(num);		
	}	
	startScroll = num;
}

var findScrollDist = function (){
	if(window.pageYOffset){
		var num = window.pageYOffset;
	}else if(document.documentElement && document.documentElement.scrollTop){
		var num = document.documentElement.scrollTop;
	}else{
		var num = document.body.scrollTop;
	}
	return num;
}

var findPosition = function ( oLink ) {
  var posX = null;
  var posY = null;
  if( oLink.offsetParent ) {
    for( posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {
      posX += oLink.offsetLeft;
      posY += oLink.offsetTop;
    }
    return [ posX, posY ];
  } else {
    posX = oLink.x;
	posY = oLink.y;
	return [ posX, posY ];
  }
}