/* Formular prüfen */

//Standard-Fehlermeldung

strMsg='Fehler';



arrFields=new Array();

//arrFields                 = new Array(Pflichtfeld?0:1, Bedingung, Fehlermeldung);

arrFields['email'] = new Array(0,/^[a-z\d][a-z\d-\._]*@([a-z\d][a-z\d-\.]*[a-z\d]\.|)[a-z\d][a-z\d-]{1,}[a-z\d]\.[a-z]{2,5}$/i,'Wenn schon, dann bitte die korrekte Emailadresse angeben');

arrFields['name'] = new Array(1,/^.{1,40}/, 'Bitte geben Sie einen Namen ein.');
//arrFields['name'] = new Array(0,/^[^<'"'>&]*$/,'Es sind keine HTML-Sonderzeichen erlaubt.');

arrFields['message'] = new Array(1,/^.{1,100}/, 'Bitte geben Sie eine Nachricht ein.');
//arrFields['message'] = new Array(0,/^[^<>&]*$/,'Es sind keine HTML-Sonderzeichen erlaubt.');

//arrFields['agb']          = new Array(0,'==1','Sie m¸ssen die AGB akzeptieren');


/** Überflüssige Leerzeichen entfernen */
function trim(strIn)

    {

		return(strIn.replace(/(^\s+|\s+$)/g,''));

    }



/** text-input und textarea pr¸fen */
function text_check(objElem, arrCheck)

    {

	objElem.value=trim(objElem.value);

	if (arrCheck[0] || objElem.value.length > 0)

        {

        if (!objElem.value.match(arrCheck[1]))

            {

            alert((arrCheck.length == 3) ? arrCheck[2] : strMsg );

            objElem.select();

            objElem.focus();

            return false;

            }

        }

    return true;

    }


/** boxes checken */
function box_check(objElem, arrCheck)

    {

	intChecked = 0;

    arrBoxes=(typeof objElem.form.elements[objElem.name].length == 'number')

                ?objElem.form.elements[objElem.name]

                :new Array(objElem);

	
	for (e = 0; e < arrBoxes.length; ++e)

        {

        intChecked+=(arrBoxes[e].checked) ? 1 : 0

        }

	if (!eval('intChecked' + arrCheck[1]))

           {

           alert((arrCheck.length == 3) ? arrCheck[2] : strMsg);

           arrBoxes[0].focus();

           return false;

           }

    return true;

	}



/** Listen checken */
function list_check(objElem, arrCheck)

    {

    if(!eval('objElem.selectedIndex' + arrCheck[1]))

        {

        alert((arrCheck.length == 3) ? arrCheck[2] : strMsg );

        objElem.focus();

        return false;

        }

    return true;

    }



/** befindet sich objElem in objForm? */
function in_form(objElem,objForm)

    {

    return(typeof objElem.form=='object' && objElem.form==objForm);

    }




/** zu pr¸fende Formularelemente ermitteln */
function get_field_type(objElem)

    {


	switch (objElem.tagName.toLowerCase())

        {

        case "input":

            switch(objElem.type)

                {

                case "text":

                    strFieldType='text';

                    break;



                case "password":

                    strFieldType='text';

                    break;



                case "file":

                    strFieldType='text';

                    break;



                case "radio":

                    strFieldType='box';

                    break;



                case "checkbox":

                    strFieldType='box';

                    break;



                default:

                    strFieldType=false;

                    break;

                }

            break;



        case "select":

                strFieldType='list';

                break;



        case "textarea":

                strFieldType='text';

                break;



        default:

                strFieldType=false;

                break;

        }

    return strFieldType;



    }



    function check_form(objForm)

    {

    if  (!document.getElementsByName)

        {



        return true;



        }



    for (var strName in arrFields)

        {



        for(j=0;j<document.getElementsByName(strName).length;++j)

            {



            objElem=document.getElementsByName(strName)[j];



            if(in_form(objElem,objForm))

                {



                if(!eval(get_field_type(objElem)+'_check(objElem,arrFields[strName])'))

                    {



                    return false;



                    }

                if(get_field_type(objElem)=='box')

                    {



                    continue;



                    }

                }

            }

        }

    return true;

	}