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