root / snf-cyclades-app / synnefo / ui / static / snf / js / lib / jquery.client.js @ 488209a5
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 | })(); |