//*************************************************************************************************
//javascript da inserire nella pagina html per il funzionamento del calendario
//la data della pagina
//	var pageDateString = "2004/01/22"
//l'ultima data attiva del calendario
//  var lastDateShowString  = "2004/10/15"
//************************************************************************************************

// la prima data utile del calendario
var firstDateString = "2005/09/07";
// l'ultima data utile del calendario
var lastDateString  = "2006/05/07";

var pageDate = dateFromString(pageDateString);
var firstDate = dateFromString(firstDateString);
var lastDate  = dateFromString(lastDateString);
var lastDateShow = dateFromString(lastDateShowString);

function makeArray() {
	for (i = 0; i < makeArray.arguments.length; i++)
		this[i + 1] = makeArray.arguments[i]
}

var monthNames= new makeArray('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
var dayNames  = new makeArray('L','M','M','G','V','S','D');
var monthDays = new makeArray(31,28,31,30,31,30,31,31,30,31,30,31);

// alcuni controlli
if (daysElapsed(lastDate, lastDateShow) < 0)  lastDateShow = lastDate;
if (daysElapsed(firstDate, pageDate) > 0) pageDate = firstDate;
if (daysElapsed(lastDateShow, pageDate) < 0)  pageDate = lastDateShow;

function daysElapsed(date1, date2) {
	var difference =
		  Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate(), 0, 0, 0)
		- Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate(), 0, 0, 0)
	return difference / 1000 / 60 / 60 / 24;
}

function dateFromString(dateString) {
	//alert('Data: ' + dateString)
	return new Date(dateString.substring(0, 4), dateString.substring(5, 7) - 1, dateString.substring(8, 10))
}

function dayOfWeek(day, month, year) {
	var a = Math.floor((14 - month) / 12)
	var y = year - a
	var m = month + 12 * a - 2
	var d = (day + y + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400) + Math.floor((31 * m) / 12) - 1) % 7
	return d
}

function dayOfMonth(month, year) {
	var d = monthDays[month]
	if ((month == 2) && ((year % 400 == 0) || ((year % 100 != 0) && (year %4 == 0)))) d = 29
	return d
}

function formattedPageDate()
{
	var y = pageDateString.substring(0, 4) - 0
	var m = pageDateString.substring(5, 7) - 0
	var d = pageDateString.substring(8, 10) - 0
	document.write(d + ' ' + monthNames[m].toUpperCase() + ' ' + y)
}

function formattedPageDateShort()
{
	var y = pageDateString.substring(0, 4) - 0
	var m = pageDateString.substring(5, 7) - 0
	document.write(monthNames[m].toUpperCase() + ' ' + y)
}

function changePage(day, month, year)
{
	if (daysElapsed(new Date(year,month-1,day), firstDate ) < 0)
	{
		day =  firstDate.getDate()
		month = firstDate.getMonth()+1
		year = firstDate.getFullYear()
	}
	if (daysElapsed(new Date(year,month-1,day), lastDateShow ) > 0)
	{
		day =  lastDateShow.getDate()
		month = lastDateShow.getMonth()+1
		year = lastDateShow.getFullYear()
	}
	var d = (day < 10) ? '0' + day : day;
	var m = (month < 10) ? '0' + month : month;
	var url = document.location.href
	if (url.indexOf('/video/') > -1)
	{
		if ((m == '01') && (d == '01')) d = '10'
		document.location = '/video/' + year + '/' + m + '/' + d + '/videogallery.shtml'
	}
	else if (url.indexOf('/foto/') > -1)
	{
		document.location = '/foto/' + year + '/' + m + '/fotogallery.shtml'
	}
	else if (url.indexOf('/news/') > -1)
	{
		if ((m == '01') && (d == '01')) d = '07'
		document.location = '/news/' + year + '/' + m + '/' + d + '/archivionews.shtml'
	}
}

function boxMonth()
{
	var month = pageDate.getMonth() + 1;
	var f_month = firstDate.getMonth() + 1;
	var l_month = lastDate.getMonth() + 1;
	var ls_month = lastDateShow.getMonth() + 1;
	var year1, year2;
	var box = '';
	var attivo = true;

	if ((ls_month >= f_month) && (ls_month <= 12))
	{
		year1 = lastDateShow.getFullYear();
		year2 = year1 + 1;
	}
	else
	{
		year2 = lastDateShow.getFullYear();
		year1 = year2 - 1;
	}

	box += '<li>' + year1 + '</li>'
	for (i = f_month ; i <= 12; i++)
	{
		if (i == month)
			box += '<li><a href="#" onclick="javascript:changePage(1,' + i + ',' + year1 + ')" title="vai al mese di ' + monthNames[i] + '"><span>&nbsp;' + monthNames[i].toUpperCase() + '&nbsp;</span></a></li>';
		else
			box += attivo ? '<li><a href="#" onclick="javascript:changePage(1,' + i + ',' + year1 + ')" title="vai al mese di ' + monthNames[i] + '">&nbsp;' + monthNames[i].toUpperCase() + '&nbsp;</a></li>' : '<li>' + monthNames[i].toUpperCase() + '</li>' ;
		if (i == ls_month) attivo = false;
	}

	box += '<li>' + year2 + '</li>'
	for (i = 1; i <= l_month; i++)
	{
		if (i == month)
			box += '<li><a href="#" onclick="javascript:changePage(1,' + i + ',' + year2 + ')" title="vai al mese di ' + monthNames[i] + '"><span>&nbsp;' + monthNames[i].toUpperCase() + '&nbsp;</span></a></li>';
		else
			box += attivo ? '<li><a href="#" onclick="javascript:changePage(1,' + i + ',' + year2 + ')" title="vai al mese di ' + monthNames[i] + '">&nbsp;' + monthNames[i].toUpperCase() + '&nbsp;</a></li>' : '<li>' + monthNames[i].toUpperCase() + '</li>' ;
		if (i == ls_month) attivo = false;
	}
	document.write(box);
}

function boxDay()
{
	var date = pageDate.getDate()
	var month = pageDate.getMonth() + 1
	var year = pageDate.getFullYear()
	var day_month = dayOfMonth(month, year)
	var day_week = dayOfWeek(1, month, year)
	var box = ''
	var url = document.location.href
	for (i = 1; i <= day_month; i++, day_week++)
	{
		attivo = ((year == firstDate.getFullYear()) ? ((month == (firstDate.getMonth() + 1)) ? (i >= firstDate.getDate()) : (month > (firstDate.getMonth() + 1))) : (year > firstDate.getFullYear())) && ((year == lastDateShow.getFullYear()) ? ((month == (lastDateShow.getMonth() + 1)) ? (i <= lastDateShow.getDate()) : (month < (lastDateShow.getMonth() + 1))) : (year < lastDateShow.getFullYear()));
		if (url.indexOf('/news/') > -1);
		{
			if ((month == 1) && (i < 7)) attivo = false;
			if ((month == 12) && (i > 23 && i < 31)) attivo = false;
		}
  		if (i == date)
			box += '<td><a href="#" onclick="javascript:changePage(' + i + ',' + month + ',' + year + ')" title="vai al giorno ' + i + '"><span>'+ dayNames[(day_week % 7) + 1] + '<br>' + i + '</span></a></td>'
		else
			box += attivo ? '<td><a href="#" onclick="javascript:changePage(' + i + ',' + month + ',' + year + ')"  title="vai al giorno ' + i + '">' + dayNames[(day_week % 7) + 1] + '<br>' + i + '</a></td>' : '<td>' + dayNames[(day_week % 7) + 1] + '<br>' + i + '</td>'
	}
	document.write(box);
}
