   var today = new Date();
   var ThisDay = today.getDate();
   var ThisMonth = today.getMonth();
   var ThisYear = today.getFullYear();
   var iThisDay =Number(ThisDay);
   var iThisMonth =Number(ThisMonth);
   var iThisYear=Number(ThisYear);
   var lDate = new Date();


var lCheckDate = new Date();
var sThisYear = lDate.getFullYear();
var sThisMonth = lDate.getMonth();
var sThisDay = lDate.getDate();
var ErrMsg = "Invalid date format, please use the format of YYYY-MM-DD (Year-Month-Day), ex. 2006-01-11.  \n\n  Please note; use 01 for January or 09 for the ninth day. The zero is required.";
var ErrBGColor = "#ff0000";
var NormBGColor = "#ffffff";
var FocusColor = "#ccffff";
var datematch = /[0-9]/; //only numbers
  
//set some defaults
var DateFormat = "YMD";  //MDY or DMY
var iYear = 0;
var iMonth = 1;
var iDay = 2;

//how long should the date be
var iDateLen = 10;
//how many array elements for the date
var iDateArrLen = 3;
//how is the date formated, what splits the dates, a - or / or .
var sDateDelimiters   = "-";

///////////////////////////////////////
function pdstg(MinDefaultPasswordSz)
{
	


 	if (document.getElementById('chkusefailedlogin').checked == true){
 		if (document.getElementById('failedloginattlen').value == ''){
			alert ('Please select the minimum failed logins before an account is locked!');
			document.getElementById('failedloginattlen').focus();
			return;
		}
	}


 		if (document.getElementById('chgfreq').value == ''){
			if (! confirm("Click OK and the user will never be required to change thier password. \n\n Click Cancel to go back and set a change password frequncy.")) {
			document.getElementById('chgfreq').focus();
			return;
			}
		}

 		if (document.getElementById('minlen').value == '') {
 			if (! confirm("Click OK and we will set a minimum length of " + MinDefaultPasswordSz + "\n\n Click Cancel to go back and set your own minimum length.")) {
			document.getElementById('minlen').selectedIndex = (MinDefaultPasswordSz-3);
			document.getElementById('minlen').focus();
			return;
			}
		}	
	
	
	
 	if (document.getElementById('chkreqnum').checked == true){
 		if (document.getElementById('numberlen').value == ''){
			alert ('Please select the minimum quantity for numbers in a password!');
			document.getElementById('numberlen').focus();
			return;
		}
	}

 	if (document.getElementById('chkpwdhist').checked == true){
 		if (document.getElementById('passhistlen').value == ''){
			alert ('Please select the minimum quantity for remembered passwords!');
			document.getElementById('passhistlen').focus();
			return;
		}
	}


 	if (document.getElementById('chkreqlett').checked == true){
 		if (document.getElementById('lettlen').value == ''){
			alert ('Please select the minimum quantity for letters in a password!');
			document.getElementById('lettlen').focus();
			return;
		}
	}

	
 	if (document.getElementById('chkrequplett').checked == true){
 		if (document.getElementById('lettuplen').value == ''){
			alert ('Please select the minimum quantity for upper case letters in a password!');
			document.getElementById('lettuplen').focus();
			return;
		}
	}

 	if (document.getElementById('chkreqspec').checked == true){
 		if (document.getElementById('speclen').value == ''){
			alert ('Please select the minimum quntity of special characters in a password!');
			document.getElementById('speclen').focus();
			return;
		}
	}
 
 document.getElementById('action').value = 'update';
 
 lpfrm.submit();
 //alert ('submit form.');
 
}

///////////////////////////////////////
function pdstgrs(form)
{
	for (var i = 0; i < form.elements.length; i++ ) {
  	
  	if (form.elements[i].type == 'checkbox') {
    	form.elements[i].checked = false;
		}
		
		if (form.elements[i].type == 'radio') {
		}
		if (form.elements[i].type=='select-multiple') {
			form.elements[i].selectedIndex=0;
		}
		if (form.elements[i].type=='select-one') {
			form.elements[i].selectedIndex=0;
		}


  }

	document.getElementById('minlen').selectedIndex=1;

}


///////////////////////////////////////
//search
function FetchIt()
{
  var serch = document.getElementById("serch");
  if (serch.value == "")
  {
  	document.getElementById("serch").focus();
  	return;
  }

  fetchit.submit();
}


///////////////////////////////////////
function TextAreaLength(strlen, lrgtxtarea, txtlbl)
{
 
 var txtarea = document.getElementById(lrgtxtarea).value;
 var txtarealabel = document.getElementById(txtlbl);
 
 var remainingchars = (strlen - txtarea.length);
 if (remainingchars <= -1) { remainingchars = "0"}
 
 txtarealabel.innerHTML = "Max Characters " + strlen + "<br> ( remaining " + remainingchars + " ) ";
 if (txtarea.length >= strlen)
 {
   document.getElementById(lrgtxtarea).value = txtarea.substr(0,strlen);
 }
 
 
}

///////////////////////////////////////
function AddDay(objid, sInDay)
{
   var iInDay =Number(sInDay);
   var counter;
   counter=0;

  for ( var i = 1; i < 32; i++)
   {
     dayindex=(i);
     addOption(document.getElementById(objid),i,dayindex);
   }

   if (sInDay != "")
     {
	document.getElementById(objid).selectedIndex=(iInDay-1);
     }
     else
     {
	document.getElementById(objid).selectedIndex=(iThisDay-1);
     }
   

}
///////////////////////////////////////
function AddMonth(objid, sInMonth)
{

  var lngMonths = new makeArray("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec");
  var iInMonth = Number(sInMonth);
   var counter;
   counter=0;

  for ( var i = 0; i < 12; i++)
   {
     monthindex=(i+1);
     addOption(document.getElementById(objid),lngMonths[i],monthindex);
   }

   if (sInMonth != "")
     {
	document.getElementById(objid).selectedIndex=(iInMonth-1);
     }
     else
     {
	document.getElementById(objid).selectedIndex=iThisMonth;
     }
   

}
///////////////////////////////////////
function AddYear(objid, sInYear)
{
   var iYearId = "-1";
   var iInYear = Number(sInYear);
   var counter=0;
   
   
  for ( var i = 2005; i < (iThisYear+1); i++)  //2005
   {

     addOption(document.getElementById(objid),i,i);
     
     if (i == iInYear)
     {
     	iYearId = counter;
     }
     ++counter;
   }
   
//alert(iYearId);
//alert(counter);
    if (iYearId != "-1")
     {
	document.getElementById(objid).selectedIndex=iYearId;
     }
     else
     {
	document.getElementById(objid).selectedIndex=counter-1;
     }

   
}
///////////////////////////////////////
//Create an array
function makeArray()
{
  var args = makeArray.arguments;

  for ( var i = 0; i < args.length; i++)
  {
    this[i] = args[i];
  }
  this.length = args.length;
}
///////////////////////////////////////
//loads array list box
function addOption(selectObject,optionText,optionValue)
{
  var optionObject = new Option(optionText,optionValue)
  var optionRank = selectObject.options.length
  selectObject.options[optionRank]=optionObject
}


///////////////////////////////////////
function SetFocusColor(sCtlNme)
{
  if ( sCtlNme.style.backgroundColor != ErrBGColor)
  {
    sCtlNme.style.backgroundColor = FocusColor;
  }
  
}
///////////////////////////////////////
function SetBlurColor(sCtlNme)
{
  if ( sCtlNme.style.backgroundColor != ErrBGColor)
  {
    sCtlNme.style.backgroundColor = NormBGColor;
  }
  
}
///////////////////////////////////////
function SetDateFormat(sdatefmt)
{

 DateFormat = sdatefmt;

 if ( DateFormat == "YMD")
 {
  iYear = 0;
  iMonth = 1;
  iDay = 2;
 }
 if ( DateFormat == "MDY")
 {
  iYear = 2;
  iMonth = 0;
  iDay = 1;
 }
 if ( DateFormat == "DMY")
 {
  iYear = 2;
  iMonth = 1;
  iDay = 0;
 }
}
///////////////////////////////////////
function CheckStartDate(sCtlNme)
{

  //get input
  var strCheckDate = sCtlNme.value;
  sCtlNme.style.backgroundColor = NormBGColor;
  
  //make sure input string is correct length
  if (strCheckDate.length != iDateLen) 
   {
     sCtlNme.style.background = ErrBGColor;
     alert ("1 " + ErrMsg);
     sCtlNme.focus();
     return -1;
   };
  

  var result = strCheckDate.match(datematch);
  if (result == null)  
   {
     sCtlNme.style.background = ErrBGColor;
     alert ("2 " + ErrMsg);
     sCtlNme.focus();
     return -1;
   };
   
  //split date
  var inDate = new Array();
  var inDate = strCheckDate.split(sDateDelimiters);
  if (inDate.length < iDateArrLen)
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("3 " + ErrMsg);
    sCtlNme.focus();
    return -1;
  };
  
  //now start checking each item
  //year can not be before current year
  if (inDate[iYear] < sThisYear)
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("4 The start date cannot be a date prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  //month can not be before current month
  if ((inDate[iMonth] < sThisMonth) && (inDate[iYear] <= sThisYear))
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("5 The start date cannot be a date prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  
  //day can not be before current day
  if ((inDate[iDay] < sThisDay) && (inDate[iMonth] <= sThisMonth) && (inDate[iYear] <= sThisYear))
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("6 The start date cannot be a date prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }

  return 0;
  
}
///////////////////////////////////////
function CheckEndDate(sCtlNme, sChkNme)
{

  //get input
  var strCheckDate = sCtlNme.value;
  var strStartDate = sChkNme.value;
  
  sCtlNme.style.backgroundColor = NormBGColor;

  
  //make sure input string is correct length
  if (strCheckDate.length != iDateLen) 
   {
     sCtlNme.style.background = ErrBGColor;
     alert ("1 " + ErrMsg);
     sCtlNme.focus();
     return -1;
   };
  
  var result = strCheckDate.match(datematch);
  if (result == null)  
   {
     sCtlNme.style.background = ErrBGColor;
     alert ("2 " + ErrMsg);
     sCtlNme.focus();
     return -1;
   };
   
  //split date
  var inDate = new Array();
  var inDate = strCheckDate.split(sDateDelimiters);
  if (inDate.length < iDateArrLen)
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("3 " + ErrMsg);
    sCtlNme.focus();
    return -1;
  };
  
  //now start checking each item
  //year can not be before current year
  if (inDate[iYear] < sThisYear)
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("4 The end date cannot be a year prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  //month can not be before current month
  if ((inDate[iMonth] < sThisMonth) && (inDate[iYear] <= sThisYear))
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("5 The end date cannot be a month prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  
  //day can not be before current day
  if ((inDate[iDay] < sThisDay) && (inDate[iMonth] <= sThisMonth) && (inDate[iYear] <= sThisYear))
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("6 The end date cannot be a date prior to todays date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }


  //////////////////////////////////////////////////////////////////
  //split start date so we can check it against the end date
  var inStartDate = new Array();
  var inStartDate = strStartDate.split(sDateDelimiters);
  if (inStartDate.length < iDateArrLen)
  {
    sChkNme.style.background = ErrBGColor;
    alert ("3 " + ErrMsg);
    sChkNme.focus();
    return -1;
  };
  
  //now start checking each item
  //year can not be before current year
  if (inDate[iYear] < inStartDate[iYear])
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("7 The end date cannot be a year prior to the start date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  //month can not be before current month
  if (inDate[iMonth] < inStartDate[iMonth])
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("8 The end date cannot be a month prior to the start date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  
  //day can not be before current day
  if ((inDate[iDay] < inStartDate[iDay]) && (inDate[iMonth] = inStartDate[iMonth]) && (inDate[iYear] = inStartDate[iYear]))
  {
    sCtlNme.style.background = ErrBGColor;
    alert ("9 The end date cannot be a date prior to the start date! \n\n Please enter a valid date.");
    sCtlNme.focus();
    return -1;
  }
  
  return 0;
  
}
///////////////////////////////////////
function UserLocalDateTime()
{

	//Now get the local time of the person running this browser
	var sToday = new Date();
	var AMPM;
	var DailyMessage;
	var sTodayDay = sToday.getDate();  		//returns a 1 for the 1st and 12 for the 12th, we need to pad with a zero for the single digits
	var sTodayMonth = (sToday.getMonth()+1);		//returns a 1 for January and 10 for October, we need to pad with a zero for the single digits
	var sTodayYear = sToday.getFullYear();		//returns full year, ie 2005
	var sTodayHour = sToday.getHours();  		// return a 24 hour clock
	var sTodayMinute = sToday.getMinutes();		// returns a 1 for 1 minute and 21 for 21 minutes after the hour, we need to pad with a zero for single digits
	var sWeekDay = sToday.getDay();  		// 0 = sunday, 1 = monday, etc....
	var sUTCOffset = sToday.getTimezoneOffset();	// return 300 minutes for east coast time, 360 for central, 420 for mountain, 480 for pacific coast
	var iLen;
        

	 varDayStr = sTodayDay.toString();
         
	 iLen=varDayStr.length;
	 if (iLen == 1 )
	   {
	    varDayStr = "0" + varDayStr;
	   };
	 

	if (sTodayDay < 10 )
	   {
	    varDayStr = "0" + sTodayDay;
	   }
           else
           {
           varDayStr = sTodayDay;
	   };
           //alert(varDayStr);


	 varMonthStr = sTodayMonth.toString();
	 iLen=varMonthStr.length;
	 if (iLen == 1 )
	   {
	    varMonthStr = "0" + varMonthStr;
	   };
	
	  varYearStr = sTodayYear.toString();
	  varUTCOffset = sUTCOffset.toString();
	  
	 varHourStr = sTodayHour.toString();
	 iLen=varHourStr.length;
	 if (iLen == 1 )
	   {
	    varHourStr = "0" + varHourStr;
	   };
	 if (varHourStr < 13)
	  { 
	   AMPM = " AM";
	   DailyMessage = "Good Morning!";
	  }
	  else
	  {
	  AMPM = " PM";
	  DailyMessage = "Good Afternoon!";
	  };
	
	
	 varMinuteStr = sTodayMinute.toString();
	 iLen=varMinuteStr.length;
	 if (iLen == 1 )
	   {
	    varMinuteStr = "0" + varMinuteStr;
	   };

        try{
		var alocaldate = document.getElementsByName("userlocaldate")[0];
		var alocaltime = document.getElementsByName("userlocaltime")[0];
		var alocalUTCOffset = document.getElementsByName("userutcoffset")[0];
	
		//load the text box with the correct value
		alocaldate.value  = varYearStr + '/' + varMonthStr + '/' + varDayStr;
		alocaltime.value  = varHourStr + varMinuteStr;
		alocalUTCOffset.value = varUTCOffset;
		
        }catch(e) {};

}

///////////////////////////////////////
function LoadMonths(sInMonth, sInYear)
{

 //alert(sInMonth);
 //alert(sInYear);

  var lngMonths = new makeArray("January","February","March","April","May","June","July","August","September","October","November","December");

   today = new Date();
   ThisMonth = today.getMonth();
   ThisYear = today.getFullYear();
   iThisYear=Number(ThisYear);

   var counter;
   counter=0;

  //addOption(document.datequery.querymonth, "Select Month","");
  for ( var i = 0; i < 12; i++)
   {
     monthindex=(i+1);
     addOption(document.datequery.querymonth,lngMonths[i],monthindex);
   }

   if (sInMonth != "")
     {
	document.datequery.querymonth.selectedIndex=(sInMonth-1);
     }
     else
     {
	document.datequery.querymonth.selectedIndex=(ThisMonth-1);
     }

  for ( var i = 2000; i < (iThisYear+1); i++)  //$ThisYear
   {

	addOption(document.datequery.queryyear,i,i);
        
        
      	//if ( i == iThisYear)
        if ( i == sInYear )
      	{
       	   document.datequery.queryyear.selectedIndex=counter;
      	}
     ++counter;
   }

}


///////////////////////////////////////
///// Start PD Manage Shift ///////////
///////////////////////////////////////
///////////////////////////////////////
//SubmitAddForm
//SubmitEditForm
//Compute_Time(form)
function SubmitAddForm(InputTotalTime)
{
  if ( document.addshiftform.shiftstartdate.value == "")
   {
     alert("A start date is a required entry!");
     return;
   }

  if ( document.addshiftform.shiftstarttime.value == "")
   {
     alert("A start time is a required entry!");
     return;
   }

  if ( document.addshiftform.vehiclenumber.value == "")
   {
   	alert("The vehicle number box must not be blank!");
     	return;
   }
  
  
         /////////////////////////////////////////
	 //start date
	 /////////////////////////////////////////
	 varstartDT=document.addshiftform.shiftstartdate.value;
	 varLenstartDT=varstartDT.length;
	 
	 //start time
	 varstartTime=document.addshiftform.shiftstarttime.value;
	 varLenstartTime=varstartTime.length;

         if (varLenstartDT == 0)
          {
	    alert("1 - Invalid start date format! Enter a date in the format of yyyy/mm/dd.");
            document.editshiftform.shiftstartdate.value = "";
	    document.editshiftform.shiftstartdate.focus();
	    return;
          }


	 //make sure the we have a number for shift start time
	 if ( isNaN(varstartTime)  )
	  {
	    alert("2 - Invalid start time format! Enter a start time in the format of hhmm ex. 0800.");
	    document.addshiftform.shiftstarttime.focus();
	    return;
           }

         //alert("2 " + varstartTime);

	 //make sure the leng of each string is correct
	 if (( varLenstartDT < 10 ) || ( varLenstartDT > 10 ))
	  {
	    alert("3 - Invalid start date format! Enter a date in the format of yyyy/mm/dd.");
            document.addshiftform.shiftstartdate.focus();
	    return;
	  }
	  
	  //alert("2 " + varstartDT);
	   if (( varLenstartTime < 4 ) || ( varLenstartTime > 4 ))
	  {
	    alert("4 - Invalid start time format! Enter a start time in the format of hhmm ex. 0800. ");
            document.addshiftform.shiftstarttime.focus();
	    return;
	  }
	  
	 varstartDT = new Date();
	 varstartDT.setTime(Date.parse(document.addshiftform.shiftstartdate.value));
         //alert("6 " + varstartDT);
	 //check start date
	 if (document.addshiftform.shiftstartdate.value != "" )
	  {
	   if (varstartDT.toUTCString() == "NaN")
	    {
	      alert("5 " + document.addshiftform.shiftstartdate.value + " is not a date!");
	      document.addshiftform.shiftstartdate.value = "";
	      document.addshiftform.shiftstartdate.focus();
	      return;
	    }
	    
	  }

	// update this value to "I" to indicate this shift is closed
	 document.addshiftform.shiftstatus.value="A";


	if ((document.addshiftform.shiftenddate.value != "") || (document.addshiftform.shiftendtime.value != ""))
	{  
	/////////////////////////////////////////
	////////////////////////////////////////
	// USER ADDED A STOP DATE TIME
	////////////////////////////////////////
	////////////////////////////////////////

   	 
         //If we are here then the user is also adding a shift end date time so check it and change the 
         //shift staus value to "I"

     	 ///////////////////////////////////	  
	 //end date
	 ///////////////////////////////////
	 varstopDT=document.addshiftform.shiftenddate.value;
	 varLenstopDT=varstopDT.length;
	 //stop time
	 varstopTime=document.addshiftform.shiftendtime.value;
	 varLenstopTime=varstopTime.length;


          //make sure we have an end date, if we do not then we are not adding a log out time	  
	  
	 //make sure the we have a number for shift end time
	 if ( isNaN(varstopTime)  )
	  {
	    alert("6 - Invalid end time format! Enter a end time in the format of hhmm ex. 0800.");
	    document.addshiftform.shiftendtime.focus();
	    return;
           }

         if (varstopDT == "")
          {
	    alert("7 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.addshiftform.shiftenddate.value = "";
	    document.addshiftform.shiftenddate.focus();
	    return;

          }


         if (varLenstopDT == 0)
          {
	    alert("8 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.addshiftform.shiftenddate.value = "";
	    document.addshiftform.shiftenddate.focus();
	    return;

          }


	  //alert("3 " + varstopDT);
	   if (( varLenstopDT < 10 ) || ( varLenstopDT > 10 ))
	  {
	    alert("9 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.addshiftform.shiftenddate.value = "";
	    document.addshiftform.shiftenddate.focus();
	    return;
	  }
	  
	  //alert("4 " + varstartDT);
	   if (( varLenstopTime < 4 ) || (varLenstopTime > 4))
	  {
	    alert("10 - Invalid end time format! Enter an end time in the format of hhmm ex. 2130. ");
            document.addshiftform.shiftendtime.value="";
            document.addshiftform.shiftendtime.focus();
	    return;
	  }
          
          varendDT = new Date();
          varendDT.setTime(Date.parse(document.addshiftform.shiftenddate.value));
          //alert("7 " + varendDT);
          //alert("8 " + varstartDT);
	  //check stop date
	  if (document.addshiftform.shiftenddate.value != "" )
	  {
	   if (varendDT.toUTCString() == "NaN")
	    {
	      alert("11 " + document.addshiftform.shiftenddate.value + " is not a date!");
	      document.addshiftform.shiftenddate.value = "";
	      document.addshiftform.shiftenddate.focus();
	      return;
	    }
	   
	  }

	///////////////////////////////////////////////////////////////
	///////////////////////////////////////////////////////////////

//////////////////////////////////////////////
/////////////////////////////////////////////
//  COMPUTE TIME
//////////////////////////////////////////////
          ////////////////////////////////////////////////
          //collect the actual values off of the form now that we have made it hear
          ///////////////////////////////////////
          
	  varStartTime=document.addshiftform.shiftstarttime.value;  	//FORM NAME
	  varEndTime=document.addshiftform.shiftendtime.value;  	//FORM NAME
	  //alert("10 " + varStartTime + varEndTime);
	  
	  varStartHour=varStartTime.substr(0,2);
	  varStartMin=varStartTime.substr(2,2);
	  //alert("11 " + varStartHour + varStartMin);
	  
	  varEndHour=varEndTime.substr(0,2);
	  varEndMin=varEndTime.substr(2,2);
	  //alert("12 " + varEndHour + varEndMin);
	  
	  
	  varstartDT=document.addshiftform.shiftstartdate.value;  	//FORM NAME
	  varendDT=document.addshiftform.shiftenddate.value;  		//FORM NAME
	  //alert("13 " + varstartDT);

	  varStartMonth=varstartDT.substr(0,2);
	  varStartDay=varstartDT.substr(3,2);
	  varStartYear=varstartDT.substr(6,4);
	  //alert("14 " + varStartMonth + varStartDay + varStartYear);
	  
	  varEndMonth=varendDT.substr(0,2);
	  varEndDay=varendDT.substr(3,2);
	  varEndYear=varendDT.substr(6,4);
	  //alert("15 " + varstartDT);
	  

	  varStartValue = new Date();
	  varStopValue = new Date();
	  //alert("16 " + varstartDT);
	  
	  varStartValue.setFullYear(varStartYear,--varStartMonth,varStartDay);
	  varStartValue.setHours(varStartHour, varStartMin,0,0);
	  //alert("17 " + varStartHour, varStartMin);
	  
	  //varStartValue= varStartYear  varStartMonth  varStartDay varStartHour varStartMin
	  varStopValue.setFullYear(varEndYear, --varEndMonth, varEndDay);
	  varStopValue.setHours(varEndHour, varEndMin,0,0);
	  //alert("18 " + varEndHour + varEndMin);

	  //varStopValue= varEndYear varEndMonth varEndDay  varEndHour varEndMin
	  
	  //alert(varStartValue);
	  //alert(varStopValue);
	  
	  totalMinutes = varStopValue.getTime() - varStartValue.getTime();
          totalMinutes = Math.floor(totalMinutes/(1000*60));  //math floor rounds number down
          
          totalHours=(totalMinutes/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9
          
          
          //alert(totalHours + " total hours");
          
          modMinutes = totalMinutes % 60;
          //modMinutes = 5 % 2;

          //alert(modMinutes + " balance of minutes");
          
          document.addshiftform.checktime.value = totalHours + " hours and " + modMinutes + " minutes";  //FORM NAME
          document.addshiftform.shifttotalmin.value = totalMinutes;  					//FORM NAME
          
          if (( totalHours < 0 ) || ( modMinutes < 0 ))
            {
              alert("Verify your dates/times, negative entries are not allowed!");
              return ;  
	    }

	  var dispalynonallocatedtime = (totalMinutes - InputTotalTime);

 	  totalHours=(dispalynonallocatedtime/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9

	   var iLen;
	   totalHours=totalHours.toString();
	   iLen = totalHours.length;
           //alert (iLen);

	   if (iLen == 1)
           {
             totalHours = "0" + totalHours;
           }
	   modMinutes = dispalynonallocatedtime % 60;


	   document.addshiftform.nonallocatedtime.value = totalHours + " hours and " + modMinutes + " minutes";

	   document.addshiftform.hiddennonallocatedtime.value = dispalynonallocatedtime;


////////////////////////////////////////////////////
////////////////////////////////////////////////////
// END COMPUTE TIME
////////////////////////////////////////////////////

	 	// update this value to "I" to indicate this shift is closed
	 	document.addshiftform.shiftstatus.value="I";
	}


  		//We made it here so everything looks good, go ahead and sumbimt the form
		document.addshiftform.submit();
  		return;

}






function SubmitEditForm(InputTotalTime)
{
  if ( document.editshiftform.shiftenddate.value == "")
   {
     alert("An end date is a required entry!");
     document.editshiftform.shiftenddate.focus();
     return;
   }
  if ( document.editshiftform.shiftendtime.value == "")
   {
     alert("An end time is a required entry!");
     document.editshiftform.shiftendtime.focus();
     return;
   }

     	 ///////////////////////////////////	  
	 //end date
	 ///////////////////////////////////
         
	 varstopDT=document.editshiftform.shiftenddate.value;
	 varLenstopDT=varstopDT.length;
	 //stop time
	 varstopTime=document.editshiftform.shiftendtime.value;
	 varLenstopTime=varstopTime.length;
	  
	 //make sure the we have a number for shift end time
	 if ( isNaN(varstopTime)  )
	  {
	    alert("1 - Invalid end time format! Enter a end time in the format of hhmm ex. 0800.");
	    document.addshiftform.shiftendtime.focus();
	    return;
           }

         if (varstopDT == "")
          {
	    alert("2 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.editshiftform.shiftenddate.value = "";
	    document.editshiftform.shiftenddate.focus();
	    return;

          }


         if (varLenstopDT == 0)
          {
	    alert("3 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.editshiftform.shiftenddate.value = "";
	    document.editshiftform.shiftenddate.focus();
	    return;

          }

          //make sure we have an end date, if we do not then we are not adding a log out time	  
	  
	  //alert("4 " + varstopDT);
	   if  (( varLenstopDT < 10 ) || ( varLenstopDT > 10 )) 
	  {
	    alert("4 - Invalid end date format! Enter an end date in the format of yyyy/mm/dd.");
            document.editshiftform.shiftenddate.value = "";
	    document.editshiftform.shiftenddate.focus();
	    return;
	  }
	  
	  //alert("5 " + varstartDT);
	   if (( varLenstopTime < 4 ) || (varLenstopTime > 4))
	  {
	    alert("5 - Invalid end time format! Enter an end time in the format of hhmm ex. 2130. ");
            document.editshiftform.shiftendtime.value="";
            document.editshiftform.shiftendtime.focus();
	    return;
	  }
          
          varendDT = new Date();
          varendDT.setTime(Date.parse(document.editshiftform.shiftenddate.value));
          //alert("7 " + varendDT);
          //alert("8 " + varstartDT);
	  //check stop date
	  if (document.editshiftform.shiftenddate.value != "" )
	  {
	   if (varendDT.toUTCString() == "NaN")
	    {
	      alert("6 " + document.editshiftform.shiftenddate.value + " is not a date!");
	      document.editshiftform.shiftenddate.value = "";
	      document.editshiftform.shiftenddate.focus();
	      return;
	    }
	   
	  }

//////////////////////////////////////////////
/////////////////////////////////////////////
//  COMPUTE TIME
//////////////////////////////////////////////
          ////////////////////////////////////////////////
          //collect the actual values off of the form now that we have made it hear
          ///////////////////////////////////////
          
	  varStartTime=document.editshiftform.shiftstarttime.value;	  //FORM NAME
	  varEndTime=document.editshiftform.shiftendtime.value;		  //FORM NAME
	  //alert("10 " + varStartTime + varEndTime);
	  
	  varStartHour=varStartTime.substr(0,2);
	  varStartMin=varStartTime.substr(2,2);
	  //alert("11 " + varStartHour + varStartMin);
	  
	  varEndHour=varEndTime.substr(0,2);
	  varEndMin=varEndTime.substr(2,2);
	  //alert("12 " + varEndHour + varEndMin);
	  
	  
	  varstartDT=document.editshiftform.shiftstartdate.value;	  //FORM NAME
	  varendDT=document.editshiftform.shiftenddate.value;		  //FORM NAME
	  //alert("13 " + varstartDT);

	  varStartMonth=varstartDT.substr(0,2);
	  varStartDay=varstartDT.substr(3,2);
	  varStartYear=varstartDT.substr(6,4);
	  //alert("14 " + varStartMonth + varStartDay + varStartYear);
	  
	  varEndMonth=varendDT.substr(0,2);
	  varEndDay=varendDT.substr(3,2);
	  varEndYear=varendDT.substr(6,4);
	  //alert("15 " + varstartDT);
	  

	  varStartValue = new Date();
	  varStopValue = new Date();
	  //alert("16 " + varstartDT);
	  
	  varStartValue.setFullYear(varStartYear,--varStartMonth,varStartDay);
	  varStartValue.setHours(varStartHour, varStartMin,0,0);
	  //alert("17 " + varStartHour, varStartMin);
	  
	  //varStartValue= varStartYear  varStartMonth  varStartDay varStartHour varStartMin
	  varStopValue.setFullYear(varEndYear, --varEndMonth, varEndDay);
	  varStopValue.setHours(varEndHour, varEndMin,0,0);
	  //alert("18 " + varEndHour + varEndMin);

	  //varStopValue= varEndYear varEndMonth varEndDay  varEndHour varEndMin
	  
	  //alert(varStartValue);
	  //alert(varStopValue);
	  
	  totalMinutes = varStopValue.getTime() - varStartValue.getTime();
          totalMinutes = Math.floor(totalMinutes/(1000*60));  //math floor rounds number down
          
          totalHours=(totalMinutes/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9
          
          
          //alert(totalHours + " total hours");
          
          modMinutes = totalMinutes % 60;
          //modMinutes = 5 % 2;

          //alert(modMinutes + " balance of minutes");
          
          document.editshiftform.checktime.value = totalHours + " hours and " + modMinutes + " minutes";  //FORM NAME
          document.editshiftform.shifttotalmin.value = totalMinutes;					  //FORM NAME
          
          if (( totalHours < 0 ) || ( modMinutes < 0 ))
            {
              alert("Verify your dates/times, negative entries are not allowed!");
              return ;  
	    }
	  var dispalynonallocatedtime = (totalMinutes - InputTotalTime);

 	  totalHours=(dispalynonallocatedtime/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9

	   var iLen;
	   totalHours=totalHours.toString();
	   iLen = totalHours.length;
           //alert (iLen);

	   if (iLen == 1)
           {
             totalHours = "0" + totalHours;
           }
	   modMinutes = dispalynonallocatedtime % 60;


	   document.editshiftform.nonallocatedtime.value = totalHours + " hours and " + modMinutes + " minutes";

	   document.editshiftform.hiddennonallocatedtime.value = dispalynonallocatedtime;




////////////////////////////////////////////////////
////////////////////////////////////////////////////
// END COMPUTE TIME
////////////////////////////////////////////////////


		///////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////

		// update this value to "I" to indicate this shift is closed
		 document.editshiftform.shiftstatus.value="I";

	  	//We made it here so everything looks good, go ahead and sumbimt the form

  		document.editshiftform.submit();
  		return;

}

function Compute_Time(form)
{

          ////////////////////////////////////////////////
          //collect the actual values off of the form now that we have made it hear
          ///////////////////////////////////////
          
	  varStartTime=form.shiftstarttime.value;
	  varEndTime=form.shiftendtime.value;
	  //alert("10 " + varStartTime + varEndTime);
	  
	  varStartHour=varStartTime.substr(0,2);
	  varStartMin=varStartTime.substr(2,2);
	  //alert("11 " + varStartHour + varStartMin);
	  
	  varEndHour=varEndTime.substr(0,2);
	  varEndMin=varEndTime.substr(2,2);
	  //alert("12 " + varEndHour + varEndMin);
	  
	  
	  varstartDT=form.shiftstartdate.value;
	  varendDT=form.shiftenddate.value;
	  //alert("13 " + varstartDT);

          if ((varEndTime == "") || ( varendDT == "" ))
          {
		alert ("An end date and end time are required!");
		if ( varendDT == "" )
		{
			form.shiftenddate.focus();
			return false;
		}
		if ( varEndTime == "" )
		{
			form.shiftendtime.focus();
			return false;
		}
          }

	  varStartMonth=varstartDT.substr(0,2);
	  varStartDay=varstartDT.substr(3,2);
	  varStartYear=varstartDT.substr(6,4);
	  //alert("14 " + varStartMonth + varStartDay + varStartYear);
	  
	  varEndMonth=varendDT.substr(0,2);
	  varEndDay=varendDT.substr(3,2);
	  varEndYear=varendDT.substr(6,4);
	  //alert("15 " + varstartDT);
	  

	  varStartValue = new Date();
	  varStopValue = new Date();
	  //alert("16 " + varstartDT);
	  
	  varStartValue.setFullYear(varStartYear,--varStartMonth,varStartDay);
	  varStartValue.setHours(varStartHour, varStartMin,0,0);
	  //alert("17 " + varStartHour, varStartMin);
	  
	  //varStartValue= varStartYear  varStartMonth  varStartDay varStartHour varStartMin
	  varStopValue.setFullYear(varEndYear, --varEndMonth, varEndDay);
	  varStopValue.setHours(varEndHour, varEndMin,0,0);
	  //alert("18 " + varEndHour + varEndMin);

	  //varStopValue= varEndYear varEndMonth varEndDay  varEndHour varEndMin
	  
	  //alert(varStartValue);
	  //alert(varStopValue);
	  
	  totalMinutes = varStopValue.getTime() - varStartValue.getTime();
          totalMinutes = Math.floor(totalMinutes/(1000*60));  //math floor rounds number down
          
          totalHours=(totalMinutes/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9
          
          
          //alert(totalHours + " total hours");
          
          modMinutes = totalMinutes % 60;
          //modMinutes = 5 % 2;

          //alert(modMinutes + " balance of minutes");
          
          form.checktime.value = totalHours + " hours and " + modMinutes + " minutes";
          form.shifttotalmin.value = totalMinutes;
          
          if (( totalHours < 0 ) || ( modMinutes < 0 ))
            {
              alert("Verify your dates/times, negative entries are not allowed!");
              return false;  
	    }



	   var dispalynonallocatedtime = (totalMinutes - InputTotalTime);

 	  totalHours=(dispalynonallocatedtime/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9

	   var iLen;
	   totalHours=totalHours.toString();
	   iLen = totalHours.length;
           //alert (iLen);

	   if (iLen == 1)
           {
             totalHours = "0" + totalHours;
           }
	   modMinutes = dispalynonallocatedtime % 60;


	   form.nonallocatedtime.value = totalHours + " hours and " + modMinutes + " minutes";

	   form.hiddennonallocatedtime.value = dispalynonallocatedtime;

	   return true;

}
///////////////////////////////////////
////// End PD Manage Shift ////////////
///////////////////////////////////////
///////////////////////////////////////


///////////////////////////////////////
////// Start PD User Log Entry ////////////
///////////////////////////////////////
///////////////////////////////////////
function ComputeTime()
{
	
	//alert("Compute Time");
	
     	document.ladd.totaltime.value = "";
	//alert("Compute time");
         /////////////////////////////////////////
	 //start date
	 /////////////////////////////////////////
	 varstartDT=document.ladd.arrivedate.value;
	 varLenstartDT=varstartDT.length;
	 
	 //start time
	 varstartTime=document.ladd.arrivetime.value;
	 varLenstartTime=varstartTime.length;

         //alert("1 " + varstartTime);

	 //make sure the leng of each string is correct
	 if (( varLenstartDT < 10 ) || ( varLenstartDT > 10 ))
	  {
	    alert("1 - Invalid arrive date format! Enter an arrive date in the format of yyyy/mm/dd.");
	    return false;
	  }
	  
	  //alert("2 " + varstartDT);
	   if (( varLenstartTime < 4 ) || ( varLenstartTime > 4 ))
	  {
	    alert("2 - Invalid arrive time format! Enter an arrive time in the format of hhmm ex. 0800. ");
	    return false;
	  }
	  
	 varstartDT = new Date();
	 varstartDT.setTime(Date.parse(document.ladd.arrivedate.value));
         //alert("6 " + varstartDT);
	 //check start date
	 if (document.ladd.arrivedate.value != "" )
	  {
	   if (varstartDT.toUTCString() == "NaN")
	    {
	      alert("8 " + document.ladd.arrivedate.value + " is not a date!");
	      document.ladd.arrivedate.value = "";
	      document.ladd.arrivedate.focus();
	      return false;
	    }
	    
	  }
     
     
     	 ///////////////////////////////////	  
	 //stop date
	 ///////////////////////////////////
	 varstopDT=document.ladd.completiondate.value;
	 varLenstopDT=varstopDT.length;
	 //stop time
	 varstopTime=document.ladd.completiontime.value;
	 varLenstopTime=varstopTime.length;
	  
          //make sure we have an end date, if we do not then we are not adding a log out time	  
	  
	  //alert("3 " + varstopDT);
	   if (( varLenstopDT < 10 ) || ( varLenstopDT < 10 ))
	  {
	    alert("3 - Invalid completion date format! Enter a completion date in the format of yyyy/mm/dd.");
	    return false;
	  }
	  
	  //alert("4 " + varstartDT);
	   if (( varLenstopTime < 4 ) || (varLenstopTime > 4))
	  {
	    alert("4 - Invalid completion time format! Enter a completion time in the format of hhmm ex. 2130. ");
	    return false;
	  }
          
          varendDT = new Date();
          varendDT.setTime(Date.parse(document.ladd.completiondate.value));
          //alert("7 " + varendDT);
          //alert("8 " + varstartDT);
	  //check stop date
	  if (document.ladd.completiondate.value != "" )
	  {
	   if (varendDT.toUTCString() == "NaN")
	    {
	      alert("9 " + document.ladd.completiondate.value + " is not a date!");
	      document.ladd.completiondate.value = "";
	      document.ladd.completiondate.focus();
	      return false;
	    }
	   
	  }
     
     	//alert("9 " + varstartDT);
          
          ////////////////////////////////////////////////
          //collect the actual values off of the form now that we have made it hear
          ///////////////////////////////////////
          
	  varStartTime=document.ladd.arrivetime.value;
	  varEndTime=document.ladd.completiontime.value;
	  //alert("10 " + varStartTime + varEndTime);
	  
	  varStartHour=varStartTime.substr(0,2);
	  varStartMin=varStartTime.substr(2,2);
	  //alert("11 " + varStartHour + varStartMin);
	  
	  varEndHour=varEndTime.substr(0,2);
	  varEndMin=varEndTime.substr(2,2);
	  //alert("12 " + varEndHour + varEndMin);
	  
	  
	  varstartDT=document.ladd.arrivedate.value;
	  varendDT=document.ladd.completiondate.value;
	  //alert("13 " + varstartDT);

	  //varStartMonth=varstartDT.substr(0,2);
	  //varStartDay=varstartDT.substr(3,2);
	  //varStartYear=varstartDT.substr(6,4);
	  
	  varStartYear=varstartDT.substr(0,4);
	  varStartMonth=varstartDT.substr(5,2);
	  varStartDay=varstartDT.substr(8,2);
	  //alert("14 " + varStartMonth + varStartDay + varStartYear);

	  varEndYear=varendDT.substr(0,4);	  
	  varEndMonth=varendDT.substr(5,2);
	  varEndDay=varendDT.substr(8,2);
	  
	  
	  //varEndMonth=varendDT.substr(0,2);
	  //varEndDay=varendDT.substr(3,2);
	  //varEndYear=varendDT.substr(6,4);
	  //alert("15 " + varstartDT);
	  

	  varStartValue = new Date();
	  varStopValue = new Date();
	  //alert("16 " + varstartDT);
	  
	  varStartValue.setFullYear(varStartYear,--varStartMonth,varStartDay);
	  varStartValue.setHours(varStartHour, varStartMin,0,0);
	  //alert("17 " + varStartHour, varStartMin);
	  
	  //varStartValue= varStartYear  varStartMonth  varStartDay varStartHour varStartMin
	  varStopValue.setFullYear(varEndYear, --varEndMonth, varEndDay);
	  varStopValue.setHours(varEndHour, varEndMin,0,0);
	  //alert("18 " + varEndHour + varEndMin);

	  //varStopValue= varEndYear varEndMonth varEndDay  varEndHour varEndMin
	  
	  //alert(varStartValue);
	  //alert(varStopValue);
	  
	  totalMinutes = varStopValue.getTime() - varStartValue.getTime();
          totalMinutes = Math.floor(totalMinutes/(1000*60));  //math floor rounds number down
          
          totalHours=(totalMinutes/60);
          totalHours=Math.floor(totalHours); //Math.round rounds to nearest integer
          				     // so 0845 would rounf to 9
          
          
          //alert(totalHours + " total hours");
          
          modMinutes = totalMinutes % 60;
          //modMinutes = 5 % 2;

          //alert(modMinutes + " balance of minutes");
          
          document.ladd.totaltime.value = totalHours + ":" + modMinutes;
          document.ladd.totalminutes.value = totalMinutes;
          
          if (( totalHours < 0 ) || ( modMinutes < 0 ))
            {
              alert("Verify your dates/times, a negative total time is not allowed!");
              return false;  
	    }
	    return true;
	    
}
///////////////////////////////////////
////// End PD User Log Entry ////////////
///////////////////////////////////////
///////////////////////////////////////

