/* This script from the old site is broken: if you correct some of the errors, it highlights wrong elements . If you leave the "käyttöehdot" empty, it highlightsthe first password field. */

/* Checks for the registration form */
function validateValue(f, v, filter) {
    var vOk = false;

    switch (filter) {
        case "isEmail":
            var emailPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (emailPattern.test(v)) {
                vOk = true;
            }
            break;
        case "passwordsMatch":
            if (v[0] == v[1] && v[0] != '') {
                vOk = true;
            }
            break;
        case "mustCheck":
            if (document.getElementById(f).checked) {
                vOk = true;
            }
            break;
        case "nameOrNick":
            if (v[3] == true && v[0] != '' && v[1] != '') {
                vOk = true;
            }
            break;
        case "notEmpty":
        case "":
        case 0:
        default:
            if (v != '') {
                vOk = true;
            } else {
                vOk = false;
            }
    }
    return vOk;
}

function trim(str) {
    return str.replace(/^s+/, '').replace(/s+$/, '');
}

function preValidateForm(formId) {

    var errors = false;
    switch (formId) {
        case "register1":
            var required = {"email": "isEmail", "password_1": "passwordsMatch", "password_2": "passwordsMatch", "kayttoehdot": "mustCheck"}
            break;
        case "register2":
            var required = {"firstname": "notEmpty", "lastname": "notEmpty", "nick": "nameOrNick"}
            break;
    }

    for (var k in required) {
        var v = trim(document.getElementById(k).value); // Eliminate whitespace
        if (required[k] == 'passwordsMatch') {
            v = [v, trim(document.getElementById('password_2').value)];
        }
        if (required[k] == 'nameOrNick') {
            v = [trim(document.getElementById('firstname').value), trim(document.getElementById('lastname').value), trim(document.getElementById('nick').value), document.getElementById('userRealNameAsNick').checked];
        }
        if (validateValue(k, v, required[k]) == false) {
            errors = true;
            if (required[k] == 'mustCheck') {
                var labels = document.getElementsByTagName('label');
                for (var i = 0; i < labels.length; i++) {
                    if (labels[i].htmlFor == k) {
                        labels[i].className = labels[i].className + ' formError';
                    }
                }
            } else {
                document.getElementById(k).className = document.getElementById(k).className + ' formError';
            }
        } else {
            if (required[k] == 'mustCheck') {
                var labels = document.getElementsByTagName('label');
                for (var i = 0; i < labels.length; i++) {
                    if (labels[i].htmlFor == k) {
                        labels[i].className = labels[i].className.replace(/formError/, '');
                    }
                }
            } else {
                document.getElementById(k).className = document.getElementById(k).className.replace(/formError/, '');
            }
        }
    }

    if (errors) {
    	$('#'+formId).find('.jsMessage').css('display','block');
    } else {
    	$('#'+formId).find('.jsMessage').css('display','none');
        formId.submit();
    }
    
}



