Statistics
| Branch: | Tag: | Revision:

root / ui / static / snf / js / lib / jquery.client.js @ 8d08f18a

History | View | Annotate | Download (2.7 kB)

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