function getToday(form, dateFieldName)
{ 
  if(form[dateFieldName].value > ""){
    cdate = Date.parse(form[dateFieldName].value);
    today = new Date(cdate);}
  else{
    today = new Date();}
  day = today.getDate(); 
  month = today.getMonth(); 
  month++; 
  year = today.getYear(); 
  year = (year < 1000) ? 1900 + year : year; 
  
} 
function putcal(form, dateFieldName)
{
  getToday(form, dateFieldName);
  calwin = open("","calwin","width=190,height=192,resizable=yes"); 
  calccal(calwin,form,dateFieldName); 
} 

function calccal(CalenderWin,form,dateFieldName)
{ 
  var monthname = new Array(12); 
  monthname[0] = "January"; 
  monthname[1] = "February"; 
  monthname[2] = "March"; 
  monthname[3] = "April"; 
  monthname[4] = "May"; 
  monthname[5] = "June"; 
  monthname[6] = "July"; 
  monthname[7] = "August"; 
  monthname[8] = "September"; 
  monthname[9] = "October"; 
  monthname[10] = "November"; 
  monthname[11] = "December"; 
  var endday = calclastday(eval(month),eval(year)); 
  mystr = month + "/01/" + year; 
  mydate = new Date(mystr); 
  firstday = mydate.getDay(); 
  var cnt = 0; 
  var day = new Array(6); 
  for (var i=0; i<6; i++) 
    day[i] = new Array(7); 
  for (var r=0; r<6; r++) 
  { 
    for (var c=0; c<7; c++) 
    { 
      if ((cnt==0) && (c!=firstday)) 
        continue; 
      cnt++; 
      day[r][c] = cnt; 
      if (cnt==endday) 
        break; 
    } 
    if (cnt==endday) 
      break; 
  } 
  CalenderWin.document.open() 
  CalenderWin.document.writeln ("<html>");
  CalenderWin.document.writeln ("<head>");
  CalenderWin.document.writeln ("<title>Calendar</title>");
  CalenderWin.document.writeln ("<style>"); 
  CalenderWin.document.writeln (" #brack{font-family:arial;font-size:8pt;font-weight:bold}");
  CalenderWin.document.writeln (" body{font-family:arial;font-size:8pt}");
  CalenderWin.document.writeln (" td{font-family:arial;font-size:8pt;font-weight:bold}");
  CalenderWin.document.writeln (" A:link{color=101786}\nA:active{color=101786}\nA:visited{color=101786}\nA:hover{color:FE200E}");
  CalenderWin.document.writeln ("</style>"); 
  CalenderWin.document.writeln ("</head>");
  CalenderWin.document.writeln ("<body topmargin=2 marginheight=2 bgcolor=\"ffffff\">");
  CalenderWin.document.writeln ("<FORM id=form1 name=form1>");
  CalenderWin.document.writeln ("<center>");
  CalenderWin.document.writeln ("<TABLE border=0>");
  CalenderWin.document.writeln (" <TR>"); 
  var prevyear = eval(year) - 1; 
  
  // Previous Year Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=prevyearbutton VALUE='<<'"+ 
   " onclick='opener.month = " + month + "; opener.year = " + prevyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>"); 

  var prevmonth = (month == 1) ? 12 : month - 1; 
  var prevmonthyear = (month == 1) ? year - 1 : year; 

  // Previous Month Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=prevmonthbutton VALUE='&nbsp;<&nbsp;'"+ 
   " onclick='opener.month = " + prevmonth + "; opener.year = " + prevmonthyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",&quot;" + dateFieldName + "\")'></TD>"); 

  var index = eval(month) - 1; 

  // Month/Year Text
  CalenderWin.document.writeln ("    <TD valign=middle ALIGN=CENTER><B>" + monthname[index] + " " + year + "</B></TD>"); 

  var nextyear = eval(year) + 1;         
  var nextmonth = (month == 12) ? 1 : month + 1; 
  var nextmonthyear = (month == 12) ? year + 1 : year; 

  // Next Month Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=nextmonthbutton VALUE='&nbsp;>&nbsp;'"+ 
   " onclick='opener.month = " + nextmonth + "; opener.year = " + nextmonthyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",&quot;" + dateFieldName + "\")'></TD>"); 

  // Next Year Button
  CalenderWin.document.writeln ("    <TD><INPUT id=brack TYPE=BUTTON NAME=nextyearbutton VALUE='>>'"+ 
  " onclick='opener.month = " + month + "; opener.year = " + nextyear + ";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>"); 

  CalenderWin.document.writeln (" </TR>");
  CalenderWin.document.writeln (" <TR>");
  CalenderWin.document.writeln ("   <td colspan=\"5\" align=center>");
  CalenderWin.document.writeln ("     <TABLE border=0 cellpadding=2 cellspacing=2>");
  CalenderWin.document.writeln ("       <TR>"); 
  CalenderWin.document.writeln ("         <TD>Su</TD>"); 
  CalenderWin.document.writeln ("         <TD>Mo</TD>"); 
  CalenderWin.document.writeln ("         <TD>Tu</TD>"); 
  CalenderWin.document.writeln ("         <TD>We</TD>"); 
  CalenderWin.document.writeln ("         <TD>Th</TD>"); 
  CalenderWin.document.writeln ("         <TD>Fr</TD>"); 
  CalenderWin.document.writeln ("         <TD>Sa</TD>"); 
  CalenderWin.document.writeln ("       </TR>"); 
  CalenderWin.document.writeln ("       <TR><TD COLSPAN=7><HR size=1></TD></TR>"); 
  var selectedmonth = eval(month) - 1; 
  var today = new Date(); 
  var thisyear = today.getYear() + 1900; 
  var selectedyear = eval(year) - thisyear + 4; 
  for(r=0; r<6; r++) 
  { 
   CalenderWin.document.writeln ("      <TR>"); 
   for(c=0; c<7; c++) 
   { 
    if(day[r][c] == today.getDate() && year == today.getYear() && month == today.getMonth()+1)
      CalenderWin.document.writeln ("       <TD bgcolor=\"BEBEDC\">"); 
    else
      CalenderWin.document.writeln ("       <TD>"); 
    //CalenderWin.document.writeln (today.getDate()+" " +day[r][c]+" "+today.getYear()+" " +year+" "+ +today.getMonth() +month);
    if(day[r][c] != null) { 
      if (day[r][c] < 10) 
        conditionalpadder = "&nbsp;" 
      else         
          conditionalpadder = ""; 
          CalenderWin.document.write ("<a href=\"javascript:window.close();" +     
          "opener.document."  +  form.name  +  "."  +  dateFieldName  +  ".value= '" + month + "/" + day[r][c] + "/" + year + "'"  +   
          "\">" + conditionalpadder + day[r][c] + conditionalpadder + "</a>") 
    } 
    CalenderWin.document.write ("</TD>"); 
   } 
   CalenderWin.document.writeln ("      </TR>"); 
  } 
  CalenderWin.document.writeln ("     </TABLE>");  
  CalenderWin.document.writeln ("</td></tr></table>");
  CalenderWin.document.writeln ("</center>");
  CalenderWin.document.writeln ("</FORM>"); 
  CalenderWin.document.writeln ("</body>");
  CalenderWin.document.writeln ("</html>");
  CalenderWin.document.close() 
} 

function calclastday(month,year) { 
  if ((month==2) && ((year%4)==0)) 
    return 29; 
  if ((month==2) && ((year%4)!=0)) 
    return 28; 
  if ((month==1) || (month == 3) || (month == 5) || (month == 7) || 
      (month==8) || (month == 10) || (month ==12)) 
    return 31; 
  return 30; 
}

function jValDate(mVar,mName)
{
  
  if (mVar.value == '')
   { return true;}
  var tvar = jConvDate(mVar.value)
  if (tvar == '')
  {
    alert (mName + " is invalid");
    mVar.focus();
    mVar.select();
   
    return false;
  }
  else
  {
    mVar.value = tvar;
    return true;
  }
  return true;
}

function jConvDate(theDate)
{

  sCurDate = new Date();
  nCurYear = sCurDate.getFullYear();
  
  sDate = new Date(theDate);
  nYear = sDate.getFullYear();
  if(nYear.length < 4)
  {
    if (nYear + 2000 > nCurYear){
      nYear += 1900;}
    else{
      nYear += 2000;}    
  }
  
  var ipos = 0;
  var imonth = 0;
  var iday = 0;
  var iyear = 0;
  var icent = 0;
  var iDate = '';
  var jstr = '';
  ipos = theDate.indexOf("-");
  if (ipos < 0)
    { ipos = theDate.indexOf("/"); }
  if (ipos < 0)
    { 
      if (theDate.length < 6)
      {
        if (theDate.length == 1) {return iDate;}
        if (theDate.length == 2) {theDate = "0" + theDate.substring(0,1) + "0" + theDate.substring(1,2) + "<%= Year(Date()) %>";}


        if (theDate.length == 3) {theDate = "0" + theDate + nYear;}
        if (theDate.length == 4) {theDate += nYear;}
        
        if (theDate.length == 5) {theDate = "0" + theDate;}
      }
      imonth = theDate.substring(0, 2);
      jstr = theDate.substring(2);
    }
  else
    {
      imonth = theDate.substring(0, ipos);
      jstr = theDate.substring(ipos+1);
    }
  if (imonth > 12 || imonth < 1)
    { return (iDate); }
  ipos = jstr.indexOf("-");
  if (ipos <0)
    { ipos = jstr.indexOf("/"); }
  if (ipos < 0)
    { 
    iday = jstr.substring(0,2);
    iyear = jstr.substring(2);
    }
  else
    {
      iday = jstr.substring(0, ipos);
      iyear = jstr.substring(ipos+1);
    }
  if (iyear < 100)
  {
    if(iyear==""){
      iyear = nYear;}
    else{
      iyear = (Math.round(iyear) + (Math.round(nYear/100) * 100));}
  }
  else
   {
     if (iyear < 1000) iyear = nYear;
   }
  var lastday = 31;
  if (imonth == 2)
  {
    lastday = 28;
    if (iyear%4 == 0) lastday = 29;
  }
  if ((imonth == 4) || (imonth == 6) || (imonth == 9) || (imonth == 11))
  {
    lastday = 30;
  }
  if (iday < 1 || iday > lastday) return (iDate);
  
  if ((isNumber(iday,false,false)) && (isNumber(imonth,false,false)) && (isNumber(iyear,false,false)))
  {
    iDate = "";
    iDate += imonth;
    if (iDate.length < 2) iDate = "0" + iDate;
    iDate += "/";
    iDate += iday
    if (iDate.length  < 5) iDate = iDate.substr(0,3) + "0" + iday;
    iDate += "/" + iyear;
  }
  return (iDate);
}

function isNumber(mVar,dec,neg)
{
  for (var i = 0; i < mVar.length; i++)
  {
    var ch = mVar.substring(i, i + 1);
    if ((ch == "-" && neg==false) || (ch == "-" && i > 0))
    {
      return false;
    }
    if (((ch < "0" || ch > "9") && ch != ".") || (ch == "." && dec == false))
    {
      return false;
    }
  }
  return true;
}
