//DYNAMIC CALENDAR
// "This is a modular approach to create and use dynamic calendar in HTML pages"
// This application is supported by Netscape navigator 4.0 and above as well as IE4.0.
// Created by : Sunil B. Sil on January 22, 2000

//One can use this application in HTML pages by calling a function called "makecal(a,b)" with two arguments, first argument is the position on the screen where the calendar should appear(use <div>...</div>tags for creating positioned blocks) and the second argument is the reference to the text box object where the selected date should appear.



mm = new Array("Jan","Feb","March","April","May","June","July","August","Sep","October","Nov","Dec");
today=new Date();
var date;
var month;
var year;
var htmlBuffer = "";
var header;
var calendarWindow;

var dispPrevMth;
var dispPrevYr;
var dispNextMth;
var dispNextYr;

var first=1;
var objj;
var rg1=3;
var rg2=0;
var highlight;
var targetobj1;
var targetobj2;
var targetobj3;
var formNum;
dayarr = new Array(45);


//start of function

function setdate(indd) 
{
  var dt = "";
  var mth = "";
  if(dayarr[indd] == " ")
    return false;
  if(dayarr[indd] < 10)
  {
  	dt +="0";
  }
  dt += dayarr[indd];
  
  if ( (month+1) < 10 )
    mth +="0";
  mth +=eval("month+1")


var ctr;
	for (ctr=0;ctr<document.forms[formNum].elements.length;ctr++)
	{  
		if (document.forms[formNum].elements[ctr].type=="text")
		{
			if (document.forms[formNum].elements[ctr].name==targetobj1)
			{
				
					document.forms[formNum].elements[ctr].value=dt;
				
			}
			if (document.forms[formNum].elements[ctr].name==targetobj2)
			{	
				
					document.forms[formNum].elements[ctr].value=mth;
				
			}
			if (document.forms[formNum].elements[ctr].name==targetobj3)
				document.forms[formNum].elements[ctr].value=year;
		}
	}

/////
calendarWindow.close();
}

//end of function

function setcal(value) 
{
  if(value == 0) 
  {
    if(month == 0)
    { 
      year = year - 1;
      month = 11; 
    }
    else 
    {
      month = (month - 1); 
    }
  }
  else if(value==1)
  {
    if(month == 11)
    {
      year = year + 1;
      month = 0;
    }
    else
    {
      month = (month + 1);
    }
  }
  else if(value==2)
  {
    year = year - 1;
  }
  else
  {
    year = year+1;
  }
  header=mm[month]+", " + year;
  makecal(); 
  return true; 
}


function closecal()
{
  first=1;
  calendarWindow.close();
}

//start of function

function datecal(mon, yr) 
{
  var totdays;
  var p = 0;
  var len = 0;
  var cumdays = new Array("0","31","59","90","120","151","181","212","243","273","304","334","365");
  var prevMth;
  var prevYr;
  var nextMth;
  var nextYr;

  prevYr = parseInt(yr,10)-1;
  nextYr = parseInt(yr,10)+1;
  dispNextYr = mm[mon]+','+nextYr;
  dispPrevYr = mm[mon]+','+prevYr;
  if ( mon == 0 )
  {
    prevMth = 11;
    dispPrevMth = mm[prevMth]+','+prevYr;
  }
  else
  {
    prevMth = parseInt(mon,10)-1;
    dispPrevMth = mm[prevMth]+','+yr;
  }
  
  if ( mon == 11 )
  {
    nextMth = 0;
    dispNextMth = mm[nextMth]+','+nextYr;
  }
  else
  {
    nextMth = parseInt(mon,10)+1;
    dispNextMth = mm[nextMth]+','+yr;
  }

  if(yr*10 + mon > 20001) 
  {
    totdays = (yr - 2000)*365 + parseInt(cumdays[mon]) - parseInt(cumdays[2]);
    var ppp= Math.floor((yr*10+mon - 20002)/40);
    totdays += ppp;
    p = totdays%7;
    p = (p + 3)%7;
    len = cumdays[mon+1] - cumdays[mon]; 
    if(yr%4==0 && mon==1)
      len += 1; 
  }
  else
  {
    totdays = (2000 - yr)*365 + parseInt(cumdays[2]) - parseInt(cumdays[mon]);
    var ppp= Math.floor((20001 - (yr*10+mon) )/40);
    totdays += ppp;
    p = totdays%7;
    p =(9 - p)%7;
    len = cumdays[mon+1] - cumdays[mon]; 
    if(mon == 1 && yr%4 == 0)
      len += 1;
  }

  for(var i=0; i<45; i++) 
  {
    if(i >= p && i < p+len)
      dayarr[i] =  (i - p + 1);
    else
      dayarr[i] = " ";
  }
  
  if(first==1)
  {
    if(document.layers)
      highlight = p+date+9; 
    else
    {
      highlight= p+date-1;
    }
  }
}
//end of function


//start of function
function makecal()
{

  calendarWindow.document.open();
  calendarWindow.document.write(htmlBuffer);
   
  if(m1==month && y1==year)
    first=1;

  var day=0;

  datecal(month, parseInt(year));

  var calcon = "";

  if(!document.layers) 
  {
    calcon += "<table border='0' width='30%'  bgcolor='#317CC1' cellspacing='1'>";
    calcon += "<tr><td bgColor='#317CC1'><a href='#' onClick='window.opener.setcal(0);return false;'><img border=0 src='/common/cal_back.gif' height=14 width=17 alt="+dispPrevMth+"></a></td>";
    calcon += "<td  align='center' bgcolor='#317CC1' colspan='5'><font face='Arial' color='#FFFFFF' size='2'><b>"
    calcon += header;
    calcon += "</B></font></td><td bgColor='#317CC1'><a href='#' onClick='window.opener.setcal(1);return false;'><img border=0 src='/common/cal_fwd.gif' height=14 width=17 alt="+dispNextMth+"></a></td></tr>";
    calcon +="<tr><td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><strong>S</strong></font></td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><strong>M</strong></font></td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'>&nbsp;<font face='Arial' size='2' color='#FFFFFF'><strong>T</strong></font>&nbsp;</td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><strong>W</strong></font></td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><strong>T</strong></font></td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'>&nbsp;<strong>F</strong>&nbsp;</font></td>";
    calcon +="<td width='14%' align='center' bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><strong>S</strong></font></td></tr>";

    for(var i=0; i<6; i++) 
    {
        calcon +="<tr><td id='tab"
        calcon += day;
        if(day == highlight && first==1)
          calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
        else
          calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		calcon += day;
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day];
		calcon += "&nbsp;</strong></font></td>";

		calcon +="<td id='tab"
		calcon += (day+1);
		if((day+1) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		else
		  calcon +="'  width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		calcon += (day + 1);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day+1];
		calcon += "&nbsp;</strong></font></td>";
		
		calcon +="<td id='tab"
		calcon += (day+2);
		if((day+2) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		else
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		calcon += (day+2);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day + 2];
		calcon += "&nbsp;</strong></font></td>";
		
		calcon += "<td id='tab"
		calcon += (day+3);
		if((day+3) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		else
		  calcon +="'  width='14%' align='center' bgcolor='#AABFD3' onclick=' window.opener.setdate(";
		calcon += (day+3);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day + 3];
		calcon += "&nbsp;</strong></font></td>";
		
		calcon +="<td id='tab"
		calcon += (day+4);
		if((day+4) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick='window.opener.setdate(";
		else
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick='window.opener.setdate(";
		calcon += (day + 4);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day + 4];
		calcon +="&nbsp;</strong></font></td>";
		
		calcon +="<td id='tab"
		calcon += (day+5);
		if((day+5) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3'  onclick='window.opener.setdate(";
		else
		  calcon +="'  width='15%'  align='center'  bgcolor='#AABFD3' onload='alert(i)'; onclick=' window.opener.setdate(";
		calcon += (day+5);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day + 5];
		calcon +="&nbsp;</strong></font></td>";
		
		calcon +="<td id='tab"
		calcon += (day+6);
		if((day+6) == highlight && first==1)
		  calcon +="' width='14%' align='center' bgcolor='#AABFD3' onclick='window.opener.setdate(";
		else
		  calcon +="'  width='15%' align='center' bgcolor='#AABFD3' onclick='window.opener.setdate(";
		calcon += (day+6);
		calcon += ")'><font face='Arial' size='2'><strong>"
		calcon += dayarr[day + 6];
		calcon += "&nbsp;</strong></font></td></tr>";
		day += 7;
    }
	calcon += "<tr><td bgColor='#317CC1'><a href='#' onClick='window.opener.setcal(2);return false;'><img border=0 src='/common/cal_back.gif' height=14 width=17 alt="+dispPrevYr+"></a></td><td width='100%' align='center' bgcolor='#317CC1' colspan='5'>"
	calcon += "<a href='#' onClick='window.opener.closecal();return false;'><img border=0 src='/common/cal_close.gif' height=15 width=15 alt='Close'></a></td>"
	calcon += "<td bgColor='#317CC1'><a href='#' onClick='window.opener.setcal(3);return false;'><img border=0 src='/common/cal_fwd.gif' height=14 width=17 alt="+dispNextYr+"></a></td>"
	calcon += "</tr></table>";
  }
  else 
  {

	calcon += "<layer  name='lay1' bgColor='#317CC1' position='relative' top='0' left='0' width='158' height='176'>";
	calcon += "<layer bgColor='#317CC1' position=relative height=20px width=20px top=2px left=2px><a href='#' onClick='window.opener.setcal(0);return false;'><center><img border=0 src='/common/cal_back.gif' height=14 width=17 alt="+dispPrevMth+"></center></a></layer>" 
	calcon += "<layer position=relative height=20px width=108px top=2px left=24px"
	calcon += " align='center' bgcolor='#317CC1'><center><font face='Arial' size='2' color='#FFFFFF'><b>"
	calcon += header;
	calcon += "</b></font></center></layer>"
	calcon += "<layer   position=relative bgColor='#317CC1' height=20px width=22px top=2px left=134px><a href='#' onClick='window.opener.setcal(1);return false;'><center><img border=0 src='/common/cal_fwd.gif' height=14 width=17 alt="+dispNextMth+"></center></a></layer>" 
	calcon += "<layer   position=relative height=10px width=20px top=24px left=2px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;S</b></font></layer>"
	calcon += "<layer   position=relative height=10px width=20px top=24px left=24px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;M</b></font></layer>"
	calcon += "<layer   position=relative height=10px width=20px top=24px left=46px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;T</b></font></layer>"
	calcon += "<layer   position=relative height=10px width=20px top=24px left=68px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;W</b></font></layer>"
	calcon += "<layer   position=relative height=10px width=20px top=24px left=90px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;T</b></font></layer>"
	calcon += "<layer  position=relative height=10px width=20px top=24px left=112px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;&nbsp;F</b></font></layer>"
	calcon += "<layer   position=relative height=10px width=22px top=24px left=134px"
	calcon += " bgcolor='#317CC1'><font face='Arial' size='2' color='#FFFFFF'><b>&nbsp;S</b></font></layer>"
	
	for(var i=0; i<6; i++) 
	{
		calcon += "<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 2;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += day;
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day];
		calcon += "</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 24;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += (day+1);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day+1];
		calcon += "</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 46;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += (day+2);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day + 2];
		calcon += "</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 68;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += (day+3);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day + 3];
		calcon +="</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 90;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += (day+4);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day + 4];
		calcon +="</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=20px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 112;
		calcon += " onfocus=' window.opener.setdate(";
		calcon += (day+5);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day + 5];
		calcon +="</b></font></layer>";
		
		calcon +="<layer   position=relative height=10px width=22px bgcolor='#AABFD3' top="
		calcon += (i+2)*18 +8;
		calcon += " left ="
		calcon += 134;
		calcon += " onfocus='window.opener.setdate(";
		calcon += (day+6);
		calcon += "); return false;'><font face='Arial' size='2'><b>&nbsp;"
		calcon += dayarr[day + 6];
		calcon += "</b></font></layer>";
		
		day += 7;
	}

	calcon += "<layer position=relative height=20px width=156px top=149px left=0px >"
	calcon += "<layer position=relative bgColor='#317CC1' height=20px width=20px top=2px left=2px><a href='#' onClick='window.opener.setcal(2);return false;'><center><img border=0 src='/common/cal_back.gif' height=14 width=17 alt="+dispPrevYr+"></center></a></layer>" 
	calcon += "<layer position=relative  bgcolor='#317CC1' width=108px left=24px height=20px top=2px><a href='#' onClick='window.opener.closecal();return false;'><center><img border=0 src='/common/cal_close.gif' height=15 width=15 alt='Close'></center></a></layer>"
	calcon += "<layer position=relative bgColor='#317CC1' height=20px width=22px top=2px left=134px><a href='#' onClick='window.opener.setcal(3);return false;'><center><img border=0 src='/common/cal_fwd.gif' height=14 width=17 alt="+dispNextYr+"></center></a></layer>" 
	calcon += "</layer></layer>";
  }

  if(!document.layers)
  {
    calendarWindow.document.write(calcon);
    if(first==1)
      first=0;
  }
  else
  {
    calendarWindow.document.write(calcon);
    if(first==1)
    {
      calendarWindow.document.layers.lay1.document.layers[highlight].bgColor="#AABFD3" 
      first=0;
    }
  }

  calendarWindow.document.write("</body></html>");
  calendarWindow.document.close();
  calendarWindow.focus();

}

//End of function makecal
function init(bvYear,bvMonth,bvDay)
{
  htmlBuffer = "<html>";
  htmlBuffer += "<style type='text/css'>";
  htmlBuffer += "#divblock {position:absolute; visibility:visible; top:68; left:313; height:300; width:300;}";
  htmlBuffer += "</style>";
  htmlBuffer += "<head>";
  htmlBuffer += "<title>CALENDAR</title>";
  htmlBuffer += "</head>";
  htmlBuffer += "<body bgcolor='#317CC1' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>";

  month=parseInt(bvMonth,10)-1;
  date=parseInt(bvDay,10);
  year=parseInt(bvYear);

  d1=date;
  m1=month;
  if(year < 1900) year+= 1900;
    y1=year;
    
  header = mm[month] + ", " + year;

}

function openCalendar(targ1,targ2,targ3,formNumber,bvYear,bvMonth,bvDay)
{
  init(bvYear,bvMonth,bvDay);
  targetobj1 = targ1;
  targetobj2 = targ2;
  targetobj3 = targ3;
  formNum = formNumber;
  windowOptions  = "toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=yes,width=140,height=165";
  if ( document.layers )
    windowOptions = "toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=yes,width=160,height=180";
  calendarWindow = this.open("","calendarWindow",windowOptions);
  makecal();
}
