

;var site = (function(){

  /**********
    Membre privé à l'objet site
  **********/
  var that = this;

  /**
   * @name flash.update
   * @desc Overwrite jQuery.flash.update function.
   *
  **/
  var resetFlashUpdate = function() {
    /**
     * @name flash.update
     * @desc The default method for replacing an element with an update message.
     *
    **/
    jQuery.fn.flash.update = function(htmlOptions) {
      var url = String(location).split('?');
      url.splice(1,0,'?hasFlash=true&');
      url = url.join('');
      if(document.body.className.substr(0,2) === 'fr') {
        var msg = '<p class="fr no-flash">Pour voir ce contenu vous aurez besoin de la toute derniere version de Adobe Flash Player. <a href="http://www.adobe.com/go/getflashplayer" target="_blank">Téléchargez Flash Player</a>. <!-- Already have Flash Player? <a href="'+url+'">Click here.</a> --></p><p class="en" lang="en">This content requires the very latest version Flash Player.<br /> <a href="http://www.adobe.com/go/getflashplayer" target="_blank">Download Flash Player</a>.</p>';
      } else {
        var msg = '<p class="en no-flash">This content requires the very latest version Flash Player. <a href="http://www.adobe.com/go/getflashplayer" target="_blank">Download Flash Player</a>. <!-- Already have Flash Player? <a href="'+url+'">Click here.</a> --></p><p class="en" lang="en">This content requires the very latest version Flash Player.<br /> <a href="http://www.adobe.com/go/getflashplayer" target="_blank">Download Flash Player</a>.</p>';
      }
      this.innerHTML = '<span class="alt">'+this.innerHTML+'</span>';
      jQuery(this)
        .addClass('flash-update')
        .prepend(msg);
    };
  };
  
  this.toProperType = function(val) {
    if(typeof val == "object" || typeof val == "function") return val;
    if(val == 'true') return true;
    else if(val == 'false') return false;
    else if(/^\d+$/.test(val)) return parseInt(val);
    else return '' + val.toString() + '';
  }
  
  var prepareFlash = function() {
    // Récupère le source du tag <noscript> flash-replacer
    if(!document.getElementById('mediamovie')) return;
    var attrSource = jQuery('#mediamovie').html().replace(/&gt;/g, '>').replace(/&lt;/g, '<');
    // Récupère le contenue de la fause balise <flashembed> qui se trouve dans le commentaire HTML de la balise <noscript>
    var flvparams = attrSource.match(/<(?:flash)?embed([^>]*)>/i);

    // Si le flashembed a été trouvé génère l'objet de remplace pour le jQuery.flash
    if(flvparams && typeof(flvparams != 'undefined')) {
      // Sépare les paramètres et supprime les éléments vide
      /*
        .match : trouve les combinaison attribut="valeur" et retourne un array
        .join : retourne une string avec tous les paramètres séparés par des |
        .replace : Supprime tous les "
        .split : retourne un array avec chaque combinaison attribut=valeur
      */
      var params = flvparams[1].match(/[a-z]+\="[^"]*"/gi).join('|').replace(/"/g, '').split('|');
      var flvVersion = {version: '6.0'}; //Version par défaut
      flvparams = {};
      for(var i = 0; i < params.length; i+=1) {
        //Sépare l'attribut de ça valeur (p = array[attribut, valeur])
        var p = params[i].match(/(^[a-z]+)=(.*)/i);

        // Les propriété flashvars et (min)version sont traité à part
        if(!/^(flashvars|(?:min)version)$/i.test(p[1])) {
          // Extend flvparms avec la nouvelle valeur
          flvparams[p[1]] = this.toProperType(p[2]);

        } else if (p[1].toLowerCase() == 'flashvars') {
          var vars = new String(p[2]);
          vars = vars.replace('&amp;', '&').split('&');
          var flashvars = {};
          for(var j = 0; j < vars.length; j++) {
            var v = vars[j].match(/(^[^=]+)=(.*)/i);
            flashvars[v[1]] = v[2];
          }
          flvparams.flashvars = flashvars;

        } else {
          flvVersion.version = p[2].toString();
        }
      }
      // Ajoute le flash à la page
      jQuery("#mediamovie").flash(flvparams, flvVersion);
    }

  };

  var prepareGallery = function() {
    //alert('prepare gallery');
    if(!document.getElementById('gallery-wrapper')) {
      //alert ('no gallery!');
      return;
    }
	
    jQuery('#gallery-nav').html('<a href="#" onclick="jQuery.galleria.prev(); return false;">' + prevImgLink + '</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="#" onclick="jQuery.galleria.next(); return false;">' + nextImgLink + '</a>');
  	jQuery(function($) {

  		$('.gallery-unstyled').addClass('gallery-styled'); // adds new class name to maintain degradability

  		$('ul.gallery-styled').galleria({
  			history   : true, // activates the history object for bookmarking, back-button etc.
  			clickNext : true, // helper for making the image clickable
  			insert    : '#main-image', // the containing selector for our main image
  			onImage   : function(image,caption,thumb) { // let's add some image effects for demonstration purposes

  				// fade in the image & caption
  				if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) { // FF/Win fades large images terribly slow
  					//image.css('display','none').fadeIn(1000);
  				}
  				//caption.css('display','none').fadeIn(1000);

  				// fetch the thumbnail container
  				var _li = thumb.parents('li');

  				// fade out inactive thumbnail
  				//_li.siblings().children('img.selected').fadeTo(500,0.6);

  				// fade in active thumbnail
  				//thumb.fadeTo('fast',1).addClass('selected');

  				// add a title for the clickable image
  				//image.attr('title', nextImgLabel);
  			},
  			onThumb : function(thumb) { // thumbnail effects goes here

  				// fetch the thumbnail container
  				var _li = thumb.parents('li');

  				// if thumbnail is active, fade all the way.
  				var _fadeTo = _li.is('.active') ? '1' : '0.6';

  				// fade in the thumbnail when finnished loading
  				//thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);

  				// hover effects
  				thumb.hover(
  					function() { thumb.fadeTo('fast',1); },
  					function() { _li.not('.active').children('img').fadeTo('fast',0.6); } // don't fade out if the parent is active
  				)
  			}
  		});
  	});
  };
  
  /**********
    Membre public à l'objet site
  **********/
  return {
    init: function() {
      resetFlashUpdate();
      prepareFlash();
      prepareGallery();
    }
  };
    
})();


