function isLeapYear( y ){
	return (
		(y % 400) == 0
	)
	||
	(
		( (y % 4) == 0 ) && ( (y % 100) != 0 )		
	);
}

function checkDate( yyyy, mm, dd ){
	var ultimoGiorno = 0;
	if(isNaN(yyyy) || isNaN(mm) || isNaN(dd))
		return false;
	yyyy=parseInt(yyyy);
	mm=parseInt(mm);
	dd=parseInt(dd);
	switch( mm ){
		case 2:
			ultimoGiorno = 28 + ( isLeapYear(yyyy) ? 1 : 0 );
		break;
		case 4 : case 6 : case 9 : case 11 :
			ultimoGiorno = 30;
		break;
		default :
			ultimoGiorno = 31;
	}
	
	return (dd >= 1) && (dd <= ultimoGiorno) && (mm >= 1) && (mm <= 12) && (yyyy >= 1900);
}

function controllaDate(ga,ma,aa,gp,mp,ap) {
	if(!(checkDate(aa, ma,ga) && checkDate( ap, mp, gp)))
		return false;
	var inizio=new Date();
	inizio.setFullYear(aa,ma-1,ga);
	var fine=new Date();
	fine.setFullYear(ap,mp-1,gp);
	return inizio.getTime() < fine.getTime();
}

function controllaDateE(ga,ma,aa,gp,mp,ap) {
	if(!(checkDate(aa, ma,ga) && checkDate( ap, mp, gp)))
		return false;
	var inizio=new Date();
	inizio.setFullYear(aa,ma-1,ga);
	var fine=new Date();
	fine.setFullYear(ap,mp-1,gp);
	return inizio.getTime() <= fine.getTime();
}

function notti(gA,mA,aA,gP,mP,aP) {//calcola la differenza in notti tra arrivo e partenza
	if(checkDate(aA, mA, gA)
				&& checkDate(aP, mP, gP))
		{
		var gg=0;
		var n=new Date();
		n.setFullYear(aA,mA-1,gA);
		var m=new Date();
		m.setFullYear(aP,mP-1,gP);
		gg=Math.round((m.getTime()-n.getTime())/(1000*24*60*60));
		return gg;
		}//if
	else
		{
		alert('errore nelle date!');
		return -1;
		}//else
}//notti

	
function aggiungiNotti(g,m,a,notti) {//aggiunge un certo numero di notti ad una data
	var n=new Date();
	n.setFullYear(a,m-1,g);
	var m=new Date();
	m.setTime((1000*24*60*60)*(notti)+n.getTime())
	var risultato = new Array;
	risultato["g"]=m.getDate();
	risultato["m"]=m.getMonth()+1;
	risultato["a"]=m.getFullYear();
	return risultato;
}//aggiungiNotti

function createCFDate(y,m,d) {
	return "{ts '"+y+"-"+m+"-"+d+" 00:00:00'}";
}//createCFDate
