
// menu.js by Oto Valek <oto@email.cz>
// thanks for viewing the source code !

// system.js needed
// uses "menupopup" class in style sheet

 function menu_item(no,text,href) {
  if (href) {
   text = '<A HREF="'+href+'" CLASS="menupopup">'+text+'</SPAN>'
  }
  while (menulinescreated<no) {
   menulinescreated++
   createlayer('line'+menulinescreated,'menuDiv.document.linesDiv',0,menuline*(no-1),menumaxwidth,menuline,null,null,1,0)
  }
  writelayer('line'+no,'menuDiv.document.linesDiv',text);
 }

 function menu_show() {
  if (!existslayer('menuDiv')) return
  var x = menu_show.arguments[0]
  var y = menu_show.arguments[1]
  var w = menu_show.arguments[2]
  var len = (menu_show.arguments.length-3)/2
  menu_hide();
  for (var i = 0; i < len; i++) {
   menu_item(i+1,menu_show.arguments[2*i+3],menu_show.arguments[2*i+4])
  }
  sizeto(menu,w+2*menuborder,menuborder+len*menuline);
  sizeto(menulines,w,len*menuline);
  sizeto(leftedge,menuborder,len*menuline);
  sizeto(rightedge,menuborder,len*menuline);
  moveto(rightedge,w+menuborder,0)
  moveto(bottomedge,0,len*menuline)
  sizeto(bottomedge,w+2*menuborder,menuborder)
  sizeto(bottomcenter,w,menuborder)
  moveto(bottomright,w+menuborder,0)
  moveto(menu,x,y)
  show(menu);
  menucanhide = false;
 }

 function menu_hide() {
  sizeto(menu,0,0);
  hide(menu)
 }

 function menu_init(_menuborder,_menuline,_menumaxwidth,_color,_bottomleft,_bottomright) {
  menuborder = _menuborder
  menuline = _menuline
  menumaxwidth = _menumaxwidth
  menulinescreated = 0
  createlayer('menuDiv',0,0,0,0,0,null,null,1,0)
  createlayer('leftDiv','menuDiv',0,0,0,0,null,_color,1,0)
  createlayer('rightDiv','menuDiv',0,0,0,0,null,_color,1,0)
  createlayer('linesDiv','menuDiv',menuborder,0,0,0,null,_color,1,0)
  createlayer('bottomDiv','menuDiv',0,0,0,0,'',null,1,0)
  createlayer('bottomleftDiv','menuDiv.document.bottomDiv',0,0,menuborder,menuborder,_bottomleft,null,1,0)
  createlayer('bottomcenterDiv','menuDiv.document.bottomDiv',menuborder,0,0,0,null,_color,1,0)
  createlayer('bottomrightDiv','menuDiv.document.bottomDiv',0,0,menuborder,menuborder,_bottomright,null,1,0)

  if (!existslayer('menuDiv')) return

  menu = layerobject('menuDiv')
  menulines = layerobject('linesDiv','menuDiv')
  leftedge = layerobject('leftDiv','menuDiv')
  rightedge = layerobject('rightDiv','menuDiv')
  bottomedge = layerobject('bottomDiv','menuDiv')
  bottomleft = layerobject('bottomleftDiv','menuDiv.document.bottomDiv')
  bottomcenter = layerobject('bottomcenterDiv','menuDiv.document.bottomDiv')
  bottomright = layerobject('bottomrightDiv','menuDiv.document.bottomDiv')
  menucanhide = false
 }

 function menu_mousemove(x,y) {
  if (!existslayer('menuDiv')) return
  if (!inrect(menu,x,y,30) && menucanhide) menu_hide()
 }

 function menu_mouseout() {
  menucanhide = true;
 }
