﻿
function checkName (name) {
    if (name.length >= 2) {
        var namePattern = /[A-Za-z]/;
        if (namePattern.exec(name)) {
            return true;
        }
    }
    
    return false;
}

function checkphone(strString) //checks for valid phone format
{
    var phonePattern = /^(\d{10}|\d{3}-\d{3}-\d{4}|\(\d{3}\)\d{3}-\d{4}|\(\d{3}\) \d{3}-\d{4})$/;
    if (strString.length) {
        if (phonePattern.exec(strString))
        { 
            return true;
        } else { 
            return false;
        }
    } 
    
    return true;
}

function checkEmail (email) {
    var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if (email.length) {
        if (emailPattern.exec(email)) {
            return true;
        }
    }
    
    return false;
}

function checkDate(strDate) {
    var datePattern = /\d{1,2}\/\d{1,2}\/\d{2,4}/;
    if (strDate.length) {
        if (datePattern.exec(strDate)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
    
    return true;
}

function checkit(form) {
    var errors = "";
    
    if (!checkName(form.firstname.value)) {
        errors += "First name is required.\n";
    }

    if (!checkName(form.lastname.value)) {
        errors += "Last name is required.\n";
    }

    if (form.phone == null) {
        // skip phone if doesn't exist
    } else if (!checkphone(form.phone.value)) {
        errors += "The phone number provided is not valid.\n";
    }
    
    if (!checkEmail(form.email.value)) {
        errors += "The Email \""+ form.email.value +"\" is not valid.\n";
    }

    if (!checkDate(form.movedate.value)) {
        errors += "Move-In date is not valid.\n";
    }

    if (form.comments.length > 2000) {
        errors += "Comments must be less than 2000 characters long.";
    }

    if (errors.length) {
        alert(errors);
        return false;
    }
    
    return true;
}
