/* growform client2 bundle.url: https://assets.growform.co/9bc702c-mh3cgmgj/form.bundle.js resolve.source: kv resolve.at: 2025-10-25T20:53:38.914Z form.source: kv cache.age_ms: 0 kv.value_present: true fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "6326adad6c28ea00afe89af7"; 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":"6326adad6c28ea00afe89af7","formName":"Roofing 2025 Oct Fresno Area","fields":{"decorative text_797442086161467":{"type":"Decorative Header","value":"What is the nature of your project?","width":12,"step":3,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"21","unit":"px"},"fontWeight":"Bold"},"stepId":"6e8a01f27824afceced564d5"},"decorative text_576559560634956":{"type":"Decorative Header","value":"How can we contact you?","width":12,"step":6,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Bold"},"stepId":"5b87f5a3156a20dd0776542e"},"email_907058157108782":{"type":"Email","label":"Your email address","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":4,"stepId":"5b87f5a3156a20dd0776542e"},"phone_589083232390193":{"type":"Phone","label":"Your phone number","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":5,"helperText":"","stepId":"5b87f5a3156a20dd0776542e"},"text_373461752242760":{"type":"Text","label":"First name","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":2,"validationRules":{"required":true},"stepId":"5b87f5a3156a20dd0776542e"},"address_795950153458585":{"type":"Address","label":"Enter your address...","width":12,"step":2,"sortOrder":2,"margins":{"marginBottom":0},"validationRules":{"required":true},"stepId":"a2e91442ffef0d725ca65ab1"},"decorative text_56213455664147":{"type":"Decorative Header","value":"What is the building's address?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"21","unit":"px"},"fontWeight":"Bold"},"stepId":"a2e91442ffef0d725ca65ab1"},"buttons_931266633117766":{"type":"Buttons","validationRules":{"required":true},"label":"What type of material?","width":12,"hideLabel":true,"multiple":false,"buttonStyle":{"buttonsPerRow":"2","height":"100"},"options":[{"text":"Shingles","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1663480259/uploads/wrishuuflkab4yi4uo3q.png","id":"9e42791a6bc2c6c31bc5eb3d"},{"text":"Tile","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1663480099/uploads/yzfz3svrd24qancwkrn8.png","id":"b35f0c0de704aab8076301e3"},{"text":"Metal","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1663479723/uploads/gssz6gf2i657gp2h9mua.png","id":"0c83e70c5f2b20f70cc3472b"},{"text":"Flat Commercial","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1663479742/uploads/antaqxfzcb2v5le6a9kc.png","id":"61a014e2cf87f551aef9b0de"}],"step":1,"sortOrder":2,"stepId":"0b48699c24c9986a4f559274"},"decorative header_775229346868552":{"type":"Decorative Header","value":"What type of material do you want or have?","width":12,"step":1,"sortOrder":1,"stepId":"0b48699c24c9986a4f559274"},"buttons_193630659032749":{"type":"Buttons","validationRules":{"required":true},"label":"nature of your project?","width":12,"multiple":false,"buttonStyle":{"buttonsPerRow":1,"height":60},"options":[{"text":"Repair ","id":"55c9937ea8daa05b061cce43"},{"text":"Installation","id":"e670284696442a7acc12f496"},{"text":"Inspection","id":"13a6bfb96a120c6782b6ef75"},{"text":"Certification","image":null,"id":"9b2261d676596f4524de70ca"}],"step":3,"sortOrder":2,"hideLabel":true,"stepId":"6e8a01f27824afceced564d5"},"text_47641059203337":{"type":"Text","label":"Last name","width":12,"stepId":"5b87f5a3156a20dd0776542e","sortOrder":3,"validationRules":{"required":true}},"hidden_922706827474205":{"type":"Hidden","hiddenFieldName":"gclid","width":12,"stepId":"6e8a01f27824afceced564d5","sortOrder":3},"hidden_696149182910719":{"type":"Hidden","hiddenFieldName":"fbclid","width":12,"stepId":"6e8a01f27824afceced564d5","sortOrder":4}},"options":{"numberOfSteps":6,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Next","submitText":"Schedule Estimate ","backText":"Back"},"customStyles":{"width":{"unit":"px","value":550},"parentContainerMinHeight":{"value":0,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":1116,"imageInitialWidth":1902,"imageHeight":1116,"imageWidth":1902,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1601640522/uploads/qrwuvldlke6g8njr2x6j.jpg","useTint":true,"parentBackgroundImageTintColor":"#322b6d","parentBackgroundImageTintStrength":21},"headerMarginTop":20,"parentBackgroundColor":"#e9e9e9","innerFormBackgroundColor":"#dfdfdf","innerFormBackgroundTransparency":"","primaryColor":"#040203","bodyTextColor":"#160000","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ffffff","buttonColorSelected":"#dce3ec","buttonBorderColorSelected":"#2696e6","footerMarginBottom":20,"errorColor":"#ff4e4e","buttonColor":"#ffffff","inputLabelColor":"#000000","inputTextColor":"#000000","buttonTextColor":"#322b6d","buttonFontSize":14,"continueButtonTextColor":"#ffffff","continueSubmitButtonFontSize":20,"continueSubmitButtonFont":"Bitter","showShadows":"Yes","inputBackgroundColor":"#ffffff","inputFontSize":18,"progressColor":"#322b6d"},"localization":{"dateFormat":"DD/MM/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://www.grandmarkroofing.com/book-fresno/"}],"actionOnSubmit":"redirect","captureSystemDetails":true,"analyticsSettings":{"google_analytics":{"trackingId":"G-C7GTBBTHJV"},"facebook":{"pixelId":"1089353769623037"}}},"ownedByUser":"626164f19f6e2a00226626af","personalisation":{"form_related_to":"Roofers / roofing"},"created":"2022-09-18T05:33:33.392Z","__v":1,"lastEdited":"2025-10-24T15:07:46.905Z","steps":[{"id":"6e8a01f27824afceced564d5","name":"Unnamed step 3","sortOrder":1},{"id":"a2e91442ffef0d725ca65ab1","name":"Unnamed step 2","sortOrder":2},{"id":"0b48699c24c9986a4f559274","name":"Unnamed step 1","sortOrder":3},{"id":"5b87f5a3156a20dd0776542e","name":"Unnamed step 6","sortOrder":4}],"screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1761238490/growform-production/form-screenshots/6326adad6c28ea00afe89af7.png","leadsCount":56,"isActive":true,"folderId":"6867e9fecd5e7c000b6ca7cf"},"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' + '