var ma_moveTimer = new Array();
var ma_speed     = 5;

function ma_move(outer, inner, x, y)
{
  var loop     = false;
  var outerObj = document.getElementById(outer);
  var innerObj = document.getElementById(inner);

  if (y < 0) {
    var minY = -(innerObj.offsetHeight - outerObj.clientHeight);
    if (parseInt(innerObj.style.top) > minY) {
      innerObj.style.top = parseInt(innerObj.style.top) + y + 'px';
      loop = true;
    }
  } else if (y > 0 && parseInt(innerObj.style.top) < 0) {
    innerObj.style.top = parseInt(innerObj.style.top) + y + 'px';
    loop = true;
  }

  if (x > 0) {
    var minX = -(innerObj.offsetWidth - outerObj.clientWidth);

    if (parseInt(innerObj.style.left) > minX) {
      innerObj.style.left = parseInt(innerObj.style.left) - x + 'px';
      loop = true;
    }
   } else if (x < 0 && parseInt(innerObj.style.left) < 0) {
    innerObj.style.left = parseInt(innerObj.style.left) - x + 'px';
    loop = true;
  }

  if (loop)
    ma_moveTimer[outer + inner] = setTimeout("ma_move('" + outer + "', '" + inner + "', " + x + ", " + y + ")", ma_speed)
} // end func ma_move

function ma_stop(outer, inner)
{
  clearTimeout(ma_moveTimer[outer + inner]);
} // end func ma_stop
