/**
 * bindet die Dynamik der Hauptnavigation ein
 * @package HIT.net - Javascript
 **/

// der aktuelle Button
var actualNavigationButton = null;
// der gerade aktive Button
var activeNavigationButton = null;
// gesetzt, falls ein Submenu aktiv ist
var subNavigationActive = false;
// speichert das Handle für das MainNavigation Timeout
var mainNavigationTimeout = null;

// sichert das aktuelle PortalItem
var activePortalItem = null;
var firstPortalItem  = null;
var sliderObjects	 = new Object();

function initPortal()
{
	window.addEvent('domready', function() {
		// zuweisen des Slides zu allen Floatern und schliessen
		$each($$("div.portalnavitext"), function(floaterItem, index)
		{
			if(firstPortalItem == null)
			  firstPortalItem = floaterItem;
			
			if(!floaterItem.hasClass("static"))
			{
					
				// Slider erstellen und speichern
				var sliderID = floaterItem.getProperty('id');
				sliderObjects[sliderID] = new Fx.Slide(sliderID, {duration: 2000, transition: Fx.Transitions.Pow.easeOut});
				
				// ausblenden des Elements
				sliderObjects[sliderID].hide();
			}
		});
		
		// öffnen des ersten Floaters
		showPortalItem(firstPortalItem.getProperty('id'));
	});
}

function showPortalItem(itemID)
{
	// bei aktuell aktivem Slider nichts tun
	if(itemID == activePortalItem)
		return;
		
	// schliessen des bisherigen Floaters
	if(activePortalItem != null)
	{
		sliderObjects[activePortalItem].cancel();
		sliderObjects[activePortalItem].slideOut();		
	}
	
	activePortalItem = itemID;
	sliderObjects[activePortalItem].cancel();
	sliderObjects[activePortalItem].slideIn();
}

function initNavigation()
{
	window.addEvent('domready', function() {
		// speichern des aktiven Submenus
		if(activeNavigationButton == null)
		{
			var mainNavigationButtons = $$("a.mainNavigationButton");
			for (var buttonIndex = 0; buttonIndex < mainNavigationButtons.length; buttonIndex ++) {
				var mainNavigationButton = mainNavigationButtons[buttonIndex];
				if(mainNavigationButton.hasClass("aktiv"))
				{
				 actualNavigationButton = mainNavigationButton
				 activeNavigationButton = mainNavigationButton
				};
			};
		};
		
		// ausblenden aller SubMenus
		$each($$("div.subnavi"), function(subNavigation, index)
		{
			subNavigation.setStyle("display", "none");
		});
		
		// einblenden des aktuellen SubMenus
		if(activeNavigationButton != null)
		{
			var navigationName = activeNavigationButton.getProperty("rel");
			if($(navigationName + "SubNavigation"))
				$(navigationName + "SubNavigation").setStyle("display", "block");
		};
	});
}

function switchMainNavigation(linkObject)
{
	// löschen des Switchback-Timeouts
	window.clearTimeout(mainNavigationTimeout);

	// speichern des aktiven Submenus
	if(activeNavigationButton == null)
	{
		var mainNavigationButtons = $$("a.mainNavigationButton");
		for (var buttonIndex = 0; buttonIndex < mainNavigationButtons.length; buttonIndex ++) {
			var mainNavigationButton = mainNavigationButtons[buttonIndex];
			if(mainNavigationButton.hasClass("aktiv"))
			{
			 actualNavigationButton = mainNavigationButton
			 activeNavigationButton = mainNavigationButton
			};
		};
	};
	
	// umschalten des aktiven Buttons auf inaktiv
	if(activeNavigationButton != null)
		activeNavigationButton.removeClass("aktiv");
		
	// umschalten des gewählten Buttons auf aktiv
	linkObject.addClass("aktiv");
	activeNavigationButton = linkObject;
	
	showSubNavigation();
}

function restoreMainNavigation()
{
	window.clearTimeout(mainNavigationTimeout);
	mainNavigationTimeout = window.setTimeout("restoreMainNavigationFinally()", 300);
}

function restoreMainNavigationFinally()
{
	if(!subNavigationActive)
	{
		// löschen des aktiven Buttons
		if(activeNavigationButton != null)
			activeNavigationButton.removeClass("aktiv");
			
		// Zurücksetzen zu aktuellen Button
		activeNavigationButton = actualNavigationButton
		if(activeNavigationButton != null)
			activeNavigationButton.addClass("aktiv");
			
		showSubNavigation();
	};
}

function showSubNavigation()
{
	// ausblenden aller SubMenus
	$each($$("div.subnavi"), function(subNavigation, index)
	{
		subNavigation.setStyle("display", "none");
	});
	
	// einblenden des aktuellen SubMenus
	if(activeNavigationButton != null)
	{
		var navigationName = activeNavigationButton.getProperty("rel");
		if($(navigationName + "SubNavigation") != null)
			$(navigationName + "SubNavigation").setStyle("display", "block");
	};
}
function activateSubnavigationButton(linkObject)
{
	subNavigationActive = true;
}

function deactivateSubnavigationButton(linkObject)
{
	subNavigationActive = false;
	restoreMainNavigation();
}

function bookmarkPage(url, pageTitle)
{
  if (window.sidebar)
    window.sidebar.addPanel(pageTitle,url, "");
  else if(document.all)
    window.external.AddFavorite(url,pageTitle);
  return (false);
}
