var x; //for rows in calendar table
var x; //for rows in calendar table
var y; //for coulmns in calendar table
var i, j; //counters
var objdiv, objtextbox, objposelement ; //object for calendar div element, text box which need to be populate and element name where display the calendar layer
var	monthName = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var	monthNameLong = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var dayName = new Array	("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
var selMonth, selYear; //currently selected month and year
	
var curdate = new Date();
var curday, curmonth, curyear;
curday = curdate.getDate();
curmonth = curdate.getMonth();
if (document.all)
	curyear = curdate.getYear();
else
	curyear = 1900 + curdate.getYear();

loadcalendar(1901, 2020); //load calendar ( Hidden )
changecalendar(); //load calendar dates

function loadcalendar(minYear, maxYear) {
	document.write ("<div id='divcalc' style='position: absolute; top: 0px; left: 0px; visibility: hidden; display: none'>");
	document.write ("<table id='tblcalc' border='1' cellspacing='0' cellpadding='0' class='calc'>");
	document.write ("<tr><td colspan='6' align='center'>");
	document.write ("<select id='cmbmonth' class='calc_cmbbox' onchange='changecalendar()' style='width: 80px;'>");

	for (i=0; i<=11; i++) {
		if (curmonth==i)
			document.write ("<option value='"+i+"' selected>"+monthNameLong[i]+"</option>");
		else
			document.write ("<option value='"+i+"'>"+monthNameLong[i]+"</option>");
	}
	document.write ("</select>");
		
	document.write ("<select id='cmbyear' class='calc_cmbbox' onchange='changecalendar()' style='width: 55px;'>");
	for (i=minYear; i<=maxYear; i++) {
		if (curyear==i)
			document.write ("<option value='"+i+"' selected>"+i+"</option>");
		else
			document.write ("<option value='"+i+"'>"+i+"</option>");
	}
	document.write ("</select>");
	document.write ("</td>");
	document.write ('<td align="center" class="calc_dt"><a href="javascript: hidecalc(\'divcalc\');"><strong>X</strong></a></td></tr>');
	document.write ("<tr class='calc_hd'><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>");
		
	for (i=1; i<=6; i++) {
		document.write ("<tr class='calc_dt'>");
		for (j=0; j<=6; j++) {
			document.write ("<td>&nbsp;</td>");
		}
	}
	document.write ("<tr class='calc_hd'><td colspan='7'>Today : "+curday+"-"+monthName[curmonth]+"-"+curyear+"</td></tr>");
	document.write ("</table></div>");
}

function changecalendar()
{
	selMonth=document.getElementById("cmbmonth").value;
	selYear=document.getElementById("cmbyear").value;

	var tr, tc;		
	var serial = 0
	var tmpdate = new Date();
	tmpdate.setDate("1")
	tmpdate.setMonth(selMonth)
	tmpdate.setYear(selYear)
	var daysinmonth = getnoofdays(selMonth,selYear)
	var firstdayofmonth = tmpdate.getDay()

	x = document.getElementById('tblcalc').rows
		
	for (tr=2;tr<=7;tr++) 
	{
		x.className="calc_dt";
		y=x[tr].cells	
		for (tc=0;tc<=6;tc++) 
		{
			serial +=1;			
			if (serial <= firstdayofmonth) 
				y[tc].innerHTML="&nbsp;";	
			else 
			{ 
				if ((serial-firstdayofmonth) > daysinmonth) 
					y[tc].innerHTML="&nbsp;";
				else
				{
					if ((serial - firstdayofmonth) == curday && selMonth == curmonth && selYear == curyear)
					{
						if (tc == 0)
							y[tc].innerHTML = '<a href="javascript: upload('+ (serial - firstdayofmonth) +');"><span style="color: red; font-weight: 700;">' + (serial - firstdayofmonth) + '</span></a>';
						else
							y[tc].innerHTML = '<a href="javascript: upload('+ (serial - firstdayofmonth) +');"><strong>' + (serial - firstdayofmonth) + '</strong></a>';
					}
					else
					{
						if (tc == 0)
							y[tc].innerHTML = '<a href="javascript: upload('+ (serial - firstdayofmonth) +');"><span style="color: red;">' + (serial - firstdayofmonth) + '</span></a>';
						else
							y[tc].innerHTML = '<a href="javascript: upload('+ (serial - firstdayofmonth) +');">' + (serial - firstdayofmonth) + '</a>';
					}
				}
			}
		}
	}	
}

function getnoofdays(m,y)
{
	m = parseInt(m)+1;
	y = parseInt(y);
	if (m==0) { m = 12; y = y - 1; }
	if (m==13) { m = 1; y = y +1; }	
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) { return 31; }
	if (m == 4 || m == 6 || m == 9 || m == 11) { return 30; }
	if (m == 2 &&  y%4 == 0) { return 29; }
	if (m == 2 &&  y%4 != 0) { return 28; }
}

function upload(val)
{
	if(val!="") {
		//opener.document.getElementById(fld1).value = val+"-"+monthName[selMonth]+"-"+selYear;
		objtextbox.value=val+"-"+monthName[selMonth]+"-"+selYear;
		hidecalc("divcalc");
	}
}

function hidecalc(divname)
{
	objdiv=document.getElementById(divname);
	objdiv.style.visibility="hidden";
	objdiv.style.display="none";
	objdiv.style.left="0px";
	objdiv.style.top="0px";
}

function showcalendar(tbobj, posobj)
{
	objtextbox=document.getElementById(tbobj);
	objposelement=document.getElementById(posobj);
	objdiv=document.getElementById("divcalc");
	
	var elmOffsetTop = 0, elmOffsetLeft = 0;
				
	while(objposelement != document.body) {
		elmOffsetTop += objposelement.offsetTop;
		elmOffsetLeft += objposelement.offsetLeft;
		objposelement = objposelement.offsetParent;
	}
	
	objdiv.style.left=elmOffsetLeft+20+"px";
	objdiv.style.top=elmOffsetTop+"px";
	objdiv.style.visibility="visible";
	objdiv.style.display="";
}
