.. ho provato a modificare questo ma non credo faccio nel modo giusto:

codice:
function check_date(DateForm, day, month, year)
	{	
	 //alert("day="+day +"-month="+month+"-year="+year)
	
		if (day < 1 || day > 31) 	
			{alert("Day must be between 1 and 31.")
			 return false;
			}
		else{return true}
		
		if (month < 1 || month > 12) 
			{ alert("Month must be between 1 and 12")
			  return false; 
			}
		else{return true}
		
		if (month == 2) // check for february 29th		
			{var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
				if (day>29 || (day==29 && !isleap)) 	
					{alert("February " + year + " doesn't have " + day + " days!")}
			 return false; 
			}
		else{return true}
		
		if (month==4 && day==31 || month==6 && day==31 || month==9 && day==31 || month==11 && day==31)
			{alert ("Month "+month+" doesn't have 31 days")
			return false; }
		else{return true}	
	
	}
codice:
function FormatDate(Form)
	{
	 var data= new Date()
	 var current_year = data.getFullYear()
	 
	 var datelength=Form.value.length;
	 var date = Form.value;
	 var path = /^.$/;
	
	 var match_caracter = date.match(path)
	 // if (match_caracter! null={
		 // var temp = testo.replace(path, 
		 // ;}
		 
	 var datePat = 	/^(\d{1,2})(\/|-|\\|_|\.)(\d{1,2})(\/|-|\\|_|\.)(\d{2,4})$/;   	//reg exp
	 var datePat2=  /^(\d{1,2})(\/|-|\\|_|\.)(\d{1,2})$/;							//reg exp
	 
     var matchArray = date.match(datePat);
	 var matchArray1= date.match(datePat2);
		//alert("matchArray="+matchArray)
		//alert("matchArray1="+matchArray1)
		
		if(matchArray == null && matchArray1== null) 	// select type of input
			//{alert("choose case")
			{ choose_case(Form)
			 return
			};
			
			if (matchArray1 != null)
			{ 	day = matchArray1[1];  		// parse date into variables
				  if (day.length==1)
					{day="0"+day; } //alert("day="+day)  //add 0 to day
				month = matchArray1[3];				 
				  if (month.length==1)  
					{month="0"+month;} //alert("month="+month) //add 0 to month
				year = current_year;	//	alert("year="+year)
				 check_date(Form, day, month, year);
				 if (true){
					Form.value = day +"/"+ month +"/"+year;}
				else
					{Form.value = ""}
			} .......ecc
non so bene come si fa a dirgli di ritornare TRUE e come gli si fa controllare se è TRUE/FALSE..