﻿// JavaScript Document
function NewWindow(url, winWidth, winHeight) {
    ThisWindow = window.open(url, "window", 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=' + winWidth + ',height=' + winHeight + '');
}

function toggleHide(strO) {
    var o = document.getElementById(strO);
    if (o == null)
        return;
    if (o.style.display == 'none')
        o.style.display = '';
    else
        o.style.display = 'none';
}

var dtCh = "-";
var minYear = 1900;
var maxYear = 2100;

function submit_onclick(obj, post) {
    var msg = '';
    var form = document.getElementById(obj);
    var el = form.getElementsByTagName('label');

    for (i = 0; i < form.elements.length; i++) {
        if (form.elements[i].id != '' && form.elements[i].title != '') {
            if (form.elements[i].owner != undefined && form.elements[i].owner != '') { //if form element contains owner attribute
                if (document.getElementById(form.elements[i].owner).style.display != 'none') { //then only check if shown
                    msg = msg + chckField(form.elements[i], form.elements[i].title)
                }
            } else {
                msg = msg + chckField(form.elements[i], form.elements[i].title)
            }
        }
    }
    for (var e = 0; e < el.length; e++) { //check for radio/checkboxes
        var objLabel = el[e];
        var domLabel = document.getElementById(objLabel.getAttribute('id'));
        var domLabelText = document.getElementById(objLabel.getAttribute('id')).innerHTML;
        var id_1 = domLabel.id.replace('lbl', '')

        var spanObj = document.getElementById(id_1 + '_group');
        var radio_checked1 = false;
        var radio_result = '';

        var allInputTags = spanObj.getElementsByTagName('INPUT');
        for (var c = 0; c < allInputTags.length; c++) {
            if (allInputTags[c].checked) {
                radio_checked1 = true;
                if (allInputTags[c].value != 'overig') {
                    radio_result = allInputTags[c].value;
                    break;
                } else {
                    if (document.getElementById(id_1 + '_overig').value == '') { msg = msg + '- ' + allInputTags[0].title + '\n'; }
                    break;
                }
            }
        }
        if (!radio_checked1) {
            msg = msg + '- ' + allInputTags[0].title + '\n';
        }
    }
    if (msg != '') {
        //alert("De volgende velden zijn verplicht:\n" + msg);
        return false;
    } else {
        if (post == undefined || post == true) {
            form.submit();
        } else {
            return true
        }
    }
}

//place your checks here please
function chckField(obj, title) {
    var err = ''
    if (obj.id.indexOf('email') > -1 && obj.value != '') {
        if (!isEmail(obj.value)) {
            err = err + "- Het emailadres is niet correct\n"
            errorLayout(obj, false);
        } else {
            errorLayout(obj, true);
        }
    }else if (obj.id.indexOf('_tel') > -1 && obj.value != '') {
        if (obj.value.length < 10) {
            err = err + "- Een telefoonnummer dient 10 tekens lang te zijn\n"
            errorLayout(obj, false);
        } else {
            errorLayout(obj, true);
        }
    }else if (obj.id.indexOf('DD') > -1 && obj.value != '') {
        if (!isDate(obj.value + '-' + document.getElementById(obj.id.replace('DD', 'MM')).value + '-' + document.getElementById(obj.id.replace('DD', 'YY')).value)) {
            err = err + "- " + obj.title + " incorrect\n"
            errorLayout(obj, false);
            errorLayout(document.getElementById(obj.id.replace('DD', 'MM')), false);
            errorLayout(document.getElementById(obj.id.replace('DD', 'YY')), false);
        } else {
            errorLayout(obj, true);
            errorLayout(document.getElementById(obj.id.replace('DD', 'MM')), true);
            errorLayout(document.getElementById(obj.id.replace('DD', 'YY')), true);

            if (obj.id.indexOf('birthDD') > -1 && obj.value != '') {
                if (!FV_IsDateIsBirthDate(obj.value + '-' + document.getElementById(obj.id.replace('DD', 'MM')).value + '-' + document.getElementById(obj.id.replace('DD', 'YY')).value)) {
                    err = err + "- De minimale leeftijd is 18 jaar\n"
                    errorLayout(obj, false);
                    errorLayout(document.getElementById(obj.id.replace('DD', 'MM')), false);
                    errorLayout(document.getElementById(obj.id.replace('DD', 'YY')), false);
                } else {
                    errorLayout(obj, true);
                    errorLayout(document.getElementById(obj.id.replace('DD', 'MM')), true);
                    errorLayout(document.getElementById(obj.id.replace('DD', 'YY')), true);
                }
            }
        }
    } else {
        if (obj.value == '' || obj.value == title) {
            err = "- " + title + "\n";
            errorLayout(obj, false);
        }
        else {
            errorLayout(obj, true);
        }
    }
    return err
}

function errorLayout(obj, ok) { //set colors submit_onclick form if error
    if (ok) {
        //obj.className = "";
        obj.style.backgroundColor = "";
        obj.style.color = "#000000";
    } else {
        //obj.className = "error";
        obj.style.backgroundColor = "#e5e5e5";
        obj.style.color = "#000000";
    }
}

function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
}

function isNumberKey(e) {
    var k;
    document.all ? k = e.keyCode : k = e.which;
    return ((k > 47 && k < 58 || k == 46 || k == 8 || k == 0));
}

function isTelefoon(obj, e) {
    var k;
    document.all ? k = e.keyCode : k = e.which;
    if (obj.value.length < 10) {
        return ((k > 47 && k < 58 || k == 46 || k == 8));
    } else {
        alert('Een telefoonnummer kan max. 10 cijfers lang te zijn.')
    }
}

function daysInFebruary(year) {
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    return this
}

function isDate(dtStr) {
    var daysInMonth = DaysArray(12)
    var arrDate = dtStr.split(dtCh)
    strDay = arrDate[0]
    strMonth = arrDate[1]
    strYear = arrDate[2]
    if (strDay.length > 0 && strMonth.length > 0 && strYear.length > 0) {
        month = parseInt(strMonth)
        day = parseInt(strDay)
        year = parseInt(strYear)
        if (day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || (day > daysInMonth[month] || daysInMonth[month] == undefined) || (strYear.length < 4)) {
            return false
        }
        return true
    } else {
        return false
    }
}

function FV_IsDateIsBirthDate(val) {

    var now = new Date();
    var thisYear = now.getFullYear() - 18  //minimum 18 years old
    now.setFullYear(thisYear)
    now = now.getTime(); //NN3

    var valueDate = val.split('-');

    var dateToCheck = new Date();
    if (valueDate[2] < 1900) {
        return false;
    }
    dateToCheck.setYear(valueDate[2]);
    dateToCheck.setMonth(valueDate[1] - 1);
    dateToCheck.setDate(valueDate[0]);
    var checkDate = dateToCheck.getTime();

    var pastDate = (now > checkDate);

    return pastDate;
}

function doElfCheck(bankNummer) {
    var totaal = 0
    var bankgiro = bankNummer.value
    var oneToTen = new Array()
    if (bankgiro.length == 9) {
        oneToTen[0] = 10 * bankgiro.substring(0, 0)
        oneToTen[1] = 9 * bankgiro.substring(0, 1)
        oneToTen[2] = 8 * bankgiro.substring(1, 2)
        oneToTen[3] = 7 * bankgiro.substring(2, 3)
        oneToTen[4] = 6 * bankgiro.substring(3, 4)
        oneToTen[5] = 5 * bankgiro.substring(4, 5)
        oneToTen[6] = 4 * bankgiro.substring(5, 6)
        oneToTen[7] = 3 * bankgiro.substring(6, 7)
        oneToTen[8] = 2 * bankgiro.substring(7, 8)
        oneToTen[9] = 1 * bankgiro.substring(8, 9)
        for (i = 0; i < 10; i++) {
            totaal = totaal + oneToTen[i]
        }
        totaal = totaal / 11
        if (totaal != Math.round(totaal)) {
            return "- Ongeldig bank/girorekening" + "\n";
        } else {
            return ""
        }
    } else if (bankgiro.length == 10) {
        oneToTen[0] = 10 * bankgiro.substring(0, 1)
        oneToTen[1] = 9 * bankgiro.substring(1, 2)
        oneToTen[2] = 8 * bankgiro.substring(2, 3)
        oneToTen[3] = 7 * bankgiro.substring(3, 4)
        oneToTen[4] = 6 * bankgiro.substring(4, 5)
        oneToTen[5] = 5 * bankgiro.substring(5, 6)
        oneToTen[6] = 4 * bankgiro.substring(6, 7)
        oneToTen[7] = 3 * bankgiro.substring(7, 8)
        oneToTen[8] = 2 * bankgiro.substring(8, 9)
        oneToTen[9] = 1 * bankgiro.substring(9, 10)
        for (i = 0; i < 10; i++) {
            totaal = totaal + oneToTen[i]
        }
        totaal = totaal / 11
        if (totaal != Math.round(totaal)) {
            return "- Ongeldig bank/girorekening" + "\n";
        } else {
            return ""
        }
    }
    return ""
}

function rollme() {
    if ($('#container_header').css('height') == '4px') {
        $('#container_header').css('height', 'auto')
        $('#container_header').css('display', 'none')
        $('#container_header').slideDown("slow")
    } else {
        $('#container_header').slideUp("slow", function() {
            $('#container_header').css('height', '4px')
            $('#container_header').slideDown("fast")
        })
    }
}