function validateDateTime(box)
{
  var newVal = parseDateTime(box.value,true);
  if (newVal == null)
  {
    box.select();
    box.focus();
  }
  else
    box.value = newVal;
//		if (form.elements[i].name == box)
//			form.elements[i].value = parseDateTime(form.elements[i].value,true)
   return true;
}

function validateOldDate(box)
{
  var newVal = parseDate(box.value, false);
  if (newVal == null)
  {
    box.select();
    box.focus();
  }
  else
    box.value = newVal;
   return true;
}

function validateDate(box)
{
  var newVal = parseDate(box.value, true);
  if (newVal == null)
  {
    box.select();
    box.focus();
  }
  else
    box.value = newVal;
   return true;
}

function validateTime(box)
{
  var newVal = parseTime(box.value);
  if (newVal == null)
  {
    box.select();
    box.focus();
  }
  else
    box.value = newVal;
   return true;
}


function parseDateTime(value,preventOldDate)
{
  var parts;
  if (value == null || value.length == 0)
    return "";
  if (value.substr(0, 1).toLowerCase() == 'n')
    {
        now = new Date();
        minutes = ''+now.getMinutes();
        hours = ''+now.getHours();
        if( minutes.length == 1)
            minutes='0'+minutes;
        if( hours.length == 1)
            hours = '0'+hours;
       value = (now.getMonth() + 1) + "/" + now.getDate() + "/" + now.getFullYear()
                + ' ' + hours+ minutes;
    }
  parts = value.split(" ");
  if (parts != null && parts.length == 2)
  {
    strDate = parseDate(parts[0],preventOldDate);
    strTime = parseTime(parts[1]);
    if (strDate == null || strTime == null)
      return null;
    return strDate + " " + strTime;
  }
  else
  {
    strDate = parseDate(value,preventOldDate);
    if (strDate == null)
      return null;
    return strDate + " 12:00a";
  }
}

function parseTime(value)
{
  var hours = 0;
  var minutes = 0;
  var pmOffset = 0;
  var amSpecified = false;
  if (value == null || value.length == 0)
    return "";
  cleanValue = "";
  value = value.toLowerCase();
  for (i = 0; i < value.length; i++)
    if (value.charAt(i) == 'a')
    {
      amSpecified = true;
      break;
    }
    else if (value.charAt(i) == 'p')
    {
      pmOffset = 12;
      break;
    }
    else if (value.charAt(i) != ':')
      cleanValue = cleanValue + value.charAt(i);
  if (cleanValue.length < 3)
    cleanValue = cleanValue + "00";
  if (cleanValue.length == 3)
    cleanValue = "0" + cleanValue;
  else if (cleanValue.length > 4)
  {
    alert("Invalid time.");
    return null;
  }
  if (pmOffset == 12)
  {
    if (cleanValue.substr(0, 1) == "0")
      hours = parseInt(cleanValue.substr(1, 1));
    else
      hours = parseInt(cleanValue.substr(0, 2));
    if (hours <= 12)
      cleanValue = (hours + 12) + cleanValue.substr(2, 2);
  }
  hours = parseInt(cleanValue.substr(0, 2));
  minutes = parseInt(cleanValue.substr(2, 2));
  if (hours < 0 || hours > 24)
  {
    alert("Hours must be between 0 and 23.");
    return null;
  }
  else if (minutes < 0 || minutes > 59)
  {
    alert("Minutes must be between 0 and 59.");
    return null;
  }
  if (hours < 12 || (hours == 12 && amSpecified))
    return cleanValue.substr(0, 2) + ":" + cleanValue.substr(2, 2) + "a";
  else
  {
    // assume '12' means 12p unless am is specified.  -todds #9850
    if (hours < 12 || hours > 12)
      hours = hours - 12;
    if (hours < 10)
      return "0" + hours + ":" + cleanValue.substr(2, 2) + "p";
    else
      return hours + ":" + cleanValue.substr(2, 2) + "p";
  }
}

function parseDate(value, preventOldDate)
{
  var intMonth;
  var intDay;
  var intYear;
  var cleanValue;
  var parts;
  if (value == null || value.length == 0)
    return "";
  if (value.substr(0, 1).toLowerCase() == 't' || value.substr(0, 1).toLowerCase() == 'n')
  {
    addDays = 0;
    if (value.length > 1)
    {
      if (value.substr(1, 1) == "-")
        addDays = parseInt(value.substr(2)) * -1;
      else if (value.substr(1, 1) == "+")
        addDays = parseInt(value.substr(2));
      else
        addDays = parseInt(value.substr(1));
    }
    d = new Date();
    millis = d.getTime() + (addDays * 1000 * 60 * 60 * 24);
    d = new Date(millis);
    value = (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear();
  }
  if (value.indexOf("/") >= 0)
    parts = value.split("/");
  else if (value.indexOf("-") >= 0)
    parts = value.split("-");
  if (parts != null && parts.length > 0)
  {
    if (parts.length == 3)
        {
            if (parts[2].length == 2)
                parts[2] = "20" + parts[2];
            if (parts[2].length == 1)
                parts[2] = "200" + parts[2];
        }
    if (parts.length == 3 && parts[2].length == 2)
      parts[2] = "20" + parts[2];
    if (parts.length > 1 && parts[1].length < 2)
      parts[1] = "0" + parts[1];
    if (parts[0].length < 2)
      parts[0] = "0" + parts[0];
    cleanValue = parts[0];
    if (parts.length > 1)
      cleanValue = cleanValue + parts[1];
    else
      cleanValue = cleanValue + currMonth();
    if (parts.length > 2)
      cleanValue = cleanValue + parts[2];
    else
      cleanValue = cleanValue + currYear();
  }
  else
  {
    if (value.length < 2)
      cleanValue = currMonth() + "0" + value + currYear();
    else if (value.length == 2)
      cleanValue = currMonth() + value + currYear();
    else if (value.length == 4)
      cleanValue = value + currYear();
    else if (value.length = 6)
      cleanValue = value.substr(0, 4) + "20" + value.substr(4, 6);
  }
  if (cleanValue == null || cleanValue.length < 8)
  {
    alert("Invalid date");
    return null;
  }
  intMonth = cleanValue.substr(0, 2);
  intDay = cleanValue.substr(2, 2);
  intYear = cleanValue.substr(4, 4);
  daysInMonth = 31;
  if (intMonth == 2 && leapYear(intYear))
    daysInMonth = 29;
  else if (intMonth == 2)
    daysInMonth = 28;
  else if (intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11)
    daysInMonth = 30;
  if (intMonth < 1 || intMonth > 12)
  {
    alert("Please enter a month between 1 and 12.");
    return null;
  }
  else if ( preventOldDate && (intYear > 2010 || intYear < 2000) )
  {
    alert("Please enter a year between 2000 and 2010.");
    return null;
  }
  else if (intDay < 1 || intDay > daysInMonth)
  {
    alert("Please enter a day between 1 and " + daysInMonth + ".");
    return null;
  }
  return cleanValue.substr(0, 2) + "/" + cleanValue.substr(2, 2) + "/" + cleanValue.substr(4, 4);
}

function currMonth()
{
  month = new Date().getMonth() + 1;
  if (month < 10)
    return "0" + month;
  else
    return "" + month;
}

function currYear()
{
  return "" + new Date().getFullYear();
}

function leapYear(intYear)
{
  if (intYear % 100 == 0)
  {
    if (intYear % 400 == 0)
      return true;
  }
  else if ((intYear % 4) == 0)
    return true;
  return false;
}
