{"version":3,"file":"platform.min.js","sources":["../../../js/globalization.js","../../../js/platform/platform.js"],"sourcesContent":["function GetLanguage(useParent) {\r\n    var userLanguage = \"en-US\";\r\n\r\n    var cookie = getCookie(\"layout\");\r\n    var cookies = cookie.split(\"&\");\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var dateIndex = cookies[i].indexOf(\"userLanguage=\");\r\n        if (dateIndex > -1) {\r\n            userLanguage = cookies[i].substring(13);\r\n            break;\r\n        }\r\n    }\r\n\r\n    if (useParent) {\r\n        var indexOfDash = userLanguage.indexOf('-');\r\n        if (indexOfDash > -1) {\r\n            userLanguage = userLanguage.substring(0, indexOfDash);\r\n        }\r\n    }\r\n\r\n    return userLanguage;\r\n}\r\n\r\nfunction GetUserDateFormat(originalCase) {\r\n    var userDateFormat = \"MM/DD/YYYY\";\r\n\r\n    var cookie = getCookie(\"layout\");\r\n    var cookies = cookie.split(\"&\");\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n        if (dateIndex > -1) {\r\n            if (originalCase)\r\n                userDateFormat = cookies[i].substring(15);\r\n            else\r\n                userDateFormat = cookies[i].substring(15).toUpperCase();\r\n            break;\r\n        }\r\n    }\r\n\r\n    return userDateFormat;\r\n}\r\n\r\nfunction GetUserDateTimeFormat () {\r\n    var userDateFormat = \"MM/DD/YYYY\";\r\n    var userTimeFormat = \"hh:mm A\";\r\n\r\n    var cookie = getCookie(\"layout\");\r\n    var cookies = cookie.split(\"&\");\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n        var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n\r\n        if (dateIndex > -1) {\r\n            userDateFormat = cookies[i].substring(15).toUpperCase();\r\n        }\r\n\r\n        if (timeIndex > -1) {\r\n            userTimeFormat = cookies[i].substring(15);\r\n            userTimeFormat = userTimeFormat.replace(\"tt\", \"A\");\r\n        }\r\n    }\r\n\r\n    return userDateFormat + \" \" + userTimeFormat;\r\n}\r\n\r\nfunction GetUserTimeZone() {\r\n    var userTimeZone = \"America/New_York\";\r\n\r\n    var cookie = getCookie(\"layout\");\r\n    var cookies = cookie.split(\"&\");\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var dateIndex = cookies[i].indexOf(\"userTimeZone=\");\r\n        if (dateIndex > -1) {\r\n            userTimeZone = cookies[i].substring(13);\r\n            break;\r\n        }\r\n    }\r\n\r\n    return userTimeZone;\r\n}\r\n\r\nfunction GetTimeFormat() {\r\n    return Show24Hours() ? \"HH:mm\" : \"hh:mm A\";\r\n}\r\n\r\nfunction Show24Hours() {\r\n    var show24Hours = true;\r\n    var cookie = getCookie(\"layout\");\r\n    var cookies = cookie.split(\"&\");\r\n\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n        \r\n        if (timeIndex > -1) {\r\n            var userTimeFormat = cookies[i].substring(15);\r\n            if (userTimeFormat.indexOf(\"tt\") > -1)\r\n                show24Hours = false;\r\n        }\r\n    }\r\n\r\n    return show24Hours;\r\n}\r\n\r\nfunction getCookie(cname) {\r\n    var name = cname + \"=\";\r\n    var decodedCookie = decodeURIComponent(document.cookie);\r\n    var ca = decodedCookie.split(';');\r\n    for (var i = 0; i < ca.length; i++) {\r\n        var c = ca[i];\r\n        while (c.charAt(0) == ' ') {\r\n            c = c.substring(1);\r\n        }\r\n        if (c.indexOf(name) == 0) {\r\n            return c.substring(name.length, c.length);\r\n        }\r\n    }\r\n    return \"\";\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateTimeFromNow(utcDateTime) {\r\n    try {\r\n        var justNow = \"Just Now\";\r\n\r\n        var userTimeZone = GetUserTimeZone();\r\n        var localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow();\r\n\r\n        if (localDateTimeFromNow.indexOf(justNow) > -1)\r\n            localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow(true);\r\n\r\n        return localDateTimeFromNow;\r\n    } catch (e) {\r\n        console.log(e);\r\n\r\n        return utcDateTime;\r\n    }\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateWithUserFormat(utcDateTime) {\r\n    try {\r\n        var userTimeZone = GetUserTimeZone();\r\n        var localDate = moment.utc(utcDateTime).tz(userTimeZone).toDate();\r\n        var userdateFormat = GetUserDateFormat();\r\n\r\n        return formatDateTime(localDate, userdateFormat);\r\n    } catch (e) {\r\n        console.log(e);\r\n\r\n        return utcDateTime;\r\n    }\r\n}\r\n\r\nfunction formatDateTime(dateTime, dateTimeFormat) {\r\n    return moment(dateTime).format(dateTimeFormat);\r\n}","var EnsembleVideo = EnsembleVideo || {};\r\nEnsembleVideo.Platform = function () {\r\n\r\n    //GLOBALLY USEFUL VARIABLES\r\n    //Note: These values are set automatically during the Init function.\r\n    //Stores whether we're currently initializing the most popular functions.\r\n    this.initCompleted= false;\r\n    this.isWebkit= false; //Stores the result of DetectWebkit()\r\n    this.isMobilePhone= false; //Stores the result of DetectMobileQuick()\r\n    this.isIphone= false; //Stores the result of DetectIphone()\r\n    this.isAndroid= false; //Stores the result of DetectAndroid()\r\n    this.isIos = false;//Stores the result of DetectIos()\r\n    this.isWindowsPhone = false;\r\n    this.isAndroidPhone= false; //Stores the result of DetectAndroidPhone()\r\n    this.isTierTablet= false; //Stores the result of DetectTierTablet()\r\n    this.isTierIphone= false; //Stores the result of DetectTierIphone()\r\n    this.isTierRichCss= false; //Stores the result of DetectTierRichCss()\r\n    this.isTierGenericMobile= false; //Stores the result of DetectTierOtherPhones()\r\n    //INTERNALLY USED DETECTION STRING VARIABLES\r\n    this.engineWebKit= 'webkit';\r\n\r\n    this.deviceIphone= 'iphone';\r\n    this.deviceIpod= 'ipod';\r\n    this.deviceIpad= 'ipad';\r\n    this.deviceMacPpc= 'macintosh'; //Used for disambiguation\r\n\r\n    this.deviceAndroid= 'android';\r\n    this.deviceGoogleTV= 'googletv';\r\n    this.deviceHtcFlyer= 'htc_flyer'; //HTC Flyer\r\n\r\n    this.deviceWinPhone7= 'windows phone os 7';\r\n    this.deviceWinPhone8 = 'windows phone 8';\r\n    this.deviceWinPhone10 = 'windows phone 10',\r\n\r\n    this.deviceWinMob= 'windows ce';\r\n    this.deviceWindows= 'windows';\r\n    this.deviceIeMob = 'iemobile';\r\n    this.deviceUbuntu = \"ubuntu\";\r\n    this.devicePpc= 'ppc'; //Stands for PocketPC\r\n    this.enginePie= 'wm5 pie';  //An old Windows Mobile\r\n\r\n    this.deviceBB= 'blackberry';\r\n    this.deviceBB10= 'bb10'; //For the new BB 10 OS\r\n    this.vndRIM= 'vnd.rim'; //Detectable when BB devices emulate IE or Firefox\r\n    this.deviceBBStorm= 'blackberry95'; //Storm 1 and 2\r\n    this.deviceBBBold= 'blackberry97'; //Bold 97x0 (non-touch)\r\n    this.deviceBBBoldTouch= 'blackberry 99'; //Bold 99x0 (touchscreen)\r\n    this.deviceBBTour= 'blackberry96'; //Tour\r\n    this.deviceBBCurve= 'blackberry89'; //Curve 2\r\n    this.deviceBBCurveTouch= 'blackberry 938'; //Curve Touch 9380\r\n    this.deviceBBTorch= 'blackberry 98'; //Torch\r\n    this.deviceBBPlaybook= 'playbook'; //PlayBook tablet\r\n\r\n    this.deviceSymbian= 'symbian';\r\n    this.deviceSymbos= 'symbos'; //Opera 10 on Symbian\r\n    this.deviceS60= 'series60';\r\n    this.deviceS70= 'series70';\r\n    this.deviceS80= 'series80';\r\n    this.deviceS90= 'series90';\r\n\r\n    this.devicePalm= 'palm';\r\n    this.deviceWebOS= 'webos'; //For Palm's line of WebOS devices\r\n    this.deviceWebOShp= 'hpwos'; //For HP's line of WebOS devices\r\n    this.engineBlazer= 'blazer'; //Old Palm browser\r\n    this.engineXiino= 'xiino'; //Another old Palm\r\n\r\n    this.deviceNuvifone= 'nuvifone'; //Garmin Nuvifone\r\n    this.deviceBada= 'bada'; //Samsung's Bada OS\r\n    this.deviceTizen= 'tizen'; //Tizen OS\r\n    this.deviceMeego= 'meego'; //Meego OS\r\n\r\n    this.deviceKindle= 'kindle'; //Amazon eInk Kindle\r\n    this.engineSilk= 'silk-accelerated'; //Amazon's accelerated Silk browser for Kindle Fire\r\n\r\n    //Initialize variables for mobile-specific content.\r\n    this.vndwap= 'vnd.wap';\r\n    this.wml= 'wml';\r\n\r\n    //Initialize variables for random devices and mobile browsers.\r\n    //Some of these may not support JavaScript\r\n    this.deviceTablet= 'tablet';\r\n    this.deviceBrew= 'brew';\r\n    this.deviceDanger= 'danger';\r\n    this.deviceHiptop= 'hiptop';\r\n    this.devicePlaystation= 'playstation';\r\n    this.devicePlaystationVita= 'vita';\r\n    this.deviceNintendoDs= 'nitro';\r\n    this.deviceNintendo= 'nintendo';\r\n    this.deviceWii= 'wii';\r\n    this.deviceXbox= 'xbox';\r\n    this.deviceArchos= 'archos';\r\n\r\n    this.engineFirefox= 'firefox', //For Firefox OS\r\n    this.engineChrome = 'chrome'; // Chrome browser\r\n    this.engineSafari = 'safari';\r\n    this.engineOpera = 'opera'; //Popular browser\r\n    this.engineInternetExplorer = 'msie'; //Internet Explorer\r\n    this.engineTrident = 'trident'; // Internet Explorer 11\r\n    this.engineNetfront= 'netfront'; //Common embedded OS browser\r\n    this.engineUpBrowser= 'up.browser'; //common on some phones\r\n    this.engineOpenWeb= 'openweb'; //Transcoding by OpenWave server\r\n    this.deviceMidp= 'midp'; //a mobile Java technology\r\n    this.uplink= 'up.link';\r\n    this.engineTelecaQ= 'teleca q'; //a modern feature phone browser\r\n    this.engineObigo= 'obigo'; //W 10 is a modern feature phone browser\r\n\r\n    this.devicePda= 'pda';\r\n    this.mini= 'mini';  //Some mobile browsers put 'mini' in their names\r\n    this.mobile= 'mobile'; //Some mobile browsers put 'mobile' in their user agent strings\r\n    this.mobi= 'mobi'; //Some mobile browsers put 'mobi' in their user agent strings\r\n\r\n    //Use Maemo; Tablet; and Linux to test for Nokia's Internet Tablets.\r\n    this.maemo= 'maemo';\r\n    this.linux= 'linux';\r\n    this.mylocom2= 'sony/com'; // for Sony Mylo 1 and 2\r\n\r\n    //In some UserAgents; the only clue is the manufacturer\r\n    this.manuSonyEricsson= 'sonyericsson';\r\n    this.manuericsson= 'ericsson';\r\n    this.manuSamsung1= 'sec-sgh';\r\n    this.manuSony= 'sony';\r\n    this.manuHtc= 'htc';\r\n\r\n    //In some UserAgents; the only clue is the operator\r\n    this.svcDocomo= 'docomo';\r\n    this.svcKddi= 'kddi';\r\n    this.svcVodafone= 'vodafone';\r\n\r\n    //Disambiguation strings.\r\n    this.disUpdate= 'update'; //pda vs. update\r\n\r\n    //Holds the User Agent string value.\r\n    this.uagent = '';\r\n\r\n    this.isChromeBrowser = false;\r\n    this.isSafariBrowser = false;\r\n\r\n    this.androidVersion = 0.0;\r\n}\r\n\r\nEnsembleVideo.Platform.prototype = {\r\n\r\n    //Initializes key platform variables\r\n    InitDeviceScan : function () {\r\n        this.initCompleted = false;\r\n       \r\n        if (navigator && navigator.userAgent)\r\n            this.uagent = navigator.userAgent.toLowerCase();\r\n\r\n        //Save these properties to speed processing\r\n        this.isWebkit = this.DetectWebkit();\r\n        this.isIphone = this.DetectIphone();\r\n        this.isAndroid = this.DetectAndroid();\r\n        this.isAndroidPhone = this.DetectAndroidPhone();\r\n        this.isIos = this.DetectIos();\r\n\r\n        //Generally, these tiers are the most useful for web development\r\n        this.isTierIphone = this.DetectTierIphone(); //Do first\r\n        this.isTierTablet = this.DetectTierTablet(); //Do second\r\n        this.isMobilePhone = this.DetectMobileQuick(); //Do third\r\n\r\n        this.isTierRichCss = this.DetectTierRichCss();\r\n        this.isTierGenericMobile = this.DetectTierOtherPhones();\r\n\r\n        this.isChromeBrowser = this.DetectChromeBrowser();\r\n        this.isIeBrowser = this.DetectIeBrowser();\r\n        this.isSafariBrowser = this.DetectSafariBrowser();\r\n\r\n        this.initCompleted = true;\r\n    },\r\n\r\n\r\n    //APPLE IOS\r\n\r\n    //**************************\r\n    // Detects if the current device is an iPhone.\r\n    DetectIphone : function () {\r\n        if (this.initCompleted || this.isIphone)\r\n            return this.isIphone;\r\n\r\n        if (this.uagent.search(this.deviceIphone) > -1) {\r\n            //The iPad and iPod Touch say they're an iPhone! So let's disambiguate.\r\n            if (this.DetectIpad() || this.DetectIpod())\r\n                return false;\r\n                //Yay! It's an iPhone!\r\n            else\r\n                return true;\r\n        }\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an iPod Touch.\r\n    DetectIpod : function () {\r\n        if (this.uagent.search(this.deviceIpod) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an iPhone or iPod Touch.\r\n    DetectIphoneOrIpod : function () {\r\n        //We repeat the searches here because some iPods \r\n        //  may report themselves as an iPhone, which is ok.\r\n        if (this.DetectIphone() || this.DetectIpod())\r\n            return true;\r\n        else\r\n            return false;\r\n\r\n        \r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an iPad tablet.\r\n    DetectIpad : function () {\r\n        if (this.uagent.search(this.deviceIpad) > -1 && this.DetectWebkit())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects *any* iOS device: iPhone, iPod Touch, iPad.\r\n    DetectIos : function () {\r\n        if (this.DetectIphoneOrIpod() || this.DetectIpad())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //ANDROID\r\n\r\n    //**************************\r\n    // Detects *any* Android OS-based device: phone, tablet, and multi-media player.\r\n    // Also detects Google TV.\r\n    DetectAndroid : function () {\r\n        if (this.initCompleted || this.isAndroid)\r\n            return this.isAndroid;\r\n        \r\n        if (this.uagent.search(this.deviceAndroid) > -1) {\r\n            this.androidVersion = this.DetectAndroidVersion();\r\n            return true;\r\n        }\r\n\r\n        if (this.DetectGoogleTV())\r\n            return true;\r\n\r\n        //Special check for the HTC Flyer 7\" tablet. It should report here.\r\n        if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a (small-ish) Android OS-based device\r\n    // used for calling and/or multi-media (like a Samsung Galaxy Player).\r\n    // Google says these devices will have 'Android' AND 'mobile' in user agent.\r\n    // Ignores tablets (Honeycomb and later).\r\n    DetectAndroidPhone : function () {\r\n        if (this.initCompleted || this.isAndroidPhone)\r\n            return this.isAndroidPhone;\r\n\r\n        if (this.DetectAndroid() && (this.uagent.search(this.mobile) > -1))\r\n            return true;\r\n        //Special check for Android phones with Opera Mobile. They should report here.\r\n        if (this.DetectOperaAndroidPhone())\r\n            return true;\r\n        //Special check for the HTC Flyer 7\" tablet. It should report here.\r\n        if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a (self-reported) Android tablet.\r\n    // Google says these devices will have 'Android' and NOT 'mobile' in their user agent.\r\n    DetectAndroidTablet : function () {\r\n        //First, let's make sure we're on an Android device.\r\n        if (!this.DetectAndroid())\r\n            return false;\r\n\r\n        //Special check for Opera Android Phones. They should NOT report here.\r\n        if (this.DetectOperaMobile())\r\n            return false;\r\n        //Special check for the HTC Flyer 7\" tablet. It should NOT report here.\r\n        if (this.uagent.search(this.deviceHtcFlyer) > -1)\r\n            return false;\r\n\r\n        //Otherwise, if it's Android and does NOT have 'mobile' in it, Google says it's a tablet.\r\n        if (this.uagent.search(this.mobile) > -1)\r\n            return false;\r\n        else\r\n            return true;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an Android OS-based device and\r\n    //   the browser is based on WebKit.\r\n    DetectAndroidWebKit : function () {\r\n        if (this.DetectAndroid() && this.DetectWebkit())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a GoogleTV.\r\n    DetectGoogleTV : function () {\r\n        if (this.uagent.search(this.deviceGoogleTV) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is based on WebKit.\r\n    DetectWebkit : function () {\r\n        if (this.initCompleted || this.isWebkit)\r\n            return this.isWebkit;\r\n\r\n        if (this.uagent.search(this.engineWebKit) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //WINDOWS MOBILE AND PHONE\r\n\r\n    // Detects if the current browser is EITHER a \r\n    // Windows Phone 7, 8, or 10 device.\r\n    DetectWindowsPhone : function () {\r\n        if (this.DetectWindowsPhone7() ||\r\n            this.DetectWindowsPhone8() ||\r\n            this.DetectWindowsPhone10())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a Windows Phone 7.x device (in mobile browsing mode).\r\n    DetectWindowsPhone7 : function () {\r\n        if (this.uagent.search(this.deviceWinPhone7) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a Windows Phone 8 device (in mobile browsing mode).\r\n    DetectWindowsPhone8 : function () {\r\n        if (this.uagent.search(this.deviceWinPhone8) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //**************************\r\n    // Detects a Windows Phone 10 device (in mobile browsing mode).\r\n    DetectWindowsPhone10: function () {\r\n        if (this.uagent.search(this.deviceWinPhone10) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a Windows Mobile device.\r\n    // Excludes Windows Phone 7 and later devices. \r\n    // Focuses on Windows Mobile 6.xx and earlier.\r\n    DetectWindowsMobile : function () {\r\n        if (this.DetectWindowsPhone())\r\n            return false;\r\n\r\n        //Most devices use 'Windows CE', but some report 'iemobile' \r\n        //  and some older ones report as 'PIE' for Pocket IE. \r\n        if (this.uagent.search(this.deviceWinMob) > -1 ||\r\n                this.uagent.search(this.deviceIeMob) > -1 ||\r\n                this.uagent.search(this.enginePie) > -1)\r\n            return true;\r\n        //Test for Windows Mobile PPC but not old Macintosh PowerPC.\r\n        if ((this.uagent.search(this.devicePpc) > -1) &&\r\n                !(this.uagent.search(this.deviceMacPpc) > -1))\r\n            return true;\r\n        //Test for Windwos Mobile-based HTC devices.\r\n        if (this.uagent.search(this.manuHtc) > -1 &&\r\n                this.uagent.search(this.deviceWindows) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //BLACKBERRY\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry of some sort.\r\n    // Includes BB10 OS, but excludes the PlayBook.\r\n    DetectBlackBerry : function () {\r\n        if ((this.uagent.search(this.deviceBB) > -1) ||\r\n                (this.uagent.search(this.vndRIM) > -1))\r\n            return true;\r\n        if (this.DetectBlackBerry10Phone())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry 10 OS phone.\r\n    // Excludes tablets.\r\n    DetectBlackBerry10Phone : function () {\r\n        if ((this.uagent.search(this.deviceBB10) > -1) &&\r\n                (this.uagent.search(this.mobile) > -1))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is on a BlackBerry tablet device.\r\n    //    Example: PlayBook\r\n    DetectBlackBerryTablet : function () {\r\n        if (this.uagent.search(this.deviceBBPlaybook) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry device AND uses a\r\n    //    WebKit-based browser. These are signatures for the new BlackBerry OS 6.\r\n    //    Examples: Torch. Includes the Playbook.\r\n    DetectBlackBerryWebKit : function () {\r\n        if (this.DetectBlackBerry() &&\r\n                this.uagent.search(this.engineWebKit) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry Touch\r\n    //    device, such as the Storm, Torch, and Bold Touch. Excludes the Playbook.\r\n    DetectBlackBerryTouch : function () {\r\n        if (this.DetectBlackBerry() &&\r\n                ((this.uagent.search(this.deviceBBStorm) > -1) ||\r\n                (this.uagent.search(this.deviceBBTorch) > -1) ||\r\n                (this.uagent.search(this.deviceBBBoldTouch) > -1) ||\r\n                (this.uagent.search(this.deviceBBCurveTouch) > -1)))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry OS 5 device AND\r\n    //    has a more capable recent browser. Excludes the Playbook.\r\n    //    Examples, Storm, Bold, Tour, Curve2\r\n    //    Excludes the new BlackBerry OS 6 and 7 browser!!\r\n    DetectBlackBerryHigh : function () {\r\n        //Disambiguate for BlackBerry OS 6 or 7 (WebKit) browser\r\n        if (this.DetectBlackBerryWebKit())\r\n            return false;\r\n        if ((this.DetectBlackBerry()) &&\r\n                (this.DetectBlackBerryTouch() ||\r\n                this.uagent.search(this.deviceBBBold) > -1 ||\r\n                this.uagent.search(this.deviceBBTour) > -1 ||\r\n                this.uagent.search(this.deviceBBCurve) > -1))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a BlackBerry device AND\r\n    //    has an older, less capable browser. \r\n    //    Examples: Pearl, 8800, Curve1.\r\n    DetectBlackBerryLow : function () {\r\n        if (this.DetectBlackBerry()) {\r\n            //Assume that if it's not in the High tier or has WebKit, then it's Low.\r\n            if (this.DetectBlackBerryHigh() || this.DetectBlackBerryWebKit())\r\n                return false;\r\n            else\r\n                return true;\r\n        }\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //SYMBIAN\r\n\r\n    //**************************\r\n    // Detects if the current browser is the Nokia S60 Open Source Browser.\r\n    DetectS60OssBrowser : function () {\r\n        if (this.DetectWebkit()) {\r\n            if ((this.uagent.search(this.deviceS60) > -1 ||\r\n                    this.uagent.search(this.deviceSymbian) > -1))\r\n                return true;\r\n            else\r\n                return false;\r\n        }\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is any Symbian OS-based device,\r\n    //   including older S60, Series 70, Series 80, Series 90, and UIQ, \r\n    //   or other browsers running on these devices.\r\n    DetectSymbianOS : function () {\r\n        if (this.uagent.search(this.deviceSymbian) > -1 ||\r\n                this.uagent.search(this.deviceS60) > -1 ||\r\n                ((this.uagent.search(this.deviceSymbos) > -1) &&\r\n                        (this.DetectOperaMobile)) || //Opera 10\r\n                this.uagent.search(this.deviceS70) > -1 ||\r\n                this.uagent.search(this.deviceS80) > -1 ||\r\n                this.uagent.search(this.deviceS90) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //WEBOS AND PALM\r\n\r\n    //**************************\r\n    // Detects if the current browser is on a PalmOS device.\r\n    DetectPalmOS : function () {\r\n        //Make sure it's not WebOS first\r\n        if (this.DetectPalmWebOS())\r\n            return false;\r\n\r\n        //Most devices nowadays report as 'Palm', \r\n        //  but some older ones reported as Blazer or Xiino.\r\n        if (this.uagent.search(this.devicePalm) > -1 ||\r\n                this.uagent.search(this.engineBlazer) > -1 ||\r\n                this.uagent.search(this.engineXiino) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is on a Palm device\r\n    //   running the new WebOS.\r\n    DetectPalmWebOS : function () {\r\n        if (this.uagent.search(this.deviceWebOS) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is on an HP tablet running WebOS.\r\n    DetectWebOSTablet : function () {\r\n        if (this.uagent.search(this.deviceWebOShp) > -1 &&\r\n                this.uagent.search(this.deviceTablet) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    // Detects if current browser is chrome\r\n    DetectChromeBrowser : function() {\r\n        if (this.uagent.search(this.engineChrome) > -1)\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n    // Detects if current browser is IE\r\n    DetectIeBrowser: function () {\r\n        if (this.uagent.search(this.engineInternetExplorer) > -1 || this.uagent.search(this.engineTrident) > -1)\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n    // Detects if current browser is Safari\r\n    DetectSafariBrowser: function () {\r\n        if (this.uagent.search(this.engineSafari) > -1 && !this.DetectChromeBrowser())\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //OPERA\r\n\r\n    //**************************\r\n    // Detects if the current browser is Opera Mobile or Mini.\r\n    // Note: Older embedded Opera on mobile devices didn't follow these naming conventions.\r\n    //   Like Archos media players, they will probably show up in DetectMobileQuick or -Long instead. \r\n    DetectOperaMobile : function () {\r\n        if ((this.uagent.search(this.engineOpera) > -1) &&\r\n                ((this.uagent.search(this.mini) > -1 ||\r\n                this.uagent.search(this.mobi) > -1)))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is Opera Mobile \r\n    // running on an Android phone.\r\n    DetectOperaAndroidPhone : function () {\r\n        if ((this.uagent.search(this.engineOpera) > -1) &&\r\n                (this.uagent.search(this.deviceAndroid) > -1) &&\r\n                (this.uagent.search(this.mobi) > -1))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is Opera Mobile \r\n    // running on an Android tablet.\r\n    DetectOperaAndroidTablet : function () {\r\n        if ((this.uagent.search(this.engineOpera) > -1) &&\r\n                (this.uagent.search(this.deviceAndroid) > -1) &&\r\n                (this.uagent.search(this.deviceTablet) > -1))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //MISCELLANEOUS DEVICES\r\n\r\n    //**************************\r\n    // Detects if the current device is an Amazon Kindle (eInk devices only).\r\n    // Note: For the Kindle Fire, use the normal Android methods.\r\n    DetectKindle : function () {\r\n        if (this.uagent.search(this.deviceKindle) > -1 &&\r\n                !this.DetectAndroid())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current Amazon device has turned on the Silk accelerated browsing feature.\r\n    // Note: Typically used by the the Kindle Fire.\r\n    DetectAmazonSilk : function () {\r\n        if (this.uagent.search(this.engineSilk) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a\r\n    //   Garmin Nuvifone.\r\n    DetectGarminNuvifone : function () {\r\n        if (this.uagent.search(this.deviceNuvifone) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a device running the Bada smartphone OS from Samsung.\r\n    DetectBada : function () {\r\n        if (this.uagent.search(this.deviceBada) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a device running the Tizen smartphone OS.\r\n    DetectTizen : function () {\r\n        if (this.uagent.search(this.deviceTizen) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a device running the Meego OS.\r\n    DetectMeego : function () {\r\n        if (this.uagent.search(this.deviceMeego) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a mobile device (probably) running the Firefox OS.\r\n    DetectFirefoxOS: function () {\r\n        if (this.DetectFirefoxOSPhone() || this.DetectFirefoxOSTablet())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a phone (probably) running the Firefox OS.\r\n    DetectFirefoxOSPhone: function () {\r\n        //First, let's make sure we're NOT on another major mobile OS.\r\n        if (this.DetectIos() ||\r\n\t\t\tthis.DetectAndroid() ||\r\n\t\t\tthis.DetectSailfish())\r\n            return false;\r\n\r\n        if ((this.uagent.search(this.engineFirefox) > -1) &&\r\n\t\t\t(this.uagent.search(this.mobile) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a tablet (probably) running the Firefox OS.\r\n    DetectFirefoxOSTablet: function () {\r\n        //First, let's make sure we're NOT on another major mobile OS.\r\n        if (this.DetectIos() ||\r\n\t\t\tthis.DetectAndroid() ||\r\n\t\t\tthis.DetectSailfish())\r\n            return false;\r\n\r\n        if ((this.uagent.search(this.engineFirefox) > -1) &&\r\n\t\t\t(this.uagent.search(this.deviceTablet) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a device running the Sailfish OS.\r\n    DetectSailfish: function () {\r\n        if (this.uagent.search(this.deviceSailfish) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a phone running the Sailfish OS.\r\n    DetectSailfishPhone: function () {\r\n        if (this.DetectSailfish() && (this.uagent.search(this.mobile) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n\r\n    //**************************\r\n    // Detects a mobile device running the Ubuntu Mobile OS.\r\n    DetectUbuntu: function () {\r\n        if (this.DetectUbuntuPhone() || this.DetectUbuntuTablet())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a phone running the Ubuntu Mobile OS.\r\n    DetectUbuntuPhone: function () {\r\n        if ((this.uagent.search(this.deviceUbuntu) > -1) &&\r\n\t\t\t(this.uagent.search(this.mobile) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects a tablet running the Ubuntu Mobile OS.\r\n    DetectUbuntuTablet: function () {\r\n        if ((this.uagent.search(this.deviceUbuntu) > -1) &&\r\n\t\t\t(this.uagent.search(this.deviceTablet) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n    //**************************\r\n    // Detects the Danger Hiptop device.\r\n    DetectDangerHiptop : function () {\r\n        if (this.uagent.search(this.deviceDanger) > -1 ||\r\n                this.uagent.search(this.deviceHiptop) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current browser is a Sony Mylo device.\r\n    DetectSonyMylo : function () {\r\n        if ((this.uagent.search(this.manuSony) > -1) &&\r\n            ((this.uagent.search(this.qtembedded) > -1) ||\r\n             (this.uagent.search(this.mylocom2) > -1)))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is on one of \r\n    // the Maemo-based Nokia Internet Tablets.\r\n    DetectMaemoTablet : function () {\r\n        if (this.uagent.search(this.maemo) > -1)\r\n            return true;\r\n        //For Nokia N810, must be Linux + Tablet, or else it could be something else.\r\n        if ((this.uagent.search(this.linux) > -1)\r\n                && (this.uagent.search(this.deviceTablet) > -1)\r\n                && !this.DetectWebOSTablet()\r\n                && !this.DetectAndroid())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an Archos media player/Internet tablet.\r\n    DetectArchos : function () {\r\n        if (this.uagent.search(this.deviceArchos) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is an Internet-capable game console.\r\n    // Includes many handheld consoles.\r\n    DetectGameConsole : function () {\r\n        if (this.DetectSonyPlaystation() ||\r\n                this.DetectNintendo() ||\r\n                this.DetectXbox())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a Sony Playstation.\r\n    DetectSonyPlaystation : function () {\r\n        if (this.uagent.search(this.devicePlaystation) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a handheld gaming device with\r\n    // a touchscreen and modern iPhone-class browser. Includes the Playstation Vita.\r\n    DetectGamingHandheld : function () {\r\n        if ((this.uagent.search(this.devicePlaystation) > -1) &&\r\n           (this.uagent.search(this.devicePlaystationVita) > -1))\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a Nintendo game device.\r\n    DetectNintendo : function () {\r\n        if (this.uagent.search(this.deviceNintendo) > -1 ||\r\n                this.uagent.search(this.deviceWii) > -1 ||\r\n                this.uagent.search(this.deviceNintendoDs) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a Microsoft Xbox.\r\n    DetectXbox : function () {\r\n        if (this.uagent.search(this.deviceXbox) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    //**************************\r\n    // Detects whether the device is a Brew-powered device.\r\n    //   Note: Limited to older Brew-powered feature phones.\r\n    //   Ignores newer Brew versions like MP. Refer to DetectMobileQuick().\r\n    DetectBrewDevice : function () {\r\n        if (this.uagent.search(this.deviceBrew) > -1)\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n\r\n    // DEVICE CLASSES\r\n\r\n    //**************************\r\n    // Check to see whether the device is *any* 'smartphone'.\r\n    //   Note: It's better to use DetectTierIphone() for modern touchscreen devices. \r\n    DetectSmartphone : function () {\r\n        //Exclude duplicates from TierIphone\r\n        if (this.DetectTierIphone() ||\r\n                this.DetectS60OssBrowser() ||\r\n                this.DetectSymbianOS() ||\r\n                this.DetectWindowsMobile() ||\r\n                this.DetectBlackBerry() ||\r\n                this.DetectPalmOS())\r\n            return true;\r\n\r\n        //Otherwise, return false.\r\n        return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects if the current device is a mobile device.\r\n    //  This method catches most of the popular modern devices.\r\n    //  Excludes Apple iPads and other modern tablets.\r\n    DetectMobileQuick : function () {\r\n        //Let's exclude tablets.\r\n        if (this.DetectTierTablet())\r\n            return false;\r\n\r\n        if (this.initCompleted || this.isMobilePhone)\r\n            return this.isMobilePhone;\r\n\r\n        //Most mobile browsing is done on smartphones\r\n        if (this.DetectSmartphone())\r\n            return true;\r\n\r\n        //Catch all for many mobile devices\r\n        if (this.uagent.search(this.mobile) > -1)\r\n            return true;\r\n\r\n        if (this.DetectKindle() ||\r\n                this.DetectAmazonSilk())\r\n            return true;\r\n\r\n        if (this.uagent.search(this.deviceMidp) > -1 ||\r\n                this.DetectBrewDevice())\r\n            return true;\r\n\r\n        if (this.DetectOperaMobile() ||\r\n                this.DetectArchos())\r\n            return true;\r\n\r\n        if ((this.uagent.search(this.engineObigo) > -1) ||\r\n                (this.uagent.search(this.engineNetfront) > -1) ||\r\n                (this.uagent.search(this.engineUpBrowser) > -1) ||\r\n                (this.uagent.search(this.engineOpenWeb) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //**************************\r\n    // Detects in a more comprehensive way if the current device is a mobile device.\r\n    DetectMobileLong : function () {\r\n        if (this.DetectMobileQuick())\r\n            return true;\r\n        if (this.DetectGameConsole())\r\n            return true;\r\n\r\n        if (this.DetectDangerHiptop() ||\r\n                this.DetectMaemoTablet() ||\r\n                this.DetectSonyMylo() ||\r\n                this.DetectGarminNuvifone() ||\r\n                this.DetectArchos())\r\n            return true;\r\n\r\n        if ((this.uagent.search(this.devicePda) > -1) &&\r\n                !(this.uagent.search(this.disUpdate) > -1))\r\n            return true;\r\n\r\n        //Detect for certain very old devices with stupid useragent strings.\r\n        if (this.uagent.search(this.manuSamsung1) > -1 ||\r\n                this.uagent.search(this.manuSonyEricsson) > -1 ||\r\n                this.uagent.search(this.manuericsson) > -1)\r\n            return true;\r\n\r\n        if ((this.uagent.search(this.svcDocomo) > -1) ||\r\n                (this.uagent.search(this.svcKddi) > -1) ||\r\n                (this.uagent.search(this.svcVodafone) > -1))\r\n            return true;\r\n\r\n        return false;\r\n    },\r\n\r\n    //*****************************\r\n    // For Mobile Web Site Design\r\n    //*****************************\r\n\r\n    //**************************\r\n    // The quick way to detect for a tier of devices.\r\n    //   This method detects for the new generation of\r\n    //   HTML 5 capable, larger screen tablets.\r\n    //   Includes iPad, Android (e.g., Xoom), BB Playbook, WebOS, etc.\r\n    DetectTierTablet : function () {\r\n        if (this.initCompleted || this.isTierTablet)\r\n            return this.isTierTablet;\r\n\r\n        if (this.DetectIpad() ||\r\n                this.DetectAndroidTablet() ||\r\n                this.DetectBlackBerryTablet() ||\r\n                this.DetectFirefoxOSTablet() ||\r\n                this.DetectUbuntuTablet() ||\r\n                this.DetectWebOSTablet())\r\n            return true;\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // The quick way to detect for a tier of devices.\r\n    //   This method detects for devices which can \r\n    //   display iPhone-optimized web content.\r\n    //   Includes iPhone, iPod Touch, Android, Windows Phone 7 and 8, BB10, WebOS, Playstation Vita, etc.\r\n    DetectTierIphone : function () {\r\n        if (this.initCompleted || this.isTierIphone)\r\n            return this.isTierIphone;\r\n\r\n        if (this.DetectIphoneOrIpod() ||\r\n                this.DetectAndroidPhone() ||\r\n                this.DetectWindowsPhone() ||\r\n                this.DetectBlackBerry10Phone() ||\r\n                this.DetectPalmWebOS() ||\r\n                this.DetectBada() ||\r\n                this.DetectTizen() ||\r\n                this.DetectFirefoxOSPhone() ||\r\n                this.DetectSailfishPhone() ||\r\n                this.DetectUbuntuPhone() ||\r\n                this.DetectGamingHandheld())\r\n            return true;\r\n\r\n        //Note: BB10 phone is in the previous paragraph\r\n        if (this.DetectBlackBerryWebKit() && this.DetectBlackBerryTouch())\r\n            return true;\r\n\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // The quick way to detect for a tier of devices.\r\n    //   This method detects for devices which are likely to be \r\n    //   capable of viewing CSS content optimized for the iPhone, \r\n    //   but may not necessarily support JavaScript.\r\n    //   Excludes all iPhone Tier devices.\r\n    DetectTierRichCss : function () {\r\n        if (this.initCompleted || this.isTierRichCss)\r\n            return this.isTierRichCss;\r\n\r\n        //Exclude iPhone and Tablet Tiers and e-Ink Kindle devices\r\n        if (this.DetectTierIphone() ||\r\n                this.DetectKindle() ||\r\n                this.DetectTierTablet())\r\n            return false;\r\n\r\n        //Exclude if not mobile\r\n        if (!this.DetectMobileQuick())\r\n            return false;\r\n\r\n        //If it's a mobile webkit browser on any other device, it's probably OK.\r\n        if (this.DetectWebkit())\r\n            return true;\r\n\r\n        //The following devices are also explicitly ok.\r\n        if (this.DetectS60OssBrowser() ||\r\n                this.DetectBlackBerryHigh() ||\r\n                this.DetectWindowsMobile() ||\r\n                (this.uagent.search(this.engineTelecaQ) > -1))\r\n            return true;\r\n\r\n        else\r\n            return false;\r\n    },\r\n\r\n    //**************************\r\n    // The quick way to detect for a tier of devices.\r\n    //   This method detects for all other types of phones,\r\n    //   but excludes the iPhone and RichCSS Tier devices.\r\n    // NOTE: This method probably won't work due to poor\r\n    //  support for JavaScript among other devices. \r\n    DetectTierOtherPhones : function () {\r\n        if (this.initCompleted || this.isTierGenericMobile)\r\n            return this.isTierGenericMobile;\r\n\r\n        //Exclude iPhone, Rich CSS and Tablet Tiers\r\n        if (this.DetectTierIphone() ||\r\n                this.DetectTierRichCss() ||\r\n                this.DetectTierTablet())\r\n            return false;\r\n\r\n        //Otherwise, if it's mobile, it's OK\r\n        if (this.DetectMobileLong())\r\n            return true;\r\n\r\n        else\r\n            return false;\r\n    },\r\n\r\n    // Detects Android device version (4.4, 5.0)\r\n    DetectAndroidVersion: function () {\r\n        var androidVersion = 0.0;\r\n       \r\n        try {\r\n            androidVersion = parseFloat(this.uagent.slice(this.uagent.indexOf(this.deviceAndroid) + 8));\r\n        } catch (e) {\r\n            console.log(e.message);\r\n        }\r\n\r\n        return androidVersion;\r\n    }\r\n};\r\n\r\n\r\n"],"names":["EnsembleVideo","Platform","this","initCompleted","isWebkit","isMobilePhone","isIphone","isAndroid","isIos","isWindowsPhone","isAndroidPhone","isTierTablet","isTierIphone","isTierRichCss","isTierGenericMobile","engineWebKit","deviceIphone","deviceIpod","deviceIpad","deviceMacPpc","deviceAndroid","deviceGoogleTV","deviceHtcFlyer","deviceWinPhone7","deviceWinPhone8","deviceWinPhone10","deviceWinMob","deviceWindows","deviceIeMob","deviceUbuntu","devicePpc","enginePie","deviceBB","deviceBB10","vndRIM","deviceBBStorm","deviceBBBold","deviceBBBoldTouch","deviceBBTour","deviceBBCurve","deviceBBCurveTouch","deviceBBTorch","deviceBBPlaybook","deviceSymbian","deviceSymbos","deviceS60","deviceS70","deviceS80","deviceS90","devicePalm","deviceWebOS","deviceWebOShp","engineBlazer","engineXiino","deviceNuvifone","deviceBada","deviceTizen","deviceMeego","deviceKindle","engineSilk","vndwap","wml","deviceTablet","deviceBrew","deviceDanger","deviceHiptop","devicePlaystation","devicePlaystationVita","deviceNintendoDs","deviceNintendo","deviceWii","deviceXbox","deviceArchos","engineFirefox","engineChrome","engineSafari","engineOpera","engineInternetExplorer","engineTrident","engineNetfront","engineUpBrowser","engineOpenWeb","deviceMidp","uplink","engineTelecaQ","engineObigo","devicePda","mini","mobile","mobi","maemo","linux","mylocom2","manuSonyEricsson","manuericsson","manuSamsung1","manuSony","manuHtc","svcDocomo","svcKddi","svcVodafone","disUpdate","uagent","isChromeBrowser","isSafariBrowser","androidVersion","prototype","InitDeviceScan","navigator","userAgent","toLowerCase","DetectWebkit","DetectIphone","DetectAndroid","DetectAndroidPhone","DetectIos","DetectTierIphone","DetectTierTablet","DetectMobileQuick","DetectTierRichCss","DetectTierOtherPhones","DetectChromeBrowser","isIeBrowser","DetectIeBrowser","DetectSafariBrowser","search","DetectIpad","DetectIpod","DetectIphoneOrIpod","DetectAndroidVersion","DetectGoogleTV","DetectOperaAndroidPhone","DetectAndroidTablet","DetectOperaMobile","DetectAndroidWebKit","DetectWindowsPhone","DetectWindowsPhone7","DetectWindowsPhone8","DetectWindowsPhone10","DetectWindowsMobile","DetectBlackBerry","DetectBlackBerry10Phone","DetectBlackBerryTablet","DetectBlackBerryWebKit","DetectBlackBerryTouch","DetectBlackBerryHigh","DetectBlackBerryLow","DetectS60OssBrowser","DetectSymbianOS","DetectPalmOS","DetectPalmWebOS","DetectWebOSTablet","DetectOperaAndroidTablet","DetectKindle","DetectAmazonSilk","DetectGarminNuvifone","DetectBada","DetectTizen","DetectMeego","DetectFirefoxOS","DetectFirefoxOSPhone","DetectFirefoxOSTablet","DetectSailfish","deviceSailfish","DetectSailfishPhone","DetectUbuntu","DetectUbuntuPhone","DetectUbuntuTablet","DetectDangerHiptop","DetectSonyMylo","qtembedded","DetectMaemoTablet","DetectArchos","DetectGameConsole","DetectSonyPlaystation","DetectNintendo","DetectXbox","DetectGamingHandheld","DetectBrewDevice","DetectSmartphone","DetectMobileLong","parseFloat","slice","indexOf","e","console","log","message"],"mappings":"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"}