function isLeapYear(year){
	var div4 = year % 4;
	var div100 = year % 100;
	var div400 = year % 400;
	var flagLeapyear;

	if( div4 == 0 && div100 != 0) flagLeapYear = true;
	else if(div100 == 0 && div400 == 0) flagLeapYear = true;
	else flagLeapYear = false;

	return flagLeapYear;
}

function getMonthDays(month, year){
	var maxdays;
	if(month == 2){
		if(isLeapYear(year)) maxdays = 29;
		else maxdays = 28;
	}
	else{
		if(month == 4 || month == 6 || month == 9 || month == 11) maxdays = 30;
		else maxdays = 31;
	}

	return maxdays;
}

<!-- THIS FILE IS USED FOR DATE VALIDATIONS -->
function validateDate(strDate, fieldName, flagCheckNull, dateFormat){
	if(flagCheckNull){
		if(strDate == ""){
			alert("Please enter " + fieldName);
			return false;
		}
	}
	else{
		if(strDate == "") return true;
	}

	switch(dateFormat){
		case "DDMMYY":
			if(strDate.length != 6){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					alert(fieldName + " - Please enter digits only");
					return;
				}
			}

			var strday = strDate.substr(0, 2);
			var day = parseInt(strday, 10);

			var strmonth = strDate.substr(2, 2);
			var month = parseInt(strmonth, 10);

			var stryear = strDate.substr(4, 2);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;

		case "DD/MM/YY":
			if(strDate.length != 8){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if(i == 2 || i == 5){
					if(digit != "/"){
						alert(fieldName + " - Illegal character entered");
						return;
					}
				}
				else{
					if( digit < "0" || digit > "9"){
						alert(fieldName + " - Please enter digits only");
						return;
					}
				}
			}

			var strmonth = strDate.substr(3, 2);
			var month = parseInt(strmonth, 10);

			var strday = strDate.substr(0, 2);
			var day = parseInt(strday, 10);

			var stryear = strDate.substr(6, 2);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;

			break;

		case "DD/MM/YYYY":
			if(strDate.length != 10){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if(i == 2 || i == 5){
					if(digit != "/"){
						alert(fieldName + " - Illegal character entered");
						return;
					}
				}
				else{
					if( digit < "0" || digit > "9"){
						alert(fieldName + " - Please enter digits only");
						return;
					}
				}
			}

			var strmonth = strDate.substr(3, 2);
			var month = parseInt(strmonth, 10);

			var strday = strDate.substr(0, 2);
			var day = parseInt(strday, 10);

			var stryear = strDate.substr(6, 4);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;

			break;

		case "DDMMYYYY":
			if(strDate.length != 8){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					alert(fieldName + " - Please enter digits only");
					return;
				}
			}

			var strday = strDate.substr(0, 2);
			var day = parseInt(strday, 10);

			var strmonth = strDate.substr(2, 2);
			var month = parseInt(strmonth, 10);

			var stryear = strDate.substr(4, 4);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;

		case "MM/DD/YY":
			if(strDate.length != 8){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if(i == 2 || i == 5){
					if(digit != "/"){
						alert(fieldName + " - Illegal character entered");
						return;
					}
				}
				else{
					if( digit < "0" || digit > "9"){
						alert(fieldName + " - Please enter digits only");
						return;
					}
				}
			}

			var strmonth = strDate.substr(0, 2);
			var month = parseInt(strmonth, 10);

			var strday = strDate.substr(3, 2);
			var day = parseInt(strday, 10);

			var stryear = strDate.substr(6, 2);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;

		case "MMDDYYYY":
			if(strDate.length != 8){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					alert(fieldName + " - Please enter digits only");
					return;
				}
			}

			var strmonth = strDate.substr(0, 2);
			var month = parseInt(strmonth, 10);

			var strday = strDate.substr(2, 2);
			var day = parseInt(strday, 10);

			var stryear = strDate.substr(4, 4);
			var year = parseInt(stryear, 10);
			break;

		
		case "MMYY":
			if(strDate.length != 4){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);				
				if( digit < "0" || digit > "9"){
					alert(fieldName + " - Please enter digits only");
					return;
				}
				
			}

			var strmonth = strDate.substr(0, 2);
			var month = parseInt(strmonth, 10);

			var stryear = strDate.substr(3, 2);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;
		
		default:
			if(strDate.length != 6){
				alert(fieldName + " - Please enter in " + dateFormat + " only");
				return false;
			}

			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					alert(fieldName + " - Please enter digits only");
					return;
				}
			}

			var strmonth = strDate.substr(0, 2);
			var month = parseInt(strmonth, 10);

			var strday = strDate.substr(2, 2);
			var day = parseInt(strday, 10);

			var stryear = strDate.substr(4, 2);
			var year = parseInt(stryear, 10);

			var today = new Date();
			var tempYYstr = String(today.getFullYear());
			var tempYY = parseInt(tempYYstr.substr(tempYYstr.length - 2), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;
	}

	if(month < 1 || month > 12){
		alert(fieldName + " - Please enter month between 1 and 12");
		return false;
	}

	var monthDays = getMonthDays(month, year);
	if(day < 1){
		alert(fieldName + " - Days can not be less than 1");
		return false;
	}
	else if(day > monthDays){
		alert(fieldName + " - There are not more than " + monthDays + " days in this month");
		return false;
	}

	return true;
}

<!-- END -->