Subversion Repositories Sites.outils-naturalistes.fr

Rev

Rev 13 | Rev 38 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Application for Facebox (for jQuery)
 * Adaptation pour le Squelette SPIP
 * Ce fichier peut également contenir toutes les scripts custom
 * (06/01/2008)
 * @requires jQuery v1.2 or later
*/
jQuery(document).ready(function($) {
  $('a[rel*=facebox]').facebox({
    loading_image : 'squelettes/images/loading.gif',
    close_image   : 'squelettes/images/closelabel.gif'
  }) 
})


function changerAccordeonOuOnglets(ongletId) {

  i = 0 ;
  max = $(".lien_onglet").length ;
  
  if(consultation) {

      $("#lien_onglet_0").parent().nextAll().each(function () {
          $(this).hide();
      });

      $("#lien_onglet_"+ongletId).parent().nextAll().each(function () {
          $(this).show();
      });

      $("#lien_onglet_"+(ongletId+1)).parent().nextAll().each(function () {
          $(this).hide();
      });

    for(i = 0 ; i <= max - 1 ; i++) {
        $("#lien_onglet_"+i).parent().show();
        $("#lien_onglet_"+i).removeClass("item_actif")
    }

    $("#lien_onglet_"+ongletId).addClass("item_actif");
    $("#fin_onglet").parent().nextAll().each(function () {
          $(this).show();
      });
  }
  else {

      $("#lien_onglet_0").parent().parent().nextAll().each(function () {
          $(this).hide();
      });

      $("#lien_onglet_"+ongletId).parent().parent().nextAll().each(function () {
          $(this).show();
      });

      $("#lien_onglet_"+(ongletId+1)).parent().parent().nextAll().each(function () {
          $(this).hide();
      });

    for(i = 0 ; i <= max - 1 ; i++) {
        $("#onglet_"+i).removeClass("onglet_actif");
    }

    $("#onglet_"+ongletId).addClass("onglet_actif") ;
    
    $("#fin_onglet").parent().parent().nextAll().each(function () {
          $(this).show();
    });
  }
}

function changerOngletsConsultation(idOngletConsulte) {
        
        $("#consultation_fiche").hide();
        $("#lien_forum_general").hide(); 
        $("#zone_commentaires").hide();
        $("#lien_demo_general").hide();
        $("#lien_telechargement_general").hide();
        $("#lien_forge_general").hide();
        
        if(idOngletConsulte == "onglet_lien_ici") {
                
                $("#consultation_fiche").show();
        }
        
        if(idOngletConsulte == "onglet_lien_forum") {
                
                $("#lien_forum_general").show(); $("#zone_commentaires").show();
        }
        
        if(idOngletConsulte == "onglet_lien_demo") {
                
                $("#lien_demo_general").show();
        }
        
        if(idOngletConsulte == "onglet_lien_forge") {
                
                $("#lien_telechargement_general").show();
                $("#lien_forge_general").show();
        }

}

function initialiserLiens() {
        
        lien_forge = $("#bf_lien_forge") ;
        lien_demo = $("#bf_lien_demo") ;
        lien_telechargement = $("#bf_lien_telechargement") ;
        
        if(lien_forge.attr("value").indexOf("http://") == -1) {
                lien_forge.attr("value","http://"+lien_forge.attr("value")) ;
        }
        
        if(lien_demo.attr("value").indexOf("http://") == -1) {
                lien_demo.attr("value","http://"+lien_demo.attr("value")) ;
        }
        
        if(lien_telechargement.attr("value").indexOf("http://") == -1) {
                lien_telechargement.attr("value","http://"+lien_telechargement.attr("value")) ;
        }
}

function ajouterAccordeonOuOnglets() {

  onglets = $(".lien_onglet") ;
  consultation = false;

  fiche_consultation = $(".BAZ_fiche_titre_application");
  bouton_valider = $("input[name=\"valider\"]");
  if(fiche_consultation.length != 0 || bouton_valider.html() == null) {
     consultation = true ;
  }
  else {
      htmlOnglets = '<div id="selecteur_onglets" class="onglets">   <ul id="liste_onglets">';
      initialiserLiens() ;
      
  }

  for(i = 0 ; i < onglets.length; i++)  
  {
    lienEnCours = onglets[i];
      lienEnCours.setAttribute("id","lien_onglet_"+(i));
    
    if(!consultation) {
      htmlOnglets += '<li><a id="onglet_'+i+'" href="javascript:changerAccordeonOuOnglets('+i+','+consultation+');">'+$('#lien_onglet_'+(i)).html()+'</a></li>';
    }
  }
  
  if(!consultation) {
    htmlOnglets += '</ul></div><hr style="clear: both; visibility: hidden">' ;
    $("#formulaire").before(htmlOnglets);
    $(".lien_onglet").parent().hide();
    
        $("input[type=\"submit\"][name=\"valider\"]").bind("click",function(event) 
        {
                event.preventDefault();
                validerFormulaire(true);
        });
        
        bouton_valider = $("input[type=\"submit\"][name=\"valider\"]");
        
        if(bouton_valider.length != 0) {
                bouton_valider[0].setAttribute("title","Enregistrer la fiche et la soumettre au copil pour publication"); 
        }
        
        bouton_valider.before("<input type=\"button\" title=\"Sauvegarder la fiche sans la v&eacute;rifier (celle ci ne sera pas publi&eacute;e)\" id=\"sauvegarde_form\" onclick=\"validerFormulaire(false)\" value=\"sauvegarder\" />");
        
        
  }
  else
  {
          // fabrication du contenu de l'onglet Application
          lien_ici = '<li><a id="onglet_lien_ici" href="#">Application</a></li>' ;
          htmlOnglets = '<div id="selecteur_onglets" class="onglets">   <ul id="liste_onglets">';
          htmlOnglets += lien_ici ;
          
          
          
          // fabrication du contenu de l'onglet Communauté
          htmlOnglets += '<li><a id="onglet_lien_forum" href="#">Communauté</a></li>' ;
          
          // On crée le lien qui sera placé au dessus de la liste des commentaires
          laius_forum = 'Prochainement, un forum sera mis à votre disposition afin de vous permetre de partager vos commentaires avec la communauté d\'une manière plus complète ' ;
          lien_forum_general = "<div id=\"lien_forum_general\"><h2> Forum</h2><p>"+laius_forum+"</p></div><hr style=\"clear: both; visibility: hidden\">"         
          zone_commentaires = $("#zone_commentaires");
          zone_commentaires.after(lien_forum_general);
          
          
          
          // fabrication du contenu de l'onglet espace de démo
          htmlOnglets += '<li><a id="onglet_lien_demo" href="#">Espace d&eacute;mo</a></li>' ;
          
          // on récupère le lien vers l'espace démo et on le cache
          lien_demo =  $("#bf_lien_demo_description");
          if(lien_demo.html() == null || lien_demo.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
                  lien_demo_html = " " ;
          }
          else {
                  lien_demo_html = "<a href="+lien_demo.html()+" >"+lien_demo.html()+"</a>" ;
          }
          lien_demo.hide();
          
          // on récupère le commentaire associé et on le cache aussi
          comm_demo =  $("#bf_com_demo_description");
          if(comm_demo.html() == null) {
                  comm_demo_html = " Aucune description renseignée " ;
          }
          else {
                  comm_demo_html = comm_demo.html();
          }
          comm_demo.hide();
          
          lien_demo_general = "<div id=\"lien_demo_general\"><h2> Espace de démonstration</h2><p id=laius_demo>"+comm_demo_html+"</p>"+lien_demo_html+"</div><hr style=\"clear: both; visibility: hidden\">" ;
          zone_commentaires.after(lien_demo_general);
          
          
          // fabrication du contenu de l'onglet téléchargement et forge
          htmlOnglets += '<li><a id="onglet_lien_forge" href="#">T&eacute;l&eacute;chargement et forge</a></li>' ;
          
          // on récupère les liens vers l'espace téléchargement et forge et on les cache
          lien_forge =  $("#bf_lien_forge_description");
          if(lien_forge.html() == null || lien_forge.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
                  lien_forge_html = " " ;
          }
          else {
                  lien_forge_html = "<a href="+lien_forge.html()+" >"+lien_forge.html()+"</a>" ;
          }
          lien_forge.hide();
          
          lien_telechargement = $("#bf_lien_telechargement_description");
          if(lien_telechargement.html() == null || lien_telechargement.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
                  lien_telechargement_html = " " ;
          }
          else {
                  lien_telechargement_html = "<a href="+lien_telechargement.html()+" >"+lien_telechargement.html()+"</a>" ;
          }
          lien_telechargement.hide();
                  
          // on récupère les commentaires associés à l'espace téléchargement et forge et on les cache
          comm_forge = $("#bf_com_forge_description");
          if(comm_forge.html() == null) {
                  comm_forge_html = " Aucune description renseignée " ;
          }
          else {
                  comm_forge_html = comm_forge.html();
          }
          comm_forge.hide()
          
          comm_telechargement = $("#bf_com_telechargement_description");
          if(comm_telechargement.html() == null) {
                  comm_telechargement_html = " Aucune description renseignée " ;
          }
          else {
                  comm_telechargement_html = comm_telechargement.html();
          }
          comm_telechargement.hide();
          
          lien_telechargement_general = "<div id=\"lien_telechargement_general\"><h2> Téléchargement </h2><p id=laius_telechargement>"+comm_telechargement_html+"</p>"+lien_telechargement_html+"</div><hr style=\"clear: both; visibility: hidden\"><br />" ;
          lien_forge_general = "<div id=\"lien_forge_general\"><h2> Forge </h2> <p id=laius_forge>"+comm_forge_html+"</p>"+lien_forge_html+"</div><hr style=\"clear: both; visibility: hidden\">" ;

          $("#lien_demo_general").after(lien_telechargement_general+lien_forge_general);
          
          
          // on ferme la liste des onglets
          htmlOnglets += '</ul></div><hr style="clear: both; visibility: hidden">' ;
          
          // et on la positionne à l'endroit indiqué par un id spécifique
          $("#ancre_onglets").after(htmlOnglets);
          
          // on cache la rubrique lien
          $("#lien_onglet_"+(onglets.length - 1)).hide(); 
          
          
          // et tous les intitulés concernant les information de la fiche qui ont été
          // déplacées dans les onglet
          $("#bf_lien_forge_rubrique").hide();
          $("#bf_lien_demo_rubrique").hide();
          $("#bf_lien_forum_rubrique").hide();
          $("#bf_com_demo_rubrique").hide();
          $("#bf_com_forge_rubrique").hide();
          $("#bf_com_telechargement_rubrique").hide();
          
          // on ajoute ensuite la gestion du clic pour le changement d'onglet
          $("#onglet_lien_ici").bind("click", function() { changerOngletsConsultation("onglet_lien_ici"); });
          $("#onglet_lien_forum").bind("click", function() { changerOngletsConsultation("onglet_lien_forum"); });
          $("#onglet_lien_demo").bind("click", function() { changerOngletsConsultation("onglet_lien_demo"); });
          $("#onglet_lien_forge").bind("click", function() { changerOngletsConsultation("onglet_lien_forge"); });
          
          // et enfin on laisse visible quel le contenu du premier onglet
          changerOngletsConsultation("onglet_lien_ici");
  }
  
  $(".BAZ_bulle_corps_application").before('<hr style="clear: both; visibility: hidden">');

  for(j = 0 ; j < onglets.length; j++)
  {
    ajouterListenersAccordeonOuOnglets(j,consultation) ;
  }
  
  cacherAfficherLiensListe(false);
  changerAccordeonOuOnglets(0,consultation);
}

function cacherAfficherLiensListe(afficher) {
        
        max = $(".lien_onglet").length
        
        if(afficher == true) {
                
        }
        else {
                $("#lien_onglet_"+(max)).parent().nextAll().each(function () {
                          $(this).hide();
                });
        }
}

function ajouterListenersAccordeonOuOnglets(id,consultation) {
  if(consultation) {
    $("#lien_onglet_"+id).bind("click", function() {changerAccordeonOuOnglets(id,consultation);});
  }
}

function validerFormulaire(verifier) {
        if(verifier == true) {
                try { if(validate_formulaire(document.getElementById("formulaire"))) { $("#formulaire").submit();}  } catch(e) { window.alert(e.message); return true; };
        }
        else {
                
                var url_origine = $("#formulaire").attr("action") ;
                
                modif = false ;
                
                url_ajax = $("#formulaire").attr("action") ;
                url_ajax += "&valider_fiche=0"
                
                var callback = function(reponse_json) {
                        
                        var reponse = eval('('+reponse_json+')');
        
                        if(reponse.success == true) {
                                window.alert('Votre fiche a été sauvegardée');
                                
                                // cas de la nouvelle fiche on passe en mode modification
                                if(url_origine.indexOf("bazar_action=11") != -1) {
                                        url_origine = url_origine.replace("bazar_action=11","bazar_action=13") ;
                                        url_origine += "&id_fiche="+reponse.id_fiche ;
                                }
                                
                                $("#formulaire").attr("action",url_origine);
                                
                        }
                        else {
                                window.alert('Problème de sauvegarde de la fiche');
                                $("#formulaire").attr("action",url_origine);
                        }
            };
                
                $("#formulaire").attr("action",url_ajax);
                $("#formulaire").ajaxSubmit(callback);
                
                $("#formulaire").attr("action",url_origine);
                
                return false ;
        }
}

$(document).ready(ajouterAccordeonOuOnglets);