/*	CSTruter PHP Calendar Control JS File version 1.0
	Author: Christoff Truter
	Date Created: 3 November 2006
	Last Update: 20 November 2006
	e-Mail:  [email protected]
	Website: www.cstruter.com
	Copyright 2006 CSTruter				*/
var months = ["January","February","March","April","May","June", "July","August","September","October","November","December"];
function isLeapYear(year) 
{
	return new Date(year,2-1,29).getDate()==29;
}
function TotalDays(month,year)
{
	var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	return (month==1 && isLeapYear(year)) ? 29 : days[month];
}
function Calendar(ID,date)
{
	/* Private */ 	var fromDate = new Date();
	/* Private */ 	var today = new Date();
	/* Private */	var year;
	/* Private */	var month;
	/* Private */ 	var day;	
	/* Private */	var currentDateStyle;		// Style for current date
	/* Private */	var selectedDateStyle;		// Style for selected dates
	/* Private */	var normalDateStyle;		// Style for unselected dates
	fromDate.setDate(1);
	if (document.all)
	{
		window.attachEvent('onload',attachCalendarEvent);
	}
	else
	{
		window.addEventListener('load',attachCalendarEvent,true);
	}
	/* Private */ function UID(Name)
	{
		return ID + Name;
	}
	/* Private */ function setDate()
	{
		year = fromDate.getFullYear();
		month = fromDate.getMonth();
		day = fromDate.getDay();
	}
	/* Private */ function setSelectedDate(SelDay)
	{
		var selectedObj = document.getElementById(UID('item['+(SelDay+day)+']')).className = selectedDateStyle;
		var linkObj = document.getElementById(UID('hlink['+(SelDay+day)+']')).className = selectedDateStyle;
	}
	/* Private */ function setToday()
	{
		var Today = today.getDate();
		if (today.getMonth()==month && today.getFullYear()==year)
		{
			document.getElementById(UID("item["+(Today+fromDate.getDay())+"]")).className = currentDateStyle;
			document.getElementById(UID("hlink["+(Today+fromDate.getDay())+"]")).className = currentDateStyle;
		}
	}
	/* Public */  this.setStyles = function()
	{
		currentDateStyle = this.currentDateStyle;
		selectedDateStyle = this.selectedDateStyle;		
		normalDateStyle =  this.normalDateStyle;
	}
	/* Public */ this.setCalendarInput = function(day)
	{
		for (i=1;i<=42;i++)
		{
			var Obj = document.getElementById(UID("item["+i+"]"));
			var LObj = document.getElementById(UID("hlink["+i+"]"));
			Obj.className = normalDateStyle;
			if (LObj != null) LObj.className = normalDateStyle;
		}
		setToday();
		setSelectedDate(day);
		var inpObj = document.getElementById(UID('calendar'));
		inpObj.value = year + "-" + (month+1) + "-" + day;
	}
	/* Private */ function attachCalendarEvent()
	{
		var DateSet = (date == undefined) ? false : true;
		document.getElementById(UID('navigateback')).href = "javascript:"+UID('calendar')+".previousMonth()";
		document.getElementById(UID('navigatenext')).href = "javascript:"+UID('calendar')+".nextMonth()";
		
		if (DateSet)
		{
			var DateString = date.split("-");
			fromDate.setYear(DateString[0]);
			fromDate.setMonth((DateString[1]-1));
		}
		setCalendar();
		if (DateSet)
		{
			setSelectedDate(parseInt(DateString[2]));
		}
	}
	/* Private */ function setCalendar()
	{
		setDate();
		for (i=1;i<=42;i++)
		{
			var Obj = document.getElementById(UID("item["+i+"]"));
			Obj.innerHTML="";
			Obj.className = normalDateStyle;
		}
		document.getElementById(UID("Month")).innerHTML = months[month]+" "+year;
		for (i=1;i<=TotalDays(month,year);i++)
		{
			document.getElementById(UID("item["+(i+day)+"]")).innerHTML='<a class="'+normalDateStyle+'" id="'+UID('hlink['+(i+day)+']')+'" href="javascript:'+UID('calendar')+'.setCalendarInput(' + i + ')">' + i + '</a>';
		}
		setToday();
	}
	/* Public */ this.selectMonth = function(month)
	{
		fromDate.setMonth(month);
		setCalendar();
	}
	/* Public */ this.nextMonth = function()
	{
		fromDate.setMonth(fromDate.getMonth()+1);
		setCalendar();		
	}
	/* Public */ this.previousMonth = function()
	{
		fromDate.setMonth(fromDate.getMonth()-1);
		setCalendar();
	}
} 
  |