/**
* JavaScript routines for Krumo
*
* @link http://sourceforge.net/projects/krumo
*/

/////////////////////////////////////////////////////////////////////////////

/**
* Krumo JS Class
*/
function krumo() {
  }

// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

/**
* Add a CSS class to an HTML element
*
* @param HtmlElement el
* @param string className
* @return void
*/
krumo.reclass = function(el, className) {
  if (el.className.indexOf(className) < 0) {
    el.className += (' ' + className);
    }
  }

// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

/**
* Remove a CSS class to an HTML element
*
* @param HtmlElement el
* @param string className
* @return void
*/
krumo.unclass = function(el, className) {
  if (el.className.indexOf(className) > -1) {
    el.className = el.className.replace(className, '');
    }
  }

// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

/**
* Toggle the nodes connected to an HTML element
*
* @param HtmlElement el
* @return void
*/
krumo.toggle = function(el) {
  var ul = el.parentNode.getElementsByTagName('ul');
  for (var i=0; i<ul.length; i++) {
    if (ul[i].parentNode.parentNode == el.parentNode) {
      ul[i].parentNode.style.display = (window.getComputedStyle(ul[i].parentNode).display == 'none')
        ? 'block'
        : 'none';
      }
    }

  // toggle class
  //
  if (ul[0].parentNode.style.display == 'block') {
    krumo.reclass(el, 'krumo-opened');
    } else {
    krumo.unclass(el, 'krumo-opened');
    }
  }

// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

/**
* Hover over an HTML element
*
* @param HtmlElement el 
* @return void
*/
krumo.over = function(el) {
  krumo.reclass(el, 'krumo-hover');
  }

// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

/**
* Hover out an HTML element
*
* @param HtmlElement el 
* @return void
*/

krumo.out = function(el) {
  krumo.unclass(el, 'krumo-hover');
  }

/////////////////////////////////////////////////////////////////////////////
