<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="MSHTML 5.00.3314.2100" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I had the same question as you, but could not find 
an existing Javascript that would mask a date field while being typed, so I had 
to write my own.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>If you can use this, please do. </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Date 
Masking&lt;/TITLE&gt;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&lt;SCRIPT 
LANGUAGE="JavaScript"&gt;<BR>&lt;!--</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>////////////////////////////////////////////////////<BR><A 
href="file://Globally">//Globally</A> defined -- you could move these around 
//<BR><A href="file://to">//to</A> each function to make the code more 
modular&nbsp; 
//<BR>////////////////////////////////////////////////////</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>var dtFormat = "MM/DD/YYYY";<BR>var sepChar = 
'/';<BR>var fullDateMask = /^[01][0-9]\/[0-3][0-9]\/[2][0-9][0-9][0-9]/;<BR>var 
lastKeyStrokeVal;<BR>var currMask;<BR>var monthVal;<BR>var dayVal;<BR>var 
yearVal;<BR>var autoFillVal = '=';<BR>var day1Val;<BR>var day2Val;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>//////////////////////////////////////////////////////////<BR>// 
returnCurrentDate() : return the current system date //<BR>// in MM/DD/YYYY 
format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>//////////////////////////////////////////////////////////<BR>function 
returnCurrentDate()<BR>{<BR>&nbsp;&nbsp; d = new Date();<BR>&nbsp;&nbsp; m = 
parseInt(d.getMonth())+1;<BR>&nbsp;&nbsp; if (m &lt; 10)<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = '0' + m;<BR>&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp; return(m + sepChar + d.getDate() + sepChar + 
d.getYear());<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>////////////////////////////////////////////////////////////<BR>// 
scrutinizeKeyVal() : apply mask to the keystroke value //<BR>// when each 
keystroke is 
typed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>////////////////////////////////////////////////////////////<BR>function 
scrutinizeKeyVal(obj)<BR>{<BR>&nbsp;&nbsp; 
////////////////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; 
// If using IE, the "String.fromCharCode(window.event.keyCode)"&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // will return the key value pressed. For Netscape, the 
"which"&nbsp;&nbsp; //<BR>&nbsp;&nbsp; // keyword will return the keyvalue. NOT 
TESTED WITH NETSCAPE YET //<BR>&nbsp;&nbsp; 
////////////////////////////////////////////////////////////////////</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; var length = 
parseInt(obj.value.length);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; lastKeyStrokeVal = 
String.fromCharCode(window.event.keyCode); // IE Only<BR>&nbsp;&nbsp; if 
(lastKeyStrokeVal == autoFillVal)<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj.value = 
returnCurrentDate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
/////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // The 
date format is mm/dd/yyyy and leading zeros are // <BR>&nbsp;&nbsp; // required 
in the Months and Days 
fields&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; 
/////////////////////////////////////////////////////////</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; 
/////////////////////////////////////////////<BR>&nbsp;&nbsp; // FIRST CHARACTER 
TYPED - month field&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; // The first char 
typed should be a 0 or 1 //<BR>&nbsp;&nbsp; 
/////////////////////////////////////////////<BR>&nbsp;&nbsp; if (length == 
0)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[0-1]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (!compareValue(lastKeyStrokeVal, 
currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // 
SECOND CHARACTER TYPED - month 
field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // if first char is 1, second char may only be 0,1,2 
//<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////<BR>&nbsp;&nbsp; if 
(length == 1)&nbsp; <BR>&nbsp;&nbsp; {&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; if 
(obj.value.charAt(length -1) == 1)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = /^[0-2]/; <A 
href="file://months">//months</A> 10,11,12<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = /^[1-9]/; <A 
href="file://months">//months</A> 01-09<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (!compareValue(lastKeyStrokeVal, 
currMask))&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
//////////////////////////////////<BR>&nbsp;&nbsp;&nbsp;&nbsp; // capture the 
month value and&nbsp; //<BR>&nbsp;&nbsp;&nbsp;&nbsp; // Autofill the first 
delimiter //<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
//////////////////////////////////<BR>&nbsp;&nbsp;&nbsp;&nbsp; monthVal = 
obj.value + lastKeyStrokeVal;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; return 
1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
////////////////////////////////////////////<BR>&nbsp;&nbsp; // THE THIRD OR 
SIXTH CHARACTER TYPED&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; // This 
character should be the delimiter //<BR>&nbsp;&nbsp; // char for the date format 
"MM/DD/YYYY"&nbsp; //<BR>&nbsp;&nbsp; 
////////////////////////////////////////////<BR>&nbsp;&nbsp; if ((length == 2) 
|| (length == 5))&nbsp; <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
currMask = /^\//;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
(!compareValue(lastKeyStrokeVal, currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // THE 
FOURTH CHARACTER TYPED - day 
field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // The fourth char typed should be a 
number...0,1,2,3//<BR>&nbsp;&nbsp; // We can't check for leap year yet because 
we don't //<BR>&nbsp;&nbsp; // have the year value yet. This will need to 
be&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; // done after the date field is 
populated...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////<BR>&nbsp;&nbsp; if 
(length == 3)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
currMask = /^[0-3]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if 
(!compareValue(lastKeyStrokeVal, currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; day1Val = 
lastKeyStrokeVal;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
//////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // 
THE FIFTH CHARACTER TYPED - day 
field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // The fifth char typed should be a 
number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // if first char is 0, second char may only be 
1-9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; // if first char is 1 or 2, 
second char may only be 0-9 //<BR>&nbsp;&nbsp; // if first char is 3, second 
char may only be 0-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp; 
//////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; if 
(length == 4)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
if (day1Val == 0)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[1-9]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; else if 
((day1Val == 1) || (day1Val == 2))<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[0-9]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; else if 
(day1Val == 3)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[0-1]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
else<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return -1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; if 
(!compareValue(lastKeyStrokeVal, currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; day2Val = 
lastKeyStrokeVal;<BR>&nbsp;&nbsp;&nbsp;&nbsp; return 1;<BR>&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp; 
//////////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; 
// THE SEVENTH CHARACTER TYPED - year 
field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>&nbsp;&nbsp; // Safe to assume this character is going to be a 1 or 2... 
//<BR>&nbsp;&nbsp; 
//////////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; 
if (length == 6)&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[1-2]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!compareValue(lastKeyStrokeVal, 
currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // 
THE EIGHTH, NINTH, TENTH CHARACTER TYPED - year field //<BR>&nbsp;&nbsp; 
///////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; if 
((length == 7) || (length == 8) || (length == 9))&nbsp;&nbsp; <BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; currMask = 
/^[0-9]/;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!compareValue(lastKeyStrokeVal, 
currMask))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; } <BR>&nbsp;&nbsp; 
/////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; // 
Finally, do a mask check for the date val so far... //<BR>&nbsp;&nbsp; 
/////////////////////////////////////////////////////////<BR>&nbsp;&nbsp; if 
(compareValue(lastKeyStrokeVal, currMask)) <BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
-1;<BR>&nbsp;&nbsp; }<BR>} <A href="file://end">//end</A> 
scrutinizeKeyVal()</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>//////////////////////////////////////////////////////////<BR>// 
processKeyPress(): Check the value of each keystroke //<BR>// as they are 
typed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>//////////////////////////////////////////////////////////<BR>function 
processKeyPress(obj) <BR>{<BR>&nbsp;&nbsp; var retVal = 
scrutinizeKeyVal(obj);<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; if (retVal == -1) // 
scrutinizeKeyVal returned false: Key value does not match mask 
//<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
false;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; else if (retVal == 0) // 
scrutinizeKeyVal returned true: Key value does match mask //<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp; else if (retVal == 1) // scrutinizeKeyVal encountered 
delimiter character //<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//////////////////////////////////////////////////////<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
// This will cancel the current keypress event and&nbsp; 
//<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // force the separator char to be appended 
in field //<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//////////////////////////////////////////////////////<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
obj.value = obj.value + lastKeyStrokeVal + 
sepChar;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp; }<BR>} 
<A href="file://end">//end</A> processKeyPress()</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>////////////////////////////////////////////////////////<BR>// 
isValidDate(): Determines if a date value is valid //<BR>// Uses the date format 
"MM/DD/YYYY"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>////////////////////////////////////////////////////////<BR>function 
isValidDate(obj)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>{<BR>&nbsp;&nbsp; var s 
= new String;<BR>&nbsp;&nbsp; s = obj.value;<BR>&nbsp;&nbsp; monthVal = 
s.charAt(0) + s.charAt(1);<BR>&nbsp;&nbsp; dayVal = s.charAt(3) + 
s.charAt(4);<BR>&nbsp;&nbsp; yearVal = s.charAt(6) + s.charAt(7) + s.charAt(8) + 
s.charAt(9);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; if (parseInt(dayVal) &gt; 
parseInt(daysInMonth(monthVal)))<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("bad 
date");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
obj.focus();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
obj.select();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp; return true;<BR>}&nbsp; <A href="file://end">//end</A> 
isValidDate()</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>/////////////////////////////////////////////<BR>// daysInMonth(): 
Determines the number of //<BR>// allowable days in a 
month.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>/////////////////////////////////////////////<BR>function 
daysInMonth(charMonth)<BR>{<BR>&nbsp;&nbsp; if ((charMonth == "01") || 
(charMonth == "03") || (charMonth == "05") 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || (charMonth == "07") || (charMonth == 
"08") || (charMonth == "10") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || 
(charMonth == "12"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 31;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; if (charMonth == "02")<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
(isLeapYear(yearVal))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
29;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 28;<BR>&nbsp;&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp; if ((charMonth == "04") || (charMonth 
== "06") || (charMonth == "09") <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || 
(charMonth == "11"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
30;<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>//////////////////////////////////////////////<BR>// isLeapYear(): 
Determines if year is leap 
//<BR>//////////////////////////////////////////////<BR>function 
isLeapYear(intYear) <BR>{<BR>&nbsp;&nbsp; if ((intYear % 100 == 0) &amp;&amp; 
(intYear % 400 == 0))<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
true; <BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; else <BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((intYear % 4) == 0) 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp;&nbsp; 
}<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>////////////////////////////////////////////////////<BR>// clearFields(): 
Clears/resets all fields on the //<BR>// form to whatever you 
want&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>////////////////////////////////////////////////////<BR>function 
clearFields()<BR>{<BR>&nbsp;&nbsp; DateField.value = "";<BR>&nbsp;&nbsp; 
DateField.focus();<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>//////////////////////////////////////////////////<BR>// 
compareValue(): Compares a value to its mask //<BR>// (both args are passed 
in)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>//////////////////////////////////////////////////<BR>function 
compareValue(cmpVal, mask)<BR>{<BR>&nbsp; if(!cmpVal.match(mask))<BR>&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }<BR>&nbsp; else<BR>&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp; return true;<BR>&nbsp; }<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2><BR>/////////////////////////////////////////////////////////<BR>// 
validateForm() : Validates the form when the Submit //<BR>// button is 
pressed.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
//<BR>/////////////////////////////////////////////////////////<BR>function 
validateForm(obj)<BR>{<BR>&nbsp;&nbsp; if ((compareValue(DateField.value, 
fullDateMask)) &amp;&amp; isValidDate(obj))<BR>&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("Good date");<BR>&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
alert("Bad date");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
DateField.focus();<BR>&nbsp;&nbsp; }<BR>}</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><BR>// --&gt;<BR>&lt;/SCRIPT&gt;</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&lt;/HEAD&gt;<BR>&lt;BODY BGCOLOR="white" 
TEXT="#000000" LINK="#993366" VLINK="#660066" ALINK="#FF99FF" 
onLoad="clearFields();"&gt;<BR>&lt;CENTER&gt;<BR>&lt;H1&gt;Date Mask 
Example&lt;/H1&gt;&lt;BR&gt;<BR>It's somewhat rigid, but the following date 
field only will accept the mask "MM/DD/YYYY"&lt;BR&gt;<BR>Also, use the '=' char 
to automatically fill in the current date&lt;BR&gt;<BR>&lt;INPUT TYPE="TEXT" 
SIZE=11 MAXLENGTH=10 NAME="DateField" onKeyPress="return processKeyPress(this);" 
onFocus="self.status='Date Format is ' + dtFormat;" onBlur="self.status=' ';" 
onChange="return isValidDate(this);"&gt;<BR>&lt;BR&gt;<BR>&lt;INPUT 
TYPE="Button" NAME="btn_submit" VALUE="Test" 
onClick="validateForm(DateField);"&gt;<BR>&lt;/CENTER&gt;<BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;<BR></FONT></DIV></BODY></HTML>