dropable_divider_name_list = [];
dropable_divider_height_list = [];
dropable_divider_height_max_list = [];
dropable_divider_momentum_list = [];
drop_is_started_list = [];
drop_direction_list = [];
drop_delay_list = [];

function dropable_divider_add(element_name, height_max)
{
  dropable_divider_is_defined = 0;
  index_temp = 0;
  while (index_temp < dropable_divider_name_list.length)
  {
    if (dropable_divider_name_list[index_temp] == element_name)
    {
      dropable_divider_is_defined = 1;
      index_temp = dropable_divider_name_list.length;
    }
    index_temp += 1;
  }
  if (dropable_divider_is_defined == 0)
  {
    dropable_divider_height_list[element_name] = 0;
    document.getElementById(element_name).style.height = '0px';
    dropable_divider_height_max_list[element_name] = height_max;
    dropable_divider_momentum_list[element_name] = 0;
    drop_is_started_list[element_name] = 0;
    drop_direction_list[element_name] = 0;
    drop_delay_list[element_name] = 0;
    dropable_divider_name_list[dropable_divider_name_list.length] = element_name;
  }
}

function divider_drop(element_name)
{
  if (drop_delay_list[element_name] > 0)
  {
    drop_delay_list[element_name] -= 1;
  } else {
    dropable_divider_momentum_list[element_name] += drop_direction_list[element_name] * 10 * dropable_divider_height_max_list[element_name] / 400;
  }
  if (drop_delay_list == 1)
  {
    // Extra boost after mouse out delay.
    dropable_divider_height_max_list[element_name] / 10 * drop_direction_list[element_name];
  }
  if (dropable_divider_height_list[element_name] > dropable_divider_height_max_list[element_name] - (1 + drop_direction_list[element_name]))
  {
    dropable_divider_height_list[element_name] = dropable_divider_height_max_list[element_name];
    dropable_divider_momentum_list[element_name] = 0;
  }
  if (dropable_divider_height_list[element_name] < 0)
  {
    dropable_divider_height_list[element_name] = 0;
    dropable_divider_momentum_list[element_name] = 0;
    document.getElementById(element_name).style.display = "none";
  } else {
    document.getElementById(element_name).style.display = "block";
  }
  if (drop_direction_list[element_name] == 1)
  {
    dropable_divider_momentum_list[element_name] *= (1.3 - (dropable_divider_height_list[element_name] / dropable_divider_height_max_list[element_name]) / 1.1) / 1.2;
    if (dropable_divider_height_list[element_name] >= dropable_divider_height_max_list[element_name])
    {
      drop_is_started_list[element_name] = 0;
    } else {
      setTimeout("divider_drop('" + element_name + "');", 50);
    }
  } else {
    dropable_divider_momentum_list[element_name] *= (1.3 - (1 - dropable_divider_height_list[element_name] / dropable_divider_height_max_list[element_name]) / 1.1) / 1.2;
    if (dropable_divider_height_list[element_name] <= 0)
    {
      drop_is_started_list[element_name] = 0;
    } else {
      setTimeout("divider_drop('" + element_name + "');", 50);
    }
  }
  dropable_divider_height_list[element_name] += dropable_divider_momentum_list[element_name];
  document.getElementById(element_name).style.height = dropable_divider_height_list[element_name] + 'px';
}
function divider_drop_start(direction, element_name, height_max)
{
  // Add information about the divider if it
  // doesn't already exist.
  dropable_divider_add(element_name, height_max);
  drop_direction_list[element_name] = direction;
  if (direction == -1)
  {
    drop_delay_list[element_name] = 10;
  } else {
    drop_delay_list[element_name] = 0;
  }
  if (drop_is_started_list[element_name] == 0)
  {
    drop_is_started_list[element_name] = 1;
    if (direction == 1)
    {
      dropable_divider_momentum_list[element_name] = dropable_divider_height_max_list[element_name] / 10 * direction;
    }
    divider_drop(element_name);
  }
}
