﻿<!--

function days_between(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)

    //var difference_ms = date1_ms - date2_ms

    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)
}

function calcolo_giorni() 
{
 var k = 0, numerogiorni = 0, indicenotti = 0, annopartenza = 0;
 var data_arrivo, data_partenza, giorno_arrivo, mese_arrivo, anno_arrivo, giorno_partenza, mese_partenza, anno_partenza;
 var nomecampo = "";
 var flagarrivo = false, flagpartenza = false;
 
 var start_date = new Date();
 var end_date = new Date();
 
 //alert("Calcolo Giorni");
 
 for(k=0; k<document.forms[0].length; k++) {
    if(document.forms[0].elements[k].type == "select-one"){
      nomecampo = document.forms[0].elements[k].name.toLowerCase();
      //alert(nomecampo + " " +document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value);
    }
    if(document.forms[0].elements[k].name.toLowerCase().indexOf("lblnottivalue") != - 1){ 
     indicenotti = k;
        //alert(document.forms[0].elements[indicenotti].value);
    }
    if(nomecampo.indexOf("ddlarrivalday") != -1 && document.forms[0].elements[k].type == "select-one"){
     start_date.setDate(document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value);
     giorno_arrivo = document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value;
    }
    if(nomecampo.indexOf("ddlarrivalmonth") != -1 && document.forms[0].elements[k].type == "select-one"){
     start_date.setMonth(document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value);
     mese_arrivo = document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value;
    }
    if(document.forms[0].elements[k].name.toLowerCase().indexOf("lblarrivalyear") != -1) {
     start_date.setYear(document.forms[0].elements[k].value);
     anno_arrivo = document.forms[0].elements[k].value;
    }
    if(nomecampo.indexOf("ddldepartureday") != -1 && document.forms[0].elements[k].type == "select-one") {
      end_date.setDate(parseInt(document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value));
      giorno_partenza = document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value;
    }
    if(nomecampo.indexOf("ddldeparturemonth") != -1 && document.forms[0].elements[k].type == "select-one") {
     end_date.setMonth(document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value);
     mese_partenza = document.forms[0].elements[k].options[document.forms[0].elements[k].selectedIndex].value;
    }
    if(document.forms[0].elements[k].name.toLowerCase().indexOf("lbldepartureyear") != -1) {
      end_date.setYear(document.forms[0].elements[k].value);
      anno_partenza = document.forms[0].elements[k].value;
    }
 }
 
  data_arrivo = mese_arrivo + "/" + giorno_arrivo + "/" + anno_arrivo;
  data_partenza = mese_partenza + "/" + giorno_partenza + "/" + anno_partenza;
  
  flagarrivo = controllodata(giorno_arrivo,mese_arrivo,anno_arrivo);
  flagpartenza = controllodata(giorno_partenza,mese_partenza,anno_partenza);
  
 if(flagarrivo == true && flagpartenza == true) { 
  if(Date.parse(data_arrivo) < Date.parse(data_partenza)) {
    //numerogiorni = days_between(start_date,end_date);
    numerogiorni = daysElapsed(data_arrivo,data_partenza);
   //alert("Numero giorni = " + numerogiorni + " indicenotti = " + indicenotti);
  if(numerogiorni > 0 && indicenotti > 0) 
    document.forms[0].elements[indicenotti].value = numerogiorni;
  }
  else {
    document.forms[0].elements[indicenotti].value = 0;
  }  
}
else {
    document.forms[0].elements[indicenotti].value = 0;
}

} // end function



function controllodata(giorno, mese, anno) {
    //alert(giorno + "-" + mese + "-" + anno);
    var ritorno = true;
    if(mese == 2 && giorno > 29) { // mese = febbraio e giorno > 29
      ritorno = false;
    } 
    if(mese == 2 && giorno == 29) { // mese = febbraio e giorno = 29 controllo se l'anno è bisestile
      ritorno = isleapyear(anno);
    } 
    if(mese == 4 || mese == 6 || mese == 9 || mese == 11) { // mesi con 30 giorni
      if(giorno == 31) ritorno = false;
    }
    return(ritorno);
}

function isleapyear(AYear) {
     result = (AYear % 4 == 0) && ((AYear % 100 != 0) || (AYear % 400 == 0));
     return (result);
}

function daysElapsed(date1,date2) {
   var ritorno = 0;
    var difference = Date.parse(date2) - Date.parse(date1);
    ritorno = difference/1000/60/60/24;
    return ritorno;
}
//-->


