function inArray(sArray, sString ) 
  {
    for( i=0; i<sArray.length; i++ )
      {
      if( sArray[i] == sString ) return true
      }
  return false
  }

function checkValues( frm ) {
  var cfgCheck = new Array();
  // set global-must-fileds for to a private variable as a copy
  for( var i=0; i<g_cfgCheck.length; i++ ) {
    cfgCheck.push( g_cfgCheck[i] );
    }
  // Container für Fehlermeldungen
  var errMsgs = new Array();
  // Separator für Fehlermeldungen
  var errMsgDelimiter = '\n';
  
  // Katalog Eingabefelder
  var cfgFormFieldKatalog = new Array( 'cfFirmenname', 'cfNachname', 'cfVorname', 'cfStrasse', 'cfPLZ', 'cfOrt', 'cfLand', 'cfTelefonGesch', 'cfTelefonPriv', 'cfTelefonMobil', 'cfFax', 'cfEmail', 'cfWebsite', 'cfBetreff', 'cfMitteilung' );
  // Aus Katalog im Formular vorhandene Eingabefelder
  var fieldsInForm = new Array();
  // zwingend zu überprüfende Formularfelder
  //var cfgCheck = new Array( 'cfFirmanname', 'cfNachname', 'cfVorname', 'cfPostanschrift', 'cfTelefonGesch', 'cfTelefonPriv', 'cfTelefonMobil', 'cfFax', 'cfEmail', 'cfWebsite', 'cfBetreff', 'cfNachricht' );
  //var cfgCheck = new Array( 'cfMitteilung' );
  
  // Überprüfung, welche Felder aus dem Katalog im Formular vorhanden sind
  // Eingabefelder
  var formFields = document.getElementsByTagName( 'input' )
  for( var i=0; i<formFields.length; i++ )
    {
    if(inArray( cfgFormFieldKatalog, formFields[i].name ) && formFields[i].form.name==frm.name )
      {
      fieldsInForm.push(formFields[i].name)
      }
    }
  // Textarea
  var formFields = document.getElementsByTagName( 'textarea' )
  for( var i=0; i<formFields.length; i++ )
    {
    if(inArray( cfgFormFieldKatalog, formFields[i].name ) && formFields[i].form.name==frm.name )
      {
      fieldsInForm.push(formFields[i].name)
      }
    }
  // Select
  var formFields = document.getElementsByTagName( 'select' )
  for( var i=0; i<formFields.length; i++ )
    {
    if(inArray( cfgFormFieldKatalog, formFields[i].name ) && formFields[i].form.name==frm.name )
      {
      fieldsInForm.push(formFields[i].name)
      }
    }
  
  
  var cfAntwort = null;
  if(document.getElementsByName("cfAntwort").length>0)
    {
    var cfAntwort = frm.cfAntwort.value;
    if(cfAntwort == null)
      {
      elms = document.getElementsByName("cfAntwort");
      for(i=0; i<elms.length; i++)
        {
        if(elms[i].tagName == 'INPUT' && elms[i].form.name == frm.name)
          {
          if(elms[i].type == 'radio' && elms[i].checked == true)
            {
            cfAntwort = elms[i].value;
            }
          }
        }
      }
    }
  switch( cfAntwort )
    {
    case 'Email' : 
      {
      if(!inArray(cfgCheck,'cfEmail')) cfgCheck.push('cfEmail');
      break;
      }
    case 'Post' : 
      {
      if(!inArray(cfgCheck,'cfPostanschrift')) cfgCheck.push('cfPostanschrift');
      break;
      }
    case 'Telefon' : 
      {
      if(!inArray(cfgCheck,'cfTelefon')) cfgCheck.push('cfTelefon');
      break;
      }
    case 'Fax' : 
      {
      if(!inArray(cfgCheck,'cfFax')) cfgCheck.push('cfFax');
      break;
      }
    }
  if( inArray( cfgCheck, 'cfBetreff' ) && inArray( fieldsInForm, 'cfBetreff' ) )
    {
    if( frm.cfBetreff.value == '' ) errMsgs.push( errMsgEmpty_Betreff )
    }
  
  if( inArray( cfgCheck, 'cfMitteilung' ) && inArray( fieldsInForm, 'cfMitteilung' ) )
    {
    if( frm.cfMitteilung.value == '' ) errMsgs.push( errMsgEmpty_Mitteilung )
    }
  
  if( inArray( cfgCheck, 'cfFirmenname' ) && inArray( fieldsInForm, 'cfFirmenname' ) )
    {
    if( frm.cfFirmenname.value == '' ) errMsgs.push( errMsgEmpty_Firmenname )
    }
  
  if( inArray( cfgCheck, 'cfNachname' ) && inArray( fieldsInForm, 'cfNachname' ) )
    {
    if( frm.cfNachname.value == '' ) errMsgs.push( errMsgEmpty_Nachname )
    }
  
  if( inArray( cfgCheck, 'cfVorname' ) && inArray( fieldsInForm, 'cfVorname' ) )
    {
    if( frm.cfVorname.value == '' ) errMsgs.push( errMsgEmpty_Vorname )
    }
  
  if( inArray( cfgCheck, 'cfPostanschrift' ) && inArray( fieldsInForm, 'cfStrasse' )  && inArray( fieldsInForm, 'cfPLZ' )  && inArray( fieldsInForm, 'cfOrt' ) )
    {
    if( frm.cfStrasse.value == '' || frm.cfPLZ.value == '' || frm.cfOrt.value == '' ) errMsgs.push( errMsgEmpty_Postanschrift )
    }
  
  if( inArray( cfgCheck, 'cfTelefonGesch' ) && inArray( fieldsInForm, 'cfTelefonGesch' ) )
    {
    if( frm.cfTelefonGesch.value == '' ) errMsgs.push( errMsgEmpty_TelefonGesch )
    }
  
  if( inArray( cfgCheck, 'cfTelefonPriv' ) && inArray( fieldsInForm, 'cfTelefonPriv' ) )
    {
    if( frm.cfTelefonPriv.value == '' ) errMsgs.push( errMsgEmpty_TelefonPriv )
    }
  
  if( inArray( cfgCheck, 'cfTelefonMobil' ) && inArray( fieldsInForm, 'cfTelefonMobil' ) )
    {
    if( frm.cfTelefonMobil.value == '' ) errMsgs.push( errMsgEmpty_TelefonMobil )
    }
  
  if( inArray( cfgCheck, 'cfTelefon' ) && ( inArray( fieldsInForm, 'cfTelefonGesch' ) || inArray( fieldsInForm, 'cfTelefonPriv' ) || inArray( fieldsInForm, 'cfTelefonMobil' ) ) )
    {
    if( !( ( inArray( fieldsInForm, 'cfTelefonGesch' ) && frm.cfTelefonGesch.value != '' ) || ( inArray( fieldsInForm, 'cfTelefonPriv' ) && frm.cfTelefonPriv.value != '' ) || ( inArray( fieldsInForm, 'cfTelefonMobil' ) && frm.cfTelefonMobil.value != '' ) ) ) errMsgs.push( errMsgEmpty_Telefon )
    }
  
  if( inArray( cfgCheck, 'cfFax' ) && inArray( fieldsInForm, 'cfFax' ) )
    {
    if( frm.cfFax.value == '' ) errMsgs.push( errMsgEmpty_Fax )
    }
  
  if( inArray( cfgCheck, 'cfEmail' ) && inArray( fieldsInForm, 'cfEmail' ) )
    {
    if( frm.cfEmail.value == '' ) errMsgs.push( errMsgEmpty_Email )
    reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$')
    if(!(reg.test(frm.cfEmail.value))) errMsgs.push( errMsgWrong_Email )
    }
  
  if( inArray( cfgCheck, 'cfWebsite' ) && inArray( fieldsInForm, 'cfWebsite' ) )
    {
    if( frm.cfWebsite.value == '' ) errMsgs.push( errMsgEmpty_Website )
    }
  
  if(errMsgs.length > 0)
    {
    alert(errMsgs.join(errMsgDelimiter))
    return false
    }
  return true  
  }