//
////////////////////////////////////////////////////
//  © 2004 Dave Colquhoun dave@monkeygallery.com  //
////////////////////////////////////////////////////
//
//  Modified from Calendar scripts found in phpmyadmin
//  http://www.phpmyadmin.net/
//  Under GPL
//
////////////////////////////////////////
////////////////////////////////////////
//
//  Current date showing
var day;
var month;
var year;
//
//  Month and day names
var aMonthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var aDayNames = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
//
////////////////////////////////////////
////////////////////////////////////////
//  Opens calendar window.
function openCalendar(f, d, m, y) {
	window.open("calendar.php", "calendar", "width=320,height=240");
	fieldDay = eval("document." + f + "." + d);
	fieldMonth = eval("document." + f + "." + m);
	fieldYear = eval("document." + f + "." + y);
}
//
////////////////////////////////////////
////////////////////////////////////////
//  Formats number to two digits.
function formatNum2(i, valtype) {
	f = (i < 10 ? '0' : '') + i;
	if (valtype && valtype != '') {
		switch(valtype) {
			case 'month':
				f = (f > 12 ? 12 : f);
				break;

			case 'day':
				f = (f > 31 ? 31 : f);
				break;

			case 'hour':
				f = (f > 24 ? 24 : f);
				break;

		}
	}
	return f;
}
//
////////////////////////////////////////
////////////////////////////////////////
//  Formats number to four digits.
function formatNum4(i) {
	return (i < 1000 ? i < 100 ? i < 10 ? '000' : '00' : '0' : '') + i;
}
//
////////////////////////////////////////
////////////////////////////////////////
//  Initializes calendar window.
function initCalendar() {
	if (!year && !month && !day) {
		//  Called for first time
		if (window.opener.fieldDay.value) {
			day = parseInt(window.opener.fieldDay.value, 10);
		}
		if (window.opener.fieldMonth.value) {
			month = parseInt(window.opener.fieldMonth.value, 10) - 1;
		}
		if (window.opener.fieldYear.value) {
			year = parseInt(window.opener.fieldYear.value, 10);
		}
		if (isNaN(year) || isNaN(month) || isNaN(day) || day == 0) {
			dt = new Date();
			year  = dt.getFullYear();
			month = dt.getMonth();
			day   = dt.getDate();
		}
	} else {
		// Moving in calendar
		if (month > 11) {
			month = 0;
			year++;
		}
		if (month < 0) {
			month = 11;
			year--;
		}
	}
	//
	if (document.getElementById) {
		cnt = document.getElementById("calendar_data");
	} else if (document.all) {
		cnt = document.all["calendar_data"];
	}
	//
	cnt.innerHTML = "";
	//  
	//  Draw the table
	str = ""
	//  Table header
	str += '<table border="0" width="300" cellpadding="4" cellspacing="1" align="center" >';
	//  Year and month	
	str += '  <tr>';
	str += '	<td colspan="7" class="calendar_year_month">';
	str += '	  <a href="javascript:month--; initCalendar();">&laquo;</a> ';
	str += aMonthNames[month];
	str += '	  <a href="javascript:month++; initCalendar();">&raquo;</a>';
	str += '	  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	str += '	  <a href="javascript:year--; initCalendar();">&laquo;</a> ';
	str += year;
	str += '	  <a href="javascript:year++; initCalendar();">&raquo;</a>';
	str += '	</td>';
	str += '  </tr>';
	//  Day names
	str += '<tr>';
	for (i = 0; i < 7; i++) {
		str += '<td class="calendar_day_name">' + aDayNames[i] + '</td>';
	}
	str += "</tr>";
	//  Dates
	var firstDay = new Date(year, month, 1).getDay();
	var lastDay = new Date(year, month + 1, 0).getDate();
	str += "<tr>";
	dayInWeek = 0;
	for (i = 0; i < firstDay; i++) {
		str += '<td class="calendar_blank">&nbsp;</td>';
		dayInWeek++;
	}
	for (i = 1; i <= lastDay; i++) {
		if (dayInWeek == 7) {
			str += "</tr><tr>";
			dayInWeek = 0;
		}
		if (i == day) {
			style = 'calendar_today';
		} else {
			style = 'calendar_day"';
		}
		str += "<td class=\"" + style + "\" ><a href=\"javascript:returnDate('"+formatNum2(i, 'day')+"', '"+formatNum2(month+1, 'month')+"', '"+formatNum4(year)+"');\">" + i + "</a></td>"
		dayInWeek++;
	}
	for (i = dayInWeek; i < 7; i++) {
		str += '<td class="calendar_blank">&nbsp;</td>';
	}
	//  Table end
	str += "</tr>";
	str += "</table>";
	cnt.innerHTML = str;
}
//
////////////////////////////////////////
////////////////////////////////////////
//  Returns date from calendar.
function returnDate(d, m, y) {
	window.opener.fieldDay.value = d;
	window.opener.fieldMonth.value = m;
	window.opener.fieldYear.value = y;
	window.close();
}
//
////////////////////////////////////////
////////////////////////////////////////



