/* growform client2 bundle.url: https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js resolve.source: memory resolve.at: 2025-12-13T16:30:40.720Z form.source: kv cache.age_ms: 6131 fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "64d6458d8ea2c8000bd775ac"; 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":"64d6458d8ea2c8000bd775ac","steps":[{"id":"b5223c0cdd95ebd92a75df7a","name":"Unnamed step 1","sortOrder":1},{"id":"e0ecff465c8b58539aa86b6b","name":"Unnamed step 2","sortOrder":2},{"id":"5a2fa088a2085e5857e0b9cd","name":"Unnamed step 3","sortOrder":3},{"id":"2e50c113d3eca93eaedddd92","name":"Unnamed step 4","sortOrder":4}],"formName":"Kingston - implant","fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"We're checking availability!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":"24","unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"Decorative Header_467388329589508":{"type":"Decorative Header","value":"Would you like a FREE NO OBLIGATION Consultation to learn more?","width":12,"step":4,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"21","unit":"px"},"fontWeight":"Bold"},"stepId":"2e50c113d3eca93eaedddd92"},"Decorative Paragraph_194067845817258":{"type":"Decorative Paragraph","value":"A represenative will contact you soon about availability on your chosen date and next steps in setting an appointment.","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"buttons_761291731351532":{"type":"Buttons","validationRules":{"required":false},"label":"What can we help with?","width":12,"hideLabel":true,"multiple":false,"options":[{"text":"An existing implant","image":null,"id":"625dc95776ce687034180292"},{"text":"A missing tooth or teeth","image":null,"id":"ffbb2992fac3cd6483468ca7"},{"text":"Other","image":null,"id":"4ce3217aa3924178d8276f63"}],"step":2,"sortOrder":2,"buttonStyle":{"minWidth":"115","height":110,"buttonsPerRow":"3"},"margins":{"marginLeft":0},"stepId":"e0ecff465c8b58539aa86b6b"},"decorative header_99866835255520":{"type":"Decorative Header","value":"Tell us what's bothering you most...","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":29,"unit":"px"}},"stepId":"e0ecff465c8b58539aa86b6b"},"decorative header_336122211848726":{"type":"Decorative Header","value":"What would be your ideal outcome?","width":12,"step":3,"sortOrder":1,"stepId":"5a2fa088a2085e5857e0b9cd"},"email_490706014453408":{"type":"Email","label":"Email:","width":12,"step":4,"sortOrder":4,"stepId":"2e50c113d3eca93eaedddd92"},"text_687768222933661":{"type":"Text","label":"Name:","width":12,"step":4,"sortOrder":3,"stepId":"2e50c113d3eca93eaedddd92"},"text_630049023496488":{"type":"Text","label":"Type your answer here","width":12,"step":3,"sortOrder":2,"stepId":"5a2fa088a2085e5857e0b9cd"},"decorative paragraph_536941943500931":{"type":"Decorative Paragraph","value":"FREE dental implant consultation with our treatment advisor, virtual appointments available on request.","width":12,"step":4,"sortOrder":2,"fieldStyle":{"fontSize":{"value":14,"unit":"px"}},"stepId":"2e50c113d3eca93eaedddd92"},"decorative header_904363233879282":{"type":"Decorative Header","value":"Tell us how many teeth are bothering you...","width":12,"sortOrder":1,"step":1,"stepId":"b5223c0cdd95ebd92a75df7a"},"buttons_869430193536183":{"type":"Buttons","validationRules":{"required":false},"label":null,"width":12,"hideLabel":true,"multiple":false,"buttonStyle":{"buttonsPerRow":1,"height":"50"},"options":[{"text":"One tooth","id":"0b5b0785360103592a339348"},{"text":"Multiple teeth","id":"352e23cb760279197c5cd592"},{"text":"All my teeth","id":"aced45cb6f1697912a132023"}],"step":1,"sortOrder":2,"stepId":"b5223c0cdd95ebd92a75df7a"},"text_864765886778747":{"type":"Text","label":"Phone Number:","width":12,"step":4,"sortOrder":5,"validationRules":{"required":true},"stepId":"2e50c113d3eca93eaedddd92"}},"options":{"numberOfSteps":4,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Next","submitText":"Check availability","backText":"Back"},"customStyles":{"width":{"unit":"px","value":550},"parentContainerMinHeight":{"value":451,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":2372,"imageInitialWidth":4744,"imageHeight":2372,"imageWidth":4744,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1597913324/uploads/hhrwnvig0pbrxy2t4etp.jpg"},"headerMarginTop":70,"parentBackgroundColor":"#ffffff","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#c0e2e4","bodyTextColor":"#414042","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ffffff","buttonColorSelected":"#ecf1f6","buttonBorderColorSelected":"#a7e1e5","footerMarginBottom":70,"buttonColor":"#c0e2e4","inputLabelColor":"#a3a3a3","inputTextColor":"#414042","buttonTextColor":"#414042","continueButtonColor":"#c0e2e4","errorColor":"#414042","continueButtonTextColor":"#414042"},"localization":{"dateFormat":"DD/MM/YYYY","phoneFormat":"UK"},"exportTransparentBackground":false,"customScript":"","actionOnSubmit":"redirect","customRedirectUrl":"http://www.shieldsdentalclinic.ie/lp/shields-dental-implants-thank-you","customRedirectUrls":[{"url":"https://try.kingstondentalclinic.co.uk/lp/dental-implants/thank-you/"}]},"ownedByUser":"60d2f3abb6cdeb0020f323bf","personalisation":{"form_related_to":"Dentists"},"created":"2023-08-11T14:28:29.564Z","__v":0,"lastEdited":"2023-08-11T14:33:33.469Z","screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1742565174/growform-production/form-screenshots/64d6458d8ea2c8000bd775ac.png","leadsCount":138,"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' + '