
// Oeffnet eine Abfrage mit dem Text _message und ruft nach Bestaetigung
// des OK-Buttons die URL _target auf. Bei Auswahl von "Abbrechen"
// geschieht nichts.
//
// String 			_message	Beliebiger Freitext
// URL als String	_target		Vollstaendige URL in Form von http://....
function confirmAndForward(_message, _target) {
	_check = confirm(_message);
	if (_check == true) {
		window.location.href = _target;
	}
	return _check;
}

// Ruft per eine URL _target auf. Kann z.B. von input=button
// verwendet werden.
//
// URL als String	_target		Vollstaendige URL in Form von http://....
function jsLink(_target) {
	window.location.href = _target;
}

// Erzeugt einen Klick auf die Komponente mit der uebergebenen ID idOfElement.
// Falls es kein Element mit der uebergebenen Id gibt, passiert nichts.
//
// idOfElement ID eines Buttons, einer Checkbox, oder (??? TODO: Mal testen womit's geht)
function clickButton(idOfButton) {
	if(document.getElementById(idOfButton) != null) {
		document.getElementById(idOfButton).click();
	}
}

// Erzeugt einen Klick auf die Komponente, welche die erste Kindkomponente
// eines a-Tags mit dem Namen nameOfAnchor ist.
// Dies ist eine alternative Funktion zu clickButton(idOfButton), wenn JSF
// die ID des Buttons selbst umwurschtelt und deshalb über JS-Aufruf kein 
// Zugriff mehr über die ID auf diesen besteht.
// 
// nameOfAnchor Attributwert von name eines a-Tags, innerhalb dessen sich das 
// anzuklickende Kindelement befindet.
function clickButtonInAnchor(nameOfAnchor) {
	anchors = document.getElementsByName(nameOfAnchor);
	
	if(anchors != null) {
		anchor = anchors[0];
		
		if(anchor != null && anchor.childNodes != null) {
			buttonInAnchor = anchor.childNodes[0];
				
			if(buttonInAnchor != null) {
				buttonInAnchor.click();
			}
		}
	}
}

// Aktiviert alle per Id ausgewaehlten Elemente.
//
// Array	_elements		Array der id Bezeichnungen alle umzuschaltenden Elemente
//							z.B. ['street','city','postbox']
function enableElements(_elements) {
	changeInputElementsState(true, _elements);
}

// Deaktiviert alle per Id ausgewaehlten Elemente.
//
// Array	_elements		Array der id Bezeichnungen alle umzuschaltenden Elemente
//							z.B. ['street','city','postbox']
function disableElements(_elements) {
	changeInputElementsState(false, _elements);
}

// Aendert das disabled Attribut von mehreren Eingabeelementen _elements
// des per Nummer (_form) ausgewaehlten Formulars auf den uebergebenen Wert _enable.
//
// boolean	_enable			true or false (Um z.B. eine Checkbox abzufragen kann im Event
//							direkt this.checked abgefragt werden. Um ein Ja/Nein DropDown abzufragen
//							kann das Konstrukt this.options[0].selected innerhalb des select-Tag
//							verwendet werden)
// int		_form			Nummer des Formulars in der Seite (bei 0 beginnend)
// Array	_elements		Array der id Bezeichnungen alle umzuschaltenden Elemente
//							z.B. ['street','city','postbox']
function changeInputElementsState(_enable, _elements) {
	for (x = 0; x < _elements.length; x++) {
		eval("document.getElementById(\"" + _elements[x] + "\").disabled = " + !_enable);
	}
}

// Dient zum Aktiviern und gleichzeitigem Deaktivieren von Seitenelemten, z.B. durch Radio-Buttons.
// Der Funktion wird ein zweideminsionales Array uebergeben, welches in der ersten Dimension
// die Gruppen enthaelt, welche wiederum durch Arrays von HTLM-Ids repraesentiert werden
// (siehe changeInputElementsState-Parameter _elements).
// Der Parameter _unitId steuert welche Gruppe aktiviert werden soll. So werden z.B. bei 0
// die Inhalte des erste Array innerhalb von _units durchlaufen und disabled auf false gesetzt.
// Alle weiteren Gruppen (Arrays) werden ebenfalls durchlaufen und alle Elemente deaktiviert.
//
// Array[Array]	_units		Zweideminsionales Array.
// int			_unitId		Auswahl des Elements im uebergebenen Arrays _units welches
//							aktiviert werden soll.
function enableUnit(_units, _unitId) {
	for (y = 0; y < _units.length; y++) {
		if (_unitId == y) {
			changeInputElementsState(true, _units[y]);
		} else {
			changeInputElementsState(false, _units[y]);
		}
	}
}

// Oeffnet ein neues Popup Fenster. Groessenaenderungen sind erlaubt!
// Das Popup wird immer zentriert.
// Nicht angezeigt werden:
// 		toolbar, statusbar, menubar.
// Angezeigt werden
// 		scrollbars, Locationbar
//
// _url 	Die URL welche im Popup aufgerufen wird
// _width	Die Breite des Popups
// _height 	Die Hoehe des Popups
// _title   Der Titel des Popups. Wird benoetigt um das Popup
//          ansprechen zu koennen.
function openPopup(_url, _width, _height, _title) {
	var _top = (screen.height - _height) / 2;
	var _left = (screen.width - _width) / 2;
	eval("popUp = window.open(\"" + _url + "\", \"" + _title + "\", \"toolbar=0, scrollbars=1, location=1, statusbar=0, menubar=0, resizable=1,width=" + _width + ",height=" + _height + ",left=" + _left + ",top=" + _top + "\")");
//	eval('popUp = window.open("/VMSWeb' + _url + '", "'+_title+'", "toolbar=0, scrollbars=1, location=1, statusbar=0, menubar=0, resizable=1,width=' + _width + ',height=' + _height + ',left=' + _left + ',top=' + _top + '")');
}

// Ermoeglicht das veraendern des disabled Status von HTML Elementen. Die zu
// verändernden Elemente müssen mit vollem Namen als elementsName angegeben
// werden und der neue status wird mit enable angegeben.
//
// _elementsName	Name der Elements welches auf enabled oder disabled gestellt
//					werden soll
// _enable			True wenn das Element aktiv sein soll, sonst false
function toggleElementsByName(_elementsName, _enable) {
	var elements = document.getElementsByName(_elementsName);
	for (x = 0; x < elements.length; x++) {
		eval("elements[x].disabled = " + !_enable);
	}
}


//
// START TOOL-TIP FUNCTION
//
var aktiv;											// Timer Var
var delayTime = 1000;								// Zeit, wann Tool-Tip eingebelendet werden soll
var toolShow ;								        // Anzeigen des Tool-Tips Pruefvar
var horizontal_offset = "9px";      			 	//horizontaler Abstand der Toolbox vom Link
var vertical_offset = "0";           				//vertikaler Abstand der Toolbox vom Link
var ie = document.all;
var ns6 = document.getElementById && !document.all;


function getposOffset(what, offsettype) {
	var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
	var parentEl = what.offsetParent;
	while (parentEl != null) {
		totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
		parentEl = parentEl.offsetParent;
	}
	return totaloffset;
}
//
// IE check
function iecompattest() {
	return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function clearbrowseredge(obj, whichedge) {
	var edgeoffset = (whichedge == "rightedge") ? parseInt(horizontal_offset) * -1 : parseInt(vertical_offset) * -1;
	if (whichedge == "rightedge") {
		var windowedge = ie && !window.opera ? iecompattest().scrollLeft + iecompattest().clientWidth - 30 : window.pageXOffset + window.innerWidth - 40;
		dropmenuobj.contentmeasure = dropmenuobj.offsetWidth;
		if (windowedge - dropmenuobj.x < dropmenuobj.contentmeasure) {
			edgeoffset = dropmenuobj.contentmeasure + obj.offsetWidth + parseInt(horizontal_offset);
		}
	} else {
		var windowedge = ie && !window.opera ? iecompattest().scrollTop + iecompattest().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18;
		dropmenuobj.contentmeasure = dropmenuobj.offsetHeight;
		if (windowedge - dropmenuobj.y < dropmenuobj.contentmeasure) {
			edgeoffset = dropmenuobj.contentmeasure - obj.offsetHeight;
		}
	}
	return edgeoffset;
}
//
// Timer fuer verzoegerte Einblendung des Tool-Tips
function showhintTimer(menucontents, obj, e, tipwidth, art, textheadline){
		
	menucontentsNEW = menucontents;
	objNEW          = obj;
	eventHNEW	    = e;
	tipwidthNEW     = tipwidth;
	artNEW          = art;
	textheadlineNEW = textheadline;
	
	toolShow = true;	// Setze Pruefvar auf true - Tool Tip Box soll angezeigt werden
	//
	// Starte Timer mit Aufruf der showhint()
	aktiv = window.setTimeout('showhint(menucontentsNEW, objNEW, eventHNEW, tipwidthNEW, artNEW, textheadlineNEW)',delayTime);
	
}
//
// Anzeigen des Tool-Tips
function showhint(menucontents, obj, e, tipwidth, art, textheadline, zustandCHECK){

		//
		// Pruefung des Eventhandlers
		if (zustandCHECK==false){	
				
			//
			// Statuswechsel, ob Box angezeigt werden soll	
			 toolShow = false;
		}
		 else{ toolShow = true;}

		//
		// Blende Tooltipp ein
		if(toolShow == true){
			if ((ie||ns6) && document.getElementById(art)){
				dropmenuobj=document.getElementById(art)
				dropmenuobj.innerHTML="<div class='tooltippsheadline'>"+textheadline+"</div>"+menucontents
				dropmenuobj.style.left=0;
				//dropmenuobj.style.top=-500;
				dropmenuobj.style.top=0;
				
				if (tipwidth!=""){
					
					dropmenuobj.widthobj=dropmenuobj.style;
					// Prüfe ob "px" im Parameter 'tipwidth' enthalten ist 
					var pxSearch = tipwidth.indexOf("px", 0);
					if(pxSearch != "-1") {
						dropmenuobj.widthobj.width=tipwidth;
					}
					else {
						dropmenuobj.widthobj.width=tipwidth+"px";
					}
							
				}
				dropmenuobj.x=getposOffset(obj, "left");
				dropmenuobj.y=getposOffset(obj, "top");
				dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px";
				dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
				dropmenuobj.style.visibility="visible";

			}
		}
}
//
// Verstecke Tool-Tip
function hidetip(wichBox) {

	window.clearTimeout(aktiv); // Stoppe Timer
	
	var tooltip = document.getElementById(wichBox);
	
	if(tooltip) {
		// Falls Tooltip angezeigt wird
		// -> Blende Tooltip aus
		tooltip.style.visibility="hidden" // Verstecke aktuellen Tooltip
		tooltip.style.left="-500px"
	}
	
	toolShow = false; // Setze Pr�fvar wieder auf false
}

//
// Generierung der verschiedenen Tool-Tip Boxen
function createsctooltipps() {
	//
	// Warnbox
    var divblock = document.createElement("div");
    divblock.setAttribute("id", "tooltippsWARN");
    document.body.appendChild(divblock);
	//
	// Infobox
	var divblock = document.createElement("div");
    divblock.setAttribute("id", "tooltippsINFO");
    document.body.appendChild(divblock);
	//
	// Successbox
	var divblock = document.createElement("div");
    divblock.setAttribute("id", "tooltippsSUCCESS");
    document.body.appendChild(divblock);
	//
	// Errorbox
	var divblock = document.createElement("div");
    divblock.setAttribute("id", "tooltippsERROR");
    document.body.appendChild(divblock);
}


if (window.addEventListener) {
	window.addEventListener("load", createsctooltipps, false);
} else {
	if (window.attachEvent) {
		window.attachEvent("onload", createsctooltipps);
	} else {
		if (document.getElementById) {
			window.onload = createsctooltipps;
		}
	}
}

function InterFaceToolTipNoPadding (stateInside) {
	// ID der Tooltipsboxen
	var interfaceToolTippBox = new Array("tooltippsWARN", "tooltippsINFO", "tooltippsSUCCESS", "tooltippsERROR"); 
	for(var i=0; i<interfaceToolTippBox.length;i++) {
		// Org. Padding Anweisung stehen in 'VMS_utilities.css'
		var element = document.getElementById(interfaceToolTippBox[i]);
		
		if(stateInside & (element != null) ) {
			element.style.padding="25px 0px 0px 0px";
			//padding ="25px 0px 15px 0px;";
		}
		else if (element != null){
			element.style.padding="25px 3px 15px 10px";
		}
	}
}
//
// ENDE TOOL-TIP FUNCTION
//
//
// Toggle Funktion AB 13-08-07
//
// Anzeigen und verbergen von divs
function zeigen (cssid) {
  document.getElementById("THIDE_"+cssid).style.display="inline";
  document.getElementById("TITEL_"+cssid).style.display="none";
  document.getElementById("TXT_"+cssid).style.display="inline";
  document.body.parentNode.style.backgroundColor = 'transparent';
  return 1; 
}

function verbergen (cssid) {
  document.getElementById("TITEL_"+cssid).style.display="inline";
  document.getElementById("THIDE_"+cssid).style.display="none";
  document.getElementById("TXT_"+cssid).style.display="none";
  document.body.parentNode.style.backgroundColor = 'transparent';
  return 1; 
}
//
// UploadFile Funktion AB 13-08-07
//
// UploadFile CSS fuer input type=file
	var uploadNamePosition;
	var uploadName;
	function UploadFile(wert,defaulttext) {
		
		 // Ermittele letzte Position eines Backslashes
		 //uploadNamePosition = wert.lastIndexOf('\\')+1;
		 fileCheck = wert.lastIndexOf('/');
		 if(fileCheck==-1){
		 //
		 // Win
		 uploadNamePosition = wert.lastIndexOf('\\')+1;
		 }
		 else{
		 	 //
			 // Linux
		 	 uploadNamePosition = wert.lastIndexOf('/')+1;
		 	 }
		 //
		 // Extrahiere Dateinamen vom uebrigen Pfad
		 uploadName = wert.slice(uploadNamePosition,wert.length);
		 
	
		 //
		 // Pruefe, ob wert gefuellt ist, bei Abbruch setze 'defaulttext' aus commons.properties
		 if (wert==""){
		 	uploadName=defaulttext;
		 }
		 
		 //
		 // Ausgabe des Upload Dateinamens
		 document.getElementById("uploadausgabe").innerHTML = uploadName; 
	}

	
	
	//Funktionen zum Oeffnen einer Vergabeakte im Popup Fenster	
	var windowconfig; //Variable fuer Fensterwerte
		
	function openWindow(adresse,wname,displayLocation){
		// Def. Hoehe und Breite
		var width = 1024;
		var height  = 600;

		// Aufbau der Werte, des zu oeffnenden Fensters / Fenster wird auf die Mitte des Bildschirms ausgerichtet
		h_Position = (screen.width) ? (screen.width-width)/2 : 0; // Ausrichtung Mitte horizontal
		v_Position = (screen.height) ? (screen.height-height)/2 : 0;// Ausrichtung Mitte vertikal
		
		windowconfig ='height='+height+',width='+width+',top='+v_Position+',left='+h_Position+',scrollbars=yes,resizable=yes,location='+displayLocation;
		
			// Check Client-Browser auf Popup-Blocker	
			// Versuch, das Popup Fenster zu öffnen
			try {	
					var windowToOpen = window.open(adresse,wname,windowconfig);
						if ( !windowToOpen || typeof(windowToOpen) != 'object' || windowToOpen.closed ) {
							throw "notopen";
						}
						else {
								throw "open";
						}
					windowToOpen.focus();
				} // End 'try'
				
			catch(e) {
					// Client hat popupblocker aktiviert
					if ( e == "notopen" ) {
							//Blende Error-BOX mit Hinweis auf PopupBlocker ein
							document.getElementById("popupBlockerDetected").style.display = "block";
					}
				}// End 'catch'						
	}	
	
	//Funktion um ein Fenster zu schliessen
	function windowClose(){
		self.close();
	}
		
	//Funktion zum Lockout und schliessen Aller bisher geoeffneten Fenster
	function lockOutAndCloseOpenWindows(tenderFileIdsAsString){
		var tenderFileIds = tenderFileIdsAsString.split(",");
		for (var i = 0; i < tenderFileIds.length; i++) {	             		
		
			h_Position = -50; // 
			v_Position = -50;// 
			windowconfig ='height=1,width=1,top='+v_Position+',left='+h_Position+',scrollbars=auto,resizable=no';
			if(tenderFileIds[i] != ''){
				//var windowToOpen = window.open('',tenderFileIds[i],windowconfig);
				//if(windowToOpen!=null){
				//	windowToOpen.close();
				//}
				
				closeOpenTenderFile(tenderFileIds[i]);
			}
	   }
	}
	
	//Funktion zum Schliessen eines einzelnenen Popupups
	//Dieses wird durch den windowNamen referenziert.
	function closeOpenTenderFile(windowName){
		var windowToOpen = window.open('',windowName,windowconfig);
				if(windowToOpen!=null){
					windowToOpen.close();
				}
	}
	
	
//
// START Funktion fuer Upload Time 21.01.2008
var sekunden = 0;
var minuten  = 0;
var sekundenAugsbabe;
var minutenAugsbabe;

function fileUploadTime(sekunden) {
	//
	// Sekunden
	if (sekunden < 10){
		sekundenAugsbabe ="0"+sekunden;}
		
		else{sekundenAugsbabe =sekunden;}
	
	 if (sekunden > 59){
		sekunden = 0;
		sekundenAugsbabe ="00";
		minuten++;}
	//
	// Minuten
	 if (minuten < 10){
		minutenAugsbabe ="0"+minuten;}
		
		else {minutenAugsbabe=minuten;}
		//
		// TimeOut fuer 1 Sekunden, zaehle Sekunden hoch
		fileUploadTimeCheck = setTimeout('fileUploadTime(' + (sekunden + 1) + ')', 1000);
		
	//
	// Zusammengesetzte Zeitausgabe
	zeitAusgabe = ''+minutenAugsbabe+':'+sekundenAugsbabe;
	//
	// Ausgabe an div
	document.getElementById('fileUploadTimeOutput').innerHTML = zeitAusgabe;
}

function fileUploadStart (){
	//
	// Starte Function  fileUploadTime, beginnt bei 0 Sekunden
	fileUploadTime(0);
}
function fileUploadStop(uploadcomplete, uploadstatus){
		//
		// Stoppe Zeit
	 	clearTimeout(fileUploadTimeCheck);
		//
		// Upload Status Icon ausblenden
		document.getElementById('fileUploadIcon').style.display="none";
		//
		// Create Status DIV
		var filedivblock = document.createElement("div");
   		filedivblock.setAttribute("id", uploadstatus);
    	//
    	// Ausgabe der Stats DIV im "fileUploadStatus" DIV
    	var filedivblockausgabe = document.getElementById("fileUploadStatus");
    	filedivblockausgabe.appendChild(filedivblock);
		//
		// Erfolgreiche Ausgabe
		document.getElementById('fileUploadTitle').innerHTML = uploadcomplete;
}
//
// ENDE Funktion fuer Upload Time 21.01.2008

// 
// BEGINN Definition fuer Super Size Drop Down
function selectOverview (optionID, optionIDNumber) {
	//
	// optionWert   : Lies die ID des selektierten <option> aus
	//
	var index = optionID.selectedIndex;
	
	var optionWert = "";
	
	//optionIDNumber: Fortlaufende ID, falls  mehrere "dropDown Liste SuperSize" vorkommen
	if (document.getElementById('dropDownContent_'+optionIDNumber)) {
		optionWert = document.getElementById('dropDownContent_'+optionIDNumber).options[index].innerHTML;
	} else {
		optionWert = optionID.options[index].innerHTML;
	}
	//
	// Ausgabe des Textes an div, mit entsprechender ID
	document.getElementById('dropDownOutput_'+optionIDNumber).innerHTML = optionWert;
	}
// ENDE Definition fuer Super Size Drop Down
// 

	// Zeigt ein neues Fenster mit der Wertungsmatrix an
	function openValuationMatrixWindow(adresse, wname, selectionid){
	
		var width = 800;
		var height  = 640;

		// Aufbau der Werte, des zu oeffnenden Fensters / Fenster wird auf die Mitte des Bildschirms ausgerichtet
		h_Position = (screen.width) ? (screen.width-width)/2 : 0; // Ausrichtung Mitte horizontal
		v_Position = (screen.height) ? (screen.height-height)/2 : 0;// Ausrichtung Mitte vertikal
		windowconfig='height='+height+',width='+width+',top='+v_Position+',left='+h_Position+',scrollbars=yes,resizable=yes,location=yes';
		var selectElement=document.getElementById(selectionid);
		var lotid=selectElement.options[selectElement.selectedIndex].value;
		var windowToOpen = window.open(adresse+'&lot='+lotid, wname, windowconfig);
		windowToOpen.focus();			
	}	
			
		//
		// Einstellen der Hoehe fuer den <iframe> des jeweiligen Wizards 
		// Funktionsaufruf in wizard_layout.xhtml; 		
		var framefenster = parent.document.getElementsByTagName("iFrame");
		var TempFrameName;
		var TempBoxContentPosition;
		var TempBoxContentName;
		function heightOfIframe () {
		var docHeight     = document.body.scrollHeight;	
		    for (var i = 0; i < framefenster.length; ++i) {
		      TempFrameName          = framefenster[i].name;
		      TempBoxContentPosition = TempFrameName.indexOf(":");
		      TempBoxContentName     = TempFrameName.substr(0,TempBoxContentPosition+1);

		      if(TempFrameName!='') { 
		    	parent.document.getElementById(TempFrameName).style.height = docHeight+"px";
		    	parent.document.getElementById(TempBoxContentName+"openBoxcontent").style.height = docHeight+"px";
		     }
		    	
		      TempFrameName          = '';
		      TempBoxContentPosition = '';
		      TempBoxContentName     = '';
     		 }	
		}	

		//
		// Ankeraufruf der Parentseite nach speichern aus dem Wizard
		// Parentseite springt wieder 0,0 	
		function jumpToTopOfParent () {
			top.window.scrollTo(0,0);
		}

		/*------------------------------------------
						
		Auf der FristenSeite kann es recht schnell vorkommen, dass einige 
		Fristangaben jsf-ungueltig sind, obwohl diese nicht gebraucht werden.
		Deshalb werden vor einer Berechnung die nicht-ausgewaehlten 
		Fristeingaben geloescht.

		Je nachdem, ob nur das (a) Datum oder (b) Datum und Uhrzeit einzugeben 
		sind,  (a) muss das Feld "inputDate" oder 
		(b) muessen die drei Felder "inputDateTimecal", "inputDateTimetimeselectOneHour"
		und "inputDateTimetimeselectOneMinute" auf eine Leerauswahl gesetzt werden.


		Dies ist aber nur fuer solche Felder druchzufuehren, die 
		nicht per RadioButton "radioDateGroupSelect" ausgewaehlt wurden, 
		oder nicht neu berechnet werden sollen -- hierfuer ist
		das versteckte Eingabefeld "disableDeletion" zustaendig, welches eine
		Loeschung verhindert.
		------------------------------------------*/
		function clearOtherTimeLimits(buttonRows) {
			// ID der Tabelle, als Pruefix fuer die Angaben
			var tableId = "timeLimitsForm:timeLimitsTable";
			
			// Einzel-ID der Auswahl-RadioButtons
			var selectionInputId = "radioDateGroupSelect";
			// ID des Verstekcten Feldes zum Verhindern des L�schens
			var disableDeletionId= "disableClearReset";
			
			// Iteration ueber alle vorhandenen Fristen
			for (var i=0; i< buttonRows; ++i ) {
				var rowIdPraefix = tableId + ":" + i+  ":";
				var buttonId = rowIdPraefix  + selectionInputId;
				var hiddeninputDisableDeletionId = rowIdPraefix + disableDeletionId;
				var radioButton = parent.document.getElementById(buttonId);
				
				/*
					Manche Fristen koennen nicht ausgewaehlte werden und haben daher 
					keine Auswahlmoeglichkeit, bei anderen ist das Flag gesetzt.
					Diese durrfen nicht zurueckgesetzt werden.
				*/
				
				if ( (radioButton == null || ! radioButton.checked) 
						&& parent.document.getElementById(hiddeninputDisableDeletionId) == null ) {
						
					// Ermittle IDs der zurueckzusetzenden Felder
					var inputDateId = rowIdPraefix + "inputDate";
// ÄNDERUNG DER IDs wegen Workaround zum Ischuh VMS-2397:
					var inputlDateTimeCalId = rowIdPraefix + "inputDateTimecal";
					var selectHourId =rowIdPraefix + "inputDateTimetimeselectOneHour";
					var selectMinuteId = rowIdPraefix + "inputDateTimetimeselectOneMinute";
//var inputlDateTimeCalId = rowIdPraefix + "datePart";
//var selectHourId =rowIdPraefix + "timePartselectOneHour";
//var selectMinuteId = rowIdPraefix + "timePartselectOneMinute";
					
					// Ermittle die zurueckzusetzenden Felder selbst
					var inputDate = parent.document.getElementById(inputDateId);
					var inputDateTimeCal = parent.document.getElementById(inputlDateTimeCalId);
					var selectHour = parent.document.getElementById(selectHourId);
					var selectMinute = parent.document.getElementById(selectMinuteId);
					
					// Setze die vorhandenen Felder zurueck
					if (inputDate != null) {
						inputDate.value = "";
					}
					
					if (inputDateTimeCal != null) {
						inputDateTimeCal.value = "";
					}
					
					if (selectHour != null) {
						selectHour.value = -1; // 0 sollte Leerauswahl ("--") sein
					}
					
					if (selectMinute != null) {
						selectMinute.value = -1; // 0 sollte Leerauswahl ("--") sein
					}
				} 
			}
		}
//####### START #################################################################################################################################################################################
// 'Disable Funktionen' AB 31-03-09 
//		
// Setze Felder auf 'disable' ausgelöst durch die 'cx:inputYesNo'-Komponente
// 
// selectValue     = value aus der 'cx:inputYesNo'-Komponente 
// classNameActual = bezeichnet die CSS-Klasse des jeweiligen Tags, der auf disbabled true/false gestellt wird
var disabledClassName = "disabledField"; // CSS-Klasse, die im DOM die 'disabled=true' Elemente kennzeichnet
// Nicht alle TAGS sollen im Dokument durchsucht werden
// Nicht alle Durchsuchen, da JS-Engine der IEs zu langsam ist
var allTags = new Array("input", "select", "textarea"); 

function SetDisableOrNot (selectValue, classNameActual) {
  	// Starte Array der betroffenen TAGS
	for(j=0; j<allTags.length;j++) {
		// Starte Array 'allTags'
		var allObj  = document.getElementsByTagName(allTags[j]);
		// Durchsuche die ausgewählten TAGS auf der Seite
		for(i=0; i<allObj.length;i++) {
			// Suche nach entsprechender Class, wenn gefunden
		 	if(allObj[i].className.indexOf(classNameActual)!=-1) {
		 		// Wenn auf 'disable' gestellt werden soll
			 	if (selectValue == '1'){
			 		// Setze alle Felder der gefundenen Class auf 'disable=true'
					allObj[i].disabled   = true;
	    		}
	    		// Wenn 'disabled' aufgehoben werden soll
	    		else {
	    			// Wenn auf 'disabledClassName' vorhanden ist, bleibt Element auf disbaled
	    			if(allObj[i].className.indexOf(disabledClassName)!=-1) {
	    				allObj[i].disabled   = true;
	    			}
	    			else {
	    				// Setze alle Felder der gefundenen Class auf 'disable=false'
	    				allObj[i].disabled = false;	
	    			}
	    		} // ENDE ELSE 'selectValue'
	   	    } // ENDE IF	'allObj[i]'
		}  // ENDE FOR (i=0)
	} // ENDE FOR (j=0)
}
// Nach rendern der Seite, prüfe Radiobuttons auf 'unchecked' und setze zugehörige 'input type="text" / input="radio" /'textarea'
// auf "disabled = true", bzw. bei 'checked' auf 'disabled = false'
function InitSetDisableOrNot (radioButtonsClassArray, inputTypIdArray) {	
  	var inputTypIdArrayTempFalse = new Array(); 
  	var inputTypIdArrayTempTrue  = new Array(); 
  	// Starte Array der betroffenen TAGS
	for(j=0; j<allTags.length;j++) {
		// Starte Array 'allTags'
		var allObj  = document.getElementsByTagName(allTags[j]);
		// Durchsuche die ausgewählten TAGS auf der Seite
		for(i=0; i<allObj.length;i++) {
			// Durchlaufe 'radioButtonsClassArray'
			for(k=0; k<radioButtonsClassArray.length;k++) {
				// Prüfe, ob 'CLASS' der Radiobutton in Elementen vorkommt
				if(allObj[i].className.indexOf(radioButtonsClassArray[k])!=-1) {
					//
					//Prüfe, ob Radio-Button-Wert 'checked=false' ist
					if(allObj[i].checked == false){
						// Wenn Inhalt des Arrays nicht leer sein sollte,
						// falls doch, wurde dem entsprechenden Radiobutton kein/e Textfeld/er zugewiesen
						if(inputTypIdArray[k] != ''){
							// Splitte Werte aus 'inputTypIdArray'-Array auf und bilde'inputTypIdArrayTempFalse'-Array
							inputTypIdArrayTempFalse = inputTypIdArray[k].split(",");
							// Ermittele die Länge des inputTypIdArrayTempFalse'-Array`s und lese es aus
							for(n=0; n<inputTypIdArrayTempFalse.length;n++) {
								// Prüfe auf Existenz
								if(document.getElementById(inputTypIdArrayTempFalse[n])){
									// Setze entsprechende Ids auf 'disabeld=true"
									document.getElementById(inputTypIdArrayTempFalse[n]).disabled = true;
									// Ermittele die zugehörige Gesamt-'Class' der ID
									var tempClassNameFalse = document.getElementById(inputTypIdArrayTempFalse[n]).className;
									// Wenn 'disabledClassName' nicht vorhanden, dann setze es ein
									if(document.getElementById(inputTypIdArrayTempFalse[n]).className.indexOf(disabledClassName)==-1) {
										// Erweitere aktuelle Gesamt-'Class' mit 'disabledClassName'
										document.getElementById(inputTypIdArrayTempFalse[n]).className = tempClassNameFalse+" "+disabledClassName;
									}
								}	// ENDE if(document.getElementById(inputTypIdArrayTempFalse[n])){
							}// ENDE FOR (n=0)
						 } // ENDE IF 'inputTypIdArray[k] !='
					}// ENDE IF	'allObj[i].checked == false'
					//
					// Prüfe, ob Radio-Button-Wert 'checked=true' ist
					if(allObj[i].checked == true){
						// Wenn Inhalt des Arrays nicht leer sein sollte,
						// falls doch, wurde dem entsprechenden Radiobutton kein/e Textfeld/er zugewiesen
						if(inputTypIdArray[k] != ''){
							// Splitte Werte aus 'inputTypIdArray'-Array auf und bilde'inputTypIdArrayTempTrue'-Array
						    inputTypIdArrayTempTrue = inputTypIdArray[k].split(",");
							for(m=0; m<inputTypIdArrayTempTrue.length;m++) {
							// Prüfe auf Existenz
								if(document.getElementById(inputTypIdArrayTempTrue[m])){
									// Setze entsprechende Ids auf 'disabeld=false"
									document.getElementById(inputTypIdArrayTempTrue[m]).disabled = false;
									// Ermittele die zugehörige Gesamt-'Class' der ID
									var tempClassNameTrue = document.getElementById(inputTypIdArrayTempTrue[m]).className;
									// Lösche 'disabledClassName' aus zugehörige Gesamt-'Class'
									document.getElementById(inputTypIdArrayTempTrue[m]).className = tempClassNameTrue.replace(disabledClassName, "");	
								}// ENDE if(document.getElementById(inputTypIdArrayTempTrue[m])){	
							}// ENDE FOR (m=0)
					 	} // ENDE IF 'inputTypIdArray[k] !='
					}	// ENDE IF	'allObj[i].checked == true'
				}// ENDE IF	'allObj[i].className.indexOf'
			} // ENDE FOR (k=0)
		} // ENDE FOR (i=0)
  	} // ENDE FOR (j=0)
}
// Da die angegebene styleClass in 't:selectOneRadio' alle Radiobuttons der gleichen Radiobuttongruppe
// mit dem gleichen Style belegt, werden in dieser Funktion die einheitlichen ClassNames 
// durch die entsprechenden ClassNames aus den 'radioButtonClassNameArray' ausgetauscht
function RenameClasses (actualClassName, radioButtonClassNameArray, inputsClassNameArray, specialParameter) {
	var counter = 0;
	var allTagsDefault = new Array("input"); 
	for(j=0; j<allTagsDefault.length;j++) {
		// Starte Array allTagsDefault
		var allObjDefault  = document.getElementsByTagName(allTagsDefault[j]);
		 for(i=0; i<allObjDefault.length;i++) {
		 	if(allObjDefault[i].className.indexOf(actualClassName)!=-1) {
		 		// Tausche die ClassName aus und ersetze sie aus dem jeweilig aktuellen 'radioButtonClassNameArray'
		 		allObjDefault[i].className = allObjDefault[i].className.replace(actualClassName, radioButtonClassNameArray[counter]);
		 		counter++;
		 	}
		}
		// Wenn kein 'specialParameter' vorliegt, dann führe Funktion aus
		if(!specialParameter) {
			InitSetDisableOrNot (radioButtonClassNameArray, inputsClassNameArray);
		}
	}	
}
//
// Bevor der 'submit' gesendet wird, werden alle 'input type="text"' und 'textareas',
// die 'disabled= true' und deren 'value != NULL' sind, setze den 'value' auf NULL
function DefaultValueForDisabledFields (specialCase) {
	var allTagsDefault = new Array("input","textarea"); 
	for(j=0; j<allTagsDefault.length;j++) {
		// Starte Array allTagsDefault
		var allObjDefault  = document.getElementsByTagName(allTagsDefault[j]);
		for(i=0; i<allObjDefault.length;i++) {
		 	// Wenn Element auf 'disabled' steht, der 'value' NICHT null UND der 'type="text"' ist,
		  	// dann leere den 'value' des Textfeldes
		 	if(allObjDefault[i].disabled == true && allObjDefault[i].value !='' && allObjDefault[i].type == "text") {
		 		// Muessen wieder freigegeben werden, da Felder im 'disabled'-Modus keine Werte uebermitteln
		 		allObjDefault[i].disabled = false;
		 		allObjDefault[i].value = '';
		 	}
		 	// Wenn Element auf 'disabled' steht, der 'value' NICHT null UND eine 'textarea' ist,
		  	// dann leere den 'value' der Textarea
		 	if(allObjDefault[i].disabled == true && allObjDefault[i].value !='' && allObjDefault[i].type == "textarea"  ) {
		 		// Muessen wieder freigegeben werden, da Felder im 'disabled'-Modus keine Werte uebermitteln
		 		allObjDefault[i].disabled = false;
		 		allObjDefault[i].value = '';
		 	} 
		 	// SONDERFALL PROBLEM MIT <f:selectItems>!!!!!
			// Es muss bei DefaultValueForDisabledFields('spezialfall') ein
			// Parameter übergeben werden (STRING, BEZEICHNUNG EGAL) weil,
			// bei disabled="true" die Methode BidsAndSubmissions.setEuVariantenAlternativangebote() 
			// mit dem Wert null aufgerufen wurde, Probleme bei 
		 	if(allObjDefault[i].disabled == true  && allObjDefault[i].type == "radio"  ) {
		 		if(specialCase) {
		 			allObjDefault[i].disabled = false;
		 		}
		 	} 
		}
	}
}
//####### ENDE ##################################################################################################################################################################################


// Führt einen regelmäßigen Seiten-Relaod einer Seite innerhalb eines I-Frames durch.
// Parameter:
// nameOfIframe Wert aus dem Attribut 'name' des IFrames
// seconds Anzahl der Sekunden als Länge des Intervalls, nach dem die Seite gereloaded werden soll 
function RefreshPageOnIframe (nameOfIframe, seconds) {
	setInterval("parent."+nameOfIframe+".location.reload()",seconds*1000);
}

