/* growform client2 bundle.url: https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js resolve.source: kv resolve.at: 2025-12-10T02:57:30.175Z form.source: api cache.age_ms: 0 kv.value_present: true fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "67471d4347750d000bdc1754"; var FORM_BUNDLE_URL = "https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"67471d4347750d000bdc1754","steps":[{"id":"acd45227cac332d443c4e1db","name":"Type Of Oak Garage","sortOrder":1},{"id":"42809540ce6dffa1a05cd154","name":"Roof Styles","sortOrder":2,"copyOf":"acd45227cac332d443c4e1db"},{"id":"b43d47b437f420b4ba331fc4","name":"Roof Material","sortOrder":3,"copyOf":"42809540ce6dffa1a05cd154"},{"id":"3fbda732f758f0acd4851d6d","name":"Windows","sortOrder":4,"copyOf":"42809540ce6dffa1a05cd154"},{"id":"9b47b4da13c36df7f8036195","name":"Doors","sortOrder":5,"copyOf":"3fbda732f758f0acd4851d6d"},{"id":"7abf8c4e10bbba69c94c63e3","name":"Postcode","sortOrder":6,"copyOf":"9b47b4da13c36df7f8036195"},{"id":"f0e126694727c04d73d22733","name":"Calculating your quote","sortOrder":7},{"id":"1222fa6bb07db3f1d4f89c77","name":"Contact details","sortOrder":8,"copyOf":"7abf8c4e10bbba69c94c63e3"}],"formName":"Oak Buildings","fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"Thanks for your enquiry!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"Decorative Header_797442086161467":{"type":"Decorative Header","value":"What Oak Framed Garage Are You Looking For?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold","fontFamily":"Ubuntu"},"stepId":"acd45227cac332d443c4e1db","margins":{"marginBottom":0}},"Decorative_Paragraph_194067845817258":{"type":"Decorative Paragraph","value":"Thanks for getting in touch. We'll be in contact soon.","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"buttons_109446974978914":{"type":"Buttons","validationRules":{"required":false},"label":"Type Of Oak Garage","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"One Bay Garage","id":"5be94772672205ea06fa1c3c","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738272/uploads/wptb6bldovryf3npog34.jpg"},{"text":"Two Bay Garage","id":"192368f189795a7f9199624d","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738306/uploads/ar6hhqh0shafdw9k6zxl.jpg"},{"text":"Three Bay Garage","id":"cd688d984891cf9918f17913","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738325/uploads/x7bxx0etnnfldjiwyzs6.jpg"},{"text":"Two Bay with Room","id":"4aa2d0676e2b31322c5ba7d6","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738365/uploads/lnruarrvkrvbesbq6rv6.jpg"},{"text":"Three Bay with Room","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738414/uploads/nlhwsn8ayp6ttfrkwv6h.jpg","id":"d6514027e83ab9a693e6311e"},{"text":"Four Bay with Room","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732738435/uploads/ohjodqgygzsbipz808i4.png","id":"e96fe28a537d08a23127aa52"}],"stepId":"acd45227cac332d443c4e1db","sortOrder":3,"hideLabel":true,"imageStyles":{"size":"100%","sq_imageOnlyMode":"No"}},"decorative_header_459135410428944":{"type":"Decorative Header","value":"What Roof Style Would You Like?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"42809540ce6dffa1a05cd154","margins":{"marginBottom":0}},"buttons_359471600250731":{"type":"Buttons","validationRules":{"required":false},"label":"Roof Styles","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Full Hip","id":"cd688d984891cf9918f17913","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732739894/uploads/u8wsylbrzhkkubi7knv9.webp"},{"text":"Full Hip & Catslide","id":"5be94772672205ea06fa1c3c","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732739859/uploads/nhnogpzdxmku3jtdhmha.webp"},{"text":"Barn Hip","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740003/uploads/n5ykmxc6hlvgk7wgko34.webp","id":"d6514027e83ab9a693e6311e"},{"text":"Barn Hip & Cat Slide","id":"4aa2d0676e2b31322c5ba7d6","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732739974/uploads/txb4mjj9yar7bjdt2t3v.webp"},{"text":"Gable End","id":"192368f189795a7f9199624d","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732739294/uploads/f45pgwx7enqwhzxgvtj7.webp"},{"text":"Gable End & Cat Slide","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740103/uploads/thvragq9x0vl9s8t4tgw.webp","id":"e96fe28a537d08a23127aa52"}],"stepId":"42809540ce6dffa1a05cd154","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"75%","sq_imageOnlyMode":"No"}},"decorative_header_127815847791996":{"type":"Decorative Header","value":"Would You Like Windows?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"3fbda732f758f0acd4851d6d","margins":{"marginBottom":0}},"buttons_347762126065638":{"type":"Buttons","validationRules":{"required":false},"label":"Windows?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Yes","id":"5be94772672205ea06fa1c3c","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740889/uploads/ik5vgsevytoqjkq1gml3.png"},{"text":"No","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740893/uploads/maywliv1zob72hekd6vy.png","id":"d6514027e83ab9a693e6311e"}],"stepId":"3fbda732f758f0acd4851d6d","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"50%","sq_imageOnlyMode":"No"}},"decorative_header_695554644739663":{"type":"Decorative Header","value":"Would You Like Doors Installed?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"9b47b4da13c36df7f8036195","margins":{"marginBottom":0}},"buttons_853745013423509":{"type":"Buttons","validationRules":{"required":false},"label":"Windows?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Yes","id":"5be94772672205ea06fa1c3c","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740889/uploads/ik5vgsevytoqjkq1gml3.png"},{"text":"No","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732740893/uploads/maywliv1zob72hekd6vy.png","id":"d6514027e83ab9a693e6311e"}],"stepId":"9b47b4da13c36df7f8036195","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"50%","sq_imageOnlyMode":"No"}},"decorative_header_681631181240912":{"type":"Decorative Header","value":"","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"7abf8c4e10bbba69c94c63e3","margins":{"marginBottom":0}},"zipcode_472126991639310":{"type":"Zipcode","label":"What is your postcode?","zipcodeFieldFormat":"postcode_uk","width":12,"stepId":"7abf8c4e10bbba69c94c63e3","sortOrder":3},"decorative_header_41120041089594":{"type":"Decorative Header","value":"Where Would You Like Your Oak Garage Installed?","width":12,"stepId":"7abf8c4e10bbba69c94c63e3","sortOrder":2},"decorative_paragraph_477697376716619":{"type":"Decorative Paragraph","value":"Why do we ask for your postcode? This is so we can calculate delivery costs.\n","width":12,"stepId":"7abf8c4e10bbba69c94c63e3","sortOrder":4,"fieldStyle":{"textAlign":"left"}},"decorative_header_424806489275914":{"type":"Decorative Header","value":"","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"1222fa6bb07db3f1d4f89c77","margins":{"marginBottom":0}},"decorative_header_746922335390310":{"type":"Decorative Header","value":"Where should we send pricing information?","width":12,"stepId":"1222fa6bb07db3f1d4f89c77","sortOrder":2},"name_422757720970481":{"type":"Name","label":"What is your name?","width":12,"hideLabel":true,"options":{"Firstname":{"value":null,"errorText":null,"validationRules":{"required":true}},"Lastname":{"value":null,"errorText":null,"validationRules":{"required":true}},"Prefix":{"value":null,"errorText":null,"validationRules":{"required":false}}},"stepId":"1222fa6bb07db3f1d4f89c77","sortOrder":3,"hidePrefix":true},"email_521537059074895":{"type":"Email","label":"What is your email address?","width":12,"stepId":"1222fa6bb07db3f1d4f89c77","sortOrder":4},"phone_182625149019643":{"type":"Phone","label":"What is your phone number?","width":12,"stepId":"1222fa6bb07db3f1d4f89c77","sortOrder":5,"defaultCountryFormat":"gb"},"decorative_paragraph_899106568890489":{"type":"Decorative Paragraph","value":"Please choose an option","width":12,"stepId":"acd45227cac332d443c4e1db","sortOrder":2},"decorative_header_940754433101760":{"type":"Decorative Header","value":"What Roof Style Would You Like?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":23,"unit":"px"},"fontWeight":"Bold"},"stepId":"b43d47b437f420b4ba331fc4","margins":{"marginBottom":0}},"buttons_179963687737691":{"type":"Buttons","validationRules":{"required":false},"label":"Roof Material","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Asphalt shingles","id":"cd688d984891cf9918f17913","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732895341/uploads/cer6a31s9s71ocbhhuxu.jpg"},{"text":"Slate","id":"5be94772672205ea06fa1c3c","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732895347/uploads/tdbittxu5oxnqhit7u8h.jpg"},{"text":"Clay tiles","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1732895351/uploads/ylv1sruykuw1byilck6p.jpg","id":"d6514027e83ab9a693e6311e"}],"stepId":"b43d47b437f420b4ba331fc4","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"100%","sq_imageOnlyMode":"No"}},"decorative_header_459093174157697":{"type":"Decorative Header","value":"We are evaluating your requirements , just a moment","width":12,"sortOrder":1,"stepId":"f0e126694727c04d73d22733"},"decorative_loading animation_850130527337603":{"type":"Decorative Loading Animation","value":"This does not have a value","loaderOptions":{"color":"#838383","type":"Dots","size":40,"redirectAfter":"2s"},"width":12,"stepId":"f0e126694727c04d73d22733","sortOrder":2},"decorative_paragraph_346237966006381":{"type":"Decorative Paragraph","value":"⏱ Only takes 30 seconds","width":12,"stepId":"acd45227cac332d443c4e1db","sortOrder":4}},"options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true,"variant":"line","position":"formTop","line_height":5,"line_enableStripes":"Yes"},"continueButton":{"continueText":"Continue","submitText":"Get Pricing","backText":"Back"},"customStyles":{"width":{"unit":"px","value":580},"parentContainerMinHeight":{"value":0,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":1362,"imageInitialWidth":2066,"imageHeight":1362,"imageWidth":2066,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1597337140/uploads/qmsfk98ank3wfp1ehvyg.jpg"},"headerMarginTop":0,"parentBackgroundColor":"#ffffff","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#fb481e","bodyTextColor":"#343434","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":0,"errorColor":"#ff4e4e","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#000000","defaultFont":"Ubuntu","sq_buttonFont":"Ubuntu","sq_buttonFontSize":15,"showShadows":"Yes","sq_buttonTextColor":"#343434","sq_buttonColor":"#FFFFFF","sq_buttonColorSelected":"#FFFFFF","sq_buttonBorderColor":"#DADADA","sq_buttonBorderColorSelected":"primary","sq_buttonBannerColor":"#ffffff","rt_buttonFont":"Poppins","rt_buttonFontSize":15,"rt_buttonColor":"#FFFFFF","rt_buttonColorSelected":"#FFFFFF","rt_buttonTextColor":"#343434","rt_buttonBorderColor":"#DADADA","rt_buttonBorderColorSelected":"primary","inputLabelFont":"Ubuntu","inputFontSize":16,"continueSubmitButtonFontSize":15,"fullModeBackgroundColor":"#ffffff","canvasSetup":"full"},"localization":{"dateFormat":"MM/DD/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://oak.paulmartynconstruction.com/thank-you"}],"logo":null,"actionOnSubmit":"redirect"},"ownedByUser":"66a01e87790f9c000b349ce4","personalisation":{"form_related_to":"(None - start with a blank slate)"},"created":"2024-11-27T13:23:15.583Z","__v":0,"lastEdited":"2024-12-02T09:45:48.567Z","screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1742557099/growform-production/form-screenshots/67471d4347750d000bdc1754.png","leadsCount":44,"folderId":"680a77a0b4ec38000b6661c2","isActive":true},"accountIsActive":true,"accountIsFreeTrial":false}}; // ---- Utils ---- function safeJSONStringify(obj) { return JSON.stringify(obj) .replace(/<\/(script|style)/gi, '<\\/$1') .replace(//g, '--\\>') .replace(/\u2028/g, '\\u2028') .replace(/\u2029/g, '\\u2029'); } function preloadScript(href) { try { if (!href) return; if (document.querySelector('link[rel="preload"][href="' + href + '"]')) return; var l = document.createElement("link"); l.rel = "preload"; l.as = "script"; l.href = href; l.crossOrigin = ""; // allow cache reuse in iframe document.head.appendChild(l); } catch (_) {} } function parseQuery() { var out = {}; try { if (!window.location.search) return out; var usp = new URLSearchParams(window.location.search); usp.forEach(function (v, k) { out[k] = v; }); } catch (_) {} return out; } function buildIframeHTML(opts) { var html = '\n' + '\n' + '\n' + ' \n' + ' \n' + ' \n' + '\n' + '\n' + ' \n' + '
\n' + '