﻿// Kontakt Form Validator

// Validiert alle Controlls mit dem Klassenname <classNameOfControlToValidate> (kann auch ein zweiter Klassenname sein)
// Validierung bezieht sich auf "" und auf den default Wert des Feldes
// Umfärben der Rahmen und Hintergrundfarbe möglich

// -----------------------------------------------------------------------
window.onload = function()
{
    // Projektabhängig
    borderColorOnAlert = "#FE0002";
    backgroundColorOnAlert = "#FFCCCB";
    classNameOfControlToValidate = " validate";
    controls = new Array("input","textarea");
    // /Projektabhängig
    
    // Globale Variablen
    borderColor = "";
    backgroundColor = "";
    flag = 0;
    // /Globale Variablen
    
    // Registrieren der Events
    registerValidateEvents();
}
// -----------------------------------------------------------------------


// Ab hier nichts ändern

// -----------------------------------------------------------------------
// Registrieren der Events

function registerValidateEvents()
{
    for (k = 0; k < controls.length; k++)
    {
        var alltags = document.getElementsByTagName(controls[k]);
        for (i=0; i<alltags.length; i++)
        {
            if ( alltags[i].className.indexOf(classNameOfControlToValidate) > -1 )
            {
                // Speichern der Border- und BackgroundColor um sie später wieder laden zu können
                borderColor = alltags[i].style.borderColor;
                backgroundColor = alltags[i].style.backgroundColor;
                
                // Aufruf von clearDefaultValue wenn onfocus
                alltags[i].onfocus = function()
                {
                    clearDefaultValue(this, this.defaultValue);
                }
                
                // Aufruf von setDefaultValue wenn onblur
                alltags[i].onblur = function()
                {
                    setDefaultValue(this, this.defaultValue);
                }
            }
        }
    }    
}

// -----------------------------------------------------------------------
// Löschen des Default Wertes (wenn focus)
function clearDefaultValue(obj, defaultValue)
{
    if (obj.value == defaultValue)
        obj.value = '';
    
    obj.style.backgroundColor = backgroundColor;
    obj.style.borderColor = borderColor;
}


// -----------------------------------------------------------------------
// Setzen des Default Wertes wenn kein Wert oder nur der Default Wert eingetragen wurde
function setDefaultValue(obj, defaultValue)
{
    if (obj.value == '' || obj.value == defaultValue)
    {
        obj.value = defaultValue;
        obj.style.backgroundColor = backgroundColorOnAlert;
        obj.style.borderColor = borderColorOnAlert;
        flag = 1;
    }
}

// -----------------------------------------------------------------------
// Validierung nach abschicken des Formulars
function validateForm()
{
    flag = 0;
    for (k = 0; k < controls.length; k++)
    {
        var alltags = document.getElementsByTagName(controls[k]);
        for (i=0; i<alltags.length; i++)
        {
            if ( alltags[i].className.indexOf(classNameOfControlToValidate) > -1 )
            {
                setDefaultValue(alltags[i], alltags[i].defaultValue);
            }
        }
    }
    
  if (flag == 1)
     return false;
  else
     document.forms[0].submit();
}