
var navi_item_show_active = Array();
var navi_item_hide_active = Array();

var navi_pos_y_offset = 260;
var navi_pos_y = 0;
var navi_target_pos_y = 0;

function show_navi_sub(OBJ_ID,FINAL_HEIGHT)
{
  //check if item is in action
  var is_active = in_array(navi_item_hide_active,OBJ_ID);
  if (is_active < 0 )
  {
    is_active = in_array(navi_item_show_active,OBJ_ID);
    if (is_active < 0)
    {
      navi_item_show_active.push(OBJ_ID);
      //alert (navi_item_show_active.length);
      cmd = "show_navi_sub_action('"+OBJ_ID+"',"+FINAL_HEIGHT+")";
      window.setTimeout(cmd,10);
    }
    else
    {
      return; // do nothing
    }
  }
  else
  {
    // wait until hide finished
    cmd = "show_navi_sub('"+OBJ_ID+"',"+FINAL_HEIGHT+")";
    window.setTimeout(cmd,10);
  }
}

function show_navi_sub_action(OBJ_ID,FINAL_HEIGHT)
{
  var obj = document.getElementById(OBJ_ID);
  var new_height = parseInt(obj.style.height);

  if (new_height < FINAL_HEIGHT)
  {
    new_height +=5;
    if (new_height > FINAL_HEIGHT) new_height=FINAL_HEIGHT;

    obj.style.height = new_height+'px';

    var cmd = "show_navi_sub_action('"+OBJ_ID+"',"+FINAL_HEIGHT+")";
    window.setTimeout(cmd,10);
  }
  else
  {
    is_active = in_array(navi_item_show_active,OBJ_ID);
    if (is_active >= 0)
    {
      navi_item_show_active.splice(is_active,1);
      //alert (navi_item_show_active.length);
    }
  }
}

function hide_navi_sub(OBJ_ID)
{
  var is_active = in_array(navi_item_show_active,OBJ_ID);
  if (is_active < 0 )
  {
    is_active = in_array(navi_item_hide_active,OBJ_ID);
    if (is_active < 0)
    {
      navi_item_hide_active.push(OBJ_ID);
      var cmd = "hide_navi_sub_action('"+OBJ_ID+"')";
      window.setTimeout(cmd,10);
    }
    else
    {
      return;
    }
  }
  else
  {
    var cmd = "hide_navi_sub('"+OBJ_ID+"')";
    window.setTimeout(cmd,10);
  }
}

function hide_navi_sub_action(OBJ_ID)
{
  var obj = document.getElementById(OBJ_ID);
  var new_height = parseInt(obj.style.height);

  if(new_height > 0)
  {
    new_height -=5;
    if (new_height < 0) new_height = 0;

    obj.style.height = new_height+'px';

    var cmd = "hide_navi_sub_action('"+OBJ_ID+"')";
    window.setTimeout(cmd,10);
  }
  else
  {
    var is_active = in_array(navi_item_hide_active,OBJ_ID);
    if (is_active >= 0)
    {
      navi_item_hide_active.splice(is_active,1);
    }
  }
}

function in_array(ARRAY,VALUE)
{
  var result = -1;
  for (counter = 0; counter < ARRAY.length; counter++)
  {
    if (ARRAY[counter] == VALUE)
    {
      result = counter;
    }
  }
  return result;
}


function navi_scroll(NAVI_ID)
{

  var navi = document.getElementById(NAVI_ID);
  var scroll_y = 0;

  // get current scroll position

  if (self.pageYOffset) // all except Explorer
  {
    scroll_y = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop)
	// Explorer 6 Strict
  {
    scroll_y = document.documentElement.scrollTop;
  }
  else if (document.body) // all other Explorers
  {
    scroll_y = document.body.scrollTop;
  }

  // update target position
  navi_target_pos_y = scroll_y;
  //alert(navi_target_pos_y);

  // scroll if necessary
  if (navi_pos_y != navi_target_pos_y)
  {
    //var new_y = navi_target_pos_y + navi_pos_y_offset;
    //navi_pos_y = navi_target_pos_y;
    var new_y = navi_pos_y + ((navi_target_pos_y - navi_pos_y)/3 +1) + navi_pos_y_offset;
    navi_pos_y = new_y - navi_pos_y_offset;
    navi.style.top = new_y+"px";
  }

  var timeout_cmd = "navi_scroll('"+NAVI_ID+"')";
  window.setTimeout(timeout_cmd,20);

}

