// form validation
// (c) 2007 Loco (Loohuis Consulting), http://www.loohuis-consulting.nl/
// This work is licensed under a 
// Creative Commons Attribution-Share Alike 3.0 Netherlands License
// see http://www.loohuis-consulting.nl/development/cc-by-sa.php

function validate(e)
{
    var elm = Event.element(e);

    // check mandatory elements
    var inputs = $$('.mandatory');
    var incomplete = false;
    inputs.each(function(i)
    {
        if (i.value.length == 0) {
            incomplete = true;
            i.up('tr').addClassName('incomplete');
        }
        else
            i.up('tr').removeClassName('incomplete');
    });
    if (incomplete) {
        Element.update('validateerror', 'Vul a.u.b. de ontbrekende gegevens in.');
        Element.show('validateerror');
        Event.stop(e);
    }
    // apparently input is ok
    // elm.opslaan.name = 'register';
}

// validate game forms
function validateGame(e)
{
    var elm = Event.element(e);
    var stop = false;
    // check mandatory elements
    $$('#wedstrijdform .mandatory').each(function(i)
    {
        if ((i.type == 'checkbox' && !i.checked) || (i.value.length == 0)) {
            i.up('tr').addClassName('missing');
            stop = true;
        }
        else {
            i.up('tr').removeClassName('missing');
        }
    });
    if (stop) {
        $('registererror').show();
        Event.stop(e);
        return false;
    }
    else {
        $('registererror').hide();
        elm.send.name = 'register';
    }
    return false;
}

function validatePrijscode(e)
{
    var elm = Event.element(e);
    var stop = false;
    // check mandatory elements
    $$('#prijscodeform .mandatory').each(function(i)
    {
        if ((i.type == 'checkbox' && !i.checked) || (i.value.length == 0)) {
            i.up('tr').addClassName('missing');
            stop = true;
        }
        else {
            i.up('tr').removeClassName('missing');
        }
    });
    if (stop) {
        $('registererror').show();
        Event.stop(e);
        return false;
    }
    else {
        $('registererror').hide();
        elm.send.name = 'check';
    }
    return false;
}

// initialise page
function init()
{
    var registerForm = $('address');
    if (registerForm) {
        Event.observe(registerForm, 'submit', validate);
    }
    if ($('wedstrijdform')) {
        $('wedstrijdform').observe('submit', validateGame);
    }
    if ($('prijscodeform')) {
        $('prijscodeform').observe('submit', validatePrijscode);
    }
}

document.observe('dom:loaded', init);

