function edit_click(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;

  if(!list_area.listToggle)
  {
    list_area.listToggle = true;
    return;
  }
  
  if(list_area.style.display == "none") list_area.style.display = "block";
  else list_area.style.display = "none";
}

function edit_change(eid)
{
  var list = document.getElementById(eid + "_list");
  if(!list) return;
  var elm = document.getElementById(eid);
  if(!elm) return;

  list.selectedIndex = -1;
  for(var i = 0; i < list.length; i++)
  {
    list.options[i].selected = (list.options[i].value == elm.value);
  }
}

function edit_enter(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  var list = document.getElementById(eid + "_list");
  if(!list) return;
  var elm = document.getElementById(eid);
  if(!elm) return;
  
  list.selectedIndex = -1;
  for(var i = 0; i < list.length; i++)
  {
    list.options[i].selected = (list.options[i].value == elm.value);
  }
  
  list_area.may_hide = false;
  
  var oitem = $("#" + eid);
  var offset = oitem.offset();
  var left = offset.left;
  var top = offset.top;
  var opts = {margin:false};
  var height = oitem.outerHeight(opts); 
  var width = oitem.outerWidth(opts); 
  //alert(elementX + ":" + elementY);
  //matrix.style.clientLeft  = active_input.currentStyle.clientLeft;
  //matrix.style.clientTop  = active_input.currentStyle.clientTop;
  
  list_area.style.width = width;
  list.style.width = width;
  list_area.style.display = "block";
  list_area.style.top  = top + height;
  list_area.style.left = left;
}

function edit_left(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  
  list_area.may_hide = true;
  list_area.listToggle = false;
  window.setTimeout("close_list('" + eid + "')", 300);
}

function list_enter(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  list_area.may_hide = false;
}

function list_left(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  list_area.may_hide = true;
  window.setTimeout("close_list('" + eid + "')", 300);
}

function close_list(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  var list = document.getElementById(eid + "_list");
  if(!list) return;
  
  if(!list_area.may_hide) return;
  
  list_area.style.display = "none";
}

function apply_selection(eid)
{
  var list_area = document.getElementById(eid + "_area");
  if(!list_area) return;
  var list = document.getElementById(eid + "_list");
  if(!list) return;
  var elm = document.getElementById(eid);
  if(!elm) return;
  
  if(list.selectedIndex != -1 && elm.value != list.value) 
    elm.value = list.value;
  
  list_area.may_hide = true;
  close_list(eid);
}
