var cPlace = "";
function setDate(elem, day, month, year, place) {
  document.getElementById(elem).value = month + '\\' + day + '\\' + year;
  document.getElementById(place).style.display = "none";
}
function noShow() {
  document.getElementById(cPlace).style.display = "none";  
}
function LeapYear(year)
{
	if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
		return true;
	return false;
}
function NoOfDays(month, year)
{	
	var ar = new Array(12);
	ar[0] = 31; 
	ar[1] = (LeapYear(year)) ? 29 : 28
	ar[2] = 31;
	ar[3] = 30;
	ar[4] = 31;
	ar[5] = 30;
	ar[6] = 31;
	ar[7] = 31;
	ar[8] = 30;
	ar[9] = 31;
	ar[10] = 30;
	ar[11] = 31;	
	return ar[month];
}
function MonthName(month)
{	
	var ar = new Array(12);
	ar[0] = "Jan";
	ar[1] = "Feb";
	ar[2] = "Mar";
	ar[3] = "Apr";
	ar[4] = "May";
	ar[5] = "June";
	ar[6] = "July";
	ar[7] = "Aug";
	ar[8] = "Sept";
	ar[9] = "Oct";
	ar[10] = "Nov";
	ar[11] = "Dec";
	return ar[month];
}
function InitCalendar(place, elem, cDate)
{	
  cPlace = place;
  if(cDate) {
    var now = cDate.split("\\");    
    var year = parseInt(now[2]);
	  var month = parseInt(now[0]);	
	  var date = parseInt(now[1]);
	} else {
    var now = new Date();
    var year = now.getYear();
	  if(year<1900)
	 	 year += 1900;
	  var month = now.getMonth()+1;
	  var date = now.getDate();
	}	
	now = null;
	ShowCalendar(date, month, year, place, elem);
}

function ShowCalendar(date, month, year, place, elem)
{
  var m_name = MonthName(month-1);
  var fDayDate = new Date(year, month-1, 1);
	var fDay = fDayDate.getDay();
	if(!fDay)
		fDay=7;	
  fDayDate = null;	
	var dayNo = NoOfDays(month-1, year);
	var next, prev, next_y, prev_y;
	if(month==12){
   next=1;
   next_y=year+1;
  }
	else {
	 next = month+1;
	 next_y=year;
	}
	if(month==1) {
	 prev=12;
	 prev_y=year-1;
	}
	else {
	 prev = month-1;
	 prev_y  = year;
	}
	var text = "";
	text += '<center>';
	text += '<table class="calendar" cellspacing="0" cellpadding="0">';
	text += 	'<tr class="calendar_top">';
	text +=     '<td align="center"><a href="javascript:ShowCalendar('+ date + ', '+prev+', '+prev_y+', \''+place+'\', \''+elem+'\');">&laquo;</a></td>'; 
	text += 		'<td  align="center" colspan="5">';
	text += 			m_name + ' ' + year;
	text += 		'</td>';
  text +=     '<td align="center" ><a href="javascript:ShowCalendar('+ date + ', '+next+', '+next_y+', \''+place+'\', \''+elem+'\');">&raquo;</td>'; 
	text += 	'</tr>';

	text += '<tr>';
	text += '<td class="calendar_day">M</td>'; 
	text += '<td class="calendar_day">T</td>'; 
	text += '<td class="calendar_day">W</td>'; 
	text += '<td class="calendar_day">T</td>'; 
	text += '<td class="calendar_day">F</td>'; 
	text += '<td class="calendar_day">S</td>'; 
	text += '<td class="calendar_day">S</td>'; 
	text += '</tr>';
	
	var idata = 1;
	var cell = 1;
	
	for (var row = 1; row <= Math.ceil((dayNo + fDay - 1) / 7); ++row)
	{
		text += '<tr>';
		for (var col = 1; col <= 7; ++col)
		{
			if (idata > dayNo)
				break;
			if (cell < fDay)
				text += '<td></td>';
			else
			{			
				if (idata == date)				
					text += '<td onclick=\"setDate(\''+ elem + '\', \''+ idata + '\', \''+ month + '\', \''+ year + '\', \''+ place + '\')\" onmouseover="this.className=\'calendar_over\'" onmouseout="this.className=\'calendar_selected\'" class="calendar_selected">' + idata + '</td>';				
				else
					text += '<td onclick=\"setDate(\''+ elem + '\', \''+ idata + '\', \''+ month + '\', \''+ year + '\', \''+ place + '\')\" onmouseover="this.className=\'calendar_over\'" onmouseout="this.className=\'calendar_cell\'" class="calendar_cell">' + idata + '</TD>';
				idata++;
			}
			cell++;
		}
		text += '</tr>'
	}
	
	text += '<tr><td colspan="7" style="text-align: center; background: #f1f1f1; cursor: pointer;" onclick="noShow()">[close]</td></tr></table>'
	text += '</center>'
	var x=0;
	var y=0;
	
	obj = document.getElementById(elem);	
	while (obj!=null){
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
		obj=obj.offsetParent;
	}	
	document.getElementById(place).style.top=y;
	document.getElementById(place).style.left=x+200;
  document.getElementById(place).style.display='block';
	document.getElementById(place).innerHTML=text;
}
