function checkAge(){
var today = new Date();
var d = document.getElementById("dob_usr").value;
if (!/\d{2}\/\d{2}\/\d{4}/.test(d)) { // check valid format
showMessage();
return false;
}

d = d.split("/");
var byr = parseInt(d[2]);
var nowyear = today.getFullYear();
if (byr >= nowyear || byr < 1900) { // check valid year
showMessage();
return false;
}
var bmth = parseInt(d[1],10)-1; // radix 10!
if (bmth <0 || bmth >11) { // check valid month 0-11
showMessage()
return false;
}
var bdy = parseInt(d[0],10); // radix 10!
var dim = daysInMonth(bmth+1,byr);
if (bdy <1 || bdy > dim) { // check valid date according to month
showMessage();
return false;
}

var age = nowyear - byr;
var nowmonth = today.getMonth();
var nowday = today.getDate();
if (bmth > nowmonth) {age = age - 1} // next birthday not yet reached
else if (bmth == nowmonth && nowday < bdy) {age = age - 1}

//alert('You are ' + age + ' years old');
if (age >= 30) {
alert ("You need to be 30 years old or younger!");
}
}

function showMessage() {
if (document.getElementById("dob_usr").value != "") {
alert ("Invalid date format or impossible day/month/year of birth - please re-enter as DD/MM/YYYY");
document.getElementById("dob_usr").value = "";
document.getElementById("dob_usr").focus();
}
}

function daysInMonth(month,year) { // months are 1-12
var dd = new Date(year, month, 0);
return dd.getDate();
}