function fn_isDate(field)
{
	var checkstr = "0123456789";
	var DateField = field;
	var DateValue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	
	
	//arr_ret = new Array()
	
	DateValue = DateField.value;
	
	arr_ret = fn_splitvalue(DateValue,"/")
	
	if (arr_ret.length == 3)
		{
			month = arr_ret[0]
			day = arr_ret[1]
			year = arr_ret[2]
			
			if (arr_ret[0].length < 2)
				month = "0"+ month
			
			if (arr_ret[1].length < 2)	
				day = "0"+day
			
			if (arr_ret[2].length == 2)
				year = "20"+year
			
			if (isNaN(month) || isNaN(day) || isNaN(year))	
				err = 18;
		}	
	else
		err = 17;
			
	if (err == 0) 
		DateValue = month + day + year;

   /* Delete all chars except 0..9 */

   /*for (i = 0; i < DateValue.length; i++) 
	{
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) 
			{
				 DateTemp = DateTemp + DateValue.substr(i,1);
			}	
	}*/
	
   //DateValue = DateTemp;
   
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   
   
   if (DateValue.length == 6) 
	{
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
     }
     
	if (DateValue.length != 8) 
		{
			err = 19;
		}
      
   /* year is wrong if year = 0000 */
   
   year = DateValue.substr(4,4);
   
   if (year == 0) 
	{
      err = 20;
	}
	
   /* Validation of month*/
   month = DateValue.substring(0,2);
   
   if ((month < 1) || (month > 12)) 
	{
      err = 21;
	}
	
   
   /* Validation of day*/
   day = DateValue.substr(2,2);
   if (day < 1) 
	{
		 err = 22;
	}
   
   
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) 
	{
      leap = 1;
	}
	
   if ((month == 2) && (leap == 1) && (day > 29)) 
	{
	   err = 23;
	}
	
   if ((month == 2) && (leap != 1) && (day > 28)) 
	{
      err = 24;
	}
   /* Validation of other months */
   
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
	 {
      err = 25;
	}
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
	{
		 err = 26;
	}
   /* if 00 ist entered, no error, deleting the entry */
   
   if ((day == 0) && (month == 0) && (year == 00)) 
	{
      err = 0; day = ""; month = ""; year = ""; seperator = "";
	}
	
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   
   if (err == 0) 
	{
      DateField.value = month + seperator + day + seperator + year;
	}
	
   /* Error-message if err != 0 */
   
   else 
	{
      alert("Date is incorrect!");
      DateField.select();
	  DateField.focus();
   }
   
}



function fn_splitvalue(Str,Criteria)
{
 
 if (!(Criteria)) 
	 Criteria = "!~#@";
	 
	var arr_ret;
	arr_ret = new Array();
	i=0;
	track=0;
	
	if((track=Str.search(Criteria))== -1)
		{
			arr_ret[i]=Str; 
			return arr_ret;
		} 
    
//else do processing     

   while (Str.length > 0)
		{ 
		    track=Str.search(Criteria);
		 	if (track == -1)
				{
					arr_ret[i] = Str;
					return arr_ret;
				}
				
				temp_val = Str.substr(0,track)
				if (temp_val.length == 0)
					temp_val = " "   // To avoid error occurence if in case blank is passed in the string 
				arr_ret[i]= temp_val	
				temp = Str.substr(track+(Criteria.length-1)+1,Str.length);
				Str=temp;
				i++;	
		}
   return arr_ret;   
   
  }  // end fn_splitvalue(Str,Criteria)
