1 var client = function () {
2
3 //browser engine
4 var engine = {
5 ie: 0,
6 gecko: 0,
7 webkit: 0,
8 khtml: 0,
9 opera: 0,
10 //full version
11 ver: null
12 };
13
14 //browser
15 var browser = {
16
17 //browser
18 ie: 0,
19 firefox: 0,
20 konq: 0,
21 opera: 0,
22 chrome: 0,
23 safari: 0,
24
25 //specific version
26 ver: null
27 };
28
29 //platform,device and OS
30 var system = {
31 win: false,
32 mac: false,
33 xl1: false,
34
35 //mobile device
36 iphone: false,
37 ipod: false,
38 nokiaN: false,
39 winMobile: false,
40 macMobile: false,
41
42 //game system
43 wii: false,
44 ps: false
45 };
46
47 //check browser and engine
48 var ua = navigator.userAgent;
49 if (window.opera) {
50 engine.ver = browser.ver = window.opera.version();
51 engine.opera = browser.opera = parseFloat(engine.ver);
52 } else if (/AppleWebKit\/(\S+)/.test(ua)) {
53 engine.ver = RegExp["$1"];
54 engine.webkit = parseFloat(engine.ver);
55
56 //check whether chrome or safari
57 if (/Chrome\/(\S+)/.test(ua)) {
58 browser.ver = RegExp["$1"];
59 browser.chrome = parseFloat(browser.ver);
60 } else if (/Version\/(\S+)/.test(ua)) {
61 browser.ver = RegExp["$1"];
62 browser.safari = parseFloat(browser.ver);
63 } else {
64 //check version
65 var safariVersion = 1;
66 if (engine.webkit < 100) {
67 safariVersion = 1;
68 } else if (engine.webkit < 312) {
69 safariVersion = 1.2;
70 } else if (engine.webkit < 412) {
71 safariVersion = 1.3;
72 } else {
73 safariVersion = 2;
74 }
75
76 browser.safari = browser.ver = safariVersion;
77 }
78 } else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)) {
79 engine.ver = browser.ver = RegExp["$1"];
80 engine.khtml = browser.konq = parseFloat(engine.ver);
81 } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)) {
82 engine.ver = RegExp["$1"];
83 engine.gecko = parseFloat(engine.ver);
84
85 //check if firefox or not
86 if (/Firefox\/(\S+)/.test(ua)) {
87 browser.ver = RegExp["$1"];
88 browser.firefox = parseFloat(browser.ver);
89 }
90 } else if (/MSIE ([^;]+)/.test(ua)) {
91 engine.ver = browser.ver = RegExp["$1"];
92 engine.ie = browser.ie = parseFloat(engine.ver);
93 }
94
95 //check browser
96 browser.ie = engine.ie;
97 browser.opera = engine.opera;
98
99 //check platform
100 var p = navigator.platform;
101 system.win = p.indexOf("Win") == 0;
102 system.mac = p.indexOf("Mac") == 0;
103 system.xl1 = (p == "Xl1") || (p.indexOf("Linux") == 0);
104
105 //check windows operate system
106 if (system.win) {
107 if (/Win(?:dows)?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {
108 if (RegExp["$1"] == "NT") {
109 switch (RegExp["$2"]) {
110 case "5.0":
111 system.win = "2000";
112 break;
113 case "5.1":
114 system.win = "XP";
115 break;
116 case "6.0":
117 system.win = "Vista";
118 break;
119 default:
120 system.win = "NT";
121 break;
122 }
123 } else if (RegExp["$1"] == "9x") {
124 system.win = "ME";
125 } else {
126 system.win = RegExp["$1"];
127 }
128 }
129 }
130
131 //mobile device
132 system.iphone = ua.indexOf("iphone") > -1;
133 system.ipod = ua.indexOf("ipod") > -1;
134 system.nokiaN = ua.indexOf("NokiaN") > -1;
135 system.winMobile = (system.win == "CE");
136 system.macMobile = (system.iphone || system.ipod);
137
138 //game system
139 system.wii = ua.indexOf("wii") > -1;
140 system.ps = /playstation/i.test(ua);
141
142 //return these object
143 return {
144 engine: engine,
145 browser: browser,
146 system:system
147 };
148 } ();