var Browser = {
  isIE: function(version) {
    var test = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
    var condition = (test!=null && document.all && !Browser.isOpera());
    if(Object.isUndefined(version) || version==null)
      return condition;
    else
      return (condition && Number(test[1])>=version);
  },
  
  isOpera: function() {
    return navigator.appVersion.indexOf("Opera")!=-1;
  },
  
  isFirefox: function (options) {
    if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
     var browser_version = new Number(RegExp.$1); // capture x.x portion and store as a number
     var result = true;
     $H(options).map(function(el){
       switch(el[0]) {
         case 'gt':
           result = result && (browser_version > el[0]);
          break;
         case 'gte':
          result = result && (browser_version >= el[0]);
          break;
         case 'lt':
          result = result && (browser_version < el[0]);
          break;
         case 'lte':
          result = result && (browser_version <= el[0]);
          break;
         case 'eq':
          result = result && (browser_version == el[0]);
          break;
       }
     });
     return result;
    }
  }
};
