function getAbsolutePosition(element) {
  var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent) {
    var tmp = getAbsolutePosition(element.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

function getRelativeCoordinates(event, reference) {
  var x, y;
  event = event || window.event;
  var el = event.target || event.srcElement;

  if (!window.opera && typeof event.offsetX != 'undefined') {
    // Use offset coordinates and find common offsetParent
    var pos = { x: event.offsetX, y: event.offsetY };

    // Send the coordinates upwards through the offsetParent chain.
    var e = el;
    while (e) {
      e.mouseX = pos.x;
      e.mouseY = pos.y;
      pos.x += e.offsetLeft;
      pos.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Look for the coordinates starting from the reference element.
    var e = reference;
    var offset = { x: 0, y: 0 }

    while (e) {
      if (typeof e.mouseX != 'undefined') {
        x = e.mouseX - offset.x;
        y = e.mouseY - offset.y;
        break;
      }
      offset.x += e.offsetLeft;
      offset.y += e.offsetTop;
      e = e.offsetParent;
    }

    // Reset stored coordinates
    e = el;
    while (e) {
      e.mouseX = undefined;
      e.mouseY = undefined;
      e = e.offsetParent;
    }
  }
  else {
    // Use absolute coordinates
    var pos = getAbsolutePosition(reference);
    x = event.pageX  - pos.x;
    y = event.pageY - pos.y;
  }
  // Subtract distance to middle
  return { x: x, y: y };
}

    function create_menu_hp_left_main()
    {
        var pnl_menu = document.getElementById("pnl_menu_hp_left_main");

        var m_ul = document.createElement('ul');
        
        var m_li;
        
        for(i=0; i< _arr_menu.length; i++)
        {
            m_li = document.createElement('li');
            m_li.innerHTML = _arr_menu[i];
            //m_li.innerHTML = _arr_menu[i].replace("<a ", "<a onmouseout=\"kill_menu()\" onmouseover=\"show_submenu('" + i.toString() + "')\"");
                       
            m_ul.appendChild(m_li);
        }
        
        pnl_menu.appendChild(m_ul);
    }
   
    function create_menu_hp_left_sub()
    {
    
        var pnl_menu = document.getElementById("pnl_menu_hp_left_sub");
        
        pnl_menu.removeChild[0];
        pnl_menu.innerHTML = "";
        
        var m_ul = document.createElement('ul');
        
        var m_li;

        for(i=0; i< _arr_menu_sub[parseInt(last_selected_menu_index)].length; i++)
        {
            m_li = document.createElement('li');
            m_li.setAttribute("onmouseover", "revive_menu()"); 
            m_li.setAttribute("onmouseout", "kill_menu()");            
            
            m_li.innerHTML = _arr_menu_sub[[parseInt(last_selected_menu_index)]][i].replace("<a ", "<a onmouseout=\"kill_menu()\" onmouseover=\"revive_menu()\"");
            
            
            m_ul.appendChild(m_li);
        }
        
        pnl_menu.appendChild(m_ul);

    }

var nava = document.layers;

var killtimerid = -1; 

var opentimerid = -1; 

var dom = (document.getElementById);

var iex = (document.all);

/*if (nava) { skn = document.topdeck }
else if (dom) { skn = document.getElementById("menu_hp_left_main").style }
else if (iex) { skn = topdeck.style };
*/

var last_selected_menu_index = "-1";

function hide_submenu()
{
	var pnl_m = document.getElementById("pnl_menu_hp_left_sub");

	pnl_m.style.display= "none";
	
	last_selected_menu_index = "-1";
}

function show_submenu(a_str_submenu)
{
   if(last_selected_menu_index != "-1")
   {
        hide_submenu();
        revive_menu();
   }

    last_selected_menu_index = a_str_submenu;
    
    create_menu_hp_left_sub();

	var m_el = document.getElementById("pnl_menu_hp_left_main").firstChild;

	var pos = getAbsolutePosition(m_el);

    var pnl_m = document.getElementById("pnl_menu_hp_left_sub");
    
	pnl_m.style.top = pos.y + 'px';
	pnl_m.style.left = (m_el.offsetWidth) + 'px';

    
    
	pnl_m.style.display= "block";
	
//	alert(pnl_m.innerHTML);
}

function show_menu(aCmd)
{

    //document.getElementById("txtqq").value = document.getElementById("txtqq").value + aCmd + ";";
    
    var vTime = 400; 
    
    if(last_selected_menu_index > -1) 
        vTime = 1; 

    opentimerid = window.setTimeout(aCmd, vTime);
    
} 
     
function kill_menu()
{
    //document.getElementById("txtqq").value = document.getElementById("txtqq").value + "kill" + ";";

    if(opentimerid != -1)
    {
    
   // document.getElementById("txtqq").value = document.getElementById("txtqq").value + "opentimer"+ ";";
    
        window.clearTimeout(opentimerid);
        opentimerid = -1;
    };
    
    killtimerid = window.setTimeout('hide_submenu()', 400);
}

function revive_menu()
{
    if(killtimerid == -1) 
        return;
    
    window.clearTimeout(killtimerid);
    
    killtimerid=-1;
}



