/* growform client2 bundle.url: https://assets.growform.co/b88115a-mh2anwee/form.bundle.js resolve.source: memory resolve.at: 2025-10-22T23:49:08.500Z form.source: kv cache.age_ms: 4080 fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "62618e459f6e2a0022666db7"; var FORM_BUNDLE_URL = "https://assets.growform.co/b88115a-mh2anwee/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"62618e459f6e2a0022666db7","formName":"Grandmark Roofing Fresno Location","fields":{"decorative text_52363373085874":{"type":"Decorative Header","value":"Your Roofing Quote Is On The Way!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"decorative text_467388329589508":{"type":"Decorative Paragraph","value":"Tell us a few details and we'll send you a fast & free estimate","width":12,"step":"header","sortOrder":2,"fieldStyle":{"fontSize":{"value":16,"unit":"px"},"fontWeight":"Bold"},"stepId":"header"},"decorative text_405809205132314":{"type":"Decorative Header","value":"How Much Will Your Project Cost?","width":12,"step":"header","sortOrder":1,"fieldStyle":{"fontSize":{"value":30,"unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":null},"stepId":"header"},"decorative text_576559560634956":{"type":"Decorative Header","value":"Where Shall We Send Your Quote?","width":12,"step":6,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Bold"},"stepId":"a666375f030145edfd55fa60"},"email_907058157108782":{"type":"Email","label":"Your email address","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":4,"stepId":"a666375f030145edfd55fa60"},"phone_589083232390193":{"type":"Phone","label":"Your phone number","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":5,"helperText":"","stepId":"a666375f030145edfd55fa60"},"text_373461752242760":{"type":"Text","label":"First name","width":12,"margins":{"marginBottom":0},"step":6,"sortOrder":2,"validationRules":{"required":true},"stepId":"a666375f030145edfd55fa60"},"decorative text_194067845817258":{"type":"Decorative Paragraph","value":"Thanks for getting in touch. We'll be in contact soon. We will call or text to help you with the nest steps.","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"decorative divider_421201658947640":{"type":"Decorative Divider","width":12,"margins":{"marginBottom":0,"marginTop":5},"step":"header","sortOrder":3,"fieldStyle":{"backgroundColor":"#01254c","width":"60"},"stepId":"header"},"address_795950153458585":{"type":"Address","label":"Building address for service...","width":12,"step":5,"sortOrder":3,"margins":{"marginBottom":0},"validationRules":{"required":true},"stepId":"f0a6d79f31d518c7a02f8822"},"decorative text_56213455664147":{"type":"Decorative Header","value":"What is The Building's Address?","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"21","unit":"px"},"fontWeight":"Bold"},"stepId":"f0a6d79f31d518c7a02f8822"},"decorative paragraph_532365762399858":{"type":"Decorative Paragraph","value":"","width":12,"step":5,"sortOrder":2,"fieldStyle":{"fontSize":{"value":"13","unit":"px"}},"stepId":"f0a6d79f31d518c7a02f8822"},"decorative header_838442739020120":{"type":"Decorative Header","value":"What type of premises need our attention?","width":12,"sortOrder":1,"step":1,"margins":{"marginTop":0},"stepId":"d948d6f1ab6f8cbf9e7cb3a3"},"buttons_931266633117766":{"type":"Buttons","validationRules":{"required":false},"label":"What type of premises need our attention?","width":12,"hideLabel":true,"multiple":false,"buttonStyle":{"buttonsPerRow":"2","height":"100"},"options":[{"text":"Residential home","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1728103266/uploads/m5stnzoy9ri2esygd0vj.svg","id":"246ac26293aba91304447f38"},{"text":"Commercial building","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1728103353/uploads/c9zq6gzyjckqmborhxeg.svg","id":"e7fd885c342873a783885742"}],"step":1,"sortOrder":2,"stepId":"d948d6f1ab6f8cbf9e7cb3a3"},"decorative header_220834405571013":{"type":"Decorative Header","value":"What Service Do You Need?","width":12,"sortOrder":1,"step":2,"stepId":"b1d68b7bb4cce0da961ade9c"},"buttons_144863459757277":{"type":"Buttons","validationRules":{"required":false},"label":"Service needed","width":12,"multiple":false,"buttonStyle":{"buttonsPerRow":1,"height":"50"},"options":[{"text":"Roofing Repair","id":"492a95b471e2b4bacf280cc8"},{"text":"Roofing Replacement","id":"9b1b13849f64d5a8a0d3a811"},{"text":"Roofing Inspection","id":"64829742db4de8bd01dbc3a1"}],"step":2,"sortOrder":2,"hideLabel":true,"stepId":"b1d68b7bb4cce0da961ade9c"},"decorative header_195372880347572":{"type":"Decorative Header","value":"How Many Storie Tall Is Your Building?","width":12,"sortOrder":1,"step":3,"stepId":"36431f413f53ad9e825a2987"},"buttons_434479994874058":{"type":"Buttons","validationRules":{"required":false},"label":"Building Stories","width":12,"multiple":false,"buttonStyle":{"buttonsPerRow":1,"height":"50"},"options":[{"text":"1 Story","id":"1fe5588703e40f6bcc2377ac"},{"text":"2 Story","id":"c9fef5509bd6fb976dcfc852"},{"text":"3 + story","id":"c3c07aba06ec78b021125671"}],"step":3,"sortOrder":2,"hideLabel":true,"stepId":"36431f413f53ad9e825a2987"},"decorative header_49815005699601":{"type":"Decorative Header","value":"Type Of Desired Roofing?","width":12,"sortOrder":1,"step":4,"stepId":"64835c141afdd84da0f61dcf"},"buttons_301806483865095":{"type":"Buttons","validationRules":{"required":false},"label":"Desired Materials","width":12,"multiple":false,"buttonStyle":{"buttonsPerRow":1,"height":"50"},"options":[{"text":"Asphalt Shingles","id":"d263d8defc9b813b74e1f284"},{"text":"Tile Roofing","id":"e7e41a645654b5cb334bc948"},{"text":"Metal Roofing","image":null,"id":"8a0fac86f44197e57600cd12"},{"text":"Single Ply Commercial","image":null,"id":"d7b85e04eaf81951ca15ddca"}],"step":4,"sortOrder":2,"hideLabel":true,"stepId":"64835c141afdd84da0f61dcf"},"hidden_43573102863509":{"type":"Hidden","hiddenFieldName":"gclid","width":12,"stepId":"d948d6f1ab6f8cbf9e7cb3a3","sortOrder":3},"text_598738714140703":{"type":"Text","label":"Last name","width":12,"stepId":"a666375f030145edfd55fa60","sortOrder":3},"hidden_355209301213981":{"type":"Hidden","hiddenFieldName":"fbclid","width":12,"stepId":"d948d6f1ab6f8cbf9e7cb3a3","sortOrder":4}},"options":{"numberOfSteps":6,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Next","submitText":"Get me my free quote!","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"},"headerMarginTop":40,"parentBackgroundColor":"#f5f5f5","innerFormBackgroundColor":"#ded9d9","innerFormBackgroundTransparency":"","primaryColor":"#322b6d","bodyTextColor":"#1c1c1c","parentContainerBackgroundType":"none","innerFormBackgroundType":"none","buttonBorderColor":"#ffffff","buttonColorSelected":"#ffffff","buttonBorderColorSelected":"#2696e6","footerMarginBottom":80,"errorColor":"#ff4e4e","buttonColor":"#ffffff","inputLabelColor":"#6f6e6e","inputTextColor":"#262626","buttonTextColor":"#000000","inputBackgroundColor":"#ffffff","buttonFontSize":15,"showShadows":"Yes"},"localization":{"dateFormat":"DD/MM/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://www.grandmarkroofing.com/thank-you/"}],"actionOnSubmit":"redirect","analyticsSettings":{"google_ads":{"conversionId":"","conversionLabel":""},"google_analytics":{"trackingId":"G-C7GTBBTHJV"},"facebook":{"pixelId":"1089353769623037"}},"captureSystemDetails":true,"sendCustomRedirectQueryParams":false},"ownedByUser":"626164f19f6e2a00226626af","personalisation":{"form_related_to":"Roofers / roofing"},"created":"2022-04-21T17:03:01.127Z","__v":1,"lastEdited":"2025-10-22T23:40:23.744Z","steps":[{"id":"d948d6f1ab6f8cbf9e7cb3a3","name":"Unnamed step 1","sortOrder":1},{"id":"b1d68b7bb4cce0da961ade9c","name":"Unnamed step 2","sortOrder":2},{"id":"36431f413f53ad9e825a2987","name":"Unnamed step 3","sortOrder":3},{"id":"64835c141afdd84da0f61dcf","name":"Unnamed step 4","sortOrder":4},{"id":"f0a6d79f31d518c7a02f8822","name":"Unnamed step 5","sortOrder":5},{"id":"a666375f030145edfd55fa60","name":"Unnamed step 6","sortOrder":6}],"screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1761175624/growform-production/form-screenshots/62618e459f6e2a0022666db7.png","leadsCount":21,"folderId":"6867e9fecd5e7c000b6ca7cf","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' + '