//xSlideTo('need_form', need_head_obj.offset().left - 20, y, slideTime);

function jqSlideTo(e, x, y, uTime) {
  if (!(el=document.getElementById(e))) return;
  if (!el.timeout) el.timeout = 25;
  el.xTarget = x; el.yTarget = y; el.slideTime = uTime; el.stop = false;
  el.yA = el.yTarget - $(el).offset().top; el.xA = el.xTarget - $(el).offset().left; // A = distance
  if (el.slideLinear) el.B = 1 / el.slideTime;
  else el.B = Math.PI / (2 * el.slideTime); // B = period
  el.yD = $(el).offset().top; el.xD = $(el).offset().left; // D = initial position
  var d = new Date(); el.C = d.getTime();
  if (!el.moving) _jqSlideTo(e);
}

function _jqSlideTo(e) {
  if (!(el=document.getElementById(e))) return;
  var now, s, t, newY, newX;
  now = new Date();
  t = now.getTime() - el.C;
  if (el.stop) { el.moving = false; }
  else if (t < el.slideTime) {
    setTimeout("_jqSlideTo('"+e+"')", el.timeout);
    s = el.B * t;
    if (!el.slideLinear) s = Math.sin(s);
    newX = Math.round(el.xA * s + el.xD);
    newY = Math.round(el.yA * s + el.yD);
    $(el).css("left", newX);
    $(el).css("top", newY);
    el.moving = true;
  }
  else {
    $(el).css("left", el.xTarget);
    $(el).css("top", el.yTarget);
    el.moving = false;
    if (el.onslideend) el.onslideend();
  }  
}

