var tab_link = config_calendar.link_xml.split(',')

function obtenirMois_int(mois)
{
    var chaine = '';
    var tabmois = $A(['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']);
    tabmois.each(function(item,index){
                          if(item == mois)
                          {
                            chaine = new String(index);
                          }
                      })
    if(chaine.length == '1'){ chaine = 0+chaine}
    return chaine;
}

function getDateString(unedate,type)
{
    var letype = type;
    var time = String(unedate.getTime()+(unedate.getTimezoneOffset()*60)+7200);
    
    if(time.length < 13) {
        time += '000';
    }
    unedate.setTime(time);
    
    //var te2=unedate.toGMTString(); //fixe la date pour tt le monde
    var te = new String(unedate);
    
    //alert("unedate.toGMTString() = "+te);
    var tab=te.split(' ');
    // 0 day de la semaine
    // 1 mois
    // 2 jour
    // 3 annee
    
    // lann?e chez IE est la tab[5] donc on inverse pour que sa soit comme sur FF
    if(tab[3].length != 4 ) {
        tab[3] = tab[5] ;
    }
    
    var sMois;
    switch(letype)
    {
        case 0 :
        if (sLangSite == "fr") {
            switch (tab[1]) {
                case 'Jan' :
                    sMois = 'Jan';
                    break;
                case 'Feb' :
                    sMois = 'Feb';
                    break;
                case 'Mar' :
                    sMois = 'Mar';
                    break;
                case 'Apr' :
                    sMois = 'Apr';
                    break;
                case 'May' :
                    sMois = 'May';
                    break;
                case 'Jun' :
                    sMois = 'Jun';
                    break;
                case 'Jul' :
                    sMois = 'Jul';
                    break;
                case 'Aug' :
                    sMois = 'Aug';
                    break;
                case 'Sep' :
                    sMois = 'Sep';
                    break;
                case 'Oct' :
                    sMois = 'Oct';
                    break;
                case 'Nov' :
                    sMois = 'Nov';
                    break;
                case 'Dec' :
                    sMois = 'Dec';
                    break;
            }
            var chaine = tab[2] +"&nbsp;" +sMois +"&nbsp;" +tab[3];
        }
        else {
            var chaine = tab[2] +"&nbsp;" +tab[1] +"&nbsp;" +tab[3];
        }

        break;
        
        case 1:
        var chaine = tab[1]; // mois
        break;
        
        case 2 : 
        var chaine = tab[3]; // ann??e
        break;
        
        case 3 : 
        var chaine = tab[2]; // jour
        break;
        case 4 :
        var chaine = tab[2]+"-"+tab[1]+"-"+tab[3];
        break;
    
        case 5 : //JOUR, mois et ann?e en francais ou anglais
        if (sLangSite == "fr") {
            sMois = tab_mois_fr[tab[1]];    
        } else {
            sMois = tab_mois_en[tab[1]];    
        }
        
        var chaine = tab[2] +"&nbsp;" +sMois +"&nbsp;" +tab[3]; 

        break;
        
        case 6 : // MOIS ET ANNEE EN FRANCAIS OU ANGLAIS
        
        if (sLangSite == "fr") {
            sMois = tab_mois_fr[tab[1]];
        } else {
            sMois = tab_mois_en[tab[1]];
        }
        
        var chaine = sMois +"&nbsp;" +tab[3];

        break;

    }

    return chaine;
}



var calendrier = {
    name: 'Calendar',
    lien: tab_link[0],
    nameDiv: 'conteneur_global_calendar',
    laTab: [],
    laTabAdd: function(val){
        this.laTab.push(val)
    },
    laTabEmpty: function(){
        this.laTab = []
    },
    laTabBool: 'vide_le',
    bool_first: 0,
    config: config_calendar,
    id_event_long: '', // sers pour l ouil calendrier long
    first_event: 0,
    cookie_first_time: 0
}

function ajaxpage2(url, containerid){
    var page_request = getRequeteHttp();
    page_request.onreadystatechange = function(){
        loadpage2(page_request, containerid)
    }
    page_request.open('GET', url, true)
    page_request.send(null)
}

function loadpage2(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) { 
        if(document.getElementById(containerid)) {
        	document.getElementById(containerid).innerHTML += page_request.responseText;
        }
    }
}

function boxExist(UnElem){
    var value = $(UnElem) ? true : false;
    return value;
}

// r&eacute;cup&eacute;ration des link des box de XML
function getLinkBox(responseXML)
{
    /*var items = responseXML.getElementsByTagName('item');
    items = $A(items);
    items.each(function(item,index){
                        if( index < items.length-1){
                            if( index < items.length-1){
                             alert(typeof window[item.attributes.getNamedItem('identifiant').nodeValue]);
                              window[item.attributes.getNamedItem('identifiant').nodeValue] = 1;
                            }
                        }
                    })  */
                             
                             
    var items = responseXML.getElementsByTagName('item');
    items = $A(items);
    items.each(function(item,index){
                        if( index > 0){
                             table_link_box[item.attributes.getNamedItem('identifiant').nodeValue+'_file_path']=item.attributes.getNamedItem('link_alt').nodeValue;
                        }
                    }); 
}

// fonction pout tout les outils
// initialisation du gabarit de l'outil
function initConfig(outil_config){
    if (outil_config.libelle != "") {
        var id_libelle = 'libelle_' + outil_config.id_outil;
        $(id_libelle).setHTML(outil_config.libelle);
    }
    if (outil_config.name_link != "") {
        var id_more = 'more_' + outil_config.id_outil;
        
        if ($(id_more) != false) {
            if ($(id_more) != null) {
            
                if (outil_config.the_link == "#") {
                    $(id_more).setProperty('href', outil_config.the_link + outil_config.id_outil);
                }
                else {
                    $(id_more).setProperty('href', outil_config.the_link);
                }
                $(id_more).setHTML(outil_config.name_link);
            }
        }
    }
}

function selectall(cas,choix)
{
  //test si on a plusieur ligne
  if(choix.length>0){
    if (cas.checked){
      for (var i=0; i<choix.length;i++){
        choix[i].checked=true
      }
    }
    else{
      for (var i=0; i<choix.length;i++){
        choix[i].checked=false
      }
    }
  }
  else{
    if (cas.checked){
      choix.checked=true
    }
    else{
      choix.checked=false
    }
  }
}

function init_clean_calendar_grise()
{
        $A($$('td.case_vide')).each(function(item,index){
                                    item.className='case_Date';
                            })
    
}

function obtenirMois(num)
{
    var chaine ="";
        switch(num)
    {
        case 1 :
        var chaine ="Jan" 
        break;
        
        case 2:
        var chaine ="Feb" 
        break;
        
        case 3 : 
        var chaine = "Mar"
        break;
        
        case 4 :
        var chaine = "Apr"
        break;
        
        case 5 :
        var chaine ="May" 
        break;
        
        case 6 :
        var chaine = "Jun"
        break;
        
        case 7 :
        var chaine = "Jul"
        break;
        
        case 8 :
        var chaine = "Aug"
        break;
        
        case 9 :
        var chaine = "Sep"
        break;
        
        case 10 :
        var chaine = "Oct"
        break;
        
        case 11 :
        var chaine = "Nov"
        break;
        
        case 12 :
        var chaine = "Dec"
        break;
        
        
    }
    return chaine;
}

function clean_day(day) //tranforme 04 en 4 ( bug ff)
{
    var tab =day.split('');
    if(tab[0] == 0)
    {
        return tab[1];
    }
    else 
    {return day;}
}

function Obenir_mois_fr(mois)
{
    var chaine = '';
    if(sLangSite == 'fr') {
        var tabmois = $A(['','janvier','f&eacute;vrier','mars','avril','mai','juin','juillet','ao&ucirc;t','septembre','octobre','novembre','d&eacute;cembre']);
    }else{
        var tabmois = $A(['','January','February','March','April','May','June','July','August','September','October','November','December']);
    }
    tabmois.each(function(item,index){
                          if(index == mois)
                          {
                            chaine = new String(item);
                          }
                      })    
    return chaine;
}

function affichage_event_calendar_long(responseXML)
{
    var xml_events = responseXML.getElementsByTagName('event');
    xml_events = $A(xml_events);
    var div_content = $('content_calendar_long');
    var more = $('more_outil_calendar');
    var compteur = 0;
    div_content.empty();
    xml_events.each(function(item,index){
    if(item.attributes.getNamedItem('id').nodeValue ==  id_event_long 
                                    && compteur == 0){
        compteur++;
            var xml_date = item.childNodes[1].firstChild.nodeValue;
            var laDate = new Date();
            laDate.setTime(xml_date);
            var mois =obtenirMois_int(getDateString(laDate,1));
            var an = getDateString(laDate,2);
            var jour = getDateString(laDate,3);
            if(jour.split('').length == 1 && jour.split('')[0] !=0){jour ='0'+jour}
            var chaine_date = jour+'/'+mois+'/'+an;
            var title = item.childNodes[0].firstChild.nodeValue;
            var elem_div = new Element('div',{'class':'detail_cal_title'});
            var elem_p = new Element('p');
            elem_div.setHTML(chaine_date);
            elem_p.setHTML(title);
            div_content.appendChild(elem_div);
            div_content.appendChild(elem_p);
            //05/11/07 Alexis : La date en param?tre est pass?e au format d=timestamp par souci d'universalit?
            //14/01/2008 Pinouf: correction du passage de parametre (ms)
            more.setProperty("href",config_calendar.the_link+"?d="+xml_date+'000');
        }
    });
}

function affiche_event_day_detail_long(elem)
{
    // r?cup?ration de tout les class
    $$('a.link_pointer').each(function(item,index){ item.setProperty('class','Tips3'); })
    $$('td.calendar_pointer').each(function(item,index){ item.setProperty('class','active'); })
    
    id_event_long = elem.attributes.getNamedItem('id').nodeValue;
    $(id_event_long).setProperty('class','link_pointer');
    var td = $(id_event_long).parentNode ;
    td.setProperty('class','calendar_pointer');
    sendRequest(calendrier.lien,"GET",affichage_event_calendar_long);
}

function affichage_data_xml_calendar_long(responseXML)
{
    fillCalendar();
    
    var xml_event = responseXML.getElementsByTagName("event"); 
    var xml_event = $A(xml_event); // transformation de la collection en tableau
    
    $$('td.calendar_pointer').each(function(item,index){ item.setProperty('class','case_Date'); })
    
    init_clean_calendar_grise();
    init_clean_calandar();
    
    $$('td.active').each(function(item,index){
          //alert(item.firstChild.childNodes[0].nodeValue);
             item.className='case_Date'; 
             if(item.childNodes.length !=0)
          {
              if(item.firstChild.childNodes.length != 0)
              {
                var savedata = item.firstChild.childNodes[0].nodeValue; 
                item.removeChild(item.firstChild);
                item.innerHTML=savedata;
              }
          }
          }) // changement de class 

    //lesEvents.each(function(item,index){alert("calendar long item = "+item)});
    xml_event.each(function(item,index){    
            var xml_event = item; // l'evenement
            var xml_event_title = xml_event.childNodes[0].firstChild.nodeValue; 
            var xml_id = xml_event.attributes.getNamedItem('id').nodeValue;
            var xml_event_date = xml_event.childNodes[1].firstChild.nodeValue; 
            var xml_event_link = xml_event.childNodes[2].firstChild.nodeValue;
            var xml_event_popup = xml_event.childNodes[2].attributes.getNamedItem('popup').nodeValue;
            
            //var xml_event_link = xml_event.childNodes[3].firstChild.nodeValue; 
            var laDate = new Date();
            laDate.setTime(xml_event_date);
            //alert(getDateString(laDate,1)) //le mois de xml
            //alert(getDateString(laDate,2)) //lann??e de xml
            //alert(obtenirMois(calendar.cmonth)); //mois du calendar
            //alert(calendar.cyear);                // ann??e du calendar
            
            if(getDateString(laDate,1) == obtenirMois(calendar.cmonth) && 
                        getDateString(laDate,2) == calendar.cyear) // meme mois et ann??e
            {
                
                calendar.cday =  clean_day(getDateString(laDate,3)); // le jour dans le fichier xmls
                
                var lesTD = $A($$('td.case_Date')); //r??cupere tout les les jours 
                
                lesTD.each(function(item,index){
                                    if(item.childNodes.length == 1)
                                    {
                                    
                                        if(item.childNodes[0].nodeValue == calendar.cday)
                                        {
                                            item.className='active';
                                            item.innerHTML="";
                                            var chaine = getDateString(laDate,0).split('&nbsp;');
                                            var nb = Number(obtenirMois_int(chaine[1]));
                                            var lachaine =  chaine[0]+'&nbsp;'+Obenir_mois_fr(nb)+'&nbsp;'+chaine[2];
                                            //var lachaine =  getDateString(laDate,5);

                                            var baliseA = document.createElement("a");
                                            baliseA.setAttribute("href",xml_event_link == "" ? "#" : xml_event_link);
                                            baliseA.setAttribute("title",lachaine+"::"+ xml_event_title);
                                            baliseA.setAttribute("class","Tips3");
                                            baliseA.setAttribute("className","Tips3");

                                            if (xml_event_popup == 'true')
                                                baliseA.setAttribute("target","_blank");                                                
                                            
                                            baliseA.innerHTML=calendar.cday;
                                            item.appendChild(baliseA);
                                            
                                            item.date = laDate.getTime();
                                        }
                                    }})
            }
    }) 
    
    var Tips4 = new Tips($$('.Tips3'), {className: 'bulle_calendar','fixed':true,'maxTitleChars':50});
    if(calendrier.bool_first != 0)
    {
        var div_doc = new Fx.Styles('conteneur_global_calendar', {duration:750, wait:false});
        if (navigator.appName =="Netscape") div_doc.addEvent('onComplete', function() {if (boites_edit_ouvertes==0) initSIFR();});
        div_doc.start({'opacity':1});
        $('shortedit_boite_calendar2').setStyle( 'display', 'none' );
        calendrier.bool_first = 1;
    }
    
}

function init_formCalendar_long(responseXML)
{
    this.sendRequest(calendrier.lien,"GET",affichage_data_xml_calendar_long); 
}

function init_content_day_long(responseXML)
{
    var div_content = $('content_calendar_long');
    div_content.empty();
    var more = $('more_outil_calendar');
    var day_today =String(calendar.day);
    if(day_today.split('').length==1){day_today = '0'+day_today}
    var month_today =String(calendar.month);
    if(month_today.split('').length==1){month_today = '0'+month_today}
    var year_today = calendar.year;
    var xml_events = responseXML.getElementsByTagName("event"); 
    var chaine_date_today = day_today+'/'+month_today+'/'+year_today;
    xml_events = $A(xml_events);
    var compteur =0;
    
    var elem_div = new Element('div',{'class':'detail_cal_title'});
    var elem_p = new Element('p');
    elem_div.setHTML(chaine_date_today);
    //Le message par d?faut des jours sans ?v?nement est r?cup?r? dans le config tools
    var no_event = calendar_noevent_libelle[sLangSite];
    //var no_event = xml_events[0].parentNode.parentNode.attributes.getNamedItem('lbl_no_event').nodeValue;
    
    elem_p.setHTML(no_event);
    div_content.appendChild(elem_div);
    div_content.appendChild(elem_p);
    more.setProperty('href',config_calendar.the_link);
    
    xml_events.each(function(item,index){
         var title = item.childNodes[0].firstChild.nodeValue;
         var xml_date = item.childNodes[1].firstChild.nodeValue;
         var laDate = new Date();
         laDate.setTime(xml_date);
         var mois =obtenirMois_int(getDateString(laDate,1));
         var an = getDateString(laDate,2);
         var jour = getDateString(laDate,3);
         if(jour.split('').length == 1 && jour.split('')[0] !=0){jour ='0'+jour}
         var chaine_date = jour+'/'+mois+'/'+an; 
            if(chaine_date_today == chaine_date && compteur == 0 ){
                div_content.empty();
                compteur++;
                var elem_div = new Element('div',{'class':'detail_cal_title'});
                var elem_p = new Element('p');
                elem_div.setHTML(chaine_date);
                elem_p.setHTML(title);
                div_content.appendChild(elem_div);
                div_content.appendChild(elem_p);
                //05/11/07 Alexis : La date en param?tre est pass?e au format d=timestamp par souci d'universalit?
                //14/01/2008 Pinouf: correction du passage de parametre (ms)
                more.setProperty('href',config_calendar.the_link+'?d='+xml_date+'000');
            }
     });
}

function init_clean_calandar()
{
    $A($$('td.case_Date')).each(function(item,index){
                                if(item.childNodes.length==0)
                                {
                                    item.className='case_vide';
                                }
                            })
}

function incrementTheMonth_long()
{
    incrementMonth();
    sendRequest(calendrier.lien,"GET",affichage_data_xml_calendar_long);
}

function decrementTheMonth_long()
{
    decrementMonth();
    sendRequest(calendrier.lien,"GET",affichage_data_xml_calendar_long);
}

function load_calendar_int(){
    displayCalendar('w0');
    initConfig(calendrier.config);
    sendRequest(calendrier.lien, "GET", init_formCalendar_long);
    sendRequest(calendrier.lien, "GET", init_content_day_long);
    init_clean_calandar();

    $('cal_m_01').addEvent('click', function(){
        incrementTheMonth_long()
    });
    $('cal_m_00').addEvent('click', function(){
        decrementTheMonth_long()
    });
}
