var busyOpening = false;
var busyClosing = false;

function is_child_of(parent, child) {
// by Author Hamid Alipour Codehead @ webmaster-forums.code-head.com
	if( child != null ) {
		while( child.parentNode ) {
			if( (child = child.parentNode) == parent ) {
				return true;
			}
		}
	}
	return false;
}
function closeSecondaryMenu(element, event, JavaScript_code) {
// by Author Hamid Alipour Codehead @ webmaster-forums.code-head.com
	var current_mouse_target = null;
	if( event.toElement ) {
		current_mouse_target 			 = event.toElement;
	} else if( event.relatedTarget ) {
		current_mouse_target 			 = event.relatedTarget;
	}
	if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
		closeAllSecondarySubMenu();
	}
}

function orderColumns()
{
	maxCount = 7;
	tempString = "";
	var allMenus = $$('#secondaryMenu .secondLevelMenu');
	for (j = 0; j < allMenus.length; j++) {
		tempString = "";
		var allDivs = $$('#' + allMenus[j].id + ' div');
		if(allDivs.length > 0) {
			tempString = tempString + "<div class='thirdLevelColumn'>";
		}

		counter = 0;
		for (i = 0; i < allDivs.length; i++) {
			if(counter < maxCount) {
				if(allDivs[i].innerHTML.indexOf("---BREAK---") == -1) {
					tempString = tempString + "<div class='" + allDivs[i].className + "'>" + allDivs[i].innerHTML + "</div>";
					counter++;
				} else {
					tempString = tempString + "</div>\n";
					tempString = tempString + "<div class='thirdLevelColumn'>\n";
					counter = 1;
				}
			} else if(counter == maxCount) {
				tempString = tempString + "</div>\n";
				tempString = tempString + "<div class='thirdLevelColumn'>\n";
				tempString = tempString + "<div class='" + allDivs[i].className + " first'>" + allDivs[i].innerHTML + "</div>";
				counter = 1;
			}
		}

		if(allDivs.length > 0) {
			tempString = tempString + "</div>\n";
		}
		$(allMenus[j].id).innerHTML = tempString;
	}
}

function includeColors()
{
	// Removed because of a faulty concept.
	// S. Teuber 28/12/09

	return false;
}

function openPrimarySubMenu(sourceMenu)
{
	var subMenuName = "sub-" + sourceMenu;
	var subMenuStatus = $(subMenuName).className;

	/* close all other menus */

	var allSubMenus = $$('#sectionMenu .firstLevelMenuItem');
	for (i = 0; i < allSubMenus.length; i++) {
//		if(($("sub-" + allSubMenus[i].id).className).indexOf("menuOpened") > 0)
		if((($("sub-" + allSubMenus[i].id).className).indexOf("menuOpened") > 0) && (($("sub-" + allSubMenus[i].id).className).indexOf("nonCurrent") > 0)) {
			if(allSubMenus[i].id != sourceMenu) {
	 			closePrimarySubMenu(allSubMenus[i].id);
	 		}
		} 
	}

	if(subMenuStatus.indexOf("menuClosed") > 0) {
		if(busyOpening != true) {
			busyOpening = true;
			Effect.BlindDown(subMenuName, { duration: 1.0, afterFinish: openMainMenu});
		}
	}
}

function closePrimarySubMenu(sourceMenu)
{
	var subMenuName = "sub-" + sourceMenu;
	var subMenuStatus = $(subMenuName).className;
	if(subMenuStatus.indexOf("menuOpened") > 0) {
		if(busyClosing != true) {
			busyClosing = true;
			Effect.BlindUp(subMenuName, { duration: 1.0, afterFinish: closeMainMenu});
		}
	}
}

function closeAllSecondarySubMenu()
{
	var allSubMenus = $$('#secondaryMenu .firstLevelMenuItem');
	for (i = 0; i < allSubMenus.length; i++) {
		if(($("sub-" + allSubMenus[i].id).className).indexOf("menuOpened") > 0) {
 			closeSecondarySubMenu(allSubMenus[i].id);
		}
		
/* v v v Code für Flyout-Arretierung v v v */
		if(($(allSubMenus[i].id).className).indexOf("current") > 0) {
 			openSecondarySubMenu(allSubMenus[i].id);
		}
/* ^ ^ ^ Code für Flyout-Arretierung ^ ^ ^ */
	}
}

function openSecondarySubMenu(sourceMenu)
{
	var subMenuName = "sub-" + sourceMenu;
	var subMenuStatus = $(subMenuName).className;

	var menuStatus = $(sourceMenu).className;
	$(sourceMenu).className = menuStatus.replace(/passive/g, "active");

	/* close all other menus */

	var allSubMenus = $$('#secondaryMenu .firstLevelMenuItem');
	for (i = 0; i < allSubMenus.length; i++) {
		if(($("sub-" + allSubMenus[i].id).className).indexOf("menuOpened") > 0) {
			if(allSubMenus[i].id != sourceMenu) {
	 			closeSecondarySubMenu(allSubMenus[i].id)
	 		}
		}
	}
	if(subMenuStatus.indexOf("menuClosed") > 0) {
		$(subMenuName).className = subMenuStatus.replace(/menuClosed/g, "menuOpened");
		$(subMenuName).style.display = "block";
	}
}

function closeSecondarySubMenu(sourceMenu)
{
	var subMenuName = "sub-" + sourceMenu;
	var subMenuStatus = $(subMenuName).className;

	var menuStatus = $(sourceMenu).className;
	$(sourceMenu).className = menuStatus.replace(/active/g, "passive");

	if(subMenuStatus.indexOf("menuOpened") > 0) {
		$(subMenuName).className = subMenuStatus.replace(/menuOpened/g, "menuClosed");
		$(subMenuName).style.display = "none";
	}
}

function closeMainMenu(source)
{
	busyClosing = false;
	var subMenuName = source.element.id;
	var subMenuStatus = $(subMenuName).className;
	$(subMenuName).className = subMenuStatus.replace(/menuOpened/g, "menuClosed");
}

function openMainMenu(source)
{
	busyOpening = false;
	var subMenuName = source.element.id;
	var subMenuStatus = $(subMenuName).className;
	$(subMenuName).className = subMenuStatus.replace(/menuClosed/g, "menuOpened");
}

// detecting ff2 under mac os

function detectMacFirefox2() {
  var ua = navigator.userAgent.toLowerCase();
  if (/firefox[\/\s](\d+\.\d+)/.test(ua)) {
    var firefox_version = new Number(RegExp.$1);
    if (firefox_version < 3 && ua.indexOf('mac') != -1) {
      return true;
    }
  }
  return false;
}

// Close all menus on load 
document.observe('dom:loaded', function() {
	var closeObjs = $$('.closeOnLoad');
	for (var i = 0; i < closeObjs.length; i++) {
		closeObjs[i].setStyle({ display: 'none' });
	}
});

