﻿var BrowserDetect = { 

    init: function () { 

        this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; 

        this.version = this.searchVersion(navigator.userAgent) 

            || this.searchVersion(navigator.appVersion) 

            || "an unknown version"; 

        this.OS = this.searchString(this.dataOS) || "an unknown OS"; 

    }, 

    searchString: function (data) { 

        for (var i=0;i<data.length;i++)  { 

            var dataString = data[i].string; 

            var dataProp = data[i].prop; 

            this.versionSearchString = data[i].versionSearch || data[i].identity; 

            if (dataString) { 

                if (dataString.indexOf(data[i].subString) != -1) 

                    return data[i].identity; 

            } 

            else if (dataProp) 

                return data[i].identity; 

        } 

    }, 

    searchVersion: function (dataString) { 

        var index = dataString.indexOf(this.versionSearchString); 

        if (index == -1) return; 

        return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); 

    }, 

    dataBrowser: [ 

        { 

            string: navigator.userAgent, 

            subString: "Chrome", 

            identity: "Chrome" 

        }, 

        {   string: navigator.userAgent, 

            subString: "OmniWeb", 

            versionSearch: "OmniWeb/", 

            identity: "OmniWeb" 

        }, 

        { 

            string: navigator.vendor, 

            subString: "Apple", 

            identity: "Safari" 

        }, 

        { 

            prop: window.opera, 

            identity: "Opera" 

        }, 

        { 

            string: navigator.vendor, 

            subString: "iCab", 

            identity: "iCab" 

        }, 

        { 

            string: navigator.vendor, 

            subString: "KDE", 

            identity: "Konqueror" 

        }, 

        { 

            string: navigator.userAgent, 

            subString: "Firefox", 

            identity: "Firefox" 

        }, 

        { 

            string: navigator.vendor, 

            subString: "Camino", 

            identity: "Camino" 

        }, 

        {       // for newer Netscapes (6+) 

            string: navigator.userAgent, 

            subString: "Netscape", 

            identity: "Netscape" 

        }, 

        { 

            string: navigator.userAgent, 

            subString: "MSIE", 

            identity: "Explorer", 

            versionSearch: "MSIE" 

        }, 

        { 

            string: navigator.userAgent, 

            subString: "Gecko", 

            identity: "Mozilla", 

            versionSearch: "rv" 

        }, 

        {       // for older Netscapes (4-) 

            string: navigator.userAgent, 

            subString: "Mozilla", 

            identity: "Netscape", 

            versionSearch: "Mozilla" 

        } 

    ], 

    dataOS : [ 

        { 

            string: navigator.platform, 

            subString: "Win", 

            identity: "Windows" 

        }, 

        { 

            string: navigator.platform, 

            subString: "Mac", 

            identity: "Mac" 

        }, 

        { 

            string: navigator.platform, 

            subString: "Linux", 

            identity: "Linux" 

        } 

    ] 

 

}; 

BrowserDetect.init(); 


