(function () {
try {
// AQ-r2 (2026-06-09): respect the explicit-denial sentinel
// written by cookie-consent-harden.js writeATR() on any
// marketing-axis denial (payload.marketing === false; cycle-3 F1).
// Without this gate, the next page navigation re-creates
// gmx_first_touch from the current URL+referrer+utm_*+click_ids,
// silently undoing the reject-all deletion (sweep finding #1).
// The sentinel is cleared the moment the visitor grants
// marketing in the banner (analytics-only grant does NOT
// clear), restoring the writer path on the very next
// page load. Page-cache-safe: the sentinel is a
// browser-resident cookie checked in the inline script, so
// varnish/breeze-served HTML still hits this gate.
if (/(?:^|;\s*)gmx_consent_denied=1(?:;|$)/.test(document.cookie || '')) return;
var CLICK_IDS = ['gclid','fbclid','msclkid','ttclid','wbraid','gbraid','li_fat_id'];
var qs = new URLSearchParams(window.location.search);
var urlClickIdKey = null;
for (var i = 0; i < CLICK_IDS.length; i++) {
if (qs.get(CLICK_IDS[i])) { urlClickIdKey = CLICK_IDS[i]; break; }
}// Parse existing cookie.
var existing = null;
var match = document.cookie.match(/(?:^|;\s*)gmx_first_touch=([^;]+)/);
if (match) {
try { existing = JSON.parse(decodeURIComponent(match[1])); } catch (e) { existing = null; }
}// GWP-273 — referrer-enrichment branch.
// Keep existing unless either (a) URL carries a new click id
// the stored payload lacks (paid click is a higher-value
// signal and upgrades direct/organic), OR (b) the stored
// payload has empty referrer AND the current document.referrer
// is non-empty + external (Safari/ITP/policy-quirk catch:
// first-hit may have missed the referrer; later same-session
// page-loads can recover it).
var existingHasRef = !!(existing && existing.referrer && existing.referrer !== '');
var docRef = document.referrer || '';
var refHost = '';
if (docRef) {
try {
refHost = new URL(docRef).hostname.replace(/^www\./, '').toLowerCase();
} catch (e) { refHost = ''; }
}
var ownHost = (location.host || '').replace(/^www\./, '').toLowerCase();
var currentExternalRef = !!(refHost && refHost !== ownHost);
var canEnrichRef = !!existing && !existingHasRef && currentExternalRef;if (existing) {
if (!urlClickIdKey && !canEnrichRef) return;
if (urlClickIdKey && existing[urlClickIdKey] && !canEnrichRef) return;
}var utm_keys = [
'utm_source','utm_medium','utm_campaign','utm_content','utm_term',
'utm_adgroup','utm_matchtype','utm_network','utm_device','utm_placement'
];
// GWP-273 — merge-preserving base. When enriching an existing
// payload, retain its landing_url + ts + prior click ids /
// utms; only overlay referrer (and any click id appended below
// via the forEach). Branches with/without urlClickIdKey were
// collapsed — both produced the identical Object.assign — the
// click id is added uniformly later.
//
// GWP-273 design choice: "latest external referrer wins" —
// accepted edge case where a user opens a new external tab
// post-empty-first-touch and returns; low-volume, simple, no
// sentinel flag needed.
var data;
if (existing && canEnrichRef) {
data = Object.assign({}, existing, { referrer: docRef });
} else {
data = { landing_url: window.location.href, referrer: docRef, ts: Date.now() };
}
utm_keys.concat(CLICK_IDS).forEach(function (k) {
var v = qs.get(k);
if (v) data[k] = v;
});
var encoded = encodeURIComponent(JSON.stringify(data));
if (encoded.length > 3800) return;
var expires = new Date(Date.now() + 90 * 864e5).toUTCString(); // GWP-143 C1: match Google Ads 90-day attribution window
var secure = window.location.protocol === 'https:' ? '; Secure' : '';
document.cookie = 'gmx_first_touch=' + encoded + '; Path=/; Expires=' + expires + '; SameSite=Lax' + secure;
} catch (e) {}
})();
var breeze_prefetch = {"local_url":"https://gomixapp.co.il","ignore_remote_prefetch":"1","ignore_list":["/cart/","/checkout/","/my-account/","/(.)/u05d4u05d8u05d5u05e4u05e1-u05e0u05e9u05dcu05d7-u05d1u05d4u05e6u05dcu05d7u05d4/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
מחפשים תבנית סיכום ביקור אחזקה לבניין? כאן תמצאו טופס מוכן לתיעוד כל ביקור של טכנאי או איש אחזקה — עבודות שבוצעו, ממצאים, המלצות וחתימות. מעתיקים בלחיצה, מדפיסים לשימוש בשטח, או מורידים כקובץ PDF או Word. מלאו את הפרטים בסוגריים המרובעים — ותיעוד מקצועי מוכן תוך דקות.
סיכום ביקור אחזקה — [כתובת הבניין]
פרטי הביקור:
– תאריך הביקור: [תאריך]
– שעות העבודה: מ-[שעת התחלה] עד [שעת סיום]
– שם הטכנאי / איש האחזקה: [שם הטכנאי]
– מטעם: [שם חברת הניהול / קבלן המשנה]
– סוג הביקור: [סוג הביקור]
עבודות שבוצעו בביקור:
– [עבודה 1]
– [עבודה 2]
– [עבודה 3]
ממצאים וליקויים שאותרו ולא טופלו בביקור זה:
– [ממצא 1]
– [ממצא 2]
המלצות להמשך טיפול:
– [המלצה 1]
– [המלצה 2]
חומרים וחלקים שנעשה בהם שימוש: [פירוט חומרים וחלקים]
נדרש ביקור המשך: [כן / לא] — מועד משוער: ____
חתימת הטכנאי: ____________ אישור נציג חברת הניהול: ____________
ההבדל בין חברת ניהול חובבנית למקצועית נמדד בנייר: חברה שמתעדת כל ביקור אחזקה באותו היום — מי הגיע, מה בוצע, מה נמצא ומה הומלץ — בונה לאורך זמן תיק בניין שמוכיח תחזוקה סדירה. התיק הזה שווה כסף אמיתי: הוא מבסס תביעות ביטוח בנזקי מים ואש, חוסך מחלוקות עם קבלני משנה על שעות וחומרים, ומאפשר לנציגות לראות בדיוק על מה משולמים דמי הניהול.
הכלל החשוב בתבנית הוא ההפרדה לשלושה סלים: מה בוצע בביקור, מה נמצא ולא טופל, ומה מומלץ להמשך. ערבוב ביניהם הוא הטעות הנפוצה — ליקוי שתועד כאילו טופל הוא פצצה מתקתקת משפטית. כל ממצא פתוח צריך לקבל רמת דחיפות ומועד ביקור המשך, וכל המלצה — הערכת עלות גסה, כדי שהנציגות תוכל לתעדף בתקציב.
סיכומי הביקור הם גם חומר הגלם של הדוח החודשי לדיירים: במקום לנסח מאפס, מרכזים את שורות "עבודות שבוצעו" ו"ליקויים בטיפול" מכל הסיכומים של החודש. כשהתיעוד נעשה בתבנית קבועה, אפשר גם לזהות דפוסים — משאבה שמקבלת טיפול שלישי באותו רבעון היא מועמדת להחלפה, לא לתיקון נוסף. זו בדיוק נקודת המעבר מתחזוקת שבר לתחזוקה מונעת.
שאלות נפוצות
למה חשוב לתעד כל ביקור אחזקה בבניין?
תיעוד שוטף הוא ההגנה הטובה ביותר של חברת הניהול ושל הדיירים: הוא מוכיח שהרכוש המשותף תוחזק כראוי מול חברת הביטוח, מבסס שקיפות בחיוב שעות וחומרים, ומונע ויכוחים מסוג "הטכנאי בכלל לא הגיע". בניין עם ארכיון סיכומים מסודר גם קל בהרבה להעברה בין חברות ניהול.
מה חייב להופיע בסיכום ביקור אחזקה?
שבעה רכיבים: פרטי הביקור (תאריך, שעות, שם הטכנאי ומטעם מי), סוג הביקור, העבודות שבוצעו בפועל, ממצאים שאותרו ולא טופלו, המלצות להמשך, חומרים וחלקים שנוצלו — וחתימות. ההפרדה בין "מה בוצע" ל"מה נמצא ולא טופל" היא הסעיף שהכי הרבה טפסים מפספסים.
מי צריך לקבל את סיכום הביקור?
המקור נשמר בתיק הבניין אצל חברת הניהול, והעתק עובר לנציגות הבית. את עיקרי הדברים — במיוחד ליקויים פתוחים והמלצות — כדאי לשקף לדיירים בדוח החודשי. כך הדיירים רואים בדיוק על מה הם משלמים דמי ניהול, והנציגות יכולה לעקוב אחרי טיפול בליקויים.
איך סיכומי ביקור עוזרים מול חברת הביטוח?
בתביעות נזקי מים, אש או חשמל, השאלה הראשונה של השמאי היא אם הליקוי היה ידוע ואם טופל. סיכום ביקור חתום שמראה בדיקות שוטפות וטיפול בממצאים מחזק מאוד את עמדת הבניין — ולהפך: ליקוי שתועד כ"ממצא" ולא טופל חודשים עלול לשמש נגדכם. לכן חשוב לסגור כל ממצא בביקור המשך מתועד.
האם חובה להחתים את הטכנאי על הסיכום?
חתימת הטכנאי מאשרת שהעבודות המפורטות אכן בוצעו, וחתימת נציג חברת הניהול מאשרת שהעבודה נבדקה והתקבלה. צמד החתימות סוגר את מעגל האחריות — חשוב במיוחד כשהעבודה מבוצעת על ידי קבלן משנה, וכשמדובר בטיפול בקריאת שירות של דייר שצריך לקבל אישור שהבעיה נפתרה.
נקודות מפתח
מתעדים כל ביקור אחזקה באותו היום — לא משחזרים בדיעבד
מפרידים בין עבודות שבוצעו, ממצאים שלא טופלו והמלצות להמשך
חתימת טכנאי + אישור נציג סוגרים את מעגל האחריות
ארכיון הסיכומים משמש לדוח החודשי, לתקציב ולתביעות ביטוח
התבנית כאן חינמית — העתקה, הדפסה או הורדה כ-PDF/Word
רוצים שהדיירים יראו בזמן אמת מה תוקן בבניין? בלוח מודעות דיגיטלי עדכון האחזקה עולה למסך בכניסה מיד אחרי הביקור — בלי להדפיס, בלי לתלות, ועם תיעוד מסודר לכל בניין שאתם מנהלים.
document.addEventListener('click', function(e) {
var el = e.target.closest('.gmx-lite-yt');
if (!el) return;
var vid = el.getAttribute('data-vid');
if (!vid) return;
var iframe = document.createElement('iframe');
iframe.src = 'https://www.youtube.com/embed/' + vid + '?autoplay=1';
iframe.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;border:0;';
iframe.allow = 'autoplay;encrypted-media';
iframe.allowFullscreen = true;
el.style.position = 'relative';
el.innerHTML = '';
el.appendChild(iframe);
});
(function () {
var c = document.body.className;
c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
document.body.className = c;
})();
var gmxCf7LegacyUxI18n = {"errName":"Please enter a full name","errPhone":"Please enter a valid phone number","errEmail":"Please enter a valid email address","errRequired":"Required field"};
//# sourceURL=gmx-cf7-legacy-ux-js-extra
(function(){
function cleanUrl(url) {
// Strip query params embedded mid-path: /ID?params/file -> /ID/file
return url.replace(/\?[^\/]+\//g, '/');
}
function addWebPFallback(pic) {
if (pic.getAttribute('data-webp-fb')) return;
pic.setAttribute('data-webp-fb', '1');
var img = pic.querySelector('img');
if (!img) return;
img.onerror = function() {
this.onerror = null;
this.src = cleanUrl(this.src).replace('vi_webp','vi').replace('.webp','.jpg');
var sources = this.parentElement.querySelectorAll('source');
for (var i = 0; i < sources.length; i++) {
sources[i].srcset = cleanUrl(sources[i].srcset).replace('vi_webp','vi').replace('.webp','.jpg');
}
};
}
var observer = new MutationObserver(function() {
var pics = document.querySelectorAll('.video-seo-youtube-picture');
for (var i = 0; i < pics.length; i++) addWebPFallback(pics[i]);
});
observer.observe(document.documentElement, { childList: true, subtree: true });
})();
(function(){
var siteKey = "6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
var action = "submit_lead_form";
var loaderUrl = "https:\/\/www.google.com\/recaptcha\/enterprise.js?render=6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
// GWP-506 (perf): the reCAPTCHA Enterprise runtime costs ~900ms of main-thread
// work (PSI contactus TBT 660ms, perf 69). It was loaded eagerly on every page
// carrying a CF7 form. It now loads on the FIRST real page interaction
// (scroll/pointer/key/touch) — warming the runtime well before the user can
// reach submit — and never loads on a no-interaction (lab) page view, so the
// perf win holds. The token is still stamped on form focusin and refreshed at
// submit. IMPORTANT: the server gate is fail-CLOSED by default (GWP-412
// require_token) — a missing token at submit is treated as spam — so the
// runtime MUST be warm before submit; that is exactly why the warm trigger is
// first-page-interaction, NOT focusin-only (focusin-only left a race where a
// fast focus→submit could POST before the ~900ms download finished and drop a
// legit lead). The eager <script src> is gone.
var greReady = false, greWaiters = [], greLoadStarted = false;
function pollGre(attempts) {
if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise) {
greReady = true;
var queued = greWaiters;
greWaiters = [];
queued.forEach(function (fn) { try { fn(); } catch (e) {} });
return;
}
if (attempts > 200) {
// no-silent-failures: enterprise.js never became ready (network-blocked,
// consent/privacy blocker, or a Google outage). Surface it — a missing
// token fails CLOSED server-side (GWP-412) and drops the lead.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] enterprise.js not ready after ~10s; token will be missing (submit fails closed).');
}
return; // give up after ~10s (200 * 50ms)
}
setTimeout(function () { pollGre(attempts + 1); }, 50);
}
function loadGre() {
if (greLoadStarted) return;
greLoadStarted = true;
var s = document.createElement('script');
s.src = loaderUrl;
s.async = true;
document.head.appendChild(s);
pollGre(0); // begin polling only once the runtime is actually loading
}
function whenGreReady(cb) {
if (greReady) return cb();
greWaiters.push(cb);
}
function stampToken(form) {
if (!form.querySelector('.wpcf7-form-control-wrap input[type="submit"], .wpcf7-submit')) return;
loadGre(); // lazy: kick off enterprise.js on demand (idempotent)
whenGreReady(function () {
grecaptcha.enterprise.ready(function () {
grecaptcha.enterprise.execute(siteKey, { action: action }).then(function (token) {
var hidden = form.querySelector('input[name="gmx_recaptcha_token"]');
if (!hidden) {
hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = 'gmx_recaptcha_token';
form.appendChild(hidden);
}
hidden.value = token;
}).catch(function () {
// no-silent-failures: token generation failed; the server gate is
// fail-CLOSED (GWP-412), so this submit will be rejected as spam.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] token execute failed; submit will fail closed.');
}
});
});
});
}
document.addEventListener('wpcf7submit', function (e) { stampToken(e.target); });
// Also stamp on first focus into any CF7 form (so token ready before submit).
// `whenGreReady()` queues the stamp until grecaptcha loads, so the once-
// listener stays safe even if grecaptcha isn't ready at focus-in time.
document.querySelectorAll('form.wpcf7-form').forEach(function (form) {
form.addEventListener('focusin', function once() {
form.removeEventListener('focusin', once);
stampToken(form);
});
});
// GWP-506: warm enterprise.js on the FIRST real page interaction so the ~900ms
// runtime is ready before the user reaches submit (closes the focusin-only race
// against the fail-CLOSED server gate, and covers AJAX/popup-injected forms that
// missed the focusin binding above). Never fires on a no-interaction (lab) view,
// so the perf win holds. Idempotent via loadGre()'s greLoadStarted guard.
var warmOpts = { passive: true, capture: true };
var warmEvents = ['pointerdown', 'keydown', 'touchstart', 'scroll'];
function warmGre() {
loadGre();
warmEvents.forEach(function (e) { window.removeEventListener(e, warmGre, warmOpts); });
}
warmEvents.forEach(function (e) { window.addEventListener(e, warmGre, warmOpts); });
})();
(function(){
var loaded = false;
function loadUserWay() {
if (loaded) return;
loaded = true;
var el = document.createElement('script');
el.setAttribute('data-account', "UX40fo0Ctw");
el.setAttribute('data-language', "he");
el.setAttribute('src', 'https://cdn.userway.org/widget.js');
document.body.appendChild(el);
events.forEach(function(e){ window.removeEventListener(e, loadUserWay, {passive: true}); });
}
var events = ['scroll', 'mousemove', 'touchstart', 'click', 'keydown'];
events.forEach(function(e){ window.addEventListener(e, loadUserWay, {passive: true}); });
})();