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, objError){
	if(flagCheckNull){
		if(strDate == ""){
			if(!objError) {
				alert("Please enter " + fieldName);
				return false;
			}
			else {
				objError.style.display = "inline";
				objError.innerHTML = "Please enter " + fieldName;
				return false;
			}
		}
		else if(objError){
			objError.style.display = "none";
		}
	}
	else{
		if(strDate == "") return true;
	}

	switch(dateFormat){
		case "DDMMYY":
			if(strDate.length != 6){
				if(!objError) {
					alert(fieldName + " - Please enter in " + dateFormat + " only");
					return false;
				}
				else {
					objError.style.display = "inline";
					objError.innerHTML = fieldName + " - Please enter in " + dateFormat + " only";
					//alert(fieldName + " - Please enter in " + dateFormat + " only");
					return false;
				}
			}
			else if(objError){
				objError.style.display = "none";
			}
			for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					if(!objError) {
						alert(fieldName + " - Please enter digits only");
						return;
					}
					else {
						objError.style.display = "inline";
						objError.innerHTML = fieldName + " - Please enter digits only";
						//alert(fieldName + " - Please enter digits only");
						return;
					}
				}
				else if(objError){
					objError.style.display = "none";
				}
			}

			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;

		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){
		if(!objError) {
			alert(fieldName + " - Please enter month between 1 and 12");
			return false;
		}
		else {
			objError.style.display = "inline";
			objError.innerHTML = fieldName + " - Please enter month between 1 and 12";
			return false;
		}
	}
	else if(objError){
		objError.style.display = "none";
	}

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

	return true;
}

<!-- END -->