
/**
 * Report form onSubmit handler
 * 
 * @return void
 */
function try_submit() {
    if (validate()) {
        document.forms['report'].submit();
    }
}

/**
 * Validate the current values in the field
 * 
 * @return void
 */
function validate() {

    var $element_arr;

    var $e_id;
    var $e_label;
    var $e_required;
    var $e_regexp;
    var $e_maxlength;

    var $e_value;

    var $local_okay = true;

    // loop through the elements and perform its check
    var $i = 0;
    while ($local_okay && ($i < $form_elements.length)) {

            $element_arr = $form_elements[$i];

            $e_id        = $element_arr[0];
            $e_label     = $element_arr[1];
            $e_required  = $element_arr[2];
            $e_regexp    = $element_arr[3];
            $e_maxlength = $element_arr[4];

            $e_value = document.getElementById($e_id).value;

            //alert("id: " + $e_id + ", value: "+ $e_value + ", length: " + $e_maxlength);

            if (($local_okay) && ($e_value.length > $e_maxlength)) {
                alert ("De invoer bij '" + $e_label + "' is te lang.");
                $local_okay = false;
            }
            if (($local_okay) && ($e_value.length > 0) && (!$e_regexp.test($e_value))) {
                alert ("De invoer bij '" + $e_label + "' bevat ongeldige tekens. Mogelijk bevat het ongeldige karakters of is het van een ongeldig formaat.");
                $local_okay = false;
            }
            if (($local_okay) && $e_required && (($e_value.length == 0) || ($e_value == '0')) ) {
                alert ("U heeft niets ingevuld bij '" + $e_label + "'");
                $local_okay = false;
            }

            $i++;
    }

    // ask for confirmation
    if ($local_okay) {
        var $c = confirm ("Weet u zeker dat u de door u ingevoerde melding wilt verzenden?");
        if (!$c) {
            $local_okay = false;
        }
    }

    return $local_okay;
}

// init checks
var $form_elements = new Array();

// meldpunt_identifier
$form_elements[0]  = new Array('field-category',  'Categorie',                    1, new RegExp(/^[0-9]$/),1);

// personal
$form_elements[1]  = new Array('field-name',      'Naam',                         1, new RegExp(/^[a-zA-Z0-9\ \-\_'\"\(\)]+$/),50);
$form_elements[2]  = new Array('field-email',     'E-mail adres',                 1, new RegExp(/^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*$/),50);
$form_elements[3]  = new Array('field-phone',     'Telefoon',                     1, new RegExp(/^[0-9\-\s\+\(\)]+$/),20);

// event
$form_elements[4] = new Array('field-day',        'Datum (dag)',                  1, new RegExp(/^[0-9]+$/),2);
$form_elements[5] = new Array('field-month',      'Datum (maand)',                1, new RegExp(/^[0-9]+$/),2);
$form_elements[6] = new Array('field-year',       'Datum (jaar)',                 1, new RegExp(/^[0-9]+$/),4);

$form_elements[7] = new Array('field-hour',       'Tijdstip (uur)',               1, new RegExp(/^[0-9]+$/),2);
$form_elements[8] = new Array('field-minutes',    'Tijdstip (minuten)',           1, new RegExp(/^[0-9]+$/),2);

$form_elements[9] = new Array('field-location',   'Plaats waar u zich bevond',    1, new RegExp(/^[a-zA-Z0-9\ \-\_'\"\(\)]+$/),50);
$form_elements[10] = new Array('field-country',   'Land waar u zich bevond',      1, new RegExp(/^[A-Z]{2}$/),2);

// report
$form_elements[11] = new Array('field-crime_location', 'Locatie op het internet', 1, new RegExp(/.*/),500);
$form_elements[12] = new Array('field-crime_report',   'Uw melding',              1, new RegExp(/.*/),3000);

