Created
April 18, 2018 13:44
-
-
Save dharb/b4fc6e1e803b364ebdaf8873b754f515 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(f) { | |
var d, e, p = function() { | |
d = (new (window.UAParser || exports.UAParser)).getResult(); | |
e = new Detector; | |
return this | |
}; | |
p.prototype = { | |
getSoftwareVersion: function() { | |
return "0.1.11" | |
}, | |
getBrowserData: function() { | |
return d | |
}, | |
getFingerprint: function() { | |
var b = d.ua | |
, c = this.getScreenPrint() | |
, a = this.getPlugins() | |
, g = this.getFonts() | |
, n = this.isLocalStorage() | |
, f = this.isSessionStorage() | |
, h = this.getTimeZone() | |
, u = this.getLanguage() | |
, m = this.getSystemLanguage() | |
, e = this.isCookie() | |
, C = this.getCanvasPrint(); | |
return murmurhash3_32_gc(b + "|" + c + "|" + a + "|" + g + "|" + n + "|" + f + "|" + h + "|" + u + "|" + m + "|" + e + "|" + C, 256) | |
}, | |
getCustomFingerprint: function() { | |
for (var b = "", c = 0; c < arguments.length; c++) | |
b += arguments[c] + "|"; | |
return murmurhash3_32_gc(b, 256) | |
}, | |
getUserAgent: function() { | |
return d.ua | |
}, | |
getUserAgentLowerCase: function() { | |
return d.ua.toLowerCase() | |
}, | |
getBrowser: function() { | |
return d.browser.name | |
}, | |
getBrowserVersion: function() { | |
return d.browser.version | |
}, | |
getBrowserMajorVersion: function() { | |
return d.browser.major | |
}, | |
isIE: function() { | |
return /IE/i.test(d.browser.name) | |
}, | |
isChrome: function() { | |
return /Chrome/i.test(d.browser.name) | |
}, | |
isFirefox: function() { | |
return /Firefox/i.test(d.browser.name) | |
}, | |
isSafari: function() { | |
return /Safari/i.test(d.browser.name) | |
}, | |
isMobileSafari: function() { | |
return /Mobile\sSafari/i.test(d.browser.name) | |
}, | |
isOpera: function() { | |
return /Opera/i.test(d.browser.name) | |
}, | |
getEngine: function() { | |
return d.engine.name | |
}, | |
getEngineVersion: function() { | |
return d.engine.version | |
}, | |
getOS: function() { | |
return d.os.name | |
}, | |
getOSVersion: function() { | |
return d.os.version | |
}, | |
isWindows: function() { | |
return /Windows/i.test(d.os.name) | |
}, | |
isMac: function() { | |
return /Mac/i.test(d.os.name) | |
}, | |
isLinux: function() { | |
return /Linux/i.test(d.os.name) | |
}, | |
isUbuntu: function() { | |
return /Ubuntu/i.test(d.os.name) | |
}, | |
isSolaris: function() { | |
return /Solaris/i.test(d.os.name) | |
}, | |
getDevice: function() { | |
return d.device.model | |
}, | |
getDeviceType: function() { | |
return d.device.type | |
}, | |
getDeviceVendor: function() { | |
return d.device.vendor | |
}, | |
getCPU: function() { | |
return d.cpu.architecture | |
}, | |
isMobile: function() { | |
var b = d.ua || navigator.vendor || window.opera; | |
return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(b) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(b.substr(0, 4)) | |
}, | |
isMobileMajor: function() { | |
return this.isMobileAndroid() || this.isMobileBlackBerry() || this.isMobileIOS() || this.isMobileOpera() || this.isMobileWindows() | |
}, | |
isMobileAndroid: function() { | |
return d.ua.match(/Android/i) ? !0 : !1 | |
}, | |
isMobileOpera: function() { | |
return d.ua.match(/Opera Mini/i) ? !0 : !1 | |
}, | |
isMobileWindows: function() { | |
return d.ua.match(/IEMobile/i) ? !0 : !1 | |
}, | |
isMobileBlackBerry: function() { | |
return d.ua.match(/BlackBerry/i) ? !0 : !1 | |
}, | |
isMobileIOS: function() { | |
return d.ua.match(/iPhone|iPad|iPod/i) ? !0 : !1 | |
}, | |
isIphone: function() { | |
return d.ua.match(/iPhone/i) ? !0 : !1 | |
}, | |
isIpad: function() { | |
return d.ua.match(/iPad/i) ? !0 : !1 | |
}, | |
isIpod: function() { | |
return d.ua.match(/iPod/i) ? !0 : !1 | |
}, | |
getScreenPrint: function() { | |
return "Current Resolution: " + this.getCurrentResolution() + ", Available Resolution: " + this.getAvailableResolution() + ", Color Depth: " + this.getColorDepth() + ", Device XDPI: " + this.getDeviceXDPI() + ", Device YDPI: " + this.getDeviceYDPI() | |
}, | |
getColorDepth: function() { | |
return screen.colorDepth | |
}, | |
getCurrentResolution: function() { | |
return screen.width + "x" + screen.height | |
}, | |
getAvailableResolution: function() { | |
return screen.availWidth + "x" + screen.availHeight | |
}, | |
getDeviceXDPI: function() { | |
return screen.deviceXDPI | |
}, | |
getDeviceYDPI: function() { | |
return screen.deviceYDPI | |
}, | |
getPlugins: function() { | |
for (var b = "", c = 0; c < navigator.plugins.length; c++) | |
b = c == navigator.plugins.length - 1 ? b + navigator.plugins[c].name : b + (navigator.plugins[c].name + ", "); | |
return b | |
}, | |
isJava: function() { | |
return navigator.javaEnabled() | |
}, | |
getJavaVersion: function() { | |
return deployJava.getJREs().toString() | |
}, | |
isFlash: function() { | |
return navigator.plugins["Shockwave Flash"] ? !0 : !1 | |
}, | |
getFlashVersion: function() { | |
return this.isFlash() ? (objPlayerVersion = swfobject.getFlashPlayerVersion(), | |
objPlayerVersion.major + "." + objPlayerVersion.minor + "." + objPlayerVersion.release) : "" | |
}, | |
isSilverlight: function() { | |
return navigator.plugins["Silverlight Plug-In"] ? !0 : !1 | |
}, | |
getSilverlightVersion: function() { | |
return this.isSilverlight() ? navigator.plugins["Silverlight Plug-In"].description : "" | |
}, | |
isMimeTypes: function() { | |
return navigator.mimeTypes.length ? !0 : !1 | |
}, | |
getMimeTypes: function() { | |
for (var b = "", c = 0; c < navigator.mimeTypes.length; c++) | |
b = c == navigator.mimeTypes.length - 1 ? b + navigator.mimeTypes[c].description : b + (navigator.mimeTypes[c].description + ", "); | |
return b | |
}, | |
isFont: function(b) { | |
return e.detect(b) | |
}, | |
getFonts: function() { | |
for (var b = "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Aharoni;Andalus;Angsana New;AngsanaUPC;Aparajita;Arab;Arabic Transparent;Arabic Typesetting;Arial Baltic;Arial Black;Arial CE;Arial CYR;Arial Greek;Arial TUR;Arial;Batang;BatangChe;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Browallia New;BrowalliaUPC;Calibri Light;Calibri;Californian FB;Cambria Math;Cambria;Candara;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Comic Sans MS;Consolas;Constantia;Copperplate Gothic Light;Corbel;Cordia New;CordiaUPC;Courier New Baltic;Courier New CE;Courier New CYR;Courier New Greek;Courier New TUR;Courier New;DFKai-SB;DaunPenh;David;DejaVu LGC Sans Mono;Desdemona;DilleniaUPC;DokChampa;Dotum;DotumChe;Ebrima;Engravers MT;Eras Bold ITC;Estrangelo Edessa;EucrosiaUPC;Euphemia;Eurostile;FangSong;Forte;FrankRuehl;Franklin Gothic Heavy;Franklin Gothic Medium;FreesiaUPC;French Script MT;Gabriola;Gautami;Georgia;Gigi;Gisha;Goudy Old Style;Gulim;GulimChe;GungSeo;Gungsuh;GungsuhChe;Haettenschweiler;Harrington;Hei S;HeiT;Heisei Kaku Gothic;Hiragino Sans GB;Impact;Informal Roman;IrisUPC;Iskoola Pota;JasmineUPC;KacstOne;KaiTi;Kalinga;Kartika;Khmer UI;Kino MT;KodchiangUPC;Kokila;Kozuka Gothic Pr6N;Lao UI;Latha;Leelawadee;Levenim MT;LilyUPC;Lohit Gujarati;Loma;Lucida Bright;Lucida Console;Lucida Fax;Lucida Sans Unicode;MS Gothic;MS Mincho;MS PGothic;MS PMincho;MS Reference Sans Serif;MS UI Gothic;MV Boli;Magneto;Malgun Gothic;Mangal;Marlett;Matura MT Script Capitals;Meiryo UI;Meiryo;Menlo;Microsoft Himalaya;Microsoft JhengHei;Microsoft New Tai Lue;Microsoft PhagsPa;Microsoft Sans Serif;Microsoft Tai Le;Microsoft Uighur;Microsoft YaHei;Microsoft Yi Baiti;MingLiU;MingLiU-ExtB;MingLiU_HKSCS;MingLiU_HKSCS-ExtB;Miriam Fixed;Miriam;Mongolian Baiti;MoolBoran;NSimSun;Narkisim;News Gothic MT;Niagara Solid;Nyala;PMingLiU;PMingLiU-ExtB;Palace Script MT;Palatino Linotype;Papyrus;Perpetua;Plantagenet Cherokee;Playbill;Prelude Bold;Prelude Condensed Bold;Prelude Condensed Medium;Prelude Medium;PreludeCompressedWGL Black;PreludeCompressedWGL Bold;PreludeCompressedWGL Light;PreludeCompressedWGL Medium;PreludeCondensedWGL Black;PreludeCondensedWGL Bold;PreludeCondensedWGL Light;PreludeCondensedWGL Medium;PreludeWGL Black;PreludeWGL Bold;PreludeWGL Light;PreludeWGL Medium;Raavi;Rachana;Rockwell;Rod;Sakkal Majalla;Sawasdee;Script MT Bold;Segoe Print;Segoe Script;Segoe UI Light;Segoe UI Semibold;Segoe UI Symbol;Segoe UI;Shonar Bangla;Showcard Gothic;Shruti;SimHei;SimSun;SimSun-ExtB;Simplified Arabic Fixed;Simplified Arabic;Snap ITC;Sylfaen;Symbol;Tahoma;Times New Roman Baltic;Times New Roman CE;Times New Roman CYR;Times New Roman Greek;Times New Roman TUR;Times New Roman;TlwgMono;Traditional Arabic;Trebuchet MS;Tunga;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Utsaah;Vani;Verdana;Vijaya;Vladimir Script;Vrinda;Webdings;Wide Latin;Wingdings".split(";"), c = "", a = 0; a < b.length; a++) | |
e.detect(b[a]) && (c = a == b.length - 1 ? c + b[a] : c + (b[a] + ", ")); | |
return c | |
}, | |
isLocalStorage: function() { | |
try { | |
return !!f.localStorage | |
} catch (b) { | |
return !0 | |
} | |
}, | |
isSessionStorage: function() { | |
try { | |
return !!f.sessionStorage | |
} catch (b) { | |
return !0 | |
} | |
}, | |
isCookie: function() { | |
return navigator.cookieEnabled | |
}, | |
getTimeZone: function() { | |
return String(String(new Date).split("(")[1]).split(")")[0] | |
}, | |
getLanguage: function() { | |
return navigator.language | |
}, | |
getSystemLanguage: function() { | |
return navigator.systemLanguage | |
}, | |
isCanvas: function() { | |
var b = document.createElement("canvas"); | |
try { | |
return !(!b.getContext || !b.getContext("2d")) | |
} catch (c) { | |
return !1 | |
} | |
}, | |
getCanvasPrint: function() { | |
var b = document.createElement("canvas"), c; | |
try { | |
c = b.getContext("2d") | |
} catch (a) { | |
return "" | |
} | |
c.textBaseline = "top"; | |
c.font = "14px 'Arial'"; | |
c.textBaseline = "alphabetic"; | |
c.fillStyle = "#f60"; | |
c.fillRect(125, 1, 62, 20); | |
c.fillStyle = "#069"; | |
c.fillText("ClientJS,org <canvas> 1.0", 2, 15); | |
c.fillStyle = "rgba(102, 204, 0, 0.7)"; | |
c.fillText("ClientJS,org <canvas> 1.0", 4, 17); | |
return b.toDataURL() | |
} | |
}; | |
"object" === typeof module && "undefined" !== typeof exports && (module.exports = p); | |
f.ClientJS = p | |
} | |
)(window); | |
var deployJava = function() { | |
function f(a) { | |
c.debug && (console.log ? console.log(a) : alert(a)) | |
} | |
function d(a) { | |
if (null == a || 0 == a.length) | |
return "http://java.com/dt-redirect"; | |
"&" == a.charAt(0) && (a = a.substring(1, a.length)); | |
return "http://java.com/dt-redirect?" + a | |
} | |
var e = ["id", "class", "title", "style"]; | |
"classid codebase codetype data type archive declare standby height width usemap name tabindex align border hspace vspace".split(" ").concat(e, ["lang", "dir"], "onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup".split(" ")); | |
var p = "codebase code name archive object width height alt align hspace vspace".split(" ").concat(e), b; | |
try { | |
b = -1 != document.location.protocol.indexOf("http") ? "//java.com/js/webstart.png" : "http://java.com/js/webstart.png" | |
} catch (a) { | |
b = "http://java.com/js/webstart.png" | |
} | |
var c = { | |
debug: null, | |
version: "20120801", | |
firefoxJavaVersion: null, | |
myInterval: null, | |
preInstallJREList: null, | |
returnPage: null, | |
brand: null, | |
locale: null, | |
installType: null, | |
EAInstallEnabled: !1, | |
EarlyAccessURL: null, | |
oldMimeType: "application/npruntime-scriptable-plugin;DeploymentToolkit", | |
mimeType: "application/java-deployment-toolkit", | |
launchButtonPNG: b, | |
browserName: null, | |
browserName2: null, | |
getJREs: function() { | |
var a = []; | |
if (this.isPluginInstalled()) | |
for (var g = this.getPlugin().jvms, b = 0; b < g.getLength(); b++) | |
a[b] = g.get(b).version; | |
else | |
g = this.getBrowser(), | |
"MSIE" == g ? this.testUsingActiveX("1.7.0") ? a[0] = "1.7.0" : this.testUsingActiveX("1.6.0") ? a[0] = "1.6.0" : this.testUsingActiveX("1.5.0") ? a[0] = "1.5.0" : this.testUsingActiveX("1.4.2") ? a[0] = "1.4.2" : this.testForMSVM() && (a[0] = "1.1") : "Netscape Family" == g && (this.getJPIVersionUsingMimeType(), | |
null != this.firefoxJavaVersion ? a[0] = this.firefoxJavaVersion : this.testUsingMimeTypes("1.7") ? a[0] = "1.7.0" : this.testUsingMimeTypes("1.6") ? a[0] = "1.6.0" : this.testUsingMimeTypes("1.5") ? a[0] = "1.5.0" : this.testUsingMimeTypes("1.4.2") ? a[0] = "1.4.2" : "Safari" == this.browserName2 && (this.testUsingPluginsArray("1.7.0") ? a[0] = "1.7.0" : this.testUsingPluginsArray("1.6") ? a[0] = "1.6.0" : this.testUsingPluginsArray("1.5") ? a[0] = "1.5.0" : this.testUsingPluginsArray("1.4.2") && (a[0] = "1.4.2"))); | |
if (this.debug) | |
for (b = 0; b < a.length; ++b) | |
f("[getJREs()] We claim to have detected Java SE " + a[b]); | |
return a | |
}, | |
installJRE: function(a, g) { | |
if (this.isPluginInstalled() && this.isAutoInstallEnabled(a)) { | |
var b = !1; | |
if (b = this.isCallbackSupported() ? this.getPlugin().installJRE(a, g) : this.getPlugin().installJRE(a)) | |
this.refresh(), | |
null != this.returnPage && (document.location = this.returnPage); | |
return b | |
} | |
return this.installLatestJRE() | |
}, | |
isAutoInstallEnabled: function(a) { | |
if (!this.isPluginInstalled()) | |
return !1; | |
"undefined" == typeof a && (a = null); | |
if ("MSIE" != deployJava.browserName || deployJava.compareVersionToPattern(deployJava.getPlugin().version, ["10", "0", "0"], !1, !0)) | |
a = !0; | |
else if (null == a) | |
a = !1; | |
else { | |
var g = "1.6.0_33+"; | |
if (null == g || 0 == g.length) | |
a = !0; | |
else { | |
var b = g.charAt(g.length - 1); | |
"+" != b && "*" != b && -1 != g.indexOf("_") && "_" != b && (g += "*", | |
b = "*"); | |
g = g.substring(0, g.length - 1); | |
if (0 < g.length) { | |
var c = g.charAt(g.length - 1); | |
if ("." == c || "_" == c) | |
g = g.substring(0, g.length - 1) | |
} | |
a = "*" == b ? 0 == a.indexOf(g) : "+" == b ? g <= a : !1 | |
} | |
a = !a | |
} | |
return a | |
}, | |
isCallbackSupported: function() { | |
return this.isPluginInstalled() && this.compareVersionToPattern(this.getPlugin().version, ["10", "2", "0"], !1, !0) | |
}, | |
installLatestJRE: function(a) { | |
if (this.isPluginInstalled() && this.isAutoInstallEnabled()) { | |
var g = !1; | |
if (g = this.isCallbackSupported() ? this.getPlugin().installLatestJRE(a) : this.getPlugin().installLatestJRE()) | |
this.refresh(), | |
null != this.returnPage && (document.location = this.returnPage); | |
return g | |
} | |
a = this.getBrowser(); | |
g = navigator.platform.toLowerCase(); | |
if ("true" == this.EAInstallEnabled && -1 != g.indexOf("win") && null != this.EarlyAccessURL) | |
this.preInstallJREList = this.getJREs(), | |
null != this.returnPage && (this.myInterval = setInterval("deployJava.poll()", 3E3)), | |
location.href = this.EarlyAccessURL; | |
else { | |
if ("MSIE" == a) | |
return this.IEInstall(); | |
if ("Netscape Family" == a && -1 != g.indexOf("win32")) | |
return this.FFInstall(); | |
location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "")) | |
} | |
return !1 | |
}, | |
runApplet: function(a, g, b) { | |
if ("undefined" == b || null == b) | |
b = "1.1"; | |
var c = b.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"); | |
null == this.returnPage && (this.returnPage = document.location); | |
null != c ? "?" != this.getBrowser() ? this.versionCheck(b + "+") ? this.writeAppletTag(a, g) : this.installJRE(b + "+") && (this.refresh(), | |
location.href = document.location, | |
this.writeAppletTag(a, g)) : this.writeAppletTag(a, g) : f("[runApplet()] Invalid minimumVersion argument to runApplet():" + b) | |
}, | |
writeAppletTag: function(a, g) { | |
var b = "<applet " | |
, c = "" | |
, h = !0; | |
if (null == g || "object" != typeof g) | |
g = {}; | |
for (var d in a) { | |
var m; | |
a: { | |
m = d.toLowerCase(); | |
for (var f = p.length, e = 0; e < f; e++) | |
if (p[e] === m) { | |
m = !0; | |
break a | |
} | |
m = !1 | |
} | |
m ? (b += " " + d + '="' + a[d] + '"', | |
"code" == d && (h = !1)) : g[d] = a[d] | |
} | |
d = !1; | |
for (var q in g) { | |
"codebase_lookup" == q && (d = !0); | |
if ("object" == q || "java_object" == q || "java_code" == q) | |
h = !1; | |
c += '<param name="' + q + '" value="' + g[q] + '"/>' | |
} | |
d || (c += '<param name="codebase_lookup" value="false"/>'); | |
h && (b += ' code="dummy"'); | |
document.write(b + ">\n" + c + "\n</applet>") | |
}, | |
versionCheck: function(a) { | |
var g = 0 | |
, b = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$"); | |
if (null != b) { | |
for (var c = a = !1, h = [], d = 1; d < b.length; ++d) | |
"string" == typeof b[d] && "" != b[d] && (h[g] = b[d], | |
g++); | |
"+" == h[h.length - 1] ? (c = !0, | |
a = !1, | |
h.length--) : "*" == h[h.length - 1] ? (c = !1, | |
a = !0, | |
h.length--) : 4 > h.length && (c = !1, | |
a = !0); | |
g = this.getJREs(); | |
for (d = 0; d < g.length; ++d) | |
if (this.compareVersionToPattern(g[d], h, a, c)) | |
return !0 | |
} else | |
g = "Invalid versionPattern passed to versionCheck: " + a, | |
f("[versionCheck()] " + g), | |
alert(g); | |
return !1 | |
}, | |
isWebStartInstalled: function(a) { | |
if ("?" == this.getBrowser()) | |
return !0; | |
if ("undefined" == a || null == a) | |
a = "1.4.2"; | |
var b = !1; | |
null != a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$") ? b = this.versionCheck(a + "+") : (f("[isWebStartInstaller()] Invalid minimumVersion argument to isWebStartInstalled(): " + a), | |
b = this.versionCheck("1.4.2+")); | |
return b | |
}, | |
getJPIVersionUsingMimeType: function() { | |
for (var a = 0; a < navigator.mimeTypes.length; ++a) { | |
var b = navigator.mimeTypes[a].type.match(/^application\/x-java-applet;jpi-version=(.*)$/); | |
if (null != b && (this.firefoxJavaVersion = b[1], | |
"Opera" != this.browserName2)) | |
break | |
} | |
}, | |
launchWebStartApplication: function(a) { | |
navigator.userAgent.toLowerCase(); | |
this.getJPIVersionUsingMimeType(); | |
if (0 == this.isWebStartInstalled("1.7.0") && (0 == this.installJRE("1.7.0+") || 0 == this.isWebStartInstalled("1.7.0"))) | |
return !1; | |
var b = null; | |
document.documentURI && (b = document.documentURI); | |
null == b && (b = document.URL); | |
var c = this.getBrowser(), d; | |
"MSIE" == c ? d = '<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="0" height="0"><PARAM name="launchjnlp" value="' + a + '"><PARAM name="docbase" value="' + b + '"></object>' : "Netscape Family" == c && (d = '<embed type="application/x-java-applet;jpi-version=' + this.firefoxJavaVersion + '" width="0" height="0" launchjnlp="' + a + '"docbase="' + b + '" />'); | |
"undefined" == document.body || null == document.body ? (document.write(d), | |
document.location = b) : (a = document.createElement("div"), | |
a.id = "div1", | |
a.style.position = "relative", | |
a.style.left = "-10000px", | |
a.style.margin = "0px auto", | |
a.className = "dynamicDiv", | |
a.innerHTML = d, | |
document.body.appendChild(a)) | |
}, | |
createWebStartLaunchButtonEx: function(a, b) { | |
null == this.returnPage && (this.returnPage = a); | |
document.write('<a href="' + ("javascript:deployJava.launchWebStartApplication('" + a + "');") + '" onMouseOver="window.status=\'\'; return true;"><img src="' + this.launchButtonPNG + '" border="0" /></a>') | |
}, | |
createWebStartLaunchButton: function(a, b) { | |
null == this.returnPage && (this.returnPage = a); | |
document.write('<a href="' + ("javascript:if (!deployJava.isWebStartInstalled("" + b + "")) {if (deployJava.installLatestJRE()) {if (deployJava.launch("" + a + "")) {}}} else {if (deployJava.launch("" + a + "")) {}}") + '" onMouseOver="window.status=\'\'; return true;"><img src="' + this.launchButtonPNG + '" border="0" /></a>') | |
}, | |
launch: function(a) { | |
document.location = a; | |
return !0 | |
}, | |
isPluginInstalled: function() { | |
var a = this.getPlugin(); | |
return a && a.jvms ? !0 : !1 | |
}, | |
isAutoUpdateEnabled: function() { | |
return this.isPluginInstalled() ? this.getPlugin().isAutoUpdateEnabled() : !1 | |
}, | |
setAutoUpdateEnabled: function() { | |
return this.isPluginInstalled() ? this.getPlugin().setAutoUpdateEnabled() : !1 | |
}, | |
setInstallerType: function(a) { | |
this.installType = a; | |
return this.isPluginInstalled() ? this.getPlugin().setInstallerType(a) : !1 | |
}, | |
setAdditionalPackages: function(a) { | |
return this.isPluginInstalled() ? this.getPlugin().setAdditionalPackages(a) : !1 | |
}, | |
setEarlyAccess: function(a) { | |
this.EAInstallEnabled = a | |
}, | |
isPlugin2: function() { | |
if (this.isPluginInstalled() && this.versionCheck("1.6.0_10+")) | |
try { | |
return this.getPlugin().isPlugin2() | |
} catch (a) {} | |
return !1 | |
}, | |
allowPlugin: function() { | |
this.getBrowser(); | |
return "Safari" != this.browserName2 && "Opera" != this.browserName2 | |
}, | |
getPlugin: function() { | |
this.refresh(); | |
var a = null; | |
this.allowPlugin() && (a = document.getElementById("deployJavaPlugin")); | |
return a | |
}, | |
compareVersionToPattern: function(a, b, c, d) { | |
if (void 0 == a || void 0 == b) | |
return !1; | |
var h = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"); | |
if (null != h) { | |
var f = 0; | |
a = []; | |
for (var m = 1; m < h.length; ++m) | |
"string" == typeof h[m] && "" != h[m] && (a[f] = h[m], | |
f++); | |
h = Math.min(a.length, b.length); | |
if (d) { | |
for (m = 0; m < h; ++m) { | |
if (a[m] < b[m]) | |
return !1; | |
if (a[m] > b[m]) | |
break | |
} | |
return !0 | |
} | |
for (m = 0; m < h; ++m) | |
if (a[m] != b[m]) | |
return !1; | |
return c ? !0 : a.length == b.length | |
} | |
return !1 | |
}, | |
getBrowser: function() { | |
if (null == this.browserName) { | |
var a = navigator.userAgent.toLowerCase(); | |
f("[getBrowser()] navigator.userAgent.toLowerCase() -> " + a); | |
-1 != a.indexOf("msie") && -1 == a.indexOf("opera") ? this.browserName2 = this.browserName = "MSIE" : -1 != a.indexOf("iphone") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "iPhone") : -1 != a.indexOf("firefox") && -1 == a.indexOf("opera") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "Firefox") : -1 != a.indexOf("chrome") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "Chrome") : -1 != a.indexOf("safari") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "Safari") : -1 != a.indexOf("mozilla") && -1 == a.indexOf("opera") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "Other") : -1 != a.indexOf("opera") ? (this.browserName = "Netscape Family", | |
this.browserName2 = "Opera") : (this.browserName = "?", | |
this.browserName2 = "unknown"); | |
f("[getBrowser()] Detected browser name:" + this.browserName + ", " + this.browserName2) | |
} | |
return this.browserName | |
}, | |
testUsingActiveX: function(a) { | |
a = "JavaWebStart.isInstalled." + a + ".0"; | |
if ("undefined" == typeof ActiveXObject || !ActiveXObject) | |
return f("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?"), | |
!1; | |
try { | |
return null != new ActiveXObject(a) | |
} catch (b) { | |
return !1 | |
} | |
}, | |
testForMSVM: function() { | |
if ("undefined" != typeof oClientCaps) { | |
var a = oClientCaps.getComponentVersion("{08B0E5C0-4FCB-11CF-AAA5-00401C608500}", "ComponentID"); | |
return "" == a || "5,0,5000,0" == a ? !1 : !0 | |
} | |
return !1 | |
}, | |
testUsingMimeTypes: function(a) { | |
if (!navigator.mimeTypes) | |
return f("[testUsingMimeTypes()] Browser claims to be Netscape family, but no mimeTypes[] array?"), | |
!1; | |
for (var b = 0; b < navigator.mimeTypes.length; ++b) { | |
s = navigator.mimeTypes[b].type; | |
var c = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/); | |
if (null != c && this.compareVersions(c[1], a)) | |
return !0 | |
} | |
return !1 | |
}, | |
testUsingPluginsArray: function(a) { | |
if (!navigator.plugins || !navigator.plugins.length) | |
return !1; | |
for (var b = navigator.platform.toLowerCase(), c = 0; c < navigator.plugins.length; ++c) | |
if (s = navigator.plugins[c].description, | |
-1 != s.search(/^Java Switchable Plug-in (Cocoa)/)) { | |
if (this.compareVersions("1.5.0", a)) | |
return !0 | |
} else if (-1 != s.search(/^Java/) && -1 != b.indexOf("win") && (this.compareVersions("1.5.0", a) || this.compareVersions("1.6.0", a))) | |
return !0; | |
return this.compareVersions("1.5.0", a) ? !0 : !1 | |
}, | |
IEInstall: function() { | |
location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "")); | |
return !1 | |
}, | |
done: function(a, b) {}, | |
FFInstall: function() { | |
location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "") + (null != this.installType ? "&type=" + this.installType : "")); | |
return !1 | |
}, | |
compareVersions: function(a, b) { | |
for (var c = a.split("."), d = b.split("."), h = 0; h < c.length; ++h) | |
c[h] = Number(c[h]); | |
for (h = 0; h < d.length; ++h) | |
d[h] = Number(d[h]); | |
2 == c.length && (c[2] = 0); | |
return c[0] > d[0] ? !0 : c[0] < d[0] ? !1 : c[1] > d[1] ? !0 : c[1] < d[1] ? !1 : c[2] > d[2] ? !0 : c[2] < d[2] ? !1 : !0 | |
}, | |
enableAlerts: function() { | |
this.browserName = null; | |
this.debug = !0 | |
}, | |
poll: function() { | |
this.refresh(); | |
var a = this.getJREs(); | |
0 == this.preInstallJREList.length && 0 != a.length && (clearInterval(this.myInterval), | |
null != this.returnPage && (location.href = this.returnPage)); | |
0 != this.preInstallJREList.length && 0 != a.length && this.preInstallJREList[0] != a[0] && (clearInterval(this.myInterval), | |
null != this.returnPage && (location.href = this.returnPage)) | |
}, | |
writePluginTag: function() { | |
var a = this.getBrowser(); | |
"MSIE" == a ? document.write('<object classid="clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA" id="deployJavaPlugin" width="0" height="0"></object>') : "Netscape Family" == a && this.allowPlugin() && this.writeEmbedTag() | |
}, | |
refresh: function() { | |
navigator.plugins.refresh(!1); | |
"Netscape Family" == this.getBrowser() && this.allowPlugin() && null == document.getElementById("deployJavaPlugin") && this.writeEmbedTag() | |
}, | |
writeEmbedTag: function() { | |
var a = !1; | |
if (null != navigator.mimeTypes) { | |
for (var b = 0; b < navigator.mimeTypes.length; b++) | |
navigator.mimeTypes[b].type == this.mimeType && navigator.mimeTypes[b].enabledPlugin && (document.write('<embed id="deployJavaPlugin" type="' + this.mimeType + '" hidden="true" />'), | |
a = !0); | |
if (!a) | |
for (b = 0; b < navigator.mimeTypes.length; b++) | |
navigator.mimeTypes[b].type == this.oldMimeType && navigator.mimeTypes[b].enabledPlugin && document.write('<embed id="deployJavaPlugin" type="' + this.oldMimeType + '" hidden="true" />') | |
} | |
} | |
}; | |
c.writePluginTag(); | |
if (null == c.locale) { | |
e = null; | |
if (null == e) | |
try { | |
e = navigator.userLanguage | |
} catch (a) {} | |
if (null == e) | |
try { | |
e = navigator.systemLanguage | |
} catch (a) {} | |
if (null == e) | |
try { | |
e = navigator.language | |
} catch (a) {} | |
null != e && (e.replace("-", "_"), | |
c.locale = e) | |
} | |
return c | |
}(); | |
var Detector = function() { | |
var f = ["monospace", "sans-serif", "serif"] | |
, d = document.getElementsByTagName("body")[0] | |
, e = document.createElement("span"); | |
e.style.fontSize = "72px"; | |
e.innerHTML = "mmmmmmmmmmlli"; | |
var p = {}, b = {}, c; | |
for (c in f) | |
e.style.fontFamily = f[c], | |
d.appendChild(e), | |
p[f[c]] = e.offsetWidth, | |
b[f[c]] = e.offsetHeight, | |
d.removeChild(e); | |
this.detect = function(a) { | |
var c = !1, n; | |
for (n in f) { | |
e.style.fontFamily = a + "," + f[n]; | |
d.appendChild(e); | |
var v = e.offsetWidth != p[f[n]] || e.offsetHeight != b[f[n]]; | |
d.removeChild(e); | |
c = c || v | |
} | |
return c | |
} | |
}; | |
function murmurhash3_32_gc(f, d) { | |
var e, p, b, c, a; | |
e = f.length & 3; | |
p = f.length - e; | |
b = d; | |
for (a = 0; a < p; ) | |
c = f.charCodeAt(a) & 255 | (f.charCodeAt(++a) & 255) << 8 | (f.charCodeAt(++a) & 255) << 16 | (f.charCodeAt(++a) & 255) << 24, | |
++a, | |
c = 3432918353 * (c & 65535) + ((3432918353 * (c >>> 16) & 65535) << 16) & 4294967295, | |
c = c << 15 | c >>> 17, | |
c = 461845907 * (c & 65535) + ((461845907 * (c >>> 16) & 65535) << 16) & 4294967295, | |
b ^= c, | |
b = b << 13 | b >>> 19, | |
b = 5 * (b & 65535) + ((5 * (b >>> 16) & 65535) << 16) & 4294967295, | |
b = (b & 65535) + 27492 + (((b >>> 16) + 58964 & 65535) << 16); | |
c = 0; | |
switch (e) { | |
case 3: | |
c ^= (f.charCodeAt(a + 2) & 255) << 16; | |
case 2: | |
c ^= (f.charCodeAt(a + 1) & 255) << 8; | |
case 1: | |
c ^= f.charCodeAt(a) & 255, | |
c = 3432918353 * (c & 65535) + ((3432918353 * (c >>> 16) & 65535) << 16) & 4294967295, | |
c = c << 15 | c >>> 17, | |
b ^= 461845907 * (c & 65535) + ((461845907 * (c >>> 16) & 65535) << 16) & 4294967295 | |
} | |
b ^= f.length; | |
b ^= b >>> 16; | |
b = 2246822507 * (b & 65535) + ((2246822507 * (b >>> 16) & 65535) << 16) & 4294967295; | |
b ^= b >>> 13; | |
b = 3266489909 * (b & 65535) + ((3266489909 * (b >>> 16) & 65535) << 16) & 4294967295; | |
return (b ^ b >>> 16) >>> 0 | |
} | |
;var swfobject = function() { | |
function f() { | |
if (!y) { | |
try { | |
var a = l.getElementsByTagName("body")[0].appendChild(l.createElement("span")); | |
a.parentNode.removeChild(a) | |
} catch (b) { | |
return | |
} | |
y = !0; | |
for (var a = F.length, c = 0; c < a; c++) | |
F[c]() | |
} | |
} | |
function d(a) { | |
y ? a() : F[F.length] = a | |
} | |
function e(a) { | |
if ("undefined" != typeof r.addEventListener) | |
r.addEventListener("load", a, !1); | |
else if ("undefined" != typeof l.addEventListener) | |
l.addEventListener("load", a, !1); | |
else if ("undefined" != typeof r.attachEvent) | |
B(r, "onload", a); | |
else if ("function" == typeof r.onload) { | |
var b = r.onload; | |
r.onload = function() { | |
b(); | |
a() | |
} | |
} else | |
r.onload = a | |
} | |
function p() { | |
var a = l.getElementsByTagName("body")[0] | |
, c = l.createElement("object"); | |
c.setAttribute("type", "application/x-shockwave-flash"); | |
var d = a.appendChild(c); | |
if (d) { | |
var g = 0; | |
(function() { | |
if ("undefined" != typeof d.GetVariable) { | |
var h = d.GetVariable("$version"); | |
h && (h = h.split(" ")[1].split(","), | |
k.pv = [parseInt(h[0], 10), parseInt(h[1], 10), parseInt(h[2], 10)]) | |
} else if (10 > g) { | |
g++; | |
setTimeout(arguments.callee, 10); | |
return | |
} | |
a.removeChild(c); | |
d = null; | |
b() | |
} | |
)() | |
} else | |
b() | |
} | |
function b() { | |
var b = x.length; | |
if (0 < b) | |
for (var z = 0; z < b; z++) { | |
var d = x[z].id | |
, h = x[z].callbackFn | |
, f = { | |
success: !1, | |
id: d | |
}; | |
if (0 < k.pv[0]) { | |
var e = m(d); | |
if (e) | |
if (!C(x[z].swfVersion) || k.wk && 312 > k.wk) | |
if (x[z].expressInstall && a()) { | |
f = {}; | |
f.data = x[z].expressInstall; | |
f.width = e.getAttribute("width") || "0"; | |
f.height = e.getAttribute("height") || "0"; | |
e.getAttribute("class") && (f.styleclass = e.getAttribute("class")); | |
e.getAttribute("align") && (f.align = e.getAttribute("align")); | |
for (var l = {}, e = e.getElementsByTagName("param"), q = e.length, u = 0; u < q; u++) | |
"movie" != e[u].getAttribute("name").toLowerCase() && (l[e[u].getAttribute("name")] = e[u].getAttribute("value")); | |
g(f, l, d, h) | |
} else | |
n(e), | |
h && h(f); | |
else | |
A(d, !0), | |
h && (f.success = !0, | |
f.ref = c(d), | |
h(f)) | |
} else | |
A(d, !0), | |
h && ((d = c(d)) && "undefined" != typeof d.SetVariable && (f.success = !0, | |
f.ref = d), | |
h(f)) | |
} | |
} | |
function c(a) { | |
var b = null; | |
(a = m(a)) && "OBJECT" == a.nodeName && ("undefined" != typeof a.SetVariable ? b = a : (a = a.getElementsByTagName("object")[0]) && (b = a)); | |
return b | |
} | |
function a() { | |
return !G && C("6.0.65") && (k.win || k.mac) && !(k.wk && 312 > k.wk) | |
} | |
function g(a, b, c, d) { | |
G = !0; | |
J = d || null; | |
L = { | |
success: !1, | |
id: c | |
}; | |
var g = m(c); | |
if (g) { | |
"OBJECT" == g.nodeName ? (E = v(g), | |
H = null) : (E = g, | |
H = c); | |
a.id = "SWFObjectExprInst"; | |
if ("undefined" == typeof a.width || !/%$/.test(a.width) && 310 > parseInt(a.width, 10)) | |
a.width = "310"; | |
if ("undefined" == typeof a.height || !/%$/.test(a.height) && 137 > parseInt(a.height, 10)) | |
a.height = "137"; | |
l.title = l.title.slice(0, 47) + " - Flash Player Installation"; | |
d = k.ie && k.win ? "ActiveX" : "PlugIn"; | |
d = "MMredirectURL=" + r.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + d + "&MMdoctitle=" + l.title; | |
b.flashvars = "undefined" != typeof b.flashvars ? b.flashvars + ("&" + d) : d; | |
k.ie && k.win && 4 != g.readyState && (d = l.createElement("div"), | |
c += "SWFObjectNew", | |
d.setAttribute("id", c), | |
g.parentNode.insertBefore(d, g), | |
g.style.display = "none", | |
function() { | |
4 == g.readyState ? g.parentNode.removeChild(g) : setTimeout(arguments.callee, 10) | |
}()); | |
h(a, b, c) | |
} | |
} | |
function n(a) { | |
if (k.ie && k.win && 4 != a.readyState) { | |
var b = l.createElement("div"); | |
a.parentNode.insertBefore(b, a); | |
b.parentNode.replaceChild(v(a), b); | |
a.style.display = "none"; | |
(function() { | |
4 == a.readyState ? a.parentNode.removeChild(a) : setTimeout(arguments.callee, 10) | |
} | |
)() | |
} else | |
a.parentNode.replaceChild(v(a), a) | |
} | |
function v(a) { | |
var b = l.createElement("div"); | |
if (k.win && k.ie) | |
b.innerHTML = a.innerHTML; | |
else if (a = a.getElementsByTagName("object")[0]) | |
if (a = a.childNodes) | |
for (var c = a.length, d = 0; d < c; d++) | |
1 == a[d].nodeType && "PARAM" == a[d].nodeName || 8 == a[d].nodeType || b.appendChild(a[d].cloneNode(!0)); | |
return b | |
} | |
function h(a, b, c) { | |
var d, g = m(c); | |
if (k.wk && 312 > k.wk) | |
return d; | |
if (g) | |
if ("undefined" == typeof a.id && (a.id = c), | |
k.ie && k.win) { | |
var h = "", f; | |
for (f in a) | |
a[f] != Object.prototype[f] && ("data" == f.toLowerCase() ? b.movie = a[f] : "styleclass" == f.toLowerCase() ? h += ' class="' + a[f] + '"' : "classid" != f.toLowerCase() && (h += " " + f + '="' + a[f] + '"')); | |
f = ""; | |
for (var e in b) | |
b[e] != Object.prototype[e] && (f += '<param name="' + e + '" value="' + b[e] + '" />'); | |
g.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + h + ">" + f + "</object>"; | |
I[I.length] = a.id; | |
d = m(a.id) | |
} else { | |
e = l.createElement("object"); | |
e.setAttribute("type", "application/x-shockwave-flash"); | |
for (var q in a) | |
a[q] != Object.prototype[q] && ("styleclass" == q.toLowerCase() ? e.setAttribute("class", a[q]) : "classid" != q.toLowerCase() && e.setAttribute(q, a[q])); | |
for (h in b) | |
b[h] != Object.prototype[h] && "movie" != h.toLowerCase() && (a = e, | |
f = h, | |
q = b[h], | |
c = l.createElement("param"), | |
c.setAttribute("name", f), | |
c.setAttribute("value", q), | |
a.appendChild(c)); | |
g.parentNode.replaceChild(e, g); | |
d = e | |
} | |
return d | |
} | |
function u(a) { | |
var b = m(a); | |
b && "OBJECT" == b.nodeName && (k.ie && k.win ? (b.style.display = "none", | |
function() { | |
if (4 == b.readyState) { | |
var c = m(a); | |
if (c) { | |
for (var d in c) | |
"function" == typeof c[d] && (c[d] = null); | |
c.parentNode.removeChild(c) | |
} | |
} else | |
setTimeout(arguments.callee, 10) | |
}()) : b.parentNode.removeChild(b)) | |
} | |
function m(a) { | |
var b = null; | |
try { | |
b = l.getElementById(a) | |
} catch (c) {} | |
return b | |
} | |
function B(a, b, c) { | |
a.attachEvent(b, c); | |
D[D.length] = [a, b, c] | |
} | |
function C(a) { | |
var b = k.pv; | |
a = a.split("."); | |
a[0] = parseInt(a[0], 10); | |
a[1] = parseInt(a[1], 10) || 0; | |
a[2] = parseInt(a[2], 10) || 0; | |
return b[0] > a[0] || b[0] == a[0] && b[1] > a[1] || b[0] == a[0] && b[1] == a[1] && b[2] >= a[2] ? !0 : !1 | |
} | |
function q(a, b, c, d) { | |
if (!k.ie || !k.mac) { | |
var h = l.getElementsByTagName("head")[0]; | |
h && (c = c && "string" == typeof c ? c : "screen", | |
d && (K = w = null), | |
w && K == c || (d = l.createElement("style"), | |
d.setAttribute("type", "text/css"), | |
d.setAttribute("media", c), | |
w = h.appendChild(d), | |
k.ie && k.win && "undefined" != typeof l.styleSheets && 0 < l.styleSheets.length && (w = l.styleSheets[l.styleSheets.length - 1]), | |
K = c), | |
k.ie && k.win ? w && "object" == typeof w.addRule && w.addRule(a, b) : w && "undefined" != typeof l.createTextNode && w.appendChild(l.createTextNode(a + " {" + b + "}"))) | |
} | |
} | |
function A(a, b) { | |
if (M) { | |
var c = b ? "visible" : "hidden"; | |
y && m(a) ? m(a).style.visibility = c : q("#" + a, "visibility:" + c) | |
} | |
} | |
function N(a) { | |
return null != /[\\\"<>\.;]/.exec(a) && "undefined" != typeof encodeURIComponent ? encodeURIComponent(a) : a | |
} | |
var r = window, l = document, t = navigator, O = !1, F = [function() { | |
O ? p() : b() | |
} | |
], x = [], I = [], D = [], E, H, J, L, y = !1, G = !1, w, K, M = !0, k = function() { | |
var a = "undefined" != typeof l.getElementById && "undefined" != typeof l.getElementsByTagName && "undefined" != typeof l.createElement | |
, b = t.userAgent.toLowerCase() | |
, c = t.platform.toLowerCase() | |
, d = c ? /win/.test(c) : /win/.test(b) | |
, c = c ? /mac/.test(c) : /mac/.test(b) | |
, b = /webkit/.test(b) ? parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : !1 | |
, h = !+"\v1" | |
, g = [0, 0, 0] | |
, f = null; | |
if ("undefined" != typeof t.plugins && "object" == typeof t.plugins["Shockwave Flash"]) | |
!(f = t.plugins["Shockwave Flash"].description) || "undefined" != typeof t.mimeTypes && t.mimeTypes["application/x-shockwave-flash"] && !t.mimeTypes["application/x-shockwave-flash"].enabledPlugin || (O = !0, | |
h = !1, | |
f = f.replace(/^.*\s+(\S+\s+\S+$)/, "$1"), | |
g[0] = parseInt(f.replace(/^(.*)\..*$/, "$1"), 10), | |
g[1] = parseInt(f.replace(/^.*\.(.*)\s.*$/, "$1"), 10), | |
g[2] = /[a-zA-Z]/.test(f) ? parseInt(f.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0); | |
else if ("undefined" != typeof r.ActiveXObject) | |
try { | |
var e = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); | |
e && (f = e.GetVariable("$version")) && (h = !0, | |
f = f.split(" ")[1].split(","), | |
g = [parseInt(f[0], 10), parseInt(f[1], 10), parseInt(f[2], 10)]) | |
} catch (m) {} | |
return { | |
w3: a, | |
pv: g, | |
wk: b, | |
ie: h, | |
win: d, | |
mac: c | |
} | |
}(); | |
(function() { | |
k.w3 && (("undefined" != typeof l.readyState && "complete" == l.readyState || "undefined" == typeof l.readyState && (l.getElementsByTagName("body")[0] || l.body)) && f(), | |
y || ("undefined" != typeof l.addEventListener && l.addEventListener("DOMContentLoaded", f, !1), | |
k.ie && k.win && (l.attachEvent("onreadystatechange", function() { | |
"complete" == l.readyState && (l.detachEvent("onreadystatechange", arguments.callee), | |
f()) | |
}), | |
r == top && function() { | |
if (!y) { | |
try { | |
l.documentElement.doScroll("left") | |
} catch (a) { | |
setTimeout(arguments.callee, 0); | |
return | |
} | |
f() | |
} | |
}()), | |
k.wk && function() { | |
y || (/loaded|complete/.test(l.readyState) ? f() : setTimeout(arguments.callee, 0)) | |
}(), | |
e(f))) | |
} | |
)(); | |
(function() { | |
k.ie && k.win && window.attachEvent("onunload", function() { | |
for (var a = D.length, b = 0; b < a; b++) | |
D[b][0].detachEvent(D[b][1], D[b][2]); | |
a = I.length; | |
for (b = 0; b < a; b++) | |
u(I[b]); | |
for (var c in k) | |
k[c] = null; | |
k = null; | |
for (var d in swfobject) | |
swfobject[d] = null; | |
swfobject = null | |
}) | |
} | |
)(); | |
return { | |
registerObject: function(a, b, c, d) { | |
if (k.w3 && a && b) { | |
var h = {}; | |
h.id = a; | |
h.swfVersion = b; | |
h.expressInstall = c; | |
h.callbackFn = d; | |
x[x.length] = h; | |
A(a, !1) | |
} else | |
d && d({ | |
success: !1, | |
id: a | |
}) | |
}, | |
getObjectById: function(a) { | |
if (k.w3) | |
return c(a) | |
}, | |
embedSWF: function(b, c, f, e, m, q, l, u, p, r) { | |
var n = { | |
success: !1, | |
id: c | |
}; | |
k.w3 && !(k.wk && 312 > k.wk) && b && c && f && e && m ? (A(c, !1), | |
d(function() { | |
f += ""; | |
e += ""; | |
var d = {}; | |
if (p && "object" === typeof p) | |
for (var k in p) | |
d[k] = p[k]; | |
d.data = b; | |
d.width = f; | |
d.height = e; | |
k = {}; | |
if (u && "object" === typeof u) | |
for (var B in u) | |
k[B] = u[B]; | |
if (l && "object" === typeof l) | |
for (var t in l) | |
k.flashvars = "undefined" != typeof k.flashvars ? k.flashvars + ("&" + t + "=" + l[t]) : t + "=" + l[t]; | |
if (C(m)) | |
B = h(d, k, c), | |
d.id == c && A(c, !0), | |
n.success = !0, | |
n.ref = B; | |
else { | |
if (q && a()) { | |
d.data = q; | |
g(d, k, c, r); | |
return | |
} | |
A(c, !0) | |
} | |
r && r(n) | |
})) : r && r(n) | |
}, | |
switchOffAutoHideShow: function() { | |
M = !1 | |
}, | |
ua: k, | |
getFlashPlayerVersion: function() { | |
return { | |
major: k.pv[0], | |
minor: k.pv[1], | |
release: k.pv[2] | |
} | |
}, | |
hasFlashPlayerVersion: C, | |
createSWF: function(a, b, c) { | |
if (k.w3) | |
return h(a, b, c) | |
}, | |
showExpressInstall: function(b, c, d, h) { | |
k.w3 && a() && g(b, c, d, h) | |
}, | |
removeSWF: function(a) { | |
k.w3 && u(a) | |
}, | |
createCSS: function(a, b, c, d) { | |
k.w3 && q(a, b, c, d) | |
}, | |
addDomLoadEvent: d, | |
addLoadEvent: e, | |
getQueryParamValue: function(a) { | |
var b = l.location.search || l.location.hash; | |
if (b) { | |
/\?/.test(b) && (b = b.split("?")[1]); | |
if (null == a) | |
return N(b); | |
for (var b = b.split("&"), c = 0; c < b.length; c++) | |
if (b[c].substring(0, b[c].indexOf("=")) == a) | |
return N(b[c].substring(b[c].indexOf("=") + 1)) | |
} | |
return "" | |
}, | |
expressInstallCallback: function() { | |
if (G) { | |
var a = m("SWFObjectExprInst"); | |
a && E && (a.parentNode.replaceChild(E, a), | |
H && (A(H, !0), | |
k.ie && k.win && (E.style.display = "block")), | |
J && J(L)); | |
G = !1 | |
} | |
} | |
} | |
}(); | |
(function(f, d) { | |
var e = { | |
extend: function(a, b) { | |
for (var c in b) | |
-1 !== "browser cpu device engine os".indexOf(c) && 0 === b[c].length % 2 && (a[c] = b[c].concat(a[c])); | |
return a | |
}, | |
has: function(a, b) { | |
return "string" === typeof a ? -1 !== b.toLowerCase().indexOf(a.toLowerCase()) : !1 | |
}, | |
lowerize: function(a) { | |
return a.toLowerCase() | |
}, | |
major: function(a) { | |
return "string" === typeof a ? a.split(".")[0] : d | |
} | |
} | |
, p = function() { | |
for (var a, b = 0, c, f, g, e, p, n, r = arguments; b < r.length && !p; ) { | |
var l = r[b] | |
, t = r[b + 1]; | |
if ("undefined" === typeof a) | |
for (g in a = {}, | |
t) | |
t.hasOwnProperty(g) && (e = t[g], | |
"object" === typeof e ? a[e[0]] = d : a[e] = d); | |
for (c = f = 0; c < l.length && !p; ) | |
if (p = l[c++].exec(this.getUA())) | |
for (g = 0; g < t.length; g++) | |
n = p[++f], | |
e = t[g], | |
"object" === typeof e && 0 < e.length ? 2 == e.length ? a[e[0]] = "function" == typeof e[1] ? e[1].call(this, n) : e[1] : 3 == e.length ? a[e[0]] = "function" !== typeof e[1] || e[1].exec && e[1].test ? n ? n.replace(e[1], e[2]) : d : n ? e[1].call(this, n, e[2]) : d : 4 == e.length && (a[e[0]] = n ? e[3].call(this, n.replace(e[1], e[2])) : d) : a[e] = n ? n : d; | |
b += 2 | |
} | |
return a | |
} | |
, b = function(a, b) { | |
for (var c in b) | |
if ("object" === typeof b[c] && 0 < b[c].length) | |
for (var f = 0; f < b[c].length; f++) { | |
if (e.has(b[c][f], a)) | |
return "?" === c ? d : c | |
} | |
else if (e.has(b[c], a)) | |
return "?" === c ? d : c; | |
return a | |
} | |
, c = { | |
ME: "4.90", | |
"NT 3.11": "NT3.51", | |
"NT 4.0": "NT4.0", | |
2E3: "NT 5.0", | |
XP: ["NT 5.1", "NT 5.2"], | |
Vista: "NT 6.0", | |
7: "NT 6.1", | |
8: "NT 6.2", | |
"8.1": "NT 6.3", | |
10: ["NT 6.4", "NT 10.0"], | |
RT: "ARM" | |
} | |
, a = { | |
browser: [[/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i], ["name", "version"], [/\s(opr)\/([\w\.]+)/i], [["name", "Opera"], "version"], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]+)*/i, /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]+)*/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs)\/([\w\.-]+)/i], ["name", "version"], [/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i], [["name", "IE"], "version"], [/(edge)\/((\d+)?[\w\.]+)/i], ["name", "version"], [/(yabrowser)\/([\w\.]+)/i], [["name", "Yandex"], "version"], [/(comodo_dragon)\/([\w\.]+)/i], [["name", /_/g, " "], "version"], [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i, /(qqbrowser)[\/\s]?([\w\.]+)/i], ["name", "version"], [/(uc\s?browser)[\/\s]?([\w\.]+)/i, /ucweb.+(ucbrowser)[\/\s]?([\w\.]+)/i, /JUC.+(ucweb)[\/\s]?([\w\.]+)/i], [["name", "UCBrowser"], "version"], [/(dolfin)\/([\w\.]+)/i], [["name", "Dolphin"], "version"], [/((?:android.+)crmo|crios)\/([\w\.]+)/i], [["name", "Chrome"], "version"], [/XiaoMi\/MiuiBrowser\/([\w\.]+)/i], ["version", ["name", "MIUI Browser"]], [/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)/i], ["version", ["name", "Android Browser"]], [/FBAV\/([\w\.]+);/i], ["version", ["name", "Facebook"]], [/fxios\/([\w\.-]+)/i], ["version", ["name", "Firefox"]], [/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i], ["version", ["name", "Mobile Safari"]], [/version\/([\w\.]+).+?(mobile\s?safari|safari)/i], ["version", "name"], [/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i], ["name", ["version", b, { | |
"1.0": "/8", | |
"1.2": "/1", | |
"1.3": "/3", | |
"2.0": "/412", | |
"2.0.2": "/416", | |
"2.0.3": "/417", | |
"2.0.4": "/419", | |
"?": "/" | |
}]], [/(konqueror)\/([\w\.]+)/i, /(webkit|khtml)\/([\w\.]+)/i], ["name", "version"], [/(navigator|netscape)\/([\w\.-]+)/i], [["name", "Netscape"], "version"], [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/([\w\.-]+)/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]+)*/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i], ["name", "version"]], | |
cpu: [[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], [["architecture", "amd64"]], [/(ia32(?=;))/i], [["architecture", e.lowerize]], [/((?:i[346]|x)86)[;\)]/i], [["architecture", "ia32"]], [/windows\s(ce|mobile);\sppc;/i], [["architecture", "arm"]], [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], [["architecture", /ower/, "", e.lowerize]], [/(sun4\w)[;\)]/i], [["architecture", "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], [["architecture", e.lowerize]]], | |
device: [[/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i], ["model", "vendor", ["type", "tablet"]], [/applecoremedia\/[\w\.]+ \((ipad)/], ["model", ["vendor", "Apple"], ["type", "tablet"]], [/(apple\s{0,1}tv)/i], [["model", "Apple TV"], ["vendor", "Apple"]], [/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i], ["vendor", "model", ["type", "tablet"]], [/(kf[A-z]+)\sbuild\/[\w\.]+.*silk\//i], ["model", ["vendor", "Amazon"], ["type", "tablet"]], [/(sd|kf)[0349hijorstuw]+\sbuild\/[\w\.]+.*silk\//i], [["model", b, { | |
"Fire Phone": ["SD", "KF"] | |
}], ["vendor", "Amazon"], ["type", "mobile"]], [/\((ip[honed|\s\w*]+);.+(apple)/i], ["model", "vendor", ["type", "mobile"]], [/\((ip[honed|\s\w*]+);/i], ["model", ["vendor", "Apple"], ["type", "mobile"]], [/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola|polytron)[\s_-]?([\w-]+)*/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i], ["vendor", "model", ["type", "mobile"]], [/\(bb10;\s(\w+)/i], ["model", ["vendor", "BlackBerry"], ["type", "mobile"]], [/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7)/i], ["model", ["vendor", "Asus"], ["type", "tablet"]], [/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i], [["vendor", "Sony"], ["model", "Xperia Tablet"], ["type", "tablet"]], [/(?:sony)?(?:(?:(?:c|d)\d{4})|(?:so[-l].+))\sbuild\//i], [["vendor", "Sony"], ["model", "Xperia Phone"], ["type", "mobile"]], [/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], ["vendor", "model", ["type", "console"]], [/android.+;\s(shield)\sbuild/i], ["model", ["vendor", "Nvidia"], ["type", "console"]], [/(playstation\s[34portablevi]+)/i], ["model", ["vendor", "Sony"], ["type", "console"]], [/(sprint\s(\w+))/i], [["vendor", b, { | |
HTC: "APA", | |
Sprint: "Sprint" | |
}], ["model", b, { | |
"Evo Shift 4G": "7373KT" | |
}], ["type", "mobile"]], [/(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i], ["vendor", "model", ["type", "tablet"]], [/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i, /(zte)-(\w+)*/i, /(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i], ["vendor", ["model", /_/g, " "], ["type", "mobile"]], [/(nexus\s9)/i], ["model", ["vendor", "HTC"], ["type", "tablet"]], [/[\s\(;](xbox(?:\sone)?)[\s\);]/i], ["model", ["vendor", "Microsoft"], ["type", "console"]], [/(kin\.[onetw]{3})/i], [["model", /\./g, " "], ["vendor", "Microsoft"], ["type", "mobile"]], [/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i, /mot[\s-]?(\w+)*/i, /(XT\d{3,4}) build\//i, /(nexus\s[6])/i], ["model", ["vendor", "Motorola"], ["type", "mobile"]], [/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i], ["model", ["vendor", "Motorola"], ["type", "tablet"]], [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n8000|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i], [["vendor", "Samsung"], "model", ["type", "tablet"]], [/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-n900))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i, /sec-((sgh\w+))/i], [["vendor", "Samsung"], "model", ["type", "mobile"]], [/(samsung);smarttv/i], ["vendor", "model", ["type", "smarttv"]], [/\(dtv[\);].+(aquos)/i], ["model", ["vendor", "Sharp"], ["type", "smarttv"]], [/sie-(\w+)*/i], ["model", ["vendor", "Siemens"], ["type", "mobile"]], [/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]+)*/i], [["vendor", "Nokia"], "model", ["type", "mobile"]], [/android\s3\.[\s\w;-]{10}(a\d{3})/i], ["model", ["vendor", "Acer"], ["type", "tablet"]], [/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i], [["vendor", "LG"], "model", ["type", "tablet"]], [/(lg) netcast\.tv/i], ["vendor", "model", ["type", "smarttv"]], [/(nexus\s[45])/i, /lg[e;\s\/-]+(\w+)*/i], ["model", ["vendor", "LG"], ["type", "mobile"]], [/android.+(ideatab[a-z0-9\-\s]+)/i], ["model", ["vendor", "Lenovo"], ["type", "tablet"]], [/linux;.+((jolla));/i], ["vendor", "model", ["type", "mobile"]], [/((pebble))app\/[\d\.]+\s/i], ["vendor", "model", ["type", "wearable"]], [/android.+;\s(glass)\s\d/i], ["model", ["vendor", "Google"], ["type", "wearable"]], [/android.+(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i], [["model", /_/g, " "], ["vendor", "Xiaomi"], ["type", "mobile"]], [/\s(tablet)[;\/\s]/i, /\s(mobile)[;\/\s]/i], [["type", e.lowerize], "vendor", "model"]], | |
engine: [[/windows.+\sedge\/([\w\.]+)/i], ["version", ["name", "EdgeHTML"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], ["name", "version"], [/rv\:([\w\.]+).*(gecko)/i], ["version", "name"]], | |
os: [[/microsoft\s(windows)\s(vista|xp)/i], ["name", "version"], [/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], ["name", ["version", b, c]], [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], [["name", "Windows"], ["version", b, c]], [/\((bb)(10);/i], [["name", "BlackBerry"], "version"], [/(blackberry)\w*\/?([\w\.]+)*/i, /(tizen)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i, /linux;.+(sailfish);/i], ["name", "version"], [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i], [["name", "Symbian"], "version"], [/\((series40);/i], ["name"], [/mozilla.+\(mobile;.+gecko.+firefox/i], [["name", "Firefox OS"], "version"], [/(nintendo|playstation)\s([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w+)*/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i, /(hurd|linux)\s?([\w\.]+)*/i, /(gnu)\s?([\w\.]+)*/i], ["name", "version"], [/(cros)\s[\w]+\s([\w\.]+\w)/i], [["name", "Chromium OS"], "version"], [/(sunos)\s?([\w\.]+\d)*/i], [["name", "Solaris"], "version"], [/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i], ["name", "version"], [/(ip[honead]+)(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i], [["name", "iOS"], ["version", /_/g, "."]], [/(mac\sos\sx)\s?([\w\s\.]+\w)*/i, /(macintosh|mac(?=_powerpc)\s)/i], [["name", "Mac OS"], ["version", /_/g, "."]], [/((?:open)?solaris)[\/\s-]?([\w\.]+)*/i, /(haiku)\s(\w+)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i, /(unix)\s?([\w\.]+)*/i], ["name", "version"]] | |
} | |
, g = function(b, c) { | |
if (!(this instanceof g)) | |
return (new g(b,c)).getResult(); | |
var d = b || (f && f.navigator && f.navigator.userAgent ? f.navigator.userAgent : "") | |
, n = c ? e.extend(a, c) : a; | |
this.getBrowser = function() { | |
var a = p.apply(this, n.browser); | |
a.major = e.major(a.version); | |
return a | |
} | |
; | |
this.getCPU = function() { | |
return p.apply(this, n.cpu) | |
} | |
; | |
this.getDevice = function() { | |
return p.apply(this, n.device) | |
} | |
; | |
this.getEngine = function() { | |
return p.apply(this, n.engine) | |
} | |
; | |
this.getOS = function() { | |
return p.apply(this, n.os) | |
} | |
; | |
this.getResult = function() { | |
return { | |
ua: this.getUA(), | |
browser: this.getBrowser(), | |
engine: this.getEngine(), | |
os: this.getOS(), | |
device: this.getDevice(), | |
cpu: this.getCPU() | |
} | |
} | |
; | |
this.getUA = function() { | |
return d | |
} | |
; | |
this.setUA = function(a) { | |
d = a; | |
return this | |
} | |
; | |
this.setUA(d); | |
return this | |
}; | |
g.VERSION = "0.7.10"; | |
g.BROWSER = { | |
NAME: "name", | |
MAJOR: "major", | |
VERSION: "version" | |
}; | |
g.CPU = { | |
ARCHITECTURE: "architecture" | |
}; | |
g.DEVICE = { | |
MODEL: "model", | |
VENDOR: "vendor", | |
TYPE: "type", | |
CONSOLE: "console", | |
MOBILE: "mobile", | |
SMARTTV: "smarttv", | |
TABLET: "tablet", | |
WEARABLE: "wearable", | |
EMBEDDED: "embedded" | |
}; | |
g.ENGINE = { | |
NAME: "name", | |
VERSION: "version" | |
}; | |
g.OS = { | |
NAME: "name", | |
VERSION: "version" | |
}; | |
"undefined" !== typeof exports ? ("undefined" !== typeof module && module.exports && (exports = module.exports = g), | |
exports.UAParser = g) : "function" === typeof define && define.amd ? define(function() { | |
return g | |
}) : f.UAParser = g; | |
var n = f.jQuery || f.Zepto; | |
if ("undefined" !== typeof n) { | |
var v = new g; | |
n.ua = v.getResult(); | |
n.ua.get = function() { | |
return v.getUA() | |
} | |
; | |
n.ua.set = function(a) { | |
v.setUA(a); | |
a = v.getResult(); | |
for (var b in a) | |
n.ua[b] = a[b] | |
} | |
} | |
} | |
)("object" === typeof window ? window : this); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment