
function afficherEvenement(p_noEvenement, p_bouton) {
    document.getElementById('resultatNo' + p_noEvenement).innerHTML = "";
    var idZoneAffichage = 'contenuNo' + p_noEvenement;
    document.getElementById(idZoneAffichage).innerHTML = "Chargement de l'événement en cours...";
    p_bouton.onclick = function() { return cacherEvenement(p_noEvenement, p_bouton); }
    p_bouton.childNodes[0].src = './images/less.png';
    
    jQuery.get('index.php',
                   { directive : 'afficher-evenement', noEvenement : p_noEvenement, 
                     typeAffichage : '0'  },
                  function(p_resultat) {
                        document.getElementById(idZoneAffichage).innerHTML = p_resultat;
                  }
                );
    return false;
}

function cacherEvenement(p_noEvenement, p_bouton) {
    document.getElementById('resultatNo' + p_noEvenement).innerHTML = "";
    var idZoneAffichage = 'contenuNo' + p_noEvenement;
    p_bouton.onclick = function() { return afficherEvenement(p_noEvenement, p_bouton); }
    p_bouton.childNodes[0].src = './images/more.png';
    document.getElementById(idZoneAffichage).innerHTML = "Chargement de l'événement en cours...";
    jQuery.get('index.php',
                   { directive : 'afficher-evenement', noEvenement : p_noEvenement, typeAffichage : '1' },
                  function(p_resultat) {
                        document.getElementById(idZoneAffichage).innerHTML = p_resultat;
                  }
                );
    return false;
}

function ajouterEvenement() {
    $("#zoneAction").show();
    document.getElementById('zoneAction').innerHTML = "Chargement de l'événement en cours...";
    
    jQuery.get('index.php',
                   { directive : 'ajout-evenement' },
                  function(p_resultat) {
                    document.getElementById('zoneAction').innerHTML = p_resultat;
                    initialiserFormEvent('-1');
                  }
                );
    return false;
}

function participerEvenement(p_noEvenement) {
    document.getElementById('divParticiper'+p_noEvenement).innerHTML = "<fieldset><legend>Confirmation de votre participation</legend><table><tr><td rowspan=\"2\">Commentaire (Optionnel) : <input id=\"commentaireEvenement"+p_noEvenement+"\" type=\"text\" maxlength=\"200\" size=\"35\" /></td><td class=\"texteCentre\"><a href=\"#\" onclick=\"ajouterParticipation("+p_noEvenement+", this.parentNode.parentNode.childNodes[0].childNodes[1].value); return false;\"><img alt=\"Participer\" src=\"./images/crochet-vert.png\" /></a></td class=\"texteCentre\"></tr><tr><td><a href=\"#\" onclick=\"ajouterParticipation("+p_noEvenement+", this.parentNode.parentNode.parentNode.childNodes[0].childNodes[0].childNodes[1].value); return false;\">Confirmer</a></td></tr></table></fieldset>";
}

function ajouterParticipation(p_noEvenement, p_commentaire) {
    document.getElementById('divParticiper'+p_noEvenement).innerHTML = "Envoi de la participation en cours...";

    jQuery.get('index.php',
                   { directive : 'participer-evenement', noEvenement : p_noEvenement, commentaire : p_commentaire },
                  function(p_resultat) {
                    if (p_resultat == "true") {
                        afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo'+p_noEvenement));
                    }
                    else {
                        alert(p_resultat.substring(5));
                        document.getElementById('divParticiper'+p_noEvenement).innerHTML = "Impossible d'ajouter la participation à cet événement.";
                    }
                  }
                );
    return false;
}

function afficherFormCommentaire(p_noEvenement) {
    if (document.getElementById('ajouterCommentaire' + p_noEvenement).innerHTML != "") {
        document.getElementById('ajouterCommentaire' + p_noEvenement).innerHTML = "";
    }
    else {
        var html = '<div id="erreurAjoutCommentaire' + p_noEvenement + '" ></div><textarea id="txtAjoutCommentaire' + p_noEvenement + '" row="3" cols="65"></textarea><a href="#" onclick="ajouterCommentaire('+p_noEvenement+'); return false">Ajouter le commentaire</a>'
        document.getElementById('ajouterCommentaire' + p_noEvenement).innerHTML = html;
    }
}

function ajouterCommentaire(p_noEvenement) {
    var txtCommentaire = document.getElementById('txtAjoutCommentaire' + p_noEvenement).value;
    
    jQuery.post('index.php?directive=ajouter-commentaire-evenement',
               { noEvenement : p_noEvenement, 
                 commentaire : txtCommentaire },
                  function(p_resultat) {
                    if (p_resultat.substring(1, 5) == "true") {
                        afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo'+p_noEvenement));
                    }
                    else {
                        document.getElementById('erreurAjoutCommentaire' + p_noEvenement).innerHTML = p_resultat.substring(6);
                    }
                  }
                );
}

function retirerCommentaire(p_noCommentaire, p_noEvenement) {
    jQuery.get('index.php',
               { directive : 'retirer-commentaire-evenement', noCommentaire : p_noCommentaire, noEvenement : p_noEvenement  },
              function(p_resultat) {
                if (p_resultat.substring(1, 5) == "true") {
                    afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo'+p_noEvenement));
                }
                else {
                    alert(p_resultat.substring(5));
                }
              }
            );
    return false;
}

function retirerParticipant(p_noEvenement, p_noParticipant) {
    this.innerHTML = "Retrait de la participation en cours...";

    jQuery.get('index.php',
                   { directive : 'annulation-particiation-evenement', noEvenement : p_noEvenement, noParticipant : p_noParticipant },
                  function(p_resultat) {
                    if (p_resultat == "true") {
                        afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo'+p_noEvenement));
                    }
                    else {
                        alert(p_resultat.substring(5));
                        this.innerHTML = "Impossible de retirer ce participant.";
                    }
                  }
                );
    return false;
}

function annulerParticipation(p_noEvenement) {
    document.getElementById('divParticiper'+p_noEvenement).innerHTML = "Envoi de la annulation en cours...";

    jQuery.get('index.php',
                   { directive : 'annulation-particiation-evenement', noEvenement : p_noEvenement },
                  function(p_resultat) {
                    if (p_resultat == "true") {
                        afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo'+p_noEvenement));
                    }
                    else {
                        alert(p_resultat.substring(5));
                        document.getElementById('divParticiper'+p_noEvenement).innerHTML = "Impossible d'annuler votre participation à cet événement.";
                    }
                  }
                );
    return false;
}

function initialiserFormEvent(p_noEvenement) {
    if (document.getElementById('dateEvenement' + p_noEvenement) != null) {
        $("#dateEvenement" + p_noEvenement).dynDateTime({
            showsTime: true,
            ifFormat: "%Y-%m-%d %H:%M:%S",
            daFormat: "%l;%M %p, %e %m, %Y",
            align: "Tc",
            electric: false,
            showOthers: true, 
            singleClick: true,
            displayArea: $("#dtcDisplayAreaDebut")
            });
    }
    
    if (document.getElementById('descriptionPointRencontre' + p_noEvenement) != null) { 
        var id = 'descriptionPointRencontre' + p_noEvenement;
        
        if (CKEDITOR.instances[id]) {
             CKEDITOR.remove(CKEDITOR.instances[id]);
        }
        
        CKEDITOR.replace(id , { height : 150, toolbar : 'Basic' });
    }
    
    if (document.getElementById('autresSpecs' + p_noEvenement) != null) {
        var id = 'autresSpecs' + p_noEvenement;
        
        if (CKEDITOR.instances[id]) {
            CKEDITOR.remove(CKEDITOR.instances[id]);
        }
        
        CKEDITOR.replace( id, { height: 150, toolbar : 'Basic'});
    }
}

function modifierEvenement(p_noEvenement) {
    document.getElementById('resultatNo' + p_noEvenement).innerHTML = "";
    var idZoneModification = 'contenuNo' + p_noEvenement;

    document.getElementById(idZoneModification).innerHTML = "Chargement de l'événement en cours...";
    
    jQuery.get('index.php',
               { directive : 'modifier-evenement', noEvenement : p_noEvenement },
                  function(p_resultat) {
                    document.getElementById(idZoneModification).innerHTML = p_resultat;
                    initialiserFormEvent(p_noEvenement);
                  }
                );
    return false;
}

function annulerModification(p_noEvenement) {
    if (p_noEvenement == "-1") {
        document.getElementById("zoneAction").innerHTML = "";
    }
    else {
        var idZoneModification = 'contenuNo' + p_noEvenement;
        document.getElementById(idZoneModification).innerHTML = "";

        afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo' + p_noEvenement));
    }
}

function modifierEvenementDo(p_noEvenement) {
    var nouvelEvent = p_noEvenement == -1;
    var contenu = document.getElementById((nouvelEvent) ? 'zoneAction' : 'contenuNo' + p_noEvenement);
    var resultatMsg = document.getElementById((nouvelEvent) ? 'zoneActionMsg' : 'resultatNo' + p_noEvenement);
    
    var idForm = 'formEvent' + p_noEvenement;
    var titre =  document.getElementById(idForm).titre.value;
    var dateEvenement =  document.getElementById('dateEvenement' + p_noEvenement).value;
    var noTrail =  document.getElementById(idForm).noTrail.value;
    var duree =  document.getElementById(idForm).duree.value;
    var descriptionPointRencontre =  CKEDITOR.instances['descriptionPointRencontre' + p_noEvenement].getData();
    var autresSpecs =  CKEDITOR.instances['autresSpecs' + p_noEvenement].getData();
    
    var htmlFormModif = contenu.innerHTML;
    resultatMsg.innerHTML = (nouvelEvent) ? "Ajout de l'événement en cours..." : "Modification de l'événement en cours...";
    contenu.style.visibility = 'hidden';
    
    jQuery.post((nouvelEvent) ? 'index.php?directive=ajout-evenement-do' : 'index.php?directive=modifier-evenement-do',
               { noEvenement : p_noEvenement, 
                 titre : titre , dateEvenement : dateEvenement, noTrail : noTrail,
                 duree : duree, descriptionPointRencontre : descriptionPointRencontre,
                 autresSpecs : autresSpecs },
                  function(p_resultat) {
                    if (p_resultat.substring(0, 4) == "true") {
                        if (!nouvelEvent) {
                            afficherEvenement(p_noEvenement, document.getElementById('aBtnAfficherNo' + p_noEvenement));
                            resultatMsg.innerHTML = "L'événement à été modifier."
                            document.getElementById('captionEvenement2').innerHTML = titre + ' le ' + dateEvenement;
                        }
                        else {
                            resultatMsg.innerHTML = "L'événement à été ajouté."
                            document.getElementById('contenu').innerHTML = document.getElementById('contenu').innerHTML + p_resultat.substring(5);
                            $("#zoneAction").hide();
                        }
                        
                         contenu.style.visibility = 'visible';
                    }
                    else {
                        contenu.style.visibility = 'visible';
                        resultatMsg.innerHTML = p_resultat.substring(6);
                        alert(p_resultat.substring(5).replace('<br />', '\r\n'));
                    }
                  }
                );
    return false;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
