jQuery(document).ready(function(){

  /*********************************************************************************************/
  // Compte le nombre d'enfant dans un objet
  /*********************************************************************************************/
  Object.sizeOf = function(obj) {
    var size = 0, key;
    for (key in obj) {
      if (obj.hasOwnProperty(key)) size++;
    }
    return size;
  };

  jQuery('a[rel=tri_asc]').click(function(){
    jQuery(this).removeClass().addClass('tri_on');
    jQuery('a[rel=tri_desc]').removeClass().addClass('tri_off');
    Manager.custom.sort = 'prix asc';
    Manager.store.get('sort').val(Manager.custom.sort);
    Manager.doRequest();
    return false;
  });
  jQuery('a[rel=tri_desc]').click(function(){
    jQuery(this).removeClass().addClass('tri_on');
    jQuery('a[rel=tri_asc]').removeClass().addClass('tri_off');
    Manager.custom.sort = 'prix desc';
    Manager.store.get('sort').val(Manager.custom.sort);
    Manager.doRequest();
    return false;
  });

  /*********************************************************************************************/
  // Utile pour pouvoir mettre ŕ jour les filtre sur les back/next navigateur
  /*********************************************************************************************/
  var _currentHash = window.location.hash;
  setInterval(function() {
    if ((window.location.hash != _currentHash)&&(Manager.custom.hashChangedByFacet == false)) {
      Manager.custom.checkHashForParam();
      Manager.custom.loadRightParams();
      _currentHash = window.location.hash;
    }
    if ((window.location.hash != _currentHash)&&(Manager.custom.hashChangedByFacet == true)) {
      Manager.custom.hashChangedByFacet = false;
      _currentHash = window.location.hash;
    }
  }, 150);

});

function cleanName(newVal){
  newVal = newVal.toLowerCase();
  myRegExp = new RegExp("'|\\\\|\"|\/","g");
  newVal = newVal.replace(myRegExp, "-");
  newVal = newVal.replace(/\s/g, "-");
  newVal = newVal.replace(/\+/g, "-plus-");
  newVal = newVal.replace(/[\u00E9\u00E8\u00EA\u00EB]/g, "e");
  newVal = newVal.replace(/[\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5]/g, "a");
  newVal = newVal.replace(/[\u00EC\u00ED\u00EE\u00EF]/g, "i");
  newVal = newVal.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6]/g, "o");
  newVal = newVal.replace(/[\u00F9\u00FA\u00FB\u00FC]/g, "u");
  newVal = newVal.replace(/\W/g, "-");
  return (newVal);
}

function encodeHash(value) {
  return value ? value.replace(/\&amp\;/g, '&').replace(/\&/g, '&amp;') : undefined;
}

function decodeHash(value) {
  return value ? value.replace(/\¤\§amp\;/g, '&') : undefined;
}

function decodeHashArray(value) {
  var out = [],
      temp = value.replace(/\&amp\;/g, '¤§amp;').split('&');
  for(var i = 0; i < temp.length; i++) {
    out.push(decodeHash(temp[i]));
  }
  return out;
}
