<!--

// Trims the leading and trailing blanks from a given string:
function Trim(strToTrim) {
	while(strToTrim.charAt(0)==' '){strToTrim = strToTrim.substring(1,strToTrim.length);}
	while(strToTrim.charAt(strToTrim.length-1)==' '){strToTrim = strToTrim.substring(0,strToTrim.length-1);}
	return strToTrim;
}

// Validate an e-mail address:
function ValidateEmail(str){
	if (str.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true;
	else return false; 
}

// Validate date in "mm/dd/yyyy", "m/d/yyyy" format:
function ValidateDateMDY(str){
	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})?$/;
	if ((str.match(RegExPattern)) && (str!="")) return true;
	else return false;
}

// Validate date in "dd/mm/yyyy", "d/m/yyyy" format:
function ValidateDateDMY(str){
	if (str.search(/^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/) != -1) return true;
	else return false; 
}

// Allows only letters, numbers and underscore:
function ChkIllegalChars(str){
	var illegalChars = /\W/;
	if (illegalChars.test(str)) return false;
	else return true;
}


// ############ EXAMPLES FOR FORMS VALIDATION. ############
// YOU'LL HAVE TO CHANGE THESE FUNCTIONS, THEY ARE ONLY EXAMPLES.

// Validates a form.
function ValidateFormExample(frm) {
	if (Trim(frm.txtName.value)=="") {alert("Please enter First Name.");frm.txtName.focus();return false;}
	else if (Trim(frm.txtEmail.value)=="") {alert("Please enter the Email Address.");frm.txtEmail.focus();return false;}
	else if (!ValidateEmail(Trim(frm.txtEmail.value))) {alert("Please enter a valid Email Address.");frm.txtEmail.focus();return false;}
	else if (frm.selOptions.selectedIndex==0) {alert("Please select an option.");frm.selOptions.focus();return false;}
	else if ((new String(Trim(frm.txtComment.value))).length>1000) {alert("Comment text is too long. Maximum 1000 characters allowed.");frm.txtComment.focus();return false;}
	else if (!ValidateCheckboxes(frm.chkOpt)) {alert("Please select an option.");return false;}
	else return true;
}

// Checking if at least one checkbox was selected.
function ValidateCheckboxes(obj) {
	var found=0;
	if (typeof(obj.length)=="undefined") {
		//for only one checkbox:
		if (obj.checked) found=1;
	} else {
		//for more checkboxes:
		for (var i=0; i<obj.length; i++) {if (obj[i].checked) {found=1;break;}}
	}
	if (found==1) return true;
	else return false;
}

// ############ END EXAMPLES FOR FORMS VALIDATION. ############

//-->