function ChangeDate (form,day)
{
	yr=form.YearChoice.selectedIndex;
	mon=form.MonthChoice.selectedIndex;
	location.href=form.HomePath.value+"?Date="+
   (form.YearChoice.options[yr].text)+"-"+(mon+1)+"-"+day;
}

function ConfirmDeletion (id,cmd)
{
	var idMessage = (id == "") ? "" : " (ID="+id+")";
	if (confirm("Are you sure you want to remove this record"+idMessage+"?"))
		location.href=cmd;
}

function GoConfirm (cmd,message)
{
	if ((message == '') || (message == undefined))
		message = 'About to launch: '+cmd+'\n\nAre you sure? ';
	if (confirm(message))
		location.href=cmd;
}

function ConfirmClear (cmd)
{
	if (confirm ('Are you sure you want to clear all events for this day?'))
		location.href=cmd;
}

function ChangeUserSelection ()
{
	var form = document.Settings;
	var page = form.HomePath.value;
	var choices = form.ViewUser
	var user = choices.selectedIndex;
	location.href=page+"?UserView="+choices.options[user].text;
}

function GoPage (page,event)
{
	//alert (event.type+" Shift="+(event.modifiers & Event.SHIFT_MASK));
	location.href=page;
}

function Ask (msg)
{
	if (confirm ('Are you sure?'))
		return true;
	return false;
}

function Right (str,len)
{
	var s = String (str);
	return s.substr (s.length-2,len);
}

function ToggleVisibility (id)
{
	e=document.getElementById (id);
	if (e.style.visibility == "visible")
		e.style.visibility = "hidden";
	else e.style.visibility = "visible";
}

function DaysInMonth(month,year)
{
	var m = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (month != 1) return m[month];
	if (year%4 != 0) return m[1];
	if (year%100 == 0 && year%400 != 0) return m[1];
	return m[1] + 1;
}

function ShowCalendar (dt,formName)
{
	var form = document.forms[formName];
	var year = form.elements[dt+'_Year'];
	var month = form.elements[dt+'_Month'];
	var day = form.elements[dt+'_Day'];
	var thisDay = day.value;
	var thisMonth = month.selectedIndex;
	var thisYear = year.options[year.selectedIndex].text;
	var cal = new Date ();
	cal.setDate (1);
	cal.setYear (thisYear);
	cal.setMonth (thisMonth);
	start = cal.getDay ()+1;
	for (i = 1; i < 42; i++)
		document.getElementById (dt+i).innerHTML = '';
	numDays = DaysInMonth (thisMonth,thisYear);
	for (i = 0; i < numDays; i++)
		document.getElementById (dt+(start+i)).innerHTML = (i+1);
	ToggleVisibility ('Popup_'+dt);
}

function ResetDate (dt,year,month,day,formName)
{
	var form = document.forms[formName];
	var firstYear = form.elements[dt+'_Year'].options[0].text;
	form.elements[dt+'_Year'].selectedIndex = parseInt (year) - parseInt (firstYear);
	form.elements[dt+'_Month'].selectedIndex = month-1;
	//form.elements[dt+'_Day'].selectedIndex = day-1;
	form.elements[dt+'_Day'].value = day;
	form.elements[dt].value = year+'-'+month+'-'+day;
	Align_Dates (dt,formName);
}

function Set_Date (dt,formName)
{
	var form = document.forms[formName];
	var date = DateValue(dt,formName);
	form.elements[dt].value = date;
	return date;
}

function DateSet (dt,val,formName)
{
	s = new String (val);
	d = s.split ('-');
	ResetDate (dt,d[0],d[1],d[2],formName);
}

function DateValue (dt,formName)
{
	var form = document.forms[formName];
	var year = form.elements[dt+'_Year'];
	var month = form.elements[dt+'_Month'];
	var day = form.elements[dt+'_Day'];
	var date = year.options[year.selectedIndex].text + '-' + Right('00'+(month.selectedIndex+1),2)+ '-' + Right('00'+day.value,2);
	return date;
}

function Set_Day (dt,cell,formName)
{
	ToggleVisibility ('Popup_'+dt);
	var form = document.forms[formName];
	var e = document.getElementById (dt+cell).innerHTML;
	if (e)
		form.elements[dt+'_Day'].value = Right('00'+e,2);
	Set_Date (dt,formName);
	Align_Dates (dt,formName);
}

function Align_Dates (field,formName)
{
	var form = document.forms[formName];
	var startDate = form.elements['StartDate'];
	if (startDate == null)
		return;
	start = DateValue('StartDate',formName);
	end = DateValue('EndDate',formName);
	if ((field == 'StartDate') && (start > end))
		DateSet ('EndDate',DateValue ('StartDate',formName),formName);
	else if ((field == 'EndDate') && (end < start))
		DateSet ('StartDate',DateValue ('EndDate',formName),formName);
}
