
// Plantrol functions for the site
function LoginNow(x) {
LOGIN1 = x;
newWin.close();
	if (LOGIN1 == 1) {
		top.Body.location = "login.htm"		
	}
}
function LogOut() {
	Account = 0
	LOGIN1 = 0
	destination = ""
	alert("You have logged out.")
	GoToPage("")
}
function Loaded() {
	top.status ="Done!"
}
function GoToPage(link) {
	 if ( link.substr(0,12) == "plantrol_sql"  )  {
		top.location.href = link;
	} else {
		top.location.href =  link;
	}
}

function LoggedIn(link) {
//alert(Account + "    " + LOGIN1 + "      " + link)
	destination = link
	if (Account*1 == 0) { 
		//destination = link;
		newWin = window.open("askloggin.htm","newWin","height=275,width=256");
	} else { 
		top.Body.location =  destination;
	}
}

// Use this LoadUp when there is no table in the form
function LoadUp (frm) {
	Dirty=false
	var str="top.Body.list.document." + frm;
	var k= eval(str + ".elements.length");
	for (var f=0;f < k; ++f) {
		if (eval(str + ".elements[f].type") == "text" ) {
			fldName = eval(str + ".elements[f].name");
			optval = eval("top.Body.data." + fldName);
			if (optval=="0") {optval="";}
			eval("top.Body.list." + frm + "[fldName].value = optval")
			if (eval("top." + fldName) != undefined) {	
				fldName = fldName.toUpperCase();
				fldLength = eval(fldName + ".substr(1)");
				eval("top.Body.list.document." + frm + "." + fldName + ".maxLength=" + fldLength);
			}
		} 
		if (eval(str + ".elements[f].type") == "select-one" ) {
			fldName = eval(str + ".elements[f].name");
			optval = eval("top.Body.data." + fldName);
			//alert ("name = " + fldName + " optval = " + optval);
			optcount=eval("top.Body.list.document." + frm + "." + fldName + ".length");
			if (optval=="0") {
				eval("top.Body.list.document." + frm + "." + fldName + ".selectedIndex = '0'");
			} else {
				for (var v=0;v < optcount;++v) {
					//alert (eval("top.Body.list.document." + frm + "." + fldName + ".options[v].value"));
					if (eval("top.Body.list.document." + frm + "." + fldName + ".options[v].value")==optval) {
						eval("top.Body.list.document." + frm + "." + fldName + ".selectedIndex = '" + v + "'");
					}
				}
			}
		}		
	}
}

function LoadGrid(frm){
	var NL = top.Body.data.HOLD.lines.value;
	var itemsper = top.Body.list.itemsper;
	var page = NL/itemsper;
	var totpages = Math.round(page);
	Dirty=false
	if (totpages < page ) {
   	     ++totpages
    }
	top.Body.data.HOLD.totpage.value = totpages;
	pageno = top.Body.data.HOLD.pageno.value;
	
	if (pageno>totpages) {
		top.Body.data.HOLD.pageno.value = 1;
		pageno = 1;
	}	
	if ( pageno==totpages) {
      top.Body.list.document.all.Buttons.style.visibility = "hidden";
	  top.Body.list.document.all.Button2.style.visibility = "visible";
	}
    if ( pageno > 1 && pageno < totpages) {
      top.Body.list.document.all.Buttons.style.visibility = "visible";
      top.Body.list.document.all.Button2.style.visibility = "visible";
	 }
	if ( pageno==1) {
      top.Body.list.document.all.Buttons.style.visibility = "visible";
	  top.Body.list.document.all.Button2.style.visibility = "hidden";
	}
    if (totpages == 1 || NL == 0) {
      top.Body.list.document.all.Buttons.style.visibility = "hidden";
	  top.Body.list.document.all.Button2.style.visibility = "hidden";
    }
	var str="top.Body.list.document." + frm;
	var k= eval(str + ".elements.length");
	if (eval("top.Body.list.linesperitem") == undefined) {
		for (var i=0; i < itemsper; ++i) {
			if (NL - ((itemsper*(pageno - 1) + i)) > 0) {
				eval ("top.Body.list.document.all.ROW" + (i+1) + ".style.visibility = 'visible'");
			} else {
				eval ("top.Body.list.document.all.ROW" + (i+1) + ".style.visibility = 'hidden'");
			}
		}
	} else {
		var linesperitem=top.Body.list.linesperitem;
		for (var j=0; j< linesperitem; ++j) {
			for (var i=0; i < itemsper; ++i) {
				if (NL - ((itemsper*(pageno - 1) + i)) > 0) {
					eval ("top.Body.list.document.all.ROW" + (i+1) + (j+1) + ".style.visibility = 'visible'");
				} else {
					eval ("top.Body.list.document.all.ROW" + (i+1) + (j+1) + ".style.visibility = 'hidden'");
				}
			}
		}
	}

	for (var f=0;f < k; ++f) {
		if (eval(str + ".elements[f].type") == "text" ) {
			fldName = eval(str + ".elements[f].name");
			//alert('fldName=' + fldName)
			NameLen = eval(str + ".elements[f].name.length")
			LEN = (NameLen * 1) - 2
			last2 =  eval(str + ".elements[f].name.substring(" + LEN + "," + NameLen + ")")
			optval = "";
			if (isNaN(last2 * 1)) {
				optval = eval("top.Body.data." + fldName);
			} else {
				if (f < ((NL - (itemsper*(pageno - 1))) * (k/itemsper))) {
					Name = eval("fldName" + ".substring(0," + LEN + ")");		
					var element =(last2*1 -1)+ ((pageno -1)*itemsper);
					optval = eval("top.Body.data." + Name + "[element]");
				}	
			}
			eval("top.Body.list." + frm + "[fldName].value = optval");
	     }
	     
		if (eval(str + ".elements[f].type") == "select-one" ) {
			//alert( eval(str + ".elements[f].type"));
			fldName = eval(str + ".elements[f].name");
			//alert('fldName=' + fldName)
			NameLen = eval(str + ".elements[f].name.length")
			//alert('NameLen=' + NameLen)
			LEN = (NameLen * 1) - 2
			last2 =  eval(str + ".elements[f].name.substring(" + LEN + "," + NameLen + ")")
			optval = "";
			if (isNaN(last2 * 1)) {
				optval = eval("top.Body.data." + fldName);
			} else {
				if (f < ((NL - (itemsper*(pageno - 1))) * (k/itemsper))) {
					Name = eval("fldName" + ".substring(0," + LEN + ")");		
					var element =(last2*1 -1)+ ((pageno -1)*itemsper);
					optval = eval("top.Body.data." + Name + "[element]");
				}	
			}
			//alert ("name = " + fldName + " optval = " + optval);
			
			optcount=eval("top.Body.list.document." + frm + "." + fldName + ".length");
			if (optval=="0") {
				eval("top.Body.list.document." + frm + "." + fldName + ".selectedIndex = '0'");
			} else {
				for (var v=0;v < optcount;++v) {
					//alert (eval("top.Body.list.document." + frm + "." + fldName + ".options[v].value"));
					if (eval("top.Body.list.document." + frm + "." + fldName + ".options[v].value")==optval) {
						eval("top.Body.list.document." + frm + "." + fldName + ".selectedIndex = '" + v + "'");
					}
				}
			}
		}	     
	     
	     
	     
	     
	     	
    } 
	top.Body.data.HOLD.pageno.value = (pageno * 1) + 1 ;			
	RECORDS();
}

function Backwards(frm) {
   newpage = top.Body.data.HOLD.pageno.value;
   top.Body.data.HOLD.pageno.value = (newpage * 1) - 2
	LoadGrid(frm);
}

function Forwards(frm) {
	LoadGrid(frm);
}			
			
function BuildList(valu,desc,servicevalue) {
	var arraycount = eval("top.Body.data." + valu + ".length");
	var servval = eval("top.Body.data." + servicevalue);
	for (var i=0; i < arraycount; ++i) {
	   optval = eval("top.Body.data." + valu + "[" + i + "]");
	   optdesc = eval("top.Body.data." + desc + "[" + i + "]");
	   if ( optval == servval) {
			top.Body.list.document.writeln("<option value=" + optval + " selected>" + optdesc + "</option>")
	   } else {
			top.Body.list.document.writeln("<option value=" + optval + ">" + optdesc + "</option>")
	   }
	}   	
}

function BuildList2(valu,desc,servicevalue) {
	var arraycount = eval("top.Body.data2." + valu + ".length");
	var servval = eval("top.Body.data." + servicevalue);
	for (var i=0; i < arraycount; ++i) {
	   optval = eval("top.Body.data2." + valu + "[" + i + "]");
	   optdesc = eval("top.Body.data2." + desc + "[" + i + "]");
	   if ( optval == servval) {
			top.Body.list.document.writeln("<option value=" + optval + " selected>" + optdesc + "</option>")
	   } else {
			top.Body.list.document.writeln("<option value=" + optval + ">" + optdesc + "</option>")
	   }
	}   	
}

function RECORDS() { 
	var NL = top.Body.data.HOLD.lines.value;
	var items =(top.Body.data.HOLD.pageno.value * 1) -2;
	var itemsper = top.Body.list.itemsper;
	
	var from = (items * itemsper) + 1;
	var to = (items * itemsper) + itemsper;
	if (to > (NL * 1)) {
		 to = NL;
	}
	if (from > to) {
		top.Body.list.document.RECORDS.rt.value="";
	} else {
		top.Body.list.document.RECORDS.rt.value="Records " + from + " - " + to + " of " + NL;
	}
}

function RequiredFields(frm) {
	var str="top.Body.list.document." + frm;
	var k= eval(str + ".elements.length");
	var errmsg = "";
	var firstmissing = -1
	for (var I = 0; I < k; I++) {
		//alert (eval(str + ".elements[I].type"));
		if (eval(str + ".elements[I].type") != "button" ) {
			if (eval(str + ".elements[I].className") == "req") {
				if (eval(str + ".elements[I].value") == ""  || eval(str + ".elements[I].value") == 0) {
		 			errmsg += "\rYou MUST enter ";
		 			errmsg += eval(str + ".elements[I].name");
		 			if (firstmissing==-1) {firstmissing=I;}
		 		}
			}
		}
	}
    if (errmsg != "") {alert (errmsg);}
	return firstmissing;
}

function SetDirty(xname,formname) {
	fldValue = eval("top.Body.list.document." + formname + "." + xname + ".value");
	fldName = xname.toUpperCase();
	//fldType = eval(fldName + ".substr(0,1)")
	savValue = eval("top.Body.data." + xname)
	if (savValue != fldValue) {
		/*if (fldType =="2") {
			if (isNaN(fldValue)) {
				alert ("Input Invalid");
				eval("top.Body.list.document." + formname + "." + xname + ".focus()")
				eval("top.Body.list.document." + formname + "." + xname + ".select()");
			} else { */
				eval("top.Body.data." + xname + " = top.Body.list.document." + formname + "." + xname + ".value");
				Dirty=true
			//}
		} else {
			eval("top.Body.data." + xname + " = top.Body.list.document." + formname + "." + xname + ".value");
			Dirty=true
		//}
	}
}

function GridSetDirty(field,formname){
	var fldName=field.name;
	var itemsper=0;
	itemsper=top.Body.list.itemsper
	var xname="";
	var len=fldName.length;
	var last2 = fldName.substr(len-2,2)*1;
	xname=fldName.substr(0,len-2);
	savValue = eval("top.Body.data." + xname + "[" + position + "]")
	fldType = eval(xname + ".substr(0,1)")
	fldValue = field.value
	var arraysec = ((top.Body.data.HOLD.pageno.value * 1 - 2) * itemsper)
	var position = (last2 - 1) + (arraysec * 1)
	
	if (savValue != fldValue) {
		if (fldType =="2") {
			if (isNaN(fldValue)) {
				alert ("Input Invalid");
				eval("top.Body.list.document." + formname + "." + fldName + ".focus()")
				eval("top.Body.list.document." + formname + "." + fldName + ".select()");
			} else {
				eval("top.Body.data." + xname + "[" + position + "] = '" + field.value + "'");
				Dirty=true
				eval("top.Body.data.RowDirty[" + position + "] = true");
			}
		} else {
			eval("top.Body.data." + xname + "[" + position + "] = '" + field.value + "'");
			Dirty=true
			eval("top.Body.data.RowDirty[" + position + "] = true");
		}
	}		
}



function DropDirty(name,formname) { 
	//x = eval("top.Body.list.document." + formname + "." + name + ".selectedIndex");
	//eval("top.Body.data." + cth +" = top.Body.data." + name + "[x]");
	eval("top.Body.data." + name +" = top.Body.list." + formname + "." + name + ".value");
	Dirty=true	
}

function currency(anynum) {
   //-- Returns passed number as string in $xxx,xxx.xx format.
   anynum=eval(anynum)
   workNum=Math.abs((Math.round(anynum*100)/100));workStr=""+workNum
   if (workStr.indexOf(".")==-1){workStr+=".00"}
   dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
   pStr=workStr.substr(workStr.indexOf("."))
   while (pStr.length<3){pStr+="0"}
  //--- Adds comma in thousands place.
  if (dNum>=1000) {
	 dLen=dStr.length
	 dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen)
  }
  //-- Adds comma in millions place.
  if (dNum>=1000000) {
	 dLen=dStr.length
	 dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen)
  }
  retval = dStr + pStr 
  //-- Put numbers in parentheses if negative.
  if (anynum<0) {retval="("+retval+")"}
  return retval 
}

// 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;
   
// 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 = '13,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))
            {
               DateError();
               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))  
               {
                  DateError();
                  vDateName.value = "";
                  vDateName.focus();
                  vDateName.select();
                  return false;
		         }
               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))  
                  {
                     DateError();
                     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))
                  {
                     DateError();
                     vDateName.value = "";
                     vDateName.focus();
                     vDateName.select();
                     return false;
                  }
               }
            }
         }
         else  
         {
         // Non isNav Check
            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
            {
               DateError();
               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)
                  {
                     DateError();
                     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))  
               {
                  DateError();
                  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);  
               DateError();
               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;
      }
      
   function DateError () {
	alert("Invalid Date\nPlease type the Date in the form MM/DD/YYYY\nUse Leading Zeros when needed.\nSlashes are automatic\nPlease Re-Enter");
   }
