

function startChkKontakt(tid,doc_id){
  var co = checkForm(tid);
    if(co==false){
      //alert('false: ' + tid );
      return false;
    }else{
    
     if(tid == "frm_guest_book"){ ajax_insert_grs(doc_id); }
     if(tid == "frm_Kontakt"){ execInformationEmail(doc_id); }
     if(tid == "frm_reservierung"){ execReservierungEmail(doc_id); }
    }
}



var textNoCheck  = "formElementName!='Andere' && formElementName!='Sonderwuensche'";
var withSubCheck = true;

var missingText   = "Sie haben vergessen, ein Feld auszufüllen!";
var missingMail   = "Sie haben keine gültige E-Mail Adresse eingetragen!";
var missingNumber = "Bitte geben sie mindestens eine gültige Rufnummer an!\nSollten sie keinen Festnetzanschluss benutzen, so geben sie im Feld Telefon\nihre Mobilrufnummer an. Bitte beachten Sie die Leerstellen:\n\nLandesvorwahl   (0)Ortsvorwahl   Rufnummer\n\nBeispiel: 0043   (0)316   12345\n\nDiese Maßnahme ist notwendig,\num SPAM und Falschanmeldungen zu vermeiden!\nDanke.";
var missingRadio  = "Sie haben vergessen, ein Radio auszuwählen!";
var missingCheck  = "Sie haben vergessen, eine Checkbox auszuwählen!";
var missingOption = "Sie haben vergessen, einen Eintrag aus der Auswahlliste zu wählen!";


var missing  = "-- fehlender Eintrag --"; // text
var newEntry = "*neu eingeben*"; // email
var choose   = "-- bitte auswählen --"; // select-options


function checkForm(theFrm){
    var formElementsCount = document.getElementById(theFrm).elements.length;
    for(i=0; i<formElementsCount; i++){
        formElementName = document.getElementById(theFrm).elements[i].name;
        if(eval(textNoCheck)){
            formElement = document.getElementById(theFrm).elements[i];
            if(formElement.value=="" || formElement.value==missing){
                if(formElement.type=="text" || formElement.type=="textarea"){
                    alert(missingText);
                    formElement.focus();
                    if(document.all || document.getElementById){
                        formElement.blur();
                        formElement.value=missing;
                        formElement.onclick = clean;
                    }
                    return false;
                }
            }
        }
    }
    if(withSubCheck)
        return startSubCheck(theFrm);
}
   
function checkMailAddress(theFrm){
    if(document.getElementById(theFrm).Email){
     dofem = document.getElementById(theFrm).Email
    }else if(document.getElementById(theFrm).Emailadresse){
     dofem = document.getElementById(theFrm).Emailadresse
    }else{
     return true;
    }
    expression = /.+@.+\.{1,}[a-zA-Z_]{2,}/;
    if(!expression.exec(dofem.value)){
        alert(missingMail);
        dofem.focus();
            if(document.all || document.getElementById){
                dofem.blur();
                dofem.value = newEntry;
                dofem.onclick = clean;
            }
        return false;
    }
}

function checkPhoneNumber(theFrm){
    if(document.getElementById(theFrm).Telefon){
     dofpn = document.getElementById(theFrm).Telefon
    }else if(document.getElementById(theFrm).Telefax){
     dofpn = document.getElementById(theFrm).Telefax
    }else if(document.getElementById(theFrm).Mobil){
     dofpn = document.getElementById(theFrm).Mobil
    }else if(document.getElementById(theFrm).Telefonnummer_){
     dofpn = document.getElementById(theFrm).Telefonnummer_
    }else if(document.getElementById(theFrm).Telefonnummer){
     dofpn = document.getElementById(theFrm).Telefonnummer
    }else{
     return true;
    }
    expression = /^0.+\s.+\s.+[0-9 ()]/;
    if(!expression.exec(dofpn.value) || dofpn.value.length<10){
        alert(missingNumber);
        dofpn.focus();
            if(document.all || document.getElementById){
                dofpn.blur();
                //dofpn.value = newEntry;
                dofpn.onclick = clean;
            }
        return false;
    }
}






function checkRadioButtons(theFrm){
    var formElementsCount     = document.getElementById(theFrm).elements.length;
    var sortedNames           = new Array();
    var sortedNamesNext       = new Array();
    for(i=0; i<formElementsCount; i++){
        if(document.getElementById(theFrm).elements[i].type=="radio"){
            sortedNames[i] = document.getElementById(theFrm).elements[i].name;
            if(document.getElementById(theFrm).elements[i+1]!=null){
                sortedNamesNext[i] = document.getElementById(theFrm).elements[i+1].name;
            }
            // there are just groups up to two related radios allowed at the moment ...
            if(sortedNames[i]==sortedNamesNext[i]){
                if(document.getElementById(theFrm).elements[i].checked==false && document.getElementById(theFrm).elements[i+1].checked==false){
                    sortedNames[i] = sortedNames[i].toUpperCase();
                    alert(missingRadio);
                    return false;
                }
            }
        }
    }
}

function checkCheckboxes(theFrm){
    var formElementsCount     = document.getElementById(theFrm).elements.length;
    var sortedNames           = new Array();
    for(i=0; i<formElementsCount; i++){
        if(document.getElementById(theFrm).elements[i].type=="checkbox"){
            sortedNames[i] = document.getElementById(theFrm).elements[i].name;
            if(document.getElementById(theFrm).elements[i].checked==false){
                    sortedNames[i] = sortedNames[i].toUpperCase();
                    alert(missingCheck);
                    return false;
            }
        }
    }
}
   
function checkOptions(theFrm){
    var formElementsCount = document.getElementById(theFrm).elements.length;
    for(i=0; i<formElementsCount; i++){
        if(document.getElementById(theFrm).elements[i].type=="select-one"){
            selectedIndex = document.getElementById(theFrm).elements[i].options.selectedIndex;
            
if(document.getElementById(theFrm).elements[i].options[selectedIndex].text=="" || 
   document.getElementById(theFrm).elements[i].options[selectedIndex].text=="-- bitte Etage wählen --"){
                document.getElementById(theFrm).elements[i].focus();
                
document.getElementById(theFrm).elements[i].options[selectedIndex].text="-- bitte Etage wählen --";
                alert(missingOption);
                return false;
            }
        }
    }
}
   
function clean(){
  if(this.value == missing){ this.value=""; }
}
   
function startSubCheck(theFrm){
            co = checkOptions(theFrm);
            //cb = checkCheckboxes(theFrm);
            //cr = checkRadioButtons(theFrm);
            cm = checkMailAddress(theFrm);
            cn = checkPhoneNumber(theFrm);
            if(co==false){
                return false;
            }else if(cm==false){
                return false;
            }else if(cn==false){
                return false;
            }
}

