var inCorso = false;
var __calArgs = null;

dateApp = new Array();

//new dateAppuntamenti();

function settaCal(sezione, dest, mese, anno)
{
	if (dest == undefined)
	{
		dest = "calen";
	}
	if (sezione == undefined)
	{
		sezione = 0;
	}
	if (document.all[dest] == undefined) return;
	if (settaCal.arguments.length == 4)
	{
		document.all[dest].innerHTML = faiCalendario(dest, sezione, mese, anno);
	}
	else
	{
		document.all[dest].innerHTML = faiCalendario(dest, sezione);
	}
}

function dateAppuntamenti(tipo)
{
	this.tipo = tipo;
	this.hasVal = _hasVal;
	this.getLink = _getLink;
	this.add = _add;
	this.giorni = new Array();
	this.lnk = "svl/lstDoc?";
	
	function _hasVal(giorno)
	{
		for (var i = 0; i < this.giorni.length; i++)
		{
			if (this.giorni[i].getGiorno() == giorno)
			{
				return true;
			}
		}				
		return false;
	}
	
	function _getLink(giorno, template)
	{
		for (var i = 0; i < this.giorni.length; i++)
		{
			if (this.giorni[i].getGiorno() == giorno)
			{
				return "<A HREF='" + this.lnk + "p0="+this.tipo+"&dS=" + this.giorni[i].getData() + "&dE=" + this.giorni[i].getData() + "&t6="+template+"'>";
			}
		}				
		return "";
	}
	
	function _add(data, numero, giorno)
	{
	var gg;
		gg = new giornoApp(data, numero, giorno)
		this.giorni.push(gg);
	}
	
}

function giornoApp(data, numero, giorno)
{
	this.data = data;
	this.numero = numero;
	this.giorno = giorno;
	this.getData = _getData;
	this.getGiorno = _getGiorno;
	this.getNumero = _getNumero;
	
	function _getGiorno()
	{
		return this.giorno;
	}
	function _getData()
	{
		return this.data;
	}
	function _getNumero()
	{
		return this.numero;
	}
}

function faiCalendario(dest, sezione, mese, anno, template)
{
var giorni = new Array('Lu','Ma','Mr','Gi','Ve','Sa','Do'); 
var mesi = new Array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');

var len = faiCalendario.arguments.length;
var oggi = new Date();
var oggiG = oggi.getDate();
var oggiM = oggi.getMonth() + 1;
var oggiY = oggi.getYear();
var dataRichiesta = new Date();
var start = false;
var stringa = "";
var co;
var ri;
var gset;
var gg = 0;
var stGG = "";
var spazio = "&nbsp;";
var tr_init = "<TR>";
var tr_end = "</TR>";
var table_init = "<TABLE BORDER='0' CELLSPACING='0' CELLPADDING='0' WIDTH='100%'>";
var table_end = "</TABLE>";
//var fr_sxanno = "";
var fr_sxmese = ""; 
//var fr_dxanno = "";
var fr_dxmese = ""; 
var td_initIntestMese = "<TD CLASS='caltdint' COLSPAN='5'>";
var td_initIntest = "<TD CLASS='caltdint'>";
var td_initIntestSx = "<TD CLASS='caltdint'>";
var td_initIntestDx = "<TD CLASS='caltdint' align='right'>";
var td_end = "</TD>";
var td_startDay = "<TD CLASS='caltdday'>";
var td_startDayDom = "<TD CLASS='caltddaydom'>";
var td_init = "<TD CLASS='caltd'>";
var td_oggi_init = "<TD CLASS='caltdoggi'>";
var a_end = "</A>";

	if (oggiY < 1900) oggiY += 1900;
	
	if (anno < 1900) anno += 1900;
	dataRichiesta.setDate(1);	
	if (len == 4)
	{
		dataRichiesta.setYear(anno);
		dataRichiesta.setMonth(mese - 1);
	}
	
	anno = dataRichiesta.getYear(); 
	mese = dataRichiesta.getMonth();
	giorno = dataRichiesta.getDate();
	gset = dataRichiesta.getDay();
//	alert(anno + " " + mese +  " " + mesi[mese]);

	gset -= 1;
	if (gset < 0)
	{
		gset = 6;
	}
	fr_sxmese = "<A HREF='#' onCLick='javascript:go_mese(" + (sezione) + ", \"" + (dest) + "\", " + (mese) + ", " + anno + ", "+ template + ");return false;'><img src='immagini/comuni/Previousd-1.gif' border =0 ></A>";
	fr_dxmese = "<A HREF='#' onClick='javascript:go_mese(" + (sezione) + ", \"" + (dest) + "\", " + (mese + 2) + ", " + anno + ", " + template + ");return false;'><img src='immagini/comuni/Nextd-1.gif' border =0 ></A>";
	stringa += table_init;
	stringa += tr_init;
	stringa += td_initIntestSx + fr_sxmese + td_end;
//	stringa += td_initIntest + fr_dxmese + td_end;
	stringa += td_initIntestMese + mesi[mese] + spazio + anno + td_end;
//	stringa += td_initIntest + fr_sxanno + td_end;
//	stringa += td_initIntest + fr_dxanno + td_end;
	stringa += td_initIntestDx + fr_dxmese + td_end;
	stringa += tr_end;

	stringa += tr_init;
	for (var i = 0; i <6; i++)
	{
		stringa += td_startDay + giorni[i] + td_end;
	}
	stringa += td_startDayDom + giorni[6] + td_end;
	stringa += tr_end;
	
	for (var i = 0; i < 42; i++)
	{
		co = i % 7;
		ri = Math.floor(i / 7);
		if (gset == co && ri == 0)
		{
			start = true;
			gg = 1;
		}
		if (co == 0)
		{
			stringa += tr_init;
		}
		if (start == true)
		{
			stGG = gg + "";
			if (dateApp['aa'+sezione].hasVal(gg))
			{
				stGG = dateApp['aa'+sezione].getLink(gg, template) + stGG + a_end;
			}
			if (anno == oggiY && mese == (oggiM -1) && gg == oggiG)
			{
				stringa += td_oggi_init + stGG + td_end;
			}
			else
			{
				stringa += td_init + stGG + td_end;
			}
			gg += 1;
			dataRichiesta.setDate(gg);	
			if (mese != dataRichiesta.getMonth())
			{
				start = false;
			}
			
		}
		else
		{
			stringa += td_init + spazio + td_end;
		}

		if (co == 6)
		{
			stringa += tr_end;
		}
	}

	stringa += table_end;
return stringa;
}

function go_mese(sezione, dest, mese, anno, template)
{
var elem;
var fElem;
var len = go_mese.arguments.length;
var oggi = new Date();
var fD = calcolaAppPath(location);

	if (go_mese.arguments.length == 0 && __calArgs != null)
	{
		sezione = __calArgs[0];
		dest = __calArgs[1];
		mese = __calArgs[2];
		anno = __calArgs[3];
		template = __calArgs[4];
	}
	
	if (mese == undefined && anno == undefined)
	{
		anno = oggi.getYear();
		mese = oggi.getMonth() + 1;
		if (anno < 1900)
		{
			anno += 1900;
		}
	}

	if (sezione == undefined)
	{
		sezione = 0;
	}
	if (dest == undefined)
	{
		dest = "calen";
	}
	if (template == undefined)
	{
		template = 0;
	}
	if (inCorso == false)
	{
		__calArgs = null;
		inCorso = true;
		if(mese == 0)
		{
			mese = 12;
			anno -= 1;
		}
		if(mese == 13)
		{
			mese = 1;
			anno += 1;
		}
		fElem = appResLay.document.createElement("<FORM method='POST' action='"+fD+"svl/calDoc'>");

		elem = appResLay.document.createElement("<INPUT type=hidden name='mese' value='"+mese+"'>");
		fElem.appendChild(elem);

		elem = appResLay.document.createElement("<INPUT type=hidden name='anno' value='"+anno+"'>");
		fElem.appendChild(elem);
		elem = appResLay.document.createElement("<INPUT type=hidden name='sezione' value='"+sezione+"'>");
		fElem.appendChild(elem);
		elem = appResLay.document.createElement("<INPUT type=hidden name='dest' value='"+dest+"'>");
		fElem.appendChild(elem);
		elem = appResLay.document.createElement("<INPUT type=hidden name='tpl' value='"+template+"'>");
		fElem.appendChild(elem);
		appResLay.document.body.appendChild(fElem);
		appResLay.document.forms[0].submit();
	}
	else
	{
		__calArgs = new Array();
		__calArgs[0] = sezione;
		__calArgs[1] = dest;
		__calArgs[2] = mese;
		__calArgs[3] = anno;
		__calArgs[4] = template;
		setTimeout(go_mese, 1000);
	}
}

function azzeraCal(tipo)
{
	dateApp['aa'+tipo] = new dateAppuntamenti(tipo);
}

function aggiungiCal(data, numero, giorno, tipo)
{
	dateApp['aa'+tipo].add(data, numero, giorno);
}
function doneLoad(sezione, dest, mese, anno)
{

	settaCal(sezione, dest, mese, anno);
	inCorso = false;
}
