/**
 * File js contenente le funzioni generali utilizzate dalle pagine html
 *  
 * @author Giuliana Borzacchiello
 *
 */   

// **** VARIABILI GLOBALI ***


dayName=new Array ("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato")
monName=new Array ("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre")
countDay=new Array ("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31")
var now= new Date
var year  = now.getYear();
if(year < 2000) {
    year = year + 1900;
}
/* 
 * Il seguente blocco di codice serve per far comparire dinamicamete i quadrati vuoti nel calendario
 * e quindi per far visualizzare correttamente i giorni del mese.
 * int_mese indica quanti quadratini vuoti ci sono all'inizio, a partire dal lunedì.
 *   
 */
var int_mese=0;
var mese_tmp = now.getMonth()+1;
if (mese_tmp <10) {
    mese_tmp = "0"+mese_tmp;
}
var date="01/"+mese_tmp+"/"+year;
//var mese_vuoto = new Date(date);
 int_mese= 0;//mese_vuoto.getDay()+1;

if (mese_tmp ==01) {
    int_mese = 6;   /* indica il numero di quadratini vuoti*/
}
else if (mese_tmp ==02) {
    int_mese = 2;
}
else if (mese_tmp ==03) {
    int_mese = 2;
}
var red_day =  8 - int_mese;
/*
 * Fine blocco
**/



/**
 * Questa funzione visualizza la data corrente nel top delle pagine
 *  
 */
  
function data_corrente(){

    /*
     * Per estrarre i dati della data:
     * var hour        = now.getHours();
     * var minute      = now.getMinutes();
     * var second      = now.getSeconds();
     * var monthnumber = now.getMonth();
     * var monthday    = now.getDate();
     * var year        = now.getYear();
     *
     */
    if (now.getHours()< 10)
        ore= "0"+now.getHours()
    if (now.getMinutes()<10)
        minuti= "0"+now.getMinutes()
    document.write("<span class='top_dinamico' >\n\
     Oggi è "+ dayName[now.getDay()] + " " +
        now.getDate() + " " +
        monName[now.getMonth()] + " "+ year) 
}

 /**
  *
  * Questa funzione crea un calendario con eventi
  *   
  */       

function calendario(){

    document.write("<div class='intestazione_blocco2'>"+monName[now.getMonth()] + " "+ year+"</div>");
    document.write("<div id='mese'>");
    document.write("<a href='#nogo' class='giorniRossi'>DO</a>");
    document.write("<a href='#nogo' class='giorni'>LU</a>");
    document.write("<a href='#nogo' class='giorni'>MA</a>");
    document.write("<a href='#nogo' class='giorni'>ME</a>");
    document.write("<a href='#nogo' class='giorni'>GI </a>");
    document.write("<a href='#nogo' class='giorni'>VE</a>");
    document.write("<a href='#nogo' class='giorni'>SA</a>");
   
    // codice per visualizzare gli spazi vuoti
    if (int_mese !=0) {
        for (i=0;i<int_mese;i++){
            document.write("<a href='#nogo' class='vuoto'></a>");
        }
    }
    // end
    testo_p="Mandaci un tuo evento: un compleanno o una qualsiasi manifestazione";
    testoDayGiugno= new Array ("",
        testo_p, testo_p,
        testo_p, testo_p, testo_p, testo_p, testo_p, testo_p,
        testo_p,testo_p,testo_p,testo_p, testo_p,testo_p,testo_p,
        testo_p,testo_p,testo_p, testo_p,testo_p,
        testo_p,testo_p,testo_p, testo_p,
        testo_p, testo_p, testo_p, testo_p, testo_p, testo_p, testo_p);
    now= new Date;
    giorno =now.getDate();
    testo=testoDayGiugno[now.getDate()];
    for (i=1; i<=countDay[now.getMonth()]; i++){
       
       var classeDay = ""; // classe per colorare i giorni del calendario.
       var check = checkDomenica(i, countDay[now.getMonth()]);
       if (check == 0 ) {
          classeDay="testoRosso";
       }
       else if (check == 1 ) {
           classeDay="giorno_festivo_corrente";
       }
        else if (check == 2 ) {
          classeDay="testoVerde";
       }
       document.write("<a href='#nogo' class="+classeDay+">"+i+"<span><em>"+i+" "+monName[now.getMonth()] +"</em>"+testoDayGiugno[i]+"</span></a>");
    }
    document.write("<div style='clear:both;'></div>");
    document.write("</div>");
    document.write("<div class='intestazione_blocco2'>Eventi</div>");
    document.write("<p>"+testo+"</p>");
}


/**
 *    Controlla se il giorno in input è una domenica per colorarlo in rosso o se è 
 *    il giorno corrente per colorarlo in verde.
 *    @param day
 *          giorno in input
 *    @param totDay
 *          Giorni totali del mese  
 *    @return
 *          ritorna -1 se il giorno non è una domenica
 *          ritorna 0 se il giorno è una domenica
 *          ritorna 1 se il giorno è una domenica ed è il giorno corrente.
 *          ritorna 2 se il giorno in input è il giorno corrente. 
 */
    
 function checkDomenica(day, totDay) {
  
        var res = -1;
        var actualDay =now.getDate();
        // red_day = prima domenica del mese.
        var cont = red_day;
        // se day è precedente alla prima domenica del mese, allora non sarà una domenica
        if (day < cont)
            return -1
        while(cont <= totDay) {
          
          if (day == cont) 
              {
                //classeDay="testoRosso";
                return 0;
             }
          if (   (day == actualDay) &&   (day == cont) )  // giorno attuale festivo   
                {
                return 1;
                //classeDay="giorno_festivo_corrente";
                } 
          if (   (day == actualDay) &&   (day != cont) )  // giorno attuale non festivo   
                {
                return 2;
                //classeDay="testo_Verde";
                }     
           
          cont = cont +7;
          } 
       return res;  
        
 }

/*
 * Funzione di caricamento per l'HOME
 **/
function loadHome() {

   loadImages();
}

function loadLink() {

   test.trans++;
   alert(test.trans);				// 1
   test.trans++;
   alert(test.trans); //2
   loadImages();
}
 /**
  *
  * Funzione per la gestione dell'immagine "Caricamento in corso..."  in base ai diversi browser
  *   
  */       
function loadImages() {

  
    if (document.getElementById) {  // DOM3 = IE5, NS6
        document.getElementById('hidepage').style.display = 'none';
    }
    else {
        if (document.layers) {  // Netscape 4
            document.hidepage.display = 'none';
        }
        else {  // IE 4
            document.all.hidepage.style.display = 'none';
        }
    }
 
}



/**
 *
 * Funzione per assegnare l'oggetto XMLHttpRequest  compatibile con i browsers più recenti e diffusi 
 * 
 * @return  
 *      XMLHttpRequest 
 */
function assegnaXMLHttpRequest() {
  // variabile di ritorno, nulla di default
  var  XHR = null,
  // informazioni sul nome del browser
  browserUtente = navigator.userAgent.toUpperCase();
  // browser standard con supporto nativo non importa il tipo di browser
  if(typeof(XMLHttpRequest) == "function" || typeof(XMLHttpRequest) == "object")
    XHR = new XMLHttpRequest();
  // browser Internet Explorer è necessario filtrare la versione 4
  else if( window.ActiveXObject &&  browserUtente.indexOf("MSIE 4") < 0  ) 
   {
    // la versione 6 di IE ha un nome differente  per il tipo di oggetto ActiveX
    if(browserUtente.indexOf("MSIE 5") < 0)
      XHR = new ActiveXObject("Msxml2.XMLHTTP");
    // le versioni 5 e 5.5 invece sfruttano lo stesso nome
    else
     XHR = new ActiveXObject("Microsoft.XMLHTTP");
   }
 return XHR;
} 

/*
 ** Esempio per la funzione assegnaXMLHttpRequest
 *  La funzione onLoad ritorna l'oggetto  XMLHttpRequest. Se non dà errore (l'oggetto è 
 *  riconosciuto nel browser usato ) esegue le operazioni. 
 *  In questo esempio chiama la funzione prendiElementoDaId che prende l'oggetto con l'id in input 
 *  (è il getElementById, ma diverso in base al browser usato ) e ci applica la funzione
 *  innerHTML che scrive sulla pagina HTML  
 
function onLoad() {
 var ajax = assegnaXMLHttpRequest();
  if(ajax) {
    prendiElementoDaId('paragrafo').innerHTML = '<span id="span0" onclick="cambiaTesto();">cambia questo testo</span>';
    }
}

function prendiElementoDaId(id_elemento) {
 var elemento;
 if(document.getElementById)
  elemento = document.getElementById(id_elemento);
 else
  elemento = document.all[id_elemento];
 return elemento;
};

function cambiaTesto() {
 prendiElementoDaId('span0').innerHTML = 'testo cambiato';
}
 
*/

