/************************************************************************************/
/* @TITLE
/*	jslib::tabbedPane.js - CHAMAELEON TabbedPane
/*
/* @SYNOPSIS
/*
/* @DESCRIPTION
/*	Dieses JavaScript-Modul wird von den Chamaeleon Standardkomponenten
/*	"TabbedPane" und "Wizard" verwendet, um clientseitige Navigation
/*	auf den Tab-Karten zu ermöglichen.
/*
/* @AUTHOR
/*	Marcus Bloch
/*
/* @COPYRIGHT
/*	Copyright © 2004-2005 by CHAMAELEON AG (http://www.chamaeleon.de) - September 2005
/*************************************************************************************/

/* löst Reset aller TabbedPanes sowie Set der zu aktivierenden TabbedPane aus. */
function togglePane(nr, last){
	for(var i = 0; i<= last; i++){
		changeActiveMode(i, document.getElementById("tabCell_" + i), false);
	}

	changeActiveMode(nr, document.getElementById("tabCell_" + nr), true);
}


/* Ändern den ActiveState der übergebenen Tab */
function changeActiveMode(nr, cell, active){
	if (cell) {
		if(active){
			cell.className = "tabCell_active";
		} else {
			cell.className = "";
		}
	}

	var elem = document.getElementById("pane_" + nr);
	if(elem) {
		elem.style.display = (active ? "block" : "none");
	}
}

/* Default-Navigation im Wizard um eins zurück. */
function wizardGoBack(stepNumber, lastStepNumber){
	var previousStep = getPreviousStep(stepNumber);	
	var thisElem = findStepElement(stepNumber); 
	if( thisElem && previousStep){
		thisElem.style.display = "none";
		previousStep.style.display = "block";
	}
}


/* Default-Navigation im Wizard um eins weiter. */
function wizardGoForward(stepNumber, lastStepNumber){
	var nextStep = getNextStep(stepNumber, lastStepNumber);
	var thisElem = findStepElement(stepNumber);
	if(thisElem && nextStep){
		thisElem.style.display = "none";
		nextStep.style.display = "block";
	}
}

function findStepElement(stepNumber) {
	var children = document.getElementById("detailsContent_template").childNodes;
	for(var i = 0; i < children.length; i++) {
		if(children[i].tagName == "DIV" && children[i].id == "pane_" + stepNumber)
			return children[i];
	}
	return document.getElementById("pane_" + stepNumber);
}

function getNextStep(stepNumber, lastStepNumber) {
	var step = null;
	for(var i=stepNumber+1; i<=lastStepNumber; i++) {
		if (step = findStepElement(i)) {
			return step;
		}
	}	
	
	return false;
}

function getPreviousStep(stepNumber) {
	var step = null;
	for(var i=stepNumber-1; i>=0; i--) {
		if (step = findStepElement(i)) {
			return step;
		}
	}
	
	return false;
}

