var UserStats = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "Unknown";
        this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
        this.OS = this.searchString(this.dataOS) || "Unknown";
        this.NET = this.searchString(this.dataNET10) || '.NET Not Installed';
        this.NET = this.searchString(this.dataNET11) || this.NET;
        this.NET = this.searchString(this.dataNET20) || this.NET;
        this.NET = this.searchString(this.dataNET30) || this.NET;
        this.NET = this.searchString(this.dataNET35) || this.NET;
    },
    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", versionSearch: "Version" },
		{ 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: "Internet 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.userAgent, subString: "Windows NT 5.1", identity: "Windows XP" },
		{ string: navigator.userAgent, subString: "Windows NT 5.2", identity: "Windows XP x64" },
		{ string: navigator.userAgent, subString: "Windows NT 6.0", identity: "Windows Vista" },
		{ string: navigator.userAgent, subString: "Windows NT 6.1", identity: "Windows 7" },
		{ string: navigator.platform, subString: "Mac", identity: "Mac" },
		{ string: navigator.userAgent, subString: "iPhone", identity: "iPhone/iPod" },
		{ string: navigator.platform, subString: "Linux", identity: "Linux" }
	],
    dataNET10: [{ string: navigator.userAgent, subString: ".NET CLR 1.0", identity: ".NET 1.0" }],
	dataNET11: [{ string: navigator.userAgent, subString: ".NET CLR 1.1", identity: ".NET 1.1" }],
	dataNET20: [{ string: navigator.userAgent, subString: ".NET CLR 2.0", identity: ".NET 2.0" }],
	dataNET30: [{ string: navigator.userAgent, subString: ".NET CLR 3.0", identity: ".NET 3.0" }],
	dataNET35: [{ string: navigator.userAgent, subString: ".NET CLR 3.5", identity: ".NET 3.5" }]
};
UserStats.init();
