//
//                  Calendario vers. 4.0
//
//            (c)2002-2011 by Maurizio Mauri
//
//               mailto: M.Mauri@itaer.it
//

// Immagini
var img = new Array('images/gennaio.jpg', 'images/febbraio.jpg', 'images/marzo.jpg',
               'images/aprile.jpg', 'images/maggio.jpg', 'images/giugno.jpg',
               'images/luglio.jpg', 'images/agosto.jpg', 'images/settembre.jpg',
               'images/ottobre.jpg', 'images/novembre.jpg', 'images/dicembre.jpg');

labs = new Array("multimediale", "meteo", "biblio", "nav", "aero",
	"scienze", "radar", "edf", "matem", "inglese", "disegno",
	"cic", "elettro", "fisica");

// colori
var backtable = '#90C0FF';
var calendback = '#EEC68E';
var lines = '#404040';
var bright = '#000000';
var festa = '#FD9139';
var bgvacanza = "#F9E9D1"; // "#F0F0FF";
var bgright = "#00D642";


// dimensioni dell'immagine
var xwidth = 321;
var xheight = 180;
var browser = document.layers ? 0 : document.all ? 1 : 2;
// dimensioni della table
var xw = 170;

// classi
document.write('<style type="text/css">\n<!--');
document.write('.cal { font: italic 11px/16px Arial, Helvetica, sans-serif; color: #996633;vertical-align: top;}');
document.write('.num { font-family: Arial, Helvetica, sans-serif; font-size: 14px; text-decoration:none; text-align:right; vertical-align: top; padding:2px;}');
document.write('.numlinked { font: bold 14px Arial, Helvetica, sans-serif; text-decoration:none; color: #FF6600}');
document.write('.caltitolo { font: normal 20px Verdana, Arial, Helvetica, sans-serif; letter-spacing: 4px; text-decoration: none}');
document.write('.calw {text-align: center; font: bold 12px "trebuchet MS", Arial, Helvetica, sans-serif; letter-spacing: 4px; width:100%}');
document.write('#calx {background-color: transparent}');
document.write('#calz {width: 100%; border-color: #666666 #666666 #DDDDDD #666666; border-style: solid; border-width: 2px 2px 0px 2px; background-color: #F0F0F0; color: #808000}');
document.write('#calb {width: 100%; border-color: #666666 #666666 #666666 #666666; border-style: solid; border-width: 0px 2px 2px 2px; background-color: #E0E0E0; color: #808000}');
document.write('#cala {width: 100%; border-color: #FFBB88; border-style: solid; border-width: 0px 0px 2px 0px; color: #FF0000}');
document.write('.calhead {font: italic 13px Arial, Helvetica, sans-serif; color: #999900; text-align: center;}');
document.write('.numero {font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #000000; text-align: right;}');
document.write('.numero a {font-weight: bold; color: #FF3300; text-decoration: none; display: block; padding: 3px;}');
document.write('.numero a:hover {text-decoration: none; display: block; background-color: #FFFF00;}');
document.write('.numero span {text-decoration: none; display: block; padding: 3px;}');
document.write('.annox {font: bold 20px Verdana, Arial, Helvetica, sans-serif; letter-spacing: 4px; color: #FF0000;}');
document.write('.mesex {font: bold 12px Arial, Helvetica, sans-serif; letter-spacing: 4px; color: #808000;}');
document.write('.tabella {font-family: Georgia, "Times New Roman", Times, serif; font-size: 12px; border: 1px solid #000000; border-collapse: collapse;}');
document.write('.tabella th {background-color: #E0E0E0; font-size: 11px; color: #333399; text-align: center; border: 1px dashed #000000; line-height: 12px;}');
document.write('.tabella td {border: 1px dashed #000000;}');
document.write('#calcont {position: absolute; border: 1px solid Navy; width: 340px; height: 200px; text-align:center; font-size: 14px; font-family: Arial, Helvetica, sans-serif}');
document.write('#calhead {background:RoyalBlue; padding: 4px; font-weight: bold; font-variant: small-caps; letter-spacing: 2px; color: LightCyan; text-align:center;border:1px solid DodgerBlue}');
document.write('#calfoot {background:khaki; font-size: 11px; font-style:italic; font-weight: bold; text-align:center; padding: 4px 0; border-top: 1px solid #abc;}');
document.write('#calfoot span {cursor: pointer;}');
document.write('#caltable {font: bold 15px Arial, Helvetica, sans-serif;}');
document.write('-->\n</style>');

var xr = random_pages();
creaCalwin();

menuxh = new Array("tabx", "tabx",
    0, "Settembre", labs[xr[0]] + ".htm" + "?mese=9", "SETTEMBRE",
    1, "Ottobre", labs[xr[1]] + ".htm" + "?mese=10", "OTTOBRE",
    2, "Novembre", labs[xr[2]] + ".htm" + "?mese=11", "NOVEMBRE",
    3, "Dicembre", labs[xr[3]] + ".htm" + "?mese=12", "DICEMBRE",
    4, "Gennaio", labs[xr[4]] + ".htm" + "?mese=1", "GENNAIO",
    5, "Febbraio", labs[xr[5]] + ".htm" + "?mese=2", "FEBBRAIO",
    6, "Marzo", labs[xr[6]] + ".htm" + "?mese=3", "MARZO",
    7, "Aprile", labs[xr[7]] + ".htm" + "?mese=4", "APRILE",
    8, "Maggio", labs[xr[8]] + ".htm" + "?mese=5", "MAGGIO",
    9, "Giugno", labs[xr[9]] + ".htm" + "?mese=6", "GIUGNO"
    );


// ------ Non cambiare ----------
var mesi = new Array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',
               'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');

var days = new Array('Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do');
var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

var today = new Date();
var anno = today.getFullYear();
var mese = today.getMonth();
var currday = today.getDate();
var cellwidth = Math.floor(xwidth / 7);
xwidth = cellwidth * 7;
var xmese = 0;
var aboutx = false;
var isOn = false;
var thisPath = "../";
var vacanza = new Array("-110811", "110931", "111002", "111123-120007", "120305-120310", "120330", 
		"120510-120731");

String.prototype.linkIt = function(x) {
	return linkIt(this, x);
}

var notex = new Array(
		"110731-110801", "Scrutini",
		"110805", "Collegio Docenti",
		"110802", [
			"9.00", "Riunione Responsbili Dipartimenti",
			"10.00", "Incontro D.S. con i nuovi docenti",
			"10.30", "Riunione dipartimenti"
		],
		"110805", "Collegio docenti",
		"110806",  [
			"9.00-13.00", "Esami integrativi - scrutini",
			"10.00-12.00", "Riunione della commissione Riforma, Formazione classi e POF"
			],
		"110807", [
			"8.30-9.30", "Riunione coord. dipartimenti con D.S.",
			"10.00-13.00", "Riunioni di dipartimento"
			],
		"110808", "Riunione interdipartimentali",
		"110812", "Inizio lezioni classi 1<sup>e</sup> e 5<sup>e</sup>",
		"110813", ["8.15", "Ingresso di tutte le classi"],
		"110822", [
			"15.00", "Classi 1<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez A-D)",
			"16.30", "Classi 1<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez E-H)"
			],
		"110823", [
			"15.00", "Classi 3<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez A-E)",
			"16.30", "Classi 3<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez F-H)"
			],
		"110827", [
					"15.00", "Classi 2<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez A-E)",
					"16.30", "Classi 2<sup>e</sup>: Incontri D.S., Coord. e famiglie (sez F-H)"
			],
		"110829", [
					"15.00", "Classi 4<sup>e</sup>: Incontri D.S., Coord. e famiglie"
			],
		"110911-110914", "Consigli di classe$comunic/cdc_cal.htm",
		"110918", [ "15.00-18.00", "Collegio dei docenti"],
		"110929", "Consegna programmazione individuale",
		"111008", "Riunione coordinatori dipartimenti",
		"111015", "Riunione dipartimenti",
		"111016", "Riunione interdipartimentali",
		"111022-111025, 111028-111029", "Consigli di classe$comunic/cdc_cal.htm",
		"111106, 111113", ["15.00-18.00", "Ricevimento pomeridiano genitori$comunic/ricev.htm#ricev_p"],
		"111117", ["09.30-13.30", "Open Day"],
		"111116", ["15.00-18.00", "Collegio docenti"],
		"120022", ["09.30-13.30", "Open Day"],
		"120030-120103, 120107-120110", "Scrutini 1&deg; periodo$comunic/scrutini-1.htm",
		"120125", "Consegna al DS della relazione internmedia sui progetti",
		"120201", "Riunione coordinatori dipartimenti con DS",
		"120208", "Riunione dipartimenti e fra dipartimenti",
		"120209", ["08.30-14.00", "Simulazione prova Italiano classi 5<sup>e</sup>"],
		"120213-120216, 120219-120220", "Consigli di classe$comunic/cdc_cal.htm",
		"120214", "Festa del PI greco".linkIt("http://www.piday.org"),
		"120227, 120229", ["15.00-18.00", "Ricevimento pomeridiano genitori$comunic/ricev.htm#ricev_p"],
		"120330", "Termine dei progetti",
		"120402-120404, 120408-120409", "Consigli di classe$comunic/cdc_cal.htm",
		"120405", "Consegna ai coordinatori delle classi relazioni e programmi (classi 5<sup>e</sup>)",
		"120411", "Termine degli sportelli didattici",
		"120414", "Consegna, in segreteria, proposte nuove adozioni",
		"120415", lista(["Pubblicazione documento consiglio di classe (classi 5<sup>e</sup>)", "Termine ultimo per la consegna in segreteria amm. di" + lista(["dichiarazioni attivitą svolte", "ricevute sportelli didattici", "schede dei progetti"])]),
		"120416", ["8.30-13.00", "Simulazione 2<sup>a</sup> prova per esami di Stato",
			"15.00-18.00", "Collegio dei docenti"],

		"120430","Scrutini finali 5<sup>e</sup> classi$comunic/scrutinifinali.htm",
		"120506-120508","Scrutini finali triennio$comunic/scrutinifinali.htm",
		"120511-120513","Scrutini finali biennio$comunic/scrutinifinali.htm",
		"120515", ["9.00-12.00", "Collegio Docenti",
			"", "Consegna relazioni e programmi"]
		);

// percorso per tornare all'indice
function setPath(path) {
	thisPath = path;
}

function formatnumber(x) {
	var frm = "00" + x;
	return frm.substring(frm.length - 2);
}

function isVacanza(anno, mese, giorno) {
	var key = formatnumber(anno % 100) + formatnumber(mese) + formatnumber(giorno);
	for (var i = 0; i < vacanza.length; i++) {
 		var dx = vacanza[i];
		var init, end;
		var idx = dx.indexOf("-");
		if (idx == 0)
			init = "000000";
		else
			init = dx.substring(0, 6);
		if (idx < 0)
			end = init;
		else
			end = dx.substring(idx + 1);

		if (key < init)
			return false;
		if (key >= init && key <= end)
			return true;
	}
	return false;
}

function writeCalDiv(id, txt) {
	var x;
	if (document.getElementById) {
		x = document.getElementById(id);
	}
	else if (document.all) {
		x = document.all[id];
	}
	if (txt != null)
		x.innerHTML = txt;
	return x;
}

function creaCalwin2() {
	document.write('<div id="calcont" onClick="nascondi(this)">');
	document.write('<div id="calhead">Calendario</div>');
	document.write('<div id="calwin">&nbsp;</div>');
	document.write('<div id="calfoot"><span>Chiudi</span></div></div>');
}

function creaCalwin() {
	document.write('<table id="calcont" style="display:none" onClick="nascondi(this)" border="0" cellpadding="0" cellspacing="0">');
	document.write('<tr><td id="calhead">Calendario</td></tr>');
	document.write('<tr><td height="100%" id="calwin" bgcolor="cornsilk" align="center"></td></tr>');
	document.write('<tr><td id="calfoot"><span>Chiudi</span></td></tr></table>');
}

function win_Cal(nnote) {
	// var mx = get_note(nnote - 1);
	var mx = "";
	for (var i = 0; i < arguments.length; i++) {
		if (i > 0)
			mx += "<br>";
		mx += get_note(arguments[i] - 1);
	}
	// var tx = "Calendario";

	var wx = 340;
	var wy = 200;

	// var dx = '<table width="100%" cellpadding="0" cellspacing="0" height="75%" border="0" id="caltable"><tr><td align="center" bgcolor="cornsilk">' + mx + '</td></tr></table>';
	// var z = writeCalDiv("calhead", tx);

	var dx = mx;
	var x = writeCalDiv("calwin", dx);
	var y = writeCalDiv("calcont", null);

	y.style.left = (document.body.clientWidth - wx) / 2 + document.body.scrollLeft;
	y.style.top = (document.body.clientHeight - wy) / 2 + document.body.scrollTop;

	// y.style.display = "block";
	y.style.display = "table";
	y.style.height = wy;
}


function LTrim(value) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

function RTrim(value) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

function trim(value) {
	return LTrim(RTrim(value));
}

function checklink(a) {
	var ll = a;
	if (ll.indexOf("$") > 0) {
		var rrx = ll.split("$");
		ll = linkIt(rrx[0], rrx[1]);
	}
	return ll;
}

function subtable(comm) {
	var rc = '<table class="tabella" width="' + xw + '" border="0" cellspacing="0" cellpadding="4">';
	for (var j = 0; j < comm.length; j += 2) {
		rc += '<tr>';
		rc += '<th width="30" nowrap>' + comm[j] + '</th>';
		rc += '<td>' + checklink(comm[j + 1]) + '</td>';
		rc += '</tr>';
	}
	rc += '</table>';
	return rc;
}

function linkIt(a, b) {
	var ll = b;
	var c = b.indexOf("http");
	if (b.indexOf("http") < 0)
		ll = thisPath + b;
	return '<a href="'  + ll + '" class="links" target="_blank">' + a + '</a>';
}


function get_note(i) {
	var ndx = notex[i + 1];
	var nota;
	switch (typeof(ndx)) {
		case "string":
			if (ndx.charAt(0) == '#')
				subtable(eval(ndx.substring(1)));
			else
				nota = checklink(ndx);
			break;
		case "object":
			if (ndx instanceof Array)
				return subtable(ndx);
			else
				return "boh!";
			break;
		default:
			return "Errore! " + typeof(ndx);
			break;
	}
	return nota;
}

function cercanota(giorno, mese, anno, tolink) {
	var nota = "";
	var separator = arguments.length < 4 ? "<br>" : ", ";
	var key = formatnumber(anno % 100) + formatnumber(mese) + formatnumber(giorno);
	for (var i = 0; i < notex.length; i += 2) {
		var nx = notex[i].split(",");
		for (var j = 0; j < nx.length; j++) {
			var ny = nx[j].split("-");
			var init = trim(ny[0]);
			var end = init;
			if (ny.length > 1)
				end = trim(ny[1]);
			if (key >= init && key <= end) {
				if (nota.length > 0)
					nota += separator; // "<br>"
				if (arguments.length < 4)
					nota += get_note(i);
				else
					// nota += '<a href="javascript:win_Cal(' + (i + 1) + ')">' + tolink + '</a>';
					nota += (i + 1);
			}
		}
	}
	if (nota.length < 1)
		if (arguments.length > 3)
			nota = "<span>" + tolink + "</span>";
		else
			nota = "&nbsp;";
	else
		if (arguments.length > 3)
			nota = '<a href="javascript:win_Cal(' + nota + ')">' + tolink + '</a>';
		
	return nota;
}


function cercanota1(giorno, mese, anno, tolink) {
	var nota = "&nbsp;";
	var key = formatnumber(anno % 100) + formatnumber(mese) + formatnumber(giorno);
	for (var i = 0; i < notex.length; i += 2) {
		var nx = notex[i].split(",");
		for (var j = 0; j < nx.length; j++) {
			var ny = nx[j].split("-");
			var init = trim(ny[0]);
			var end = init;
			if (ny.length > 1)
				end = trim(ny[1]);
			if (key >= init && key <= end) {
				if (arguments.length < 4)
					return get_note(i);
				else
					return '<a href="javascript:win_Cal(' + (i + 1) + ')">' + tolink + '</a>';
			}
		}
	}
	if (arguments.length < 4)
		return nota;
	else
		return "<span>" + tolink + "</span>";
}

function comparedate(d1, d2) {
   if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate()) 
      return true;
   return false;
}

function pasqua(aa) {
   var xx = new Array(22, 22, 23, 23, 24, 24);
   var yy = new Array(2, 2, 3, 4, 5, 5);
   var a = aa % 19;
   var b = aa % 4;
   var c = aa % 7;

   var i = Math.floor(aa / 100) - 15;
   var x = xx[i], y = yy[i];
   var d = (19*a + x) % 30;
   var e = (2*b + 4*c + 6 * d + y) % 7;

   var p = 22 + d + e;

   var m = 300;
   if (p > 31) {
      m = 400;
      p = p - 31;
   }
   return m + p;
}


function isfesta(d) {
   var feste = new Array(0, 101, 106, 425, 501, 602, 629, 815, 1101, 1208, 1225, 1226);

   if (d.getDay() == 0)
      return true;

   var pp = pasqua(d.getFullYear()) + 1;     // Pasquetta
      if (pp % 100 > 31)
         pp = 401;

   feste[0] = pp;
   for (var i = 0; i < feste.length; i++)
      if (Math.floor(feste[i] / 100) == d.getMonth() + 1) {
         var gg = feste[i] % 100;
         if (gg == d.getDate())
            return true;
      }

   return false;
}

function calendarMini(mese, anno, path) {
	xwidth = 189;
	cellwidth = 27;
	setPath(path);
	return calendar(mese, anno);
}

function calendarX(mese, anno, path) {
	setPath(path);
	return calendar(mese, anno);
}

function calendar(mese, anno) {
   var dx = 2 - (new Date(anno, mese, 1)).getDay();
   if (dx == 2)
      dx = -5;

   var daysInMonth = dd[mese];

   xw = 200;
   if (mese == 1) {
      if (anno % 4 == 0 && anno % 100 != 0  || anno % 400 == 0)
         daysInMonth++;
   }

	var tx = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr align="center">';
	tx += '<td width="50%" valign="bottom" class="mesex"><span style="border: 1px solid black; border-bottom:none; display:block; padding:2px">' + mesi[mese] + '</span></td>';
	tx += '<td width="50%" class="annox" style="border-bottom: 1px solid black;">' + anno + '</td></tr></table>';
	tx += '<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#FFFFFF" style="border: 1px solid black; border-top:none">';
    tx += '<tr align="center" class="calhead">';
	for (var i = 0; i < 7; i++)
		tx += '<td width="14%" bgcolor="#E0E0E0">' + days[i] + '</td>';
	tx += '</tr>';
	for (var j = 0; j < 6; j++) {
		if (dx > daysInMonth)
			break;

      for (var i = 0; i < 7; i++) {
         var bgstring = "";
         var fgcol = lines;
         var fgstring = '&nbsp;';

         if (dx > 0 && dx <= daysInMonth) {
			var ddx = new Date(anno, mese, dx);
          	if (isfesta(ddx)) {
               bgstring = ' bgcolor="' + festa + '"';
            } else if (isVacanza(anno, mese, dx)) {
	       		bgstring = ' bgcolor="' + bgvacanza + '"';
	    	} else
				bgstring = ' bgcolor="' + calendback + '"';

			if (comparedate(ddx, today)) {
           		testo = '<strong style="border:dotted 1px black; padding:0px 3px 0px 3px;display:block;">' + dx + '</strong>';
            } else
             	testo = dx;
            var fgstring = cercanota(dx, mese, anno, testo);
        	tx += '<td class="numero"' + bgstring + '>';
	    	tx += fgstring;
	    	tx += '</td>\n';
         } else {
         	tx += '<td class="numero"><span>&nbsp;</span></td>';
         }
         dx++;
      }
      tx += '</tr>\n';
   }
   tx += '</table>';
   return tx;
}


function calendarvX(mese, anno, path) {
	setPath(path);
	return calendarv(mese, anno);
}

function calendarv(mese, anno) {
   var daysInMonth = dd[mese];
   xw = 200;

   if (mese == 1) {
      if (anno % 4 == 0 && anno % 100 != 0  || anno % 400 == 0)
         daysInMonth++
   }

   var tx = '<table width="' + xwidth + '" border="0" cellspacing="0" cellpadding="0">';
   tx += '<tr><td nowrap valign="bottom" width="50%"><div id="calz" class="calw">' + mesi[mese] + '</div></td>';
   tx += '<td align="center" class="caltitolo" width="50%"><div id="cala"><b><font color="#FF0000">' + anno + '</font></b></div></td>';
   tx += '</tr><tr align="center"><td colspan="2" nowrap id="calb">';

   tx += '<table width="' + xwidth + '" border="0" cellspacing="1" cellpadding="0" style="border: solid 1px black"><tr><td valign="top">\n';
   tx += '<table width="100%" border="0" cellspacing="1" cellpadding="1">\n';
      
   for (var x = 1; x <= daysInMonth; x++) {
		var xd = ((new Date(anno, mese, x)).getDay() + 6) % 7;
		var ddx = new Date(anno, mese, x);
		var bgstring = "";
		var fgcol = lines;
        var fgstring = x;
		if (isfesta(ddx)) {
			bgstring = ' bgcolor="' + festa + '"';
		} else if (isVacanza(anno, mese, x)) {
			bgstring = ' bgcolor="' + bgvacanza + '"';
			fgcol = "#808080";
		}
		else {
			bgstring = ' bgcolor="' + calendback + '"';
		}
		if (comparedate(ddx, today)) {
			fgcol = bright;
			fgstring = '<b><u>' + x + '</u></b>\n';
    	}
    	fgstring = '<font color="' + fgcol + '" class = "num">' + fgstring + '</font>\n';

   		tx += '<tr' + bgstring + ' height="22"><td class="cal" width="1">' + days[xd] + '</td>';
   		tx += '<td class="num" align="right" width="1">' + fgstring + '</td>';
   		tx += '<td class="cal">' + cercanota(x, mese, anno) + '</td>';
   		tx += '</tr>';
   }
   tx += '</table>\n';
   tx += '</td><td bgcolor="' + bgright + '" width="1"><img src="images/bandav.gif"></td</tr></table>\n';
   tx += '</td></tr></table>';
   return tx;
}


function get_month() {
	var param = window.location.search;
	var d = new Date();
	var mese = d.getMonth() + 1;

	if (param.length > 0) {
		param = param.substring(1).split("=");
		if (param[0] == "mese")
			mese = param[1];
	}
	return Number(mese);
}


function random_page() {
	var numberofpages = labs.length;
	var n;
	do {
		n = Math.floor(Math.random() * numberofpages - 0.01);
	} while (location.href.indexOf(labs[n]) >= 0);

	return labs[n] + ".htm";
}

function random_pages() {
	var i, n;

	var rnd = new Array();

	for (i = 0, n = 0; i < labs.length; i++) {
		if (location.href.indexOf(labs[i]) < 0)
			rnd[n++] = i;
	}
	n = rnd.length - 1;
	for (i = 0; i < rnd.length; i++) {
		var m = Math.floor(Math.random() * (n + 1) - 0.01);
		var t = rnd[m];
		rnd[m] = rnd[n];
		rnd[n--] = t;
	}
	return rnd;
}


function do_mesibuttons() {
	this_month = get_month();
	this_year = 2011;
	if (this_month < 9)
		this_year = 2012;
	month1 = (this_month + 3) % 12;

	makeNewContainer(menuxh, month1);
}

function leftcalendar() {
	document.write('<div style="width:320">');
	document.write(calendarX(this_month - 1, this_year, "../"));
	document.write('</div>');
}

function rightcalendar() {
	document.write(calendarvX(this_month - 1, this_year, "../"));
}

function get_mese(m) {
    if (m > 0 && m < 13) {
    	var mx = mesi[m - 1];
    	return mx;
    }
    else
    	return "errore. Mese = " + m + "<br>";
}

function checkdate(d, len) {
	if (d.indexOf("-") == -1) {
		var dd = new Array();
		dd[0] = parseInt(d.substr(4, 2), 10);
		dd[1] = parseInt(d.substr(2, 2), 10) + 1;
		dd[2] = parseInt(d.substr(0, 2), 10);

		var a = "", m = "", dx;
		switch (dd.length) {
			case 3:
				a = " 20" + dd[2];
			case 2:
				m = " " + get_mese(dd[1]);
				if (arguments.length > 1)
    				m = m.substring(0, len + 1);
    		case 1:
    			return dd[0] + m + a;
			default:
				return "boh!"
		}
	} else
		return d;
}

function check_date(d) {
	var dx;
	if (d.indexOf("-") != -1) {
		dx = d.split("-");
		dx[0] = checkdate(trim(dx[0]), 3);
		dx[1] = checkdate(trim(dx[1]), 3);
		return dx[0] + "-" + dx[1];
	} else
		return checkdate(d);
}

function chk_date(d) {
	var dx;
	var rv = "";
	if (d.indexOf(",") != -1) {
		dx = d.split(",");
		for (var j = 0; j < dx.length; j++) {
			if (rv.length > 0)
				rv += ", ";
			rv += check_date(dx[j]);
		}
	} else
		rv = check_date(d);

	return rv;
}

function lista(a) {
	if (a.length < 1)
		return "";
	var rv = '<ul style="padding-left:10px;margin:5px">';
	for (var i = 0; i < a.length; i++) {
		rv += "<li>" + checklink(a[i]) + "</li>";
	}
	rv += "</ul>";
	return rv;
}

function toDate(d) {
	var aa = 2000 + parseInt(d.substr(0, 2), 10);
	var mm = parseInt(d.substr(2, 2), 10);
	var gg = parseInt(d.substr(4, 2), 10);
	return new Date(aa, mm, gg);
}

function dateDiff(d1, d2) {
	return (d1 - d2) / 86400000;
}

function memo(p) {
	var ph = "";
	if (arguments.length > 0)
		ph = p;
	
	setPath(ph);
	var todayx = (today.getFullYear() + "").substr(2, 2) + formatnumber(today.getMonth()) + formatnumber(today.getDate());
	xw = 170;

	for (i = 0; i < notex.length; i += 2) {
		d = notex[i];
		var d1 = toDate(d);
		var d2 = toDate(todayx);
		var nx = dateDiff(d1, d2);
		if (nx < -8 || nx > 35)
			continue;
		d = chk_date(d);
		comm = notex[i + 1];
		document.write('<span class="subhead">' + d + '</span>');
		document.write('<div class="list">');
		switch (typeof(comm)) {
			case "string":
				if (comm.charAt(0) == '#')
					comm = subtable(eval(comm.substring(1)));
				else
					comm = checklink(comm);
				break;
			case "object":
				if (comm instanceof Array)
					comm = subtable(comm);
				else
					comm = "boh!";
				break;
			default:
				comm = "Errore! " + typeof(comm);
				break;
		}
		document.write(comm);
		document.write('</div>');
	}
}
