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

var dates=new Array();
var showing=new Array();
var fields_month=new Array();
var fields_day=new Array();
var fields_year=new Array();
var cals=new Array();

function showCal(index)
	{
	if(cals[index].style.visibility=='visible')
		{
		cals[index].style.visibility='hidden';
		}
	else	
		{
		drawCal(index, dates[index]);
		}
	}

function drawCal(index, date)
	{
	var current=new Date();
	showing[index]=new Date();

	showing[index].setFullYear(date.getFullYear(),date.getMonth(),1);
	current.setFullYear(date.getFullYear(),date.getMonth(),1);

	var w=current.getDay();
	var m=current.getMonth();
	var d=0;

	var output="<table cellspacing='0' cellpadding='2' width='150'><tr>";
	output+="<td><a href='javascript:showCalPrev("+index+");'>&#171;</a></td>";
	output+="<td class='jsMonthYear' align='center' colspan='5'>"+months[m]+" "+date.getFullYear()+"</td>";
	output+="<td align='right'><a href='javascript:showCalNext("+index+");'>&#187;</a></td>";
	output+="</tr><tr class='jsWeekDays'>";
	output+="<td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td></tr>";

	for(var i=0;i<35;i++)
		{
		if(i%7==0) { output+="<tr>"; }

		if(d==0 && i==w) { d=1;current.setDate(1); }
		else if(d==1) { current.setDate(current.getDate()+1); }

		if(d==0 || current.getMonth()!=m) { output+="<td></td>"; }
		else
			{
			var dayClass;

			if(current.getYear()==dates[index].getYear() &&
				current.getMonth()==dates[index].getMonth() &&
				current.getDate()==dates[index].getDate())
				{
				dayClass="jsCurrentDay";
				}
			else
				{
				dayClass="jsCalendarDay";
				}

			output+="<td class='"+dayClass+"' onMouseOver='this.className=\""+dayClass+"HL\"' onMouseOut='this.className=\""+dayClass+"\"' ";
			output+="onClick='selectDay("+index+","+current.getDate()+")'>";
			output+=current.getDate()+"</a></td>";
			}


		if(i%7==6) { output+="</tr>"; }
		}

	output+="</table>";

	cals[index].innerHTML=output;
	cals[index].style.visibility="visible";
	}

function showCalNext(index)
	{
	var next=showing[index];
	next.setMonth(next.getMonth()+1);

	drawCal(index, next);
	}

function showCalPrev(index)
	{
	var prev=showing[index];
	prev.setMonth(prev.getMonth()-1);

	drawCal(index, prev);
	}

function selectDay(index, day)
	{
	fields_month[index].selectedIndex=showing[index].getMonth();
	fields_day[index].selectedIndex=day-1;
	fields_year[index].selectedIndex=showing[index].getFullYear()-2006;
	
	cals[index].style.visibility="hidden";
	}
	
function showPopup(id, parentObj)
	{
	var div=document.getElementById(id);
	
	div.style.display="inline";
	
	if(div.offsetTop+div.offsetHeight>document.body.offsetHeight &&  //off the bottom, 
		div.offsetTop>div.offsetHeight) //but not off the top if moved up
		{
		div.style.marginTop=(div.offsetHeight+parentObj.offsetHeight-1)*-1;
		}
	
	}

function hidePopup(id)
	{
	document.getElementById(id).style.display="none";
	}

function toggleEvents(className)
	{
	var divs=document.getElementsByTagName('div');

	for(var i=0;i<divs.length;i++)
		{
		var short=divs[i].className.substr(0,className.length);
		var suffix=divs[i].className.substr(className.length);

		if(short==className)
			{

			if(divs[i].className==short) { divs[i].className=short+'Min'; }
			else if(suffix=='Min') { divs[i].className=short; }
			}
		}
	}