var mod_pagespeed_KypvEu7X2V = "$(document).ready(function(){$('a').each(referralLinks);});function referralLinks(){var link=$(this).attr('href');if(!link){return;}if(link.match(/^https?:\\/\\/((www|search|trees)\\.)?ancestry.com/i)){$(this).attr('href','https://ancestry.prf.hn/click/camref:1011l4xx5/type:cpc/destination:'+link);}else if(link.match(/^https?:\\/\\/((www|search|trees)\\.)?ancestry.co.uk/i)){$(this).attr('href','https://ancestry.prf.hn/click/camref:1011l4JYM/type:cpc/destination:'+link);}else if(link.match(/^https?:\\/\\/((www|search|trees)\\.)?ancestry.ca/i)){$(this).attr('href','https://ancestry.prf.hn/click/camref:1101l4JVX/type:cpc/destination:'+link);}else if(link.match(/^https?:\\/\\/((www|search|trees)\\.)?ancestry.com.au/i)){$(this).attr('href','https://ancestry.prf.hn/click/camref:1011l4JYL/type:cpc/destination:'+link);}else if(link.match(/^https?:\\/\\/(.+)?myheritage.com/)){if(link.match(/utm_medium/)){return;}var funnel='';if(link.match(/\\/(research|last-name|search-records)/)){funnel='data';}else if(link.match(/\\/dna/)){funnel='mh+dna';}else{funnel='web';}var postscript='utm_source=partner_wikitree&utm_medium=partner&utm_campaign=wikitree_apr20&tr_funnel='+funnel;if(link.match(/\\?/)){$(this).attr('href',link+'&'+postscript);}else{$(this).attr('href',link+'?'+postscript);}}}";
var mod_pagespeed_AteF5fb8YI = "!function(factory){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],factory):jQuery&&!jQuery.fn.hoverIntent&&factory(jQuery)}(function($){\"use strict\";var cX,cY,_cfg={interval:100,sensitivity:6,timeout:0},INSTANCE_COUNT=0,track=function(ev){cX=ev.pageX,cY=ev.pageY},compare=function(ev,$el,s,cfg){if(Math.sqrt((s.pX-cX)*(s.pX-cX)+(s.pY-cY)*(s.pY-cY))<cfg.sensitivity)return $el.off(s.event,track),delete s.timeoutId,s.isActive=!0,ev.pageX=cX,ev.pageY=cY,delete s.pX,delete s.pY,cfg.over.apply($el[0],[ev]);s.pX=cX,s.pY=cY,s.timeoutId=setTimeout(function(){compare(ev,$el,s,cfg)},cfg.interval)},delay=function(ev,$el,s,out){return delete $el.data(\"hoverIntent\")[s.id],out.apply($el[0],[ev])};$.fn.hoverIntent=function(handlerIn,handlerOut,selector){var instanceId=INSTANCE_COUNT++,cfg=$.extend({},_cfg);$.isPlainObject(handlerIn)?(cfg=$.extend(cfg,handlerIn),$.isFunction(cfg.out)||(cfg.out=cfg.over)):cfg=$.isFunction(handlerOut)?$.extend(cfg,{over:handlerIn,out:handlerOut,selector:selector}):$.extend(cfg,{over:handlerIn,out:handlerIn,selector:handlerOut});var handleHover=function(e){var ev=$.extend({},e),$el=$(this),hoverIntentData=$el.data(\"hoverIntent\");hoverIntentData||$el.data(\"hoverIntent\",hoverIntentData={});var state=hoverIntentData[instanceId];state||(hoverIntentData[instanceId]=state={id:instanceId}),state.timeoutId&&(state.timeoutId=clearTimeout(state.timeoutId));var mousemove=state.event=\"mousemove.hoverIntent.hoverIntent\"+instanceId;if(\"mouseenter\"===e.type){if(state.isActive)return;state.pX=ev.pageX,state.pY=ev.pageY,$el.off(mousemove,track).on(mousemove,track),state.timeoutId=setTimeout(function(){compare(ev,$el,state,cfg)},cfg.interval)}else{if(!state.isActive)return;$el.off(mousemove,track),state.timeoutId=setTimeout(function(){delay(ev,$el,state,cfg.out)},cfg.timeout)}};return this.on({\"mouseenter.hoverIntent\":handleHover,\"mouseleave.hoverIntent\":handleHover},cfg.selector)}});";
var mod_pagespeed_V5kmfCm7Za = "var pagePreviewHoverIntentConfig={sensitivity:1,interval:195,timeout:70,selector:'a',over:function(e){var page='';var h=e.target.href;if(!h){h=e.target.closest('a').href;}if(!h){return;}clearTimeout(pagePreviewCloseTimeout);if(pagePreviewDisabled){return;}var targetIsInPreview=$(e.target).closest('a').data('inpreview');if(targetIsInPreview){if(pagePreviewSaveX==e.pageX&&pagePreviewSaveY==e.pageY){return;}}if($(e.target).hasClass('pureCssMenui')||$(e.target).hasClass('pureCssMenui0')){return;}var isSpousesLink=$(e.target).hasClass('showSpousesSectionTrigger');if(isSpousesLink){switchToSpousesView();pagePreviewSaveX=e.pageX;pagePreviewSaveY=e.pageY;return;}var isChildrenLink=$(e.target).hasClass('showChildrenSectionTrigger');if(isChildrenLink){switchToChildrenView();pagePreviewSaveX=e.pageX;pagePreviewSaveY=e.pageY;return;}h=h.replace(/#.*/,'');if(h==thisPagePath){return;}if(m=h.match(/https:\\/\\/(\\S+).wikitree.com\\/(\\S+)$/)){uri=m[2];if(m=uri.match(/^(g2g\\/user|wiki)\\/(\\S+)$/)){page=m[2];if(pagePreviewIds.length==0||(page!=pagePreviewIds[pagePreviewIds.length-1])){buildPagePreview(e,page,targetIsInPreview);}}}},out:function(e){if($('#pagePreview:hover').length!=0){$('#pagePreview').on('mouseleave',function(e){delayedClosePagePreview();});}else{delayedClosePagePreview();}}};$(document).ready(function(){$('a').each(function(){var h=$(this).attr('href');if(h){if(h.match(/https:\\/\\/(\\S+).wikitree.com\\/(g2g\\/user|wiki)\\/([^:]+)\\-\\d+/)||h.match(/^\\/(g2g\\/user|wiki)\\/([^:]+)\\-\\d+/)){$(this).attr('title','');}}});$('body').hoverIntent(pagePreviewHoverIntentConfig);$('#pagePreview').on('click','#backPagePreviewButton',function(e){backPagePreview(e);});});function delayedClosePagePreview(){clearTimeout(pagePreviewCloseTimeout);pagePreviewCloseTimeout=window.setTimeout(function(){if($('#pagePreview:hover').length==0){closePagePreview();}},300);}function closePagePreview(){$('#pagePreview').fadeOut();$('#pagePreviewInner').remove();pagePreviewIds=[];}function backPagePreview(e){if(pagePreviewIds.length>0){var page=pagePreviewIds.pop();if(page=='internalsection:children'||page=='internalsection:spouses'){$('#pagePreviewProfileSection').show();$('#pagePreviewSpousesSection').hide();$('#pagePreviewChildrenSection').hide();if(pagePreviewIds.length<=1){pagePreviewIds=[];$('#backPagePreviewButton').hide();}return;}page=pagePreviewIds.pop();if(page){if(page=='internalsection:children'||page=='internalsection:spouses'){var realPage=pagePreviewIds.pop();if(realPage){buildPagePreview(e,realPage,1).then(function(){if(page=='internalsection:children'){switchToChildrenView();}if(page=='internalsection:spouses'){switchToSpousesView();}});}else{delayedClosePagePreview();}}else{buildPagePreview(e,page,1);}}else{delayedClosePagePreview();}}}function disablePagePreview(e){closePagePreview();pagePreviewDisabled=1;var post_data=\"rs=\"+encodeURIComponent('User::ajaxUpdateOption')+\"&rsargs[]=\"+encodeURIComponent('disable_previews')+\"&rsargs[]=1\";$.post('/index.php?action=ajax',post_data,function(result){if(result){var j=JSON.parse(result);if(j.error){console.log(j.error);}}});}function pausePagePreview(e){closePagePreview();pagePreviewDisabled=1;}function buildPagePreview(e,page,targetIsInPreview){return new Promise(function(resolve,reject){var post_data=\"rs=\"+encodeURIComponent('Title::ajaxPagePreview')+\"&rsargs[]=\"+encodeURIComponent(page);$.post('/index.php?action=ajax',post_data,function(result){if(result){$('#pagePreviewInner').remove();$('<div id=\"pagePreviewInner\" />').html(result).appendTo('#pagePreview');$('#pagePreviewInner a').each(function(){$(this).data('inpreview',1);});if(!targetIsInPreview){var t=e.pageY+5;var l=e.pageX;if(l+$('#pagePreview').width()>$(window).width()){l=e.pageX-$('#pagePreview').width()-5;}$('#pagePreview').css({'top':t,'left':l}).fadeIn();var rect=document.getElementById('pagePreview').getBoundingClientRect();if(rect.bottom>window.innerHeight){t=e.pageY-$('#pagePreview').height()-5;$('#pagePreview').css({'top':t});}}pagePreviewSaveX=e.pageX;pagePreviewSaveY=e.pageY;e.target.title='';$('#closePagePreviewButton').on('click',function(e){closePagePreview();});$('#pagePreview').off('mouseleave');$('#pagePreview').on('mouseleave',function(e){delayedClosePagePreview();});$('#disablePagePreviewButton').on('click',function(e){disablePagePreview(e);});$('#pausePagePreviewButton').on('click',function(e){pausePagePreview(e);});if(pagePreviewIds.length>0){$('#backPagePreviewButton').show();}pagePreviewIds.push(page);}resolve(page);});});}function switchToSpousesView(){$('#pagePreviewProfileSection').hide();$('#pagePreviewSpousesSection').show();$('#pagePreviewChildrenSection').hide();pagePreviewIds.push('internalsection:spouses');$('#backPagePreviewButton').show();}function switchToChildrenView(){$('#pagePreviewProfileSection').hide();$('#pagePreviewSpousesSection').hide();$('#pagePreviewChildrenSection').show();pagePreviewIds.push('internalsection:children');$('#backPagePreviewButton').show();}var thisPagePath=window.location.href;thisPagePath=thisPagePath.replace(/#.*/,'');var pagePreviewSaveX;var pagePreviewSaveY;var pagePreviewIds=[];var pagePreviewCloseTimeout;var pagePreviewDisabled=0;";
var mod_pagespeed_IVwHten8SK = "$(document).ready(function(){$(document).on('click','.copyWidget',function(e){copyWidget(e);});$(document).on('mouseout','.copyWidget',function(e){if($(this).data('copy-label')){$(this).attr('aria-label',$(this).data('copy-label'));}else{$(this).attr('aria-label','Copy ID');}});$(document).on('focusout','.copyWidget',function(e){if($(this).data('copy-label')){$(this).attr('aria-label',$(this).data('copy-label'));}else{$(this).attr('aria-label','Copy ID');}});});function copyWidget(e){e.preventDefault();var target=e.currentTarget;var text=$(target).html();if($(target).data('copy-text')){text=$(target).data('copy-text');}copyTextToClipboard(text);$(target).attr('aria-label','Copied');}function copyTextToClipboard(text){var textArea=document.createElement(\"textarea\");textArea.style.position='fixed';textArea.style.top=0;textArea.style.left=0;textArea.style.width='2em';textArea.style.height='2em';textArea.style.padding=0;textArea.style.border='none';textArea.style.outline='none';textArea.style.boxShadow='none';textArea.style.background='transparent';textArea.value=text;document.body.appendChild(textArea);textArea.focus();textArea.select();try{var successful=document.execCommand('copy');var msg=successful?'successful':'unsuccessful';}catch(err){console.log('Oops, unable to copy');}document.body.removeChild(textArea);}";
var mod_pagespeed_dkpUTTxSnH = "  {\r\n    try {\r\n      const jsonpFetch = ({ url }) => {\r\n        return new Promise((resolve, reject) => {\r\n          let callback = \"jsonp_callback_\" + Math.round(100000 * Math.random());\r\n          window[callback] = (data) => {\r\n            delete window[callback];\r\n\r\n            document.body.removeChild(script);\r\n\r\n            resolve(data);\r\n          };\r\n\r\n          const script = document.createElement(\"script\");\r\n          const divider = url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\r\n          script.src = url + divider + \"callback=\" + callback;\r\n          document.body.appendChild(script);\r\n        });\r\n      };\r\n\r\n      const getLocationId = () => {\r\n        try {\r\n          const options = Array.from(locationList.children);\r\n\r\n          const value = locationInput.value;\r\n\r\n          const option = options.find((option) => {\r\n            return option.value === value;\r\n          });\r\n\r\n          if (option) {\r\n            return option.getAttribute(\"data-id\");\r\n          } else {\r\n            return -1;\r\n          }\r\n        } catch (error) {}\r\n      };\r\n\r\n      const form = document.querySelector(\"#stories-connect-in #form\");\r\n\r\n      const locationInput = document.querySelector(\r\n        \"#stories-connect-in-location-input\"\r\n      );\r\n\r\n      const locationList = document.querySelector(\r\n        \"#stories-connect-in-location-list\"\r\n      );\r\n\r\n      const locationIdInput = document.querySelector(\r\n        \"#stories-connect-in-location-id\"\r\n      );\r\n\r\n      let isSearching = null;\r\n      const textChange = async () => {\r\n        // TODO: character limit and or debounce?\r\n        if (!isSearching) {\r\n          isSearching = true;\r\n\r\n          const results = await jsonpFetch({\r\n            url:\r\n              \"https://placepfx.ancestry.com/s/?maxCount=6&cultureId=en&prefix=\" +\r\n              locationInput.value,\r\n          });\r\n\r\n          if (results && results.length) {\r\n            let newList = \"\";\r\n\r\n            results.forEach((result) => {\r\n              newList +=\r\n                '<option data-id=\"' +\r\n                result.Id +\r\n                '\" value=\"' +\r\n                result.HName +\r\n                '\"></option>';\r\n            });\r\n\r\n            locationList.innerHTML = newList;\r\n          }\r\n\r\n          isSearching = false;\r\n        }\r\n      };\r\n\r\n      locationInput.addEventListener(\"keyup\", textChange);\r\n      locationInput.addEventListener(\"paste\", textChange);\r\n\r\n      locationInput.addEventListener(\"change\", () => {\r\n        const locationId = getLocationId();\r\n\r\n        if (locationId !== -1) {\r\n          locationIdInput.value = locationId;\r\n        } else {\r\n          locationIdInput.value = null;\r\n        }\r\n      });\r\n\r\n      locationInput.addEventListener(\"invalid\", () => {\r\n        if (locationInput.validity.patternMismatch) {\r\n          locationInput.setCustomValidity(\r\n            \"Please select a place from the dropdown.\"\r\n          );\r\n        } else {\r\n          locationInput.setCustomValidity(\"\");\r\n        }\r\n      });\r\n\r\n      locationIdInput.addEventListener(\"invalid\", () => {\r\n        if (\r\n          locationIdInput.validity.patternMismatch ||\r\n          locationIdInput.validity.valueMissing\r\n        ) {\r\n          locationIdInput.setCustomValidity(\r\n            \"Please select a place from the dropdown.\"\r\n          );\r\n        } else {\r\n          locationIdInput.setCustomValidity(\"\");\r\n        }\r\n      });\r\n\r\n      document\r\n        .querySelector(\"#stories-connect-in form\")\r\n        .addEventListener(\"submit\", () => {\r\n          let storiesConnectInCard = localStorage.getItem(\r\n            \"stories_connect_in_card\"\r\n          );\r\n\r\n          if (storiesConnectInCard) {\r\n            storiesConnectInCard = JSON.parse(storiesConnectInCard);\r\n          }\r\n\r\n          localStorage.setItem(\r\n            \"stories_connect_in_card\",\r\n            JSON.stringify(\r\n              Object.assign(storiesConnectInCard || {}, {\r\n                formSubmitted: true,\r\n              })\r\n            )\r\n          );\r\n        });\r\n    } catch (error) {}\r\n  }\r\n\r\n";
