1/*! device.js 0.1.61 */ 2(function () { 3 var a, b, c, d, e, f, g, h, i, j; 4 a = window.device, window.device = {}, c = window.document.documentElement, j = window.navigator.userAgent.toLowerCase(), device.ios = function () { 5 return device.iphone() || device.ipod() || device.ipad() 6 }, device.iphone = function () { 7 return d("iphone") 8 }, device.ipod = function () { 9 return d("ipod") 10 }, device.ipad = function () { 11 return d("ipad") 12 }, device.android = function () { 13 return d("android") 14 }, device.androidPhone = function () { 15 return device.android() && d("mobile") 16 }, device.androidTablet = function () { 17 return device.android() && !d("mobile") 18 }, device.blackberry = function () { 19 return d("blackberry") || d("bb10") || d("rim") 20 }, device.blackberryPhone = function () { 21 return device.blackberry() && !d("tablet") 22 }, device.blackberryTablet = function () { 23 return device.blackberry() && d("tablet") 24 }, device.windows = function () { 25 return d("windows") 26 }, device.windowsPhone = function () { 27 return device.windows() && d("phone") 28 }, device.windowsTablet = function () { 29 return device.windows() && d("touch") && !device.windowsPhone() 30 }, device.fxos = function () { 31 return(d("(mobile;") || d("(tablet;")) && d("; rv:") 32 }, device.fxosPhone = function () { 33 return device.fxos() && d("mobile") 34 }, device.fxosTablet = function () { 35 return device.fxos() && d("tablet") 36 }, device.meego = function () { 37 return d("meego") 38 }, device.cordova = function () { 39 return window.cordova && "file:" === location.protocol 40 }, device.nodeWebkit = function () { 41 return"object" == typeof window.process 42 }, device.mobile = function () { 43 return device.androidPhone() || device.iphone() || device.ipod() || device.windowsPhone() || device.blackberryPhone() || device.fxosPhone() || device.meego() 44 }, device.tablet = function () { 45 return device.ipad() || device.androidTablet() || device.blackberryTablet() || device.windowsTablet() || device.fxosTablet() 46 }, device.desktop = function () { 47 return!device.tablet() && !device.mobile() 48 }, device.portrait = function () { 49 return window.innerHeight / window.innerWidth > 1 50 }, device.landscape = function () { 51 return window.innerHeight / window.innerWidth < 1 52 }, device.noConflict = function () { 53 return window.device = a, this 54 }, d = function (a) { 55 return-1 !== j.indexOf(a) 56 }, f = function (a) { 57 var b; 58 return b = new RegExp(a, "i"), c.className.match(b) 59 }, b = function (a) { 60 return f(a) ? void 0 : c.className += " " + a 61 }, h = function (a) { 62 return f(a) ? c.className = c.className.replace(a, "") : void 0 63 }, device.ios() ? device.ipad() ? b("ios ipad tablet") : device.iphone() ? b("ios iphone mobile") : device.ipod() && b("ios ipod mobile") : b(device.android() ? device.androidTablet() ? "android tablet" : "android mobile" : device.blackberry() ? device.blackberryTablet() ? "blackberry tablet" : "blackberry mobile" : device.windows() ? device.windowsTablet() ? "windows tablet" : device.windowsPhone() ? "windows mobile" : "desktop" : device.fxos() ? device.fxosTablet() ? "fxos tablet" : "fxos mobile" : device.meego() ? "meego mobile" : device.nodeWebkit() ? "node-webkit" : "desktop"), device.cordova() && b("cordova"), e = function () { 64 return device.landscape() ? (h("portrait"), b("landscape")) : (h("landscape"), b("portrait")) 65 }, i = "onorientationchange"in window, g = i ? "orientationchange" : "resize", window.addEventListener ? window.addEventListener(g, e, !1) : window.attachEvent ? window.attachEvent(g, e) : window[g] = e, e() 66}).call(this);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.