/* allg. funktionen */
function createXMLHttpRequest() {
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { }
  try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
  try { return new XMLHttpRequest(); } catch(e) { }
  return null;
}

function showIconInfos(aNode) {
  try {
    myNode = aNode.childNodes[0].childNodes[0];
  } catch (e) {
    myNode = document.getElementById(aNode);
  }
  if (myNode.style.display=='none')
    myNode.style.display='block';
  else
    myNode.style.display='none';
}

/* formcheck */
function checkForm(form, felder) {
  // clear all
  errors=false;
  try {
    for (i=0;i<document.getElementById('errorMsg').childNodes.length;i++) {
      if (
      (document.getElementById('errorMsg').childNodes[i].tagName=='DIV') &&
      (document.getElementById('errorMsg').childNodes[i].className=='anError')
      ) {
        document.getElementById('errorMsg').childNodes[i].style.display='none';
      }
    }
  } catch(e) {}

  // checkitoutyo
  for (f=0;f<felder.length;f++) {
    feld = eval('document.'+form+'.'+felder[f][0]);
    condition = felder[f][1];
    anError = false;

    if ( (condition!='selected') && (feld.value == "")) // not_empty
      anError = true;
    else {
      switch (condition) {
        case "selected":
          if (feld.options[feld.selectedIndex].value=='') anError = true;
          break;
        case "string":
          if ( feld.value.search(/\d.*/)!=-1 ) anError = true;
          break;
        case "numeric":
          if ( isNaN(feld.value) ) anError = true;
          if (felder[f][0]=='plz') {
            if ( feld.value.length<5 ) anError = true;
          }
          break;
        case "one_numeric":
          if ( feld.value.search(/\d.*/)==-1 ) anError = true;
          break;
        case "email":
	  feld.value = feld.value.replace(/^\s+|\s+$/g, ''); //trim fieldvalue
          if ( (feld.value.search(/.+@[^-].+[^-]\..+/)==-1) || (feld.value.search(/\s+/)!=-1) ) anError = true;
          break;
        default:
      }
    }

    if (anError) {
      errors = true;
      try { feld.style.border='1px solid #a11'; } catch(e){}
      try { document.getElementById('error_'+felder[f]).style.display='block';} catch(e){}
      try { document.getElementById('label_'+felder[f]).className="error";} catch(e){}
    } else {
      try { feld.style.border=''; } catch(e){}
      try { document.getElementById('label_'+felder[f]).className=""; } catch(e){}
    }
  }
  // show ErrorMessageDiv
  if (errors) {
    document.getElementById('errorMsg').style.display='block';
    return false;
  }
  else {
    document.getElementById('errorMsg').style.display='none';
    return true;
  }
}
