Guest User

Untitled

a guest
Jan 6th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 KB | None | 0 0
  1. var client = function(){
  2.  
  3. //rendering engines
  4. var engine = {
  5. ie: 0,
  6. gecko: 0,
  7. webkit: 0,
  8. khtml: 0,
  9. opera: 0,
  10.  
  11. //complete version
  12. ver: null
  13. };
  14.  
  15. //browsers
  16. var browser = {
  17.  
  18. //browsers
  19. ie: 0,
  20. firefox: 0,
  21. safari: 0,
  22. konq: 0,
  23. opera: 0,
  24. chrome: 0,
  25.  
  26. //specific version
  27. ver: null
  28. };
  29.  
  30.  
  31. //platform/device/OS
  32. var system = {
  33. win: false,
  34. mac: false,
  35. x11: false,
  36.  
  37. //mobile devices
  38. iphone: false,
  39. ipod: false,
  40. ipad: false,
  41. ios: false,
  42. android: false,
  43. nokiaN: false,
  44. winMobile: false,
  45.  
  46. //game systems
  47. wii: false,
  48. ps: false
  49. };
  50.  
  51. //detect rendering engines/browsers
  52. var ua = navigator.userAgent;
  53. if (window.opera){
  54. engine.ver = browser.ver = window.opera.version();
  55. engine.opera = browser.opera = parseFloat(engine.ver);
  56. } else if (/AppleWebKit\/(\S+)/.test(ua)){
  57. engine.ver = RegExp["$1"];
  58. engine.webkit = parseFloat(engine.ver);
  59.  
  60. //figure out if it's Chrome or Safari
  61. if (/Chrome\/(\S+)/.test(ua)){
  62. browser.ver = RegExp["$1"];
  63. browser.chrome = parseFloat(browser.ver);
  64. } else if (/Version\/(\S+)/.test(ua)){
  65. browser.ver = RegExp["$1"];
  66. browser.safari = parseFloat(browser.ver);
  67. } else {
  68. //approximate version
  69. var safariVersion = 1;
  70. if (engine.webkit < 100){
  71. safariVersion = 1;
  72. } else if (engine.webkit < 312){
  73. safariVersion = 1.2;
  74. } else if (engine.webkit < 412){
  75. safariVersion = 1.3;
  76. } else {
  77. safariVersion = 2;
  78. }
  79.  
  80. browser.safari = browser.ver = safariVersion;
  81. }
  82. } else if (/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua)){
  83. engine.ver = browser.ver = RegExp["$1"];
  84. engine.khtml = browser.konq = parseFloat(engine.ver);
  85. } else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){
  86. engine.ver = RegExp["$1"];
  87. engine.gecko = parseFloat(engine.ver);
  88.  
  89. //determine if it's Firefox
  90. if (/Firefox\/(\S+)/.test(ua)){
  91. browser.ver = RegExp["$1"];
  92. browser.firefox = parseFloat(browser.ver);
  93. }
  94. } else if (/MSIE ([^;]+)/.test(ua)){
  95. engine.ver = browser.ver = RegExp["$1"];
  96. engine.ie = browser.ie = parseFloat(engine.ver);
  97. }
  98.  
  99. //detect browsers
  100. browser.ie = engine.ie;
  101. browser.opera = engine.opera;
  102.  
  103.  
  104. //detect platform
  105. var p = navigator.platform;
  106. system.win = p.indexOf("Win") == 0;
  107. system.mac = p.indexOf("Mac") == 0;
  108. system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
  109.  
  110. //detect windows operating systems
  111. if (system.win){
  112. if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)){
  113. if (RegExp["$1"] == "NT"){
  114. switch(RegExp["$2"]){
  115. case "5.0":
  116. system.win = "2000";
  117. break;
  118. case "5.1":
  119. system.win = "XP";
  120. break;
  121. case "6.0":
  122. system.win = "Vista";
  123. break;
  124. case "6.1":
  125. system.win = "7";
  126. break;
  127. default:
  128. system.win = "NT";
  129. break;
  130. }
  131. } else if (RegExp["$1"] == "9x"){
  132. system.win = "ME";
  133. } else {
  134. system.win = RegExp["$1"];
  135. }
  136. }
  137. }
  138.  
  139. //mobile devices
  140. system.iphone = ua.indexOf("iPhone") > -1;
  141. system.ipod = ua.indexOf("iPod") > -1;
  142. system.ipad = ua.indexOf("iPad") > -1;
  143. system.nokiaN = ua.indexOf("NokiaN") > -1;
  144.  
  145. //windows mobile
  146. if (system.win == "CE"){
  147. system.winMobile = system.win;
  148. } else if (system.win == "Ph"){
  149. if(/Windows Phone OS (\d+.\d+)/.test(ua)){;
  150. system.win = "Phone";
  151. system.winMobile = parseFloat(RegExp["$1"]);
  152. }
  153. }
  154.  
  155.  
  156. //determine iOS version
  157. if (system.mac && ua.indexOf("Mobile") > -1){
  158. if (/CPU (?:iPhone )?OS (\d+_\d+)/.test(ua)){
  159. system.ios = parseFloat(RegExp.$1.replace("_", "."));
  160. } else {
  161. system.ios = 2; //can't really detect - so guess
  162. }
  163. }
  164.  
  165. //determine Android version
  166. if (/Android (\d+\.\d+)/.test(ua)){
  167. system.android = parseFloat(RegExp.$1);
  168. }
  169.  
  170. //gaming systems
  171. system.wii = ua.indexOf("Wii") > -1;
  172. system.ps = /playstation/i.test(ua);
  173.  
  174. //return it
  175. return {
  176. engine: engine,
  177. browser: browser,
  178. system: system
  179. };
  180.  
  181. }();
Add Comment
Please, Sign In to add comment