function isAlphaNumeric(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern = "^[a-zA-Z0-9]+$"
		return (valToMatch.match(pattern) != null) ? true : false
	} else {
		return true
	}	
}

function isZip(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern = "^[1-9][0-9]{3}\s?[a-zA-Z]{2}$"
		return (valToMatch.match(pattern) != null) ? true : false
	} else {
		return true
	}
}

function isMobile(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern = "^06[1-8]{1}[0-9]{7}$"
		return (valToMatch.match(pattern) != null) ? true : false
		
	} else {
		return true
	}	
}

function isPhone(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern = "^[0-9]{10}$"
		return (valToMatch.match(pattern) != null) ? true : false
	} else {
		return true
	}
}

function validateZipCode(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0 && valToMatch.toLowerCase() != 'postcode') {
		var pattern = "^[1-9]{1}[0-9]{3}(\x20)?[a-zA-Z]{2}$"
		return (valToMatch.match(pattern) != null) ? true : false
	} else {
		return true
	}
}

function validateRequiredZipCode(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern = "^[1-9]{1}[0-9]{3}(\x20)?[a-zA-Z]{2}$"
		return (valToMatch.match(pattern) != null) ? true : false
	} else {
		return false
	}
}

function validateRequiredPhone(frm, obj, val) {
	var valToMatch = val.replace(/^\s+|\s+$/g, "")
	if (valToMatch.length > 0) {
		var pattern1 = "^[0-9]{10}$" // phone
		var pattern2 = "^06[1-8]{1}[0-9]{7}$" // mobile
		var pattern3 = "^[+][1-9]{1}[0-9]*$" // int mobile
		
		return (
			valToMatch.match(pattern1) != null
			|| 
			valToMatch.match(pattern2) != null
			||
			valToMatch.match(pattern3) != null
			) ? true : false
	} else {
		return false
	}
}

function checkAnswerPresent(frm) {
	var answerPresent = false
	// check if answer is present
	for (var i=0; i<frm.elements.length; i++) {
		if (frm.elements[i].type == "radio" || frm.elements[i].type == "checkbox") {
			if (frm.elements[i].checked == true) {
				answerPresent = true
				break
			}
		} else if (frm.elements[i].type == "text") {
			if (frm.elements[i].value.replace(/^\s+|\s+$/g, "").length > 0) {
				answerPresent = true
				break
			}
		} 
	}
	// enable / disable submit button
	if (frm.btn_submit) {
		//frm.btn_submit.disabled = (answerPresent == false) ? true : false
		frm.btn_submit.className = (answerPresent == false) ? 'formButtonDisabled' : 'formButton'
	} 
}
