Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / static / im / js / os.js @ d2a553dc

History | View | Annotate | Download (2.8 kB)

1 da7eb085 Olga Brani
//http://www.quirksmode.org/js/detect.html
2 0f4a8a68 Olga Brani
var BrowserDetect = {
3 0f4a8a68 Olga Brani
        init: function () {
4 0f4a8a68 Olga Brani
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
5 0f4a8a68 Olga Brani
                this.version = this.searchVersion(navigator.userAgent)
6 0f4a8a68 Olga Brani
                        || this.searchVersion(navigator.appVersion)
7 0f4a8a68 Olga Brani
                        || "an unknown version";
8 0f4a8a68 Olga Brani
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
9 0f4a8a68 Olga Brani
        },
10 0f4a8a68 Olga Brani
        searchString: function (data) {
11 0f4a8a68 Olga Brani
                for (var i=0;i<data.length;i++)        {
12 0f4a8a68 Olga Brani
                        var dataString = data[i].string;
13 0f4a8a68 Olga Brani
                        var dataProp = data[i].prop;
14 0f4a8a68 Olga Brani
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
15 0f4a8a68 Olga Brani
                        if (dataString) {
16 0f4a8a68 Olga Brani
                                if (dataString.indexOf(data[i].subString) != -1)
17 0f4a8a68 Olga Brani
                                        return data[i].identity;
18 0f4a8a68 Olga Brani
                        }
19 0f4a8a68 Olga Brani
                        else if (dataProp)
20 0f4a8a68 Olga Brani
                                return data[i].identity;
21 0f4a8a68 Olga Brani
                }
22 0f4a8a68 Olga Brani
        },
23 0f4a8a68 Olga Brani
        searchVersion: function (dataString) {
24 0f4a8a68 Olga Brani
                var index = dataString.indexOf(this.versionSearchString);
25 0f4a8a68 Olga Brani
                if (index == -1) return;
26 0f4a8a68 Olga Brani
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
27 0f4a8a68 Olga Brani
        },
28 0f4a8a68 Olga Brani
        dataBrowser: [
29 0f4a8a68 Olga Brani
                {
30 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
31 0f4a8a68 Olga Brani
                        subString: "Chrome",
32 0f4a8a68 Olga Brani
                        identity: "Chrome"
33 0f4a8a68 Olga Brani
                },
34 0f4a8a68 Olga Brani
                {         string: navigator.userAgent,
35 0f4a8a68 Olga Brani
                        subString: "OmniWeb",
36 0f4a8a68 Olga Brani
                        versionSearch: "OmniWeb/",
37 0f4a8a68 Olga Brani
                        identity: "OmniWeb"
38 0f4a8a68 Olga Brani
                },
39 0f4a8a68 Olga Brani
                {
40 0f4a8a68 Olga Brani
                        string: navigator.vendor,
41 0f4a8a68 Olga Brani
                        subString: "Apple",
42 0f4a8a68 Olga Brani
                        identity: "Safari",
43 0f4a8a68 Olga Brani
                        versionSearch: "Version"
44 0f4a8a68 Olga Brani
                },
45 0f4a8a68 Olga Brani
                {
46 0f4a8a68 Olga Brani
                        prop: window.opera,
47 0f4a8a68 Olga Brani
                        identity: "Opera",
48 0f4a8a68 Olga Brani
                        versionSearch: "Version"
49 0f4a8a68 Olga Brani
                },
50 0f4a8a68 Olga Brani
                {
51 0f4a8a68 Olga Brani
                        string: navigator.vendor,
52 0f4a8a68 Olga Brani
                        subString: "iCab",
53 0f4a8a68 Olga Brani
                        identity: "iCab"
54 0f4a8a68 Olga Brani
                },
55 0f4a8a68 Olga Brani
                {
56 0f4a8a68 Olga Brani
                        string: navigator.vendor,
57 0f4a8a68 Olga Brani
                        subString: "KDE",
58 0f4a8a68 Olga Brani
                        identity: "Konqueror"
59 0f4a8a68 Olga Brani
                },
60 0f4a8a68 Olga Brani
                {
61 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
62 0f4a8a68 Olga Brani
                        subString: "Firefox",
63 0f4a8a68 Olga Brani
                        identity: "Firefox"
64 0f4a8a68 Olga Brani
                },
65 0f4a8a68 Olga Brani
                {
66 0f4a8a68 Olga Brani
                        string: navigator.vendor,
67 0f4a8a68 Olga Brani
                        subString: "Camino",
68 0f4a8a68 Olga Brani
                        identity: "Camino"
69 0f4a8a68 Olga Brani
                },
70 0f4a8a68 Olga Brani
                {                // for newer Netscapes (6+)
71 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
72 0f4a8a68 Olga Brani
                        subString: "Netscape",
73 0f4a8a68 Olga Brani
                        identity: "Netscape"
74 0f4a8a68 Olga Brani
                },
75 0f4a8a68 Olga Brani
                {
76 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
77 0f4a8a68 Olga Brani
                        subString: "MSIE",
78 0f4a8a68 Olga Brani
                        identity: "Explorer",
79 0f4a8a68 Olga Brani
                        versionSearch: "MSIE"
80 0f4a8a68 Olga Brani
                },
81 0f4a8a68 Olga Brani
                {
82 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
83 0f4a8a68 Olga Brani
                        subString: "Gecko",
84 0f4a8a68 Olga Brani
                        identity: "Mozilla",
85 0f4a8a68 Olga Brani
                        versionSearch: "rv"
86 0f4a8a68 Olga Brani
                },
87 0f4a8a68 Olga Brani
                {                 // for older Netscapes (4-)
88 0f4a8a68 Olga Brani
                        string: navigator.userAgent,
89 0f4a8a68 Olga Brani
                        subString: "Mozilla",
90 0f4a8a68 Olga Brani
                        identity: "Netscape",
91 0f4a8a68 Olga Brani
                        versionSearch: "Mozilla"
92 0f4a8a68 Olga Brani
                }
93 0f4a8a68 Olga Brani
        ],
94 0f4a8a68 Olga Brani
        dataOS : [
95 0f4a8a68 Olga Brani
                {
96 0f4a8a68 Olga Brani
                        string: navigator.platform,
97 0f4a8a68 Olga Brani
                        subString: "Win",
98 0c887794 Olga Brani
                        identity: "windows"
99 0f4a8a68 Olga Brani
                },
100 da7eb085 Olga Brani
101 da7eb085 Olga Brani
                {
102 da7eb085 Olga Brani
                        string: navigator.userAgent.toLowerCase(),
103 da7eb085 Olga Brani
                        subString: "android",
104 da7eb085 Olga Brani
                        identity: "Android"
105 da7eb085 Olga Brani
                },
106 0f4a8a68 Olga Brani
                {
107 0f4a8a68 Olga Brani
                        string: navigator.platform,
108 0f4a8a68 Olga Brani
                        subString: "Mac",
109 0c887794 Olga Brani
                        identity: "MacOS"
110 0f4a8a68 Olga Brani
                },
111 0f4a8a68 Olga Brani
                {
112 0c887794 Olga Brani
                   string: navigator.userAgent,
113 0c887794 Olga Brani
                   subString: "iPhone",
114 0c887794 Olga Brani
                   identity: "iPhone"
115 0c887794 Olga Brani
            },
116 0c887794 Olga Brani
            {
117 0c887794 Olga Brani
                   string: navigator.userAgent,
118 0c887794 Olga Brani
                   subString: "iPad",
119 0c887794 Olga Brani
                   identity: "iPad"
120 0f4a8a68 Olga Brani
            },
121 0f4a8a68 Olga Brani
                {
122 0f4a8a68 Olga Brani
                        string: navigator.platform,
123 0f4a8a68 Olga Brani
                        subString: "Linux",
124 0c887794 Olga Brani
                        identity: "linux"
125 0f4a8a68 Olga Brani
                }
126 0f4a8a68 Olga Brani
        ]
127 0f4a8a68 Olga Brani
128 0f4a8a68 Olga Brani
};
129 0f4a8a68 Olga Brani
BrowserDetect.init();