var dCurDate = new Date();

function MM_findObj(n, d) { //v3.0
  var p,i,x;
  if(!d) d=document; 
  if((p=n.indexOf("?"))>0 && parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }
  if(!(x=d[n]) && d.all) 
    x=d.all[n]; 
  for (i=0; !x&&i<d.forms.length; i++) 
    x=d.forms[i][n];
  for(i=0; !x&&d.layers&&i<d.layers.length; i++) 
    x=MM_findObj(n,d.layers[i].document); 
  return x;
}

function tmt_findObj(n){
  var x,t; 
  if((n.indexOf("?"))>0 && parent.frames.length) {
    t=n.split("?");
    x=eval("parent.frames['"+t[1]+"'].document.getElementById('"+t[0]+"')");
  } else { 
    x=document.getElementById(n);
  }
  return x;
}

var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();

function fGetDaysInMonth(iMonth, iYear) {
  var dPrevDate = new Date(iYear, iMonth, 0);
  return dPrevDate.getDate();
}

function fBuildCal(iYear, iMonth) {
  var aMonth = new Array();
  aMonth[0] = new Array(7);
  aMonth[1] = new Array(7);
  aMonth[2] = new Array(7);
  aMonth[3] = new Array(7);
  aMonth[4] = new Array(7);
  aMonth[5] = new Array(7);
  aMonth[6] = new Array(7);
  var dCalDate = new Date(iYear, iMonth-1, 1);
  var iDayOfFirst = dCalDate.getDay();
  var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
  var iVarDate = 1;
  var i, d, w;
  aMonth[0][0] = "Su";
  aMonth[0][1] = "Mo";
  aMonth[0][2] = "Tu";
  aMonth[0][3] = "We";
  aMonth[0][4] = "Th";
  aMonth[0][5] = "Fr";
  aMonth[0][6] = "Sa";
  for (d = iDayOfFirst; d < 7; d++) {
    aMonth[1][d] = iVarDate;
    iVarDate++;
  }
  for (w = 2; w < 7; w++) {
    for (d = 0; d < 7; d++) {
      if (iVarDate <= iDaysInMonth) {
        aMonth[w][d] = iVarDate;
        iVarDate++;
      }
    }
  }
  return aMonth;
}

monthnames = new Array("January","February","March","April","May","June","July","August","September","October","November","December","January");

function fDrawCal(iYear, iMonth, pos, form, destMonth, destDay, destYear, startYear, endYear) {
  var myMonth;
  myMonth = fBuildCal(iYear, iMonth);
  
  var dynCalendar = "<table border=0 cellpadding=3 cellspacing=1 bgcolor=#666666><tr><td bgcolor=#FFFFFF><table border=0 cellpadding=0 cellspacing=0 align=center><tr><td align=center>Click on the date to autofill<br><form name='frmCalendarSample' style='margin:0'><select name='tbSelMonth' onchange='fDrawCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value, \""+pos+"\", \""+form+"\", \""+destMonth+"\", \""+destDay+"\", \""+destYear+"\", \""+startYear+"\", \""+endYear+"\")'>";
  for (i=0; i<12; i++) {
    dynCalendar += "<option value='"+(i+1)+"'";
    if (i==iMonth-1)
      dynCalendar += " SELECTED";
    dynCalendar += ">"+monthnames[i];
  }  
  dynCalendar += "</select>";
  
  dynCalendar += "<select name='tbSelYear' onchange='fDrawCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value, \""+pos+"\", \""+form+"\", \""+destMonth+"\", \""+destDay+"\", \""+destYear+"\", \""+startYear+"\", \""+endYear+"\")'>";
  
  for (i=startYear; i<=endYear; i++) {
    dynCalendar += "<option value='"+i+"'";
    if (i==iYear)
      dynCalendar += " SELECTED";
    dynCalendar += ">"+i;
  }
  
  dynCalendar += "</select></form></td></tr><tr><td height=2></td></tr><tr><td>\n";
  
  dynCalendar += "<table border=0 bgcolor=#666666 cellpadding=2 cellspacing=1 align=center>";
  dynCalendar += "<tr bgcolor='#E7E7E7'>";
  dynCalendar += "<td align='center'>" + myMonth[0][0] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][1] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][2] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][3] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][4] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][5] + "</td>";
  dynCalendar += "<td align='center'>" + myMonth[0][6] + "</td>";
  dynCalendar += "</tr>";
  for (w = 1; w < 7; w++) {
    if (w>1 && !myMonth[w][0]) {
      break;
    }
    dynCalendar += "<tr bgcolor='#FFFFFF'>";
    for (d = 0; d < 7; d++) {
      dynCalendar += "<td align='center' valign='top' width='10' height='10'>";
      if (!isNaN(myMonth[w][d])) {
        dynCalendar += "<a href=# onClick=\"selectDate('" + iMonth +"','"+myMonth[w][d]+"','"+iYear+"','"+form+"','"+destMonth+"','"+destDay+"','"+destYear+"'); return false;\" style='text-decoration:none'>" + myMonth[w][d] + "</a>";
      } else {
        dynCalendar += " ";
      }
      dynCalendar += "</td>";
    }
    dynCalendar += "</tr>";
  }
  dynCalendar += "</table></td></tr><tr valign=bottom><td height=16 align=center><a href=# onClick='closeCalendar(); return false;'>Close Calendar</a></td></tr></table></td></tr></table>";
  
  if(document.getElementById){
    obj=tmt_findObj("calendar");
	obj.style.left=findPosX(document[pos]) + 3;
	obj.style.top=findPosY(document[pos]) + 3;  
	obj.style.visibility='visible';
  } else {
    obj=MM_findObj("calendar");
	obj.left = findPosX(document[pos]) + 3; 	    
	obj.top=findPosY(document[pos]) + 3;  
    obj.visibility='visible';
  }
  obj.innerHTML = dynCalendar;
}

function closeCalendar() {
  if(document.getElementById){
    obj=tmt_findObj("calendar");
    obj.style.visibility='hidden';
  } else {
    obj=MM_findObj("calendar");
    obj.visibility='hidden';
  }
}

function findPosX(object) {
  var curleft = 0;
  if (object.offsetParent) {
    while (object.offsetParent) {
      curleft += object.offsetLeft
      object = object.offsetParent;
    }
  } else if (object.x)
    curleft += object.x;
  return curleft;
}

function findPosY(object) {
  var curtop = 0;
  if (object.offsetParent) {
    while (object.offsetParent) {
      curtop += object.offsetTop
      object = object.offsetParent;
    }
  } else if (object.y)
    curtop += object.y;
  return curtop;
}

function showCalendar(pos,form,destMonth,destDay,destYear,startYear,endYear) {
  fDrawCal(dCurDate.getFullYear(), dCurDate.getMonth()+1,pos,form,destMonth,destDay,destYear,startYear,endYear);
}

function selectDate(month,day,year,form,destMonth,destDay,destYear) {
  year = year.substr(2,4);
  for (i=0;i<document[form][destMonth].length;i++) {
    if (document[form][destMonth].options[i].value*1==month*1) {
      document[form][destMonth].selectedIndex=i;
    }
  }
  for (i=0;i<document[form][destDay].length;i++) {
    if (document[form][destDay].options[i].value*1==day*1) {
      document[form][destDay].selectedIndex=i;
    }
  }
  for (i=0;i<document[form][destYear].length;i++) {
    if (document[form][destYear].options[i].value*1==year*1) {
      document[form][destYear].selectedIndex=i;
    }
  }
  
  
  
  closeCalendar();
}

