
function makeDate(fldName, oForm) {

  var y = eval("oForm." + fldName + "Yr_select.options[oForm." + fldName + "Yr_select.selectedIndex].value");
  var m = eval("oForm." + fldName + "Mon_select.options[oForm." + fldName + "Mon_select.selectedIndex].value");
  var d = eval("oForm." + fldName + "Day_select.options[oForm." + fldName + "Day_select.selectedIndex].value");
  var objDays = eval("oForm." + fldName + "Day_select");
  var objDateFld = eval("oForm." + fldName);
  
  addTime = 0;
  if ( eval("oForm." + fldName + "Hr_select") != undefined ) {
  	addTime = 1;
	var h = eval("oForm." + fldName + "Hr_select.options[oForm." + fldName + "Hr_select.selectedIndex].value");
	var n = eval("oForm." + fldName + "Min_select.options[oForm." + fldName + "Min_select.selectedIndex].value");
	var ap = eval("oForm." + fldName + "ampm_select.options[oForm." + fldName + "ampm_select.selectedIndex].value");
  }

  // find number of days in current month
  if ( (m == 4) || (m == 6) || (m == 9) || (m == 11) ) {
    days = 30;
  }
  else if (m == 2) {
    // check for leapyear - Any year divisible by 4, except those divisible by 100 (but NOT 400)
    if ( (Math.floor(y/4) == (y/4)) && ((Math.floor(y/100) != (y/100)) || (Math.floor(y/400) == (y/400))) )
      days = 29
    else
      days = 28
  }
  else {
    days = 31;
  }

  prevSelIdx = objDays.selectedIndex;
  objDays.options.length = 1;
  for (i=1; i <= days; i++) {
	objDays.options[i] = new Option(i, i);
  }
  if ( prevSelIdx < objDays.options.length ) objDays.selectedIndex = prevSelIdx;
  
  if ( y > 0 && m > 0 && d > 0 && ( !addTime | ( h > 0 && n != "" ) ) ) {
  	objDateFld.value = m + "/" + d + "/" + y;
	if ( addTime ) {
		objDateFld.value = objDateFld.value + " " + h + ":" + n + " " + ap;
	} 
  } else {
  	objDateFld.value = "";
  }

}

function clearDate(fldName, oForm) {

  var objYr = eval("oForm." + fldName + "Yr_select");
  var objMon = eval("oForm." + fldName + "Mon_select");
  var objDay = eval("oForm." + fldName + "Day_select");
  var objHr = eval("oForm." + fldName + "Hr_select");
  var objMin = eval("oForm." + fldName + "Min_select");
  
  objYr.selectedIndex = 0;
  objMon.selectedIndex = 0;
  objDay.selectedIndex = 0;
  
  if ( objHr != undefined ) {
  	objHr.selectedIndex = 0;
	objMin.selectedIndex = 0;
  }
  
  makeDate(fldName, oForm);
  
}

function setToday(fldName, oForm) {

	now = new Date();
	
	eval("oForm." + fldName + "Mon_select.selectedIndex = now.getMonth() + 1");
	eval("oForm." + fldName + "Day_select.selectedIndex = now.getDate()");
	yrFld = eval("oForm." + fldName + "Yr_select");
	for (i=0; i < yrFld.options.length; i++) {
		if ( yrFld.options[i].value == now.getFullYear() ) {
			yrFld.selectedIndex = i; }
	}

	if ( eval("oForm." + fldName + "Hr_select") != undefined ) {
		hour12 = now.getHours();
		if ( hour12 > 12 )
			hour12 = hour12 - 12;
		if ( hour12 == 0 )
			hour12 = 12;
		eval("oForm." + fldName + "Hr_select.selectedIndex = hour12");
		eval("oForm." + fldName + "Min_select.selectedIndex = now.getMinutes() + 1");
		eval("oForm." + fldName + "ampm_select.selectedIndex = (now.getHours() < 12) ? 0 : 1");
	}
	
  	makeDate(fldName, oForm);
  
}