/*DHTML scripts copyright L.Bagamery (lsblsb@gmx.de))*/


/****
 * switchClassName()
 * purpose: switch the className of an object with given id, optionally you can hand over a array with ids that should all get another (old) classname at the same time
 * @access public
 * @param string switchId
 * @param string newClassName
 * @param [optional] string oldClassName
 * @param [optional] (string-array|object-array) switchIds
 * @return object
 *
 */
 
function switchClassName(switchId, newClassName, /*optional*/ oldClassName, switchIds)
{
	var obj = null;
	if(typeof(switchId) == "object")
		obj = switchId;
	else
		obj = document.getElementById(switchId);
	obj.className = newClassName;
	if(oldClassName && switchIds)
	{
		for(i=0; i<switchIds.length; i++)
		{
			if(typeof switchIds[i] == "object")
			{
				currObj = switchIds[i];
			}
			else
			{
				currObj = document.getElementById(switchIds[i]);
			}
			if(currObj && currObj != obj) 
			{
				currObj.className = oldClassName;
			}
		}
	}
}

function switchDisplay(switchId,/*optional*/ switchIds,/*optional*/ forcedDisplay)
{
	var obj = document.getElementById(switchId);
	if(!forcedDisplay && forcedDisplay != "")
	{
		var oldDisplay = obj.style.display;
		var newDisplay = '';
		if(oldDisplay == '') newDisplay = 'none';
	}
	else
	{
		forcedDisplay == '' ? oldDisplay = 'none' : oldDisplay = '';
		newDisplay = forcedDisplay;
	}
	obj.style.display = newDisplay;
	
	if(switchIds && switchIds[0])
	{
		for(i=0; i<switchIds.length; i++)
		{
			currObj = document.getElementById(switchIds[i]);
			if(currObj && currObj != obj) 
			{
				currObj.style.display = oldDisplay;
			}
		}
	}
}

function getMainSwitchButtons(mainSwitchButtonIdPrefix)
{
	var imgs = document.images;
	var imgsLen = imgs.length;
	var mainSwitchButtons = new Array();
	for(i=0; i<imgsLen; i++)
	{
		if(imgs[i].id && imgs[i].id.indexOf(mainSwitchButtonIdPrefix) != -1)
		{
			mainSwitchButtons[mainSwitchButtons.length] = imgs[i];
		}
	}
	return mainSwitchButtons;
}

/**
 * @param string mainSwitchButtonIdPrefix
 * @param string switchButtonImgId
 * @param string extendViewId
 * @param [ string plusSign ]
 * @param [ string minusSign ]
 * @param [ array textChanges: array[array[<elementId>,<textVarianteA>,<textVarianteB>], array...] ]
 *
 */

function switchView(mainSwitchButtonIdPrefix, switchButtonImgId, extendViewId, plusSign, minusSign, textChanges)
{
	if(!plusSign) plusSign = "plus";
	if(!minusSign) minusSign = "minus";
	var switchButtonImg = document.images[switchButtonImgId];
	//var mainSwitchButtonImg = document.images[mainSwitchButtonId];
	var mainSwitchButtons = getMainSwitchButtons(mainSwitchButtonIdPrefix);
	var mainSwitchButtonsLen = mainSwitchButtons.length;
	var objStyle = document.getElementById(extendViewId).style;
	var formerDisplay = objStyle.display;
	var newSign = minusSign;
	var oldSign = plusSign;
	var newDisplay = "";
	var msg = "schliessen";
	if(formerDisplay != "none")
	{
		newDisplay = "none";
		newSign = plusSign;
		oldSign = minusSign;
		msg = "öffnen";
	}
	//switch texts
	if(textChanges)
		if(typeof(textChanges) == "object")
			for(var i=0;i<textChanges.length;i++)
			{
				textChange = textChanges[i];
				if(typeof(textChange) == "object" && textChange.length == 3 && textChange[0])
				{	var objId = textChange[0];
					if(document.getElementById(objId) && document.getElementById(objId).firstChild && document.getElementById(objId).firstChild.nodeValue == textChange[1])
						changeTextById(textChange[0], textChange[2]);
					else
						changeTextById(textChange[0], textChange[1]);
				}
			}
	//switch_buttons
	switchButtonImg.src = switchButtonImg.src.replace(new RegExp(oldSign),newSign);
	switchButtonImg.title = msg;
	switchButtonImg.alt = msg;
	objStyle.display = newDisplay;
	//main_switch_buttons
	for(i=0;i<mainSwitchButtonsLen;i++)
	{
		mainSwitchButtons[i].src = mainSwitchButtons[i].src.replace(new RegExp(oldSign),plusSign);
		mainSwitchButtons[i].title = "alle öffnen";
		mainSwitchButtons[i].alt = "alle öffnen";
	}
}

/**
 * @param string formName
 * @param string mainSwitchButtonIdPrefix
 * @param string switchButtonImgIdPrefix
 * @param string extendViewIdPrefix
 * @param [ string displayedIsinsCsvField ]
 * @param [ string plusSign ]
 * @param [ string minusSign ]
 * @param [ array textChanges: array[array[<elementId>,<textVarianteA>,<textVarianteB>], array...] ]
 *
 */

function switchAll(formName, mainSwitchButtonIdPrefix, switchButtonImgIdPrefix, extendViewIdPrefix, displayedIsinsCsvField, plusSign, minusSign, textChanges)
{
	if(!plusSign) plusSign = "plus";
	if(!minusSign) minusSign = "minus";
	if(!displayedIsinsCsvField) displayedIsinsCsvField = "displayed_isins";

	var isins = document.forms[formName].elements[displayedIsinsCsvField].value.split(",");

	//var mainSwitchButton = document.images[mainSwitchButtonId];
	var mainSwitchButtons = getMainSwitchButtons(mainSwitchButtonIdPrefix);
	var mainSwitchButtonsLen = mainSwitchButtons.length;
	var oldSign = plusSign;
	var newSign = minusSign;
	var newDisplay = "";
	var msg = "schliessen";
	if(mainSwitchButtons[0].src.indexOf(plusSign) == -1)
	{
		oldSign = minusSign;
		newSign = plusSign;
		newDisplay = "none";
		msg = "öffnen";
	}
	//switch texts
	if(textChanges)
		if(typeof(textChanges) == "object")
			for(var i=0;i<textChanges.length;i++)
			{
				textChange = textChanges[i];
				if(typeof(textChange) == "object" && textChange.length == 3 && textChange[0])
				{	var objId = textChange[0];
					if(document.getElementById(objId) && document.getElementById(objId).firstChild && document.getElementById(objId).firstChild.nodeValue == textChange[1])
						changeTextById(textChange[0], textChange[2]);
					else
						changeTextById(textChange[0], textChange[1]);
				}
			}
	var isins_len = isins.length;
	//switch_buttons and image-src's
	for(i=0;i<isins_len;i++)
	{
		if(isins[i])
		{
			var currSwitchButtonImg = document.images[switchButtonImgIdPrefix+isins[i]];
			var currExtendViewId = extendViewIdPrefix+isins[i];
			currSwitchButtonImg.src = currSwitchButtonImg.src.replace(new RegExp(oldSign),newSign);
			currSwitchButtonImg.title = msg;
			currSwitchButtonImg.alt = msg;
			document.getElementById(currExtendViewId).style.display = newDisplay;
		}
	}
	//main_switch_buttons
	for(i=0;i<mainSwitchButtonsLen;i++)
	{
		mainSwitchButtons[i].src = mainSwitchButtons[i].src.replace(new RegExp(oldSign),newSign);
		mainSwitchButtons[i].title = "alle "+msg;
		mainSwitchButtons[i].alt = "alle "+msg;
	}
}

function changeTextById(id, str)
{
	document.getElementById(id).firstChild.nodeValue = str;
}

function changeImgById(id, src)
{
	document.getElementById(id).src = src;
}

function changeStyleById(id, styleNames, styleValues)
{
	var element = document.getElementById(id);
	if(typeof(styleNames) != "object")
		styleNames = new Array(styleNames);
	if(typeof(styleValues) != "object")
		styleValues = new Array(styleValues);
	for(var i=0;i<styleNames.length;i++)
	{
		var command = "element.style."+styleNames[i]+" = '"+styleValues[i]+"';"
		eval(command);
	}
}

