
/*
 * 
 */

var Forms;

/*
 * 
 */

Forms = {};

/*
 * 
 */

Forms.Assistance = {};

Forms.Assistance.Set = function(field) {
    if(Assistance.Msg[field.id] != undefined && Assistance.Msg[field.id] != '') {
        document.getElementById('formAssistance').innerHTML = Assistance.Msg[field.id];
    }
    return true;
}

Forms.Assistance.Drop = function() {
    document.getElementById('formAssistance').innerHTML = '';
    return true;
}

/*
 * 
 */

Forms.Labels = {};

Forms.Labels.Set = function(field) {
    if(field.value == '' || field.value == null) {
        field.value = field.defaultValue;
    }
    return;
}

Forms.Labels.Del = function(field) {
    if(field.value == field.defaultValue) {
        field.value = '';
    }
    return;
}

/*
 * 
 */

Forms.Submit = {}

Forms.Submit.Disable = function (form) {
    var input = form.getElementsByTagName('input');
    for(var i=0; i<input.length; i++) {
        if(input[i].type == 'submit') {
            //input[i].disabled = true;
            //input[i].value += '...';
        }
    }
    return true;
}

Forms.Submit.Enable = function (form) {
    var input = form.getElementsByTagName('input');
    for(var i=0; i<input.length; i++) {
        if(input[i].type == 'submit') {
            //input[i].disabled = false;
            //input[i].value = input[i].value.replace(/\.\.\./, '');
        }
    }
    return true;
}

/*
 * 
 */

Forms.Validation = {};

Forms.Validation.Field = function (field) {
    if(Validation.Skeleton[field.id] != undefined && Validation.Skeleton[field.id] != '') {
        if(Validation.Skeleton[field.id]['enter'].test(field.value)) {
            document.getElementById('formAssistance').innerHTML = '';
            if(Assistance.Msg[field.id] != undefined && Assistance.Msg[field.id] != '') {
                document.getElementById('formAssistance').innerHTML = Assistance.Msg[field.id];
            }
        } else {
            document.getElementById('formAssistance').innerHTML = '<strong style="text-transform: uppercase; color: #AA0000;">Fehler</strong><br />';
            document.getElementById('formAssistance').innerHTML+= Validation.Skeleton[field.id]['msg'];
        }
    }
    return true;
}

Forms.Validation.Highlight = function() {
    Spry.Effect.Highlight('error',{duration: 1000, from: '#B00A11', to: '#FFFFFF',restoreColor: '#FFFFFF',toggle: false});
    return false;
}

Forms.Validation.Submit = function (form) {

    Forms.Submit.Disable(form);

    var submit = true;
    var errors = new Array();

    var fields = new Array();
    fields[0] = form.getElementsByTagName('input');
    fields[1] = form.getElementsByTagName('select');

    var radio_test = new Object();

    for(var j=0; j<fields.length; j++) {
        for(var i=0; i<fields[j].length; i++) {
            if(fields[j][i].type != 'submit' && fields[j][i].type != 'hidden') {
                if(Validation.Skeleton[fields[j][i].name] != undefined && Validation.Skeleton[fields[j][i].name] != '') {
                    if(Validation.Skeleton[fields[j][i].name]['required'] == true) {
                        if(fields[j][i].type == 'checkbox') {
                            if(fields[j][i].checked != true) {
                                errors[errors.length] = Validation.Skeleton[fields[j][i].name]['msg'];
                                submit = false;
                            }
                        } else if(fields[j][i].type == 'radio') {
                            var radio = document.getElementsByName(fields[j][i].name);
                            if(radio_test[radio.name] != true) {
                                var checked = 0;
                                for(var k=0; k<radio.length; k++) {
                                    if(radio[k].checked == true) {
                                        checked++;
                                    }
                                }
                                if(checked == 0) {
                                    errors[errors.length] = Validation.Skeleton[fields[j][i].name]['msg'];
                                    submit = false;
                                }
                                radio_test[radio.name] = true;
                            }
                        } else {
                            if(Validation.Skeleton[fields[j][i].name]['submit'].test(fields[j][i].value)) {
                            } else {
                                errors[errors.length] = Validation.Skeleton[fields[j][i].name]['msg'];
                                submit = false;
                            }
                        }
                    }
                }
            }
        }
    }

    if(submit == false) {
        var error_layer = document.getElementById('error');
        error_layer.style.display = 'block';
        error_layer.innerHTML = '<strong>Fehler</strong>';
        error_layer.innerHTML+= '<ul style="list-style: square;">';
        for(i=0; i<errors.length; i++) {
            error_layer.innerHTML += '<li>' + errors[i] + '</li>';
        }
        error_layer.innerHTML+= '</ul>';
        Spry.Effect.Highlight('error',{duration: 1000, from: '#B00A11', to: '#FFFFFF',restoreColor: '#FFFFFF',toggle: false});
        Forms.Submit.Enable(form);
    }

    return submit;
}

/*
 *
 */

Forms.Status = {};

Forms.Status.Highlight = function() {
    Spry.Effect.Highlight('status',{duration: 4000, from: '#C7E1AC', to: '#FFFFFF',restoreColor: '#FFFFFF',toggle: false});
    //Spry.Effect.Highlight('status',{duration: 1000, from: '#FFFFFF', to: '#C7E1AC',restoreColor: '#C7E1AC',toggle: false});
    return false;
}
