(function(){function decryptCharcode(charCode,start,end,offset){charCode=charCode+offset;if(offset>0&&charCode>end){charCode=start+(charCode-end-1)}else if(offset<0&&charCode<start){charCode=end-(start-charCode-1)}
return String.fromCharCode(charCode)}
function decryptString(value,offset){var result='';for(var i=0;i<value.length;i++){var charCode=value.charCodeAt(i);if(charCode>=0x2B&&charCode<=0x3A){result+=decryptCharcode(charCode,0x2B,0x3A,offset)}else if(charCode>=0x40&&charCode<=0x5A){result+=decryptCharcode(charCode,0x40,0x5A,offset)}else if(charCode>=0x61&&charCode<=0x7A){result+=decryptCharcode(charCode,0x61,0x7A,offset)}else{result+=value.charAt(i)}}
return result}
function windowOpen(url,target,features){var windowRef=window.open(url,target,features);if(windowRef){windowRef.focus()}
return windowRef}
function delegateEvent(event,selector,callback){document.addEventListener(event,function(evt){for(var targetElement=evt.target;targetElement&&targetElement!==document;targetElement=targetElement.parentNode){if(targetElement.matches(selector)){callback.call(targetElement,evt,targetElement)}}})}
if(typeof window.linkTo_UnCryptMailto==='undefined'){window.linkTo_UnCryptMailto=function(value,offset){console.warn('Function linkTo_UnCryptMailto() is deprecated and will be remove in TYPO3 v12.0');if(value&&offset){document.location.href=decryptString(value,offset)}}}
delegateEvent('click','a[data-mailto-token][data-mailto-vector]',function(evt,evtTarget){evt.preventDefault();var dataset=evtTarget.dataset;var value=dataset.mailtoToken;var offset=parseInt(dataset.mailtoVector,10)*-1;document.location.href=decryptString(value,offset)});delegateEvent('click','a[data-window-url]',function(evt,evtTarget){evt.preventDefault();var dataset=evtTarget.dataset;var url=dataset.windowUrl;var target=dataset.windowTarget||null;var features=dataset.windowFeatures||null;windowOpen(url,target,features)})})()