Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (2.7 kB)

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

    
121
};
122
BrowserDetect.init();