﻿hasValidEmail = function(elem) {
    if (!isValidEmail(elem.val())) {
        setControlError(elem, 'Geen geldig e-mail adres');
        return false;
    }
    else {
        setControlValid(elem);
        return true;
    }
};

isValidEmail = function(src) {
    var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(src);
};


setControlError = function (control, message) {
    formIsValid = false;
    control.parent().addClass('error');
    control.parent().prev().addClass('error');
    if (control.next().attr('class') == 'error-msg') {
        control.next().show();
        //sibling should be the error message placeholder
        control.next().html('<li>' + message + '</li>');

    }
};

setControlValid = function (control) {
    control.parent().removeClass('error');
    control.parent().prev().removeClass('error');
    if (control.next().attr('class') == 'error-msg') {
        control.next().hide();
        control.next().html('');
    }
};

hasValue = function(elem) {
    return elem.val() != '';
};

isCurrency = function(elem) {

};

isNumber = function(elem) {

};

isValidDate = function(day, month, year) {
    return isDate(day + "/" + month + "/" + year);
};

isDate = function(dateStr) {
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/ ;
    var matchArray = dateStr.match(datePat); // is the format ok?

    if (matchArray == null) {
        //log('Please enter your birth date as dd/mm/yyyy. Your current selection reads: ' + dateStr);
        return false;
    }

    var day = matchArray[1]; // parse date into variables
    var month = matchArray[3];
    var year = matchArray[5];

    if (month < 1 || month > 12) {
        // check month range
        //log('Month must be between 1 and 12.');
        return false;
    }

    if (day < 1 || day > 31) {
        //log('Day must be between 1 and 31.');
        return false;
    }

    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        //log('Month ' +month+ " doesn't have 31 days!");
        return false;
    }

    if (month == 2) {
        // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day == 29 && !isleap)) {
            //log("February " + year + " doesn't have " + day + " days!");
            return false;
        }
    }
    return true; // date is valid
};

