﻿ function ValidateDate(txtDate)
    {
        var CurrentValue = txtDate.value ;
        var NewChar =  String.fromCharCode(window.event.keyCode);
    	var NewValue = CurrentValue + NewChar;
    	
        if(IsValidDateInput(NewValue))
        {
	        if((NewValue.length == 2)&&(NewValue.substring(1,2)!='/'))
	        {					
		        NewValue = NewValue + '/';
	        }
	        else if((NewValue.length == 5)&&(NewValue.substring(4,5)!='/'))
	        {					
		        NewValue = NewValue + '/';
	        }
	        
	        if(((NewValue.substring(0,2)/1)>29)&&(NewValue.substring(3,5)=='02'))
	        {
		        NewValue = "29" + NewValue.substring(2,10);				
	        }
	        
	        if((NewValue.substring(0,2)== '31')&&((NewValue.substring(3,5)=='04') 
	            || (NewValue.substring(3,5)=='06') 
	            || (NewValue.substring(3,5)=='09') 
	            || (NewValue.substring(3,5)=='11')))
	        {
		        NewValue = "30" + NewValue.substring(2,10);					
	        }
	        
	        if((NewValue.length == 10)&&((NewValue.substring(6,10)%4)!=0)
	        &&((NewValue.substring(0,2)/1)>28)&&(NewValue.substring(3,5)=='02'))
	        {
		        NewValue.value = "28" + NewValue.substring(2,10);						
	        }
	        
            txtDate.value = NewValue;
            
            return false;
            
        }
        else
        {
            return false;
        }
	        
    }
    
    function IsValidDateInput(newText)
    {
        if(
	        (newText.length == 0)||
	        ((newText.length == 1)&&(newText.search(/[^0-3]/) < 0))||
	        ((newText.length == 2)&&(newText.substring(0,1).search(/[^0-3]/) < 0)&&(newText.substring(1,2) == '/'))||
	        ((newText.length == 2)&&(newText.substring(0,1).search(/[^1-2]/) < 0)&&(newText.substring(1,2).search(/[^0-9]/) < 0))||
	        ((newText.length == 2)&&(newText.substring(0,1) == '0')&&(newText.substring(1,2).search(/[^1-9]/) < 0))||
	        ((newText.length == 2)&&(newText.substring(0,1) == '3')&&(newText.substring(1,2).search(/[^0-1]/) < 0))||
	        ((newText.length == 3)&&(newText.substring(2,3)== '/')&&(newText.substring(0,2)/1>=1)&&(newText.substring(0,2)/1<=31))||
	        ((newText.length == 3)&&(newText.substring(1,2)== '/')&&(newText.substring(0,1).search(/[^0-3]/) < 0)&&(newText.substring(0,1).search(/[^0-1]/) < 0))||
	        ((newText.length == 4)&&(newText.substring(2,3)== '/')&&(newText.substring(0,2)/1>=1)&&(newText.substring(0,2)/1<=31)&&(newText.substring(3,4).search(/[^0-1]/) < 0))||
	        ((newText.length == 4)&&(newText.substring(1,2)== '/')&&(newText.substring(0,1).search(/[^0-3]/) < 0)&&(newText.substring(2,4)/1>=1)&&(newText.substring(2,4)/1<=12))||
	        ((newText.length == 5)&&(newText.substring(2,3)== '/')&&(newText.substring(0,2)/1>=1)&&(newText.substring(0,2)/1<=31)&&(newText.substring(3,5)/1>=1)&&(newText.substring(3,5)/1<=12))||
	        ((newText.length >= 5)&&(newText.length <= 9)&&(newText.substring(2,3)== '/')&&(newText.substring(4,5)== '/')&&(newText.substring(0,2)/1>=1)&&(newText.substring(0,2)/1<=31)&&(newText.substring(3,4).search(/[^0-1]/) < 0))||
	        ((newText.length >= 5)&&(newText.length <= 9)&&(newText.substring(1,2)== '/')&&(newText.substring(4,5)== '/')&&(newText.substring(0,1).search(/[^0-3]/) < 0)&&(newText.substring(2,4)/1>=1)&&(newText.substring(2,4)/1<=12))||
	        ((newText.length >= 5)&&(newText.length <= 10)&&(newText.substring(2,3)== '/')&&(newText.substring(5,6)== '/')&&(newText.substring(0,2)/1>=1)&&(newText.substring(0,2)/1<=31)&&(newText.substring(3,5)/1>=1)&&(newText.substring(3,5)/1<=12))
	        ){
	        if(newText.substring(5,6)=='/'){
		        for (var i = 6; i < newText.length; i++) {
			        if (newText.substring(i,i+1).search(/[^0-9]/) != -1){
				        return false;
			        }
		        }
		        if((newText.length == 10)&&(newText.substring(6,10)/1 == 0)){
			        return false;
		        }
	        }
	        if(newText.substring(4,5)=='/'){
		        for (var i = 5; i < newText.length; i++) {
			        if (newText.substring(i,i+1).search(/[^0-9]/) != -1){
				        return false;
			        }
		        }
		        if((newText.length == 9)&&(newText.substring(5,9)/1 == 0)){
			        return false;
		        }
	        }
	        return true;
        }
        else{
	        return false;
        }
    }
