// JavaScript Document
function hSel(pippo) {
}
app = navigator.userAgent;
isIe = navigator.userAgent.indexOf('MSIE');
engine = navigator.userAgent.indexOf('Gecko');
oS = navigator.userAgent.indexOf('Win');
document.setSelect = true;
var timerRunning = false;
var timerSelect = false;
var timerFix = false;
var ckTimerIDBis = false;
var gDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var nameDays = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
var browser = document.layers ? 0 : document.all ? 1 : 2;
function showCalendar(e, flag, setObj) {
	if (setObj == "fromData") {
		document.getElementById(setObj).value = document.getElementsByName("giornoIni")[0].value+"/"+document.getElementsByName("meseIni")[0].value+"/"+document.getElementsByName("annoIni")[0].value;
	}
	if (setObj == "toData") {
		document.getElementById(setObj).value = document.getElementsByName("giornoEnd")[0].value+"/"+document.getElementsByName("meseEnd")[0].value+"/"+document.getElementsByName("annoEnd")[0].value;
	}
	document.getElementById(setObj).setAttribute("primoClick", "");
	document.writeDate = setObj;
	if (document.all) {
		var myX = e.x;
		var myY = e.y;
	} else {
		var myX = e.pageX;
		var myY = e.pageY;
	}
	var aa = document.body.scrollTop;
	if (aa>0 && document.all) {
		myY = myY+aa;
	}
	myX = myX-(142/2);
	myY = myY+20;
	document.getElementById("myCalendario").style.visibility = "visible";
	document.getElementById("myCalendario").style.top = myY+"px";
	document.getElementById("myCalendario").style.left = myX+"px";
	switch (flag) {
		/* per adesso lo faccio diventare case 1 */
		/*
		    case 0: 
		    time = new Date();
		    mese = time.getMonth();
		    anno = time.getFullYear();
		    document.setMese = mese;
		    document.setAnno = anno;
		    makeCalendarForDay(time.getDate(),null,false,true);
		    break;
		    */
	case 1 :
		time = new Date();
		mese = time.getMonth();
		anno = time.getFullYear();
		document.setMese = mese;
		document.setAnno = anno;
		makeCalendarForDay(time.getDate(), null, false, true);
		break;
		/* per adesso lo faccio diventare case 0 */
		/*
		
		    case 1:
		    if (document.getElementById(setObj).value  == ""){
		    document.setMese = null;
		    document.setAnno = null;
		    }
		    makeCalendarForDay(null,false,true,true);
		    break;
		    */
	case 0 :
		if (document.getElementById(setObj).value == "") {
			document.setMese = null;
			document.setAnno = null;
		}
		makeCalendarForDay(null, false, true, true);
		break;
	case 2 :
		if (document.getElementById(setObj).value == "") {
			document.setMese = null;
			document.setAnno = null;
		}
		makeCalendarForDay(null, false, false, true);
		break;
	case 3 :
		time = new Date();
		mese = time.getMonth();
		anno = time.getFullYear();
		document.setMese = mese;
		document.setAnno = anno;
		makeCalendarForDay(time.getDate(), null, true, true);
		break;
	case 4 :
		time = new Date();
		mese = time.getMonth();
		anno = time.getFullYear();
		document.setMese = mese;
		document.setAnno = anno;
		makeCalendarForDay(time.getDate()+3, null, false, true);
		break;
	}
	hSel("hide");
}
function makeCalendarForDay(setDay, nextStep, ancheFeste, primo) {
	writeTo = document.writeDate;
	var dataFromPage = document.getElementById(writeTo).value;
	var controllo = document.getElementById(writeTo).getAttribute("primoClick");
	if (dataFromPage != "" && controllo != "yes" && nextStep != null) {
		document.getElementById(writeTo).setAttribute("primoClick", "yes");
		dataArray = dataFromPage.split("/");
		dataFromPage = dataArray[1]+"/"+dataArray[0]+"/"+dataArray[2];
		time = new Date(dataFromPage);
		if (isNaN(time)) {
			time = new Date();
			mese = time.getMonth();
			anno = time.getFullYear();
			mese = parseInt(mese);
			anno = parseInt(anno);
			mese += 1;
			dataArray[1] = mese;
			dataArray[2] = anno;
		}
		dataArray[1] = parseInt(dataArray[1]);
		document.setMese = dataArray[1];
		document.setAnno = dataArray[2];
		if (dataArray[1]>12) {
			document.setMese = null;
			time = new Date();
		}
	} else {
		time = new Date();
		document.getElementById(writeTo).setAttribute("primoClick", "yes");
	}
	if (document.setMese == null) {
		mese = time.getMonth();
		anno = time.getFullYear();
		document.setMese = mese+1;
		document.setAnno = anno;
	}
	giorno = time.getDate();
	giorno -= 1;
	if (nextStep == true) {
		anno = document.setAnno;
		anno = parseInt(anno);
		mese = document.setMese+1;
		giorno = 0;
		if (mese == 12) {
			mese = 0;
			anno = document.setAnno;
			anno = parseInt(anno);
			anno = anno+1;
		}
	} else if (nextStep == false) {
		anno = document.setAnno;
		anno = parseInt(anno);
		mese = document.setMese-1;
		giorno = 0;
		if (mese == -1) {
			mese = 11;
			anno = document.setAnno;
			anno = parseInt(anno);
			// Modifiche Bettiolo : qui sotto sono le date di default del calendario
			anno = anno+0;
			mese = time.getMonth();
		}
	} else if (nextStep == null) {
		giorno = setDay-1;
		giorno = parseInt(giorno);
		anno = document.setAnno;
		anno = parseInt(anno);
		if (primo == true) {
			mese = document.setMese;
		} else {
			mese = document.setMese-1;
		}
		if (mese == -1) {
			mese = 11;
			anno = document.setAnno;
			anno = parseInt(anno);
			// Commento sottostante aggiunto Bettiolo
			// anno = anno-1;
		}
	}
	if (dataFromPage != "") {
	}
	document.setMese = mese;
	document.setAnno = anno;
	start = new Date(1980, 1, 1, 1, 1, 1, 1);
	start.setMonth(mese);
	start.setYear(anno);
	primoGiorno = start.getDay();
	primoGiorno -= 1;
	if (primoGiorno == -1) {
		primoGiorno = 6;
	}
	var x = 0;
	var txtTab = new Array(42);
	if (primoGiorno != 0) {
		do {
			txtTab[x] = "<td class=\"giornovuoto\"><img src=\"/CalendarioPopUp/null.gif\" width=\"1\" height=\"1\" border=\"0\"></td>";
			x += 1;
		} while (x<primoGiorno);
	}
	giorno = giorno+x;
	if (mese == 1) {
		controllo = new Date(anno, 1, 29);
		controlloBis = new Date(anno, 2, 1);
		controllo = controllo.getDay();
		controlloBis = controlloBis.getDay();
		if (controllo != controlloBis) {
			gDays[mese] = 29;
		} else {
			gDays[mese] = 28;
		}
	}
	var maxDay = gDays[mese]+primoGiorno;
	var contDay = 1;
	start.setMonth(mese, 1);
	do {
		if (contDay<10) {
			contDayPrint = "&nbsp;&nbsp;"+contDay;
		} else {
			contDayPrint = contDay;
		}
		if (x<giorno) {
			myClass = "giornidisab";
		} else {
			myClass = "bodysmalltab";
		}
		if (x == 5 || x == 12 || x == 19 || x == 26 || x == 33) {
			var aax = true;
		} else {
			var aax = isfesta(start);
		}
		if (aax == true) {
			if (ancheFeste == true) {
				if (myClass == "giornidisab") {
					txtTab[x] = "<td class=\"giornifesteDisab\" align=\"center\" height=\"13\">"+contDayPrint+"</td>";
				} else {
					txtTab[x] = "<td class=\"bodysmalltab_blu\" onClick=\"pickDay(this)\" align=\"center\" height=\"13\" style=\"cursor:pointer;cursor:hand;\" giorno=\""+contDay+"\">"+contDayPrint+"</td>";
				}
			} else {
				txtTab[x] = "<td class=\"giornifesteDisab\" align=\"center\" height=\"13\">"+contDayPrint+"</td>";
			}
		} else {
			if (myClass == "giornidisab") {
				txtTab[x] = "<td class=\""+myClass+"\" align=\"center\" height=\"13\">"+contDayPrint+"</td>";
			} else {
				txtTab[x] = "<td class=\""+myClass+"\" onClick=\"pickDay(this)\" height=\"13\" align=\"center\" style=\"cursor:pointer;cursor:hand;\" giorno=\""+contDay+"\">"+contDayPrint+"</td>";
			}
		}
		contDay += 1;
		x += 1;
		/* a Safari nn piace - patch Martini 24/02/2004 */
		//start.setMonth(mese, contDay)
		start = new Date(anno, mese, contDay);
	} while (x<maxDay);
	do {
		txtTab[x] = "<td class=\"giornovuoto\"><img src=\"/CalendarioPopUp/null.gif\" width=\"1\" height=\"1\" border=\"0\"></td>";
		x += 1;
	} while (x<42);
	x = 0;
	var txt = "<table border='0' cellpadding=\"0\" cellspacing=\"0\" background=\"/CalendarioPopUp/sfondo_calendar.gif\" width=\"224\" height=\"151\"><tr><td align=\"center\" valign=\"top\"><table cellpadding=\"0\" cellspacing=\"0\" id=\"calendario\" style=\"padding-top:10px;\"  border='0'><tr>";
	txt += "<td class=\"bodysmalltab\" width=\"20\" align=\"center\">";
	meseOgg = time.getMonth();
	annoOgg = time.getFullYear();
	if (setDay != null && meseOgg>=mese && annoOgg>=anno) {
		var skip = "<img src=\"/CalendarioPopUp/null.gif\" width=\"16\" height=\"15\" border=\"0\">";
	} else {
		meseTrans = meseOgg+1;
		annoTrans = annoOgg;
		if (meseTrans == 12) {
			meseTrans = 0;
			annoTrans += 1;
		}
		if (meseTrans == mese && annoTrans == anno) {
			var blocca = null;
		} else {
			var blocca = false;
		}
		var skip = "<a href=\"javascript:makeCalendarForDay("+setDay+","+blocca+","+ancheFeste+",false)\" id=\"prevImg\">&laquo;</a>";
	}
	txt += skip;
	txt += "</td><td nowrap=\"nowrap\" class=\"bodysmall\" width=\"100\" align=\"center\"><span class=\"bodysmall\"><b id=\"titleCalendar\">"+nameDays[mese]+" "+anno+"</b></span></td>";
	txt += "<td class=\"bodysmalltab\" width=\"20\" align=\"center\">";
	txt += "<a href=\"javascript:makeCalendarForDay("+setDay+",true,"+ancheFeste+",false)\"  id=\"nextImg\">&raquo;</a>";
	txt += "</td></tr></table>";
	txt += "<table width=\"224\" cellpadding=\"0\" cellspacing=\"0\" id=\"csalendario\" border=\"0\" style=\"width:194px;margin:0px 15px\"><tr><td colspan=\"7\"><img src=\"/CalendarioPopUp/null.gif\" width=\"1\" height=\"15\" border=\"0\"></td></tr><tr class=\"bodysmall\"><td align=\"center\" height=\"15\"><b>&nbsp;&nbsp;L</b></td><td align=\"center\"><b>&nbsp;&nbsp;M</b></td><td align=\"center\"><b>&nbsp;&nbsp;M</b></td><td align=\"center\"><b>&nbsp;&nbsp;G</b></td><td align=\"center\"><b>&nbsp;&nbsp;V</b></td><td align=\"center\"><b>&nbsp;&nbsp;S</b></td><td align=\"center\"><b>&nbsp;&nbsp;D</b></td></tr>";
	do {
		txt += txtTab[x];
		if (x == 6 | x == 13 | x == 20 | x == 27 | x == 34) {
			txt += "</tr><tr>";
		}
		x += 1;
	} while (x<42);
	//txt += "<tr align=\"center\"  bgcolor=\"#e6e6e6\"><td height=\"25\" colspan=\"7\" style=\"border-top:1px solid #fff\" class=\"setHand\"><span class=\"bodysmall\" onclick=\"chiudiCalendar()\">Chiudi</span> </td></tr>"
	txt += "</tr></table></td></tr></table>";
	document.getElementById("myCalendario").innerHTML = txt;
	frameHeight = document.body.clientHeight;
	var aa = document.body.scrollTop;
	frameHeight = frameHeight+aa+100;
	document.getElementById("clicca").style.visibility = "visible";
	document.getElementById("clicca").style.width = "100%";
	document.getElementById("clicca").style.height = frameHeight+"px";
}
function pickDay(obj) {
	document.getElementById("clicca").style.visibility = "hidden";
	var giorno = obj.getAttribute("giorno");
	var pkValore = document.getElementById("titleCalendar").innerHTML;
	arrValore = pkValore.split(" ");
	mese = arrValore[0];
	mese = numeroMese(mese);
	anno = arrValore[1];
	var obj = document.writeDate;
	var taggy = document.getElementById(obj).tagName;
	taggy = taggy.toLowerCase();
	setDateToObj(giorno, mese, anno, taggy);
}
function numeroMese(str) {
	for (var x = 0; x<12; x += 1) {
		if (str == nameDays[x]) {
			x = x+1;
			if (x<10) {
				x = "0"+x;
			}
			return x;
		}
	}
}
function setDateToObj(giorno, mese, anno, type) {
	//Patch ldibuono per la corretta formattazione della data: dd/mm/yyyy
	if (giorno.length == 1) {
		giorno = '0'+giorno;
	}
	if (mese.length == 1) {
		mese = '0'+mese;
	}
	///////////////////////////////////////////////////////////////////// 
	switch (type) {
	case "select" :
		var myStrng = giorno+"/"+mese+"/"+anno;
		var obj = document.writeDate;
		var nrCicli = document.getElementById(obj).options.length;
		var x = 0;
		do {
			if (myStrng == document.getElementById(obj).options[x].text) {
				document.getElementById(obj).selectedIndex = x;
				document.getElementById("myCalendario").style.visibility = "hidden";
				document.getElementById(obj).focus();
				return false;
				x = nrCicli;
			} else {
				x += 1;
			}
		} while (x<nrCicli);
		break;
	case "input" :
		var obj = document.writeDate;
		var myStrng = giorno+"/"+mese+"/"+anno;
		document.getElementById(obj).value = myStrng;
		//document.getElementById(obj).focus()
		document.getElementById("myCalendario").style.visibility = "hidden";
		if (obj == "fromData") {
			document.getElementsByName("giornoIni")[0].value = giorno;
			document.getElementsByName("meseIni")[0].value = mese;
			document.getElementsByName("annoIni")[0].value = anno;
		}
		if (obj == "toData") {
			document.getElementsByName("giornoEnd")[0].value = giorno;
			document.getElementsByName("meseEnd")[0].value = mese;
			document.getElementsByName("annoEnd")[0].value = anno;
		}
		hSel("show");
		break;
	}
}
function chiudiCalendar() {
	document.getElementById("clicca").style.visibility = "hidden";
	writeTo = document.writeDate;
	strTest = new String(document.writeDate);
	if ((strTest != 'undefined') && (strTest != 'null') && (strTest != null)) {
		document.getElementById(writeTo).setAttribute("primoClick", "");
		document.writeDate = null;
		document.getElementById("myCalendario").style.visibility = "hidden";
		hSel("show");
	}
}
function isfesta(d) {
	var feste = new Array(0, 101, 106, 425, 501, 602, 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 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 setOggi() {

	time = new Date();
	mese = time.getMonth();
	anno = time.getFullYear();
	giorno = time.getDay();
	dat = mese+"/"+giorno+"/"+anno;
	return dat;
}

function setdate(giornoEnd, meseEnd, annoEnd) {

  time = new Date();
  giorno = time.getDate();
  mese = time.getMonth() + 1;
  if (giorno<10) {
        giorno="0" + giorno;
  }
  if (mese<10) {
        mese="0" + mese;
    }
  anno = time.getFullYear();
   
  document.getElementsByName(giornoEnd)[0].value=giorno;
  document.getElementsByName(meseEnd)[0].value=mese;
  document.getElementsByName(annoEnd)[0].value=anno;

  mese=mese - 0

  if (mese <= 0) {
  mese = mese + 12
  anno = anno - 0
  }

   if (giorno == 31 && (mese == "2" || mese == "4" || mese == "6" || mese == "9" || mese == "11" )){
  giorno = 30
  } 
  if (mese<10) {
        mese="0" + mese;
    }

  document.getElementsByName("giornoIni")[0].value=giorno;
  document.getElementsByName("meseIni")[0].value=mese;
  document.getElementsByName("annoIni")[0].value=anno;
}

