	
	var Toggles;
	var critToggles;
	var abcToggles;

	function registerToggle(toggle)
	{
		Toggles = toggle;
	}


	function registerCriteriaToggle(toggle)
	{
		critToggles = toggle;
	}

	function registerAbcToggle(toggle)
	{
		abcToggles = toggle;
	}

	function hideRegisteredToggles(itemID)
	{

		if(typeof Toggles != 'undefined' || Toggles == itemID)
			{
				$('#ItemDescription_'+Toggles).slideUp('normal');
				toggleToTop('#ItemToTop_description'+Toggles);
			}
	}
	
	function hideRegisteredCriteriaToggles(itemID)
	{

		if(typeof critToggles != 'undefined' || critToggles == itemID)
			{
				$('#ItemDescription_'+critToggles).slideUp('normal');
				toggleToTop('#ItemToTop_description'+critToggles);
			}
	}

	function hideRegisteredLetter(letter)
	{

		if(typeof abcToggles != 'undefined' || abcToggles == letter)
		{
			$('#cheabckey_'+abcToggles).toggle();
		}
	}
	
	function changeAbcLetter(letter)
	{
		hideRegisteredLetter(letter);
		$('#cheabckey_'+letter).toggle();
		registerAbcToggle(letter)
	}

	
	/**
	 * show/hide and load list-item-descriptions
	 * @param {Object} itemID
	 * @param {Object} sectionName
	 */
	function toggleListItem(itemID, sectionName, isFirstIndik)
	{
		// webtrekk
		sendToWebtrekk(sectionName);
		if   ( $('#ItemDescription_'+itemID).css('display') == 'none' )
		{
		 	$('#ItemDescription_'+itemID).css({ padding: 5, display: 'none' });
		 	$('#ItemDescription_'+itemID).slideToggle('fast');
			
			if (isFirstIndik)
			{
				//registerToggle('undefined');
			}
			dynamicLoad(itemID, sectionName, hideRegisteredToggles(itemID));
			toggleToTop('#ItemToTop_description'+itemID);
			
			registerToggle(itemID);
		}else 
		{
			hideRegisteredToggles(itemID);
			registerToggle('undefined');
		}
	}
	
	/**
	 * show/hide static-list-item-descriptions
	 * @param {Object} itemID
	 * @param {Object} sectionName
	 */
	function toggleStaticListItem(itemID, sectionName)
	{
		if ($('#ItemDescription_'+itemID).css('display') == 'none')
		{
		 	$('#ItemDescription_'+itemID).css({ padding: 5, display: 'none' });
		 	$('#ItemDescription_'+itemID).slideToggle('fast', toggleToTop('#ItemToTop_description'+itemID));
			hideRegisteredToggles(itemID);
			registerToggle(itemID);
		}else 
		{
			hideRegisteredToggles(itemID);
			registerToggle('undefined');
		}
	}
	
		
	/**
	 * show/hide criteria-list-descriptions
	 * @param {Object} itemID
	 * @param {Object} sectionName
	 * @param {Object} containerName
	 */
	function toggleCriteriaList(itemID, sectionName, containerName)
	{	
		// webtrekk
		if(sectionName =="indikatoren") { 
			sendToWebtrekk('kriterium');
		}
		else {
			sendToWebtrekk(sectionName);
		}
		
		critItemID = 'criteria'+itemID;
		
		if ($('#ItemDescription_'+critItemID).css('display') == 'none')
		{
		 	$('#ItemDescription_'+critItemID).css({ padding: 5, display: 'none' });
		 	$('#ItemDescription_'+critItemID).slideToggle('fast', toggleToTop('#ItemToTop_description'+critItemID));
			hideRegisteredCriteriaToggles(critItemID);
			registerCriteriaToggle(critItemID);
		}else 
		{
			hideRegisteredCriteriaToggles(critItemID);
			registerCriteriaToggle('undefined');
		}
		dynamicLoad(itemID, sectionName, containerName, showContainer(containerName));
	}
	
	
	/**
	 * ajax-like loading of a list-item-description into an container 
	 * @param {Object} itemID
	 * @param {Object} sectionName
	 * @param {Object} containerName
	 * @param {Object} callback
	 */
	function dynamicLoad(itemID, sectionName, containerName, callback)
	{
		if (!containerName)
		{
			containerName = 'ItemDescription_'+itemID;
		}
		$('#'+containerName).load('${config.actionRoot}?module=Ajax&do=show&entity='+sectionName+'&id='+itemID, callback);
	}
	
	/**
	 * show/hide the toplink
	 * @param {Object} itemID
	 */
	function toggleToTop(item)
	{
	 	$(item).toggle();
	}

	/**
	 * show a container-div with an toplink inside
	 * @param {Object} containerName
	 */
	function showContainer(containerName)
	{
		if ($('#'+containerName).css('display') == 'none')
		{
		 	$('#'+containerName).css({ padding: 5, display: 'none' });
		 	$('#'+containerName).slideToggle('fast', toggleToTop(containerName));
		}
	}
	
	

