(() => { const { document } = window; const { entries, fromEntries } = Object; const { now, UTC: utc } = Date; const seqn = (...xs) => xs.reduce((a, x) => (typeof x === 'function' ? x() : x), undefined); const first = ([v] = []) => v; const last = (ar = []) => ar[ar.length - 1]; // https://stackoverflow.com/a/2117523 const genId = () => ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace( /[018]/ug, c => ( c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4 ).toString(16) ); // verify phid cookie const { phid = genId(), phct = 0 } = fromEntries( document.cookie.split(';') .map(thing => thing.split('=')) .map(([k, ...v]) => [ decodeURIComponent(k.trim()), decodeURIComponent(v.join('=')) ]) ); const ct = seqn((n = Number(phct) + 1) => n > 99999 ? 0 : n); const expires = new Date(now() + utc(1971)).toGMTString(); entries({ phid, phct: ct }).forEach( ([k, v]) => (document.cookie = `${k}=${v}; Path=/; expires=${expires}; Secure; SameSite=Lax`) ); const send = (srv = 'pageload', t = undefined, d = undefined) => document.createElement('img') .setAttribute( 'src', `https://searchlight.partners/photon/service/${srv}?${entries({ i: phid, c: phct, l: encodeURIComponent(document.location.href), r: encodeURIComponent(document.referrer), t, d }).filter(([, v]) => v).map(([k, v]) => `${k}=${v}`).join('&')}` ); // pageload send(); // events const listen = (type, f, prn = document.body, ...sls) => seqn( ( nls = sls.map(sl => prn.querySelectorAll(sl)) ) => ( nls.some(nl => nl.length) && ( nls.forEach(nl => nl.forEach(n => n.addEventListener(type, f))) || true ) ) ); const inpLsr = type => ({ target: { value } = {} } = {}) => send( 'event', `${type}-input-change`, value ); const btnLsr = type => ({ currentTarget: { id, className = '' } = {} } = {}) => send( 'event', `${type}-button-click`, id || first(className.split(' ')) ); // dom event listening const defLsn = (type, f, ...sls) => ({ type, f, sls }); const defChlLsn = (type, f, psl, ...sls) => ({ type, f, psl, sls, cmbSls: sls.map(sl => `${psl} ${sl}`) }); const listeners = [ defLsn( 'click', ({ currentTarget: { href } = {} } = {}) => send('event', 'click-to-call', href), 'a[href^="tel"]' ) ]; const childListeners = [ defChlLsn('change', inpLsr('form'), 'form', 'input:not([type=password])', 'textarea', 'select'), defChlLsn('click', btnLsr('form'), 'form', 'button', 'input[type=submit]') ]; const lastSwap = []; const connectDomListeners = () => seqn( listeners.map(({ type, f, sls }) => listen(type, f, undefined, ...sls)), childListeners.map(({ type, f, cmbSls }) => listen(type, f, undefined, ...cmbSls)), new MutationObserver( mutationsList => mutationsList.forEach( ({ addedNodes }) => addedNodes.forEach( an => an.closest && an.querySelectorAll && seqn( listeners.map(({ type, f, sls }) => listen(type, f, an, ...sls)), childListeners.map( ({ type, f, psl, sls, cmbSls }) => ( psl && an.closest(psl) ? listen(type, f, an, ...sls) : listen(type, f, an, ...cmbSls) ) ) ) ) ) ).observe(document.body, { childList: true, subtree: true }), new MutationObserver( mutationsList => mutationsList.forEach( ({ oldValue, target: { href } }) => /^tel:/u.test(href) && seqn( (t = now(), d = href.replace(/[^0-9]/gu, '').replace(/^1/u, '')) => ( !lastSwap.length || last(lastSwap) !== d || t - first(lastSwap) > 1000 ) && (lastSwap.splice(0, 2, t, d), send('event', 'swap', `${oldValue}/${href}`)) ) ) ).observe( document.body, { subtree: true, attributes: true, attributeFilter: ['href'], attributeOldValue: true } ) ); if (document.readyState === 'loading') { window.addEventListener('DOMContentLoaded', connectDomListeners); } else { connectDomListeners(); } const replace = (s, t, r = '') => typeof s === 'string' ? s.replace(new RegExp(t, 'gu'), r) : ''; // podium window.PodiumEventsCallback = (name, { session_id }) => send( 'event', `podium-${replace(name, ' ', '-').toLowerCase()}`, session_id ); // schedule engine window.addEventListener( 'message', ({ data: { type, messageType, eventName }, origin }) => ( origin.includes('scheduleengine') && (type === 'se-event' || messageType) ? send( 'event', type === 'se-event' ? 'schedule-engine-booking' : 'schedule-engine-chat', type === 'se-event' ? eventName : messageType ) : undefined ) ); })();

For Dallas homeowners, maintaining HVAC, plumbing, and electrical systems can be both costly and time-consuming. Neglecting regular upkeep often leads to higher energy bills, unexpected breakdowns, and expensive repairs. Astar’s Gold Star Membership is designed to address these challenges, offering comprehensive services that ensure your home systems operate at peak performance while saving you a minimum of $2,602 annually.
Your Gold Star Membership is transferable, whether you’re selling your current home or moving to a new one within our service area. This flexibility adds value to your property and ensures continued service without interruption.
By proactively maintaining your home’s systems through the Gold Star Membership, you can save as much as 30% annually on energy costs. Regular maintenance not only enhances system performance but also extends equipment longevity, leading to substantial long-term savings.
Invest in the health and efficiency of your home’s vital systems with Astar’s Gold Star Membership. Enjoy comprehensive maintenance services, exclusive member benefits, and significant annual savings. Contact us today to sign up and start reaping the rewards of a well-maintained home.