function getElement(theId)
{
  for(elementNr = 0; elementNr < document.all.length; ++elementNr)
  {
    if(document.all(elementNr).id == theId)
      return document.all(elementNr);
  }

  return null;
}

function isEmptyFocus(comp, fieldName, doFocus)
{
  if(comp.value.length == 0)
  {
    alert(fieldName + " darf nicht leer sein!");
    if(doFocus)
      comp.focus();
    return true;
  }
  return false;
}

function isEmpty(comp, fieldName)
{
  return isEmptyFocus(comp, fieldName, true);
}

function isNotADecimalFocus(comp, fieldName, doFocus)
{
  if(isEmptyFocus(comp, fieldName, doFocus))
    return true;

  for(valuePos = 0; valuePos < comp.value.length; ++valuePos)
  {
    if((comp.value.substring(valuePos, valuePos + 1) < '0') || (comp.value.substring(valuePos, valuePos + 1) > '9'))
    {
      alert(fieldName + " muss eine Zahl sein!");
      if(doFocus)
        comp.focus();
      return true;
    }
  }

  return false;
}

function isNotADecimal(comp, fieldName)
{
  return isNotADecimalFocus(comp, fieldName, true);
}

function isNotAFloatFocus(comp, fieldName, doFocus)
{
  if(isEmptyFocus(comp, fieldName, doFocus))
    return true;
  
  if(isNaN(comp.value))
  {
    alert(fieldName + " muss eine Zahl sein!");
    if(doFocus)
      comp.focus();
    return true;
  }
  
  return false;
}

function isNotAFloat(comp, fieldName)
{
  return isNotAFloatFocus(comp, fieldName, true);
}

function isNotATime(compHour, fieldHourName, compMinute, fieldMinuteName)
{
  if(isNotADecimal(compHour, fieldHourName))
    return true;

  if(isNotADecimal(compMinute, fieldMinuteName))
    return true;
  
  if(compHour.value < 0 || compHour.value > 23)
  {
    alert(fieldHourName + " muss zwischen 0 und 23 sein");
    compHour.focus();
    return true;
  }
  
  if(compMinute.value < 0 || compMinute.value > 59)
  {
    alert(fieldMinuteName + " muss zwischen 0 und 59 sein");
    compMinute.focus();
    return true;
  }
  
  return false;
}

function isNotADate(compDay, fieldDayName, compMonth, fieldMonthName, compYear, fieldYearName, nullAllowed)
{
  if(nullAllowed)
    if(compDay.value.length == 0 && compMonth.value.length == 0 && compYear.value.length == 0)
      return false;

  if(isNotADecimal(compDay, fieldDayName))
    return true;

  if(isNotADecimal(compMonth, fieldMonthName))
    return true;

  if(isNotADecimal(compYear, fieldYearName))
    return true;

  if(compDay.value < 1 || compDay.value > 31)
  {
    alert(fieldDayName + " muss zwischen 1 und 31 sein");
    compDay.focus();
    return true;
  }

  if(compMonth.value < 1 || compMonth.value > 12)
  {
    alert(fieldMonthName + " muss zwischen 1 und 12 sein");
    compMonth.focus();
    return true;
  }

  if(compYear.value < 1000 || compYear.value > 9999)
  {
    alert(fieldYearName + " muss aus 4 Ziffern bestehen");
    compYear.focus();
    return true;
  }

  var d = new Date(Date.parse(compMonth.value + "/" + compDay.value + "/" + compYear.value));

  if(d.getFullYear() != compYear.value || (d.getMonth() + 1) != compMonth.value || d.getDate() != compDay.value)
  {
    alert(compDay.value + "." + compMonth.value + "." + compYear.value + " ist kein gültiges Datum");
    compDay.focus();
    return true;
  }

  return false;
}

function getComboValue(combo)
{
  return combo.options [combo.selectedIndex].value;
}

function setComboValue(combo, value)
{
  for(optionPos = 0; optionPos < combo.options.length; ++optionPos)
    if(combo.options [optionPos].value == value)
    {
      combo.selectedIndex = optionPos;
      break;
    }
}
