

$(document).ready( function () { 
    // On cache les sous-menus : 
    $("#nextEmission .moreSujet").hide();
    $("#showNotesNext").hide();
    $(".entry .detailEmission").hide(); 
 
 
    // On modifie l'évènement "click" sur les liens dans les items de liste 
    // qui portent la classe "toggleSubMenu" : 
    $(".plusDeDetail").click( function () {
        // Si le sous-menu était déjà ouvert, on le referme : 
        if ($(this).next().length != 0) { 
            $(this).next().slideToggle(); 
        } 
        // Si le sous-menu est caché, on ferme les autres et on l'affiche : 
        else { 
        	
             $(this).next().slideToggle();
        } 
        // On empêche le navigateur de suivre le lien : 
        return false; 
    }); 
    
    $("#boutonAfficherShowNotesNext").click( function () {
        // Si le sous-menu était déjà ouvert, on le referme : 
        if ($(this).next("#showNotesNext").length != 0) { 
            $(this).next("#showNotesNext").slideToggle(); 
        } 
        // Si le sous-menu est caché, on ferme les autres et on l'affiche : 
        else { 
        	
             $(this).next("#showNotesNext").slideToggle();
        } 
        // On empêche le navigateur de suivre le lien : 
        return false; 
    }); 
    
    $(".detailButton").click( function () {
        // Si le sous-menu était déjà ouvert, on le referme : 
        if ($(this).prev(".detailEmission").length != 0) { 
            $(this).prev(".detailEmission").slideToggle(); 
        } 
        // Si le sous-menu est caché, on ferme les autres et on l'affiche : 
        else { 
             $(this).prev(".detailEmission").slideToggle();
        } 
        // On empêche le navigateur de suivre le lien : 
        return false; 
    });     
 
 
} ) ; 


$(document).ready( function () {
  SliderComments.init();
  Slider.init();
  ToolTips.init(); 
  $form.find('input[type=submit]')
                   .fadeIn();
/*
  $('.postmetadata').find('a:last').bind('click', function(){
    console.log($(this).parent().siblings('.entry').find('.reactBox'));
    $(this).parent().siblings('.entry').find('.reactBox .reactButton').trigger('click');
    return false;
  });
*/
}); 


SliderComments = {
  init : function(){
    $SliderBtn = $('.reactButton');
    $('.reactionBillet').each( function(){
      $(this).hide();
    });
    SliderComments.SlideDown();
  },

  SlideDown : function(){
    
    $SliderBtn.bind ('click', function(){
    
      var self = $(this);
      var callback = self.parents('.reactBox').next('.reactionBillet');
      var permalink = self.find('a').attr('href');
      if( callback.is(':hidden') ){
          // Ajout loader
          self.find('a').html('<div class="loader"></div>');
          // get_comments()
          callback.load(permalink+" .commentBox", function(){
              self.find('a')
                  .html('Continuer à réagir')
                  .parents('.reactBox')
                  .next('.reactionBillet')
                  .hide()
                  .slideDown();
          });
      }
      else{
        callback.slideUp( function(){
          $(this).empty();

        });
      }
    return false;
    });
  }
}

/* !Objet Tirette */
Slider = {
  init : function(){
    $takePart       = $('#takePart');
    $form           = $takePart.find('form');
    $expendArrow    = $takePart.find('#expend  span');
    verifForm       = Array(0, 0);
    $info           = $('#info');
    
// Ajout de margin-bottom à l'arrache =D
    sliderHeight    = $takePart.height() - (($form.find('.txtarea').size() - 1) * 70);
    infoHeight      = $info.height();
 
    if( sliderHeight >= infoHeight){
      $info.css({height : sliderHeight+'px'});
    }

// Catcher les textrea pour les masquer  
      $takePart.find('div.txtarea')
               .each( function(){
        $(this).hide(); 
      });
// Ajout des options
    $form.find('#subject>li>p').each( function(){
      $options = $('<ul></ul>').addClass('options')
                               .appendTo($(this));
                               
        $options.each( function(){
        
          $('<li></li>').addClass('slideDown')
                        .appendTo($(this));
                        
          $('<li></li>').addClass('remove')
                        .append('<a href="#" class="removeSubject tooltips" title="En faite non !">')
                        .appendTo($(this));
                        
          $('<li></li>').addClass('verif')
                        .appendTo($(this));
        });
    });

// Masquer la tirette et inverser le sens des flèches
    $takePart.find('form')
             .hide();
             
    $expendArrow.toggleClass('arrowUp')
                .toggleClass('arrowDown');
                
    $('input[type=submit]').addClass('dnone');
// envoi du formulaire
    $form.submit( function(){
        Slider.formSubmit();
        return false;
    });
// init méthodes
  Slider.toggleSlide();
  Slider.slideSubject();
  Slider.checkKeyUp();
  Slider.checkSubjectOptions();
  },
  
  toggleSlide : function(){
// Animation tirette.
    $takePart.css({
                position : 'absolute'
             })
             .find('#expend')
             .bind( 'click', function(){
                  $form.stop().slideToggle();
                  $expendArrow.toggleClass('arrowUp')
                              .toggleClass('arrowDown');
                  return false;
             });
  },
  
  slideSubject : function(){

    $form.find('#subject>li>p')
         .bind( 'click', function(){
// fermer les sujets
            $form.find('.txtarea:visible')
                 .slideUp('normal', function(){
                    $(this).siblings('p')
                           .find('li[class^=slide]')
                           .addClass('slideDown')
                           .removeClass('slideUp');
            
                    if( $(this).find('textarea').val().length == 0 ){
                      $(this).siblings('p')
                                .find('.options li.remove')
                                .hide()
                             .end()
                                .find('.options li.verif')
                                .removeClass('false');
                    }
                    else{
                      $(this).siblings('p').find('.options li.verif').removeClass('false').addClass('true');
                    }
            
                 });
// ouvrir les sujets 
                    $(this).siblings('.txtarea:hidden')
                           .slideDown('normal', function(){
                             $(this).siblings('p')
                                      .find('li[class^=slide]')
                                      .addClass('slideUp')
                                      .removeClass('slideDown');
                             $(this).siblings('p:first')
                                      .find('.verif')
                                      .addClass('false')
                                    .end()
                                      .find('.remove')
                                      .show();
                           });
          
         }); //@end bind click
  },
  
  checkSubjectOptions : function(){
// live check

// Vider les sujets
    $form.find('.removeSubject')
         .click( function(){
            var $txtarea = $(this).parents('p').siblings('.txtarea').find('textarea');
            $txtarea.val('');
            $txtarea.trigger('keyup');
            if( $txtarea.is(':visible') ){
              $(this).parents('p').trigger('click');
            }
            else{
             $(this).parent().hide().siblings('.verif').removeClass('false');
            }
           return false;
         });


  },
// vérification à la frappe
  checkKeyUp : function(){
      regMail = new RegExp("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*[^._-]@([a-zA-Z0-9-]+([-.][a-zA-Z0-9]{2,4}))+$");

    $form.find('input#skypeID')
         .bind( 'keyup', function(event){
            if( $(this).val().length >= 6 ){
              $(this).parent()
                     .siblings('.verif')
                     .removeClass('false')
                     .addClass('true');
              verifForm[0] = 1;
            }
            else{
              $(this).parent()
                     .siblings('.verif')
                     .removeClass('true')
                     .addClass('false');
              verifForm[0] = 0;
            }
         });
    
    $form.find('input#mail')
         .bind( 'keyup', function(event){
            if( regMail.test($(this).val()) ){
              $(this).parent()
                     .siblings('.verif')
                     .removeClass('false')
                     .addClass('true');
              verifForm[1] = 1;
            }
            else{
              $(this).parent()
                     .siblings('.verif')
                     .removeClass('true')
                     .addClass('false');
              verifForm[1] = 0;
            }
    });
    $form.find('input#mail')
         .trigger('keyup');
    $form.find('input#skypeID')
         .trigger('keyup');
         
    // affichage du bouton submit si le fom est bien completé
    $form.find('input[type=text]')
         .keyup( function(){
            if( verifForm[0] == 1 && verifForm[1] == 1){
              $form.find('input[type=submit]')
                   .fadeIn();
            }
            else{
              $form.find('input[type=submit]')
                   .fadeOut();
            }
         });
    $form.find('.txtarea textarea')
         .each( function(){
            $(this).bind( 'keyup', function(){
            $icns = $(this).parent()
                       .siblings('p')
                       .find('.options .verif');
                       
              if( $(this).val().length > 0 ){
                  $icns.removeClass('false')
                       .addClass('true');
              }
              else{
                $icns.removeClass('true')
                       .addClass('false');
              }
              
            });
         });
  },
  
// envoi du formulaire
  formSubmit : function(){
    $.get(
        '/pangolin/ajoutAvis.php',
        $form.serialize(),
        function(){
          $takePart.empty()
                   .append('<p class="done">Ta demande a bien été prise en compte !</p>');
        });
  }

} // !@end Slider


ToolTips = {
  init : function(){
  $tips = $('<div />').attr({
                        id : 'ToolTips'
                      })
                      .append('<p />')
                      .append('<span class="row"></span>')
                      .css('opacity', 0)
                      .show()
                      .appendTo('body');

    $('.tooltips[title]').each( function(){
    
      $(this).bind('mouseover', function(){
        $TpPos = $(this).offset();
        $tips.find('p')
             .text($(this).attr('title'));

        $TpPos.left    -= ($tips.width() / 2);
        $TpPos.top     -= ($tips.height() + 50 );
        var topAfter = $TpPos.top + 35;
        
        $tips.css($TpPos)
             .stop()
             .animate({
                opacity : 1,
                top     : topAfter+'px'
              }, 300); 
        
      });
      $(this).bind('mouseout', function(){
      
        $tips.stop()
             .animate({
                opacity : 0,
                top     : $tips.offset().top - 35
              }, 300);
      });
    });
  }
}

ToolTips = {
  init : function(){
  $tips = $('<div />').attr({
                        id : 'ToolTips'
                      })
                      .append('<p />')
                      .append('<span class="row"></span>')
                      .css('opacity', 0)
                      .show()
                      .appendTo('body');

    $('.tooltips[title]').each( function(){
    
      $(this).bind('mouseover', function(){
        $TpPos = $(this).offset();
        $tips.find('p')
             .text($(this).attr('title'));

        $TpPos.left    -= ($tips.width() / 2);
        $TpPos.top     -= ($tips.height() + 50 );
        var topAfter = $TpPos.top + 35;
        
        $tips.css($TpPos)
             .stop()
             .animate({
                opacity : 1,
                top     : topAfter+'px'
              }, 300); 
        
      });
      $(this).bind('mouseout', function(){
      
        $tips.stop()
             .animate({
                opacity : 0,
                top     : $tips.offset().top - 35
              }, 300);
      });
    });
  }
}
