PageSourceSearch

https://couponai.co.il/contact

html couponai.co.il collected 2026-10-02 01:55:02 UTC 11,418 bytes, 229 lines download raw bytes

1<!DOCTYPE html>
2<html lang="he" dir="rtl">
3<head>
4  <meta charset="UTF-8"/>
5  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6  <title>צור קשר — קופוןAI</title>
7  <meta name="description" content="פנו אלינו עם שאלות, הצעות או דיווח על קופון שאינו תקף."/>
8  <link rel="preconnect" href="https://fonts.googleapis.com"/>
9  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Syne:wght@700;800&display=swap" rel="stylesheet"/>
10  <style>
11    :root{--bg:#0a0a0a;--gray1:#111;--gray2:#1a1a1a;--gray3:#2a2a2a;--gray4:#3a3a3a;--gray5:#888;--gray6:#ccc;--white:#fff;--accent:#00e87a;--radius:14px;--nav-bg:rgba(17,17,17,0.92)}
12    *{box-sizing:border-box;margin:0;padding:0}
13    body{background:var(--bg);color:var(--white);font-family:'DM Sans',sans-serif;min-height:100vh;direction:rtl}
14    a{color:var(--accent);text-decoration:none}
15    .container{max-width:640px;margin:60px auto;padding:0 24px}
16    h1{font-family:'Syne',sans-serif;font-size:32px;font-weight:800;margin-bottom:8px}
17    .subtitle{color:var(--gray5);font-size:15px;margin-bottom:40px;line-height:1.6}
18    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
19    .form-group{margin-bottom:20px}
20    .form-group.no-mb{margin-bottom:0}
21    label{display:block;font-size:13px;color:var(--gray5);margin-bottom:8px;font-weight:500}
22    label .req{color:var(--accent);margin-right:2px}
23    input,textarea,select{width:100%;padding:14px 16px;background:var(--gray2);border:1px solid var(--gray3);border-radius:var(--radius);color:var(--white);font-size:14px;font-family:'DM Sans',sans-serif;outline:none;transition:border-color 0.2s;direction:rtl}
24    input:focus,textarea:focus,select:focus{border-color:var(--accent)}
25    input.invalid{border-color:#fc8181}
26    textarea{resize:vertical;min-height:140px}
27    .phone-row{display:flex;gap:10px}
28    .phone-prefix{width:110px;flex-shrink:0}
29    .phone-number{flex:1}
30    .btn{background:var(--accent);color:#000;border:none;border-radius:var(--radius);padding:14px 32px;font-size:15px;font-weight:600;cursor:pointer;width:100%;font-family:'DM Sans',sans-serif;transition:opacity 0.2s;margin-top:4px}
31    .btn:hover{opacity:0.85}
32    .btn:disabled{opacity:0.5;cursor:not-allowed}
33    .success{background:rgba(0,232,122,0.1);border:1px solid rgba(0,232,122,0.3);border-radius:var(--radius);padding:24px;text-align:center;color:var(--accent);display:none;font-size:15px;line-height:1.7}
34    .field-error{color:#fc8181;font-size:12px;margin-top:5px;display:none}
35    .form-error{color:#fc8181;font-size:13px;margin-bottom:12px;display:none;background:rgba(252,129,129,0.08);border:1px solid rgba(252,129,129,0.2);border-radius:10px;padding:12px 16px}
36    footer{background:var(--gray1);border-top:1px solid var(--gray3);padding:32px;text-align:center;font-size:12px;color:var(--gray5);margin-top:80px}
37    footer a{color:var(--gray5)}footer a:hover{color:var(--accent)}
38    .footer-links{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:12px}
39    @media(max-width:520px){.form-row{grid-template-columns:1fr}}
40
41  </style>
42</head>
43<body>
44<script src="/navbar.js"></script>
44
45<div class="container">
46    <h1>צור קשר</h1>
47    <p class="subtitle">יש לכם שאלה? מצאתם קופון שאינו תקף? רוצים להציע שיתוף פעולה?<br/>נשמח לשמוע מכם ונחזור אליכם תוך 48 שעות.</p>
48
49    <div id="success-msg" class="success">
50      ✅ הודעתך נשלחה בהצלחה!<br/>
51      <span style="font-size:13px;color:var(--gray5)">נחזור אליך בהקדם.</span>
52    </div>
53
54    <form id="contact-form" onsubmit="submitForm(event)" novalidate>
55
56      <!-- Honeypot — invisible to humans, bots fill it -->
57      <div style="display:none" aria-hidden="true">
58        <input type="text" name="website" id="hp-website" tabindex="-1" autocomplete="off"/>
59      </div>
60
61      <div class="form-row">
62        <div class="form-group no-mb">
63          <label for="first_name"><span class="req">*</span>שם פרטי</label>
64          <input type="text" id="first_name" name="first_name" placeholder="ישראל" autocomplete="given-name" required/>
65          <div class="field-error" id="err-first">נא להזין שם פרטי</div>
66        </div>
67        <div class="form-group no-mb">
68          <label for="last_name"><span class="req">*</span>שם משפחה</label>
69          <input type="text" id="last_name" name="last_name" placeholder="ישראלי" autocomplete="family-name" required/>
70          <div class="field-error" id="err-last">נא להזין שם משפחה</div>
71        </div>
72      </div>
73
74      <div class="form-group">
75        <label for="email"><span class="req">*</span>כתובת אימייל</label>
76        <input type="email" id="email" name="email" placeholder="[email protected]" dir="ltr" autocomplete="email" required/>
77        <div class="field-error" id="err-email">נא להזין כתובת אימייל תקינה</div>
78      </div>
79
80      <div class="form-group">
81        <label for="phone-number">מספר טלפון <span style="color:var(--gray5);font-weight:400">(אופציונלי)</span></label>
82        <div class="phone-row" style="direction:ltr">
83          <select id="phone-prefix" class="phone-prefix">
84            <option value="050">050</option>
85            <option value="052">052</option>
86            <option value="053">053</option>
87            <option value="054" selected>054</option>
88            <option value="055">055</option>
89            <option value="056">056</option>
90            <option value="057">057</option>
91            <option value="058">058</option>
92            <option value="072">072</option>
93            <option value="073">073</option>
94            <option value="074">074</option>
95            <option value="077">077</option>
96            <option value="02">02</option>
97            <option value="03">03</option>
98            <option value="04">04</option>
99            <option value="08">08</option>
100            <option value="09">09</option>
101          </select>
102          <input type="tel" id="phone-number" name="phone_number" class="phone-number" placeholder="1234567" dir="ltr" maxlength="8" inputmode="numeric"/>
103        </div>
104        <div class="field-error" id="err-phone">מספר טלפון לא תקין</div>
105      </div>
106
107      <div class="form-group">
108        <label for="subject">נושא</label>
109        <select id="subject" name="subject">
110          <option value="coupon-issue">קופון לא עובד</option>
111          <option value="suggestion">הצעה לשיפור</option>
112          <option value="missing-store">חנות חסרה</option>
113          <option value="collaboration">שיתוף פעולה</option>
114          <option value="other">אחר</option>
115        </select>
116      </div>
117
118      <div class="form-group">
119        <label for="message"><span class="req">*</span>הודעה</label>
120        <textarea id="message" name="message" placeholder="כתבו את הודעתכם כאן..." required></textarea>
121        <div class="field-error" id="err-message">נא לכתוב הודעה</div>
122      </div>
123
124      <div id="form-error" class="form-error">אירעה שגיאה בשליחת ההודעה. נסו שוב.</div>
125
126      <button type="submit" class="btn" id="submit-btn">שלח הודעה →</button>
127    </form>
128  </div>
129
130  <footer>
131    <div>© 2025 קופוןAI — מופעל על ידי AI</div>
132    <div class="footer-links">
133      <a href="/">ראשי</a>
134      <a href="/about">אודות</a>
135      <a href="/terms">תנאי שימוש</a>
136      <a href="/contact">צור קשר</a>
137      <a href="/accessibility">הצהרת נגישות</a>
138    </div>
139  </footer>
140
141  
141<script src="/accessibility-widget.js"></script>
vendor: 1 bytes, line 141
141
142<script src="https://website-widgets.pages.dev/dist/sienna.min.js" defer></script>
142
143  
143<script>
144    function isValidEmail(email) {
145      return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(email.toLowerCase());
146    }
147
148    function showErr(id, show) {
149      const el = document.getElementById(id);
150      if (el) el.style.display = show ? 'block' : 'none';
151    }
152
153    function markField(id, invalid) {
154      const el = document.getElementById(id);
155      if (el) el.classList.toggle('invalid', invalid);
156    }
157
158    async function submitForm(e) {
159      e.preventDefault();
160
161      // Honeypot check — if filled, silently pretend success
162      if (document.getElementById('hp-website').value) {
163        document.getElementById('contact-form').style.display = 'none';
164        document.getElementById('success-msg').style.display = 'block';
165        return;
166      }
167
168      const firstName = document.getElementById('first_name').value.trim();
169      const lastName  = document.getElementById('last_name').value.trim();
170      const email     = document.getElementById('email').value.trim();
171      const phoneNum  = document.getElementById('phone-number').value.trim();
172      const message   = document.getElementById('message').value.trim();
173
174      // Validate
175      let valid = true;
176
177      showErr('err-first', !firstName);   markField('first_name', !firstName);   if (!firstName)  valid = false;
178      showErr('err-last',  !lastName);    markField('last_name',  !lastName);    if (!lastName)   valid = false;
179
180      const emailOk = email && isValidEmail(email);
181      showErr('err-email', !emailOk);     markField('email', !emailOk);          if (!emailOk)    valid = false;
182
183      if (phoneNum) {
184        const phoneOk = /^\d{7,8}$/.test(phoneNum);
185        showErr('err-phone', !phoneOk);   markField('phone-number', !phoneOk);   if (!phoneOk)    valid = false;
186      } else {
187        showErr('err-phone', false);      markField('phone-number', false);
188      }
189
190      showErr('err-message', !message);   markField('message', !message);        if (!message)    valid = false;
191
192      if (!valid) return;
193
194      const btn   = document.getElementById('submit-btn');
195      const errEl = document.getElementById('form-error');
196      errEl.style.display = 'none';
197      btn.disabled = true;
198      btn.textContent = 'שולח...';
199
200      const phone = phoneNum
201        ? document.getElementById('phone-prefix').value + phoneNum
202        : '';
203
204      try {
205        const res = await fetch('/api/contact', {
206          method: 'POST',
207          headers: {'Content-Type': 'application/json'},
208          body: JSON.stringify({
209            first_name: firstName,
210            last_name:  lastName,
211            email,
212            phone,
213            subject: document.getElementById('subject').value,
214            message,
215          }),
216        });
217        if (!res.ok) throw new Error(await res.text());
218        document.getElementById('contact-form').style.display = 'none';
219        document.getElementById('success-msg').style.display = 'block';
220      } catch(err) {
221        errEl.style.display = 'block';
222        btn.disabled = false;
223        btn.textContent = 'שלח הודעה →';
224      }
225    }
226  </script>
vendor: 1 bytes, line 226
226
227<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"53ec717f4f9944a1b853521eee6f2786","r":1,"spa":2}' crossorigin="anonymous"></script>
227
228</body>
229</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.