Event.observe(window, 'load', initialize);

function initialize() {
  //alert('initialize.');
  set_menu('company_profile');
  //set_menu('new_products');
  set_menu('products');
  set_menu('technical_support');
}

function set_menu(id) {
  Event.observe($(id), 'mouseover', menu_over);
  Event.observe($(id), 'mouseout', menu_out);
  Event.observe($(id + '_menu'), 'mouseover', submenu_over);
  Event.observe($(id + '_menu'), 'mouseout', submenu_out);
}

function menu_over(evt) {
  var target = Event.findElement(evt, 'div');
  show_menu_for( target );
}

function menu_out(evt) {
  var submenu = $(Event.findElement(evt, 'div').id+'_menu');

  if( Event.pointerY(evt) < Position.cumulativeOffset(submenu)[1] ) {
    hide_menu(submenu);
  }
}

function submenu_over(evt) {
  var submenu = Event.findElement(evt, 'div');
  var target = $(submenu.id.substring(0, submenu.id.length-5));
  target.setStyle( {
    'background': 'url(selected_bg.png)'
  });
  
}

function submenu_out(evt) {
  var submenu = Event.findElement(evt, 'div');
  var pointerX = Event.pointerX(evt),
      pointerY = Event.pointerY(evt);
  
  if( pointerX <= Position.cumulativeOffset(submenu)[0] ||
      pointerX >= Position.cumulativeOffset(submenu)[0] + submenu.getDimensions().width ||
      pointerY <= Position.cumulativeOffset(submenu)[1] ||
      pointerY >= Position.cumulativeOffset(submenu)[1] + submenu.getDimensions().height ) {
    hide_menu(submenu);
  }
}

function show_menu_for( target ) {

  $(target.id+'_menu').setStyle( {
    visibility: 'visible',
    left: Position.cumulativeOffset(target)[0] + 'px', 
    top: Position.cumulativeOffset(target)[1] + target.getDimensions().height + 'px'
  });
  
}

function hide_menu(submenu) {
  var target = $(submenu.id.substring(0, submenu.id.length-5));
  target.setStyle( {
    'background': 'url(header_bg.png)'
  });
  
  submenu.setStyle( {
    visibility: 'hidden'
  });
}