//version 1.3.2 de jquery impérative pour faire fonctionner les scripts

$(function(){
    $("a[id^='deleteNews']").click(function () { ddeSuppressionNews(this);return false; });
    $("a[id^='modifTitleNews']").click(function () { reqAlterTitleNews(this);return false; });
    $("#btn_validerNews").click(function () { catchContentNews(this);return true;});
    
    $("a[id^='alterContentNews']").click(function () { reqAlterContentNews(this);return false; });
    //$("a[id^='alterContentNews']").live("click", function() {addEditTinyMceTextarea(); return false; });
    
    $("a[id^='oui']").live("click", function () { supprimerNews(this); return false;});
    $("a[id='annuler']").live("click", function () { removeElement(); return false;});
    $("p[id^='confirmerNewTitle'] > a[title='non']").live("click", function () { cancelModifTitleNews(this); return false;});
    $("p[id^='confirmerNewTitle'] > a[title='oui']").live("click", function () { sendNewTitle(this); return false;});
    $("p[id^='confirmerNewContent'] > a[title='oui']").live("click", function () { sendNewContent(this); return false;});
    $("p[id^='confirmerNewContent'] > a[title='non']").live("click", function () { cancelAlterContentNews(this); return false;});
    $("a[id^='addImg']").live("click", function () { reqAddImg(this); return false;});
        
    $("a[id^='alterLocationImg']").live("click", function () { alterLocationImg(this); return false;});
   $("#nouvelle > a").live("click", function () { toggleForm(); return false;});
   toggleForm();
   //coucou('chargement de la page');
  //gestion des arrondis pour ie
  //$("div[id^='divNews']").corner();
});

/*****************************************************
 *  FORMULAIRE D AJOUT DES NEWS
 *****************************************************/ 
function toggleForm()
{
  /*
  if($("#form").hasClass("masquer")) {
    $("#form").removeClass("masquer").addClass("afficher");
    $('#nouvelle').html('<a title="cliquer ici pour masquer le formulaire d\'ajout d\'une nouvelle" href="#">Cliquez ici pour masquer le formulaire d\'ajout d\'une nouvelle</a>');    
     if (!tinyMCE.get('news'))
     {
        addEditTinyMceTextarea();
        //coucou('pas de tiny "news", donc on l\'ajoute');
     }
  } else {
    $("#form").removeClass("afficher").addClass("masquer");
    //tinyMCE.execCommand('mceRemoveControl', false, "news");
    $('#news_parent').remove();
    $('#nouvelle').html('<a title="cliquer ici pour afficher le formulaire d\'ajout d\'une nouvelle" href="#">Cliquez ici pour ajouter une nouvelle</a>');
  }
  */
   addEditTinyMceTextarea();
   //coucou();
}


function catchContentNews(o)
{
    //loader_on($("p[id^=confirmerNewContent] > textarea "));
    //var id = getIdClic($('p[id^="confirmerNewContent"]'));

    var contenuIframeTinyMceNews = $('#news_ifr').contents().find("body").html();
    //coucou("contenu : "+contenuIframeTinyMceNews);
    $("#news").empty();
    $("#news").prepend(contenuIframeTinyMceNews);
   /* 
    //vérification que le titre n'est pas vide
    var lengthTitleNews = $("#titre").val().length;
    coucou("longueur : "+lengthTitleNews);
    //vérification que le contenu n'est pas vide
    var lengthContentNews = contenuIframeTinyMceNews.length;
    coucou("longueur : "+lengthContentNews+" : "+contenuIframeTinyMceNews);    
    
    if(lengthTitleNews==0)
    {
       $("#titre").before('<span class="erreur e1">Vous devez renseigner le titre</span>');
    }
    else
    {
       $(".e1").remove();
    }
     
    coucou("false");
    return false; //annuler l'effet du bonton valider
    */
}

/*****************************************************
 *  GESTION DE L'EDITION DE LA NEWS AVEC TINYMCE
 *****************************************************/ 
function addEditTinyMceTextarea() {
  tinyMCE.init({
  mode : "textareas",
  theme : "advanced",
  plugins : "",
  theme_advanced_buttons1 : "undo,redo,|,bold,italic,underline,strikethrough,forecolor,|,outdent,indent,|,bullist,numlist,|,sub,sup,|,link,unlink",
  theme_advanced_buttons2 : "",
  theme_advanced_toolbar_location : "top"

});
}
 



/*****************************************************
 *  GESTION DE LA SUPRESSION DE LA NEWS
 *****************************************************/ 

function ddeSuppressionNews(o)
{
     var id = getIdClic(o);
     confirmerSuppression(id);
    
}

function confirmerSuppression(id)
{
    removeElement();
    removeClassMasquer();
    var strHtml= '<p id="confirmer">Confirmer la suppression : <a id="oui-'+id+'" href="">OUI</a> <a id="annuler" href="">ANNULER</a></p>';
    $("#menuGestionNews-"+id).after(strHtml);  
}

function supprimerNews(o)
{
    loader_on(o); 
    var id = getIdClic(o);
    var str = $("#divNews-"+id+" .img img").attr("src");
     //coucou(str);
    if(str==null)
    {
      var img=0;
      var ext='';
    }
    else
    {
      var img=1;
      var ext = str.substring(str.lastIndexOf("."));
    }
             
    //req ajax
    var donnees = 'int_id='+id+'&img='+img+'&ext='+ext;
    appelAjax(donnees,'ax-php/deleteNews.ax.php', apresSuppressionNews, echec);  
}

function apresSuppressionNews(reponse)
{
    loader_off();
    var tab = decoupeReponse(reponse);
    var strHtml = "<p>Suppression de la news effectuée</p>";
    $("#divNews-"+tab[0]).html(strHtml);
}

/*****************************************************
 *  MODIFICATION DU TITRE DE LA NEWS
 *****************************************************/
 function reqAlterTitleNews(o)
 {
     //---
     removeElement();
    removeClassMasquer();
     //---
     var id = getIdClic(o);
     var titre = $('#titre-'+id).text(); 
     $('#titre-'+id).addClass('masquer');
      $('#titre-'+id).after('<p id="confirmerNewTitle-'+id+'"><input value="'+titre+'" /> <a href="" title="oui">OUI</a> <a href="" title="non">NON</a></p>');
 }

function sendNewTitle()
{
     loader_on($("p[id^='confirmerNewTitle'] > input"));
     var newTitle = $("p[id^='confirmerNewTitle'] > input").val();
      var id = getIdClic($('p[id^="confirmerNewTitle"]'));
     var donnees = 'int_id='+id+'&title='+newTitle ;
     appelAjax(donnees,'ax-php/alterTitleNews.ax.php', afterUpdateTitleNews, echec); 
}

function afterUpdateTitleNews(reponse)
{
    var tab=decoupeReponse(reponse);
    loader_off();
    if(tab[1]==1)
    {
       $('#titre-'+tab[0]).empty();
       $('#titre-'+tab[0]).text(tab[2]);
       removeElement();
       removeClassMasquer();
       
    }
    else
    {
       $("p[id^='confirmerNewTitle']").after('<p class="message">Echec de la mise à jour du titre.</p>');
    }
}
 
function cancelModifTitleNews()
{
    removeElement();
    $("h2[id^='titre']").removeClass('masquer');         
}

/*****************************************************
 *  MODIFICATION DU CONTENU DE LA NEWS
 *****************************************************/

function reqAlterContentNews(o)
{
    //---
    removeElement();
    removeClassMasquer();
    //---
    var id = getIdClic(o);
    var content = $("#news-"+id).html()
    $("#news-"+id).addClass('masquer');
    $("#divNews-"+id+' > .img').addClass('masquer');
    
    if (tinyMCE.get('news'))
    {
      tinyMCE.execCommand('mceRemoveControl', false, "news");
    }
    
    if (tinyMCE.get('contentForUpdate'))
    {
      tinyMCE.execCommand('mceRemoveControl', false, "contentForUpdate");
    }
      
    $('#news-'+id).after('<p id="confirmerNewContent-'+id+'"><textarea id="contentForUpdate" class="">'+content+'</textarea><br /> Confirmer la mise à jour : <a href="" title="oui">OUI</a> <a href="" title="non">NON</a></p>');
    //tinyMCE.execCommand('mceRemoveControl', false, "news");
    addEditTinyMceTextarea();    
}

function sendNewContent(o)
{
    loader_on($("p[id^=confirmerNewContent] > textarea "));
    var id = getIdClic($('p[id^="confirmerNewContent"]'));

    var contenuIframeTinyMce = $('#contentForUpdate_ifr').contents().find("body").html();
    
    var donnees = 'int_id='+id+'&content='+contenuIframeTinyMce ;
    appelAjax(donnees,'ax-php/alterContentNews.ax.php', afterUpdateContentNews, echec);       
}

function cancelAlterContentNews(o)
{
   removeElement();
   removeClassMasquer();
}

function afterUpdateContentNews(reponse)
{
    //coucou(reponse);
    var tab=decoupeReponse(reponse);
    loader_off();
    if(tab[1]==1)
    {
       $('#news-'+tab[0]).html(tab[2]);
       removeElement();
       removeClassMasquer();
       
    }
    else
    {
       $("#confirmerNewContent-"+tab[0]).after('<p class="message">Echec de la mise à jour de la news.</p>');
    }
}

/*****************************************************
 *  AJOUT D'UNE IMAGE
 *****************************************************/
function reqAddImg(o) {
     //---
    removeElement();
    removeClassMasquer();
     //---
     var id = getIdClic(o);
     var titre = $('#titre-'+id).text(); 
     $('#titre-'+id).addClass('masquer');
      $('#menuGestionNews-'+id).after('<p id="confirmerAddImg-'+id+'"><input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input"> <input type="button" class="button" id="buttonUpload" value="Upload" /></p>');
}


/*****************************************************
 *  MODIFICATION DE LA PLACE DE L'IMAGE
 *****************************************************/
function alterLocationImg(o)
{
    removeElement();
    removeClassMasquer();
    //---
    var id = getIdClic(o);
    var nameClass=$("img[alt='vmae-"+id+"']").attr("class");
    if(nameClass=="imgNewsRight") var intLocation=0; else var intLocation=1;
   
    var donnees = 'int_id='+id+'&int_locationImg='+intLocation;
    //coucou(donnees);
    appelAjax(donnees,'ax-php/moveLocationImg.ax.php', afterMoveImg, echec);      
}

function afterMoveImg(reponse)
{
    var tab = decoupeReponse(reponse);
    var id = tab[0];
    var nameClass=$("img[alt='vmae-"+id+"']").attr("class");
    if(nameClass=="imgNewsRight")
    {
        var nameClass2="imgNewsLeft";
        var strLocation="droite";
    }
    else
    {
        var nameClass2="imgNewsRight";
        var strLocation="gauche";
    }
   $("img[alt='vmae-"+id+"']").removeClass(nameClass).addClass(nameClass2);
   $("#alterLocationImg-"+id).empty().text("image à "+strLocation);
}



 //----
function echec()
{
 //coucou("la requete ajax a échoué");
}

/******************************************************************************
 *                      FONCTIONS COMMUNES
 *****************************************************************************/
function appelAjax(donnees, url, fonctionSucces, fonctionEchec)
{
    $.ajax({
            type: 'post',
            url : url,
            data: donnees,
            success : fonctionSucces,
            error : fonctionEchec  
          });
}

function coucou(msg)
{
    if(typeof msg=="undefined") console.log("coucou"); else console.log(msg);
}

//afficher un élément juste après le dossier ciblé
function sousLeDossier(idDossier,strHtml)
{ 
    $("#dir_"+idDossier+" > p.imgArbo").after(strHtml);
}

function getIdClic(o)
{
     var tab =  $(o).attr("id").split("-");
     return tab[1];   
}

function decoupeReponse(reponse)
{
     var tab = reponse.split("|");
     return tab;
}

function removeElement(element)
{
    if(element==undefined) element = $("p[id^='confirmer']");
    $(element).remove();
    $(".message").remove();
}

function removeClassMasquer()
{
    $("h2[id^='titre']").removeClass('masquer');
    $("div[id^='news']").removeClass('masquer');  
    $("p.img").removeClass('masquer');
}

function loader_on(o)
{
    strHtml=' <img id="ajax-loader" src="images/ajax-loader.gif" title="loader"  />';
    //coucou(strHtml);
    $(o).parent().append(strHtml); 
}

function loader_off()
{
   $('#ajax-loader').remove();
}

function nl2br (str) {
  //var tag = '<br />';
  var tag = '[br]';
  return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ tag);

}

function br2nl (str) {
  //var tag = '<br />';
  var tag = '\r\n';
  return (str + '').replace(/[br]/g, '$1'+ tag);
}    

/******************************************************************************
 *                      A RETENIR
 *****************************************************************************/
 
//voici un exemple qui permet de récupérer la position du clic (l'utilisation de la méthode live n'est pas obligatoire, ce n'est qu'un exemple)
$(function(){ 
 $("#elementAcliquer").live("click", function (e) { name(e); });
 });
 
 //e est l'événement qui a déclenché la fonction ou son appel (cas dans notre exemple)
 function name(e)
 {
    var coordonneesX = e.pageX;
    var coordonneesY = e.pageY;
 }  
