/**
*	FC-Reitersystem
*
* @author Klaus Bader
* @version 1.0.0409.01
* 
* @param {Object} pObject		Object des Reitersystems
*/
function FC_Reiter_System(pObject)
{
	/**
	*	@var {String} activeTab: aktiver Reiter beim Anlegen (zwecks Abwärtskompatibilität wird auch der alte Variablenname übergeben)
	*/
	this.activeTab			 =	this.activeReiter			 =	'';
	
	/**
	* @var {String} activeTabClass: Class für den aktiven Reiter (zwecks Abwärtskompatibilität wird auch der alte Variablenname übergeben)
	*/
	this.activeTabClass	 =	this.activeReiterClass =	'';
	
	/**
	* @var {Object} tabObject: aktuelles FC-Reiter-Objekt
	*/
	var tabObject				 =	pObject;
	
	/**
	 * @var {String} tabId: HTML-Id des Reitersystems (unique)
	 */
	this.tabId					 =	'cms_reiter_system';
	
	 /**
	 *	createTabSystem (alt: create_reiter_bloecke): erstellt ein neues Reiter-System
	 *
	 *	@param 	{Object}	pArray					Array, das alle zur Konfiguration des Reiters notwendigen Daten enthält:
	 *																		[0] ... Reiter-Icon
	 *																		[1] ... Reiterbeschriftung
	 *																		[2] ... onClick-Methode
	 *																		[3] ... Reiterstatus ('active', 'inactive')
	 *																		[4] ... Anzeigebreite
	 *																		[5] ... Schliessen-Aktion
	 *																		[6] ... OnMouseOver-Aktion
	 *	@param	{Integer}	pActiveIndex		aktiver Reiter
	 *	@param	{Object}	pLayerName			Objekt, an das das Reitersystem angehängt werden soll; Standardwert: this.tabId
	 *	@param	{String}	pBlockName			Layername des Reiterblockes; Standardwert: 'fc_reiter_' + laufende Blocknummer
	 */
	this.createTabSystem = this.create_reiter_bloecke = function(pArray, pActiveIndex, pLayerName, pBlockName)
	{
		try 
		{
			if (pBlockName == '' || pBlockName == undefined) 
			{
				pBlockName = 'fc_reiter_';
			}
			
			//Array mit den Beschriftungen fuer die Bloecke durchlaufen
			var tmpBlocksSrc = '';
			for (var i = 0; i < pArray.length; i++) 
			{
				if (i == pActiveIndex) 
				{
					tmpBlocksSrc += '<div id="' + pBlockName + i + '" ';
					
					//Status des Reiters mit richtiger Class versehen
					
					if (pArray[i][3] == '') 
						tmpBlocksSrc += 'class="active" '; //Dieser Reiter ist active
					if (pArray[i][3] == 'lesen') 
						tmpBlocksSrc += 'class="read" '; //Dieser Reiter ist aktiv aber der Inhalt des Contents darf nicht veraendert werden
					if (pArray[i][3] == 'inaktiv') 
						tmpBlocksSrc += 'class="closed" '; //Dieser Reiter ist gespeert
					//Funktion zuweisen
					if (pArray[i][3] != 'inaktiv') 
					{
						tmpBlocksSrc += 'onclick="' + tabObject + '.changeTab(this); ';
						//Uebergebene Funktionen anlegen
						tmpBlocksSrc += pArray[i][2] + '" ';
						if (pArray[i][6]) 
							tmpBlocksSrc += 'onmouseover="' + tabObject + '.changeTab(this); ' + pArray[i][6] + '"';
					}
					
					//Uebergebene Breite anlegen
					if (pArray[i][4]) 
						tmpBlocksSrc += 'style="width:' + pArray[i][4] + 'px;"';
					tmpBlocksSrc += '>';
					
					//Aktive Reiter class uebergeben
					if (pArray[i][3] == '') 
						this.activeTabClass = 'inactive ';
					if (pArray[i][3] == 'lesen') 
						this.activeTabClass = 'read';
					if (pArray[i][3] == 'inaktiv') 
						this.activeTabClass += 'closed';
				}
				else 
				{
					tmpBlocksSrc += '<div id="' + pBlockName + i + '" ';
					
					if (pArray[i][3] == '') 
						tmpBlocksSrc += 'class="inactive" '; //Dieser Reiter ist nicht aktiv
					if (pArray[i][3] == 'lesen') 
						tmpBlocksSrc += 'class="read" '; //Diesen Inhalt des Reiters nur lesbar machen
					if (pArray[i][3] == 'inaktiv') 
						tmpBlocksSrc += 'class="closed" '; //Diesen Reiter speeren
					//Funktion zuweisen
					if (pArray[i][3] != 'inaktiv') 
					{
						tmpBlocksSrc += 'onclick="' + tabObject + '.changeTab(this); ';
						//Uebergebene Funktionen anlegen
						tmpBlocksSrc += pArray[i][2] + '" ';
						if (pArray[i][6]) 
							tmpBlocksSrc += 'onmouseover="' + tabObject + '.changeTab(this); ' + pArray[i][6] + '"';
					}
					
					//Uebergebene Breite anlegen
					if (pArray[i][4]) 
						tmpBlocksSrc += 'style="width:' + pArray[i][4] + 'px;"';
					tmpBlocksSrc += '>';
				}
				
				if (pArray[i][0] != '') 
					tmpBlocksSrc += '<div class="' + pArray[i][0] + '"></div>';
				tmpBlocksSrc += '<div>' + pArray[i][1] + '</div>';
				if (pArray[i][5] != '') 
					tmpBlocksSrc += '<img src="/images/space.gif" class="fc_icon_schliessen_16" style="float:right; margin-top:2px;" alt="schliessen" onclick="' + tabObject + '.closeTab(this); ' + pArray[i][5] + '" />';
				tmpBlocksSrc += '</div>';
			}
			
			if (pLayerName == '' || pLayerName == undefined) 
			{
				if (document.getElementById(this.tabId)) 
				{
					document.getElementById(this.tabId).innerHTML = tmpBlocksSrc;
					
					//Aktiven Reiter uebergeben
					this.activeTab = document.getElementById(this.tabId).childNodes[pActiveIndex];
				}
			}
			else 
			{
				document.getElementById(pLayerName).innerHTML = tmpBlocksSrc;
				
				//Aktiven Reiter uebergeben
				this.activeTab = document.getElementById(pLayerName).childNodes[pActiveIndex];
				
			}
			this.activeTabClass = 'inactive';
		}
		catch(e)
		{
			alert(e);
		}
	}

	/**
	* closeTab (alt: close_reiter): wird aufgerufen, wenn ein Reiter geschlossen wird
	*
	* @param {Object}	pItem	Aktueller Reiter
	*/
	this.closeTab = this.close_reiter = function(pItem)
	{
		try 
		{
			pItem.parentNode.onclick = '';
		}
		catch(e)
		{}
	}

	/**
	* changeTab (alt: change_reiter): Wird aufgerufen, wenn ein Reiter angeklickt wird. Dabei wird überprüft, ob dieser bereits als 'Aktiv' gekennzeichnet ist. Wenn nicht, wird der bisher akive
	* deaktiviert und der angeklickt aktiviert
	*
	* @param {Object} pItem	Akteueller Reiter
	*/
	this.changeTab = this.change_reiter = function(pItem)
	{
		try 
		{
			if (pItem != this.activeTab) 
			{
				this.activeTab.className = this.activeTabClass;
				this.activeTab = pItem;
				this.activeTabClass = pItem.className;
				//Unterscheidung fuer Nur lesen oder Normal Reiter
				if (this.activeTabClass == 'read') 
				{
					this.activeTab.className = 'read_active';
					if (document.getElementById('fccms')) 
						fc_layer_on_off.on_off('content', true);
				}
				else 
				{
					this.activeTab.className = 'active';
					if (document.getElementById('fccms')) 
						fc_layer_on_off.on_off('content', false);
				}
			}
		}
		catch(e)
		{}
	}

	/**
	* resetTab (alt: reset_reiter): Loeschen der Reiter
	*
	* @param {Object} pLayerName	 Objekt, an dem das Reitersystem angehängt ist; Standardwert: this.tabId
	*/
	this.resetTab = this.reset_reiter = function(pLayerName)
	{
		try 
		{
			if (pLayerName == '' || pLayerName == undefined) 
			{
				document.getElementById(this.tabId).innerHTML = '';
			}
			else 
			{
				document.getElementById(pLayerName).innerHTML = '';
			}
		}
		catch(e)
		{}
	}
}