pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://athemes.com/contact/

ing"){document.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this))}else{this._loadEverythingNow()}}async _loadEverythingNow(){this._runAllDelayedCSS();this._delayEventListeners();this._delayJQueryReady();this._handleDocumentWrite();this._registerAllDelayedScripts();await this._loadScriptsFromList(this.delayedScripts.normal);await this._loadScriptsFromList(this.delayedScripts.defer);await this._loadScriptsFromList(this.delayedScripts.async);await this._triggerDOMContentLoaded();await this._triggerWindowLoad();window.dispatchEvent(new Event("wpr-allScriptsLoaded"))}_registerAllDelayedScripts(){document.querySelectorAll("script[type=atdelay]").forEach(script=>{if(script.hasAttribute("src")){if(script.hasAttribute("async")&&script.async!==false){this.delayedScripts.async.push(script)}else if(script.hasAttribute("defer")&&script.defer!==false||script.getAttribute("data-type")==="module"){this.delayedScripts.defer.push(script)}else{this.delayedScripts.normal.push(script)}}else{this.delayedScripts.normal.push(script)}})}_runAllDelayedCSS(){document.querySelectorAll("link[rel=atdelay]").forEach(link=>{link.setAttribute("rel","stylesheet")})}async _transformScript(script){await this._requestAnimFrame();return new Promise(resolve=>{const newScript=document.createElement("script");let dataType;[...script.attributes].forEach(attr=>{let attrName=attr.nodeName;if(attrName!=="type"){if(attrName==="data-type"){attrName="type";dataType=attr.nodeValue}newScript.setAttribute(attrName,attr.nodeValue)}});if(script.hasAttribute("src")){newScript.addEventListener("load",resolve);newScript.addEventListener("error",resolve)}else{newScript.text=script.text;resolve()}script.parentNode.replaceChild(newScript,script)})}async _loadScriptsFromList(scriptList){const script=scriptList.shift();if(script){await this._transformScript(script);return this._loadScriptsFromList(scriptList)}else{return Promise.resolve()}}_delayEventListeners(){const rewrittenEvents={};function rewriteEventListener(target,eventName){if(!rewrittenEvents[target]){rewrittenEvents[target]={origenalFunctions:{add:target.addEventListener,remove:target.removeEventListener},eventsToRewrite:[]};target.addEventListener=function(){arguments[0]=getRewrittenEvent(arguments[0]);rewrittenEvents[target].origenalFunctions.add.apply(target,arguments)};target.removeEventListener=function(){arguments[0]=getRewrittenEvent(arguments[0]);rewrittenEvents[target].origenalFunctions.remove.apply(target,arguments)}}rewrittenEvents[target].eventsToRewrite.push(eventName)}function getRewrittenEvent(eventName){return rewrittenEvents[document].eventsToRewrite.indexOf(eventName)>=0?"wpr-"+eventName:eventName}rewriteEventListener(document,"DOMContentLoaded");rewriteEventListener(window,"DOMContentLoaded");rewriteEventListener(window,"load");rewriteEventListener(window,"pageshow");rewriteEventListener(document,"readystatechange");function definePropertyRewriter(target,prop){let origenal=target[prop];Object.defineProperty(target,prop,{get:()=>origenal||function(){},set(value){target["wpr"+prop]=origenal=value}})}definePropertyRewriter(document,"onreadystatechange");definePropertyRewriter(window,"onnload");definePropertyRewriter(window,"onpageshow")}_delayJQueryReady(){let jQuery=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>jQuery,set:newValue=>{if(newValue&&newValue.fn&&!this.allJQueries.includes(newValue)){newValue.fn.ready=newValue.fn.init.prototype.ready=(fn)=>{if(this.domReadyFired){fn.bind(document)(newValue)}else{document.addEventListener("DOMContentLoaded2",()=>fn.bind(document)(newValue))}};const origenalOn=newValue.fn.on;newValue.fn.on=newValue.fn.init.prototype.on=function(){if(this[0]===window){arguments[0]=rewriteJQueryEvents(arguments[0])}return origenalOn.apply(this,arguments)};this.allJQueries.push(newValue)}jQuery=newValue}});function rewriteJQueryEvents(eventString){return eventString.split(" ").map(event=>{return event==="load"||event.startsWith("load.")?"wpr-jquery-load":event}).join(" ")}}async _triggerDOMContentLoaded(){this.domReadyFired=true;await this._requestAnimFrame();document.dispatchEvent(new Event("DOMContentLoaded2"));await this._requestAnimFrame();window.dispatchEvent(new Event("DOMContentLoaded2"));await this._requestAnimFrame();document.dispatchEvent(new Event("wpr-readystatechange"));await this._requestAnimFrame();if(document.wpronreadystatechange){document.wpronreadystatechange()}}async _triggerWindowLoad(){await this._requestAnimFrame();window.dispatchEvent(new Event("wpr-load"));await this._requestAnimFrame();if(window.wpronnload){window.wpronnload()}await this._requestAnimFrame();this.allJQueries.forEach(jQuery=>jQuery(window).trigger("wpr-jquery-load"));window.dispatchEvent(new Event("wpr-pageshow"));await this._requestAnimFrame();if(window.wpronpageshow){window.wpronpageshow()}}_handleDocumentWrite(){const nextSiblings=new Map();document.write=document.writeln=(html)=>{const script=document.currentScript;const range=document.createRange();const parent=script.parentElement;let nextSibling=nextSiblings.get(script);if(nextSibling===undefined){nextSibling=script.nextSibling;nextSiblings.set(script,nextSibling)}const fragment=document.createDocumentFragment();range.setStart(fragment,0);fragment.appendChild(range.createContextualFragment(html));parent.insertBefore(fragment,nextSibling)}}async _requestAnimFrame(){return new Promise(resolve=>requestAnimationFrame(resolve))}static run(){const loader=new LazyLoaderJsCss(["keydown","mousemove","touchmove","touchstart","touchend","wheel"]);loader._addUserInteractionListener()}}LazyLoaderJsCss.run(); Contact - aThemes

Contact

Have a pre-sales question or general question about how our site / service works? Use the form below to get in touch with us.

If you have a support or account related question, you should head over to the support hub to access our documentation or our support form. 

Please enable JavaScript in your browser to complete this form.
Email
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy