<!-- Functionen, um die phpFormulare der SWK zu checken -->

function DarfNichtLeer(welchesFeld,feldBezeichnung)//                                                       DarfNichtLeer
{
 var zurueck=true;
 var inhalt=welchesFeld.value;
 if (inhalt.length==0) zurueck=false;
 if (zurueck==true) zurueck = ! istLeer(inhalt);
 if (zurueck==false)
    {
    alert("\n"+feldBezeichnung+"\n\nDieses Feld darf\nnicht leer bleiben!");
    welchesFeld.focus();
    }
 return zurueck;
}


function datumCheck(welchesFeld, feldBezeichnung)//                                                            datumCheck
{
 var zurueck=true;
 var wert=welchesFeld.value;
 //testen, ob numerisch incl. Punkte
 for (var i = 0; i < wert.length; i++)
     {
     zeichen = wert.charCodeAt(i);
     switch (true)
            {
            case (zeichen==46): break;// Punkt
            case (zeichen>=48 && zeichen<=57): break;//ziffern
            default:
                   zurueck=false;
                   mitteilung=feldBezeichnung+'\ndarf nur Ziffern\nund Punkte enthalten!';
            }
     if (zurueck==false) break;
     }

 mitteilung=feldBezeichnung+"\nmuss im Format 'TT.MM.JJJJ'\nangegeben werden!";
 if (zurueck==true && (wert.length!=10)) zurueck=false;//
 if (zurueck==true && (wert.indexOf('.')<0)) zurueck=false;//                          kein Punkt
 if (zurueck==true && (wert.indexOf('.') == wert.lastIndexOf('.'))) zurueck=false;//   ein Punkt
 if (zurueck==true)//                                                                  mehr als 2 Punkte
    {
    var zaehler=0;
    for (var i = 0; i < wert.length; i++)
        {
        if (wert.charCodeAt(i)==46) zaehler++;
        }
    if (zaehler>2) zurueck=false;
    }
 if (zurueck==true && (wert.indexOf('.') != 2 || wert.lastIndexOf('.') != 5)) zurueck=false;//   Punkte an falscher Stelle
 
 if (zurueck==true)
    {
    mitteilung="";
    var daten=new Array;
    daten=wert.split('.');
    daten[0]=parseInt(daten[0],10);
    daten[1]=parseInt(daten[1],10);
    daten[2]=parseInt(daten[2],10);
    switch (true)
           {
           case (daten[0]==0):
                {
                zurueck=false;
                mitteilung='Tageszahl muss\nangegeben werden!'
                break;
                }
           case (daten[1]<1 || daten[1]>12):
                {
                zurueck=false;
                mitteilung='Monatszahl muss\nzwischen 1 und 12 liegen!'
                break;
                }
           case (daten[2]==0):
                {
                zurueck=false;
                mitteilung='Jahreszahl muss\nangegeben werden!'
                break;
                }
           case (daten[0]>gibTageDesMonats(daten[2], daten[1])):
                {
                mitteilung='Der '+gibMonatsnameAusgeschrieben(daten[1]) + ' '+daten[2]+ '\nhat nur ' + gibTageDesMonats(daten[2], daten[1])+' Tage!';
                zurueck=false;
                break;
                }
           }
    }
 if (zurueck==false)
    {
    alert(mitteilung);
    welchesFeld.focus();
    }
 return zurueck;
}// Ende: datumCheck


function datumMaxHeute(welchesFeld, feldBezeichnung)//                                                     datumMaxHeute
{
 var zurueck=true;
 var wert=welchesFeld.value;
 var d=new Date();
 var vStr=d.getFullYear()+((d.getMonth()+1<10)? "0": "")+(d.getMonth()+1)+((d.getDate()<10)? "0": "")+(d.getDate());
 var iD=new Array();
 iD = wert.split('.');
 var iStr=iD[2]+iD[1]+iD[0];
 zurueck=(iStr<=vStr)
 if (zurueck==false)
    {
    alert('Ablesetag kann nicht\nin der Zukunft liegen!');
    welchesFeld.focus();
    }
 return zurueck;
}


function datumMin18Jahre(welchesFeld, feldBezeichnung, verglDatum)//                                      datumMin18Jahre
{//da vorher geprüft, entfällt validPrüfung
 var zurueck=true;
 var wert=welchesFeld.value;
 var iD=new Array();
 iD = wert.split('.');
 var vD=new Array();
 vD = verglDatum.split('.');
 var iStr=iD[2]+iD[1]+iD[0];
 var vStr=parseInt(vD[2])-18+vD[1]+vD[0];
 zurueck=(iStr<=vStr);
 if (zurueck==false)
    {
    alert('Vertragspartner muss\nmindestens 18 Jahre alt sein!');
    welchesFeld.focus();
    }
 return zurueck;
}// Ende: datumMin18Jahre


function gibMonatsnameAusgeschrieben(monat)//                                                 gibMonatsnameAusgeschrieben
{
 var monatsNamen = new Array("Januar","Februar","März","April","Mai","Juni",
                             "Juli","August","September","Oktober","November","Dezember");
 return monatsNamen[(monat - 1)];
} // Ende: gibMonatsnameAusgeschrieben

function gibTageDesMonats(jahr, monat)//                                                                 gibTageDesMonats
{
 switch (monat)
        {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
             return 31; break;
        case 4: case 6: case 9: case 11:
             return 30; break;
        case 2:
             return (istSchaltjahr(jahr)) ? 29 : 28;
             break;
        default: return 0;
        }
}

function istLeer(s)//                                                                                             istLeer
{//prüfen, nur Leerzeichen, Tabulatoren und Zeilentrenner beinhaltet

 for (var i=0;i<s.length;i++)
     {
     var c=s.charAt(i);
     if ((c !=' ') && (c != '\n') && (c !='')) return false;
     }
 return true;
}// Ende: istLeer


function IstNumerisch(welchesFeld, feldBezeichnung, festeLaenge)//                                           IstNumerisch
{
 var zurueck=true;
 var wert=welchesFeld.value;
 var zeichen="";
 var mitteilung="";
 
 for (var i = 0; i < wert.length; i++)
     {
     zeichen = wert.charAt(i);
     if (isNaN(parseInt(zeichen)))
        {
        mitteilung=feldBezeichnung+'\ndarf keine Alpha-\nZeichen enthalten!'
        zurueck= false;
        break;
        }
     }
 if (IstNumerisch.arguments.length==3)
    {
    if (wert.length!=festeLaenge)
       {
       mitteilung=feldBezeichnung+"\n"+festeLaenge+"-stellige Zahl vorgeschrieben!\nBitte korrekt eingeben.";
       zurueck=false;
       }
    }
 if (zurueck==false)
    {
    alert(mitteilung);
    welchesFeld.focus();
    }
 return zurueck;
}// Ende: IstNumerisch


function IstNumerisch_nachKomma(welchesFeld, feldBezeichnung, nachKomma)//                         IstNumerisch_nachKomma
{
 var zurueck=true;
 var wert=welchesFeld.value;
 var zeichen=0;
 var mitteilung="na";
 for (var i = 0; i < wert.length; i++)
     {
     zeichen = wert.charCodeAt(i);
     switch (true)
            {
            case (zeichen==44 && nachKomma>0): break;// Komma
            case (zeichen>=48 && zeichen<=57): break;//ziffern
            default:
                   zurueck=false;
                   mitteilung=feldBezeichnung+'\ndarf nur numerischen\nZeichen enthalten!';
            }
     if (zurueck==false) break;
     }
 if (zurueck==true && nachKomma>0)
    {
    if (wert.indexOf(',')<0)
       {
       zurueck=false;
       mitteilung=feldBezeichnung+'\n muss mit '+nachKomma+' Nachkommastellen\nangegeben werden!'
       }
    if (zurueck==true && (wert.indexOf(',') != wert.lastIndexOf(',')))
       {
       zurueck=false;
       mitteilung=feldBezeichnung+'\n darf nur ein Komma enthalten!'
       }
    //if (zurueck==true && (wert.length - wert.lastIndexOf(',') <=2))
    if (zurueck==true && (wert.length - wert.lastIndexOf(',') - 1 != nachKomma))
       {
       zurueck=false;
       mitteilung=feldBezeichnung+'\n muss mit '+nachKomma+' Nachkommastellen\nangegeben werden!'
       }
    }
 if (zurueck==false)
    {
    alert(mitteilung);
    welchesFeld.focus();
    }
 return zurueck;
}// Ende: IstNumerisch_nachKomma


function istSchaltjahr(jahr)//                                                                              istSchaltjahr
{
 return (((jahr % 4) == 0) && ((jahr % 100) != 0) || ((jahr % 400) == 0 ));
}// Ende: istSchaltjahr


function istTelefon(welchesFeld, feldBezeichnung)//                                                            istTelefon
{
 var zurueck=true;
 var wert=welchesFeld.value;
 var zeichen="";
 var mitteilung="";
 for (var i = 0; i < wert.length; i++)
     {
     zeichen = wert.charAt(i);
     switch (true)
            {
            case (zeichen==" "): break;// soll erlaubt sein
            case (zeichen=="-"): break;// soll erlaubt sein
            case (zeichen=="/"): break;// soll erlaubt sein
            case isNaN(parseInt(zeichen)):
                 {
                 mitteilung=feldBezeichnung+'\ndarf keine Alpha-\nZeichen enthalten!'
                 zurueck= false;
                 break;
                 }
            }
     }
 if (zurueck==false)
    {
    alert(mitteilung);
    welchesFeld.focus();
    }

 return zurueck;
}// Ende: istTelefon


function KnopfCheckPHPpur(HauptPunkt,UnterPunkt,MenuPunkt,maxPunkte,Ebene)//                                       KnopfCheckPHPpur
{
 var bildKenn="";
 var umen="parent.swk_kopf.document.u_men_"+Math.abs(UnterPunkt)+".src='";
 var dmen="parent.swk_detailmenu.document.kluengel_";
 var Bebene="";
 var test="";
 for (var i=1;i<Ebene;i++)
     {
     Bebene=Bebene+"../";
     }
 if (HauptPunkt==6)
    {
    if (UnterPunkt==1) bildKenn="sd";
    if (UnterPunkt==2) bildKenn="se";
    }
 umen=umen+Bebene+"allgbilder/btn_w_"+bildKenn+".gif'";
 eval(umen);
 
 for (var i=1; i<=maxPunkte; i++)
     {
     switch (true)
            {
            case (i != MenuPunkt):
                 {
                 test=eval((dmen+Math.abs(i)+".src"));
                 if (test.substring(test.length-13,test.length) != "/kluengel.gif")
                    {
                    eval(dmen+Math.abs(i)+".src='"+Bebene+"allgbilder/kluengel.gif'");
                    }
                 break;
                 }
            case (i == MenuPunkt):
                 {
                 eval(dmen+Math.abs(MenuPunkt)+".src='"+Bebene+"allgbilder/swk_kluengel.gif'");
                 break;
                 }
            }
     }
}// Ende: KnopfCheckPHPpur


function nurBeide(feldEins, feldZwei)//                                                                          nurBeide
{
 var zurueck=true;
 wert1=feldEins.value;
 wert2=feldZwei.value;

    switch (true)
           {
           case (wert1=="" && wert2!=""):
                {
                zurueck=false;
                mitteilung="Wenn ein Zählerstand angegeben wird,\nist die Zählernummer dazu notwendig!"
                welchesFeld=feldEins;
                break;
                }
           case (wert1!="" && wert2==""):
                {
                zurueck=false;
                mitteilung="Wenn eine Zählernummer angegeben wird,\nist der Zählerstand dazu notwendig!"
                welchesFeld=feldZwei;
                break;
                }
           }
    
 if (zurueck==false)
    {
    alert(mitteilung);
    welchesFeld.focus();
    }// Ende: nurBeide
 return zurueck;
}

function ohneZiffern(welchesFeld, feldBezeichnung)//                                                           ohneZiffern
{
 var zurueck=true;
 var wert=welchesFeld.value;
 var zeichen=0;
 
 for (var i = 0; i < wert.length; i++)
     {
     zeichen = wert.charCodeAt(i);
     if (zeichen>=48 && zeichen<=57)
        {
        zurueck= false;
        break;
        }
     }
 if (zurueck==false)
    {
    alert(feldBezeichnung+'\ndarf keine numerischen\nZeichen enthalten!');
    welchesFeld.focus();
    }

 return zurueck;
}


function emailTauglich(welchesFeld, feldBezeichnung)//                                                      emailTauglich
{
 var testString=welchesFeld.value;
 var zurueck=true;
 var mitteilung="";
 switch (true)
        {
        case (testString.length==0): break;
        case (testString.indexOf('@')<0):
             {
             mitteilung="@-Zeichen muss enthalten sein!";
             zurueck=false;
             break;
             }
        case (testString.indexOf('@')==0):
             {
             mitteilung="Empfänger muss angegeben sein!";
             zurueck=false;
             break;
             }
        case (testString.indexOf('@') !=testString.lastIndexOf('@')):
             {
             mitteilung="nur ein @-Zeichen zulässig";
             zurueck=false;
             break;
             }
        case (testString.indexOf('.')<0):
             {
             mitteilung="Punkt muss enthalten sein!";
             zurueck=false;
             break;
             }
        }

 if (zurueck==false)
    {
    alert("\n"+feldBezeichnung+"\n\n"+mitteilung);
    welchesFeld.focus();
    }

return zurueck;
}
