// JavaScript Document
Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE") + 5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && !Prototype.Browser.IE6;
// Fonction de création d'un objet XMLHTTPRequest
function getXhr() {
    var xhr = null;
    if (window.XMLHttpRequest) // Firefox et autres
        xhr = new XMLHttpRequest();
    else if (window.ActiveXObject) { // Internet Explorer
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else { // XMLHttpRequest non supporté par le navigateur 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        xhr = false;
    }
    return xhr;
}


function go(c) { if (!c.data.replace(/\s/g, '')) c.parentNode.removeChild(c); }

function clean(d) {
    var bal = d.getElementsByTagName('*');
    for (i = 0; i < bal.length; i++) {
        a = bal[i].previousSibling;
        if (a && a.nodeType == 3)
            go(a);
        b = bal[i].nextSibling;
        if (b && b.nodeType == 3)
            go(b);
    }
    return d;
}

function authenticate()
{
    $('erreurConnexion').innerHTML = 'Connexion en cours';
    $login = $F('login');
    $pass = $F('password');
    var data = { login: $F('login'), password: $F('password') };
    new Ajax.Request('scripts/connection.php', {
        parameters : data, 
        onSuccess: function(req){
            var response = req.responseText.split('&');
            
            var result = response[0];
            var url = response[1];
            if(result == 0)
            {
                $('erreurConnexion').innerHTML = 'Nom d\'utilisateur et/ou mot de passe incorrect. Veuillez r&eacute;essayer';  
            }
            else
            {
                location.replace(url);
            }
        }
    });
}

function disconnect()
{
    new Ajax.Request('scripts/deconnection.php', { 
        onSuccess: function(){
            location.replace('index.php');
        }
    });
}

function formatDate(dt) {
    var annee = dt.substr(4, 4);
    var mois = dt.substr(2, 2);
    var jour = dt.substr(0, 2);
    switch (mois) {
        case "01":
            mois = "Janvier";
            break;
        case "02":
            mois = "F&eacute;vrier";
            break;
        case "03":
            mois = "Mars";
            break;
        case "04":
            mois = "Avril";
            break;
        case "05":
            mois = "Mai";
            break;
        case "06":
            mois = "Juin";
            break;
        case "07":
            mois = "Juillet";
            break;
        case "08":
            mois = "Ao&ucirc;t";
            break;
        case "09":
            mois = "Septembre";
            break;
        case "10":
            mois = "Octobre";
            break;
        case "11":
            mois = "Novembre";
            break;
        case "12":
            mois = "D&eacute;cembre";
            break;
    }
    return jour + " " + mois + " " + annee;
}

function getArticles(){
    new Ajax.Request('scripts/getArticles.php', {
        onSuccess : function(req){
            $('listeArticles').innerHTML = '';
            $('listeArticles').innerHTML = req.responseText;    
            var aHref = $('listeArticles').getElementsByTagName('a');
            $A(aHref).each(function(a){
                var id = a.id;
                Event.observe(a, 'click', function(){
                    deleteArticle(id);                                 
                });
            });
        }
    });
}

function deleteArticle(id)
{
    var url = 'scripts/deleteArticle.php?id=' + id;
    new Ajax.Request(url, {
        onSuccess : function(){         
            getArticles();  
        }
    }); 
}


function getEvents(){
    //Création d'un objet XMLHTTPRequest
    var xhr = getXhr();
    // On défini ce qu'on va faire quand on aura la réponse
    xhr.onreadystatechange = function() {
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if (xhr.readyState == 4 && xhr.status == 200) {
            //Récupération du flux XML            
            $('evenements').innerHTML = xhr.responseText;
            
            var mod = $$('#evenements .modifyEvent');
            $A(mod).each(function(m){
                Event.observe(m, 'click', function(){
                    var id = m.parentNode.previousSibling.id;
                    var date = m.parentNode.previousSibling.firstChild.childNodes[2].value;
                    var titre;
                    if(m.parentNode.previousSibling.childNodes[1].childNodes[1].firstChild)
                    {
                        titre = m.parentNode.previousSibling.childNodes[1].childNodes[1].firstChild.nodeValue;
                    }
                    else
                    {
                        titre = ''; 
                    }
                    var description;
                    if(m.parentNode.previousSibling.childNodes[2].childNodes[1].firstChild)
                    {
                        description = m.parentNode.previousSibling.childNodes[2].childNodes[1].firstChild.nodeValue;
                    }
                    else
                    {
                        description = '';   
                    }
                    displayModifyEvent(id, date, titre, description);                                                      
                });
            });
            
            var del = $$('#evenements .deleteEvent');
            $A(del).each(function(d){
                Event.observe(d, 'click', function(){
                    displayDeleteEvent(d.parentNode.previousSibling.id);                                                       
                });
            });
        }
    }
    //Définition du fichier à récupérer
    xhr.open("GET", "scripts/getEvents.php?ms=" + new Date().getTime(), true);
    xhr.send("");
}

function GetDomOffset( Obj, Prop ) {
    var iVal = 0;
    while (Obj && Obj.tagName != 'BODY') {
        eval('iVal += Obj.' + Prop + ';');
        Obj = Obj.offsetParent;
    }
    return iVal;
}

function displayPopup(popup)
{
    var child = popup.firstChild;
    popup.style.display = 'block';
    document.body.style.overflow = 'hidden';
    var width = document.body.scrollWidth;
    var height = document.body.scrollHeight;
    popup.style.width = width + 20 + "px";
    popup.style.height = height + 50 + 'px';        
    if(Prototype.Browser.IE6)
    {
        popup.style.background = '#1AB803';
    }
    else
    {
        popup.style.background = 'url(../images/fond_opaque.png) repeat';
    }
    location.href = "#popup";
}

function displayModifyEvent(id, date, titre, description)
{
    var mois = new Array('Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
    var content = '';
    content += '<input id="idEvent" type="hidden" value="' + id + '"/>';
    content += '<div id="dateEvent">Date :';
    content += '<select id="jourPopupEvent">';
    for(var i=1; i<32; i++)
    {
        if(i<10)
        {
            content += '<option value="0' + i + '">0' + i + '</option>';
        }
        else
        {
            content += '<option value="' + i + '">' + i + '</option>';  
        }
    }
    content += '</select>';
    content += '<select id="moisPopupEvent">';
    for(var i=0; i<mois.length; i++)
    {
        var value = i+1;
        if(i<10)
        {
            content += '<option value="0' + value + '">' + mois[i] + '</option>';
        }
        else
        {
            content += '<option value="' + value + '">' + mois[i] + '</option>';
        }
    }
    content += '</select>';
    content += '<input type="text" id="anneePopupEvent" size="4"/></div>';
    content += '<div id="titreEvent">Nom : <input type="text" id="titrePopupEvent"/></div>';
    content += '<div id="descriptionEvent">Description :<br/>';
    content += '<textarea id="descriptionPopupEvent"></textarea></div>';
    content += '<div id="actionsPopupEvent">';
    content += '<input type="button" id="saveEvent" value="Sauvegarder"/>';
    content += '<input type="button" id="cancelEvent" value="Annuler"/>';
    content += ' </div>';
    $('blocPopupEvent').innerHTML = content;
    displayPopup($('popupEvents'));
    
    Event.observe($('saveEvent'), 'click', function(){
        var saveEvent = true;
        if($F('titrePopupEvent').empty()==true)
        {
            saveEvent = false;
            if($('erreurTitreEvent'))
            {
                $('erreurTitreEvent').remove(); 
            }
            new Insertion.Bottom($('titreEvent'), '<div id="erreurTitreEvent" class="erreurEvent">Vous devez indiquer un nom pour l\'&eacute;v&egrave;nement</div>');
        }
        else
        {
            if($('erreurTitreEvent'))
            {
                $('erreurTitreEvent').remove(); 
            }   
        }
        
        if($F('anneePopupEvent').empty()==true)
        {
            saveEvent = false;
            if($('erreurAnneeEvent'))
            {
                $('erreurAnneeEvent').remove(); 
            }
            new Insertion.Bottom($('dateEvent'), '<div id="erreurAnneeEvent" class="erreurEvent">Vous devez indiquer l\'ann&eacute;e de l\'&eacute;v&egrave;nement</div>');
        }
        else
        {
            if($('erreurAnneeEvent'))
            {
                $('erreurAnneeEvent').remove(); 
            }   
        }
        
        if(saveEvent == true)
        {
            var newId = $F('idEvent');
            var newJour = $F('jourPopupEvent');
            var newMois = $F('moisPopupEvent');
            var newAnnee = $F('anneePopupEvent');
            var newTitre = $F('titrePopupEvent');
            var newDescription = $F('descriptionPopupEvent');

            //Création d'un objet XMLHTTPRequest
            var xhr = getXhr();
            // On défini ce qu'on va faire quand on aura la réponse
            xhr.onreadystatechange = function() {
                // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                if (xhr.readyState == 4 && xhr.status == 200) {
                    $('evenements').innerHTML = '';
                    getEvents();
                    $('blocPopupEvent').innerHTML = '';
                    $('popupEvents').style.display = 'none';    
                    document.body.style.overflow = "auto";
                }
            }
            //Définition du fichier à récupérer
            xhr.open("POST", "scripts/saveEvent.php", true);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
            xhr.send("id="+ newId + "&jour=" + newJour + "&mois=" + newMois + "&annee=" + newAnnee + "&titre=" + newTitre + "&description=" + newDescription);
        }
    });
    
    Event.observe($('cancelEvent'), 'click', function(){
        $('blocPopupEvent').innerHTML = '';
        $('popupEvents').style.display = 'none';    
        document.body.style.overflow = "auto";
    });
    var date = date.split('-');
    var annee = date[0];
    var mois = date[1];
    var jour = date[2]; 
    $('idEvent').value = id;
    $('jourPopupEvent').options[jour-1].selected = true;
    $('moisPopupEvent').options[mois-1].selected = true;
    $('anneePopupEvent').value = annee;
    $('titrePopupEvent').value = titre;
    $('descriptionPopupEvent').value = description;
}

function displayDeleteEvent(id)
{
    var content = '';
    content += '<div id="supprMessageEvent">Etes-vous certain de vouloir supprimer cet &eacute;v&egrave;nement ?</div>';
    content += '<div id="actionsSupprEvent"><input type="button" value="Supprimer" id="supprEventButton"/><input type="button" value="Annuler" id="annulerSupprEvent"/></div>';
    $('blocPopupEvent').innerHTML = content;
    displayPopup($('popupEvents'));
    Event.observe($('supprEventButton'), 'click', function(){
        //Création d'un objet XMLHTTPRequest
        var xhr = getXhr();
        // On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function() {
            // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
            if (xhr.readyState == 4 && xhr.status == 200) {
                $('evenements').innerHTML = '';
                getEvents();
                $('blocPopupEvent').innerHTML = '';
                $('popupEvents').style.display = 'none';    
                document.body.style.overflow = "auto";
            }
        }
        //Définition du fichier à récupérer
        xhr.open("POST", "scripts/deleteEvent.php", true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
        xhr.send("id="+ id);                                                   
    });
    
    Event.observe($('annulerSupprEvent'), 'click', function(){
        $('blocPopupEvent').innerHTML = '';
        $('popupEvents').style.display = 'none';    
        document.body.style.overflow = "auto";                                                  
    }); 
}

function addEvents()
{
    var mois = new Array('Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
    var content = '';
    content += '<input id="idEvent" type="hidden" value=""/>';
    content += '<div id="dateEvent">Date :';
    content += '<select id="jourPopupEvent">';
    for(var i=1; i<32; i++)
    {
        if(i<10)
        {
            content += '<option value="0' + i + '">0' + i + '</option>';
        }
        else
        {
            content += '<option value="' + i + '">' + i + '</option>';  
        }
    }
    content += '</select>';
    content += '<select id="moisPopupEvent">';
    for(var i=0; i<mois.length; i++)
    {
        var value = i+1;
        if(i<10)
        {
            content += '<option value="0' + value + '">' + mois[i] + '</option>';
        }
        else
        {
            content += '<option value="' + value + '">' + mois[i] + '</option>';
        }
    }
    content += '</select>';
    content += '<input type="text" id="anneePopupEvent" size="4"/></div>';
    content += '<div id="titreEvent">Nom : <input type="text" id="titrePopupEvent"/></div>';
    content += '<div id="descriptionEvent">Description :<br/>';
    content += '<textarea id="descriptionPopupEvent"></textarea></div>';
    content += '<div id="actionsPopupEvent">';
    content += '<input type="button" id="saveEvent" value="Ajouter"/>';
    content += '<input type="button" id="cancelEvent" value="Annuler"/>';
    content += ' </div>';
    $('blocPopupEvent').innerHTML = content;
    displayPopup($('popupEvents'));
    
    Event.observe($('saveEvent'), 'click', function(){
        var saveEvent = true;
        if($F('titrePopupEvent').empty()==true)
        {
            saveEvent = false;
            if($('erreurTitreEvent'))
            {
                $('erreurTitreEvent').remove(); 
            }
            new Insertion.Bottom($('titreEvent'), '<div id="erreurTitreEvent" class="erreurEvent">Vous devez indiquer un nom pour l\'&eacute;v&egrave;nement</div>');
        }
        else
        {
            if($('erreurTitreEvent'))
            {
                $('erreurTitreEvent').remove(); 
            }   
        }
        
        if($F('anneePopupEvent').empty()==true)
        {
            saveEvent = false;
            if($('erreurAnneeEvent'))
            {
                $('erreurAnneeEvent').remove(); 
            }
            new Insertion.Bottom($('dateEvent'), '<div id="erreurAnneeEvent" class="erreurEvent">Vous devez indiquer l\'ann&eacute;e de l\'&eacute;v&egrave;nement</div>');
        }
        else
        {
            if($('erreurAnneeEvent'))
            {
                $('erreurAnneeEvent').remove(); 
            }   
        }
        
        if(saveEvent == true)
        {
            var newId = $F('idEvent');
            var newJour = $F('jourPopupEvent');
            var newMois = $F('moisPopupEvent');
            var newAnnee = $F('anneePopupEvent');
            var newTitre = $F('titrePopupEvent');
            var newDescription = $F('descriptionPopupEvent');

            //Création d'un objet XMLHTTPRequest
            var xhr = getXhr();
            // On défini ce qu'on va faire quand on aura la réponse
            xhr.onreadystatechange = function() {
                // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                if (xhr.readyState == 4 && xhr.status == 200) {
                    $('evenements').innerHTML = '';
                    getEvents();
                    $('blocPopupEvent').innerHTML = '';
                    $('popupEvents').style.display = 'none';    
                    document.body.style.overflow = "auto";
                }
            }
            //Définition du fichier à récupérer
            xhr.open("POST", "scripts/saveEvent.php", true);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
            xhr.send("id="+ newId + "&jour=" + newJour + "&mois=" + newMois + "&annee=" + newAnnee + "&titre=" + newTitre + "&description=" + newDescription);
        }
    });
    
    Event.observe($('cancelEvent'), 'click', function(){
        $('blocPopupEvent').innerHTML = '';
        $('popupEvents').style.display = 'none';    
        document.body.style.overflow = "auto";
    });
}

function getAlbums(){
new Ajax.Request('scripts/getAlbums.php', {
    onSuccess : function(req){
        $('listeAlbums').innerHTML = '';
        $('listeAlbums').innerHTML = req.responseText;
        var blocs = $$('.albumBloc');
        $A(blocs).each(function(b){
            var id = b.id;
            var suppr = b.childNodes[1].childNodes[1].firstChild;
            Event.observe(suppr, 'click', function(){
                deleteAlbum(id);
            });                     
        });
    }
});
}

function deleteAlbum(id){
new Ajax.Request('scripts/deleteAlbum.php?id='+id, {
    onSuccess : function(req){
        getAlbums();
    }
});
}

function getPhotosFromAlbum(){
    var id = $F('idAlbum');
    new Ajax.Request('scripts/getPhotosFromAlbum.php?id='+id, {
        onSuccess : function(req){
            $('listePhotos').innerHTML = '';
            $('listePhotos').innerHTML = req.responseText;
        }
    });
}

function deletePhotoFromAlbum(id, dossier, nom){
    new Ajax.Request('scripts/deleteAlbumFromPhoto.php?id='+id+'&dossier='+dossier+'&nom='+nom, {
    onSuccess : function(req){
        getPhotosFromAlbum();
    }
}); 
}