var oMsg = new Object();
	oMsg.DBL_CLICK= "Il Web Server sta elaborando la sua richiesta";
	var objCal = new Object();
	objCal.giorni = new Array();
	objCal.giorni[0] = "Dom";objCal.giorni[1] = "Lun";objCal.giorni[2] = "Mar";
	objCal.giorni[3] = "Mer";objCal.giorni[4] = "Gio";objCal.giorni[5] = "Ven";
	objCal.giorni[6] = "Sab";
	objCal.mesi = new Array();
	objCal.mesi[0] = "Gennaio";objCal.mesi[1] = "Febbraio";objCal.mesi[2] = "Marzo";
	objCal.mesi[3] = "Aprile";objCal.mesi[4] = "Maggio";objCal.mesi[5] = "Giugno";
	objCal.mesi[6] = "Luglio";objCal.mesi[7] = "Agosto";objCal.mesi[8] = "Settembre";
	objCal.mesi[9] = "Ottobre";objCal.mesi[10] = "Novembre";objCal.mesi[11] = "Dicembre";
	objCal.anni = new Array();
	objCal.anni[0] = "2004";objCal.anni[1] = "2005";objCal.anni[2] = "2006";
	objCal.anni[3] =  "2007";objCal.anni[4] =  "2008";
	objCal.stile = "<LINK href='./stili/StyleDati.css' rel=stylesheet type=text/css>";
	objCal.sfondo = "";
	objCal.messaggio = "Impossibile impostare la data";


function objExec(func,str1){
	this.func = func(str1);
}
var winCal;
var oCal;
function fGetDaysInMonth(iMonth, iYear) {
	var dPrevDate = new Date(iYear, iMonth-1, 1);
	var dPostDate = new Date(iYear, iMonth, 1);
	difference = dPostDate.getTime() - dPrevDate.getTime();
	difference = Math.round(difference / (1000 * 60 * 60 * 24));
	return difference;
}
function Cal_ScomponiData(Valore) {
	
	if (Valore.length != 10) {
		return false;
	}
	if (Valore.substr(Valore.length-1, 1) == '/') {
		return false;
	}
	a=Valore.split("/");
	if (isNaN(a[1])) {
		return false;
	}
	if (isNaN(a[2])) {
		return false;
	}
	var tmp = fGetDaysInMonth(a[1], a[2]);
	if (a[0] > tmp) {
		return false;
	}
	if (a[1] > 12){
		return false;
	}
	else {
		if (a[1] < 1){
			return false;
		}
	}
	this.anno = a[2];
	this.mese = a[1];
	this.giorno = a[0];
	return true;
}
function Cal_ComponiData(gg, mm, aa ) {
	var retData = gg + "/" + mm + "/" + aa;
	return retData;
}
function Calendario(anno, mese, giorno, stile, sfondo, func, msg){
	this.anno = anno;
	this.mese = mese;
	this.giorno = giorno;
	this.stile = stile;
	this.sfondo = sfondo;
	this.aGiorni = new Array;
	this.aMesi = new Array;
	this.aAnni = new Array;
	this.cbFunc = func;
	this.msgErr = msg;
	this.scomponiData = Cal_ScomponiData;
	this.componiData = Cal_ComponiData;
	
}
function fMakeCal(valData, aGiorni, aMesi, aAnni, stile, sfondo, NomeFun, msgErr){
	var dDate = new Date();
	oCal = new Calendario(dDate.getFullYear(), dDate.getMonth()+1, dDate.getDate(), stile, sfondo, NomeFun, msgErr);
	oCal.aGiorni = aGiorni;
	oCal.aMesi = aMesi;
	oCal.aAnni = aAnni;
	oCal.scomponiData(valData);
	fDrawCal(oCal.anno, oCal.mese);
	
}
function fDrawCal(iYear, iMonth) {
var sc2 = unescape('%3C/script>')
winCal = window.open('', 'Calendar', 'width=210,height=180,status=no,resizable=no,top=200,left=200');
winCal.document.open();
winCal.document.writeln("<HTML><HEAD>");
winCal.document.writeln("<title>Calendario</title>");
winCal.document.writeln("<script>var myMonth; var doc=document.all");
//winCal.document.writeln('window.onerror=gesterr;function gesterr() {alert (\"' + oCal.msgErr +'\"); window.close(); return true };');
winCal.document.writeln(sc2);
winCal.document.writeln(oCal.stile);
winCal.document.writeln("</HEAD>");
winCal.document.writeln("<BODY class=sfondo><br>");
winCal.document.writeln('<table align="center" class="TblFullBorder">');
winCal.document.writeln('<tr>');
winCal.document.writeln('<td  class="standard">');
//Composizione della ComboBox per la scelta del mese
winCal.document.writeln('<select name="tbSelMonth" onchange="location.reload(); opener.fcbDrawCal(doc.tbSelYear.value, doc.tbSelMonth.value);">');
var i = 0;
var dest = iMonth;
for (var i = 1; i < 13; i++) {
	if (dest == i) {
		winCal.document.writeln('<option selected value="' + i + '">' + oCal.aMesi[i-1] +'</option>');
	}
	else {
		winCal.document.writeln('<option value="' + i + '">' + oCal.aMesi[i-1] +'</option>');
	}
}
//Composizione della ComboBox per la scelta dell'anno
winCal.document.writeln('</select>');
winCal.document.writeln('<select name="tbSelYear" onchange="location.reload(); opener.fcbDrawCal(doc.tbSelYear.value, doc.tbSelMonth.value)">');
for (var i = oCal.aAnni[0]; i<=oCal.aAnni[oCal.aAnni.length-1]; i++) {
	if (iYear == i) {
		winCal.document.writeln('<option selected value="' + i + '">' + i +'</option>');
	}
	else {
		winCal.document.writeln('<option value="' + i + '">' + i +'</option>');
	}
}
winCal.document.writeln('</select>');
winCal.document.writeln('</td>');
winCal.document.writeln('</tr>');
//Composizione della tabella per il link giorni
winCal.document.write("<script>");
winCal.document.writeln("myMonth = opener.fBuildCal("+iYear +", " + iMonth + ");");
winCal.document.writeln(sc2);	
winCal.document.write("<tr><td>");
winCal.document.write('<table class=Row_1>');
winCal.document.writeln("<script>");
winCal.document.writeln('var inizioR="<tr>";');
winCal.document.writeln('var fineR="</tr>";');
//la prima riga della tabella contiene i nomi dei giorni
winCal.document.writeln("document.write(inizioR);");
winCal.document.writeln("for (d = 0; d < 7; d++) {");
winCal.document.writeln('	document.write("<td align=center width=14% class=titolo>");');
winCal.document.writeln("	document.write(myMonth[0][d]);");
winCal.document.writeln('	document.writeln("</td>");');
winCal.document.writeln("}");
winCal.document.writeln("document.writeln(fineR);");
//le restanti righe contengono i numeri dei giorni
winCal.document.writeln("var cella;");
winCal.document.writeln("for (w = 1; w < 7; w++) {");
winCal.document.writeln("	document.writeln(inizioR);");
winCal.document.writeln("	for (d = 0; d < 7; d++) {");
winCal.document.writeln('		cella = "<td align=center width=14%>";');
winCal.document.writeln("		if (!isNaN(myMonth[w][d])) {");
winCal.document.writeln("			var mTmp=doc.tbSelMonth.value;");
winCal.document.writeln("			if (mTmp.length < 2) {");
winCal.document.writeln("				mTmp = '0' + mTmp;")
winCal.document.writeln("			}");
winCal.document.writeln("			var gTmp = myMonth[w][d].toString();");
winCal.document.writeln("			if (gTmp.length < 2) {");
winCal.document.writeln("				gTmp = '0' + eval(myMonth[w][d].toString());")
winCal.document.writeln("			}");
winCal.document.writeln("			var periodo= gTmp + '/' + mTmp + '/' + doc.tbSelYear.value;");
winCal.document.writeln('			cella = cella + "<a class=standard href=\'javascript:if (opener.closed){window.close();} else{opener.fcbMakeCal(\\\"" + gTmp + "\\\", \\\"" + mTmp +"\\\", \\\"" + doc.tbSelYear.value + "\\\")};\'>";');
winCal.document.writeln("			cella = cella + myMonth[w][d];");
winCal.document.writeln('			cella = cella + "</A>";');
winCal.document.writeln("		}");
winCal.document.writeln("		else {");
winCal.document.writeln("			cella = cella + ' ';");
winCal.document.writeln("		}");
winCal.document.writeln('		cella = cella + "</td>";');
winCal.document.writeln("		document.writeln(cella);");
winCal.document.writeln("	}");
winCal.document.writeln("	document.writeln(fineR);");
winCal.document.writeln("}");
winCal.document.writeln(sc2);	
winCal.document.writeln("</table>");
winCal.document.write("</td>");
winCal.document.write("</tr>");
winCal.document.write("</table>");
winCal.document.close();
}
function fBuildCal(iYear, iMonth) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
aMonth[0][0] = oCal.aGiorni[0];
aMonth[0][1] = oCal.aGiorni[1];
aMonth[0][2] = oCal.aGiorni[2];
aMonth[0][3] = oCal.aGiorni[3];
aMonth[0][4] = oCal.aGiorni[4];
aMonth[0][5] = oCal.aGiorni[5];
aMonth[0][6] = oCal.aGiorni[6];
for (d = iDayOfFirst; d < 7; d++) {
	aMonth[1][d] = iVarDate;
	iVarDate++;
}
for (w = 2; w < 7; w++) {
	for (d = 0; d < 7; d++) {
		if (iVarDate <= iDaysInMonth) {
			aMonth[w][d] = iVarDate;
			iVarDate++;
		}
	}
}
return aMonth;
}
function fcbDrawCal(iYear, iMonth) {
	oCal.anno = iYear;
	oCal.mese = iMonth;
	fDrawCal(oCal.anno, oCal.mese);
}
function fcbMakeCal(iDay, iMonth, iYear) {
	var dataComp = oCal.componiData(iDay, iMonth, iYear);
	var oMy = new objExec(oCal.cbFunc, dataComp);
	winCal.close();
}
function ric_cbcreaCalDal(Valore) {
	document.forms[0].datadal.value = Valore;
}
function ric_cbcreaCalAl(Valore) {
	document.forms[0].dataal.value = Valore;
}
function ric_creaCalDal() {
	fMakeCal(document.forms[0].datadal.value, objCal.giorni, objCal.mesi, objCal.anni, objCal.stile, objCal.sfondo, ric_cbcreaCalDal, objCal.messaggio);
}
function ric_creaCalAl() {
	fMakeCal(document.forms[0].dataal.value, objCal.giorni, objCal.mesi, objCal.anni, objCal.stile, objCal.sfondo, ric_cbcreaCalAl, objCal.messaggio);
}




