//append data to url on click for tracking, eg #s=* function addref(a,d){ if(a.href.indexOf(d)<0) a.href+=d; } //logs #s=* from url, and then removes it (function(){ var l=_w.location, h=l.hash, a=h.split('s='); //assume referer is in last if(h.length<2) return; l.hash=a[0].substr(1); if(a.length>1) xlg('hash','s='+a[1]); })(); //window open function wo(a,b,c){ var w=_w.open(a,b,c); if(w)w.focus(); } //opens bookmark popup function bkmk(){ wo('https://www.prlog.org/share.html#u='+_e(_w.location.href)+'&t='+_e(_d.title)); return false; } //track clicks in pr socialmedia function clks(a){ xlg('clksd','u='+_e(a.href)); } //track clicks in biz socialmedia function clkb(a){ xlg('clkbd','u='+_e(a.href)); } //used to show right side box news function shownews(e,p,a){ _w.location=p+e.value+a; } //social media var smloaded; function smload(xElement,sPageUrl,bHorizontal,sServices){ //element id, page url, horizontal/vertical, order=ftls if(smloaded)return; smloaded=1; var sBfr='',ii=0; for(;ii'; break; case 't': sBfr+='
'; break; case 'l': sBfr+='
'+ '<'+'script type="in/share" data-url="'+sPageUrl+'"'+(bHorizontal?' data-counter="right"':'')+'><'+'/script>
'; break; case 's': sBfr+='
'; break; } } //script load function fxLoad(sUrl){ var oScript=_d.createElement('script'); oScript.async=true; oScript.src='https://'+sUrl; _t('head')[0].appendChild(oScript); } if(xElement=_i(xElement)) xElement.innerHTML=''+sBfr+'
', fxLoad('ws.sharethis.com/button/buttons.js'), fxLoad('platform.twitter.com/widgets.js'), fxLoad('platform.linkedin.com/in.js'); } //ajaxlog(section_name,post_data) function xlg(sKey,sData){ var r=new XMLHttpRequest(); r.open('POST','/xlg/'+sKey,true); r.setRequestHeader('Content-type','application/x-www-form-urlencoded'); r.send(sData); } //client side js error logging var _jserr=0; _w.onerror=function(sMsg,sUrl,iLine,iCol,oErr){ //allow max 2 error to be logged //only log local errors //'ResizeObserver loop limit exceeded' error is benign and not caused by us if(sUrl && _jserr<2 && sUrl.indexOf('prlog')>0 && sMsg.indexOf('ResizeObserver')<0){ _jserr++; xlg('jserr','P=0&F='+sUrl+':'+iLine+':'+iCol+'&M='+sMsg+'&S='+((oErr && oErr.stack)?oErr.stack:'')); } }