Browser detection

HTML

<div id="res"></div>

CSS

ceth kenison

CoffeeScript

class Browser

  validate: (browsers={}) ->
    @detected || @detected = @detect()
    return undefined unless browsers[@detected.name]?
    return false if @detected.version < browsers[@detected.name]
    true
    
  detect: ->
    objappVersion     = navigator.appVersion
    objAgent          = navigator.userAgent
    objbrowserName    = navigator.appName
    objfullVersion    = "" + parseFloat(navigator.appVersion)
    objBrMajorVersion = parseInt(navigator.appVersion, 10)
    objOffsetName     = undefined
    objOffsetVersion  = undefined
    ix                = undefined

    unless (objOffsetVersion = objAgent.indexOf("Chrome")) is -1
      objbrowserName = "chrome"
      objfullVersion = objAgent.substring(objOffsetVersion + 7)

    else unless (objOffsetVersion = objAgent.indexOf("MSIE")) is -1
      objbrowserName = "msie"
      objfullVersion = objAgent.substring(objOffsetVersion + 5)

    else unless (objOffsetVersion = objAgent.indexOf("Firefox")) is -1
      objbrowserName = "firefox"

    else unless (objOffsetVersion = objAgent.indexOf("Safari")) is -1
      objbrowserName = "safari"
      objfullVersion = objAgent.substring(objOffsetVersion + 7)
      objfullVersion = objAgent.substring(objOffsetVersion + 8)  unless (objOffsetVersion = objAgent.indexOf("Version")) is -1

    else unless (objOffsetVersion = objAgent.indexOf("Opera")) is -1
      objbrowserName = "opera"
      objfullVersion = objAgent.substring(objOffsetVersion + 7)
      objfullVersion = objAgent.substring(objOffsetVersion + 8)  unless (objOffsetVersion = objAgent.indexOf("Version")) is -1

    else if (objOffsetName = objAgent.lastIndexOf(" ") + 1) < (objOffsetVersion = objAgent.lastIndexOf("/"))
      objbrowserName = objAgent.substring(objOffsetName, objOffsetVersion).toLowerCase()
      objfullVersion = objAgent.substring(objOffsetVersion + 1)
      objbrowserName = navigator.appName  if objbrowserName.toLowerCase() is objbrowserName.toUpperCase()

    objfullVersion =...