var cal_consegna;
var cal_ritiro;
var data_consegna;
var data_ritiro;
function initCalendar(){
	if(document.getElementById("datefrm")){
	// i due calendari
	cal_consegna = new Calendar(1, null, consegnaSelected);
	cal_ritiro = new Calendar(1, null, ritiroSelected);
		
	// variabili per i due calendari
	var fg = document.getElementById("giorno_consegna").value;
	var fm =  document.getElementById("mese_consegna").value;
	var fa =  document.getElementById("anno_consegna").value;
		
	var fgr =  document.getElementById("giorno_ritiro").value;
	var fmr =  document.getElementById("mese_ritiro").value;
	var far =  document.getElementById("anno_ritiro").value;
		
		
	// setto la variabile per la data predefinita del calendario
	data_consegna = new Date();
	data_consegna.setDate(fg);
	data_consegna.setMonth(fm-1);
	data_consegna.setYear(fa);
		
	data_ritiro = new Date();
	data_ritiro.setDate(fgr);
	data_ritiro.setMonth(fmr-1);
	data_ritiro.setYear(far);
		
		
	}
	showFlatCalendar();
}
// funzione per disabilitare su entrambi i calendari
function disabilitaDateCons(date) {
			var today = new Date();
			var MINUTE = 60 * 1000;
			var HOUR = 60 * MINUTE;
			var DAY = 24 * HOUR;
			var WEEK = 7 * DAY;
		    var verifica1 = ((date.getTime() - today.getTime()) / DAY) < -1;
			if (date.getDay() == 0 || verifica1) return true
		    return false;
}
function disabilitaDateRit(date) {
		var today = new Date();
		var MINUTE = 60 * 1000;
		var HOUR = 60 * MINUTE;
		var DAY = 24 * HOUR;
		var WEEK = 7 * DAY;
		var verifica1 = ((date.getTime() - today.getTime()) / DAY) < 0;
		if (date.getDay() == 0 || verifica1) return true
		return false;
}
function verificaOrdineDate(){
		var esito;
		data_consegna = cal_consegna.date;
		data_ritiro = cal_ritiro.date;
			
		test1 = false;
		test2 = false;
		test1 = (data_consegna > data_ritiro);
		if(!test1)
		test2 = (
					cal_consegna.date.getFullYear() == cal_ritiro.date.getFullYear() && 
					cal_consegna.date.getMonth() == cal_ritiro.date.getMonth() && 
					cal_consegna.date.getDate() == cal_ritiro.date.getDate()
		)
		if(test1 || test2){	
		ngiomesi = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		if((cal_consegna.date.getFullYear()%4) == 0)ngiomesi[1] = 29;
				
		var data_consegna_temp = new Date();
		//ultimo_mese
		consG = cal_consegna.date.getDay();
		consD = cal_consegna.date.getDate();
		consM = cal_consegna.date.getMonth();
		consA = cal_consegna.date.getFullYear();
		mesechanged = false;annochanged = false;weekchanghed = false;
		if(
		(consD == ngiomesi[consM] && consM == 11) || //31 dicembre
		(consG==0 && (consG == ngiomesi[consM])-1 && consM == 11) //30 dicembre sabato
		){
			consA++;
			annochanged=true;
			consD=1;
			consM=0;
		}
		if(consD == ngiomesi[consM]){
			consM++;
			mesechanged=true;
			consD=1;
		}
		if(consG == 6){	
			if(mesechanged || annochanged){
				consD += 1;
				weekchanghed = true;
			}else{
				consD += 2;
				weekchanghed = true;
			}
		}
		if(test2){
				if(!mesechanged && !annochanged && !weekchanghed)consD += 1;
		}
		//alert(cal_consegna.date.getDate());
		//alert(cal_consegna.date.getDate()+2);
				
		data_consegna_temp.setDate(consD);
		data_consegna_temp.setMonth(consM);
		data_consegna_temp.setYear(consA);
				
				
		cal_ritiro.setDate(data_consegna_temp);
		correggiFormRitiro();
	}
	return;
}
	
function aggiornaForm(){
	var y = cal_consegna.date.getFullYear();
	var m = cal_consegna.date.getMonth();     // integer, 0..11
	var d = cal_consegna.date.getDate(); 
	var yr = cal_ritiro.date.getFullYear();
	var mr = cal_ritiro.date.getMonth();     // integer, 0..11
	var dr = cal_ritiro.date.getDate();      // integer, 1..31
	document.getElementById("anno_consegna").value = y;
	document.getElementById("mese_consegna").value = m+1;
	document.getElementById("giorno_consegna").value = d;
	document.getElementById("anno_ritiro").value = yr;
	document.getElementById("mese_ritiro").value = mr+1;
	document.getElementById("giorno_ritiro").value = dr;
	return;
}
function correggiFormRitiro(){
	document.getElementById("anno_ritiro").value = cal_ritiro.date.getFullYear();
	document.getElementById("mese_ritiro").value = cal_ritiro.date.getMonth()+1;
	document.getElementById("giorno_ritiro").value =  cal_ritiro.date.getDate();
}
// funzioni per la data di consegna
function consegnaChanged(cal) {
	aggiornaForm();
	verificaOrdineDate();
};
		
function consegnaSelected(calendar, date) {
		  consegnaChanged(calendar);
		  //var el = document.getElementById("preview");
		  //el.innerHTML = date;
}
		
		
function ritiroChanged(cal) {
		  aggiornaForm();
		  verificaOrdineDate();
};
		
function ritiroSelected(calendar, date) {
		  ritiroChanged(calendar);
		  //var el = document.getElementById("preview");
		  //el.innerHTML = date;
}
		
		
		
function showFlatCalendar() {
		  if(document.getElementById("calendar-container1")){
		  var parentConsegna = document.getElementById("calendar-container1");
		  cal_consegna.weekNumbers = false;
		  cal_consegna.setDateFormat("%A, %B %e");
		  //cal_consegna.setRange(2005, 2006);
		  cal_consegna.setDisabledHandler(disabilitaDateCons);
		  cal_consegna.create(parentConsegna);
		  cal_consegna.show();
		  cal_consegna.setDate(data_consegna);
		
		  var parentRitiro = document.getElementById("calendar-container2");
		  cal_ritiro.weekNumbers = false;
		  cal_ritiro.setDateFormat("%A, %B %e");
		  //cal_ritiro.setRange(2005, 2006);
		  cal_ritiro.setDisabledHandler(disabilitaDateRit);
		  cal_ritiro.create(parentRitiro);
		  cal_ritiro.show();
		  cal_ritiro.setDate(data_ritiro);
		  }		  
}