Statistics
| Branch: | Tag: | Revision:

root / ui / static / jquery.client.js @ aff0be51

History | View | Annotate | Download (2.7 kB)

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