( function ( g ) { var t = { PLATFORM_WINDOWS: 'windows', PLATFORM_IPHONE: 'iphone', PLATFORM_IPOD: 'ipod', PLATFORM_IPAD: 'ipad', PLATFORM_BLACKBERRY: 'blackberry', PLATFORM_BLACKBERRY_10: 'blackberry_10', PLATFORM_SYMBIAN: 'symbian_series60', PLATFORM_SYMBIAN_S40: 'symbian_series40', PLATFORM_J2ME_MIDP: 'j2me_midp', PLATFORM_ANDROID: 'android', PLATFORM_ANDROID_TABLET: 'android_tablet', PLATFORM_FIREFOX_OS: 'firefoxOS', PLATFORM_MOBILE_GENERIC: 'mobile_generic', userAgent : false, // Shortcut to the browser User Agent String. matchedPlatformName : false, // Matched platform name. False otherwise. matchedUserAgentName : false, // Matched UA String. False otherwise. init: function() { try { t.userAgent = g.navigator.userAgent.toLowerCase(); t.getPlatformName(); t.getMobileUserAgentName(); } catch ( e ) { console.error( e ); } }, initForTest: function( userAgent ) { t.matchedPlatformName = false; t.matchedUserAgentName = false; try { t.userAgent = userAgent.toLowerCase(); t.getPlatformName(); t.getMobileUserAgentName(); } catch ( e ) { console.error( e ); } }, /** * This method detects the mobile User Agent name. */ getMobileUserAgentName: function() { if ( t.matchedUserAgentName !== false ) return t.matchedUserAgentName; if ( t.userAgent === false ) return false; if ( t.isChromeForIOS() ) t.matchedUserAgentName = 'chrome-for-ios'; else if ( t.isTwitterForIpad() ) t.matchedUserAgentName = 'twitter-for-ipad'; else if ( t.isTwitterForIphone() ) t.matchedUserAgentName = 'twitter-for-iphone'; else if ( t.isIPhoneOrIPod() ) t.matchedUserAgentName = 'iphone'; else if ( t.isIPad() ) t.matchedUserAgentName = 'ipad'; else if ( t.isAndroidTablet() ) t.matchedUserAgentName = 'android_tablet'; else if ( t.isAndroid() ) t.matchedUserAgentName = 'android'; else if ( t.isBlackberry10() ) t.matchedUserAgentName = 'blackberry_10'; else if ( has( 'blackberry' ) ) t.matchedUserAgentName = 'blackberry'; else if ( t.isBlackberryTablet() ) t.matchedUserAgentName = 'blackberry_tablet'; else if ( t.isWindowsPhone7() ) t.matchedUserAgentName = 'win7'; else if ( t.isWindowsPhone8() ) t.matchedUserAgentName = 'winphone8'; else if ( t.isOperaMini() ) t.matchedUserAgentName = 'opera-mini'; else if ( t.isOperaMobile() ) t.matchedUserAgentName = 'opera-mobi'; else if ( t.isKindleFire() ) t.matchedUserAgentName = 'kindle-fire'; else if ( t.isSymbianPlatform() ) t.matchedUserAgentName = 'series60'; else if ( t.isFirefoxMobile() ) t.matchedUserAgentName = 'firefox_mobile'; else if ( t.isFirefoxOS() ) t.matchedUserAgentName = 'firefoxOS'; else if ( t.isFacebookForIphone() ) t.matchedUserAgentName = 'facebook-for-iphone'; else if ( t.isFacebookForIpad() ) t.matchedUserAgentName = 'facebook-for-ipad'; else if ( t.isWordPressForIos() ) t.matchedUserAgentName = 'ios-app'; else if ( has( 'iphone' ) ) t.matchedUserAgentName = 'iphone-unknown'; else if ( has( 'ipad' ) ) t.matchedUserAgentName = 'ipad-unknown'; return t.matchedUserAgentName; }, /** * This method detects the mobile platform name. */ getPlatformName : function() { if ( t.matchedPlatformName !== false ) return t.matchedPlatformName; if ( t.userAgent === false ) return false; if ( has( 'windows ce' ) || has( 'windows phone' ) ) { t.matchedPlatformName = t.PLATFORM_WINDOWS; } else if ( has( 'ipad' ) ) { t.matchedPlatformName = t.PLATFORM_IPAD; } else if ( has( 'ipod' ) ) { t.matchedPlatformName = t.PLATFORM_IPOD; } else if ( has( 'iphone' ) ) { t.matchedPlatformName = t.PLATFORM_IPHONE; } else if ( has( 'android' ) ) { if ( t.isAndroidTablet() ) t.matchedPlatformName = t.PLATFORM_ANDROID_TABLET; else t.matchedPlatformName = t.PLATFORM_ANDROID; } else if ( t.isKindleFire() ) { t.matchedPlatformName = t.PLATFORM_ANDROID_TABLET; } else if ( t.isBlackberry10() ) { t.matchedPlatformName = t.PLATFORM_BLACKBERRY_10; } else if ( has( 'blackberry' ) ) { t.matchedPlatformName = t.PLATFORM_BLACKBERRY; } else if ( t.isBlackberryTablet() ) { t.matchedPlatformName = t.PLATFORM_BLACKBERRY; } else if ( t.isSymbianPlatform() ) { t.matchedPlatformName = t.PLATFORM_SYMBIAN; } else if ( t.isSymbianS40Platform() ) { t.matchedPlatformName = t.PLATFORM_SYMBIAN_S40; } else if ( t.isJ2MEPlatform() ) { t.matchedPlatformName = t.PLATFORM_J2ME_MIDP; } else if ( t.isFirefoxOS() ) { t.matchedPlatformName = t.PLATFORM_FIREFOX_OS; } else if ( t.isFirefoxMobile() ) { t.matchedPlatformName = t.PLATFORM_MOBILE_GENERIC; } return t.matchedPlatformName; }, /** * Detect the BlackBerry OS version. * * Note: This is for smartphones only. Does not work on BB tablets. */ getBlackBerryOSVersion : check( function() { if ( t.isBlackberry10() ) return '10'; if ( ! has( 'blackberry' ) ) return false; var rv = -1; // Return value assumes failure. var re; if ( has( 'webkit' ) ) { // Detecting the BB OS version for devices running OS 6.0 or higher re = /Version\/([\d\.]+)/i; } else { // BlackBerry devices <= 5.XX re = /BlackBerry\w+\/([\d\.]+)/i; } if ( re.exec( t.userAgent ) != null ) rv = RegExp.$1.toString(); return rv === -1 ? false : rv; } ), /** * Detects if the current UA is iPhone Mobile Safari or another iPhone or iPod Touch Browser. */ isIPhoneOrIPod : check( function() { return has( 'safari' ) && ( has( 'iphone' ) || has( 'ipod' ) ); } ), /** * Detects if the current device is an iPad. */ isIPad : check( function() { return has( 'ipad' ) && has( 'safari' ); } ), /** * Detects if the current UA is Chrome for iOS */ isChromeForIOS : check( function() { return t.isIPhoneOrIPod() && has( 'crios/' ); } ), /** * Detects if the current browser is the Native Android browser. */ isAndroid : check( function() { if ( has( 'android' ) ) { return ! ( t.isOperaMini() || t.isOperaMobile() || t.isFirefoxMobile() ); } } ), /** * Detects if the current browser is the Native Android Tablet browser. */ isAndroidTablet : check( function() { if ( has( 'android' ) && ! has( 'mobile' ) ) { return ! ( t.isOperaMini() || t.isOperaMobile() || t.isFirefoxMobile() ); } } ), /** * Detects if the current browser is Opera Mobile */ isOperaMobile : check( function() { return has( 'opera' ) && has( 'mobi' ); } ), /** * Detects if the current browser is Opera Mini */ isOperaMini : check( function() { return has( 'opera' ) && has( 'mini' ); } ), /** * isBlackberry10() can be used to check the User Agent for a BlackBerry 10 device. */ isBlackberry10 : check( function() { return has( 'bb10' ) && has( 'mobile' ); } ), /** * isBlackberryTablet() can be used to check the User Agent for a RIM blackberry tablet */ isBlackberryTablet : check( function() { return has( 'playbook' ) && has( 'rim tablet' ); } ), /** * Detects if the current browser is a Windows Phone 7 device. */ isWindowsPhone7 : check( function () { return has( 'windows phone os 7' ); } ), /** * Detects if the current browser is a Windows Phone 8 device. */ isWindowsPhone8 : check( function () { return has( 'windows phone 8' ); } ), /** * Detects if the device platform is J2ME. */ isJ2MEPlatform : check( function () { return has( 'j2me/midp' ) || ( has( 'midp' ) && has( 'cldc' ) ); } ), /** * Detects if the device platform is the Symbian Series 40. */ isSymbianS40Platform : check( function() { if ( has( 'series40' ) ) { return has( 'nokia' ) || has( 'ovibrowser' ) || has( 'nokiabrowser' ); } } ), /** * Detects if the device platform is the Symbian Series 60. */ isSymbianPlatform : check( function() { if ( has( 'webkit' ) ) { // First, test for WebKit, then make sure it's either Symbian or S60. return has( 'symbian' ) || has( 'series60' ); } else if ( has( 'symbianos' ) && has( 'series60' ) ) { return true; } else if ( has( 'nokia' ) && has( 'series60' ) ) { return true; } else if ( has( 'opera mini' ) ) { return has( 'symbianos' ) || has( 'symbos' ) || has( 'series 60' ); } } ), /** * Detects if the current browser is the Kindle Fire Native browser. */ isKindleFire : check( function() { return has( 'silk/' ) && has( 'silk-accelerated=' ); } ), /** * Detects if the current browser is Firefox Mobile (Fennec) */ isFirefoxMobile : check( function() { return has( 'fennec' ); } ), /** * Detects if the current browser is the native FirefoxOS browser */ isFirefoxOS : check( function() { return has( 'mozilla' ) && has( 'mobile' ) && has( 'gecko' ) && has( 'firefox' ); } ), /** * Detects if the current UA is Facebook for iPad */ isFacebookForIpad : check( function() { if ( ! has( 'ipad' ) ) return false; return has( 'facebook' ) || has( 'fbforiphone' ) || has( 'fban/fbios;' ); } ), /** * Detects if the current UA is Facebook for iPhone */ isFacebookForIphone : check( function() { if ( ! has( 'iphone' ) ) return false; return ( has( 'facebook' ) && ! has( 'ipad' ) ) || ( has( 'fbforiphone' ) && ! has( 'tablet' ) ) || ( has( 'fban/fbios;' ) && ! has( 'tablet' ) ); // FB app v5.0 or higher } ), /** * Detects if the current UA is Twitter for iPhone */ isTwitterForIphone : check( function() { if ( has( 'ipad' ) ) return false; return has( 'twitter for iphone' ); } ), /** * Detects if the current UA is Twitter for iPad */ isTwitterForIpad : check( function() { return has( 'twitter for ipad' ) || ( has( 'ipad' ) && has( 'twitter for iphone' ) ); } ), /** * Detects if the current UA is WordPress for iOS */ isWordPressForIos : check( function() { return has( 'wp-iphone' ); } ) }; function has( str ) { return t.userAgent.indexOf( str ) != -1; } function check( fn ) { return function() { return t.userAgent === false ? false : fn() || false; } } g.wpcom_mobile_user_agent_info = t; } )( typeof window !== 'undefined' ? window : this ); ; !function(){"use strict";var t={response:null,getEndpointURL:function(t){var e,s="undefined"!=typeof wp&&wp.customize&&wp.customize.settings&&wp.customize.settings.url&&wp.customize.settings.url.self;s?(e=document.createElement("a")).href=wp.customize.settings.url.self:e=document.location,"string"==typeof t&&t.match(/^https?:\/\//)&&((e=document.createElement("a")).href=t);var a="relatedposts=1",o=document.querySelector("#jp-relatedposts");if(!o)return!1;o.hasAttribute("data-exclude")&&(a+="&relatedposts_exclude="+o.getAttribute("data-exclude")),s&&(a+="&jetpackrpcustomize=1");var r=e.pathname;return"/"!==r[0]&&(r="/"+r),""===e.search?r+"?"+a:r+e.search+"&"+a},getAnchor:function(t,e){var s=t.title,a=document.createElement("a");a.setAttribute("class",e),a.setAttribute("href",t.url),a.setAttribute("title",s),a.setAttribute("data-origin",t.url_meta.origin),a.setAttribute("data-position",t.url_meta.position),""!==t.rel&&a.setAttribute("rel",t.rel);var o=document.createElement("div");o.appendChild(a);var r=o.innerHTML;return[r.substring(0,r.length-4),""]},generateMinimalHtml:function(t,e){var s=this,a="";return t.forEach((function(t,o){var r=s.getAnchor(t,"jp-relatedposts-post-a"),p="jp-relatedposts-post jp-relatedposts-post"+o;t.classes.length>0&&(p+=" "+t.classes.join(" ")),a+='
',a+='
"})),' ",e.showDate&&(a+='"),e.showContext&&(a+=' "),a+=" "},generateVisualHtml:function(t,e){var s=this,a="";return t.forEach((function(t,o){var r=s.getAnchor(t,"jp-relatedposts-post-a"),p="jp-relatedposts-post jp-relatedposts-post"+o;t.classes.length>0&&(p+=" "+t.classes.join(" ")),t.img.src?p+=" jp-relatedposts-post-thumbs":p+=" jp-relatedposts-post-nothumbs";var i=document.createElement("p");i.innerHTML=t.excerpt;var n=i.textContent;if(a+='