
// One of these boolean variables will be
// set to true based on the browser name
var ie = false
var ns = false
var opera = false
var webtv = false
var compatible = false

// One of these boolean variables will be set to 
// true based on the Internet Explorer version
var ie2 = false
var ie3 = false
var ie4 = false
var ie5 = false
var ie55 = false
var ie6 = false
var ie4plus = false
var ie5plus = false
var ie55plus = false
var ie6plus = false

// One of these boolean variables will be set to 
// true based on the Netscape version
var ns2 = false
var ns3 = false
var ns4 = false
var ns6 = false
var ns3plus = false
var ns4plus = false
var ns6plus = false

// One of these boolean variables will be
// set to true based on the operating system
var win31 = false
var win95 = false
var win98 = false
var winme = false
var winnt = false
var win2000 = false
var winxp = false
var windows = false
var win32 = false
var mac68k = false
var macppc = false
var macos = false
var linux = false
var other_os = false

// This will be true of the browser supports some kind of DHTML
var dhtml_ok = false

// Let's work with lowercase letters to keep things simple
var user_agent = navigator.userAgent.toLowerCase()

// BROWSER NAME

// Use indexOf() to examine the userAgent string
// for telltale signs of the browser name

if (user_agent.indexOf("opera") != -1) { opera = true }
else if (user_agent.indexOf("webtv") != -1) { webtv = true }
else if (user_agent.indexOf("msie") != -1) { ie = true }
else if (user_agent.indexOf("mozilla") != -1) {

    // For "moziila", we need to rule out some other possibilities, first
    if ((user_agent.indexOf("compatible") == -1) && 
        (user_agent.indexOf("spoofer") == -1) && 
        (user_agent.indexOf("hotjava") == -1)) {
        ns = true
    }
    else { compatible = true }
}

// BROWSER VERSION

var major_version = parseInt(navigator.appVersion)
var full_version = parseFloat(navigator.appVersion)
var ie_start = user_agent.indexOf("msie")

if (ie_start != -1) {
    var version_string = user_agent.substring(ie_start + 5)
    major_version = parseInt(version_string)
    full_version = parseFloat(version_string)
}

// INTERNET EXPLORER
if (ie || webtv) {
    if (major_version < 3) { ie2 = true }
    else if (major_version == 3) { ie3 = true }
    else if (major_version == 4) { ie4 = true }
    else if (major_version == 5) { ie5 = true }
    else if (full_version == 5.5) { ie55 = true }
    else if (major_version == 6) { ie6 = true }

    if (major_version >= 4) { ie4plus = true }
    if (major_version >= 5) { ie5plus = true }
    if (full_version >= 5.5) { ie55plus = true }
    if (major_version >= 6) { ie6plus = true }
}

// NETSCAPE
if (ns) {
    if (major_version < 3) { ns2 = true }
    else if (major_version < 4) { ns3 = true }
    else if (major_version == 4) { ns4 = true }
    else if (major_version == 5) { ns6 = true }

    if (major_version >= 3) { ns3plus = true }
    if (major_version >= 4) { ns4plus = true }
    if (major_version >= 5) { ns6plus = true }
}

// OPERATING SYSTEM

// Use indexOf() to examine the userAgent string
// for telltale signs of the operating system

// WINDOWS 3.1
if ((user_agent.indexOf("windows 3.1") != -1) || 
    (user_agent.indexOf("win16") != -1) ||
    (user_agent.indexOf("16bit") != -1) ||
    (user_agent.indexOf("16-bit") != -1)) { win31 = true }

// WINDOWS 95
else if ((user_agent.indexOf("windows 95") != -1) || 
         (user_agent.indexOf("win95") != -1)) { win95 = true }

// WINDOWS ME
if (user_agent.indexOf("win 9x 4.90") != -1) { winme = true }

// WINDOWS 98
else if ((user_agent.indexOf("windows 98") != -1) || 
         (user_agent.indexOf("win98") != -1)) { win98 = true }

// WINDOWS XP
else if ((user_agent.indexOf("windows nt 5.1") != -1) || 
         (user_agent.indexOf("winnt 5.1") != -1)) { winxp = true }

// WINDOWS 2000
else if ((user_agent.indexOf("windows nt 5.0") != -1) || 
         (user_agent.indexOf("winnt 5.0") != -1)) { win2000 = true }

// WINDOWS NT
else if ((user_agent.indexOf("windows nt") != -1) || 
         (user_agent.indexOf("winnt") != -1)) { winnt = true }

// MAC 680x0
else if ((user_agent.indexOf("mac") != -1) && 
        ((user_agent.indexOf("68K") != -1) || 
         (user_agent.indexOf("68000") != -1))) { mac68k = true }

// MAC PowerPC
else if ((user_agent.indexOf("mac") != -1) && 
        ((user_agent.indexOf("ppc") != -1) || 
         (user_agent.indexOf("powerpc") != -1))) { macppc = true }

// LINUX
else if (user_agent.indexOf("linux") != -1) { linux = true }

// OTHER OS
else { other_os = true }

// PLATFORM

// Use the operating system booleans to
// determine the general platform

// MAC OS
if (mac68k || macppc) { macos = true}

// 32-BIT WINDOWS
if (win95 || win98 || winme || winnt || win2000 || winxp) {win32 = true}

// WINDOWS
if (win31 || win32) {windows = true}

// DHTML SUPPORT
if (document.getElementById || document.all || document.layers) {
    dhtml_ok = true
} 
