/* copyright (c) 2009 - Patrick Kracht < patrick.kracht@gmail.com > : formular check */

function validate()
{
  var ids = [ "name","vorname","firma","datum","strasse","nummer","plz","ort","email","telefon" ];
  var date_regex = new RegExp('[0-9]{2}\.[0-9]{2}\.(19|20)[0-9]{2}');
  //var phon_regex = new RegExp('(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}');
  var mail_regex = new RegExp('^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+)(\.)([a-zA-Z]{2,4})$');

  for( var k=0; k<ids.length; k++ ) 
  {
    var value = BID( ids[k] ).value;
    if ( value.length <= 0 && k != 8 && k != 9 ) 
    {
      alert( "Bitte füllen Sie alle Felder aus! \n(Bei Email und Telefon mindestens eine Kontaktmöglichkeit)" );
      return false;
    }
    else if ( k == 3 ) /*check datum*/
    {
      if ( value.match(date_regex) )
      {
        var date_array = value.split('.');
        var day = date_array[0];
        var month = date_array[1] - 1;
        var year = date_array[2];
        
        source_date = new Date(year,month,day);
        
        if( day > 31 || day < 1 || day != source_date.getDate())
        {
           alert('Der eingegebene Tag ist nicht korrekt!');
           return false;
        }
        
        if( month > 11 || month < 0 || month != source_date.getMonth())
        {
           alert('Der eingegebene Monat ist nicht korrekt!');
           return false;
        }

        if( year > 2100 || year < 1900 || year != source_date.getFullYear())
        {
           alert('Das eingegebene Jahr ist nicht korrekt!');
           return false;
        }

      }
      else
      {
        alert( "Geben Sie das Datum bitte korrekt ein! Beispiel: 25.01.1998" );
        return false;
      }
    }
    else if ( k == 8 && value.length > 0 && ! value.match(mail_regex) ) /*check email*/
    {
      alert( "Geben Sie bitte eine echte Email-Adresse oder eine Telefonnummer ein!" );
      return false;
    }
    else if ( k == 9 && value.length == 0 && ! BID( ids[8] ).value.match(mail_regex) ) /*check phone*/
    {
      alert( "Geben Sie bitte eine Telefonnummer oder echte Email-Adresse ein!" );
      return false;
    }
  }
  
  alert( "Sie werden in Kürze eine Bestätigungs-Email erhalten!" );
  return true;
}
