function ChgColor(div, colorA, colorB)
{
   if (document.layers)
   {
      if (document[div+'a']) { document[div+'a'].bgColor =colorA }
      if (document[div+'b']) { document[div+'b'].bgColor =colorB }
   }
   else if (document.all)
   {
      if (document.all[div+'a']) { document.all[div+'a'].style.background =colorA }
      if (document.all[div+'b']) { document.all[div+'b'].style.background =colorB }
   }
   else if (document.getElementById)
   {
      if (document.getElementById(div+'a')) { document.getElementById(div+'a').style.backgroundColor =colorA }
      if (document.getElementById(div+'b')) { document.getElementById(div+'b').style.backgroundColor =colorB }
   }
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


// Pop-Up Fenster

function popupWindow(url,windowname,w,h)
{
    hWnd1 =window.open(url,windowname,"width="+w+",height="+h+",menubar=no,toolbar=no,status=no,scrollbars=yes,resizable=no,alwaysRaised=yes");
    hWnd1.resizeTo(w,h);
    hWnd1.focus();
}
function printWindow(url,query,w,h)
{
    if (query!="") url =url + "?" + query + "&print=yes";
    else url =url + "?print=yes";
    window.open(url,"printWnd","width="+w+",height="+h+",menubar=no,toolbar=yes,status=no,scrollbars=yes,resizable=no,alwaysRaised=yes")
}

// Sprungmenü

function P7_JumpMenu(selObj,restore){ //v1.7 by Project Seven
	var theFullString = selObj.options[selObj.selectedIndex].value;
	if (restore) selObj.selectedIndex=0;
	var theLength = theFullString.length;
	var endPos = theFullString.lastIndexOf("~");
	var theUrl, theTarget, theParent;
	if (endPos > 0) {theUrl = theFullString.substring(0,endPos);}
	else {theUrl = theFullString;}
	endPos++
	if (endPos < theLength) {theTarget = theFullString.substring(endPos,theLength)}
	else {theTarget = "window:Main";}
	if (theTarget == "window:New") {window.open(theUrl);}
	else if (theTarget == "window:Main") {eval("parent.location='"+theUrl+"'");}
	else {eval("parent.frames[\'"+theTarget+"\'].location='"+theUrl+"'");}
}

// Picture PopUp

function JustSoPicWindow(imageName,imageWidth,imageHeight,alt,bgcolor,hugger,hugMargin) {
// by E Michael Brandt of ValleyWebDesigns.com - Please leave these comments intact.
// version 3.0.4  

	if (bgcolor=="") {
		bgcolor="#FFFFFF";
	}
	var adj=10
	var w = screen.width;
	var h = screen.height;
	var byFactor=1;

	if(w<740){
	  var lift=0.90;
	}
	if(w>=740 & w<835){
	  var lift=0.91;
	}
	if(w>=835){
	  var lift=0.93;
	}
	if (imageWidth>w){	
	  byFactor = w / imageWidth;			
	  imageWidth = w;
	  imageHeight = imageHeight * byFactor;
	}
	if (imageHeight>h-adj){
	  byFactor = h / imageHeight;
	  imageWidth = (imageWidth * byFactor);
	  imageHeight = h; 
	}
	   
	var scrWidth = w-adj;
	var scrHeight = (h*lift)-adj;

	if (imageHeight>scrHeight){
  	  imageHeight=imageHeight*lift;
	  imageWidth=imageWidth*lift;
	}

	var posLeft=0;
	var posTop=0;

	if (hugger == "hug image"){
	  if (hugMargin == ""){
	    hugMargin = 0;
	  }
	  var scrHeightTemp = imageHeight - 0 + 2*hugMargin;
	  if (scrHeightTemp < scrHeight) {
		scrHeight = scrHeightTemp;
	  } 
	  var scrWidthTemp = imageWidth - 0 + 2*hugMargin;
	  if (scrWidthTemp < scrWidth) {
		scrWidth = scrWidthTemp;
	  }
	  
	  if (scrHeight<100){scrHeight=100;}
	  if (scrWidth<100){scrWidth=100;}

	  posTop =  ((h-(scrHeight/lift)-adj)/2);
	  posLeft = ((w-(scrWidth)-adj)/2);
 	}

	if (imageHeight > (h*lift)-adj || imageWidth > w-adj){
		imageHeight=imageHeight-adj;
		imageWidth=imageWidth-adj;
	}
	posTop = parseInt(posTop);
	posLeft = parseInt(posLeft);		
	scrWidth = parseInt(scrWidth); 
	scrHeight = parseInt(scrHeight);
	
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1){
	  var args= new Array();
	  args[0]='parent';
	  args[1]=imageName;
	  var i ; document.MM_returnValue = false;
	  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
	newWindow = window.open("vwd_justso.htm","newWindow","width="+scrWidth+",height="+scrHeight+",left="+posLeft+",top="+posTop);
	newWindow.document.open();
	newWindow.document.write('<html><title>'+alt+'</title><body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor='+bgcolor+' onBlur="self.close()" onClick="self.close()">');  
	newWindow.document.write('<table width='+imageWidth+' border="0" cellspacing="0" cellpadding="0" align="center" height='+scrHeight+' ><tr><td>');
	newWindow.document.write('<img src="'+imageName+'" width='+imageWidth+' height='+imageHeight+' alt="Click screen to close" >'); 
	newWindow.document.write('</td></tr></table></body></html>');
	newWindow.document.close();
	newWindow.focus();
	}
}

//	====================================================================================================
//	|	Display Table Library (supports IE & DOM)
//	|	(created & coded by Temelko Mirtchev - www.softconsultgroup.com)
//	|	Email: temelko_mirtchev@hotmail.com
//	|	Web: www.softconsultgroup.com/Temelko.Mirtchev/displayTableFunction_ver_4_2.zip
//	====================================================================================================
//	|	You can use this script for FREE only on non-commercial sites.
//	|	Please, leave this comments untouched.
//	====================================================================================================
//	|	DOM support is included for future browsers because only IE renders "display" CSS tag correctly
//	|	While hide/show doesn't work properly in NS, collapse/expand works fine
//	====================================================================================================


// =================== Public Section ===================
	
	//public function (add description)
	function hideTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		tableObject.rows[rowNumber].cells[columnNumber].style.display = "none";
	}
	
	//public function (add description)
	function showTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		tableObject.rows[rowNumber].cells[columnNumber].style.display = "block";
	}

	//public function (add description)
	function collapseTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		tableDataContent = tableObject.rows[rowNumber].cells[columnNumber].getElementsByTagName("DIV");
		tableDataContent[0].style.display = "none";
		tableDataContent[1].style.display = "block";
	}
	
	//public function (add description)
	function expandTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		tableDataContent = tableObject.rows[rowNumber].cells[columnNumber].getElementsByTagName("DIV");
		tableDataContent[0].style.display = "block";
		tableDataContent[1].style.display = "none";
	}

	//public function (add description)
	function hideTableRow(tableName, rowNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		rowLength = tableObject.rows[rowNumber].cells.length;
		endPos = (endPos) ? (endPos + 1) : rowLength;
		for (var i=startPos; i < endPos; i++) {
			tableObject.rows[rowNumber].cells[i].style.display = "none";
 		}
 		arrayElement = "h" + "." + tableName + "." + rowNumber;
 		if (!inArray(hiddenRows, arrayElement)) {
 			arrayElement = arrayElement + "." + startPos + "." + endPos;
 			hiddenRows[hiddenRows.length] = arrayElement;
 		}
	}

	//public function (add description)
	function showTableRow(tableName, rowNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		rowLength = tableObject.rows[rowNumber].cells.length;
		endPos = (endPos) ? (endPos + 1) : rowLength;
		for (var i=startPos; i < endPos; i++) {
			elementStatus = nextElementStatus("show", "row", tableName, rowNumber, i, startPos, endPos-1);
			if (elementStatus == "block") {
				tableObject.rows[rowNumber].cells[i].style.display = "block";
			}
 		}
 		excludeFromArray(hiddenRows, "h" + "." + tableName + "." + rowNumber + "." + startPos + "." + endPos);
	}

	//public function (add description)
	function hideTableColumn(tableName, columnNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		columnLength = tableObject.rows.length;
		endPos = (endPos) ? (endPos + 1) : columnLength;
		for (var j=startPos; j < endPos; j++) {
			tableObject.rows[j].cells[columnNumber].style.display = "none";
		}
		arrayElement = "h" + "." + tableName + "." + columnNumber;
 		if (!inArray(hiddenColumns, arrayElement)) {
 			arrayElement = arrayElement + "." + startPos + "." + endPos;
 			hiddenColumns[hiddenColumns.length] = arrayElement;
 		}
	}

	//public function (add description)
	function showTableColumn(tableName, columnNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		columnLength = tableObject.rows.length;
		endPos = (endPos) ? (endPos + 1) : columnLength;
		for (var j=startPos; j < endPos; j++) {
			elementStatus = nextElementStatus("show", "column", tableName, j, columnNumber, startPos, endPos-1);
			if (elementStatus == "block") {
				tableObject.rows[j].cells[columnNumber].style.display = "block";
			}
 		}
 		excludeFromArray(hiddenColumns, "h" + "." + tableName + "." +  columnNumber + "." + startPos + "." + endPos);
	}

	//public function (add description)
	function collapseTableRow(tableName, rowNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		rowLength = tableObject.rows[rowNumber].cells.length;
		endPos = (endPos) ? (endPos + 1) : rowLength;
		for (var i=startPos; i < endPos; i++) {
			tableDataContent = tableObject.rows[rowNumber].cells[i].getElementsByTagName("DIV");
			tableDataContent[0].style.display = "none";
			tableDataContent[1].style.display = "block";
 		}
 		arrayElement = "c" + "." + tableName + "." + rowNumber;
 		if (!inArray(hiddenRows, arrayElement)) {
 			arrayElement = arrayElement + "." + startPos + "." + endPos;
 			hiddenRows[hiddenRows.length] = arrayElement;
 		}
	}

	//public function (add description)
	function expandTableRow(tableName, rowNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		rowLength = tableObject.rows[rowNumber].cells.length;
		endPos = (endPos) ? (endPos + 1) : rowLength;
		for (var i=startPos; i < endPos; i++) {
			elementStatus = nextElementStatus("expand", "row", tableName, rowNumber, i, startPos, endPos-1);
			if (elementStatus == "block") {
				tableDataContent = tableObject.rows[rowNumber].cells[i].getElementsByTagName("DIV");
				tableDataContent[0].style.display = "block";
				tableDataContent[1].style.display = "none";
			}
 		}
 		excludeFromArray(hiddenRows, "c" + "." + tableName + "." + rowNumber + "." + startPos + "." + endPos);
	}

	//public function (add description)
	function collapseTableColumn(tableName, columnNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		columnLength = tableObject.rows.length;
		endPos = (endPos) ? (endPos + 1) : columnLength;
		for (var j=startPos; j < endPos; j++) {
			tableDataContent = tableObject.rows[j].cells[columnNumber].getElementsByTagName("DIV");
			tableDataContent[0].style.display = "none";
			tableDataContent[1].style.display = "block";
		}
		arrayElement = "c" + "." + tableName + "." + columnNumber;
 		if (!inArray(hiddenColumns, arrayElement)) {
 			arrayElement = arrayElement + "." + startPos + "." + endPos;
 			hiddenColumns[hiddenColumns.length] = arrayElement;
 		}
	}

	//public function (add description)
	function expandTableColumn(tableName, columnNumber, startPos, endPos) {
		tableObject = getObject(tableName);
		startPos = (startPos) ? startPos : 0;
		columnLength = tableObject.rows.length;
		endPos = (endPos) ? (endPos + 1) : columnLength;
		for (var j=startPos; j < endPos; j++) {
			elementStatus = nextElementStatus("expand", "column", tableName, j, columnNumber, startPos, endPos-1);
			if (elementStatus == "block") {
				tableDataContent = tableObject.rows[j].cells[columnNumber].getElementsByTagName("DIV");
				tableDataContent[0].style.display = "block";
				tableDataContent[1].style.display = "none";
			}
 		}
 		excludeFromArray(hiddenColumns, "c" + "." + tableName + "." +  columnNumber + "." + startPos + "." + endPos);
	}

	//public function (add description)
	function loadDisplayData(persistentRowName, persistentColumnName) {
		var tempString;
	   var sLocation = location.href;
	   var sData = sLocation.substring(sLocation.indexOf("?") + 1,sLocation.length);
		aData = sData.split("&");
	   for (var i=0; i<aData.length; i++) {
	      var sName = aData[i].substring(0,aData[i].indexOf("="));
	      var sValue = aData[i].substring(aData[i].indexOf("=") + 1,aData[i].length);
	      switch (sName) {
	      	case persistentRowName:
	      		serializedHiddenRows = unescape(sValue);
	      		break;
	      	case persistentColumnName:
	      		serializedHiddenColumns = unescape(sValue);
	      		break;
	      	default:
	      }
	   }
		unserializeArray("hiddenRows", ":");
		unserializeArray("hiddenColumns", ":");
		if (hiddenRows.length > 0) {
			for (i=0; i<hiddenRows.length; i++) {
				tempString = hiddenRows[i].split(".");
				switch (tempString[0]) {
					case "h" :
						hideTableRow(tempString[1], tempString[2], parseInt(tempString[3]), parseInt(tempString[4]) - 1);
						break;
					case "c" :
						collapseTableRow(tempString[1], tempString[2], parseInt(tempString[3]), parseInt(tempString[4]) - 1);
						break;
					default:
						alert("Undefined Switch Case or Function Not Implemented (loadDisplayData 2)!!!");
				}
			}
		}
		if (hiddenColumns.length > 0) {
			for (i=0; i<hiddenColumns.length; i++) {
				tempString = hiddenColumns[i].split(".");
				switch (tempString[0]) {
					case "h" :
						hideTableColumn(tempString[1], tempString[2], parseInt(tempString[3]), parseInt(tempString[4]) - 1);
						break;
					case "c" :
						collapseTableColumn(tempString[1], tempString[2], parseInt(tempString[3]), parseInt(tempString[4]) - 1);
						break;
					default:
						alert("Undefined Switch Case or Function Not Implemented (loadDisplayData 3)!!!");
				}
			}
		}
	}

	//public function (add description)
	function saveDisplayArray(persistentRowName, persistentColumnName) {
		var tempObject;
		serializeArray(hiddenRows, "hiddenRows", ":");
		serializeArray(hiddenColumns, "hiddenColumns", ":");
		tempObject = getObject(persistentRowName);
		tempObject.value = serializedHiddenRows;
		tempObject = getObject(persistentColumnName);
		tempObject.value = serializedHiddenColumns;
	}

	//public function (add description)
	function isHiddenRow(tableName, rowNumber) {
		var returnStatus = nextElementStatus("show", "row", tableName, rowNumber, columnNumber, startPost, endPos);
		if (returnStatus == "block") {
			return true;
		}
		return false;
	}

	//public function (add description)
	function isCollapsedRow(tableName, rowNumber) {
		var returnStatus = nextElementStatus("expand", "row", tableName, rowNumber, columnNumber, startPost, endPos);
		if (returnStatus == "block") {
			return true;
		}
		return false;
	}

	//public function (add description)
	function isHiddenColumn(tableName, columnNumber) {
		var returnStatus = nextElementStatus("show", "column", tableName, rowNumber, columnNumber, startPost, endPos);
		if (returnStatus == "block") {
			return true;
		}
		return false;
	}

	//public function (add description)
	function isCollapsedColumn(tableName, columnNumber) {
		var returnStatus = nextElementStatus("expand", "column", tableName, rowNumber, columnNumber, startPost, endPos);
		if (returnStatus == "block") {
			return true;
		}
		return false;
	}
	
	//public function (add description)
	function isHiddenTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		if (tableObject.rows[rowNumber].cells[columnNumber].style.display == "none") {
			return true;
		}
		return false;
	}
	
	//public function (add description)
	function isCollapsedTableElement(tableName, rowNumber, columnNumber) {
		tableObject = getObject(tableName);
		tableDataContent = tableObject.rows[rowNumber].cells[columnNumber].getElementsByTagName("DIV");
		if (tableDataContent[0].style.display == "none") {
			return true;
		}
		return false;
	}

// =================== Private Section ===================

	//global variables (add description)
	var hiddenRows = new Array();
	var hiddenColumns = new Array();
	var serializedHiddenRows = new String("");
	var serializedHiddenColumns = new String("");

	//to be removed
	function getTableObject(objectName) {
		if (document.all) {
			return document.all[objectName];
		} else {
			return document.getElementById(objectName);
		}
	}

	//private function (add description)
	function getObject(objectName) {
		return document.getElementById(objectName);
	}
	
	//private function (add description)
	function inArray(arrayObject, searchedObject) {
		var tempString;
		var arrayLength = arrayObject.length;
		if (arrayLength == 0) {
			return false;
		}
		for (var i=0; i<arrayLength; i++) {
			tempString = arrayObject[i].split(".");
			tempString = tempString[0] + "." + tempString[1] + "." + tempString[2];
			if (tempString == searchedObject) {
				return true;
			}
		}
		return false;
	}

	//private function (add description)
	function excludeFromArray(arrayObject, excludeObject) {
		var arrayLength = arrayObject.length;
		if (arrayLength == 0){
			return;
		}
		if (arrayLength == 1) {
			if (arrayObject[0] == excludeObject) {
				arrayObject.length = 0;
			}
			return;
		}
		for (var i=0; i<(arrayLength-1); i++) {			
			if (arrayObject[i] == excludeObject) {
				arrayObject[i] = arrayObject[arrayLength-1];
				arrayObject.length = arrayLength - 1;
				return;
			}
		}
		arrayObject.length = arrayLength - 1;
		return;
	}

	//private function (add description)
	function nextElementStatus(operationType, functionType, tableName, rowNumber, columnNumber, startPos, endPos) {
		var returnStatus = "block";
		var prefix = (operationType == "show") ? "h" : "c";
		switch (functionType) {
			case "row" :
				ifStatement = inArray(hiddenColumns, prefix + "." + tableName + "." + columnNumber);
				break;
			case "column" :
				ifStatement = inArray(hiddenRows, prefix + "." + tableName + "." + rowNumber);
				break;
			default :
				alert("Undefined Switch Case or Function Not Implemented (nextElementStatus 1)!!!");
		}
		if (ifStatement) {
			returnStatus = "none";
			switch (operationType) {
				case "show" :
					tableObject = getObject(tableName);
					tableDataContent = tableObject.rows[rowNumber].cells[columnNumber].getElementsByTagName("DIV");
					if (tableDataContent[0]) {
						returnStatus = "block";
					}
					break;
				case "expand" :
					break;
				default :
					alert("Undefined Switch Case or Function Not Implemented (nextElementStatus 2)!!!");
			}
		}
		return returnStatus;
	}

	//private function (add description)
	function serializeArray(arrayObject, arrayName, delimiter) {
		if (arrayObject.length > 0) {
			switch (arrayName) {
				case "hiddenRows" :
					serializedHiddenRows = arrayObject.join(delimiter);
					break;
				case "hiddenColumns" :
					serializedHiddenColumns = arrayObject.join(delimiter);
					break;
				default :
					alert("Undefined Switch Case or Function Not Implemented (serializeArray)!!!");
			}
		}
		return;
	}

	//private function (add description)
	function unserializeArray(arrayName, delimiter) {
		var tempString, delimiterPos;
		switch (arrayName) {
			case "hiddenRows" :
				tempString = serializedHiddenRows;
				hiddenRows.length = 0;
				if (tempString.length > 0) {
					hiddenRows = tempString.split(":");
				}
				break;
			case "hiddenColumns" :
				tempString = serializedHiddenColumns;
				hiddenColumns.length = 0;
				if (tempString.length > 0) {
					hiddenColumns = tempString.split(":");
				}
				break;
			default:
				alert("Undefined Switch Case or Function Not Implemented (unserializeArray)!!!");
		}
		return;
	}