// Globale Variablen
var trig = "";


function UF_FormReqFields(lcFieldList,lcFormName,lcClassName)
  {
		// Standardwert für Formularname, falls Parameter nicht übergeben wird
		var ClassName = lcClassName || "FormFeldRahmenReq";
		var lcFormName = (lcFormName=="") ? "form1" : lcFormName;
		var laFieldList = lcFieldList.split(",");
		// Pflichtfelder farbig unterlegen
		for (var i=0; i<laFieldList.length; i++) {
			//document.forms[lcFormName].elements[laFieldList[i]].className ="FormFeldRahmenReq";
			document.forms[lcFormName].elements[laFieldList[i]].className = ClassName;
		}
  return true;
  }  

function UF_FormDataChk(lnModus,lcFormName,lcFieldList, lcLabelList)
  {
	var llOK = true;
	var lcMessage = "";
	var lnCounter = 0;
	var lcFormName = (lcFormName=="") ? "form1" : lcFormName;
	var laFieldList = lcFieldList.split(",");
	var laLabelList = lcLabelList.split(",");
	switch (lnModus) {
		case 1:
			// Pflichtfelder farbig unterlegen
			for (var i=0; i<laFieldList.length; i++) {
				document.forms[lcFormName].elements[laFieldList[i]].className ="FormFeldPflicht";
			}
			break;
		
		case 2:
			alert("Validierung");
			for (var i=0; i<laFieldList.length; i++) {
				if (document.forms[lcFormName].elements[laFieldList[i]].value == "") {
				};
			}
			if (document.form1.cort.value == "") 
				{ lcMessage = lcMessage + "Ort,"; lnCounter++; } 
			if (document.form1.cplz.value == "") 
				{ lcMessage = lcMessage + "PLZ,"; lnCounter++; } 
		
			var llOK = (lcMessage == "");
		
			if (llOK) 
				{	alert("Alles in Butter"); }
			else { 
				lcMessage = lcMessage.substr(0,lcMessage.length-1) 
				lcMessage = (lnCounter>1) ? lcMessage +" sind Pflichtfelder" : lcMessage +" ist Pflichtfeld";
				var TextNeu = document.createTextNode(lcMessage);
				document.getElementById("FormMessage").replaceChild(TextNeu,document.getElementById("FormMessage").firstChild);
				document.getElementById("FormMessage").appendChild(document.createElement("br"));
				}
			break;
		}

  return llOK;
  }  

// String in Gross- oder Kleinschreibung zurückgeben
function changestring(modus,wert) {
 if (modus==1) {
      return wert.toLowerCase();
	}
  if (modus==2) {
	  return wert.toUpperCase();
  } else if (!modus==1 || !modus==2) {
    return wert;
  } 
}

// Wertrückgabe aus LookUpTables
function UF_SendValToOpener(lcValList,lcFieldList,lcFieldFocus,lcFormName)
{
	var FormName = lcFormName || "form1";
	var FieldFocus = lcFieldFocus || "";

	var laValList = lcValList.split(",");
	var laFieldList = lcFieldList.split(",");
	for (var i=0; i<laFieldList.length; i++) {
		lcFieldName = laFieldList[i];
		luVal = laValList[i];
		if (typeof(window.opener.document.forms[FormName].elements[lcFieldName])!='undefined') {
			window.opener.document.forms[FormName].elements[lcFieldName].value = luVal;
		}
	}

	if (!FieldFocus == "") {
	  // Fokus auf gewünschtes Feld setzen
		window.opener.document.forms[FormName].elements[FieldFocus].focus();
	}
	window.close();
}

// 
function UF_LoginName(lcField1,lcField2,lcTarget,lcFormName) {
	var FormName = lcFormName || "form1";
	var FieldName1 = lcField1 || "";
	var FieldName2 = lcField2 || "";
	var TargetField = lcTarget || "";
	if (!FieldName1 == "" && !FieldName2 == "" && !TargetField == "") {
		if (document.forms[FormName].elements[FieldName1].value > "" && document.forms[FormName].elements[FieldName2].value > "") {
		  var lcVal = document.forms[FormName].elements[FieldName1].value.substr(0,4)+document.forms[FormName].elements[FieldName2].value.substr(0,4);
			document.forms[FormName].elements[TargetField].value = lcVal;
		}
	} else {
		  alert("Falsche Parameterübergabe an UF_LoginName: lcField1,lcField2,lcTarget sind obligatorisch!");
	}
}

// Funktionsset für Mover-Listen
function deleteOption(object,index) {
    object.options[index] = null;
}
function addOption(object,text,value) {
    var defaultSelected = true;
    var selected = true;
    var optionName = new Option(text, value, defaultSelected, selected)
    object.options[object.length] = optionName;
}
function copySelected(fromObject,toObject) {
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        if (fromObject.options[i].selected)
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        if (fromObject.options[i].selected)
            deleteOption(fromObject,i);
    }
}
function copyAll(fromObject,toObject) {
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        deleteOption(fromObject,i);
    }
}

// Feldwert zurücksetzen aus LookUpTable (z.B. wenn NULL erlaubt ist und ein Wert bereits gewählt wurde
function UF_ClearField(lcFieldList,lcFormName) 
{
	var FormName = lcFormName || "form1";
	var laFieldList = lcFieldList.split(",");

	for (var i=0; i<laFieldList.length; i++) {
		lcFieldName = laFieldList[i];
		document.forms[FormName].elements[lcFieldName].value = "";
	} 
}

function UF_SetMultiSel(lcChkBoxName,lcChkBoxGraf,lnID,lcDatPfad,lcFormName)
  {
		// Standardwert für Formularname, falls Parameter nicht übergeben wird
		var FormName = lcFormName || "frmmultisel";
		// Standardwert für Pfadangaben
		var DateiPfad = lcDatPfad || "";
		var FeldWert = document.forms[FormName].elements[lcChkBoxName].value;
		if (FeldWert=="") {
			document.forms[FormName].elements[lcChkBoxName].value = lnID;
			document.images[lcChkBoxGraf].src = DateiPfad+"images/haken.png";
		} else {
			document.forms[FormName].elements[lcChkBoxName].value = "";
			document.images[lcChkBoxGraf].src = DateiPfad+"images/haken-leer.png";
		}
  return true;
  }


function WertUebertragen(Quelle, Ziel, Entfernen)
  {
  var WertVorhanden = false
  var ZielVorhanden = (typeof Ziel != "undefined") && (Ziel != null)
  if (!ZielVorhanden)
    {
    Entfernen = true
    }
  for (var Nr = 0; Nr < Quelle.length; Nr++)
    {
    var QuellOption = Quelle.options[Nr]
    if (QuellOption.selected)
      {
      if(ZielVorhanden)
        {
        for (var Pos = 0; Pos < Ziel.length;)
          {
          WertVorhanden = (Ziel.options[Pos++].text == QuellOption.text)
          if (WertVorhanden)
            { break }
          }
        if (!WertVorhanden)
          {
          Ziel.options[Ziel.length] = new Option(QuellOption.text, QuellOption.value)
          }
        }
        if (Entfernen)
          {
          Quelle.options[Nr] = null
          }
      }
    }
  }

function AlleWerteLoeschen(Ziel)
  {
  for (var Nr = Ziel.length; Nr > 0;) {
  Ziel.options[--Nr] = null
	}
  }

function Auslesen(ListenFeld)
  {
  var AusgabeText = ""
  for (var Nr = 0; Nr < ListenFeld.length;) {
    AusgabeText += ListenFeld.options[Nr++].text + "\n"
	}
  alert (AusgabeText)
  }



function WertAblage(ListenFeld,WertList,TextList) 
  {
	if (ListenFeld.length > 0) {
		var lcWertListe = "";
		var lcTextListe = "";
		for (var Nr = 0; Nr < ListenFeld.length; Nr++) 
		{
			var lcDelim = "";
			if (Nr+1 < ListenFeld.length) 
			{
				lcDelim = ",";
			}
			lcWertListe = lcWertListe+ListenFeld.options[Nr].value+lcDelim;
			lcTextListe = lcTextListe+ListenFeld.options[Nr].text+lcDelim ;
		}
		if (lcWertListe != "")
		{
			WertList.value = lcWertListe;
			TextList.value = lcTextListe;
		}
	}
	return true;
	}

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];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function playFlashMovie(movieID) {
	document.getElementById(movieID).Play();
}
function stopFlashMovie(movieID) {
	document.getElementById(movieID).StopPlay();
}

// Funktionen für News-Darstellung (Popout Zeilen)
var smooth_timer;
function smoothHeight(id, curH, targetH, stepH, mode) {
  diff = targetH - curH;
  if (diff != 0) {
    newH = (diff > 0) ? curH + stepH : curH - stepH;
    ((document.getElementById) ? document.getElementById(id) : eval("document.all['" + id + "']")).style.height = newH + "px";
    if (smooth_timer) window.clearTimeout(smooth_timer);
    smooth_timer = window.setTimeout( "smoothHeight('" + id + "'," + newH + "," + targetH + "," + stepH + ",'" + mode + "')", 20 );
  }
  else if (mode != "o") ((document.getElementById) ? document.getElementById(mode) : eval("document.all['" + mode + "']")).style.display="none";
}

function servOC(i) {
  var trObj = (document.getElementById) ? document.getElementById('tblrow' + i) : eval("document.all['tblrow" + i + "']");
  var nameObj = (document.getElementById) ? document.getElementById('name' + i) : eval("document.all['name" + i + "']");
  if (trObj != null) {
    if (trObj.style.display=="none") {
/*	  for (j=1; j<=1; j++) {
	    var trObjTmp = (document.getElementById) ? document.getElementById('tblrow' + j) : eval("document.all['tblrow" + j + "']");
		trObjTmp.style.display="none";
	  } */
      trObj.style.display="";
      smoothHeight('tblrow' + i, 0, 10, 10, 'o');
    }
    else {
      smoothHeight('tblrow' + i, 210, 0, 42, 'tblrow' + i);
    }
  }
}
function trOC(idHL, idOC, idArrow) {
  var trObj = (document.getElementById) ? document.getElementById(idOC) : eval("document.all['" + idOC + "']");
  var hlObj = (document.getElementById) ? document.getElementById(idHL) : eval("document.all['" + idHL + "']");
  var arrowObj = (document.getElementById) ? document.getElementById(idArrow) : eval("document.all['" + idArrow + "']");
  if (trObj != null && hlObj != null) {
    if (trObj.style.display=="none") {
      trObj.style.display="";
      hlObj.style.background="#003366";
      hlObj.style.color="#EDF6F9";
      arrowObj.innerHTML="v";
    }
    else {
      trObj.style.display="none";
      hlObj.style.background="#ECECD9";
      hlObj.style.color="#000000";
      arrowObj.innerHTML="^";
    }
  }
}

function UF_Move(ListenFeld,Aktion,Meldung) 
  {
	var Message = Meldung || false;

	var ZielVorhanden = (typeof ListenFeld != "undefined") && (ListenFeld != null)
	var NextOptText = ""
	var NextOptKey = 0
	var AktOptText = ""
	var AktOptKey = 0
	// Feldliste muss vorhanden sein
	if (ZielVorhanden )
    {
		// Einträge des Listenfeldes durchloopen
		for (var Nr = 0; Nr < ListenFeld.length; Nr++)
			{
			// Aktuellen Eintrag sichern
			var AktOption = ListenFeld.options[Nr]
			// Es interessiert nur der selektierte Eintrag
			if (AktOption.selected)
				{
				// Aktuellen Eintrag sichern
				AktOptText = AktOption.text
				AktOptKey = AktOption.value

				// Oberster Eintrag ist erreicht
				if (Nr == 0 && Aktion == '-')
					{ 
					if (Meldung) {alert("Der Eintrag steht bereits an erster Stelle!"); }
					ListenFeld.focus()
					{ break }
					}

				// unterster Eintrag ist erreicht
				if (Nr+1 == ListenFeld.length && Aktion == '+')
					{
					if (Meldung) {alert("Der Eintrag steht bereits an letzter Stelle!"); }
					ListenFeld.focus()
					{ break }
					}

				if (Aktion == '-')
					{
					// Einträge tauschen
					NextOptText = ListenFeld.options[Nr-1].text
					NextOptKey = ListenFeld.options[Nr-1].value
					ListenFeld.options[Nr-1].text = AktOptText
					ListenFeld.options[Nr-1].value = AktOptKey
					ListenFeld.options[Nr].text = NextOptText
					ListenFeld.options[Nr].value = NextOptKey
					ListenFeld.options[Nr-1].selected = true
					ListenFeld.focus()
					{ break }
					}
					

				if (Aktion == '+')
					{
					// Einträge tauschen
					NextOptText = ListenFeld.options[Nr+1].text
					NextOptKey = ListenFeld.options[Nr+1].value
					ListenFeld.options[Nr+1].text = AktOptText
					ListenFeld.options[Nr+1].value = AktOptKey
					ListenFeld.options[Nr].text = NextOptText
					ListenFeld.options[Nr].value = NextOptKey
					ListenFeld.options[Nr+1].selected = true
					ListenFeld.focus()
					{ break }
					}


				}
			}
		}
	}

function tAuslesen(ListenFeld)
  {
		// Auslesen eines Listenfeldes für Testzwecke
  var AusgabeText1 = ""
  var AusgabeText2 = ""
  for (var Nr = 0; Nr < ListenFeld.length;Nr++) {
    AusgabeText1 += ListenFeld.options[Nr].text+ "\n"
		alert(ListenFeld.options[Nr].value);
//    AusgabeText2 += ListenFeld.options[Nr++].value+ "\n"
	}
//  alert (AusgabeText1)
//  alert (AusgabeText2)
  }

// Funktionen für Navigation
function toggleDisplay(aktmenue,noclose) {
	// Untermenüs ggf. nicht schliessen
	var nichtschliessen = noclose || 0;

	document.cookie = "panel="+aktmenue;
	// Akteullen Status ermitteln
	aktmenueaktiv = document.getElementById(aktmenue);
	lcDisplay = aktmenueaktiv.style.display;

	// alle Unter-Menues zuerst schliessen
	CloseAll()

	// aktuelles Untermenü öffnen
	if (aktmenue!=="") {
		aktmenue = document.getElementById(aktmenue);
		if (lcDisplay =="" && nichtschliessen == 0) {
			// wenn bereits geöffnet, schliessen und Cookie löschen
			aktmenue.style.display = "none";
			document.cookie = "panel=";
		} else {
			aktmenue.style.display = "";
		}
	}
}

function get_cookie(name) {
var value=null;
if(document.cookie != "") {
  var kk=document.cookie.indexOf(name+"=");
  if(kk >= 0) {
	kk=kk+name.length+1;
	var ll=document.cookie.indexOf(";", kk);
	if(ll < 0)ll=document.cookie.length;
	value=document.cookie.substring(kk, ll);
	value=unescape(value); 
  }
}
return value;
}

function setPanels() {
	//alle Untermenüs ggf. schliessen
//	if (get_cookie('umenuenoclose') != null and get_cookie('umenuenoclose')==0) {
		CloseAll()
//	} 
	var value = get_cookie('panel');
	//Leeres Cookie bei Hauptnavigation ohne Unternavigation
	if (value != null && value != "") {
		//Aktelles Untermenü öffnen
//		document.getElementById(get_cookie('panel')).style.display = "";
		document.getElementById(value).style.display = "";
	} 
}

function CloseAll() {
	// Schliesst alle Untermenüs
for (var i in HNavig) {
//		alert("Schliessen: "+HNavig[i]);
		umenue = document.getElementById(HNavig[i]);
		umenue.style.display = "none";
	}
} 
