﻿// check to see if input is a valid email address
function isEmailAddress(val, field, not_required) {
    if(not_required) {
        if (field) {
            var alert_msg = "'" + field + "' is not a required field but if you enter a value it must be valid:\n\n";
        } else {
            var alert_msg = "This field is not a required field but if you enter a value it must be valid:\n\n";
        }
    } else {
        if (field) {
            var alert_msg = "'" + field + "' is a required field and cant be left blank. It must also be vaild:\n\n";
        } else {
            var alert_msg = "This field is a required field and cant be left blank. It must also be vaild:\n\n";
        }
    }
    alert_msg += "* Starts with an alpha-numeric character \n" +
        "* Ends with an alpha-numeric character \n" +
        "* Has a '@' symbol \n" +
        "* Has at Least one '.' after the '@' \n" +
        "* Has an alpha-numeric character between '@' and '.' \n" +
        "* Has NO SPACES anywhere.' \n\n" +
        "* Multiple addresses seperated by ',' (NO SPACES).' \n\n" +
        "eg. 'me@home.com,me@work.com' \n\n" +
        "(alpha-numeric character = either a number or a-z)";
    
    if(not_required && val.length==0){
        return [true];
    } else {    
        if (val.match(/^[\w][\-\w\.]+@[,@\-\w\.]+\.[a-zA-Z]{2,5}$/)){
            return [true];
        }
        else {
            return [false, alert_msg];
        }
    }   
}

function isMobileNumber(val, field, not_required) {
    if (not_required) {
        if (field) {
            var alert_msg = "'" + field + "' is not a required field but if you enter a value it must be valid:\n\n";
        } else {
            var alert_msg = "This field is not a required field but if you enter a value it must be valid:\n\n";
        }
    } else {
        if (field) {
            var alert_msg = "'" + field + "' is a required field and cant be left blank. It must also be vaild:\n\n";
        } else {
            var alert_msg = "This field is a required field and cant be left blank. It must also be vaild:\n\n";
        }
    }

    alert_msg += "* Starts with '07'\n" +
        "* Numbers ONLY\n" +
        "* No Spaces\n" +
        "* Eleven numbers long\n\n" +
        "eg. 07123456789";
    if (not_required && val.length == 0) {
        return [true];
    } else {
        if (isNaN(val)) {
            return [false, alert_msg];
        } else if (val.length < 11) {
            return [false, alert_msg];
        } else if (val.length > 11) {
            return [false, alert_msg];
        } else if (!(String(val).substring(0, 2) == "07")) {
            return [false, alert_msg];
        } else {
            return [true];
        }
    }
}

function isPhoneNumber(val, field, not_required) {
    if (not_required) {
        if (field) {
            var alert_msg = "'" + field + "' is not a required field but if you enter a value it must be valid:\n\n";
        } else {
            var alert_msg = "This field is not a required field but if you enter a value it must be valid:\n\n";
        }
    } else {
        if (field) {
            var alert_msg = "'" + field + "' is a required field and cant be left blank. It must also be vaild:\n\n";
        } else {
            var alert_msg = "This field is a required field and cant be left blank. It must also be vaild:\n\n";
        }
    }

    alert_msg += "* Starts with '0'\n" +
        "* Numbers ONLY\n" +
        "* No Spaces\n" +
        "* Eleven numbers long\n\n" +
        "eg. 01234567890";
    if(isNaN(val)) {
        return [false, alert_msg];
    } else if(val.length < 11) {
        return [false, alert_msg];
    } else if(val.length > 11) {
        return [false, alert_msg];
    } else if(!(String(val).substring(0,1) == "0")) {
        return [false, alert_msg];
    } else {
        return [true];
    } 
}

function isDate(val) {
    var alert_msg = "Please enter a valid date:\n\n" +
        "* dd/mm/yyyy \n" +
        "* dd = day \n" +
        "* mm = numeric month\n" +
        "* yyyy = four digit year\n\n" +
        "eg. 01/12/2007";
    if ((val.match(/^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/)) && (val!='')) {
        return [true]; 
    } else {
        return [false, alert_msg];
    } 
}

function isNumber(val, field, not_required) {
    if (not_required) {
        if (field) {
            var alert_msg = "'" + field + "' is not a required field but if you enter a value it must be a valid number.";
        } else {
            var alert_msg = "This field is not a required field but if you enter a value it must be valid number.";
        }
    } else {
        if (field) {
            var alert_msg = "'" + field + "' is a required field and cant be left blank. It must also be a valid number.";
        } else {
            var alert_msg = "This field is a required field and cant be left blank. It must also be a valid number.";
        }
    }
    if (not_required && val.length == 0) {
        return [true];
    } else {
        if (isNaN(val)) {
            return [false, alert_msg];
        } else if (!(val)) {
            return [false, alert_msg];
        } else {
            return [true];
        }
    }
}

function isCurrency(val, field, not_required) {
    if (not_required) {
        if (field) {
            var alert_msg = "'" + field + "' is not a required field but if you enter a value it must be a valid number.";
        } else {
            var alert_msg = "This field is not a required field but if you enter a value it must be valid number.";
        }
    } else {
        if (field) {
            var alert_msg = "'" + field + "' is a required field and cant be left blank. It must also be a valid number.";
        } else {
            var alert_msg = "This field is a required field and cant be left blank. It must also be a valid number.";
        }
    }
    val = val.replace(/£/g, "");
    val = val.replace(/\,/g, "");
    if (not_required && val.length == 0) {
        return [true];
    } else {
        if (isNaN(val)) {
            return [false, alert_msg];
        } else if (!(val)) {
            return [false, alert_msg];
        } else {
            return [true, val];
        }
    }
}

function isNumberMinMax(val, min, max, field) {
    if (field) {
        var alert_msg = "Please enter a valid between " + min + " and " + max + " for '" + field + "'.";
    } else {
        var alert_msg = "Please enter a valid number between " + min + " and " + max;
    }
    if (isNaN(val)) {
        return [false, alert_msg];
    } else if (!(val)) {
        return [false, alert_msg];
    } else if (val < min) {
        return [false, alert_msg];
    } else if (val > max) {
        return [false, alert_msg];
    } else {
        return [true];
    }
}

function isValue(val, field) {
    if (field) {
        var alert_msg = "'" + field + "' is a required field and cant be left blank.\n\n";
    } else {
        var alert_msg = "This field is a required field and cant be left blank.\n\n";
    }
    if (!(val)) {
        return [false, alert_msg];
    } else {
        return [true];
    }
}

function isFullName(val, not_required) {
    if (not_required) {
        var alert_msg = "Fullname is not a required field but if you enter a value it must be valid:\n\n";
    } else {
        var alert_msg = "Fullname is a required field and cant be left blank. It must also be vaild:\n\n";
    }
	alert_msg += "* First and surname must be seperated by space\n" +
		"* Must contain only 1 space (no middle names)\n" +
		"* First name must be more than 1 character\n" +
		"* Surname must be more than 1 character\r\n" +
		"eg. Joe Bloggs";
	if (not_required && val.length == 0) {
	    return [true];
	} else {
	    if (!(val)) {
	        return [false, alert_msg];
	    } else if (String(val).split(' ').length > 2) {
	        return [false, alert_msg];
	    } else if (String(val).indexOf(' ') < 2) {
	        return [false, alert_msg];
	    } else if (String(val).length < 5) {
	        return [false, alert_msg];
	    } else {
	        return [true];
	    }
	}
}

function isSelection(val, field) {
    if (field) {
        var alert_msg = "'" + field + "' is a required field. Please select a value.";
    } else {
        var alert_msg = "This field is a required field. Please select a value.";
    }
    if (!(val)) {
        return [false, alert_msg];
	} else if (val=='None') {
        return [false, alert_msg];
	} else if (val=='none') {
        return [false, alert_msg];
    } else {
        return [true];
    }
}

function isPassword(val, field) {
	var alert_msg = "Please enter a valid password:\n\n" +
		"* Minimum 8 characters long \n" +
		"* Must contain at least 1 number \n" +
		"* Must contain at least 1 letter \n" +
		"eg. '12aBc34D' \n\n" +
		"(alpha-numeric character = either a number or a-z)";
	if (val.length < 8) {
        return [false, alert_msg];
	}
	var checkData = val.match( /(?=.*\d)(?=.*[a-z])/ );
	if (checkData){
        return [true];
    }
    else {
        return [false, alert_msg];
    } 
}

