var specialFieldCheckError = '';
var strFormLanguage = 'GER';

function ReplaceSpecialChars(str)
{
	return str.replace(/_hex20_/g, " ");
}

function checkFormFields(actForm)
{
    var iNumFields = actForm.elements.length - 1;
    for(var i = 0; i < iNumFields; i++)
    {
        var objField =  actForm.elements[i];
        if(isMandatoryField(objField.name))
        {
            // Prüfung besonderer Felder 0...kein "Special-Field", 1...Check ok, -1...check nok
            iCheckSpecialField = checkSpecialField(objField);

            if (iCheckSpecialField == -1)
            {
                if (specialFieldCheckError.length > 0)
                {
                    alert(ReplaceSpecialChars(specialFieldCheckError));
                }
                objField.focus();
                return false;
            }
            else if (iCheckSpecialField == 0)
            {
                //check Textboxes
                if(objField.type == 'text' || objField.type == 'textarea')
                {
                    objField.value = objField.value.trim();

                    if(objField.value == '')
                    {
                        if (strFormLanguage == 'ENG')
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " must not be empty!");
                        }
                        else
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " darf nicht leer sein!");
                        }
                        objField.focus();
                        return false;
                    }
                }

                //check Checkboxes and Radiobuttons
                if((objField.type == 'checkbox')||(objField.type == 'radio'))
                {
                    var isChecked = false;
                    var j = i;
                    while(j < iNumFields)
                    {
                        if(actForm.elements[j].name == objField.name)
                        {
                            if(actForm.elements[j].checked)
                            {
                                 isChecked = true;
                            }
                        }
                        else
                            break;
                        j++;
                    }

                    i = j-1;

                    if(!isChecked)
                    {
                        if (strFormLanguage == 'ENG')
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " muss ausgewählt werden!");
                        }
                        else
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " must be selected!");
                        }
                        objField.focus();
                        return false;
                    }
                }

                //check Selectboxes
                if(objField.type == 'select-one')
                {
                    if(objField.options[objField.selectedIndex].text == "")
                    {
                        if (strFormLanguage == 'ENG')
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " muss ausgewählt werden!");
                        }
                        else
                        {
                            alert(ReplaceSpecialChars(getFieldName(objField.name)) + " must be selected!");
                        }
                        objField.focus();
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

function isMandatoryField(strFieldName)
{
    var strSub = strFieldName.substr(4,2);
    if(strSub.indexOf("m") != -1)
        return true;
    else
        return false;
}

function getFieldName(strFieldName)
{
    var first = strFieldName.indexOf("_") + 1;
    return strFieldName.substring(first, strFieldName.length);
}

function handleEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13)
    {
        if (field.type != 'textarea')
        {
            var i;
            for (i = 0; i < field.form.elements.length; i++)
                if (field == field.form.elements[i])
                    break;
            while(field.form.elements[i+1].type == "hidden"){
                i = i + 1;
             }
            i = i + 1 % field.form.elements.length;
            field.form.elements[i].focus();
            return false;
        }
    }

    return true;
}

