function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
  
  function scrollToID(id) {
 	element = $(id);
   	var arr = element.cumulativeOffset();
	var y = arr[1];
	if (y<0) y = 0;
	
	new Effect.Tween(null, getScrollXY()[1], y, function(p){ scrollTo(0,p) }); // scrolls the window
}

function scrollBy(obj_id,howmany) {
 	new Effect.Move(obj_id, {
	  x: howmany, y: 0, mode: 'relative',
	  transition: Effect.Transitions.sinoidal
	});
}