// JavaScript Document

var tx_artificaCalendar_dateSelected = 0;
var tx_artificaCalendar_contentUid = 0;

function tx_artificaCalendar_replaceLink()
{
	var arrLinks = document.links;
	
	for(var i = 0; i < document.links.length; ++i)
	{
		var oA = document.links[i];

		if(oA.id == 'tx-artificacalendar-link-month-previous')
 		{	
			oA.setAttribute('href', 'javascript:void(0);');
			
			oA.onclick = function() {
				tx_artificarestorations_pi1_processFormData(xajax.getValues('tx_artificarestorations_pi1[action]=loadCalendar&tx_artificarestorations_pi1[cmd]=previousMonth&tx_artificarestorations_pi1[selected]=' + tx_artificaCalendar_dateSelected + '&tx_artificarestorations_pi1[element]=tx-artificacalendar-content-' + tx_artificaCalendar_contentUid));
				return false;
			}
		}
		
		if(oA.id == 'tx-artificacalendar-link-month-next')
 		{		
			oA.setAttribute('href', 'javascript:void(0);');
			
			oA.onclick = function() {
				tx_artificarestorations_pi1_processFormData(xajax.getValues('tx_artificarestorations_pi1[action]=loadCalendar&tx_artificarestorations_pi1[cmd]=nextMonth&tx_artificarestorations_pi1[selected]=' + tx_artificaCalendar_dateSelected + '&tx_artificarestorations_pi1[element]=tx-artificacalendar-content-' + tx_artificaCalendar_contentUid));
				return false;
			}
		}		
	}
}

function setToday()
{
	var now   = new Date();
	var day   = now.getDate();
	var month = now.getMonth();
	var year  = now.getYear();
	if (year < 2000)
	year = year + 1900;
	this.focusDay = day;
	document.calControl.month.selectedIndex = month;
	document.calControl.year.value = year;
	displayCalendar(month, year);
}


function isFourDigitYear(year)
{
	if (year.length != 4)
	{
		alert ("Sorry, the year must be four-digits in length.");
		document.calControl.year.select();
		document.calControl.year.focus();
	}
	else
	{
		return true;
	}
}


function selectDate()
{
	var year  = document.calControl.year.value;
	
	if (isFourDigitYear(year))
	{
		var day   = 0;
		var month = document.calControl.month.selectedIndex;
		displayCalendar(month, year);
	}
}


function setPreviousYear()
{
	var year  = document.calControl.year.value;
	if (isFourDigitYear(year))
	{
		var day   = 0;
		var month = document.calControl.month.selectedIndex;
		year--;
		document.calControl.year.value = year;
		displayCalendar(month, year);
	}
}


function setPreviousMonth()
{
	var year  = document.calControl.year.value;
	
	if (isFourDigitYear(year))
	{
		var day   = 0;
		var month = document.calControl.month.selectedIndex;
		
		if (month == 0)
		{
			month = 11;
			
			if (year > 1000)
			{
				year--;
				document.calControl.year.value = year;
			}
		}
		else
		{
			month--;
		}
		
		document.calControl.month.selectedIndex = month;
		
		displayCalendar(month, year);
	}
}


function setNextMonth()
{
	var year  = document.calControl.year.value;
	
	if (isFourDigitYear(year))
	{
		var day   = 0;
		var month = document.calControl.month.selectedIndex;
		if (month == 11)
		{
			month = 0;
			year++;
			document.calControl.year.value = year;
		}
		else
		{
			month++;
		}
		document.calControl.month.selectedIndex = month;
		displayCalendar(month, year);
	}
}


function setNextYear()
{
	var year = document.calControl.year.value;
	
	if (isFourDigitYear(year))
	{
		var day = 0;
		var month = document.calControl.month.selectedIndex;
		year++;
		document.calControl.year.value = year;
		displayCalendar(month, year);
	}
}


function displayCalendar(month, year)
{       
	month = parseInt(month);
	year = parseInt(year);
	
	var i = 0;
	var days = getDaysInMonth(month+1,year);
	var firstOfMonth = new Date (year, month, 1);
	var startingPos = firstOfMonth.getDay();
	
	days += startingPos;
	
	document.calButtons.calPage.value  =   " Su Mo Tu We Th Fr Sa";
	document.calButtons.calPage.value += "\n --------------------";
	
	for (i = 0; i < startingPos; i++)
	{
		if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
		document.calButtons.calPage.value += "   ";
	}
	
	for (i = startingPos; i < days; i++)
	{
		if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
		if (i-startingPos+1 < 10)
		document.calButtons.calPage.value += "0";
		document.calButtons.calPage.value += i-startingPos+1;
		document.calButtons.calPage.value += " ";
	}
	
	for (i=days; i<42; i++) 
	{
		if ( i%7 == 0 ) document.calButtons.calPage.value += "\n ";
		document.calButtons.calPage.value += "   ";
	}
	document.calControl.Go.focus();
}


function getDaysInMonth(month,year) 
{
	var days;
	
	if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
	{
		days=31;
	}
	else if (month==4 || month==6 || month==9 || month==11)
	{
		days=30;
	}
	else if (month==2)
	{
		if (isLeapYear(year))
		{
			days=29;
		}
		else
		{
			days=28;
		}
	}
	
	return (days);
}


function isLeapYear (Year)
{
	var flag = false;	
	
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
	{
		flag = true;
	}
	
	return flag;
}


addLoadEvent(tx_artificaCalendar_replaceLink);
