
var oBrowser = new Object();  
oBrowser.UserAgent     = navigator.userAgent.toLowerCase();
oBrowser.AppVersion    = navigator.appVersion.toString().toLowerCase();
oBrowser.MajorVersion  = parseInt(navigator.appVersion);
oBrowser.MinorVersion  = parseFloat(navigator.appVersion);

oBrowser.isIE			= false;
oBrowser.isIE7			= false;
oBrowser.isIE8                  = false;
oBrowser.isChrome               = false;
oBrowser.isSafari 		= false;
oBrowser.isSafari2 		= false;
oBrowser.isSafari3 		= false;
oBrowser.isSafari4              = false;
oBrowser.isFirefox 		= false;
oBrowser.isFirefox1_5 		= false;
oBrowser.isFirefox2 		= false;
oBrowser.isFirefox3 		= false;
oBrowser.isFirefox3_5           = false;

var oPlatform = new Object();  
oPlatform.isWin    		= false;
oPlatform.isWinXP  		= false;
oPlatform.isWinVista 		= false;
oPlatform.isMacOSX 		= false;

//-------------------------------------------------------------------------
// PLATFORM CHECKS 

function fncDetectPlatform()
{
    if (oBrowser.UserAgent.length > 0)
    {
        oPlatform.isWin     = (oBrowser.UserAgent.indexOf("windows") != -1);
        oPlatform.isWinXP   = (oBrowser.UserAgent.indexOf("windows nt 5.1") != -1);
        oPlatform.isWinVista= (oBrowser.UserAgent.indexOf("windows nt 6.0") != -1);
        oPlatform.isMacOSX	= (oBrowser.UserAgent.indexOf("os x") != -1);
    }
}

function fncGetFullVersion(strAgent, strToFind)
{
    var dblFullVersion = 0.0;
    var strShortAgent = "";
    var strVersion = "";
    strAgent = strAgent.toLowerCase();
    strToFind = strToFind.toLowerCase();
    
    if (strAgent.indexOf(strToFind) != -1)
    {
        strShortAgent = strAgent.substr(strAgent.indexOf(strToFind) + strToFind.length, strAgent.length);
        
        if (strShortAgent.charAt(0) != " ")
            strShortAgent = " " + strShortAgent;
    }
    
    var strKey = "";
    var intNumericStart = -1;
    var intNumericEnd = -1;
    
    for (var i = 0; i <= strShortAgent.length; i++)
    {
        var chrTest = strShortAgent.charAt(i);
        var blnIsTestNaN = isNaN(chrTest);
        var chrKey = "0";
        
        if ((blnIsTestNaN && chrTest != ".") || chrTest == " ")
        {
            // not a number or period
            chrKey = "0";
            
            if (intNumericStart >= 0 && intNumericEnd < 0)
                    intNumericEnd = i-1;
        }
        else
        {
            chrKey = "1";
            
            if (intNumericStart < 0 && intNumericEnd < 0)
              intNumericStart = i;
        }
        
        strKey = strKey + chrKey;
    }    
    
    if (intNumericStart >= 0 && intNumericEnd < 0)
        intNumericEnd = strKey.length;
    
    if (intNumericStart >= 0 && intNumericEnd > 0)
            strVersion = strShortAgent.substr(intNumericStart, intNumericEnd);
    
    return (strVersion);
}

//-------------------------------------------------------------------------
// BROWSER CHECKS 

function fncDetectBrowser()
{
    var safariBuild;
    var strVersion = "";
    
    if (oBrowser.UserAgent.length > 0)
    {
        oBrowser.isIE = (oBrowser.UserAgent.indexOf("msie") != -1);

        if (oBrowser.UserAgent.indexOf('safari') != -1)
        {
            if (oBrowser.UserAgent.indexOf('chrome') != -1)
                oBrowser.isChrome = true;
            else
                oBrowser.isSafari = true;
                
            strVersion = fncGetFullVersion(oBrowser.UserAgent,"safari");
        }
        
        // most IEs these days include 'mozilla' in the user string
        if (oBrowser.UserAgent.indexOf('firefox') != -1 && !oBrowser.isIE)
        {
            oBrowser.isFirefox = true;
            strVersion = fncGetFullVersion(oBrowser.UserAgent,"firefox");
        }
        
        if (strVersion.length < 1)
        {
            if (oBrowser.isIE)
                strVersion = fncGetFullVersion(oBrowser.UserAgent,"msie");
            else if (oBrowser.UserAgent.indexOf('mozilla') != -1 && oBrowser.UserAgent.indexOf('netscape') == -1) // for NS 4.75
                strVersion = fncGetFullVersion(oBrowser.UserAgent,"mozilla");
        }
        
        if (!isNaN(parseInt(strVersion)))
            oBrowser.MajorVersion  = parseInt(strVersion);
        if (!isNaN(parseFloat(strVersion)))
            oBrowser.MinorVersion  = parseFloat(strVersion);   
        
        if (oBrowser.isIE)
        {
            oBrowser.isIE7 = (oBrowser.MajorVersion == 7 && oBrowser.UserAgent.indexOf('trident/4') == -1); // compatibility mode contains 'trident/4'
            oBrowser.isIE8 = (oBrowser.MajorVersion == 8 || oBrowser.UserAgent.indexOf('trident/4') != -1);
        }
        
        // browser version check ----------------------------------------------
        if (oBrowser.isFirefox)
        {
            oBrowser.isFirefox2 = (oBrowser.MajorVersion == 2);
            oBrowser.isFirefox1_5  = (oBrowser.MinorVersion.toString().indexOf('1.5') != -1);
            oBrowser.isFirefox3_5 = (oBrowser.MinorVersion.toString().indexOf('3.5') != -1);
            oBrowser.isFirefox3 = (oBrowser.MajorVersion == 3 && !oBrowser.isFirefox3_5);
        }
        else if (oBrowser.isSafari)
        {
            /* Safari versions are identified by WebKit build numbers in .userAgent:
            2.0 = 412.x, 416.x, 417.x, 419.x
            3.0 = 522.x, 523.x, 525.x
            4.0 = 528.x
            */
            
            safariBuild = parseInt(strVersion);
    
            if (safariBuild == 412 || safariBuild == 416 || safariBuild == 417 || safariBuild == 419)
                oBrowser.isSafari2 = true;
            else if (safariBuild == 522 || safariBuild == 523 || safariBuild == 525)
                oBrowser.isSafari3 = true;
            else if (safariBuild >= 528)
                oBrowser.isSafari4 = true;
        }
    }
}

function CheckOKWinXPBrowsers()
{
    return oBrowser.isIE6 || oBrowser.isIE7 || oBrowser.isIE8 || oBrowser.isFirefox2 || oBrowser.isFirefox3;
}

function CheckOKWinVistaBrowsers()
{
    return oBrowser.isIE6 || oBrowser.isIE7 || oBrowser.isIE8 || oBrowser.isFirefox2 || oBrowser.isFirefox3;
}

function CheckOKMacOSXBrowsers()
{
    return oBrowser.isSafari2 || oBrowser.isSafari3 || oBrowser.isFirefox1_5 || oBrowser.isFirefox2 || oBrowser.isFirefox3;
}