var minAge = 0;
var maxAge = 196;

var reInteger = /[\d\s\b]/


function validateDOB()
{
	if(document.getElementById("day") == null || document.getElementById("month") == null || document.getElementById("year") == null)
	{
		return true;
	}

	var day = document.getElementById("day").value;
	var month = document.getElementById("month").value;
	var year = document.getElementById("year").value;
	
	if(day == "" || month == "" || year == "")
	{
		return true;
	}
	else if( isNumeric(day) == false || isNumeric(month) == false || isNumeric(year) == false || isDate(day, month, year) == false || getAge(day, month, year) < minAge || getAge(day, month, year) > maxAge)
	{
		document.getElementById("nameSearchResultResponse").innerHTML = "<div id='contentError'><p>Invalid Date of Birth</p></div>";
		document.getElementById("nameSearchResultResponse").style.display = "";
		
		document.getElementById("day").focus();
		return false;
	}
	else
	{
		return true;
	}
}

function isNumeric(isn)
{
	return reInteger.test(isn);
}

function getAge(day,month,year) 
{
    now = new Date();    
   
    thisDay = now.getDate();
    thisMonth = now.getMonth()+1;
    thisYear = now.getFullYear();    
    
    var yearsold = thisYear - year, monthsold = 0, daysold = 0;
    
    if (thisMonth >= month) monthsold = thisMonth - month;
    else { yearsold--; monthsold = thisMonth + 12 - month; }
    
    if (thisDay >= day)daysold = thisDay - day;
    else {
        if (monthsold > 0) monthsold--;
        else { yearsold--; monthsold+=11; }
        daysold = thisDay + 31 - day;
    }
    
    if (yearsold <= 0) 
	return 0;	

    return yearsold;
}

function isMonth(month)
{   
	if(month < 1 || month > 12)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isDay(day)
{   
	if(day < 1 || day > 31)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function daysInFeb (year)
{   
	return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) )) ? 29 : 28 ); 
}

function daysInMonth(n) 
{
    var val = 31;
	if (n==4 || n==6 || n==9 || n==11) {val = 30}
	if (n==2) {val = 29} 
	
   return parseInt(val);
}

function isDate (day, month, year)
{  
	if ( isDay(day) == false || isMonth(month) == false) 
		return false;
		
	var intYear = parseInt(year);
	var intMonth = parseInt(month);
	var intDay = parseInt(day);

	if (intDay > daysInMonth(intMonth)) return false;

	if ((intMonth == 2) && (intDay > daysInFeb(intYear))) return false;

	return true;
}
