﻿// Purpose : Check for null value
// Accepts : string value
// Returns : true for length of the string is equal to 0
//			 false for length of the string is greater than 0
function IsNull(strValue) {
	var newString = new String(strValue);
	var re = /\s/g; //Match any white space including space, tab, form-feed, etc. 
	var str = newString.replace(re, "");
	if (str.length <= 0) 
		return true;
	else
		return false;
}

function IsValidEmailAddress(strValue) {
	var isValidEmail;
	var strEmail = new String(strValue);
	isValidEmail = true;
	// a@b.c should be the shortest an address could be
	if (strEmail.length < 5) 
		isValidEmail = false;
	else if (strEmail.indexOf("@") < 0)  // has at least one "@"
		isValidEmail = false;
	else if (strEmail.indexOf(".") < 0) // has at least one "."
		isValidEmail = false;
	else {
		//has only one "@"
		var atCnt;
		var i;
		atCnt = 0
		for (i = 1; i <= strEmail.length; i++) {
			if  (strEmail.charAt(i) == "@") 
				atCnt = atCnt + 1
		}
		if (atCnt > 1) 
			isValidEmail = false
	}
	return isValidEmail;
}

function isValidLength(strValue, intLength)
{
    var newString = new String(strValue);
    if (newString.length >= intLength) 
        return true;
    else
        return false;
}

function isValidAlphaNumeric(string) 
{
    var strCompare = new String(string);
    var valid="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) < 0)
        {
            return false;
        }        
    }
    return true;    
}

function isValidNumeric(string) 
{
    var strCompare = new String(string);
    var valid="0123456789.";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) < 0)
        {
            return false;
        }        
    }
    return true;    
}

function isValidNumericDigits(string) 
{
    var strCompare = new String(string);
    var valid="0123456789";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) < 0)
        {
            return false;
        }        
    }
    return true;    
}

function hasLowercaseLetters(string) 
{
    var strCompare = new String(string);
    var valid="abcdefghijklmnopqrstuvwxyz";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) > -1)
        {
            return true;
        }
    }
    return false;
}

function hasUppercaseLetters(string) 
{
    var strCompare = new String(string);
    var valid="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) > -1)
        {
            return true;
        }
    }
    return false;
}

function hasNumbers(string) 
{
    var strCompare = new String(string);
    var valid="0123456789";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) > -1)
        {
            return true;
        }
    }
    return false;
}

function hasSpecialCharacters(string) 
{
    var strCompare = new String(string);
    var valid="@#$%";
    for (var i=0; i< strCompare.length; i++) 
    {
        if (valid.indexOf(strCompare.charAt(i)) > -1)
        {
            return true;
        }
    }
    return false;
}

function isValidZimplePasswordCharacters(pwd)
{
    var points = 0;
    if ( (hasLowercaseLetters(pwd)) || (hasUppercaseLetters(pwd)) )
        points += 1;
//    if (hasUppercaseLetters(pwd))
//        points += 1;
    if (hasNumbers(pwd))
        points += 1;
//    if (hasSpecialCharacters(pwd))
//        points += 1;
    if (points >= 2)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function isValidUSZip(zip)
{
    if (!isValidLength(zip, 5))
    {
        return false;
    }
    if (!isValidNumericDigits(zip))
    {
        return false;
    }    
    return true;
}

function isValidPhoneNumber(phone)
{
    if (!isValidLength(phone, 10))
    {
        return false;
    }
    if (!isValidNumericDigits(phone))
    {
        return false;
    }
    return true;
}

function isValidSSN(ssn)
{
    if (!isValidLength(ssn, 9))
    {
        return false;
    }
    if (!isValidNumericDigits(ssn))
    {
        return false;
    }
    return true;
}

function isValidDate(fld)
{
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    var errorMessage = 'Please enter valid date as month, day, and four digit year.\nYou may use a slash, hyphen or period to separate the values.\nThe date must be a real date. 2-30-2000 would not be accepted.\nFormay mm/dd/yyyy.';
    if ((fld.match(RegExPattern)) && (fld!='')) 
    {
        // mm/dd/yyyy
        return true; 
    } 
    else
    {
        return false;
    } 
}
