$.fn.imagesLoaded = function(callback){
  var elems = this.filter('img'),
      len = elems.length,
      blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
      
  elems.bind('load',function(){
      if (--len <= 0 && this.src !== blank){ callback.call(elems,this); }
  }).each(function(){
     // cached images don't fire load sometimes, so we reset src.
     if (this.complete || this.complete === undefined){
        var src = this.src;
        // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
        // data uri bypasses webkit log warning (thx doug jones)
        this.src = blank;
        this.src = src;
     }
  });

  return this;
};



var $prehome = {

$ov: null,
$pr: null,
days: 86400000,
months: 2592000000,
years: 31536000000,
$cookieExpire: 0,


load: function(prehome, cookieName) {
  var jq = jQuery;


  $prehome.$cookieExpire = 30 * $prehome.months; 



  document.cookie='testGPUS=true';
  if ($prehome.readCookie('testGPUS') == null) return;
  var cookie = $prehome.readCookie(cookieName);

  if (cookie == null) {
    // pas de cookie, on le sette et on affiche
    $prehome.setCookie(cookieName,'1');

    if (jq != undefined) {
      jq.get('/usa/prehome/'+prehome, null, $prehome.loaded, 'html');
    }
  }

},


show: function() {
  $prehome.$ov.show();
  $prehome.$pr.fadeIn(300);
},

close: function() {
  $prehome.$pr.hide();
  $prehome.$ov.hide();
},

readCookie: function(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i < ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0)
      return c.substring(nameEQ.length,c.length);
  }
  return null;
},

setCookie: function(c, valeur) {

  var date = new Date();
  var now = date.getTime();
  date.setTime(date.getTime() + $prehome.$cookieExpire); 

  var expires = date.toGMTString();

  document.cookie = c + '=' + valeur + '; expires=' + expires;
},

loaded: function(data, status, xhr) {
  var jq = jQuery;

  var documentHeight = $('body').height();
  jq('<div id="phoverlay" style=" width: 100%; height: '+documentHeight+'px;"></div><div id="phcontainer">'+data+'</div>').appendTo('body');
  $prehome.$pr = jq('#phcontainer');
  $prehome.$ov = jq('#phoverlay');

  // on applique les events sur les boutons
  $prehome.$pr.find('.close').click($prehome.close);

  $prehome.$pr.find('img',this).imagesLoaded($prehome.show);
}

};

