phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] property/dateformat.js, 1.1.1.3


From: nomail
Subject: [Phpgroupware-cvs] property/dateformat.js, 1.1.1.3
Date: Fri, 21 May 2004 16:27:14 -0000

Update of /property
Modified Files:
        Branch: 
          dateformat.js

date: 2004/04/23 21:26:33;  author: sigurdne;  state: Exp;  lines: +528 -528

Log Message:
no message
=====================================================================
Index: property/dateformat.js
diff -u property/dateformat.js:1.1.1.2 property/dateformat.js:1.1.1.3
--- property/dateformat.js:1.1.1.2      Fri Apr 23 20:27:13 2004
+++ property/dateformat.js      Fri Apr 23 21:26:33 2004
@@ -1,528 +1,528 @@
-//Copyright (C) 2002,2003 Richard Gorremans
-//This library is free software; you can redistribute it and/or
-//modify it under the terms of the GNU Lesser General Public
-//License as published by the Free Software Foundation; either
-//version 2.1 of the License, or (at your option) any later version.
-
-//This library is distributed in the hope that it will be useful,
-//but WITHOUT ANY WARRANTY; without even the implied warranty of
-//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//Lesser General Public License for more details.
-
-//You should have received a copy of the GNU Lesser General Public
-//License along with this library; if not, write to the Free Software
-//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-<!-- Original: Richard Gorremans (address@hidden) -->
-<!-- Updates: www.spiritwolfx.com -->
-<!-- Begin
-
-// Check browser version
-var isNav4 = false, isNav5 = false, isIE4 = false
-var strSeperator = "/";
-// If you are using any Java validation on the back side you will want to use 
the / because
-// Java date validations do not recognize the dash as a valid date separator.
-
-var vDateType = 3; // Global value for type of date format
-//                1 = mm/dd/yyyy
-//                2 = yyyy/dd/mm  (Unable to do date check at this time)
-//                3 = dd/mm/yyyy
-
-var vYearType = 4; //Set to 2 or 4 for number of digits in the year for 
Netscape
-var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 
digits for the year before validating.
-
-var err = 0; // Set the error code to a default of zero
-
-
-if(navigator.appName == "Netscape")
-{
-   if (navigator.appVersion < "5")
-   {
-      isNav4 = true;
-      isNav5 = false;
-       }
-   else
-   if (navigator.appVersion > "4")
-   {
-      isNav4 = false;
-      isNav5 = true;
-       }
-}
-else
-{
-   isIE4 = true;
-}
-
-
-function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)  {
-
-vDateType = dateType;
-mDateValue = vDateValue;
-
-
-// vDateName = object name
-// vDateValue = value in the field being checked
-// e = event
-// dateCheck
-//       True  = Verify that the vDateValue is a valid date
-//       False = Format values being entered into vDateValue only
-// vDateType
-//       1 = mm/dd/yyyy
-//       2 = yyyy/mm/dd
-//       3 = dd/mm/yyyy
-
-
-   //Enter a tilde sign for the first number and you can check the variable 
information.
-   if (vDateValue == "~")
-   {
-      alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = 
"+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = 
"+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
-      vDateName.value = "";
-      vDateName.focus();
-      return true;
-   }
-
-   var whichCode = (window.Event) ? e.which : e.keyCode;
-
-   // Check to see if a seperator is already present.
-   // bypass the date if a seperator is present and the length greater than 8
-   if (vDateValue.length > 8 && isNav4)
-   {
-      if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
-         return true;
-   }
-
-   //Eliminate all the ASCII codes that are not valid
-   var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
-   if (alphaCheck.indexOf(vDateValue) >= 1)
-   {
-      if (isNav4)
-      {
-         vDateName.value = "";
-         vDateName.focus();
-         vDateName.select();
-         return false;
-      }
-      else
-      {
-         vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
-         return false;
-      }
-   }
-   if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no 
value
-      return false;
-   else
-   {
-      //Create numeric string values for 0123456789/
-      //The codes provided include both keyboard and keypad values
-
-      var strCheck = 
'47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
-      if (strCheck.indexOf(whichCode) != -1)
-      {
-         if (isNav4)
-         {
-            if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 
7 && dateCheck)) && (vDateValue.length >=1))
-            {
-               alert("Invalid Date\nPlease Re-Enter");
-               vDateName.value = "";
-               vDateName.focus();
-               vDateName.select();
-               return false;
-            }
-            if (vDateValue.length == 6 && dateCheck)
-            {
-               var mDay = vDateName.value.substr(2,2);
-               var mMonth = vDateName.value.substr(0,2);
-               var mYear = vDateName.value.substr(4,4)
-
-               //Turn a two digit year into a 4 digit year
-               if (mYear.length == 2 && vYearType == 4)
-               {
-                  var mToday = new Date();
-
-                  //If the year is greater than 30 years from now use 19, 
otherwise use 20
-                  var checkYear = mToday.getFullYear() + 30;
-                  var mCheckYear = '20' + mYear;
-                  if (mCheckYear >= checkYear)
-                     mYear = '19' + mYear;
-                  else
-                     mYear = '20' + mYear;
-               }
-               var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-
-               if (!dateValid(vDateValueCheck))
-               {
-                  alert("Invalid Date\nPlease Re-Enter");
-                  vDateName.value = "";
-                  vDateName.focus();
-                  vDateName.select();
-                  return false;
-                        }
-               vDateName.value = vDateValueCheck;
-               return true;
-
-            }
-            else
-            {
-               // Reformat the date for validation and set date type to a 1
-
-
-               if (vDateValue.length >= 8  && dateCheck)
-               {
-                  if (vDateType == 1) // mmddyyyy
-                  {
-                     var mDay = vDateName.value.substr(2,2);
-                     var mMonth = vDateName.value.substr(0,2);
-                     var mYear = vDateName.value.substr(4,4)
-                     vDateName.value = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-                  }
-                  if (vDateType == 2) // yyyymmdd
-                  {
-                     var mYear = vDateName.value.substr(0,4)
-                     var mMonth = vDateName.value.substr(4,2);
-                     var mDay = vDateName.value.substr(6,2);
-                     vDateName.value = 
mYear+strSeperator+mMonth+strSeperator+mDay;
-                  }
-                  if (vDateType == 3) // ddmmyyyy
-                  {
-                     var mMonth = vDateName.value.substr(2,2);
-                     var mDay = vDateName.value.substr(0,2);
-                     var mYear = vDateName.value.substr(4,4)
-                     vDateName.value = 
mDay+strSeperator+mMonth+strSeperator+mYear;
-                  }
-
-                  //Create a temporary variable for storing the DateType and 
change
-                  //the DateType to a 1 for validation.
-
-                  var vDateTypeTemp = vDateType;
-                  vDateType = 1;
-                  var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-
-                  if (!dateValid(vDateValueCheck))
-                  {
-                     alert("Invalid Date\nPlease Re-Enter");
-                     vDateType = vDateTypeTemp;
-                     vDateName.value = "";
-                     vDateName.focus();
-                     vDateName.select();
-                     return false;
-                           }
-                     vDateType = vDateTypeTemp;
-                     return true;
-                   }
-               else
-               {
-                  if (((vDateValue.length < 8 && dateCheck) || 
(vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
-                  {
-                     alert("Invalid Date\nPlease Re-Enter");
-                     vDateName.value = "";
-                     vDateName.focus();
-                     vDateName.select();
-                     return false;
-                  }
-               }
-            }
-         }
-         else
-         {
-         // Non isNav Check
-            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 
9 && dateCheck)) && (vDateValue.length >=1))
-            {
-               alert("Invalid Date\nPlease Re-Enter");
-               vDateName.value = "";
-               vDateName.focus();
-               return true;
-            }
-
-            // Reformat date to format that can be validated. mm/dd/yyyy
-
-
-            if (vDateValue.length >= 8 && dateCheck)
-            {
-
-               // Additional date formats can be entered here and parsed out to
-               // a valid date format that the validation routine will 
recognize.
-
-               if (vDateType == 1) // mm/dd/yyyy
-               {
-                  var mMonth = vDateName.value.substr(0,2);
-                  var mDay = vDateName.value.substr(3,2);
-                  var mYear = vDateName.value.substr(6,4)
-               }
-               if (vDateType == 2) // yyyy/mm/dd
-               {
-                  var mYear = vDateName.value.substr(0,4)
-                  var mMonth = vDateName.value.substr(5,2);
-                  var mDay = vDateName.value.substr(8,2);
-               }
-               if (vDateType == 3) // dd/mm/yyyy
-               {
-                  var mDay = vDateName.value.substr(0,2);
-                  var mMonth = vDateName.value.substr(3,2);
-                  var mYear = vDateName.value.substr(6,4)
-               }
-               if (vYearLength == 4)
-               {
-                  if (mYear.length < 4)
-                  {
-                     alert("Invalid Date\nPlease Re-Enter");
-                     vDateName.value = "";
-                     vDateName.focus();
-                     return true;
-                  }
-               }
-
-               // Create temp. variable for storing the current vDateType
-               var vDateTypeTemp = vDateType;
-
-               // Change vDateType to a 1 for standard date format for 
validation
-               // Type will be changed back when validation is completed.
-               vDateType = 1;
-
-               // Store reformatted date to new variable for validation.
-               var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-
-               if (mYear.length == 2 && vYearType == 4 && dateCheck)
-               {
-
-                  //Turn a two digit year into a 4 digit year
-                  var mToday = new Date();
-
-                  //If the year is greater than 30 years from now use 19, 
otherwise use 20
-                  var checkYear = mToday.getFullYear() + 30;
-                  var mCheckYear = '20' + mYear;
-                  if (mCheckYear >= checkYear)
-                     mYear = '19' + mYear;
-                  else
-                     mYear = '20' + mYear;
-                  vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-
-                  // Store the new value back to the field.  This function will
-                  // not work with date type of 2 since the year is entered 
first.
-
-                  if (vDateTypeTemp == 1) // mm/dd/yyyy
-                     vDateName.value = 
mMonth+strSeperator+mDay+strSeperator+mYear;
-                  if (vDateTypeTemp == 3) // dd/mm/yyyy
-                     vDateName.value = 
mDay+strSeperator+mMonth+strSeperator+mYear;
-
-               }
-
-
-               if (!dateValid(vDateValueCheck))
-               {
-                  alert("Invalid Date\nPlease Re-Enter");
-                  vDateType = vDateTypeTemp;
-                  vDateName.value = "";
-                  vDateName.focus();
-                  return true;
-                        }
-               vDateType = vDateTypeTemp;
-               return true;
-
-            }
-            else
-            {
-
-               if (vDateType == 1)
-               {
-                  if (vDateValue.length == 2)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-                  if (vDateValue.length == 5)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-               }
-               if (vDateType == 2)
-               {
-                  if (vDateValue.length == 4)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-                  if (vDateValue.length == 7)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-               }
-               if (vDateType == 3)
-               {
-                  if (vDateValue.length == 2)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-                  if (vDateValue.length == 5)
-                  {
-                     vDateName.value = vDateValue+strSeperator;
-                  }
-               }
-               return true;
-            }
-         }
-         if (vDateValue.length == 10   && dateCheck)
-         {
-            if (!dateValid(vDateName))
-            {
-// Un-comment the next line of code for debugging the dateValid() function 
error messages
-//               alert(err);
-               alert("Invalid Date\nPlease Re-Enter");
-               vDateName.focus();
-               vDateName.select();
-                }
-         }
-         return false;
-      }
-      else
-      {
-         // If the value is not in the string return the string minus the last
-         // key entered.
-         if (isNav4)
-         {
-            vDateName.value = "";
-            vDateName.focus();
-            vDateName.select();
-            return false;
-         }
-         else
-         {
-            vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
-            return false;
-         }
-               }
-       }
-}
-
-
-   function dateValid(objName) {
-      var strDate;
-      var strDateArray;
-      var strDay;
-      var strMonth;
-      var strYear;
-      var intday;
-      var intMonth;
-      var intYear;
-      var booFound = false;
-      var datefield = objName;
-      var strSeparatorArray = new Array("-"," ","/",".");
-      var intElementNr;
-      // var err = 0;
-      var strMonthArray = new Array(12);
-      strMonthArray[0] = "Jan";
-      strMonthArray[1] = "Feb";
-      strMonthArray[2] = "Mar";
-      strMonthArray[3] = "Apr";
-      strMonthArray[4] = "May";
-      strMonthArray[5] = "Jun";
-      strMonthArray[6] = "Jul";
-      strMonthArray[7] = "Aug";
-      strMonthArray[8] = "Sep";
-      strMonthArray[9] = "Oct";
-      strMonthArray[10] = "Nov";
-      strMonthArray[11] = "Dec";
-
-      //strDate = datefield.value;
-      strDate = objName;
-
-      if (strDate.length < 1) {
-         return true;
-      }
-      for (intElementNr = 0; intElementNr < strSeparatorArray.length; 
intElementNr++) {
-         if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1)
-         {
-            strDateArray = strDate.split(strSeparatorArray[intElementNr]);
-            if (strDateArray.length != 3)
-            {
-               err = 1;
-               return false;
-            }
-            else
-            {
-               strDay = strDateArray[0];
-               strMonth = strDateArray[1];
-               strYear = strDateArray[2];
-            }
-            booFound = true;
-         }
-      }
-      if (booFound == false) {
-         if (strDate.length>5) {
-            strDay = strDate.substr(0, 2);
-            strMonth = strDate.substr(2, 2);
-            strYear = strDate.substr(4);
-         }
-      }
-      //Adjustment for short years entered
-      if (strYear.length == 2) {
-         strYear = '20' + strYear;
-      }
-      strTemp = strDay;
-      strDay = strMonth;
-      strMonth = strTemp;
-      intday = parseInt(strDay, 10);
-      if (isNaN(intday)) {
-         err = 2;
-         return false;
-      }
-
-      intMonth = parseInt(strMonth, 10);
-      if (isNaN(intMonth)) {
-         for (i = 0;i<12;i++) {
-            if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
-               intMonth = i+1;
-               strMonth = strMonthArray[i];
-               i = 12;
-            }
-         }
-         if (isNaN(intMonth)) {
-            err = 3;
-            return false;
-         }
-      }
-      intYear = parseInt(strYear, 10);
-      if (isNaN(intYear)) {
-         err = 4;
-         return false;
-      }
-      if (intMonth>12 || intMonth<1) {
-         err = 5;
-         return false;
-      }
-      if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || 
intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 
1)) {
-         err = 6;
-         return false;
-      }
-      if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) 
&& (intday > 30 || intday < 1)) {
-         err = 7;
-         return false;
-      }
-      if (intMonth == 2) {
-         if (intday < 1) {
-            err = 8;
-            return false;
-         }
-         if (LeapYear(intYear) == true) {
-            if (intday > 29) {
-               err = 9;
-               return false;
-            }
-         }
-         else {
-            if (intday > 28) {
-               err = 10;
-               return false;
-            }
-         }
-      }
-         return true;
-      }
-
-   function LeapYear(intYear) {
-      if (intYear % 100 == 0) {
-         if (intYear % 400 == 0) { return true; }
-      }
-      else {
-         if ((intYear % 4) == 0) { return true; }
-      }
-         return false;
-      }
-//  End -->
+//Copyright (C) 2002,2003 Richard Gorremans
+//This library is free software; you can redistribute it and/or
+//modify it under the terms of the GNU Lesser General Public
+//License as published by the Free Software Foundation; either
+//version 2.1 of the License, or (at your option) any later version.
+
+//This library is distributed in the hope that it will be useful,
+//but WITHOUT ANY WARRANTY; without even the implied warranty of
+//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//Lesser General Public License for more details.
+
+//You should have received a copy of the GNU Lesser General Public
+//License along with this library; if not, write to the Free Software
+//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+<!-- Original: Richard Gorremans (address@hidden) -->
+<!-- Updates: www.spiritwolfx.com -->
+<!-- Begin
+
+// Check browser version
+var isNav4 = false, isNav5 = false, isIE4 = false
+var strSeperator = "/";
+// If you are using any Java validation on the back side you will want to use 
the / because
+// Java date validations do not recognize the dash as a valid date separator.
+
+var vDateType = 3; // Global value for type of date format
+//                1 = mm/dd/yyyy
+//                2 = yyyy/dd/mm  (Unable to do date check at this time)
+//                3 = dd/mm/yyyy
+
+var vYearType = 4; //Set to 2 or 4 for number of digits in the year for 
Netscape
+var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 
digits for the year before validating.
+
+var err = 0; // Set the error code to a default of zero
+
+
+if(navigator.appName == "Netscape")
+{
+   if (navigator.appVersion < "5")
+   {
+      isNav4 = true;
+      isNav5 = false;
+       }
+   else
+   if (navigator.appVersion > "4")
+   {
+      isNav4 = false;
+      isNav5 = true;
+       }
+}
+else
+{
+   isIE4 = true;
+}
+
+
+function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)  {
+
+vDateType = dateType;
+mDateValue = vDateValue;
+
+
+// vDateName = object name
+// vDateValue = value in the field being checked
+// e = event
+// dateCheck
+//       True  = Verify that the vDateValue is a valid date
+//       False = Format values being entered into vDateValue only
+// vDateType
+//       1 = mm/dd/yyyy
+//       2 = yyyy/mm/dd
+//       3 = dd/mm/yyyy
+
+
+   //Enter a tilde sign for the first number and you can check the variable 
information.
+   if (vDateValue == "~")
+   {
+      alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = 
"+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = 
"+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
+      vDateName.value = "";
+      vDateName.focus();
+      return true;
+   }
+
+   var whichCode = (window.Event) ? e.which : e.keyCode;
+
+   // Check to see if a seperator is already present.
+   // bypass the date if a seperator is present and the length greater than 8
+   if (vDateValue.length > 8 && isNav4)
+   {
+      if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
+         return true;
+   }
+
+   //Eliminate all the ASCII codes that are not valid
+   var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
+   if (alphaCheck.indexOf(vDateValue) >= 1)
+   {
+      if (isNav4)
+      {
+         vDateName.value = "";
+         vDateName.focus();
+         vDateName.select();
+         return false;
+      }
+      else
+      {
+         vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
+         return false;
+      }
+   }
+   if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no 
value
+      return false;
+   else
+   {
+      //Create numeric string values for 0123456789/
+      //The codes provided include both keyboard and keypad values
+
+      var strCheck = 
'47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
+      if (strCheck.indexOf(whichCode) != -1)
+      {
+         if (isNav4)
+         {
+            if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 
7 && dateCheck)) && (vDateValue.length >=1))
+            {
+               alert("Invalid Date\nPlease Re-Enter");
+               vDateName.value = "";
+               vDateName.focus();
+               vDateName.select();
+               return false;
+            }
+            if (vDateValue.length == 6 && dateCheck)
+            {
+               var mDay = vDateName.value.substr(2,2);
+               var mMonth = vDateName.value.substr(0,2);
+               var mYear = vDateName.value.substr(4,4)
+
+               //Turn a two digit year into a 4 digit year
+               if (mYear.length == 2 && vYearType == 4)
+               {
+                  var mToday = new Date();
+
+                  //If the year is greater than 30 years from now use 19, 
otherwise use 20
+                  var checkYear = mToday.getFullYear() + 30;
+                  var mCheckYear = '20' + mYear;
+                  if (mCheckYear >= checkYear)
+                     mYear = '19' + mYear;
+                  else
+                     mYear = '20' + mYear;
+               }
+               var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+
+               if (!dateValid(vDateValueCheck))
+               {
+                  alert("Invalid Date\nPlease Re-Enter");
+                  vDateName.value = "";
+                  vDateName.focus();
+                  vDateName.select();
+                  return false;
+                        }
+               vDateName.value = vDateValueCheck;
+               return true;
+
+            }
+            else
+            {
+               // Reformat the date for validation and set date type to a 1
+
+
+               if (vDateValue.length >= 8  && dateCheck)
+               {
+                  if (vDateType == 1) // mmddyyyy
+                  {
+                     var mDay = vDateName.value.substr(2,2);
+                     var mMonth = vDateName.value.substr(0,2);
+                     var mYear = vDateName.value.substr(4,4)
+                     vDateName.value = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+                  }
+                  if (vDateType == 2) // yyyymmdd
+                  {
+                     var mYear = vDateName.value.substr(0,4)
+                     var mMonth = vDateName.value.substr(4,2);
+                     var mDay = vDateName.value.substr(6,2);
+                     vDateName.value = 
mYear+strSeperator+mMonth+strSeperator+mDay;
+                  }
+                  if (vDateType == 3) // ddmmyyyy
+                  {
+                     var mMonth = vDateName.value.substr(2,2);
+                     var mDay = vDateName.value.substr(0,2);
+                     var mYear = vDateName.value.substr(4,4)
+                     vDateName.value = 
mDay+strSeperator+mMonth+strSeperator+mYear;
+                  }
+
+                  //Create a temporary variable for storing the DateType and 
change
+                  //the DateType to a 1 for validation.
+
+                  var vDateTypeTemp = vDateType;
+                  vDateType = 1;
+                  var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+
+                  if (!dateValid(vDateValueCheck))
+                  {
+                     alert("Invalid Date\nPlease Re-Enter");
+                     vDateType = vDateTypeTemp;
+                     vDateName.value = "";
+                     vDateName.focus();
+                     vDateName.select();
+                     return false;
+                           }
+                     vDateType = vDateTypeTemp;
+                     return true;
+                   }
+               else
+               {
+                  if (((vDateValue.length < 8 && dateCheck) || 
(vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
+                  {
+                     alert("Invalid Date\nPlease Re-Enter");
+                     vDateName.value = "";
+                     vDateName.focus();
+                     vDateName.select();
+                     return false;
+                  }
+               }
+            }
+         }
+         else
+         {
+         // Non isNav Check
+            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 
9 && dateCheck)) && (vDateValue.length >=1))
+            {
+               alert("Invalid Date\nPlease Re-Enter");
+               vDateName.value = "";
+               vDateName.focus();
+               return true;
+            }
+
+            // Reformat date to format that can be validated. mm/dd/yyyy
+
+
+            if (vDateValue.length >= 8 && dateCheck)
+            {
+
+               // Additional date formats can be entered here and parsed out to
+               // a valid date format that the validation routine will 
recognize.
+
+               if (vDateType == 1) // mm/dd/yyyy
+               {
+                  var mMonth = vDateName.value.substr(0,2);
+                  var mDay = vDateName.value.substr(3,2);
+                  var mYear = vDateName.value.substr(6,4)
+               }
+               if (vDateType == 2) // yyyy/mm/dd
+               {
+                  var mYear = vDateName.value.substr(0,4)
+                  var mMonth = vDateName.value.substr(5,2);
+                  var mDay = vDateName.value.substr(8,2);
+               }
+               if (vDateType == 3) // dd/mm/yyyy
+               {
+                  var mDay = vDateName.value.substr(0,2);
+                  var mMonth = vDateName.value.substr(3,2);
+                  var mYear = vDateName.value.substr(6,4)
+               }
+               if (vYearLength == 4)
+               {
+                  if (mYear.length < 4)
+                  {
+                     alert("Invalid Date\nPlease Re-Enter");
+                     vDateName.value = "";
+                     vDateName.focus();
+                     return true;
+                  }
+               }
+
+               // Create temp. variable for storing the current vDateType
+               var vDateTypeTemp = vDateType;
+
+               // Change vDateType to a 1 for standard date format for 
validation
+               // Type will be changed back when validation is completed.
+               vDateType = 1;
+
+               // Store reformatted date to new variable for validation.
+               var vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+
+               if (mYear.length == 2 && vYearType == 4 && dateCheck)
+               {
+
+                  //Turn a two digit year into a 4 digit year
+                  var mToday = new Date();
+
+                  //If the year is greater than 30 years from now use 19, 
otherwise use 20
+                  var checkYear = mToday.getFullYear() + 30;
+                  var mCheckYear = '20' + mYear;
+                  if (mCheckYear >= checkYear)
+                     mYear = '19' + mYear;
+                  else
+                     mYear = '20' + mYear;
+                  vDateValueCheck = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+
+                  // Store the new value back to the field.  This function will
+                  // not work with date type of 2 since the year is entered 
first.
+
+                  if (vDateTypeTemp == 1) // mm/dd/yyyy
+                     vDateName.value = 
mMonth+strSeperator+mDay+strSeperator+mYear;
+                  if (vDateTypeTemp == 3) // dd/mm/yyyy
+                     vDateName.value = 
mDay+strSeperator+mMonth+strSeperator+mYear;
+
+               }
+
+
+               if (!dateValid(vDateValueCheck))
+               {
+                  alert("Invalid Date\nPlease Re-Enter");
+                  vDateType = vDateTypeTemp;
+                  vDateName.value = "";
+                  vDateName.focus();
+                  return true;
+                        }
+               vDateType = vDateTypeTemp;
+               return true;
+
+            }
+            else
+            {
+
+               if (vDateType == 1)
+               {
+                  if (vDateValue.length == 2)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+                  if (vDateValue.length == 5)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+               }
+               if (vDateType == 2)
+               {
+                  if (vDateValue.length == 4)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+                  if (vDateValue.length == 7)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+               }
+               if (vDateType == 3)
+               {
+                  if (vDateValue.length == 2)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+                  if (vDateValue.length == 5)
+                  {
+                     vDateName.value = vDateValue+strSeperator;
+                  }
+               }
+               return true;
+            }
+         }
+         if (vDateValue.length == 10   && dateCheck)
+         {
+            if (!dateValid(vDateName))
+            {
+// Un-comment the next line of code for debugging the dateValid() function 
error messages
+//               alert(err);
+               alert("Invalid Date\nPlease Re-Enter");
+               vDateName.focus();
+               vDateName.select();
+                }
+         }
+         return false;
+      }
+      else
+      {
+         // If the value is not in the string return the string minus the last
+         // key entered.
+         if (isNav4)
+         {
+            vDateName.value = "";
+            vDateName.focus();
+            vDateName.select();
+            return false;
+         }
+         else
+         {
+            vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
+            return false;
+         }
+               }
+       }
+}
+
+
+   function dateValid(objName) {
+      var strDate;
+      var strDateArray;
+      var strDay;
+      var strMonth;
+      var strYear;
+      var intday;
+      var intMonth;
+      var intYear;
+      var booFound = false;
+      var datefield = objName;
+      var strSeparatorArray = new Array("-"," ","/",".");
+      var intElementNr;
+      // var err = 0;
+      var strMonthArray = new Array(12);
+      strMonthArray[0] = "Jan";
+      strMonthArray[1] = "Feb";
+      strMonthArray[2] = "Mar";
+      strMonthArray[3] = "Apr";
+      strMonthArray[4] = "May";
+      strMonthArray[5] = "Jun";
+      strMonthArray[6] = "Jul";
+      strMonthArray[7] = "Aug";
+      strMonthArray[8] = "Sep";
+      strMonthArray[9] = "Oct";
+      strMonthArray[10] = "Nov";
+      strMonthArray[11] = "Dec";
+
+      //strDate = datefield.value;
+      strDate = objName;
+
+      if (strDate.length < 1) {
+         return true;
+      }
+      for (intElementNr = 0; intElementNr < strSeparatorArray.length; 
intElementNr++) {
+         if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1)
+         {
+            strDateArray = strDate.split(strSeparatorArray[intElementNr]);
+            if (strDateArray.length != 3)
+            {
+               err = 1;
+               return false;
+            }
+            else
+            {
+               strDay = strDateArray[0];
+               strMonth = strDateArray[1];
+               strYear = strDateArray[2];
+            }
+            booFound = true;
+         }
+      }
+      if (booFound == false) {
+         if (strDate.length>5) {
+            strDay = strDate.substr(0, 2);
+            strMonth = strDate.substr(2, 2);
+            strYear = strDate.substr(4);
+         }
+      }
+      //Adjustment for short years entered
+      if (strYear.length == 2) {
+         strYear = '20' + strYear;
+      }
+      strTemp = strDay;
+      strDay = strMonth;
+      strMonth = strTemp;
+      intday = parseInt(strDay, 10);
+      if (isNaN(intday)) {
+         err = 2;
+         return false;
+      }
+
+      intMonth = parseInt(strMonth, 10);
+      if (isNaN(intMonth)) {
+         for (i = 0;i<12;i++) {
+            if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
+               intMonth = i+1;
+               strMonth = strMonthArray[i];
+               i = 12;
+            }
+         }
+         if (isNaN(intMonth)) {
+            err = 3;
+            return false;
+         }
+      }
+      intYear = parseInt(strYear, 10);
+      if (isNaN(intYear)) {
+         err = 4;
+         return false;
+      }
+      if (intMonth>12 || intMonth<1) {
+         err = 5;
+         return false;
+      }
+      if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || 
intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 
1)) {
+         err = 6;
+         return false;
+      }
+      if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) 
&& (intday > 30 || intday < 1)) {
+         err = 7;
+         return false;
+      }
+      if (intMonth == 2) {
+         if (intday < 1) {
+            err = 8;
+            return false;
+         }
+         if (LeapYear(intYear) == true) {
+            if (intday > 29) {
+               err = 9;
+               return false;
+            }
+         }
+         else {
+            if (intday > 28) {
+               err = 10;
+               return false;
+            }
+         }
+      }
+         return true;
+      }
+
+   function LeapYear(intYear) {
+      if (intYear % 100 == 0) {
+         if (intYear % 400 == 0) { return true; }
+      }
+      else {
+         if ((intYear % 4) == 0) { return true; }
+      }
+         return false;
+      }
+//  End -->




reply via email to

[Prev in Thread] Current Thread [Next in Thread]