﻿function processNumber(inputField) {
    if (isNaN(inputField)) {
        alert('You must enter valid Number in default value');
        return false;
    } else
        return true;
}

function processBoolean(inputField) {
    inputField = inputField.toString().toUpperCase();
    return ((inputField == 'TRUE') || (inputField == 'FALSE') || (inputField == 'YES') || (inputField == 'NO'));
}

function processDate(txtDate) {
    var objDate,  // date object initialized from the txtDate string
            mSeconds, // txtDate in milliseconds
            day,      // day
            month,    // month
            year;     // year
    // date length should be 10 characters (no more no less)
    if (txtDate.length !== 10) {
        return false;
    }
    // third and sixth character should be '/'
    if (txtDate.substring(2, 3) !== '/' || txtDate.substring(5, 6) !== '/') {
        return false;
    }
    // extract month, day and year from the txtDate (expected format is mm/dd/yyyy)
    // subtraction will cast variables to integer implicitly (needed
    // for !== comparing)
    month = txtDate.substring(0, 2) - 1; // because months in JS start from 0
    day = txtDate.substring(3, 5) - 0;
    year = txtDate.substring(6, 10) - 0;
    // test year range
    if (year < 1000 || year > 3000) {
        return false;
    }
    // convert txtDate to milliseconds
    mSeconds = (new Date(year, month, day)).getTime();
    // initialize Date() object from calculated milliseconds
    objDate = new Date();
    objDate.setTime(mSeconds);
    // compare input date and parts from Date() object
    // if difference exists then date isn't valid
    if (objDate.getFullYear() !== year ||
            objDate.getMonth() !== month ||
            objDate.getDate() !== day) {
        return false;
    }
    // otherwise return true
    return true;
}
