var Filters = {  
   add: function (url, fields) {
    var urlComponents = url.split('?');

    var newUrl = urlComponents[0] + "?";
    var filters = $H((urlComponents.length > 1)? urlComponents[1].toQueryParams() : {} );
    
    $H(fields).each(function(pair) {
      var el = $(pair.value);
      if (el) {
        var val = $F(el);
        if (val && !val.blank()){
          filters.set(pair.key, val)
        } else {
          filters.unset(pair.key);
        }
      }
    });
    
    filters.unset('page');
    
    if (filters.any()) {
      newUrl += filters.toQueryString();
      window.location = newUrl;
    }
  },
  afterToday: function(date){
    return (date > (new Date()).stripTime());
  },
  afterCheckIn: function(date, checkInId){
    var checkIn = $F(checkInId);
    if(checkIn){
      return (date > Date.parse(checkIn));
    } else {
      return  Filters.afterToday(date);
    }    
  }  
}