Help
RSS
API
Feed
Maltego
Contact
Domain > guildcleaners.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2015-12-20
184.168.114.101
(
ClassC
)
2024-09-12
3.21.198.119
(
ClassC
)
Port 80
HTTP/1.1 302 Moved TemporarilyServer: awselb/2.0Date: Thu, 12 Sep 2024 19:09:12 GMTContent-Type: text/htmlContent-Length: 110Connection: keep-aliveLocation: https://guildcleaners.com:443/ html>head>title>302 Found/title>/head>body>center>h1>302 Found/h1>/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Thu, 12 Sep 2024 19:09:13 GMTContent-Type: text/html; charsetutf-8Content-Length: 225504Connection: keep-aliveServer: nginxVary: Cookie, originStrict-Transport-Security: max-age31536000; includeSubDomainsX-Content-Type-Options: nosniffReferrer-Policy: same-originSet-Cookie: csrftokenoyBrbJs3MYsh2onPvZHxad96RwoKpTqusutekH1kdPhEqPH9dbZqdijaXUJ6FGJx; expiresThu, 11 Sep 2025 19:09:12 GMT; Max-Age31449600; Path/; SameSiteLax; SecureSet-Cookie: sessionid8ec8utrjzn4b7sp4v49d0a019q9yngns; expiresThu, 26 Sep 2024 19:09:12 GMT; HttpOnly; Max-Age1209600; Path/; SameSiteLax; Secure !DOCTYPE html>html langen> head> !-- inclusion of stripe in script-src is to prevent error when typing in stripe form -->meta http-equivContent-Security-Policy contentdefault-src self nonce-9LSfyOGije8ZlXLiIQWsD6Zq4cc unsafe-inline;script-src nonce-9LSfyOGije8ZlXLiIQWsD6Zq4cc *.tawk.tohttps://embed.tawk.tohttps://cdn.jsdelivr.net/emojione/2.2.7/lib/js/emojione.min.jshttps://js.stripe.com/v3/fingerprinted/js/https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.jsunsafe-inline;font-src fonts.gstatic.comstackpath.bootstrapcdn.comhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/fonts/https://s3beanzoid.s3.us-east-2.amazonaws.com/static/fonts/*.tawk.to;img-srcselfhttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/https://s3beanzoid.s3.us-east-2.amazonaws.com/static/images/https://pagesmackprivate.s3.us-east-2.amazonaws.com/*.tawk.tohttps://tawk.link/https://cdn.jsdelivr.net/emojione/https://www.google-analytics.com/https://i.ytimg.com/https://www.googletagmanager.com/https://s3.amazonaws.com/tawk-to-pi/data:;media-src https://embed.tawk.tohttps://static-v.tawk.to;connect-srcself nonce-9LSfyOGije8ZlXLiIQWsD6Zq4cc https://*.tawk.to wss://*.tawk.tohttps://www.google-analytics.com/j/https://www.google-analytics.com/g/collect;style-src unsafe-inline fonts.googleapis.com https://cdn.jsdelivr.net/emojione/https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.csshttps://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.csshttps://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.csshttps://s3beanzoid.s3.us-east-2.amazonaws.com/static/css/https://s3beanzoid.s3.us-east-2.amazonaws.com/static/bootstrap_datepicker_plus/css/datepicker-widget.css*.tawk.to; frame-src selfhttps://www.google.com/ https://js.stripe.com/v3/ https://maps.google.com/https://youtube.comhttps://www.youtube.comhttp://www.youtube.comhttp://youtube.comhttps://vimeo.comhttps://www.vimeo.comhttp://www.vimeo.comhttp://vimeo.comhttps://vine.cohttps://www.vine.cohttp://www.vine.cohttp://vine.cohttps://instagram.comhttps://www.instagram.comhttp://www.instagram.comhttp://instagram.comhttps://dailymotion.comhttps://www.dailymotion.comhttp://www.dailymotion.comhttp://dailymotion.comhttps://youku.comhttps://www.youku.comhttp://www.youku.comhttp://youku.comhttps://va.tawk.to;;manifest-src selfhttps://s3beanzoid.s3.us-east-2.amazonaws.com/static/js/;base-urinone;/> !-- should always be at top --> meta nameviewport contentwidthdevice-width, initial-scale1> meta namedescription contentPremier dry cleaning, laundry service, alterations, wash & fold. Serving Lodi, CA since 1947. Schedule a FREE pick up & delivery or drive thru today.> !-- Define url for social media --> meta propertyog:url contenthttps://www.guildcleaners.com /> !-- tested --> !-- Define title for social media --> meta propertyog:title contentGuild Dry Cleaners & Alterations - Best Dry Cleaners in Lodi CA /> !-- Define description for social media --> meta propertyog:description contentPremier dry cleaning, laundry service, alterations, wash & fold. Serving Lodi, CA since 1947. Schedule a FREE pick up & delivery or drive thru today. /> !-- define content type for social media --> meta propertyog:type contentwebsite /> !-- Define thumbnail for social media --> meta propertyog:image contenthttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2> meta propertyog:image:secure_url contenthttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2> title> Guild Dry Cleaners & Alterations - Best Dry Cleaners in Lodi CA /title> meta charsetutf-8> meta http-equivX-UA-Compatible contentIEedge,chrome1> style nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> .comphexcolor { background-color: #cc0000; } .afterhexbgcolor::after { background-color: #f64bc8 !important; } inputtypecheckbox:checked + .checkcontainer { border-color: #cc0000; } .colored_outline_on_focus:focus{ outline: 3px solid #f64bc8; } .accentcolor{ color: #f64bc8 !important; } .compaccentcolor{ color: #cc0000; } .shadeaccentcolor { color: rgba(203, 10, 151, 1.0); } .accentbghex { background-color: #f64bc8; } .accentbghexonhover:hover { background-color: #f64bc8; } .accentbgrgb { background-color: rgb(246, 75, 200); } .accentbgrgba { background-color: rgba(246, 75, 200, 0.9); } .accentbgrgba50 { background-color: rgba(246, 75, 200, 0.5); } /* used for buttons that have to change color when hovered */ .accentbgrgbhover { background-color: rgb(246, 75, 200, 0.7); } .accentbgrgbhover:hover { background-color: rgba(246, 75, 200); } .whitetoaccent:hover { color: rgba(246, 75, 200); } .accenttoshade { background-color: rgb(246, 75, 200, 1.0); } .accenttoshade:hover { background-color: rgba(203, 10, 151, 1.0); } .coloraccenttoshade { color: rgb(246, 75, 200, 1.0); } a.coloraccenttoshade, a.coloraccenttoshade:visited, a.coloraccenttoshade:link, a.coloraccenttoshade:active { /* to override bootstrap */ color: rgb(246, 75, 200, 1.0); } .accenttopborder { border-top: 3px solid rgba(246, 75, 200); } .coloraccenttoshade:hover { color: rgba(203, 10, 151, 1.0); } .buttoncolor { background-color: rgba(203, 10, 151, 1.0); } .buttoncolor:hover { background-color: rgba(203, 10, 151, 0.75); } /* If something is only required to change bgcolor or color on hover, needs to be pulled out of style.css and put here. Also, put template specific items here. */ .buttonborder { border-bottom: 3px solid rgba(203, 10, 151, 1.0); border-right: 3px solid rgba(203, 10, 151, 1.0); } /style> !-- preconnect to reduce load time --> link relpreconnect hrefhttps://fonts.gstatic.com/ crossorigin> link reldns-prefetch hrefhttps://fonts.gstatic.com/> link relpreconnect hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com> link reldns-prefetch hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com> link relpreconnect hrefhttps://cdnjs.cloudflare.com> link reldns-prefetch hrefhttps://cdnjs.cloudflare.com> style nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> /* If something is only required to change bgcolor or color on hover, needs to be pulled out of style.css and put here. Also, put template specific items here. */ /*link hrefhttps://fonts.googleapis.com/css?familyRoboto:wght@400,500,700,800&displayswap relstylesheet> */ /*Do not add the below font styles to master.css as it adds a layer to the tree*/ /* cyrillic-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format(woff2); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format(woff2); unicode-range: U+0370-03FF; } /* vietnamese */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Roboto; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format(woff2); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format(woff2); unicode-range: U+0370-03FF; } /* vietnamese */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Roboto; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* greek-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format(woff2); unicode-range: U+1F00-1FFF; } /* greek */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format(woff2); unicode-range: U+0370-03FF; } /* vietnamese */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Roboto; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /*link hrefhttps://fonts.googleapis.com/css2?familyMontserrat:wght@500;600;700&displayswap relstylesheet>*/ /* cyrillic-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* vietnamese */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 500; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* vietnamese */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 600; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* cyrillic-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format(woff2); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format(woff2); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* vietnamese */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format(woff2); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format(woff2); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: Montserrat; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format(woff2); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /*fonts for glyphicons - dont include in master.css to ensure minimum chain depth*/ @font-face{ font-family:Glyphicons Halflings; font-display: swap; src:url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.eot); src:url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.eot?#iefix) format(embedded-opentype), url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff2) format(woff2), url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff) format(woff), url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.ttf) format(truetype), url(https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format(svg) } /style> !-- zoom in for accessibility --> !-- increase letter spacing --> !-- increase word spacing --> !-- increase margin under paragraphs --> !-- increase line height --> !-- css --> link relstylesheet hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com/static/css/Templates/blocks/master.min.css.gz?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6501b9409ad5ae77c58928e45cea3f91de9ef9155bac6c22654cc7fdee78dc77> !-- Required for tawk.to --> meta namereferrer contentno-referrer-when-downgrade> link relicon typeimage/png hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/guild_cleaners_final_1-20240310234221-thumbnail-48x48.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature8439589b5365a0f0fb1e5e8f4368546bee4d206a50c88451c7cfe9b6bdb6de60 sizes48x48 /> link relicon typeimage/png hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/guild_cleaners_final_1-20240310234221-thumbnail-32x32.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturea4045c82295bae32f89e0fef06e548a1d971c3bda54a2658da6199f57d9a4743 sizes32x32 /> link relicon typeimage/png hrefhttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/guild_cleaners_final_1-20240310234221-thumbnail-16x16.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature0e5bebf686ae18af48e3651ac626b99ad9ff11f4c45157bb0e049e2f317d1e76 sizes16x16 /> /head> !-- reg contrast --> body classhighcontrastoptional> !-- Add Skip Links --> div classskip-links> a href#mainMenu classdesktopmainmenu>Skip to main menu/a> a href#topofnavcontainer classmobilemainmenu>Skip to main menu/a> a href#mainContent>Skip to main content/a> a href#businessqualities>Skip to business qualities/a> a href#hometestimonialsblock>Skip to testimonials/a> a href#footerblock>Skip to footer/a> /div> div classpanelstemplate> !-- topbody tag should ALWAYS appear immediately after body tag --> div classbodyprimary> div classmainalertdarkbg> div classmainalertbox> div classmainalerttext> /div> div classmainalertbuttoncontainer> div idokalterbutton classmainalertbutton triggerclickonenter> OK /div> /div> /div>/div> style nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> .navigation ul.flexme1 li::before { background-color: #f64bc8; } @media (min-width: 768px) { .navigation ul li .subservicelist li a:hover { color: #f64bc8 !important; } .navigation ul li.glyph a:hover { color: #f64bc8 !important; } .navigation ul li:hover a{ color: #f64bc8 !important; } .subpage .navigation.darkbill ul li:hover a { color: #f64bc8 !important; } .subpage .navigation.darkbill ul li.glyph a:hover { color: #f64bc8 !important; } .subpage .navigation.darkbill ul li .subservicelist li:hover a { color: #f64bc8 !important; } } @media (max-width: 767px) { .navbar-collapse.collapse { background-color: #f64bc8; } } .companyname { font-size: 14px; } /style> div classtotalheader largenav> !-- of correct page type --> !-- Booking form enabled --> !-- Based on pricing and not for work requests --> !-- Default coupon enabled and banner to be shown--> !-- Start of Navigation --> div classnavigationcontainer idtopofnavcontainer rolenavigation> div classnavigation largenavigation> div classnavbar navbar-default> div classnavbar-header> !-- when using the drop down button, this class puts the links directly under the title of the site --> div classmobilelogo> a classcompanyname href/ aria-labelhomepage> img logo_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/logo-20240311080155-thumbnail-600x600-94.JPG?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturebdca84e7a244e003c0d6be6181bf41fe4ea70e831f780583d16581f14d4c554f srchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-600x600-94_7vrkh0mr0u-20240317233553.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturedf4e87690bee88ce6fcc47e87df083652f8387a7e0f8b966e30afa99862685c5 altGuild Cleaners logo /> /a> /div> div classtogglecontainer> div classnavbar-toggle focusedelement triggerclickonenter rolebutton tabIndex0 aria-expandedfalse aria-labelOpen navigation menu> div classbar accentbghex>/div> div classbar accentbghex>/div> div classbar accentbghex>/div> /div> /div> /div> div classnavbar-collapse collapse clearfix> !-- collapses nav bar at smaller resolutions. collapse declaration at end indicates that it is to be collapsed by default --> div classmobilewavecontainer> div classgradientpanel> /div> /div> a classcallusnow hreftel:209-368-2414 aria-labelCall us at 209-368-2414> div classcallnowcontainer> i classfa-solid fa-square-phone-flip aria-hiddentrue>/i> Tap to Call Us /div> /a> div classclosemenu triggerclickonenter rolebutton aria-labelClose navigation menu> div classglyphicon glyphicon-remove>/div> /div> div classmobile_accessibility_widget main_site_widget> div classaccessibility_widget> div rolebutton classwhitetoaccent accessibility_button settabindex0 triggerclickonenter accessibilityitem aria-labelopen accessibility menu tabindex0 aria-expandedfalse> i classfa-solid fa-universal-access>/i> i classfa-solid fa-square-xmark>/i> /div> div classaccessibility_menu> h2> Accessibility Menu /h2> div classaccessibilityunderline>/div> div classaccessibility_button_container rolenavigation aria-labelaccessibility menu> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option1 aria-checkedfalse> i classfa-solid fa-circle-half-stroke aria-hiddentrue>/i> div classaccessibility_description> High Contrast /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option2 aria-checkedfalse> i classfa-solid fa-magnifying-glass aria-hiddentrue>/i> div classaccessibility_description> Zoom In /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option3 aria-checkedfalse> i classfa-solid fa-s aria-hiddentrue>/i> div classaccessibility_description> Letter Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option4 aria-checkedfalse> i classfa-solid fa-left-right aria-hiddentrue>/i> div classaccessibility_description> Word Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option5 aria-checkedfalse> i classfa-solid fa-arrows-down-to-line aria-hiddentrue>/i> div classaccessibility_description> Paragraph Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option6 aria-checkedfalse> i classfa-solid fa-text-height aria-hiddentrue>/i> div classaccessibility_description> Line Height /div> /div> /div> /div>/div> /div> ul classnav navbar-nav logo rolemenu> !-- formats links horizontally --> !-- Logo or Business name--> li classcompanyblock rolemenuitem> a classcompanyname href/ aria-labelhomepage> img logo_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/logo-20240311080155-thumbnail-600x600-94.JPG?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturebdca84e7a244e003c0d6be6181bf41fe4ea70e831f780583d16581f14d4c554f srchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-600x600-94_7vrkh0mr0u-20240317233553.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturedf4e87690bee88ce6fcc47e87df083652f8387a7e0f8b966e30afa99862685c5 altGuild Cleaners logo /> /a> /li> /ul> !-- Home Link--> ul classnav navbar-nav flexme1 rolemenu idmainMenu> !-- formats links horizontally --> li classhome1 homepage activelink rolemenuitem>a href/>Home/a>/li> !-- Gallery Link--> !-- Services Link--> li classservices activelink rolemenuitem>a href#/ rolebutton aria-haspopuptrue aria-expandedfalse>Services/a> ul classsubservicelist> li>div classarrowicon>/div>/li> li>a href/services/dry-cleaning/>Dry Cleaning/a>/li> li>a href/services/shirt-laundry-service/>Shirt Laundry Service/a>/li> li>a href/services/wedding-dress-cleaning/>Wedding Dress Cleaning/a>/li> li>a href/services/wash-and-fold-service/>Wash and Fold Service/a>/li> li>a href/services/clothing-alterations-repairs/>Clothing Alterations & Repairs/a>/li> li>a href/services/pick-up-delivery/>Pick up & Delivery/a>/li> li>a href/services/stain-removal/>Stain Removal/a>/li> li>a href/services/commercial-laundry-service/>Commercial Laundry Service/a>/li> /ul> /li> !-- About Us Link--> li classaboutus activelink rolemenuitem>a href/about-us/>About Us/a>/li> !-- Bonus Page Link--> li classbonuslink activelink rolemenuitem> a href/pricing-guide/>Pricing Guide/a> /li> !-- Book now / request quote Link--> li classorder activelink buttontospin rolemenuitem> a href/order/> div classbuttonhighlight accenttoshade> span classbooknowtext> Book Now /span> span classfa fa-spin fa-spinner aria-hiddentrue>/span> /div> /a> /li> !-- Contact Us Link--> li classnavshrink contactus glyph activelink rolemenuitem> a aria-labelcontact us href/contact/> span classglyphicon glyphicon-earphone header aria-hiddentrue>/span> span classcontactus1>Contact Us/span> /a> /li> !-- Home Link to be shown at smaller viewports--> li classhiddenhome glyph homepage activelink rolemenuitem> a aria-labelhomepage href/> span classglyphicon glyphicon glyphicon-home aria-hiddentrue>/span> /a> /li> /ul> /div> /div> /div> !-- End of Navigation --> /div> !-- End of Navigation container --> /div> !-- end of total header --> div classdesktop_accessibility_widget main_site_widget> div classaccessibility_widget> div rolebutton classwhitetoaccent accessibility_button settabindex0 triggerclickonenter accessibilityitem aria-labelopen accessibility menu tabindex0 aria-expandedfalse> i classfa-solid fa-universal-access>/i> i classfa-solid fa-square-xmark>/i> /div> div classaccessibility_menu> h2> Accessibility Menu /h2> div classaccessibilityunderline>/div> div classaccessibility_button_container rolenavigation aria-labelaccessibility menu> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option1 aria-checkedfalse> i classfa-solid fa-circle-half-stroke aria-hiddentrue>/i> div classaccessibility_description> High Contrast /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option2 aria-checkedfalse> i classfa-solid fa-magnifying-glass aria-hiddentrue>/i> div classaccessibility_description> Zoom In /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option3 aria-checkedfalse> i classfa-solid fa-s aria-hiddentrue>/i> div classaccessibility_description> Letter Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option4 aria-checkedfalse> i classfa-solid fa-left-right aria-hiddentrue>/i> div classaccessibility_description> Word Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option5 aria-checkedfalse> i classfa-solid fa-arrows-down-to-line aria-hiddentrue>/i> div classaccessibility_description> Paragraph Spacing /div> /div> div rolebutton classcolored_outline_on_focus noselect accessibility_option settabindex0 triggerclickonenter accessibilityitem tabindex0 accessiblity_option6 aria-checkedfalse> i classfa-solid fa-text-height aria-hiddentrue>/i> div classaccessibility_description> Line Height /div> /div> /div> /div>/div> /div> div classrestofbody largenav> div classhomepagemaindiv> div classblockybillboard movebillboarddown rolebanner> div classgridblock rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/static/images/dot.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturea56259f774eb6fd919adee69b084f19c1b89df3cf3aaf0a9efba8aa5409e71fe);>/div> div classblockybillboardcontainer> !-- no tint --> div classnotintpanel> div classfadebillboard boxshadow panel1>/div> div classfadebillboard boxshadow panel2>/div> div classfadebillboard boxshadow panel3>/div> div classfadebillboard boxshadow panel4>/div> div classfadebillboard boxshadow panel5>/div> div classfadebillboard boxshadow panel6>/div> /div> !-- no tint --> div classnotintpanel> div classfadebillboard shadepanel panel1>/div> div classfadebillboard shadepanel panel2>/div> div classfadebillboard shadepanel panel3>/div> div classfadebillboard shadepanel panel4>/div> div classfadebillboard shadepanel panel5>/div> div classfadebillboard shadepanel panel6>/div> /div> div classmobilefadebillboard fadebillboard mainpanel panel1 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classmobilefadebillboard fadebillboard mainpanel panel2 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classmobilefadebillboard fadebillboard mainpanel panel3 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classmobilefadebillboard fadebillboard mainpanel panel4 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classmobilefadebillboard fadebillboard mainpanel panel5 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classmobilefadebillboard fadebillboard mainpanel panel6 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/nail-960x540-94_ocj8z9ipwc-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatured7af18de643eb451823c5ec76f416be9d120a02f7b212d824cc54bf234640745); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-960x540-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureab14c430f78bd90a6a1f7b663960ef7b1152a73a5eeb7786a4a2c72ceb78e831);>/div> div classfadebillboard mainpanel panel1 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> div classfadebillboard mainpanel panel2 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> div classfadebillboard mainpanel panel3 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> div classfadebillboard mainpanel panel4 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> div classfadebillboard mainpanel panel5 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> div classfadebillboard mainpanel panel6 rolepresentation stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-1920x1080-94_6pjbw8d7on-20240315052944.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature6599b3c27b8872b999242d3e842b3d6ddc903ec75ff9327762134002280cf60d); img_stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1159347696-20240315052941-thumbnail-1600x900-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84995e69c1f37b8170ac610fb2f43344ef960310c8250011ee84aefa891e8cd2);>/div> /div> !-- end of blockybillboardcontainer --> div classitemshade> div classbillhead> !-- validation that a main heading will be displayed --> !-- pass --> !-- validation that a main heading will be displayed --> h1 classmainheading> Lodi's Premier Dry Cleaning & Laundry Service Since 1947 /h1> h2 classsubheading mobilesubheading> Schedule a pickup in 60 seconds /h2> h2 classsubheading> Schedule a pickup in 60 seconds /h2> /div> !-- end of billhead --> a href/order/ classmobilehomebooknow bookbutton accenttoshade transitionall rolebutton> Book Now div classiconcontainer aria-hiddentrue> span idmobilehomebooknowarrow classglyphicon glyphicon-triangle-right>/span> span classfa fa-spin fa-spinner idmobilehomebooknowspinner styledisplay: none;>/span> /div> /a> /div> !-- end of item shade -->/div> !-- end of panelcontainer -->div idmainContent> !-- start of main content of the entire page -->/div> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> // check_webp_feature: // feature can be one of lossy, lossless, alpha or animation. // callback(feature, isSupported) will be passed back the detection result (in an asynchronous way!) function check_webp_feature(feature, callback) { var kTestImages { lossy: UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA, lossless: UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA, alpha: UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA, animation: UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA }; var img new Image(); img.onload function () { var result (img.width > 0) && (img.height > 0); callback(feature, result); }; img.onerror function () { callback(feature, false); }; img.src data:image/webp;base64, + kTestImagesfeature; } check_webp_feature(lossy, function (feature, isSupported) { //webp will load by default if a webp file is available (for max speed on Chrome and Edge). Next, we have to determine if we should replace it with a standard image (eg. jpg) //step 1. determine if img has already loaded to due the fact that no webp file is present. if (document.querySelector(.fadebillboard).getAttribute(image_set) true) { // pass as this means that jpg is already being used for the background, which has global browser support } else { //step 2: If webp is not supported, replace background image with the jpg version if (isSupported false) { document.querySelectorAll(.fadebillboard).forEach(function(element) { //we have to iterate over the 6 panels var backgroundstyle element.getAttribute(img_style); element.setAttribute(style, backgroundstyle); //mark the fact that a png or jpg is being displayed element.setAttribute(imagetype, oldgen); }); } } //load fallback for logo if required var logos document.querySelectorAll(a.companyname img); logos.forEach(function(element) { // determine if it has attribute of logo_lazysrc. This attr will always store the jpg or png logo if it is present. var attr element.getAttribute(logo_lazysrc); if (typeof attr ! undefined && attr ! false && isSupported false) { //if the div has the attribute nextgen_lazysrc and webp isnt supported, load logo_lazysrc to src element.setAttribute(src, attr); } //dump logo_lazysrc element.removeAttribute(logo_lazysrc); }); }); document.addEventListener(DOMContentLoaded, function() { const img new Image(); img.onload function() { const width this.width; const height this.height; const aspectRatio width / height; //if the image is too wide, resize if (aspectRatio > 1.7867) { document.querySelectorAll(.panelstemplate .blockybillboardcontainer .fadebillboard).forEach(function(element){ element.style.backgroundSize auto 750px; }); } }; //get image var backgroundImageUrl getComputedStyle(document.querySelector(.fadebillboard.mainpanel.panel1)).backgroundImage; //get url for image const urlPattern /url\(?(^+)?\)/; const urlMatches backgroundImageUrl.match(urlPattern); // run function and resize background imge as required img.src urlMatches1; }); function showsubheading(){ var subHeadings document.querySelectorAll(.billhead .subheading); if(subHeadings) { subHeadings.forEach(function(subHeading) { subHeading.classList.add(showbillelement); }); } } document.addEventListener(DOMContentLoaded, function() { var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if (document.querySelector(.largetextlogo)) { if (document.querySelector(.billhead .mainheading)) { document.querySelector(.billhead .mainheading).classList.add(showbillelement); setTimeout(function() { showsubheading() setTimeout(function() { if ( document.querySelector(.mobilehomebooknow) ){ document.querySelector(.mobilehomebooknow).classList.add(showbillelement); } }, 250); }, 250); } else { showsubheading() setTimeout(function() { if ( document.querySelector(.mobilehomebooknow) ){ document.querySelector(.mobilehomebooknow).classList.add(showbillelement); } }, 250); } } else { if (document.querySelector(.billhead .mainheading)) { document.querySelector(.billhead .mainheading).classList.add(showbillelement); setTimeout(function() { showsubheading() setTimeout(function() { if ( document.querySelector(.mobilehomebooknow) ){ document.querySelector(.mobilehomebooknow).classList.add(showbillelement); } }, 250); }, 250); } else { showsubheading() setTimeout(function() { if ( document.querySelector(.mobilehomebooknow) ){ document.querySelector(.mobilehomebooknow).classList.add(showbillelement); } }, 250); } } }); /script> div classsitefeatures container> div classtitlesection> h2 classtitle> Simplifying the Process /h2> /div> div classsitefeaturesbox> div classsitefeaturessubbox cellphoneimage clearfix lowcontrasthiddenoptional> div classcellphonemaincontainer> a idcellphoneorderbutton href/order/ rolebutton aria-label Book Now > div classcellphonecontainer aria-hiddentrue> div classtotaltestimonialcontainer templatetestimonialheader> div classpanelbanner accentbgrgb> /div> /div> div classaddressbarcontainer> div classaddressbartop aria-hiddentrue rolepresentation> div aria-hiddentrue rolepresentation classaddressbarelement> 7:52 /div> div classaddressbarelement> i aria-hiddentrue rolepresentation classfas fa-cloud>/i> /div> div classaddressbarelement> i aria-hiddentrue rolepresentation classfas fa-calendar-alt>/i> /div> div classaddressbarelement largeelement> i aria-hiddentrue rolepresentation classfab fa-facebook-square>/i> /div> div classaddressbarelement> i aria-hiddentrue rolepresentation classfas fa-wifi>/i> /div> div classaddressbarelement> i aria-hiddentrue rolepresentation classfas fa-signal>/i> /div> div classaddressbarelement> i aria-hiddentrue rolepresentation classfas fa-battery-three-quarters>/i> /div> /div> div classaddressbarbottom aria-hiddentrue rolepresentation> i aria-hiddentrue rolepresentation classfas fa-lock>/i> div classaddressbardomainname> guildcleaners.com /div> /div> /div> div classcellphonetitle> Book Now /div> div classphonecontactsection> div classphoneheading> CONTACT DETAILS /div> div classphonelinecontent> First Name /div> div classphonelinecontent> Last Name /div> div classphonelinecontent> Phone Number /div> div classphonelinecontent> Email Address /div> /div> div classphonecontactsection homeaddresssection> div classphoneheading> JOB ADDRESS /div> div classphonelinecontent> Street Address /div> div classphonelinecontent> Unit/Suite/Apt. Number /div> div classphonelinecontent> City /div> /div> /div> /a> /div> !-- end of cellphonemaincontainer --> /div> div classsitefeaturessubbox> !-- start of code for 3 points --> div classprocesscontainer> div classprocessitem> div classprocessnumber accentcolor> div classprocessvalue> 1 /div> /div> div classprocesstext> div classprocessheading> Stop by or schedule a pick up /div> div classprocessdescription> Stop by our location in downtown Lodi at 17 S Church st or schedule a pick up from your home or business. /div> /div> /div> div classprocessitem> div classprocessnumber accentcolor> div classprocessvalue> 2 /div> /div> div classprocesstext> div classprocessheading> Talk to Our Team /div> div classprocessdescription> Use our chat feature or Call us at 209-368-2414 with any questions about our service. /div> /div> /div> div classprocessitem> div classprocessnumber accentcolor> div classprocessvalue> 3 /div> /div> div classprocesstext> div classprocessheading> Enjoy /div> div classprocessdescription> Sit back and relax as our staff take care of your dry cleaning, laundry & alteration needs. /div> /div> /div> /div> /div> /div> /div> div classpreventload> !-- prevents divs from half loading while page is in the process of loading --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc srchttps://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js>/script> div classfeaturesbox lightbgtint idbusinessqualities> div classfeaturessubbox accentbghex> div idfeaturescontainer1 classfeaturescontainer> div classfeaturesmessage> div classtitlesection > h2 classtitle white>What Makes Us/h2> /div> p>What makes Guild Cleaners unique? Some might say it's how long we've been in business (since 1947) or the great service that we offer with our convenient drive-thru or at your doorstep. At Guild Cleaners, we believe that it's trust. Each day, we take every measure to ensure that you and your clothing are served in a manner that is safe, secure, reliable and of the highest quality./p> /div> /div> div classfeaturesmessagesubcircle> /div> /div> div classfeaturessubbox hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/pexels-liza-summer-6347879-20240224014829-thumbnail-1920x1080-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureb419da0a315c69b1066084a8b49d383309fa9949902fb2090ee35b0b234f147c); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/il-4000x4000-94_iv2keq6qoy-20240310060640.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature7cbc12c2325a41d36f6e0f5668347797139664b61c3347c9bbe1456b5da21fa6);> div idfeaturescontainer2 classfeaturescontainer> div classtitlesection > h2 classtitle white>What Makes Us/h2> /div> div classhidewhatmakesus> p>What makes Guild Cleaners unique? Some might say it's how long we've been in business (since 1947) or the great service that we offer with our convenient drive-thru or at your doorstep. At Guild Cleaners, we believe that it's trust. Each day, we take every measure to ensure that you and your clothing are served in a manner that is safe, secure, reliable and of the highest quality./p> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/12-red-20200711183612-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature8a079c5f325b48f6d1833682c2773d43c1ee34e851d0c78394f99e06b94aab8d nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/12-red-20200711183612-thumbnail-160x160-20230920063510.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturefa2177c6ab672b3353622d593612c28c850f9e4aa98d526c0dff6a687cb30d75 rolepresentation/> /div> div classfeatureheading> Highly Trained /div> div classfeaturedescription> We have countless staff with a lifetime of experience caring for your wardrobe. Over 500 years of combined experience. /div> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/6-red-20200711183904-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature866123a1511bd782784370d5693baf94892156cd883fd5ff77b474e1c248a8c0 nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/6-red-20200711183904-thumbnail-160x160-20230920063515.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature473122f6feb33b46e22eed15183349ab54020f59459947cee2f34ccd976b828c rolepresentation/> /div> div classfeatureheading> Quality /div> div classfeaturedescription> We are committed to delivering services that are performed on time and with a high attention to detail using only the best processes available. /div> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/9-red-20200711183737-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureb99be65581e0f651d1e95bbbebbbdfeb3a392ffc1f9dc4af928f1abb1cfb567d nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/9-red-20200711183737-thumbnail-160x160-20230920063528.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureebc6b9fa011822ac2a1d070c68f4c101295c06b52c1a15fb747acf0e57c8379f rolepresentation/> /div> div classfeatureheading> Award Winning /div> div classfeaturedescription> Our focus on delivering quality services to our customers has earned us several awards. We're the most awarded dry cleaner serving Lodi since 1947. /div> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/5-red-20200711183933-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature62f93fa1f92ba3ac7a8587dd3e1a4b9da5b2b56b553d27c31826767014592083 nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/5-red-20200711183933-thumbnail-160x160-20230920063526.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature237c7e8343149348c9bf92c6058c01aca3377d4b462a9e4b7ac1ddc5ffebe2c7 rolepresentation/> /div> div classfeatureheading> Saves Time /div> div classfeaturedescription> Our services are designed to save you time so that you can relax and enjoy the finer things in life. /div> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/14-red-20200711183509-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature0720895c8b79438258c35681c929badd10235b423d6f6b2fd4b737137d297069 nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/14-red-20200711183509-thumbnail-160x160-20230920063524.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturef2b2e946b7d26e689f7ffaed989460ca9139492fe717d804adb7fff701bcff63 rolepresentation/> /div> div classfeatureheading> Friendly /div> div classfeaturedescription> We pride ourselves on treating our customers in the way that we'd like to be treated. /div> /div> div classfeature> div classfeatureimage> img alt lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Features/2-red-20200711184457-thumbnail-160x160.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature80fc38e3668c6d3d33c7bf7fc25729e72ccf81ed09fa8f652861af46b3534690 nextgen_lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Features/2-red-20200711184457-thumbnail-160x160-20230920063531.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature0163146640d7e948f4246fabe035b42498f8280d56546a57560ccdc43d4d1fd6 rolepresentation/> /div> div classfeatureheading> Competitive Pricing /div> div classfeaturedescription> We strive to offer our customers with competitive pricing and industry leading value. /div> /div> /div> !-- end of feature container --> /div> !-- end of featuressubbox --> /div> !-- end of featuresbox --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> // for navigation $(document).ready(function() { //close services menu within navigation function close_services_menu(){ var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 768 ){ var subservicelist $(.navigation .subservicelist); subservicelist.css(opacity, 0).css(transition, all .3s ease).css(-webkit-transition,all .3s ease).css(-o-transition,all .3s ease); jQuery(document).ready(function() { setTimeout(function() { subservicelist.css(display, none).css(margin-top,-10px); //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); //mark as closed $(.nav .services a).attr(aria-expanded, false); },10); }); } } //on focus of navigation link $(document).on(focus, .navigation a, function() { //if its not the service link or submenu that is being focused if ( !$(this).parent().hasClass(services) && !$(this).parent().parent().parent().hasClass(services) ){ //if subservice list is open, close it if ( $(.navigation .services > a).attr(aria-expanded) true ){ close_services_menu() } } }); $(.navbar-toggle, .mobilemainmenu).click(function(){ //mark menu as open $(.navbar-toggle).attr(aria-expanded, true); $(.navbar-collapse.collapse).css(margin-left,0).css(transition, all .45s ease).css(-webkit-transition,all .45s ease).css(-o-transition,all .45s ease); //delay by 600ms and then pop in phone number setTimeout(function() { $(.callusnow).addClass(showcallusnow); },600); //prevent tabbing from selecting items on page behind menu $(.restofbody, .footerbg, .upnav, .skip-links).find(ahref, button, input, textarea, select, tabindex:not(tabindex-1)).attr(tabIndex,-1); //remove tabIndex on links in menu so that they can be selected with tab at all times. This is unrelated to the wave element $(.navigation, .clientmobilenav).find(a).removeAttr(tabIndex); //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); //prevent user from selecting logo or navbar toggle $(.companyname, .navbar-toggle).attr(tabIndex,-1); //allow close menu to be selected $(.closemenu).attr(tabIndex, 0); //ensure that call us now is the first item to be selected $(.callusnow).attr(tabIndex, 1); //allow widget to be selectable $(.accessibility_button).attr(tabindex,0); }); $(.closemenu).click(function(){ //mark menu as closed $(.navbar-toggle).attr(aria-expanded, false); $(.navbar-collapse.collapse).css(margin-left,120vw); $(.subservicelist).css(height, 0).removeClass(nowopen); //close list of services //delay by 300ms and then remove phone number setTimeout(function() { $(.callusnow).removeClass(showcallusnow); },300); //allow tabbing within body of page $(.restofbody, .footerbg, .upnav, .skip-links).find(ahref, button, input, textarea, select, tabindex:not(tabindex-1)).removeAttr(tabIndex); //apply base TabIndexes $(.settabindex0).attr(tabIndex, 0); $(.forcetabindexnegative1).attr(tabIndex, -1); //set tabIndex to -1 for links in menu to prevent them from being selected. This is unrelated to the wave element. $(.navigation, .clientmobilenav).find(a).not(.companyname, .logo).attr(tabIndex,-1); //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); //dont allow close menu to be selected $(.closemenu).removeAttr(tabIndex); //dont allow callusnow to be selected $(.callusnow).attr(tabIndex,-1); //allow user to select logo or navbar toggle $(.totalheader .companyname, .totalheader .navbar-toggle).attr(tabIndex,0); //prevent services from being selectable if panel is closed if ( $(.toggleserviceslist).hasClass(nowopen) false ){ $(.allservicescontainer).find(a).attr(tabIndex,-1); } //prevent widget from being selectable $(.accessibility_button).attr(tabindex,-1); }); //automatically show regular nav on resize if window is > 768px var lastwidth window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; $( window ).resize(function() { var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width ! lastwidth ){ lastwidth width; if ( width > 768 ){ $(.navbar-collapse.collapse).css(margin-left,0).css(transition, all 0s ease).css(-webkit-transition,all 0s ease).css(-o-transition,all 0s ease); $(.subservicelist).css(display, none).css(opacity, 0).css(margin-top, -10px); } else if ( width 768 ) { //closes nav on resize $(.navbar-collapse.collapse).css(margin-left,120vw).css(transition, all 0s ease).css(-webkit-transition,all 0s ease).css(-o-transition,all 0s ease); $(.subservicelist).css(height, 0).removeClass(nowopen).css(display, block).css(opacity, 1).css(margin-top, 0); //close list of services } } }); function openserviceslist(div){ var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 768 ){ var subservicelist div.find(.subservicelist); subservicelist.css(display, block); //mark as open $(.nav .services a).attr(aria-expanded, true); //set tabIndex on services so they can be selected $(.navigation .subservicelist a).attr(tabIndex, 0); jQuery(document).ready(function() { setTimeout(function() { subservicelist.css(opacity, 1).css(margin-top,0px).css(transition, all .3s ease).css(-webkit-transition,all .3s ease).css(-o-transition,all .3s ease); },10); }); } } $(.services, .services a).click(function() { openserviceslist($(this)); }); $( .services, .services a ).hover( function() { openserviceslist($(this)); }, function() { var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 768 ){ var subservicelist $(this).find(.subservicelist); subservicelist.css(opacity, 0).css(transition, all .3s ease).css(-webkit-transition,all .3s ease).css(-o-transition,all .3s ease); jQuery(document).ready(function() { setTimeout(function() { subservicelist.css(display, none).css(margin-top,-10px); //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); //mark as closed $(.nav .services a).attr(aria-expanded, false); },10); }); } } ); }); $(document).ready(function() { $(.services).click(function(){ //opens and closes service menu var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width 768 ){ var subservicelist $(this).find(.subservicelist); if ( subservicelist.hasClass(nowopen) ) { subservicelist.css(height, 0).removeClass(nowopen); //Mark menu as closed $(this).find(a).attr(aria-expanded, false); $(.mobilewavecontainer).css(height, 100vh); //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); } else { var services subservicelist.find(li); var serviceheight 0; services.each(function(){ serviceheight serviceheight + $(this).outerHeight(); }); subservicelist.css(height, serviceheight +px).addClass(nowopen); //Mark menu as open $(this).find(a).attr(aria-expanded, true); //get height of window var windowheight $( window ).height(); //get height of closed navigation var navheight $(.nav.navbar-nav.flexme1).outerHeight() + 120; //120 is from the following: 80 is an approx estimate of the height of the content above the links + 40 for bottom padding //if content is taller than window if ( (navheight + serviceheight) > windowheight ){ //calculate required height var waveheight windowheight + ((navheight + serviceheight) - windowheight); //set mobilewavecontainer to required height $(.mobilewavecontainer).css(height, waveheight + px); } //set tabIndex on services so they can be selected $(.navigation .subservicelist a).attr(tabIndex, 0); } } }); $(.subservicelist).click(function(e) { e.stopPropagation(); //prevents click of link from closing dropdown menu }) }); //add border to mobile phone when focused -- accessiblity feature // Use event delegation to listen for focus event on dynamically added elements with id cellphoneorderbutton $(document).on(focus, #cellphoneorderbutton, function() { // Add class forcefocusedelement to the parent of the focused element $(this).parent().addClass(forcefocusedelement); }); // Use event delegation to listen for focusout event on elements with id cellphoneorderbutton $(document).on(focusout, #cellphoneorderbutton, function() { // Remove class forcefocusedelement from the parent of the element that lost focus $(this).parent().removeClass(forcefocusedelement); }); // for billboard $(document).ready(function() { //show spinner on click of mobile button $(.mobilehomebooknow).on(click, function(){ $(this).find(#mobilehomebooknowarrow).hide(); $(this).find(#mobilehomebooknowspinner).show(); }); // Function to remove the redborder class when user tabs to it function removeRedBorder() { // Get all input and select elements const elements document.querySelectorAll(.homebooksection input, .homebooksection select); // Iterate over each element elements.forEach(element > { // Add an event listener for the focus event element.addEventListener(focus, function() { // Remove the redborder class from the element this.classList.remove(redborder); }); }); } // Call the function to activate the behavior removeRedBorder(); //process homebooking form on click $(.homepageorderform .bookbutton:not(.mobilehomebooknow)).on(click, function(event){ var bookbutton $(this); var emptyvaluecounter 0 var homeinputs $(.homebooksection input).not(.homebooksection.lastname input); //lastname is honeypot value // flag inputs if they arent filled in homeinputs.each(function(){ if ( $(this).val() ) { $(this).addClass(redborder); $(this).attr(aria-invalid,true); $(this).attr(aria-describedby,This field is required); emptyvaluecounter emptyvaluecounter + 1 } else { $(this).removeClass(redborder); $(this).removeAttr(aria-invalid); $(this).removeAttr(aria-describedby); } }) var homeselects $(.homebooksection select); // flag selects if they arent filled in homeselects.each(function(){ var option $(option:selected, this).attr(value); if ( option ) { $(this).addClass(redborder); $(this).attr(aria-invalid,true); $(this).attr(aria-describedby,This field is required); emptyvaluecounter emptyvaluecounter + 1 } else { $(this).removeClass(redborder); $(this).removeAttr(aria-invalid); $(this).removeAttr(aria-describedby); } }); // check to see if email is valid var email $(#id_email).val(); var isemailvaild validateEmailAddress(email); if ( isemailvaild false ) { $(#id_email).addClass(redborder); $(#id_email).attr(aria-invalid,true); $(#id_email).attr(aria-describedby,Please enter a valid email address); emptyvaluecounter emptyvaluecounter + 1 } else { $(#id_email).removeClass(redborder); $(#id_email).removeAttr(aria-invalid); $(#id_email).removeAttr(aria-describedby); } //prevent redirect if there is an error on form if ( emptyvaluecounter > 0 ) { //dont submit ajax } else { var honeypot $(.homebooksection.lastname input).val(); if ( honeypot ! ) { //dont submit ajax } else { //ajax to create usercart bookbutton.css(pointer-events, none); $(.bookbutton .fa-spinner).css(display, inline-block) $(.bookbutton .glyphicon).css(display, none) var first_name $(#id_first_name).val(); var phone $(#id_phone).val(); if($(#id_frequency).length 0) { var frequency null } else { var frequency $(#id_frequency :selected).attr(value); } var service1 $(#id_primaryservice1 :selected).attr(value); var service2 $(#id_primaryservice2 :selected).attr(value); var service3 $(#id_primaryservice3 :selected).attr(value); if(service1){ service1 0 } if(service2){ service2 0 } if(service3){ service3 0 } var data { first_name: first_name, phone: phone, email: email, frequency: frequency, service1: service1, service2: service2, service3: service3, } var $myForm $(.homepageorderform) var $thisURL $myForm.attr(data-url) if($thisURL websites){ var myURL / + $thisURL + /homepage_create_cart/ } else { var myURL /homepage_create_cart/ } $.ajax({ type: POST, url: myURL, data: data, // this passes data context into our view success: function(data) { //get link to order page var orderlink $(.navigation .order a).attr(href); //send user to order page window.location.replace(orderlink) }, error: function(response, error) { bookbutton.css(pointer-events, auto); } }) } } }); //remove red border on focus $(.homebooksection input, .homebooksection select).on(click, function(){ $(this).removeClass(redborder); }); }); // for features $(document).ready(function() { //set height of features containers to the correct hight on load. required for verticle centering setTimeout(function() { //gives features icons tims to load so that height calc is correct var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 1300 ){// Limit of 1300 has to match media query in features1.css var features2 $(#featurescontainer2).height(); var features1 $(#featurescontainer1 .featuresmessage).height(); //140 represents top/bottom padding of 70px on .featuressubbox if ( features2 > features1 ){ $(#featurescontainer1).height(features2); } else { $(#featurescontainer2).height(features1); } } $(.featurescontainer).css(opacity,1); },100); //set height of features containers to the correct hight on resize. required for verticle centering $( window ).resize(function() { var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 1300 ){ // Limit of 1300 has to match media query in features1.css var features2 $(#featurescontainer2).height(); var features1 $(#featurescontainer1 .featuresmessage).height(); //140 represents top/bottom padding of 70px on .featuressubbox if ( features2 > features1 ){ $(#featurescontainer1).height(features2).css(opacity,1); } else { $(#featurescontainer2).height(features1); } } else { $(#featurescontainer2).css(height,initial); } }); }); /script> div classhomeservices largepanels> div classcontainer> div classtitlesection> h2 classtitle> Our Services /h2> /div> div classservicescontainer> a classservicebox serviceboxwithbody focusedelement href/services/dry-cleaning/ rolebutton aria-labelDry Cleaning> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/pexels-anna-tarazevich-5242808-20240224015411-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature2db550bf963b2cb4135620bef3a67ee1ba5aa11e7f30c459013c3a070ecce80b); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_3wc0g6a9gu-20240315055034.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature3c2c870116857bab3ea7f11b964d3a908c0dc6b9164261aac78d8db646a4b942);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Dry Cleaning /h3> div classserviceboxbody> Highest Quality Dry Cleaning since 1947. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> a classservicebox serviceboxwithbody focusedelement href/services/shirt-laundry-service/ rolebutton aria-labelShirt Laundry Service> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1041286698-20240310073140-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature7a48e960589373c2381d0075589f1b4948710d679745c85b2f220cf185bc6d27); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_wogeacfv7j-20240310073216.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature9dccedeb225c40ed2cbd291708459417d268f80e194cb1f01a999a89e42e135d);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Shirt Laundry Service /h3> div classserviceboxbody> Take advantage of our shirt laundry service. Shirts are cleaned with the highest quality detergents available and pressed to perfection. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> a classservicebox serviceboxwithbody focusedelement href/services/wedding-dress-cleaning/ rolebutton aria-labelWedding Dress Cleaning> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/pexels-terje-sollie-313702-20240224021016-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature535e898799fec2717002e2829a8462d46ec77c0a8d5a29852a25644e7af377a3); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_r5zpefp9ef-20240310181913.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature40956a131d2c971535bfed757032b497fdbb342229752b048b48a9dff08c4c7e);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Wedding Dress Cleaning /h3> div classserviceboxbody> Wedding Gowns cleaned and preserved to perfection backed by 100s of years of industry experience. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> a classservicebox serviceboxwithbody focusedelement href/services/wash-and-fold-service/ rolebutton aria-labelWash and Fold Service> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1329135522-20240310074054-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature53e27647a6e2ca23fec9bd87ea657162198fd2d5509b1ad9a1652ff7d4b1e06e); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_1m99xvm02v-20240310183931.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturedfb33bf31f098e4d0821ca3e81a04efe63d97dca170373c47858fffc065871ca);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Wash and Fold Service /h3> div classserviceboxbody> Clothes washed, dried and folded. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> a classservicebox serviceboxwithbody focusedelement href/services/clothing-alterations-repairs/ rolebutton aria-labelClothing Alterations & Repairs> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/pexels-cottonbro-studio-4620624-20240224021858-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature84ef90e26502af089d7a90198f005779edf482d2740ac000e22448e4e12aa51d); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_b7892iu0in-20240302010745.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signatureec5534aef55ee73051b60e1748280257ccd91917165b0d92fe53c767035d4283);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Clothing Alterations & Repairs /h3> div classserviceboxbody> We offer repairs and alterations on most clothing. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> a classservicebox serviceboxwithbody focusedelement href/services/pick-up-delivery/ rolebutton aria-labelPick up & Delivery> div rolepresentation classserviceboximage hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/Users/guildcleanerslodi%40gmail.com_000000000003/iStock-1132394829-20240310072633-thumbnail-1100x620-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature3b66d470de44b3c41d0acdae74e3e3e1ca0c34b2b6b6c96262fb7849e4a163d0); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/guildcleanerslodi%40gmail.com_000000000003/ail-1100x620-94_23j7dcqwmt-20240310182203.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature77ff22d39d792ef4c20bd79c13cd5a82a18f4365038545b7ee75042a74c675de);> /div> !-- Content --> div classserviceboxshade> div classserviceboxwriting> h3 classserviceboxtitle> Pick up & Delivery /h3> div classserviceboxbody> Pick up and delivery available in Lodi & Stockton at your home or business. /div> /div> div classservicelinkbutton> div classhoverforinfo> | More Info /div> div classarrowcontainerbox> i classfa-solid fa-play>/i> /div> /div> /div> /a> /div> /div> !-- end of container --> div classseeallservices> div classtoggleserviceslist triggerclickonenter coloraccenttoshade transitionall settabindex0 rolebutton tabindex0 aria-expandedfalse> i classfa-solid fa-eye aria-hiddentrue>/i> See All Services /div> div classallservices stylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/static/images/Templates/hexagon10.png?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature70778d739dd61b95e0785721a1eac51e033d12b9140540a299b602fdce09c0a0);> div classallservicescontainer> a classserviceheading href/services/clothing-alterations-repairs/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Clothing Alterations & Repairs/a> a classserviceheading href/services/commercial-laundry-service/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Commercial Laundry Service/a> a classserviceheading href/services/dry-cleaning/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Dry Cleaning/a> a classserviceheading href/services/pick-up-delivery/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Pick up & Delivery/a> a classserviceheading href/services/shirt-laundry-service/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Shirt Laundry Service/a> a classserviceheading href/services/stain-removal/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Stain Removal/a> a classserviceheading href/services/wash-and-fold-service/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Wash and Fold Service/a> a classserviceheading href/services/wedding-dress-cleaning/ tabindex-1> span classglyphicon glyphicon-new-window aria-hiddentrue>/span> Wedding Dress Cleaning/a> /div> /div> /div> /div> !-- end of homeservices --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(document).ready(function() { function show_service_info(panel){ if ( panel.find(.serviceboxbody).hasClass(showbody) false ) { //get height of content var height panel.find(.serviceboxbody).outerHeight(true); var heightInt parseInt(height, 10); //move title up by this amount panel.find(.serviceboxtitle).css(bottom, height + px); //calculate new position var newtop 380 - heightInt; //380 is the default top of .serviceboxbody //set position of body panel.find(.serviceboxbody).css(top, newtop + px); //set opacity at 1 panel.find(.serviceboxbody).addClass(showbody); } } function hide_service_info(panel){ if ( panel.find(.serviceboxbody).hasClass(showbody) true ) { //set title to bottom panel.find(.serviceboxtitle).css(bottom, 0); //get height of serviceboxwriting without margin var height panel.find(.serviceboxwriting).outerHeight(false); var heightInt parseInt(height, 10); //set top of content to that height to hide is panel.find(.serviceboxbody).css(top, heightInt + px); //set opacity at 0 panel.find(.serviceboxbody).removeClass(showbody) } } $(.homeservices.largepanels .servicebox).hover( function(){ // Mouse enter var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 767 ){ show_service_info($(this)) } }, function(){ // Mouse leave var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width > 767 ){ hide_service_info($(this)) } } ); $(.toggleserviceslist).click(function(){ var allservices $(.allservices); //close box if ( allservices.hasClass(nowopen) ) { $(.toggleserviceslist).removeClass(nowopen); //remove class now open allservices.css(height, 0).removeClass(nowopen); //make links non-selectable via tab as this div will not be visible $(.allservicescontainer a).attr(tabindex, -1); //update html $(.toggleserviceslist).html(i classfa-solid fa-eye aria-hiddentrue>/i> See All Services) //udpate flag $(.toggleserviceslist).attr(aria-expanded,false); } else { $(.toggleserviceslist).addClass(nowopen); var heightx $(.allservicescontainer).outerHeight(); allservices.css(height, heightx +px).addClass(nowopen); //make links selectable $(.allservicescontainer a).attr(tabindex, 0); //update html $(.toggleserviceslist).html(i classfa-solid fa-eye-slash aria-hiddentrue>/i> Close Services) //udpate flag $(.toggleserviceslist).attr(aria-expanded,true); } }); }); /script> div classtotaltestimonialcontainer templatetestimonialheader hometemplatetestimonialheader idhometestimonialsblock> div classpanelbanner accentbgrgb> div classgradientpanel> /div> /div> div classpanelbanner accentbgrgb> div classgradientpanel> /div> /div> div classcustomerssay> div classtitlesection > h2 classtitle>What Customers Say/h2> /div> /div> div classtestimonialsection> div classtestimonialgradiantcolor accenttoshade>/div> div classcontainer testimonialcontainer> div classrow testimonials> !--testimonial instance will remain even if user deletes all content. this will filter those intances out--> div classtestimonialbox> div classquotemark> i aria-hiddentrue classfas fa-quote-left>/i> /div> div classtestimonialmessage> I have been using this dry cleaner for few years, and they never disappoint. They always provide excellent service, and my clothes come back looking brand new. The staff is friendly, and they go above and beyond to ensure that their customers are satisfied. /div> div classtestimonialowner> div classheadshot> div classperson2 hiddenbackground rolepresentation lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/StockPhotos/Headshots/man1-20200711194439-thumbnail-120x120-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturea345b2626363a889add01943c515e0bd416d7f80f07e4246cbe734a508896355);>/div> /div> div classpersonaldetails> div classname>Jesus/div> div classlocation>Lodi, CA /div> /div> /div> /div> !-- end of testimonialbox --> !--testimonial instance will remain even if user deletes all content. this will filter those intances out--> div classtestimonialbox> div classquotemark> i aria-hiddentrue classfas fa-quote-left>/i> /div> div classtestimonialmessage> Super great customer service!! And the results are outstanding! /div> div classtestimonialowner> div classheadshot> div classperson2 hiddenbackground rolepresentation lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/StockPhotos/Headshots/woman2-20200711194351-thumbnail-120x120-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature60d798041ebe43962d253fa23600277c1ebe2c528fe664f446f9a835b7cbd3f9);>/div> /div> div classpersonaldetails> div classname>Samantha/div> div classlocation>Lodi, CA /div> /div> /div> /div> !-- end of testimonialbox --> !--testimonial instance will remain even if user deletes all content. this will filter those intances out--> div classtestimonialbox> div classquotemark> i aria-hiddentrue classfas fa-quote-left>/i> /div> div classtestimonialmessage> Friendly professional staff. Good hours. Pick up service is a plus. They have been great to us, with help for our disabled son. /div> div classtestimonialowner> div classheadshot> div classperson2 hiddenbackground rolepresentation lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/media/__sized__/StockPhotos/Headshots/woman3-20200711194412-thumbnail-120x120-94.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature5a8030bac442923254b37d62cc565773cdfe46840292cf556c11baf983cc1383);>/div> /div> div classpersonaldetails> div classname>Carol/div> div classlocation>Lodi, CA /div> /div> /div> /div> !-- end of testimonialbox --> /div> !-- end of testimonials --> /div> !-- end of container --> /div> !-- end of testimonialsection -->/div> !-- end of totaltestimonialcontainer --> div classserviceareamap hiddenbackground lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/static/images/citymap.jpg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature13bab95c9192cd1a54de5ab6082e2439e094276336aa9ee533f1f1e3a5dcac52); nextgen_lazystylebackground-image: url(https://s3beanzoid.s3.us-east-2.amazonaws.com/static/images/citymap.webp?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature8c141f9afbd0d16a20eecbd73be636b27b27a9c6da90012ab65ad1e35a34f7d5);> div classserviceareamapfilter> /div> div classcontainer serviceareamapcontent> div classtitlesection> h2 classtitle> Service Areas /h2> /div> div classservicingareasheading> Guild Cleaners is proud to serve the following communities: /div> div classcitylist> div classcityitem> i aria-hiddentrue classfa-solid fa-location-dot compaccentcolor>/i> Lodi /div> div classcityitem> i aria-hiddentrue classfa-solid fa-location-dot compaccentcolor>/i> Stockton /div> div classcityitem> i aria-hiddentrue classfa-solid fa-location-dot compaccentcolor>/i> Woodbridge /div> div classcityitem> i aria-hiddentrue classfa-solid fa-location-dot compaccentcolor>/i> Galt /div> /div> /div> /div> div classbooknowblock container> div classbooknowblock2> div classtitlesection> h2 classtitle> Book Today /h2> /div> div classbooknowprompt> Take advantage of our easy-to-use booking form to book your appointment today. /div> a href/order/ classbookbutton accenttoshade transitionall rolebutton> Book Now span classglyphicon glyphicon-triangle-right aria-hiddentrue>/span> /a> /div> /div> /div> /div> !-- end of homepagemaindiv --> /div> !-- end of restofbody --> /div> !-- end of bodyprimary --> div classfooterbg idfooterblock rolecontentinfo aria-labelpage footer> div classfootercontainer> div classfooterboxes> div classfooterbox> h2 classfootertitle> Site Links /h2> div classfooterunderline sitelink accentbghex> /div> !-- link for home --> div classfooterlink> a href/>Home/a> /div> !-- link for gallery --> !-- link for services or faqs --> !-- link for about us --> div classfooterlink> a href/about-us/>About Us/a> /div> !-- link for Bonus Page --> div classfooterlink> a href/pricing-guide/>Pricing Guide/a> /div> !-- link for Book Now--> div classfooterlink> a href/order/> Book Now /a> /div> /div> !-- end of footerbox for site links --> !-- start of footerbox for Services --> div classfooterbox hidesmall> h2 classfootertitle> Services /h2> div classfooterunderline servicelink accentbghex> /div> div classfooterlink> a href/services/dry-cleaning/>Dry Cleaning/a> /div> div classfooterlink> a href/services/shirt-laundry-service/>Shirt Laundry Service/a> /div> div classfooterlink> a href/services/wedding-dress-cleaning/>Wedding Dress Cleaning/a> /div> div classfooterlink> a href/services/wash-and-fold-service/>Wash and Fold Service/a> /div> div classfooterlink> a href/services/clothing-alterations-repairs/>Clothing Alterations & Repairs/a> /div> div classfooterlink> a href/services/pick-up-delivery/>Pick up & Delivery/a> /div> /div> div classfooterbox> h2 classfootertitle> Get in Touch /h2> div classfooterunderline getintouchlink accentbghex> /div> div classfooterlink> div classglyphicon glyphicon-earphone>/div> a hreftel:209-368-2414 aria-labelCall us at 209-368-2414> 209-368-2414 /a> /div> div classfooterlink> div classglyphicon glyphicon-envelope>/div> a hrefmailto:guildcleanerslodi@gmail.com aria-labelEmail us at guildcleanerslodi@gmail.com> guildcleanerslodi@gmail.com /a> /div> div classfooterlink> div classglyphicon glyphicon-globe>/div> a hrefhttps://www.guildcleaners.com aria-labelVisit us online at www.guildcleaners.com> guildcleaners.com /a> /div> div classfooterlink> div classglyphicon glyphicon-send>/div> a href/contact/>Send a Message/a> /div> div classfooterlink> div classglyphicon glyphicon-map-marker>/div> 17 Church st div classsubline>Lodi, CA/div> div classsubline>95240/div> /div> /div> !-- end of footerbox for get in touch section --> /div> !-- end of footerboxes --> div classsecondfootersection clearfix> div classemailsignup> div classemailsignupmessage> Sign up for news and promotions. /div> div classsubscribeform clearfix> input typehidden namecsrfmiddlewaretoken valueJGnSllQUywqAYuNCyYwAP5zHZ8OsqIA1NCfFujpbZnfXmV7WgaOtSaJL5w9OGvT4> div classnotrequiredinput> input classmyinput idmyinput2 tabindex-1> label idlabelformyinput formyinput2>My Input/label> /div> div classglyphicon glyphicon-envelope>/div> input classmyemail focusedelementwhite placeholderEnter Email aria-labelEmail> div classsubscribesubmit1 livesite accenttoshade transitionall> button typesubmit aria-labelSubmit email> Submit /button> /div> /div> /div> !-- end of emailsignup --> /div>!-- end of secondaryfootersection --> /div> !-- end of footercontainer --> div classthirdfootersection clearfix> div classfootercontainer> div classcompanyrights> © 2024 span classcompanynamecolor>Guild Cleaners/span>. All Rights Reserved. /div> div classprivacylinks> a href/privacy/>Privacy Policy /a> | a href/terms/>Terms & Conditions/a> span classfooterdividor>| /span> div classpoweredby> Powered by a hrefhttps://pagesmack.com aria-labelVisit PageSmack>img classfooterlogo lazysrchttps://s3beanzoid.s3.us-east-2.amazonaws.com/media/Users/jason/whitelogo3-20220807215524.svg?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature4043fdd94ce3af6efe5fd008cf0ee25a05037ab20b09d85f7a4132e1e138f890 altPageSmack logo />/a> /div> /div> !-- end of privacy links --> /div> !-- end of footercontainer --> /div>!-- end of thirdfootersection -->/div>!-- end of footerbg --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(document).ready(function() { $(.subscribesubmit1).on(click, function(){ //remove error flags and values $(.myemail).removeClass(redborder); $(.myemail).removeAttr(aria-invalid); $(.myemail).removeAttr(aria-describedby); var myinput $(.myinput).val(); var myemail $(.myemail).val(); var subbutton $(this); // function to validate email address. returns false if email isnt valid function validateEmailAddress(email) { var expression /(?!.*\.{2})^(a-z\d!#$%&*+\-\/?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF+(\.a-z\d!#$%&*+\-\/?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF+)*|((( \t*\r\n)? \t+)?(\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF|\\\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF))*(( \t*\r\n)? \t+)?)@((a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF|a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF*a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF)\.)+(a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF|a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEFa-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF*a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF)\.?$/i; return expression.test(String(email).toLowerCase()); } if ( myinput && validateEmailAddress(myemail) ! false && subbutton.hasClass(livesite) ) { // pass date into view via ajax var data { myemail: myemail, } $.ajax({ type: POST, url: /submit_subscription_email/, data: data, // this passes data context our view success: function(data) { var subscription_result data.subscription_result; if ( subscription_result 1) { subbutton.html(Subscribed!); subbutton.addClass(tempvalue); $(.myemail).val(); subbutton.css(cursor, default); setTimeout(function() { subbutton.html(button typesubmit aria-labelSubmit email>Submit/button>); subbutton.removeClass(tempvalue); subbutton.css(cursor, pointer); }, 2000); } else { subbutton.html(Error); subbutton.addClass(tempvalue); subbutton.css(cursor, default); setTimeout(function() { subbutton.html(button typesubmit aria-labelSubmit email>Submit/button>); subbutton.removeClass(tempvalue); subbutton.css(cursor, pointer); }, 2000); } }, error: function(response, error) { subbutton.html(Error); subbutton.addClass(tempvalue); subbutton.css(cursor, default); setTimeout(function() { subbutton.html(button typesubmit aria-labelSubmit email>Submit/button>); subbutton.removeClass(tempvalue); subbutton.css(cursor, pointer); }, 2000); } }) } else if ( validateEmailAddress(myemail) false && subbutton.hasClass(livesite) ){ subbutton.html(Invalid Email); subbutton.addClass(tempvalue); subbutton.css(cursor, default); $(.myemail).addClass(redborder); $(.myemail).attr(aria-invalid,true); $(.myemail).attr(aria-describedby,Please enter a valid email address); setTimeout(function() { subbutton.html(button typesubmit aria-labelSubmit email>Submit/button>); subbutton.removeClass(tempvalue); subbutton.css(cursor, pointer); }, 2000); } else if ( !subbutton.hasClass(livesite) ){ subbutton.html(Live Site Only); subbutton.addClass(tempvalue); subbutton.css(cursor, default); setTimeout(function() { subbutton.html(button typesubmit aria-labelSubmit email>Submit/button>); subbutton.removeClass(tempvalue); subbutton.css(cursor, pointer); }, 2000); } }); }); /script> !-- should always appear after the last div --> /div> !-- end of classpanelstemplate> --> div idcsrf_token_ajax_key csrf_token_ajax_keyJGnSllQUywqAYuNCyYwAP5zHZ8OsqIA1NCfFujpbZnfXmV7WgaOtSaJL5w9OGvT4>/div> div idaccentbgrgb color246, 75, 200>/div> div idaccentcolor colorf64bc8>/div> div idcompaccentcolor colorcc0000>/div> div idshadeaccentcolor color203, 10, 151 alpha1>/div> div idcoloraccenttoshade color246, 75, 200 alpha1>/div> div idaccentbghex colorf64bc8>/div> div idaccentbgrgba color246, 75, 200 alpha0.9>/div> div idaccentbgrgba50 color246, 75, 200 alpha0.5>/div> div idaccenttoshade color246, 75, 200 alpha1>/div> div idbuttoncolor color203, 10, 151 alpha1>/div> div idaccentbgrgbhover color246, 75, 200 alpha0.7>/div> !-- This should be the first script after html loads so that there is no delay in loading the wave --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> //function to only execute resize logic after the resize is complete as opposed to for each pixel we increase/decrease jQuery.windowResize (function($) { var enqueue function() { // Setter method for the queue of callbacks var callbacks Array.prototype.slice.call(arguments); for (var i in callbacks) queue.push(callbacksi); }, flush function() { // Check every 100ms to see if resize has finished clearTimeout(timer); timer setTimeout(doCallbacks, 100); }, doCallbacks function() { // Run any functions that have been queued for (var i in queue) queuei.call(window); }, timer, queue ; $(function() { $(window).resize(flush); // Bind to jQuery window object just once }); return enqueue; })(jQuery); function close_accessibility_menu(){ //set aria labels $(.accessibility_button).attr(aria-label,open accessibility menu); $(.accessibility_button).attr(aria-expanded,false); $(.accessibility_button).removeClass(accessibility_button_open); //slide menu out $(.accessibility_menu).removeClass(slidemenu); //show human icon $(.accessibility_button i).removeClass(moveup); //lock out button $(.accessibility_button).css(pointer-events,none); //prevent options from being selectable $(.colored_outline_on_focus).attr(tabindex, -1); //allow tabbing to menu icon, notifications icon, and accessibility button $(.hamburger, .opennotifications, .clientportal .accessibility_button).attr(tabIndex, 0); var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; //ensure that update profile link is still not selectable if ( width 1201 ){ $(.clientportal .profilelink).attr(tabIndex,-1); } else { $(.clientportal .profilelink).attr(tabIndex,0); } jQuery(document).ready(function() { setTimeout(function() { //hide menu $(.accessibility_menu).hide(); //allow button to be clicked $(.accessibility_button).css(pointer-events,initial); $(.accessibility_button).addClass(triggerclickonenter); },500); }); } function setwaveheight() { var result $(.testimonials).height(); var xsm window.matchMedia( (max-width: 480px) ); var sm window.matchMedia( (max-width: 767px) ); var mq window.matchMedia( (max-width: 992px) ); if (xsm.matches) { var firstsvg 2.3*result var secondsvg 2.2*result var thirdsvg 1.6*result if ( result 300) { firstsvg firstsvg + 450 secondsvg secondsvg + 460 thirdsvg thirdsvg + 290 } } else if (sm.matches) { var firstsvg 1.9*result var secondsvg 1.8*result var thirdsvg 1.5*result if ( result 150){ firstsvg firstsvg + 410 secondsvg secondsvg + 380 thirdsvg thirdsvg + 340 } else if ( result 300) { firstsvg firstsvg + 260 secondsvg secondsvg + 230 thirdsvg thirdsvg + 190 } } else if (mq.matches) { var firstsvg 1.8*result var secondsvg 1.9*result var thirdsvg 1.7*result if ( result 150){ firstsvg firstsvg + 360 secondsvg secondsvg + 330 thirdsvg thirdsvg + 290 } else if ( result 300) { firstsvg firstsvg + 260 secondsvg secondsvg + 230 thirdsvg thirdsvg + 190 } } else { var firstsvg 1.9*result var secondsvg 2.1*result var thirdsvg 1.7*result if ( result 150){ firstsvg firstsvg + 330 secondsvg secondsvg + 310 thirdsvg thirdsvg + 290 } else if ( result 300) { firstsvg firstsvg + 220 secondsvg secondsvg + 190 thirdsvg thirdsvg + 150 } } $(#firstsvg).css(height, firstsvg + px); $(#secondsvg).css(height, secondsvg + px); $(#thirdsvg).css(height, thirdsvg + px); //prevents svgs from adjusting height after theyve been shown to the user $(.banner .testimonialsection).css(opacity,1); //how title of page after wave has loaded $(.titlesection .title).css(opacity,1); //set height of iframes to correct height var summerframes $(.summernote iframe); var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var iframewidth 0; //allow tabbing within body of page $(.restofbody, .footerbg, .upnav, .skip-links).find(ahref, button, input, textarea, select, tabindex:not(tabindex-1)).removeAttr(tabIndex); if ( width 1500 ){ //reset zoom level and remove zoomded inclass document.body.style.zoom 1; document.body.classList.remove(zoomedin); } if ( width 768 ){ summerframes.each(function(){ $(this).css(width, 100%); iframewidth $(this).width(); iframeheight iframewidth/1.78; $(this).css(height, iframeheight+px); //show iframe after size has been adjusted $(this).css(opacity,1); }); //TABBING AND ACCESSIBILITY LOGIC //set tabIndex to -1 for links in menu to prevent them from being selected. This is unrelated to the wave element. $(.navigation, .clientmobilenav).find(a).not(.companyname, .logo).attr(tabIndex,-1); //allow user to select logo or navbar toggle $(.totalheader .companyname, .totalheader .navbar-toggle).attr(tabIndex,0); //set tabIndex to -1 for links in menu to prevent them from being selected. This is unrelated to the wave element. $(.navigation, .clientmobilenav).find(a).not(.companyname, .logo).attr(tabIndex,-1); //if services is expandable, then set aria-haspopup to false as this is a desktop only popup if ( $(.nav .services a).attr(aria-haspopup) ){ $(.nav .services a).attr(aria-haspopup, false); } } else { summerframes.each(function(){ $(this).css(height, 309px); $(this).css(width, 550px); //show iframe after size has been adjusted $(this).css(opacity,1); }); //TABBING AND ACCESSIBILITY LOGIC //remove tabIndex on links in menu so that they can be selected with tab at all times. This is unrelated to the wave element $(.navigation, .clientmobilenav).find(a).removeAttr(tabIndex); //dont allow user to select navbar toggle $(.companyname, .navbar-toggle).attr(tabIndex,-1); //allow user to select logo $(.totalheader .companyname).attr(tabIndex,0); //set tabIndex to 0 for links in menu to allow them to be selected $(.navigation).find(a).not(.companyname, .logo).removeAttr(tabIndex); //set tabIndex to -1 for links in menu to prevent them from being selected. This is unrelated to the wave element. $(.clientmobilenav).find(a).not(.companyname, .logo).attr(tabIndex,-1); //Allow for book now button to be selectable $(.homebookform .bookbutton).attr(tabIndex, 0); //if services is expandable, then set aria-haspopup to true as this is a popup that happens on desktop if ( $(.nav .services a).attr(aria-haspopup) ){ $(.nav .services a).attr(aria-haspopup, true); } } //within service matrix, allow headings to be selected on smaller view ports if ( width > 992 ){ $(.servicecategory .serviceitem).attr(tabIndex, -1); } else { $(.servicecategory .serviceitem).attr(tabIndex, 0); } //set tabIndex on services so they cant be selected $(.navigation .subservicelist a).attr(tabIndex, -1); //dont allow close menu to be selected $(.closemenu).removeAttr(tabIndex); //dont allow callusnow to be selected $(.callusnow).attr(tabIndex,-1); //allow client portal links to be clicked $(.opennotifications, .clientportal .hamburger).attr(tabIndex,0); //LOGIC RELATED TO CLIENT PORTAL //allow top nav to still be selectable. code in navbar2.html will set tabIndex of -1 on these elements $(.clientportal.navigationbar tabindex-1).removeAttr(tabIndex); //set tab index of negative -1 on notifications $(.notificationmessages).attr(tabIndex,-1); if ( $(.hamburger).hasClass(opennav) ){ //remove the opennav class $(.hamburger).removeClass(opennav); //set height of navigation container to 0 to close it $(.main .portalcontainer.portalcontainer1.clientmobilenav).css(height,0); //mark menu as closed $(.hamburger).attr(aria-expanded, false); //remove cross and add bars and set aria label $(.hamburger).removeClass(fa-times); $(.hamburger).addClass(fa-bars); $(.hamburger).css(font-size,20px) $(.hamburger).attr(aria-label, Open navigation menu); //allow tabbing within body of page $(.restofbody, .footerbg, .upnav, .skip-links).find(ahref, button, input, textarea, select, tabindex:not(tabindex-1)).removeAttr(tabIndex); //prevent links from being selectable $(.clientmobilenav a).attr(tabIndex, -1); } //allow profile link to be selectable if large screensize if ( width 1201 ){ $(.clientportal .profilelink).attr(tabIndex,-1); } else { $(.clientportal .profilelink).attr(tabIndex,0); } //set tab index on notifications and hamburger $(.hamburger, .opennotifications).attr(tabIndex, 0); //prevent services from being selectable if panel is closed if ( $(.toggleserviceslist).hasClass(nowopen) false ){ $(.allservicescontainer).find(a).attr(tabIndex,-1); } //Mark menus as closed as resize of window will cause menus and nav to close $(.nav .services a).attr(aria-expanded, false); $(.navbar-toggle).attr(aria-expanded, false); //mark input field as non-selectable $(#myinput2).attr(tabIndex, -1) //allow user to select explanations on service matrix $(.servicetitleunderline).attr(tabIndex, 0); //set base tabIndex settings $(.settabindex0).attr(tabIndex, 0); $(.forcetabindexnegative1).attr(tabIndex, -1); var summerimages $(.summernote img); summerimages.each(function(){ if ( $(this).css(float) left ) { $(this).css(padding-right,40px); } else if ( $(this).css(float) right ){ $(this).css(padding-left,40px); } //show image after size has been adjusted $(this).css(opacity,1); }); close_accessibility_menu() //prevent desktop accessibility widget from being selectable if on mobile if ( width 768 ){ //prevent selection on non-client portal pages if ( $(.clientportal).length 0 ){ $(.accessibility_button).attr(tabindex,-1); } } else { $(.accessibility_button).attr(tabindex,0); } }; $(document).ready( setwaveheight() ); // runs function on completion of resize $.windowResize(setwaveheight); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc typetext/javascript> $(document).ready(function(){ //if were on a short page, we need to increase the margin of mainbox so that footer is at the bottom of the page //get position bottom of footer relative to viewport var topoffooter $(.footerbg).offset().top; var heightoffooter $(.footerbg).outerHeight(); var bottomoffooter topoffooter + heightoffooter //get bottom of viewport const intViewportHeight Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0) //if position of footer is botom of viewport, figure out the difference and then add this as margin to mainbox if ( bottomoffooter intViewportHeight ) { //calculate required margin var reqmargin intViewportHeight - bottomoffooter; //get mainboxs current margin var currmargin parseInt($(.mainbox).css(margin-bottom)); //calculate new required margin var newmargin currmargin + reqmargin; //set new required margin $(.mainbox).css(margin-bottom, newmargin+px); setTimeout(function() { //show footer $(.footerbg).removeClass(hidefooter); },100); } }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(document).ready(function(){ // using jQuery function getCookie(name) { var cookieValue null; if (document.cookie && document.cookie ! ) { var cookies document.cookie.split(;); for (var i 0; i cookies.length; i++) { var cookie jQuery.trim(cookiesi); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) (name + )) { cookieValue decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } var csrftoken getCookie(csrftoken); function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ beforeSend: function(xhr, settings) { if (!csrfSafeMethod(settings.type) && !this.crossDomain) { xhr.setRequestHeader(X-CSRFToken, csrftoken); } } }); }) /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(window).on(load, function() { jQuery(document).ready(function() { setTimeout(function() { $(.svgcover).css(transform, translateX(100%)).css(-webkit-transform, translateX(100%)).css(-ms-transform, translateX(100%)); },250); }); }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(document).ready(function(){ //add spinner to go live now button when clicked $(.golivenow .btn).on(click, function(){ if ( !$(this).hasClass(lockoutclaimwebsitebutton) ){ //only change visual status if its not locked out $(this).addClass(button-clicked); $(this).find(span).addClass(icon-clicked); $(this).parent().addClass(enabledgolive); } }); }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> //for accessibility. Trigger click on pushing Enter button $(document).ready(function() { $(document).on(keydown, .triggerclickonenter, function(event) { if (event.key Enter) { event.preventDefault(); // Stop default action event.stopPropagation(); //prevents click of child from triggering click of parent. required for extra services on order form. $(this).click(); // Trigger click event } }); }); //add spinner to Book Now or Request Quote button when clicked $(.buttontospin a).on(click, function(){ var width $(this).outerWidth(false); $(this).css(width,width+px); $(this).addClass(orderbuttonclicked); $(this).addClass(dontselect); }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> $(document).ready(function(){ // force reload of page when user clicks back. This will reset buttons that have been locked out on click window.addEventListener( pageshow, function ( event ) { var historyTraversal event.persisted || ( typeof window.performance ! undefined && window.performance.navigation.type 2 ); if ( historyTraversal ) { // Handle page restore. window.location.reload(); } }); }); //add spinner when claim website button is clicked $(document).ready(function(){ $(#claimwebsite).click(function(){ if ( $(this).hasClass(removelocvariables) && !$(this).hasClass(lockoutclaimwebsitebutton) ){ //means we have to dump session variables before we redirect to url var data { } $.ajax({ type: POST, url: /remove_location_variables/, data: data, // this passes data context into view success: function(data) { //get url that we need to send them to var nextpagelink $(#claimwebsite).attr(nextpagelink); //send them to url window.location.replace(nextpagelink); }, //end of success error: function(response, error) { } //end of error }) //end of ajx } }); }); $(document).ready(function(){ // check_webp_feature: // feature can be one of lossy, lossless, alpha or animation. // callback(feature, isSupported) will be passed back the detection result (in an asynchronous way!) function check_webp_feature(feature, callback) { var kTestImages { lossy: UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA, lossless: UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA, alpha: UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA, animation: UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA }; var img new Image(); img.onload function () { var result (img.width > 0) && (img.height > 0); callback(feature, result); }; img.onerror function () { callback(feature, false); }; img.src data:image/webp;base64, + kTestImagesfeature; } check_webp_feature(lossy, function (feature, isSupported) { loadlazyimages(isSupported); }); function loadlazyimages(isSupported){ if ( isSupported true ) { //lazy load background images $(.hiddenbackground).each(function() { if ( !$(this).hasClass(loadbgimagewithajax) ){ var next_gen_image $(this).attr(nextgen_lazystyle); //check to see if a webp image is available if (typeof next_gen_image ! undefined && next_gen_image ! false) { //means webp image is available var mystyle $(this).attr(nextgen_lazystyle); } else { //webp image is not available, so use standard image var mystyle $(this).attr(lazystyle); } //apply style to div $(this).attr(style, mystyle); //remove lazystyle as attr is no longer needed $(this).removeAttr(lazystyle); //show div $(this).removeClass(hiddenbackground); } }); } else { //webp isnt supported //lazy load background images $(.hiddenbackground).each(function() { if ( !$(this).hasClass(loadbgimagewithajax) ){ //get regular image var mystyle $(this).attr(lazystyle); //apply style to div $(this).attr(style, mystyle); //remove lazystyle as attr is no longer needed $(this).removeAttr(lazystyle); //show div $(this).removeClass(hiddenbackground); } }); } } function populate_service_areas_for_prospect(){ //this should be below set site approval if ( $(.homepagemaindiv).length && $(.serviceareamap.loadbgimagewithajax).length ){ //only run this on homepage and for prospects //set timeout so that this will always successfully run after page load setTimeout(function() { //if div is in place, set session variable on back end if ( $(.surveyprospectbox).length ){ var box $(.surveyprospectbox); var ref box.attr(ref); var subdomain box.attr(subdomain); } else { var ref ; var subdomain ; } var data { ref: ref, subdomain: subdomain, csrfmiddlewaretoken: JGnSllQUywqAYuNCyYwAP5zHZ8OsqIA1NCfFujpbZnfXmV7WgaOtSaJL5w9OGvT4, } $.ajax({ type: POST, url: /get_communities/, data: data, // this passes data context into view success: function(data) { var communities data.communities; //check to see if there are any communities if ( communities.length > 0 ){ var content ; //load communities into div if there are any for ( var i 0, l communities.length; i l; i++ ) { var city communitiesi; content content + div classcityitem>i aria-hiddentrue classfa-solid fa-location-dot compaccentcolor>/i> + city + /div>; } //post cities to page $(.citylist).append(content); if ( communities.length > 3 ){ $(.citylist).removeClass(justifycenter); } //load bg check_webp_feature(lossy, function (feature, isSupported) { loadlazyimages(isSupported); }); //unhide div $(.serviceareamap.loadbgimagewithajax).removeClass(loadbgimagewithajax); } }, //end of success error: function(response, error) { } //end of error }) //end of ajax },100); } } //end of populate_service_areas_for_prospect() function set_site_approval(){ var box $(.surveyprospectbox); var ref box.attr(ref); var subdomain box.attr(subdomain); var data { ref: ref, subdomain: subdomain, csrfmiddlewaretoken: JGnSllQUywqAYuNCyYwAP5zHZ8OsqIA1NCfFujpbZnfXmV7WgaOtSaJL5w9OGvT4, } $.ajax({ type: POST, url: /set_site_approval/, data: data, // this passes data context into view success: function(data) { //show panel within information on go live button if ( data.approval_set_for_first_time true ){ setTimeout(function() { $(.goliveinfocontainer).show(); setTimeout(function() { //update index on the button $(.golivenow).addClass(golivenowmessage); //show background and message $(.goliveinfocontainer).css(opacity, 1); //get top position of shade var topValue $(.goliveinfocontainer).css(top); //push shade down for effect if (topValue -20px) { $(.goliveinfocontainer).css(top, 0); } else { $(.goliveinfocontainer).css(bottom, 0); } },50); },3000); } else { //unlock buttons as user has already set approval $(.lockbuttonsonload).removeClass(lockbuttonsonload); } }, //end of success error: function(response, error) { } //end of error }) //end of ajax } function partner_set_site_approval(){ var box $(.surveyprospectbox); var ref box.attr(ref); var subdomain box.attr(subdomain); if ( $(#submittedbusname).length ){ var busname $(#submittedbusname).val(); } else { var busname ; } var data { ref: ref, subdomain: subdomain, busname: busname, csrfmiddlewaretoken: JGnSllQUywqAYuNCyYwAP5zHZ8OsqIA1NCfFujpbZnfXmV7WgaOtSaJL5w9OGvT4, } $.ajax({ type: POST, url: /set_site_approval/, data: data, // this passes data context into view success: function(data) { //get new subdomain var redirect_address data.new_subdomain_address; //if new address has been set if ( redirect_address ! ){ //append new_address to body so that we can pick it up $(body).attr(redirect_address, redirect_address) //lock out publish button as clicking it on it would have them attempting to access a url (oldsubdomain.website.com) that no longer exists $(#claimwebsite).addClass(lockoutclaimwebsitebutton); } //unlock all buttons now that approval is set and session variable is set $(.lockbuttonsonload).removeClass(lockbuttonsonload); //hide message2 $(.goliveinfocontainer .message2).addClass(hidemessage2); setTimeout(function() { $(.goliveinfocontainer .message2).hide(); setTimeout(function() { $(.goliveinfocontainer .message1).show(); setTimeout(function() { $(.goliveinfocontainer .message1).addClass(showmessage1); if ( $(#submittedbusname).length ){ //if user was presented with the option of updating business name //get business name submitted var busname $(#submittedbusname).val(); //update business name on page as required if ( busname ! && busname ! null ){ //Update business names on page $(.companynamecolor).html(busname) $(.textlogo).html(busname) $(.prospectmapbusname).html(busname); } } //show contact info $(.setupbypartner).removeClass(setupbypartner); },100); },300); },300); }, //end of success error: function(response, error) { } //end of error }) //end of ajax } //on click of the locked out button, shake the Ok lets see the site button $(document).on(click, .lockoutclaimwebsitebutton, function () { var shakes 5; var distance 4; var duration 55; // adjust for speed, this is for each individual shake for(var i 0; i shakes; i++) { $(#closegolivebuttoninfo).animate({ top: ((i % 2 0 ? distance : distance * -1)) }, duration); } // reset margin to original position $(#closegolivebuttoninfo).animate({ top: 0 }, duration); }); //set up scroll up arrow $(window).scroll(function() { var scrollpos $(this).scrollTop(); var width window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; if ( width 768 && scrollpos > 500 ){ $(.upnav).show(); setTimeout(function() { $(.upnav).addClass(displaybutton); $(.upnav).attr(tabIndex,0); },10); } else if ( scrollpos 300) { $(.upnav).removeClass(displaybutton); $(.upnav).attr(tabIndex,-1); setTimeout(function() { $(.upnav).hide(); },300); } if ( scrollpos > 500 ){ //load service area for prospect if ( $(.loadbgimagewithajax).length && $(.loadfired).length 0 ){ $(.loadbgimagewithajax).addClass(loadfired); //prevenets populate_service_areas_for_prospect from running more than once populate_service_areas_for_prospect() } } }); //scroll to top of page on click $(.upnav).click(function(){ $(html, body).animate({ scrollTop: 0 }, slow); return false; }) }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> // lazysrc.js inline for speed $(document).ready(function() { // check_webp_feature: // feature can be one of lossy, lossless, alpha or animation. // callback(feature, isSupported) will be passed back the detection result (in an asynchronous way!) function check_webp_feature(feature, callback) { var kTestImages { lossy: UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA, lossless: UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA, alpha: UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA, animation: UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA }; var img new Image(); img.onload function () { var result (img.width > 0) && (img.height > 0); callback(feature, result); }; img.onerror function () { callback(feature, false); }; img.src data:image/webp;base64, + kTestImagesfeature; } check_webp_feature(lossy, function (feature, isSupported) { //If webp is not supported if ( isSupported false ) { //load images. there will be multiple of these lazy_load_webp_images($(imglazysrc), false); } else { //load images. there will be multiple of these lazy_load_webp_images($(imglazysrc), true); } }); function lazy_load_webp_images(images, webp_supported){ images.each(function(){ if ( webp_supported false ){ //webp isnt supported //get img url associated with jpg or png for the image var src_attr $(this).attr(lazysrc); } else { // means webp is supported var attr $(this).attr(nextgen_lazysrc); if (typeof attr ! undefined && attr ! false) { //if the div has the attribute nextgen_lazysrc //get url associated with the next gen image var src_attr $(this).attr(nextgen_lazysrc); //if for whatever reason, the source is blank, pull the source for jpg or png if ( src_attr || src_attr null ){ var src_attr $(this).attr(lazysrc); } } else { //get img url associated with jpg or png for the image as no webp image is available var src_attr $(this).attr(lazysrc); } } //assign url to src attribute $(this).attr(src, src_attr); //dump lazysrc attr $(this).removeAttr(lazysrc); //dump nextgen_lazysrc attr $(this).removeAttr(nextgen_lazysrc); //remove this class (will be on summernote images) $(this).removeClass(lazyloadedsummernoteimage); }); } }); /script> !--Start of Tawk.to Script--> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc typetext/javascript> $(document).ready(function(){ var Tawk_APITawk_API||{}, Tawk_LoadStartnew Date(); (function(){ var s1document.createElement(script),s0document.getElementsByTagName(script)0; s1.asynctrue; s1.srchttps://embed.tawk.to/65e020a58d261e1b5f66cdb2/default; s1.charsetUTF-8; s1.setAttribute(crossorigin,*); s0.parentNode.insertBefore(s1,s0); })(); }); /script> !--End of Tawk.to Script--> !-- External JS should go at the very end --> link hrefhttps://fonts.googleapis.com/css?familyRoboto:400,500,600,700,800&displayswap relstylesheet> link hrefhttps://fonts.googleapis.com/css2?familyMontserrat:wght@400;500;600;700;800&displayswap relstylesheet> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc typetext/javascript> //load play button after font awesome has loaded - prevents pop in $(document).ready(function(){ $(.golivenow .btn span i).css(opacity,1); //Attach a focus event listener to all elements // $(*).focus(function() { // // Get the type (tagName) of the current element // var elementType this.tagName.toLowerCase(); // Convert to lowercase for consistency // // Get the id of the current element // var id $(this).attr(id); // // Get the class of the current element // var classes $(this).attr(class); // var href $(this).attr(href); // // Print the element type, id, and class to the console // console.log(Focused Element -> Type:, elementType, | ID:, id ? id : No ID, | Classes:, classes ? classes : No Classes, href ? href : No hrefs); // var parentElement this.parent; // // Get the id of the current element // var id $(this).parent().attr(id); // // Get the class of the current element // var classes $(this).parent().attr(class); // // Print the element type, id, and class to the console // console.log(Parent of Focused Element -> Type:, elementType, | ID:, id ? id : No ID, | Classes:, classes ? classes : No Classes); // }); //this function sets the original aria-describedby id back to the form control. original-aria-describedby will be information that explains how to populate the field rather than a link to an error message function set_aria_described_to_original_value(formfield){ //if this has original-aria-described-by, set it back to aria-describedby on the form input (i.e. this) if ( formfield.attr(original-aria-describedby) ) { var original_described_by_id formfield.attr(original-aria-describedby) //remove original-aria-describedby formfield.removeAttr(original-aria-describedby); //set original as aria-describedby formfield.attr(aria-describedby, original_described_by_id); //else just remove the aria-describedby attribute on this as there is no longer an error that were showing } else if ( formfield.attr(aria-describedby) ! undefined ){ if (formfield.attr(aria-describedby).includes(error_message)) { formfield.removeAttr(aria-describedby); } } } function remove_error(this_input){ //remove error. Well evaluate situations where the input or select is nested by one or two divs this_input.prev(.errorlist).not(.staticerrorelement).remove(); this_input.parent().prev(.errorlist).not(.staticerrorelement).remove(); this_input.parent().parent().prev(.errorlist).not(.staticerrorelement).remove(); //hide errors that shouldnt be removed from the dom this_input.prev(.errorlist.staticerrorelement).removeClass(showerror); this_input.parent().prev(.errorlist.staticerrorelement).removeClass(showerror); this_input.parent().parent().prev(.errorlist.staticerrorelement).removeClass(showerror); //remove error at top that references correct the errors below if no errorlist elements exist (i.e. field specific errors) // an element with error will exists when we pass this error from the backend view if ($(.error:contains(the errors)).length > 0) { //if there are no field level errors if ( $(.errorlist).length 0 ){ //remove error if it doesnt contain class staticerrorelement $(.error).not(.staticerrorelement).remove(); //for payment request } else if ( $(.staticerrorelement:visible).length 1 ){ //remove showerror class so that we hide error shown at top $(.staticerrorelement:visible).removeClass(showerror); } } else { //get errors that dont have class staticerrorelement, which are elements that we dont ever want to delete as these containers may be reused var errorlist $(.errorlist).not(.staticerrorelement); //if there is only one error remaining and no element with error exists if ( errorlist.length 1 && $(.error).length 0 ) { //if that one error contains the substring the errors, which is indicative of this being the error at the top of the page if ( errorlist.find(li).text().toLowerCase().includes(the errors) ){ //remove the error errorlist.remove() } } } } //remove error on selection of a valid value or set error if value selcted from dropdown is the default $(selectaria-requiredtrue).change(function() { if (!$(this).val() || $(this).val() Select Date ) { // Check if the input/select is empty or if date time picker has select date as value $(this).addClass(requiredinputmissing); // Add error class if empty //mark as invalid $(this).attr(aria-invalid,true); } else { // Remove error class if not empty $(this).removeClass(requiredinputmissing); //remove invalid tag $(this).removeAttr(aria-invalid); remove_error($(this)) set_aria_described_to_original_value($(this)); } }); //mark required inputs as red if user moves off of them and add aria-invalid as required $(inputaria-requiredtrue, selectaria-requiredtrue, textareaaria-requiredtrue).blur(function() { var last_element $(this); setTimeout(function() { // Get the currently focused element var focusedElement $(document.activeElement); // If the focused element is not a link, then flag item. This will prevent inputs from being marked red as user clicks a link to navigate away from the page if (!focusedElement.is(a)) { if (last_element.is(:checkbox)) { // Handle checkbox specific logic if (!last_element.prop(checked)) { last_element.addClass(requiredinputmissing); // Add class if unchecked //mark as invalid last_element.attr(aria-invalid,true); } else { last_element.removeClass(requiredinputmissing); // Remove class if checked //remove invalid tag last_element.removeAttr(aria-invalid); set_aria_described_to_original_value(last_element); } } else if ( last_element.attr(id) ! id_frequency) { //we dont want to automatically flag Frequeny drop down on booking form when we move away from it as this will happen automtically when a date is selected, which results in us focusing on Frequency and then, milliseconds later, we jump to Select Time if (!last_element.val() || last_element.val() Select Date ) { // Check if the input/select is empty or if date time picker has select date as value last_element.addClass(requiredinputmissing); // Add error class if empty //mark as invalid last_element.attr(aria-invalid,true); } else { last_element.removeClass(requiredinputmissing); // Remove error class if not empty //remove invalid tag last_element.removeAttr(aria-invalid); set_aria_described_to_original_value(last_element); } } } },50); }); //remove aria-invalid from inputs and selects if they are populated $(input, select, textarea).blur(function() { if ($(this).is(:checkbox)) { // Handle checkbox specific logic if ($(this).prop(checked)) { //remove invalid tag $(this).removeAttr(aria-invalid); set_aria_described_to_original_value($(this)); } } else { if (!$(this).val() || $(this).val() Select Date ) { // Check if the input/select is empty or if date time picker has select date as value //pass } else { //remove invalid tag $(this).removeAttr(aria-invalid); remove_error($(this)) set_aria_described_to_original_value($(this)); } } }); //remove error class when user focuses on an element $(input, select, textarea).focus(function() { $(this).removeClass(requiredinputmissing); }); }); /script> !-- Global Site Tag (gtag.js) - Google Analytics --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc async srchttps://www.googletagmanager.com/gtag/js?idG-5ZFS6N7E06>/script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-5ZFS6N7E06); /script> !-- list all form field errors --> div classformfielderrors >/div> !-- for each form field error, well attach aria-invalid and set a red box --> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc typetext/javascript> function match_errors_to_form_controls(){ // Select the div and get its class attribute var classes $(.formfielderrors).attr(class); // Split the class string into individual classes var classList classes.split(/\s+/); // Check if the classList contains password2 if (classList.includes(password2)) { // Append password1 to the classList classList.push(password1); } // Iterate over each class $.each(classList, function(index, className) { // Skip the generic formfielderrors class or any other unwanted class if (className ! formfielderrors) { // Construct the new ID by prepending id_ to the className var newId id_ + className; // tag element as invalid $(# + newId).addClass(requiredinputmissing); $(# + newId).attr(aria-invalid, true); var error_found false; //assign an id to the error and then attach aria-described by to field if ( $(# + newId).prev(.errorlist).find(li).length ){ //attach id to error $(# + newId).prev(.errorlist).find(li).attr(id, newId + _error_message); var error_message $(# + newId).prev(.errorlist).find(li); var error_found true; } else if ( $(# + newId).parent().prev(.errorlist).find(li).length ) { //attach id to error $(# + newId).parent().prev(.errorlist).find(li).attr(id, newId + _error_message); var error_message $(# + newId).parent().prev(.errorlist).find(li); var error_found true; } else if ( $(# + newId).parent().parent().prev(.errorlist).find(li).length ) { //attach id to error $(# + newId).parent().parent().prev(.errorlist).find(li).attr(id, newId + _error_message); var error_message $(# + newId).parent().parent().prev(.errorlist).find(li); var error_found true; } //if error is found, we need to retain the original aria-describedby and set the aria-describedby to the id on the error message if ( error_found true ) { //if $(# + newId) doesnt have attr original-aria-describedby if (!$(# + newId).attr(original-aria-describedby)) { //if $(# + newId) has attr aria-describedby if ($(# + newId).attr(aria-describedby)) { //assign attr aria-describedby to attr original-aria-describedby. original-aria-describedby will be information that explains how to populate the field rather than a link to an error message. $(# + newId).attr(original-aria-describedby, $(# + newId).attr(aria-describedby)); } } //set aria-describedby to newId + _error_message $(# + newId).attr(aria-describedby, newId + _error_message); } } }); } $(document).ready(function() { //run on load match_errors_to_form_controls() }); /script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc srchttps://s3beanzoid.s3.us-east-2.amazonaws.com/static/js/accessibility.js?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signature00715358fb490d63e6b09d059abdd61907649859c03c61679c443bac4c74f07e defer>/script> script nonce9LSfyOGije8ZlXLiIQWsD6Zq4cc srchttps://s3beanzoid.s3.us-east-2.amazonaws.com/static/js/statecountry.js?X-Amz-AlgorithmAWS4-HMAC-SHA256&X-Amz-CredentialAKIAQVNWS6JIMGPCLWTV%2F20240912%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date20240912T190912Z&X-Amz-Expires3600&X-Amz-SignedHeadershost&X-Amz-Signaturee2dccb67e740db525ca4aef928daf620206197cf91bacc6f563360f39965c6e5 defer>/script> /body>/html>
Subdomains
Date
Domain
IP
webmail.guildcleaners.com
2024-09-12
3.21.198.119
www.guildcleaners.com
2024-09-12
3.21.198.119
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]