function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function showItem(element)
{
	myElement = $(element);
	myElement.currentOpacity.clearTimer();
	myElement.currentOpacity.goTo(1);
}

function hideItem(element)
{
	myElement = $(element);
	myElement.currentOpacity.clearTimer();
	myElement.currentOpacity.goTo(0);
}

var standardEffects = new Class({
	initialize: function () {
		this.initializeLinks();
		this.initializeMainMenu();
	},
	initializeLinks : function () {
		$S('a.axah', 'a.smoothlink').action({
			onclick: function() {
				loadLink = function ()
				{
					document.location = this.href;
				}
				mainContentEffect = new Fx.Style('page', 'opacity', {
					duration: 1000,
					onComplete: loadLink.bind(this)
				});
				mainContentEffect.custom(1, 0);
				return false;
			}
		});
		window.onunload = function(){
			mainContentEffect = new Fx.Style('page', 'opacity', {
				duration: 1000
			});
			mainContentEffect.custom(1, 0);
		}
	},
	initializeMainMenu : function () {
		var subMenusIter = 0;
		var subMenusEffects = [];
		$('nav').className="";
		$S('.menu li ul.submenu', '.menu li ul.submenu ul').action({
			initialize: function() {
				this.style.display = "block";
				this.currentOpacity = new fx.Style(this, 'opacity', {duration: 500, transition: Fx.Transitions.circOut});
				this.currentOpacity.set(0);
				this.currentOpacity.now = 0;
				this.id = "sub_" + subMenusIter;
				var curIter = subMenusIter;
				$('sub_' + curIter).menuTimer = "";
				//sendDebug(this.id);
				this.parentNode.onmouseover = function () {
					window.clearTimeout($('sub_' + curIter).menuTimer);
					showItem($('sub_' + curIter));
				}
				this.parentNode.onmouseout = function (e) {
					$('sub_' + curIter).menuTimer = window.setTimeout('hideItem($(\'sub_' + curIter + '\'))',100);
				}
				subMenusIter++;
			}
		})
	}
});
var pageEffects = "";
applyEffects = function () {
	pageEffects = new standardEffects();
}
addLoadEvent(applyEffects);