var monthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");

function itsADate(thisValue)
{
  if (thisValue=="")
    return true;
  if(thisValue.match(/^[0-9]{2,}\s[a-zA-Z]{3,}\s[0-9]{4,}$/))
  {
    var actDate = new Date();
    var actMinute = actDate.getMinutes();
    var actHour = actDate.getHours();
    var actDay = actDate.getDate();
    var actMonth = actDate.getMonth(); //***Remember: January = 0!
    var actYear = actDate.getFullYear();	
		
    var checkDay = thisValue.substring(0, 2);
    var checkMonth = thisValue.toLowerCase().substring(3, 6);
    var checkYear = thisValue.substring(7, thisValue.length);
    var dig2Month = get2DigitMonthFromChar3(checkMonth);
	
    if((checkYear < (actYear-100)) || (checkYear > (actYear+100)))
      return false;
    else
    if(!getMonthPos(checkMonth))
      return false;
    else
    if(checkDay < 1 || checkDay > getDayLimit(dig2Month, checkYear))
      return false;
    else return true;
  }	
  else
    return false;
}

function get2DigitMonthFromChar3(thisMonth)
{
  var sMon;
  switch(thisMonth)
  {
    case 'jan': sMon="01"; break
    case 'feb': sMon="02"; break
    case 'mar': sMon="03"; break
    case 'apr': sMon="04"; break
    case 'may': sMon="05"; break
    case 'jun': sMon="06"; break
    case 'jul': sMon="07"; break
    case 'aug': sMon="08"; break
    case 'sep': sMon="09"; break
    case 'oct': sMon="10"; break
    case 'nov': sMon="11"; break
    case 'dec': sMon="12"; break
    default:    alert("Invalid 3 char month input");         
  }
  return sMon;
}

function getMonthPos(thisMonth)
{	
  for(var i = 0; i < monthArray.length; i++)
    if(monthArray[i] == thisMonth)
      return true;
  return false;
}

function getDayLimit(thisMonth, thisYear)
{
  var limit;
  if(thisMonth == '01' || thisMonth == '03' || thisMonth == '05' || thisMonth == '07' || thisMonth == '08' || thisMonth == '10' || thisMonth == '12')
    limit = 31;
  else if(thisMonth == '04' || thisMonth == '06' || thisMonth == '09' || thisMonth == '11')
    limit = 30;
  else if(thisMonth == '02' && thisYear % 4 != 0)
    limit = 28;
  else
    limit = 29;
  return limit;
}

function compareTheseDates(thisEarlierDate,thisDate)
{
  if (new Date(thisEarlierDate) > new Date(thisDate))
    return false;
  else
    return true;
}


