﻿// JScript File

function validateDate(DateValue, objSpan, objHidSpan, flagCheckNull, dateFormat){
	
	//alert(" javascript called ")
	
	//alert(DateValue);
	strDate = DateValue;
	
	if(strDate == "")
	{
		//alert(" Null ")		
		objSpn = document.getElementById(objSpan);
		objSpn.innerHTML = "Please Enter Date";
		objSpn.style.display = "inline";
		
		objHdSpn = document.getElementById(objHidSpan);		
		objHdSpn.style.display = "none";
	 return false; 
	}
	else
	{
		objSpn = document.getElementById(objSpan);
		objSpn.innerHTML = "";
		objSpn.style.display = "none";
		
		objHdSpn = document.getElementById(objHidSpan);		
		objHdSpn.style.display = "none";
	}
		
	if(flagCheckNull){
		if(strDate == ""){
			//alert(" Textbox null...");
			return false;
		}
	}
	else{
		if(strDate == "") return true;
	}

	switch(dateFormat){
		case "DD/MM/YYYY":
		  
			if(strDate.length != 10){
				
				objSpn = document.getElementById(objSpan);
				objSpn.innerHTML = "Enter Date in 'DD/MM/YYYY' Format";
				objSpn.style.display = "inline";
				
				objHdSpn = document.getElementById(objHidSpan);		
				objHdSpn.style.display = "none";
				return false;
			}
			else
			{
				
				objSpn = document.getElementById(objSpan);
				objSpn.innerHTML = "";
				objSpn.style.display = "none";
				
				objHdSpn = document.getElementById(objHidSpan);		
				objHdSpn.style.display = "none";
				
			}

			/*for(var i = 0; i < strDate.length; i++){
				digit = strDate.substring(i, i+1);
				if( digit < "0" || digit > "9" ){
					alert("Enter digits only 3 ");
					return;
				}
			} */
			
			//alert(" strDate " + strDate);
			//alert(strDate.charAt(2));
			if(strDate.charAt(2) != '/' || strDate.charAt(5) != '/') 
			{
				
				objSpn = document.getElementById(objSpan);
				objSpn.innerHTML = "Enter date in 'DD/MM/YYYY' format";
				objSpn.style.display = "inline";
				
				objHdSpn = document.getElementById(objHidSpan);		
				objHdSpn.style.display = "none";
				return false;
			}
			else
			{
				
				objSpn = document.getElementById(objSpan);
				objSpn.innerHTML = "";
				objSpn.style.display = "none";
				
				objHdSpn = document.getElementById(objHidSpan);		
				objHdSpn.style.display = "none";
			}
			
			var datearr= new Array(3)
			
			var strday1 = strDate.substr(0, 2);
			datearr[0]=strday1;
			
			var strmonth1 = strDate.substr(3, 2);
			datearr[1]=strmonth1;
			
			var stryear1 = strDate.substr(6, 4);
			datearr[2]=stryear1;
			
			
			var numRegExp;
			var numTest= new Array(3);
			for(i=0;i<3;i++)
			{
			numRegExp = new RegExp("^[0-9]+[0-9]*$");
			numTest[i] = numRegExp.test(datearr[i]);
			//numTest[i] = numRegExp.test(datearr[i]);
			//alert(datearr[i])
			}
			
						
			if(numTest[0] == false || numTest[1] == false || numTest[2] == false )
					{
						
						objSpn = document.getElementById(objSpan);
						objSpn.innerHTML = "Enter date in 'DD/MM/YYYY' format";
						objSpn.style.display = "inline";
						
						objHdSpn = document.getElementById(objHidSpan);		
						objHdSpn.style.display = "none";
						return false;
					}
						
			
			
			var strday = strDate.substr(0, 2);
			var day = parseInt(strday, 10);
			
			var strmonth = strDate.substr(3, 2);
			var month = parseInt(strmonth, 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 - 4), 10);
			var curr_century = today.getFullYear() - tempYY;
			year = year + curr_century;
			break;
	
	}

	if(month < 1 || month > 12){
		//alert(" Enter Month Between 1 and 12");
		
		objSpn = document.getElementById(objSpan);
		objSpn.innerHTML = "Enter month between 1 and 12";
		objSpn.style.display = "inline";
		
		objHdSpn = document.getElementById(objHidSpan);		
		objHdSpn.style.display = "none";
		
		return false;
	}

	var monthDays = getMonthDays(month, year);
	if(day < 1){
		//alert(" Days can not be less than 1");
		
		objSpn = document.getElementById(objSpan);
		objSpn.innerHTML = "Days can not be less than 1";
		objSpn.style.display = "inline";
		
		objHdSpn = document.getElementById(objHidSpan);		
		objHdSpn.style.display = "none";
		return false;
	}
	else if(day > monthDays){
		//alert(" There are not more than " + monthDays + " days in this month");
		
		objSpn = document.getElementById(objSpan);
		objSpn.innerHTML = "There are not more than " + monthDays + " days in this month";
		objSpn.style.display = "inline";
		
		objHdSpn = document.getElementById(objHidSpan);		
		objHdSpn.style.display = "none";
		return false;
	}
	
	return true;
}

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;
}

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 ltrim(str)
{
	while(str.length > 0){
		if(str.substr(0, 1) == " ")
			str = str.substr(1);
		else break;
	}

	return str;
}

function rtrim(str)
{
	while(str.length > 0){
		if(str.substr(str.length - 1, 1) == " ")
			str = str.substr(0, str.length - 1);
		else break;
	}

	return str;
}

function trim(str)
{
	return rtrim(ltrim(str));
}

