/* growform client2 bundle.url: https://assets.growform.co/9bc702c-mh3cgmgj/form.bundle.js resolve.source: memory resolve.at: 2025-10-25T04:20:36.030Z form.source: api cache.age_ms: 4176 fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "68a5c2a8c2b44682883ab7cf"; var FORM_BUNDLE_URL = "https://assets.growform.co/9bc702c-mh3cgmgj/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"68a5c2a8c2b44682883ab7cf","options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true,"hideOnFirstStep":false,"line_enableStripes":"Yes","line_animateStripes":"Yes","line_height":14},"continueButton":{"continueText":"Next","submitText":"GET MY FREE QUOTE 👉","backText":"Back"},"customStyles":{"width":{"unit":"px","value":550},"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":15,"parentBackgroundColor":"#c8c8d2","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#38383b","bodyTextColor":"#46413b","parentContainerBackgroundType":"none","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":15,"errorColor":"#cf0e17","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#46413b","inputTextColor":"#46413b","defaultFont":"Playfair Display","sq_buttonFont":"Montserrat","sq_buttonFontSize":19,"showShadows":"No","sq_buttonTextColor":"#ffffff","sq_buttonColor":"#ffffff","sq_buttonColorSelected":"#FFFFFF","sq_buttonBorderColor":"#DADADA","sq_buttonBorderColorSelected":"#3b7daa","sq_buttonBannerColor":"#3b7daa","rt_buttonFont":"Playfair Display","rt_buttonFontSize":17,"rt_buttonColor":"#ffffff","rt_buttonColorSelected":"#ffffff","rt_buttonTextColor":"#46413b","rt_buttonBorderColor":"#a8a6a1","rt_buttonBorderColorSelected":"#38383b","inputLabelFont":"Playfair Display","inputFontSize":17,"continueSubmitButtonFontSize":18,"inputBackgroundColor":"#e8e8e8","sq_controlsColor":"#3b7daa","continueSubmitButtonFont":"Playfair Display","rt_controlsColor":"#a8a6a1","continueButtonColor":"#38383b","continueButtonTextColor":"#ffffff","progressColor":"#38383b"},"localization":{"dateFormat":"DD/MM/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://whinteriors.uk/thank-you"}],"actionOnSubmit":"redirect","analyticsSettings":{"facebook":{"pixelId":""}}},"fields":{"Decorative Header_576559560634956":{"type":"Decorative Header","value":"All Done! To receive your free quote please fill out your details below...","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":22,"unit":"px"},"fontWeight":"Bold","color":"#000000","fontFamily":"Playfair Display"},"stepId":"ff4727c9498ef9c0a6c989d9","margins":{"marginBottom":5}},"decorative_header_46751409231390":{"type":"Decorative Header","value":"Which room are your curtains for?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":22,"unit":"px"},"fontWeight":"bold","fontFamily":"Playfair Display","color":"#000000"},"stepId":"ac0ce1d8634334328d03ff33","margins":{"marginBottom":5}},"buttons_369102833783163":{"type":"Buttons","validationRules":{"required":true},"label":"RR - How many windows?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":"2","buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"No"},"options":[{"text":"Living Room","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791117/uploads/iwfz8npqpkgbn8lskla0.png","id":"8d1e5c0816752c2417ee038c"},{"text":"Bedroom","id":"5abe44d0f423a695f86296bd","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791121/uploads/qyeqqgjt0rsm8f8zdcva.png"},{"text":"Dining Room","id":"19389b62a5c41d080e2ecc0e","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791125/uploads/eetca28e7hfnbdgw54tt.png"},{"text":"Other","id":"e8cc8787690077c15b914af8","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791128/uploads/ij2zhjcuibysleedss8z.png"},{"text":"Multiple Rooms","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1758888646/uploads/w8vsufp4etcrgjndrmj9.png","id":"4eff9b4c757f02f444961b95"}],"stepId":"ac0ce1d8634334328d03ff33","sortOrder":2,"hideLabel":true,"imageStyles":{"rt_borderRadius":3,"rt_width":40},"customCssClasses":"btn-rounded"},"text_101199398202044":{"type":"Text","label":"Is there a best time to contact you regarding your quote?","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":6,"validationRules":{"required":true}},"decorative_header_398280105559752":{"type":"Decorative Header","value":"When would you like your new curtains installed?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":22,"unit":"px"},"fontWeight":"Bold","color":"#000000","fontFamily":"Playfair Display"},"stepId":"b91ac256562d5c10669996b2","margins":{"marginBottom":5}},"buttons_949716880447132":{"type":"Buttons","validationRules":{"required":true},"label":"RR - Install timeframe","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":"2","rt_buttonsPerRowMobile":"2","buttonsType":"Rectangle","spacing":15,"showControls":"Yes","rt_compactLayoutOnMobile":"No"},"options":[{"text":"ASAP","id":"603d21625bdb33e518c57278","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755792222/uploads/wm9hybsiseuljg7catxz.png"},{"text":"In the next month","id":"f56641b5561532682f46b90f","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755792226/uploads/guy10avodwzxk1oov60k.png"},{"text":"Next 2-3 months","id":"e2c204976f3b0530167176ad","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755792229/uploads/cpgwdtzknc0dwswdlmk7.png"},{"text":"I'm not sure","id":"cd4f9dec3148c43fc1c942b7","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755792234/uploads/wjrxpw20bkv72lmx3xvi.png"}],"stepId":"b91ac256562d5c10669996b2","sortOrder":2,"hideLabel":true,"margins":{"marginLeft":null},"customCssClasses":"btn-rounded"},"name_175177936656799":{"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}},"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":2,"hidePrefix":true},"email_754018877323706":{"type":"Email","label":"What is your email address?","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":5},"decorative_header_813413315755743":{"type":"Decorative Header","value":"Which types of curtains are you looking for?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":22,"unit":"px"},"fontWeight":"bold","fontFamily":"Playfair Display","color":"#000000"},"stepId":"db8eaf7bea3b882bb06a618d","margins":{"marginBottom":5}},"buttons_104271037829632":{"type":"Buttons","validationRules":{"required":true},"label":"RR - Type of blinds?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":"2","rt_buttonsPerRowMobile":"2","buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"No"},"options":[{"text":"Classic","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791721/uploads/cxcblisszjszbppo2yww.png","id":"8ec637e2626b3e9a05541918"},{"text":"Modern","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791725/uploads/qxkfnepf4iid2os6uotp.png","id":"8d1e5c0816752c2417ee038c"},{"text":"Luxury","id":"5abe44d0f423a695f86296bd","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791728/uploads/wouugigucongcjavhchv.png"},{"text":"Elegant","id":"19389b62a5c41d080e2ecc0e","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791732/uploads/kgijcmktqt8ac0rcxroi.png"},{"text":"Cozy","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791737/uploads/o23chojnzpnmfvdjnlw6.png","id":"ebab6efe028bf3f867e89419"},{"text":"Not Sure Yet","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791740/uploads/iuct7pfi9l0a7kkb3huq.png","id":"ed6f6ebd18fb89e5ace13709"}],"stepId":"db8eaf7bea3b882bb06a618d","sortOrder":2,"hideLabel":true,"imageStyles":{"rt_borderRadius":3,"rt_width":40},"customCssClasses":"btn-rounded"},"text_819097655507152":{"type":"Text","label":"What is your contact number?","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":3,"validationRules":{"required":true}},"decorative_header_574010116167247":{"type":"Decorative Header","value":"Which type of material are you looking for?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":22,"unit":"px"},"fontWeight":"bold","fontFamily":"Playfair Display","color":"#000000"},"stepId":"927e49829fa6646c749a1cfb","margins":{"marginBottom":5}},"buttons_94018471637379":{"type":"Buttons","validationRules":{"required":true},"label":"RR - Type of blinds?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":"2","rt_buttonsPerRowMobile":"2","buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"No"},"options":[{"text":"Velvet","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791766/uploads/hwwdunzkm9bya4vvbgrf.png","id":"8ec637e2626b3e9a05541918"},{"text":"Linen","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791770/uploads/lmjyum1zryldxbwbvti6.png","id":"8d1e5c0816752c2417ee038c"},{"text":"Cotton","id":"5abe44d0f423a695f86296bd","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791772/uploads/uogg7qnjjqmlzqzvimr5.png"},{"text":"Silk","id":"19389b62a5c41d080e2ecc0e","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791776/uploads/kici3bfwehzl0l6vv0ad.png"},{"text":"Sheer","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791778/uploads/luzoixkutwtrmcukiewn.png","id":"ebab6efe028bf3f867e89419"},{"text":"Not Sure Yet","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1755791782/uploads/eioqbpnmrufogyqkehes.png","id":"ed6f6ebd18fb89e5ace13709"}],"stepId":"927e49829fa6646c749a1cfb","sortOrder":2,"hideLabel":true,"imageStyles":{"rt_borderRadius":3,"rt_width":40},"customCssClasses":"btn-rounded"},"text_681749943148012":{"type":"Text","label":"What is your post code?","width":12,"stepId":"ff4727c9498ef9c0a6c989d9","sortOrder":4,"validationRules":{"required":true}}},"ownedByUser":"6630a53f844d19000b968a09","formName":"WH Interiors Survey - Curtains","personalisation":{"form_related_to":"Bathroom remodelling"},"lastEdited":"2025-09-26T12:11:24.954Z","created":"2025-08-20T12:42:16.975Z","steps":[{"id":"ac0ce1d8634334328d03ff33","name":"How many windows do you require curtains for?","sortOrder":1,"copyOf":"8d53a2591d86a402dbecf0d3"},{"id":"db8eaf7bea3b882bb06a618d","name":"Which types of curtains are you looking for?","sortOrder":2,"copyOf":"ac0ce1d8634334328d03ff33"},{"id":"927e49829fa6646c749a1cfb","name":"Which type of material are you looking for?","sortOrder":3,"copyOf":"db8eaf7bea3b882bb06a618d"},{"id":"b91ac256562d5c10669996b2","name":"When would you like your new curtains installed?","sortOrder":4,"copyOf":"bbfece76ebce9649b8e67fb7"},{"id":"ff4727c9498ef9c0a6c989d9","name":"Contact info","sortOrder":5}],"folderId":"68485a2c2660c4000b71d4a6","screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1758888689/growform-production/form-screenshots/68a5c2a8c2b44682883ab7cf.png","leadsCount":45,"isActive":true,"__v":0},"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' + '