var $jq = jQuery; //for compability with scriptalicious
var Site = {};

/**
 * Set the variable that indicates if JavaScript behaviors should be applied
 */
Site.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;

/**
 * Extends the current object with the parameter. Works recursively.
 */
Site.extend = function(obj) {
  for (var i in obj) {
    if (this[i]) {
      Site.extend.apply(this[i], [obj[i]]);
    }
    else {
      this[i] = obj[i];
    }
  }
};

Site.dhtmlMenu = {};
//Site.settings.dhtmlMenu.useEffects = true;
Site.extend({ settings: {"dhtmlMenu": { "useEffects": 1 } }})


/**
 * Attaches the online users autoupdate behaviour to the block content.
 */
Site.dhtmlMenu.autoAttach = function() {
	
  var cookievalue = Site.dhtmlMenu.getCookie('dhtml_menu');
  if (cookievalue != '') {
    var cookieList = cookievalue.split(',');
    for (var i = 0; i < cookieList.length; i++) {
      $jq('#'+ cookieList[i]).show();
      $jq('#'+ cookieList[i]).removeClass('sub-collapsed').addClass('sub-expanded');
      $jq('#menu-' + cookieList[i]).removeClass('collapsed').addClass('expanded');
	  
	  //mine
	  //save for later to have only one item open!
	  var subM = $jq('#' + cookieList[i]);
	  var parentM = $jq('#menu-' + cookieList[i]);
	  var level0 = subM.is('.level0');
	  if(level0){
	  	level0ExpandedSub = subM;
		level0ExpandedParent = parentM;
	  } else {
		level1ExpandedSub = subM;
		level1ExpandedParent = parentM;
	  }
	  //end mine
    }
  }

  $jq('ul.menu li[@class!="leaf"] > a').each(function() {
    if ($jq(this).parent().children('div.submenu').length > 0) {
      $jq(this)
      .css({display: 'block', zIndex: 2})
      .click(function(e) {
        id = $jq(this).parents()[0].id.replace('menu-', '');
        Site.dhtmlMenu.switchMenu($jq('#'+ id)[0], $jq(this).parents()[0]);
		 //mine
		var passedurl = this.href;
		setTimeout(function(){window.location = passedurl}, 400);
		 //end mine
        return false;
      })
      .dblclick(function(e) {
        window.location = this.href;
      });
    }
  });

  $jq(window).unload(Site.dhtmlMenu.saveMenuState);
};

/**
 *  Changes the state of a submenu from open to close.
 */
var level0ExpandedSub;
var level0ExpandedParent;
var level1ExpandedSub;
var level1ExpandedParent;
Site.dhtmlMenu.switchMenu = function(submenu, parent) {
  if($jq(parent).is('.expanded')) {
    if (Site.settings.dhtmlMenu.useEffects) {
      $jq(submenu).animate({height: 'hide', opacity: 'hide'}, '500');
    } else {
      $jq(submenu).css('display', 'none');
    }
    $jq(parent).removeClass('expanded').addClass('collapsed');
    $jq(submenu).removeClass('sub-expanded').addClass('sub-collapsed');
  } else {
  	  
	//mine
  	//check if old one is still open
	//from the same level
	var level0 = $jq(submenu).is('.level0'); //check for level
	
	//top level
	if(level0){
		if(level0ExpandedSub!= null){
			if (Site.settings.dhtmlMenu.useEffects) {
		      level0ExpandedSub.animate({height: 'hide', opacity: 'hide'}, '500');
		    } else {
		      level0ExpandedSub.css('display', 'none');
		    }
		    level0ExpandedParent.removeClass('expanded').addClass('collapsed');
		    level0ExpandedSub.removeClass('sub-expanded').addClass('sub-collapsed');
		}
		//save for later
		level0ExpandedSub = $jq(submenu);
		level0ExpandedParent = $jq(parent);		
	} else {
	
		//alert("level1ExpandedSub" + level1ExpandedSub);
		if(level1ExpandedSub!= null){
			if (Site.settings.dhtmlMenu.useEffects) {
		      level1ExpandedSub.animate({height: 'hide', opacity: 'hide'}, '500');
		    } else {
		      level1ExpandedSub.css('display', 'none');
		    }
		    level1ExpandedParent.removeClass('expanded').addClass('collapsed');
		    level1ExpandedSub.removeClass('sub-expanded').addClass('sub-collapsed');
		}
		//save for later
		level1ExpandedSub = $jq(submenu);
		level1ExpandedParent = $jq(parent);	
	}
	//end mine
	  
    if (Site.settings.dhtmlMenu.useEffects) {
      $jq(submenu).animate({height: 'show', opacity: 'show'}, '500');
    } else {
      $jq(submenu).css('display', 'block');
    }
    $jq(parent).removeClass('collapsed').addClass('expanded');
    $jq(submenu).removeClass('sub-collapsed').addClass('sub-expanded');
  }
  Site.dhtmlMenu.saveMenuState();
}

/**
 * Grabs the cookie data.
 */
Site.dhtmlMenu.getCookie = function(name) {
  var search = name + '=';
  var returnvalue = '';
  
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      var end = document.cookie.indexOf(';', offset);
      if (end == -1) {
        end = document.cookie.length;
      }
      returnvalue = unescape(document.cookie.substring(offset, end));
    }
  }

  return returnvalue;
}

/**
 * Saves the states of the menus.
 */
Site.dhtmlMenu.saveMenuState = function() {
  var blocks = '';
  $jq('div.submenu').each(function(i) {
    if ($jq(this).is('.sub-expanded')) {
      if (blocks != '') {
        blocks += ',';
      }
      blocks += this.id;
    }
  });

  //alert(blocks);
  document.cookie = 'dhtml_menu=' + blocks + ';path=/';
}

if (Site.jsEnabled) {
  $jq(document).ready(Site.dhtmlMenu.autoAttach);
}// JavaScript Document
