Browser detection
HTML
<div id="res"></div>
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 =...