<!--InputLengthCheck -->
function checkInputLength(iFeld,iMinLen,iMaxLen){
			var len = iFeld.value.length;
                        if (len == 0){
                            return true;
                        }
			if (len < iMinLen){
				alert("Eingabe zu kurz - Minimum 16, Maximum 20");
				iFeld.focus();
				iFeld.select();
				return false;
			}
			if (len > iMaxLen){
				alert("Eingabe zu lang -  Minimum 16, Maximum 20");
				iFeld.focus();
				iFeld.select();
				return false;
			}
			return true;
}
<!--Die relation bei OSL -->
function fillRelation(iField){
    var len = iField.value.length;
    if (len != 2){
        alert("Zweistellig, bitte!");
        iField.focus();
        iField.select();
        return false;
    }else{
        var val = "9100"+iField.value;
        iField.value = val;
        return true;
    }
}
<!-- OnSelect-Trigger des Filter-Combos -->
function TFFilterCombo_onSelect(){

   var stateField = document.getElementById("STATE__");
   stateField.value = "";
   var x = document.forms[0];
   x.submit();

}
<!-- Error messages -->
var sIllegalMonthMsg = "Not correct number for a month! ";
var sIllegalDayMsg = "Not correct number for a day! ";
var sIllegalHourMsg = "Not correct number for an hour! ";
var sIllegalMinMsg = "Not correct number for a minute! ";
var sDateFormatMsg = "DateTime format is: ";

<!-- Date time specifier -->
var sDataFormat = "DD.MM.YYYY";
var sDataFormatH = "DD.MM.YYYY HH:mm";

<!-- elements order separators MUST be on positions 1, 3, 5, 7 -->
var iElementSize=9;
var aElementOrder=Array(iElementSize);

function clearElementOrder()
{
	for(var i = 0; i < iElementSize; i++) aElementOrder[i] = "";
}

function loadElementOrder(sDTFormat)
{
	var i = 0;
	var iArr = -1;
	var l = sDTFormat.length;
	var ch, chPrev;
	clearElementOrder();
	while (i < l) {
		ch = sDTFormat.charAt(i);
		if (chPrev != ch) {
			chPrev = ch;
			iArr++;
		}
		aElementOrder[iArr] = ch + aElementOrder[iArr];
		i++;
    }
}

function intToStr(iDigit)
{
	var ret = "q" + iDigit;
	return ret.substr(1);
}

<!-- Function adds leading zeros -->
function addjustZeros(iDigit, iLength)
{
	var d = intToStr(iDigit);
	while (d.length < iLength)
		d= "0" + d;
	return d;
}

<!-- Function generates string contains date and time according the input format -->
function formatDateTime(Day, Month, Year, Hour, Minute)
{

	var i;
	var sDateTime = "";
	var sYear = "q";
	if(Year < 50) Year += 2000;
	else if(Year < 100) Year += 1900;
	for(i = 0; i < iElementSize; i++) {
		switch(aElementOrder[i].charAt(0)) {
			case "D":
				sDateTime += addjustZeros(Day, aElementOrder[i].length);
				break;
			case "M":
				sDateTime+=addjustZeros(Month, aElementOrder[i].length);
				break;
			case "Y":
				sYear = ""+Year;
				var len1 = sYear.length;
				var len2 = aElementOrder[i].length;
				sDateTime += sYear.substr(len1-len2);
				break;
			case "h":
				sDateTime += addjustZeros(Hour, aElementOrder[i].length);
				break;
			case "H":
				sDateTime += addjustZeros(Hour, 2);
				break;
			case "m":
				sDateTime += addjustZeros(Minute, 2);
				break;
			default:
				sDateTime += aElementOrder[i];
			}
		}
	return sDateTime;
}

function todayDate(withHours)
{
	var now = new Date();
	var day = now.getDate();
	var month = now.getMonth() + 1;
	var year = now.getYear();
  var hours = now.getHours();
  var mins = now.getMinutes();
  var secs = now.getSeconds();
	if (year < 1900) year += 1900;
  varSdateTime="";
  if (withHours ){

	    sDateTime = formatDateTime(day, month, year,hours,mins);
  }else{
	    sDateTime = formatDateTime(day, month, year);
  }
	return sDateTime;
}



function isLeapYear(iYear)
{
	return (iYear % 4 == 0) && ((iYear % 100 != 0) || (iYear % 400 == 0));
}

function getMonthDays(iMonth, iYear)
{
	var aDays = new Array (31,0,31,30,31,30,31,31,30,31,30,31);
	var ret = 0;
	if (iMonth < 1 || iMonth > 12)
		alert(sIllegalMonthMsg + iMonth);
	else
		if (iMonth == 2)
			ret = isLeapYear(iYear) ? 29 : 28;
		else
			ret = aDays[iMonth - 1];
	return ret;
}

<!-- Adds/substracts iDays from oDate -->
function shiftDays(oDate, iDays,withHours)
{
	var day = oDate.getDate();
	var month = oDate.getMonth() + 1;
	var year = oDate.getYear();
  var hours = oDate.getHours();
  var mins = oDate.getMinutes();
	if (year < 1900) year += 1900;
	var i;

	if (iDays > 0)
		while (iDays > 0) {
			i = getMonthDays(month, year) - day;
			if (iDays > i) {
				iDays--;
				day = 1;
				month++;
				if (month > 12) {
					month = 1;
					year++;
				}
			}
			else
				day += iDays;
			iDays -= i;
		}
	else
		while (iDays < 0) {
			if (day + iDays > 0) {
				day += iDays;
				iDays = 0;
			}
			else {
				iDays += day;
				if (month == 1) {
					month = 12;
					year--;
				}
				else month--;
				day = getMonthDays(month, year);
			}
		}
  if (withHours)
	    return formatDateTime(day, month, year,hours,mins);
  else
	    return formatDateTime(day, month, year);
  }

function makeDateTimeField(sDateTime, fDate,withHours)
{
	var now = new Date();
	var day = now.getDate();
	var month = now.getMonth() + 1;
	var year = now.getYear();
  var hours = now.getHours();
  var mins = now.getMinutes();
	if (year < 1900) year += 1900;
	var digit, order;
	var ch, lastSec;

	var i = 0, len = sDateTime.length;
	while ((i < len) && (sDateTime.charAt(i) == ' ')) i++;
	if (sDateTime.charAt(i) == '+' || sDateTime.charAt(i) == '-') {
		var addDays = parseInt(sDateTime.substr(i, len));
		sDateTime = shiftDays(now, addDays,withHours);
		fDate.value = sDateTime;
		return true;
	}
	else {
		digit = ""; order = 0;
		var flag = false;
		while (i < len) {
			ch = sDateTime.charAt(i);
			if (ch >= '0' && ch <= '9') {
				digit = digit + ch;
				lastSec = aElementOrder[order].charAt(0);
				flag = false;
			}
			else {
				flag = true;
				order += 2;
			}
			if (flag || i >= len-1) {
				switch (lastSec) {
					case "D":
						day = digit;
						break;
					case "M":
						month = digit;
						break;
					case "Y":
						year = parseInt(digit, 10);
						if(year < 50) year += 2000;
						else if(year < 100) year += 1900;
						break;
					case "H":
            hours = digit;
						break;
					case "m":
            mins = digit;
						break;


				}
				digit = "";
			}
			i++;
		}
		if (month < 1 || month > 12) {
			//alert(sIllegalMonthMsg + month);
			return false;
		}
		if (day < 1 || day > getMonthDays(month, year)) {
			//alert(sIllegalDayMsg + day);
			return false;
		}
    if (withHours){
      if (hours<0 || hours>24){
		    	//alert(sIllegalHourMsg + hours);
    			return false;
      }
      if (mins<0 || mins>60){
		    	//alert(sIllegalMinMsg + mins);
    			return false;
      }

    }

    if (withHours){
		  sDateTime = formatDateTime(day, month, year, hours,mins);
    }
    else{
    		  sDateTime = formatDateTime(day, month, year);
    }

		fDate.value = sDateTime;
		return true;
	}
}

function checkDate(fDate,withHours)
{
	var sDate = fDate.value;
  var len = sDate.length;

  if (withHours && (len>11||len==1)){
    	loadElementOrder(sDataFormatH);
  }else{
    	loadElementOrder(sDataFormat);
  }
	var ret = true;

	if (sDate==" ") {
		sDate = todayDate(withHours);
		fDate.value = sDate;
	}
	else if (sDate == null || sDate.length == 0) ret = true;
  else if (len <=11) ret = makeDateTimeField(sDate, fDate,false);
	else ret = makeDateTimeField(sDate, fDate,withHours);
	if (!ret) {
		fDate.value = todayDate(withHours);
		showHelp();
	}
	return ret;
}


function showHelp()
{
	alert (sDateFormatMsg + aElementOrder.join(""));
}

function setSdgId(fld){
  var nod = document.form1.Nod.value;
  var sdgId = fld.value;
  if (isNaN(sdgId) == false){
    var s = nod+"-"+sdgId+"-"+nod+"-1";
    fld.value = s;
  }
  else{
     fld.value=sdgId.toUpperCase();
  }
}
function checkNumber(fld){
  if (isNaN(fld.value)){
      fld.value="";
  }
}

<!-- Keine oder hoechstens eine von mehreren zusammengehoerigen Checkboxen -->
<!-- darf selektiert sein. Die Checkboxen muessen alle den gleichen Namen haben. -->
function checkMaxOneCbx(obj) {
  var nameStr = obj.name;
  for (var i=0; i < document.getElementsByName(nameStr).length; i++) {
	if (document.getElementsByName(nameStr)[i] != obj) {
		document.getElementsByName(nameStr)[i].checked = false;
	}
  }
}

