var enleverPX = function(str){
  return parseInt(str)
}

$(document).ready(function(){
  bulleAnimee = {
    ouvert: 'ouvert',
    
    positionsBulles: {
      programme: {
        fermeLeft: 770,
        fermeTop: 165,
        ouvertLeft: 850,
        ouvertTop: 45 
      },
      concours: {
        fermeLeft: 560,
        fermeTop: 340,
        ouvertLeft: 850,
        ouvertTop: 415 
      },
      inscription: {
        fermeLeft: 375,
        fermeTop: 420,
        ouvertLeft: -35,
        ouvertTop: 275 
      },
      comite: {
        fermeLeft: 160,
        fermeTop: 420,
        ouvertLeft: -75,
        ouvertTop: 445 
      },
      contact: {
        fermeLeft: 0,
        fermeTop: 375,
        ouvertLeft: -50,
        ouvertTop: 115 
      },
      presse: {
        fermeLeft: 784,
        fermeTop: 495,
        ouvertLeft: -40,
        ouvertTop: 645
      },
      parteners: {
        fermeLeft: 480,
        fermeTop: 550,
        ouvertLeft: 850,
        ouvertTop: 640 
      }
    },
    
    bulleEnCours: '',
    
    soulever: function(){
      if (this.transition) {return};
      this.bulleEnCours.stop().animate(
        {
          top: (this.positionsBulles[this.bulleEnCours.attr('id')][this.ouvert+'Top'] - 20)+'px'
        }, 
        400, 
        null,
        this.afficherSousMenu()
      )
    },
    abaisser: function(){
      if (this.transition) {return};
      if(this.bulleEnCours.find('.sous-menu').length){
        var obj = this
        this.bulleEnCours.find('.sous-menu').fadeOut('slow', function(){
          obj.abaisserToutCourt();
        });
      }      
      else{
        this.abaisserToutCourt()
      }    
    },
    
    abaisserToutCourt: function(){
      if (this.transition) {return};
      this.bulleEnCours.stop().animate({
        top: (this.positionsBulles[this.bulleEnCours.attr('id')][this.ouvert+'Top'])+'px'
      })   
    },
    afficherSousMenu: function(){
      if(this.bulleEnCours.find('.sous-menu').length){
        this.bulleEnCours.find('.sous-menu').fadeIn('slow');
      }
    },
    
    sauvegarderTopChaqueBulle: function(){
      $('li.bulle').each(function(){
        $(this).data('top', enleverPX($(this).css('top')))
      })            
    },
    
    ouvrir: function(){
      if(this.ouvert == 'ouvert'){
        return;
      }
      
      for(var el in this.positionsBulles){
        
        this.transition = true
        
        var bulle = this
        
        $("#"+el.toString()).stop().animate(
          {
            top: this.positionsBulles[el].ouvertTop,
            left: this.positionsBulles[el].ouvertLeft 
          }, 
          1000, 
          null,
          function(){
            bulle.transition = false
          }
        )

      }
      
      this.ouvert = "ouvert"
    },
    
    transition: false,
    
    fermer: function(){
      if(this.ouvert == 'ferme'){
        return;
      }
      
      for(var el in this.positionsBulles){
        
        this.transition = true
        var bulle = this
        
        $("#"+el.toString()).stop().animate(
          {
            top: this.positionsBulles[el].fermeTop,
            left: this.positionsBulles[el].fermeLeft 
          }, 
          1000, 
          null,
          function(){
            bulle.transition = false
          }
        )

      }
      
      this.ouvert = "ferme"
    }
  }
  
  // sauvegarder le positionnement absolu verticale des bulles        
  bulleAnimee.sauvegarderTopChaqueBulle()
  bulleAnimee.ouvert = "ferme"
  bulleAnimee.ouvrir()
  
  // animation
  $('li.bulle').hover(
    function(){
      bulleAnimee.bulleEnCours = $(this)
      bulleAnimee.soulever()
    },
    
    function(){
      bulleAnimee.bulleEnCours = $(this)
      bulleAnimee.abaisser()
    }
  );
  
  
  var evenementsSurToutContenu = function(selecteur){
    // Boutons "fermer"
    $(selecteur).find(".fermer").click(function(e){
      $(this).parents('.fermable').fadeOut("normal")
      
      if ($(this).parents('#corps').length > 0) {
	    bulleAnimee.fermer()
	      
	    e.preventDefault()
      };
    })
    
    var activerValeur = function(that){
      $(that).parents('form').attr('id', "concours_" + $(that).val().toString())
    }
    
    $(selecteur).find('#fr_inscription #form-concours').change(function(){
      activerValeur(this)
    })
    
    $(selecteur).find('#fr_inscription #form-concours').each(function(){
      activerValeur(this)
    })
    
    $(selecteur).find('#gallery a').lightBox();
    
    var changementDePage = function(html){
        $('#chargement').hide();
        bulleAnimee.ouvrir()
        
        $("#corps").append($(html).find('#corps').html());
        evenementsSurToutContenu('#corps')
        
        if (!$.browser.msie) {
          var ancien_titre = $('title').text().split('-');
          ancien_titre = ancien_titre[ancien_titre.length - 1];
          
          $('title').text($(html).find('#corps .page-titre h1').text() + " - " + ancien_titre)
          
        };
        
        // defiler la page
        $('body, html').animate({scrollTop: 240}, 'slow');
      }
    
    $(selecteur).find(".form-in-situ").submit(function(e){
      e.preventDefault()
        
      $('#corps').empty();
        
      $('#chargement').show();
      
      var page = $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),
        success: changementDePage
      });      
    });
    
    $(selecteur).find(".bulle a[class!='pas-situ'], .in-situ").click(function(e){
        e.preventDefault()
        
        // Supprimer toutes les autres pages
        $('#corps').empty();
          
        // Afficher le chargement, charger la page
        $('#chargement').show();
        
        // la charger
        var page = $.ajax({
          type: 'GET',
          url: $(this).attr('href'),
          success: changementDePage
        });
    });    
  }
  
  evenementsSurToutContenu('body')
  
})