<!--

//------------------- Popup calendar functions -----------

var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var days = new Array("S", "M", "T", "W", "T", "F", "S");

today = new getToday();	
var element_id;

function toggleCalendar(elem_name)
{
	var chooserPanel = document.getElementById("calendartable");
    if (chooserPanel.style.display == "none"){
		ShowCalendar(elem_name);
	} else {
		HideCalendar();
	}		
	return false;
}

function ShowCalendar(elem_name)
{
	if (elem_name==""){
		elem_name = element_id;
	}
	element_id	= elem_name; // element_id is a global variable
	newCalendar();
	SetCalendarOnElement(element_id);
	var calendarelt = document.getElementById("calendartable");
	calendarelt.style.display="inline";
}




 
function newCalendar() 
{   
    var yearselect = document.getElementById("year");
    var yeartext = yearselect[yearselect.selectedIndex].text;
    var parseYear = parseInt(yeartext);

 
    var monthselect = document.getElementById("month");
	var newCal = new Date(parseYear , monthselect.selectedIndex, 1);
	var day = -1;
	var startDay = newCal.getDay();
	var daily = 0; 
	
	var tgtYear = parseYear-2009;
	var tgtMonth = newCal.getMonth();
	var wkdYear = workedDailies[tgtYear];
	var workedMonth = wkdYear[tgtMonth];

	if ((today.year == newCal.getFullYear() ) &&   (today.month == newCal.getMonth())){
	   day = today.day;
	}

	var tableCal = document.getElementById("dayList");
	var intDaysInMonth = getDays(newCal.getMonth(), newCal.getFullYear() );

	for (var intWeek = 0; intWeek < tableCal.rows.length;  intWeek++)
	{
		for (var intDay = 0;
			 	 intDay < tableCal.rows[intWeek].cells.length;
			 	 intDay++)
	 	{
		  	  var cell = tableCal.rows[intWeek].cells[intDay];
//cell.style.border ="";

			  // Start counting days.
			  if ((intDay == startDay) && (0 == daily))
				 daily = 1;
	
			  // Highlight the current day.
//			  cell.style.color = (day == daily) ? "red" : "";	 
			  
//cell.style.color = (1 == daily || 5 == daily || 27 == daily) ? "green" : 
//						((day == daily) ? "red" : ""); 
					
var workedday=false;						
for (var i=0; i<workedMonth.length; i++){
	if (workedMonth[i] == daily){
		workedday=true;
	}
}
						
if (workedday) {
	cell.style.border = "1px solid green";
	cell.style.color = "green";
} else if (day == daily){
	cell.style.border = "";
	cell.style.color = "red";
} else {
	cell.style.border = "";
	cell.style.color = "";
}

			
/*			  
			  if(day == daily)
			  {
			  		var todaydayelt = document.getElementById("todayday");
					todaydayelt.innerHTML="Today: " + (newCal.getMonth()+1) + "/" +  day + "/" +  newCal.getFullYear() ;
			  }	
*/			  	  
			  // Output the day number into the cell.
			  if ((daily > 0) && (daily <= intDaysInMonth)){
				 cell.innerHTML = daily++;
			  } else {
				 cell.innerHTML = "";
			  }
	   	}
	}
}
function getDays(month, year) 
{
	// Test for leap year when February is selected.
	if (1 == month) {
		return ( (0 == year % 4) && (0 != (year % 100)) ) || (0 == year % 400) ? 29 : 28;
	} else {
		return daysInMonth[month];
	}
}

function getToday()
{
	// Generate today's date.
	this.now = new Date();
	this.year = this.now.getFullYear() ; // Returned year XXXX
	this.month = this.now.getMonth();
	this.day = this.now.getDate();
}

	  
function getTodayDay()
{
	var element_id_elt = document.getElementById(element_id_elt);
	element_id_elt.value = (today.month+1) +  "/" + today.day + "/" +  today.year; 
	element_id_elt.display="none";
	element_id_elt.selectedIndex =100;   
	element_id_elt.selectedIndex = today.month; 
}
 
 /* NOTE: This is the event handler which executes when the user clicks on a day.
    Look at the event registration in calendarChooserTable.jsp:  onclick="getDate(event);  
    We explicitly pass the global event variable: event;  I stumbled on this at:
    http://jszen.blogspot.com/2005/03/global-eventin-firefox.html
    It deals with Firefox.
  */
function getDate(e) 
{
	var sourceElement;
    if(e.srcElement){
        sourceElement = e.srcElement;
    } else {
        sourceElement = e.target;
    }
    var nN = sourceElement.nodeName;
	if ("TD" == nN){
            // Test whether day is valid.
        var sourceElementText = sourceElement.innerHTML;
        if ("" != sourceElementText)
		{ 
			var monthelt = document.getElementById("month");
			var mn = monthelt.selectedIndex+1;
			
			var yearelt = document.getElementById("year");
			var Year = yearelt[yearelt.selectedIndex].text;
			var Year2 = Year.substr(2);		
			var element_idelt = document.getElementById(element_id);
			var insertionText = mn +"/" + sourceElementText + "/" +  Year2;

			element_idelt.value = insertionText;
			var calendarPanel = document.getElementById("calendartable");
			calendarPanel.style.display="none";
		}
	}
}

function GetBodyOffsetXY(el_name, shift)
{
        var x=0;
        var y=0;
        var elem = document.getElementById(el_name);
		do
        {
                x += elem.offsetLeft;
                y += elem.offsetTop;
        } while  (elem = elem.offsetParent);
        shift[0] = x;
        shift[1] = y;
        return  x;
}


function SetCalendarOnElement(el_name)
{
	if (el_name=="") {
		el_name = element_id;
	}
	var shift = new Array(2);
	GetBodyOffsetXY(el_name, shift);
	var calendarelt = document.getElementById("calendartable");
	calendarelt.style.left  = shift[0] +"px";
	calendarelt.style.top = shift[1] + 25 +"px";
}
	             


function HideCalendar()
{
	var calendarelt = document.getElementById("calendartable");
	calendarelt.style.display="none";
}
// -->