//Function to logically validate date 
function validateDate(cDate){
	var fromDay, fromMonth, fromYear, fromDate;
	var toDay, toMonth, toYear, toDate;
	var currentDate;
	//Construct From date
	fromMonth =  document.getElementById("fromMonth").value
	fromDay	=  document.getElementById("fromDay").value
	fromYear =  document.getElementById("fromYear").value
	var temp1 = fromMonth+"/"+fromDay+"/"+fromYear;
	//Construct To date
	toMonth =  document.getElementById("toMonth").value
	toDay	=  document.getElementById("toDay").value
	toYear =  document.getElementById("toYear").value
	var temp2 = toMonth+"/"+toDay+"/"+toYear;
	fromDate = new Date(temp1);
	toDate = new Date(temp2);
	currentDate = new Date(cDate);	// This is the server date returned by the php date() method.
	
	// Check  Selected From date and To date validity 
	if(isValidDate(temp1) == false){
		alert('Invalid Start Date. Please change and re-submit. ');		
		return false;		
	}
	else if(isValidDate(temp2) == false){
		alert('Invalid End Date. Please change and re-submit. ');
		return false;
	}
	else if(fromDate > currentDate){ //If it is a valid date check logical validity of From date and To date
		alert('Your selected start date cannot be later than today. Please change and resubmit. ')
		return false;
	}
	else if (toDate > currentDate){
		alert('The selected End Date is later than today. Please ensure it is earlier than today. ')
		return false;
	}
	else if (fromDate > toDate){
		alert('The selected Start Date is earlier than the selected End Date. Please check and resubmit. ')
		return false;
	}
	else{
	document.getElementById('dateFrom').submit();
	}
return false;
}
//To validate selected date
function isValidDate(date_string) {
    var days = [0,31,28,31,30,31,30,31,31,30,31,30,31];
    var year, month, day, date_parts = null;
    var rtrn = false;
	format='mm/dd/yyyy';		
    var decisionTree = { // This can be used to validate date aganist any permissible date format
        'mm/dd/yyyy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/,
            'month': 1,'day': 2, year: 3
        }        
    };
    var test = decisionTree[format];
    if (test) {
        date_parts = date_string.match(test.re);
        if (date_parts) {
            year = date_parts[test.year];
            month = date_parts[test.month];
            day = date_parts[test.day];

            test = (month == 2 && isLeapYear() && 29 || days[month] || 0);
            rtrn = 1 <= day && day <= test;
        }
    }

    function isLeapYear() {
        return (year % 4 != 0 ? false : 
            ( year % 100 != 0? true: 
            ( year % 1000 != 0? false : true)));
    }
    return rtrn;
}