function validate_email(field,alerttxt) {
	with (field) {
		apos=value.indexOf("@")
		dotpos=value.lastIndexOf(".")
		if (apos<1||dotpos-apos<2) {
			alert(alerttxt);
			return false;
		}
		else {
			return true
		}
	}
}

function validate_phone_number(field,alerttxt) {
	with (field) {
		if (stripCharsNotInBag(value, '0123456789').length<10) {
			alert(alerttxt);
			return false;
		}
		else {
			return true
		}
	}
}

function validate_not_empty(field,alerttxt) {
	with (field) {
		if (value.length<=0) {
			alert(alerttxt);
			return false;
		}
		else {
			return true
		}
	}
}

var vl_one_day=1000*60*60*24
var vl_one_month=1000*60*60*24*30
var vl_one_year=1000*60*60*24*30*12

function getAge(yr, mon, day, unit, decimal, round) {
	today=new Date();
	var pastdate=new Date(yr, mon-1, day);

	var countunit=unit;
	var decimals=decimal;
	var rounding=round;

	finalunit=(countunit=="days")? vl_one_day : (countunit=="months")? vl_one_month : vl_one_year;
	decimals=(decimals<=0)? 1 : decimals*10;

	if (unit!="years"){
		if (rounding=="rounddown") document.write(Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals+" "+countunit);
		else return Math.ceil((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals+" "+countunit;
	}
	else{
		yearspast=today.getFullYear()-yr-1;
		tail=(today.getMonth()>mon-1 || today.getMonth()==mon-1 && today.getDate()>=day)? 1 : 0;
		pastdate.setFullYear(today.getFullYear());
		pastdate2=new Date(today.getFullYear()-1, mon-1, day);
		tail=(tail==1)? tail+Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals : Math.floor((today.getTime()-pastdate2.getTime())/(finalunit)*decimals)/decimals;
		return yearspast+tail;
//		return yearspast+tail+" "+countunit;
	}
}

//Sample usage
//getAge (year, month, day, unit, decimals, rounding)
//Unit can be "years", "months", or "days"
//Decimals specifies demical places to round to (ie: 2)
//Rounding can be "roundup" or "rounddown"

//getAge(1997, 11, 24, "years", 0, "rounddown")


function y2k(number) {
	return (number < 1000) ? number + 1900 : number;
}

function daysElapsed(date1,date2) {
	var difference = Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0) - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
	return difference/1000/60/60/24;
}

function validate_dob(field,alerttxt) {
	with(field) {
		if(value=='Click to select a date ==>') {
			alert('Please enter your date of birth');
			return false;
		}
		else {
			var dob = value.split("/");
			var day = dob[0];
			var month = dob[1];
			var year = dob[2];
			var years_old = getAge(year,month,day,'years',0,'rounddown');
			var age_limit = 23;
			if(years_old<age_limit) {
				alert(alerttxt);
				return false;
			}
		}
	}
}
function stripCharsNotInBag(s, bag) {
	var i;
	var returnString = "";

	// Search through string's characters one by one.
	// If character is in bag, append to returnString.

	for (i = 0; i < s.length; i++) {
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) != -1) returnString += c;
	}

	return returnString;
}
