function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

/* Start image rollover */
var actImgTag;
var selImgTag;
var clsRoll;
var imgList;
var images;
var activeImages;
var inactiveImages;

// UIR (Unobtrusive Image Rollover) v2.0.1-20060309
if (document.getElementById) {
   function initUIR() {
      actImgTag = "_on";
      //actImgTag = "";
      selImgTag = "_sel";
      clsRoll = "roll";

      imgList = '';
      var images = document.getElementsByTagName('img');

      for (var i=0; i<images.length; i++) {
         if (eval('/' + clsRoll + '/').test(images[i].className)) {
            imgList += images[i].src + ",";
            setEvents(images[i]);
         }
      }

      if (imgList != '') {
         imgList = imgList.substring(0, imgList.length-1);
         preload(imgList.split(","));
      }
   }

   function setEvents(element) {
      element.parentNode.onmouseover = function() { roll(this); }
      element.parentNode.onmouseout = function() { roll(this); }
      element.parentNode.onfocus = function() { roll(this); }
      element.parentNode.onblur = function() { roll(this); }
   }

   function preload(imgList) {
      activeImages = new Array(imgList.length);
      inactiveImages = new Array(imgList.length);

      for (var i=0; i<imgList.length; i++) {
         activeImages[i] = new Image();
         activeImages[i].src = getBaseName(imgList[i]) + actImgTag + getExt(imgList[i]);
         inactiveImages[i] = new Image();
         inactiveImages[i].src = getBaseName(imgList[i]) + getExt(imgList[i]);
      }
   }

   function getBaseName(filename) {
      if (eval('/'+actImgTag+'\./').test(filename)) filename = filename.replace(actImgTag+'.', '.');
      if (eval('/'+selImgTag+'\./').test(filename)) filename = filename.replace(selImgTag+'.', '.');
      return filename.substring(0, filename.lastIndexOf('.'));
   }

   function getExt(filename) {
      return filename.substring(filename.lastIndexOf('.'), filename.length);
   }

   function getImage(imageName, isActive) {
      (isActive==0) ? images = inactiveImages : images = activeImages;
      for (var i=0; i<images.length; i++) {
         if (getBaseName(imageName) == getBaseName(images[i].src)) {
            return images[i];
            break;
         }
      }
      return [];
   }

   function roll(element) {
      var src, newSrc;
      var node, currNode;

      for (var i=0; i<element.childNodes.length; i++) {
         currNode = element.childNodes[i];
         if (currNode.nodeType==1 && /img/i.test(currNode.nodeName)) {
            node = i;
            break;
         }
      }
      src = element.childNodes[node].src;
      if (!(eval('/'+selImgTag+'\./').test(src))) {
         newSrc = getImage(src,!(eval('/'+actImgTag+'\./').test(src))).src;
      }
      if (!(typeof(newSrc)=='undefined')) element.childNodes[node].src = newSrc;
   }

   addLoadEvent(initUIR);
} // (C) 2005 Emanuele Rodriguez <erodri@gmail.com>
/* End image rollover */

function externalLinks() {
   if (!document.getElementsByTagName) return;
   var anchors = document.getElementsByTagName("a");
   for (var i=0; i<anchors.length; i++) {
      var anchor = anchors[i];
      if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
         anchor.target = "_blank";
      if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "top")
         anchor.target = "_top";
      if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "back")
         anchor.setAttribute("href", "javascript:history.back();");
   }
}
// define onload events
addLoadEvent(externalLinks);

// submenu handling
var numMenuItems = 0;
var selSubMenu = 0;

function showSubMenu(num) {
  for (i=1; i<=numMenuItems; i++) {
    if ($('#nav_i'+i).attr('class') == 'sel') {
      selSubMenu = i;
      $('#nav_i'+i).removeClass('sel');
    }
    (i==num)?$('#nav_i'+i).addClass('act'):$('#nav_i'+i).removeClass('act');
  }
}

function hideSubMenus() {
  for (i=1; i<=numMenuItems; i++) {
    $('#nav_i'+i).removeClass('act');
  }
  (selSubMenu>0)?$('#nav_i'+selSubMenu).addClass('sel'):void(null);
}

$(document).ready(
  function() {
    if (numMenuItems == 0) numMenuItems = $('#nav ul.menu>li').length;

  	$('#nav').hover( function() {}, function() { hideSubMenus(); } );

    for (i=1; i<=numMenuItems; i++) {
      eval("$('#nav_i"+i+" a').hover( function() { showSubMenu("+i+"); }, function() {} );");
    }
  }
);
// end submenu handling
