/* 
  Provides necessary javascript functions for Blurb dropdown menus.
  This script depends prototype.js
  
  Author: Nathan Manousos (with help from Greg Tomei)
*/


if (typeof Blurb == "undefined"){ var Blurb = {}; }
Blurb.SlickDrop = {};


Blurb.SlickDrop.drop = function()
{  
  //alert(arguments.length);
  obj = (arguments.length == 1 ? arguments[0] : this);
  
  //find selected submenu
  thisSub = Element.ancestors(obj)[0].getElementsBySelector('ul.submenu')[0];
  
  //find selected li
  thisList = Element.ancestors(thisSub)[0];

  //find all submenus
  allSubs = $$('ul.submenu')
  
  if(thisSub.hasClassName('active'))
  {
    //deactivate
    thisSub.removeClassName('active');
    thisList.removeClassName('active');
    active=0;
  }
  else
  {
    Blurb.SlickDrop.clearMenus('li');
    thisSub.addClassName('active');
    thisList.addClassName('active');
    active = 1;
  } 
}



Blurb.SlickDrop.clearMenus = function()
{   
  allSubs = $$('ul.submenu');
  allLists = $$('li');

  for(i=0;i<allSubs.length;i++)
  {
    allSubs[i].removeClassName('active');
  }

  for(i=0;i<allLists.length;i++)
  {
    allLists[i].removeClassName('active');
  }
}


Blurb.SlickDrop.init = function()
{
  menu_arrow = $$('.menu-arrow');
  li = $$('li.top-level');
  
  menu_arrow.each(function(element) {
    element.addClassName('show');
  });
  
  $$('.top-level').each(function(element) {
    element.addClassName('has-arrow');
  });
    
  menu_arrow.each(function(element) { 
    Event.observe(element, 'click', Blurb.SlickDrop.drop.bindAsEventListener(element) );
  });
  
  li.each(function(element) { 
    Event.observe(element, 'mouseover', function(){element.addClassName('hover')}  );
  });
  
  li.each(function(element) { 
    Event.observe(element, 'mouseout', function(){element.removeClassName('hover')}  );
  });
  
  menu_arrow.each(function(element) { 
    Event.observe(element, 'mouseover', function(){element.addClassName('hover')}  );
  });
  
  menu_arrow.each(function(element) { 
    Event.observe(element, 'mouseout', function(){element.removeClassName('hover')}  );
  });  
  
  Event.observe(document.body, 'click', function(event) {
    var element = Event.element(event);
    Element.extend(element);
    if( ! (element.hasClassName('menu-arrow') || element.hasClassName('submenu') || element.hasClassName('separate') || element.hasClassName('top-level') || element.hasClassName('')  ) ) //condition hide the menu
      Blurb.SlickDrop.clearMenus();
  });
}

