1 2 3 4<!DOCTYPE html> 5<html lang="fa_IR"> 6<head> 7<title>Ú¯Ø§ÙØ±Û ثاÙÛØ§ ÙØ§Ú</title> 8<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 9<meta name="theme-color" content="#000000"> 10<meta name="apple-mobile-web-app-status-bar-style" content="black"> 11<meta name="mobile-web-app-capable" content="yes"> 12<link rel="icon" type="image/png" href="https://saniawatch.com/assets/images/fav/favicon-96x96.png" sizes="96x96" /> 13<link rel="icon" type="image/svg+xml" href="https://saniawatch.com/assets/images/fav/favicon.svg" /> 14<link rel="shortcut icon" href="https://saniawatch.com/assets/images/fav/favicon.ico" /> 15<link rel="apple-touch-icon" sizes="180x180" href="https://saniawatch.com/assets/images/fav/apple-touch-icon.png" /> 16<meta name="apple-mobile-web-app-title" content="Sania" /> 17<link rel="manifest" href="https://saniawatch.com/assets/images/fav/site.webmanifest" /> 18<link rel="preload" href="/assets/transition-effect/css/style.css?v=1" as="style" onload="this.onload=null;this.rel='stylesheet'"> 19<noscript><link rel="stylesheet" href="/assets/transition-effect/css/style.css?v=1"></noscript> 20<link rel="stylesheet" href="/assets/css/saberiteam.css?v=3"> 21<link rel="preload" href="/assets/css/responsive.css?v=2" as="style" onload="this.onload=null;this.rel='stylesheet'"> 22<noscript><link rel="stylesheet" href="/assets/css/responsive.css?v=2"></noscript> 23</head><body> 24 25 26 27 28 29 30<div class="sp-overlay" id="spOverlay" style="display:none;"></div> 31<div class="sp-modal" id="spModal" style="display:none;" role="dialog" aria-modal="true"> 32 <div class="sp-head"> 33 <h3 class="sp-title" id="spTitle"></h3> 34 <button class="sp-close" id="spClose" type="button" aria-label="Close">Ã</button> 35 </div> 36 <p class="sp-body" id="spBody"></p> 37 <div class="sp-actions"> 38 <button class="sp-btn sp-primary" id="spOk" type="button"></button> 39 </div> 40</div> 41 42 43 44 45 46 47 48<section id="hero-contactus"> 49 50 51 <div class="cf-page"> 52 <div class="cf-shell"> 53 54 <!-- LEFT --> 55 <aside class="cf-left"> 56 <h2 class="cf-left-title">ارتباط با Ù Ø§Ø Ø¢ØºØ§Ø² ÛÚ© Ú¯ÙØªÚ¯ÙÛ ØØ±ÙÙâØ§Û</h2> 57 <p class="cf-left-sub">باعث Ø§ÙØªØ®Ø§Ø± ٠است Ú©Ù Ù¾Ø°ÛØ±Ø§Û Ù¾ÛØ§Ù ش٠ا باشÛÙ .</p> 58 59 <div class="cf-info"> 60 <div class="cf-info-item"> 61 <!-- phone icon --> 62 <svg class="cf-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 63 <path d="M6.6 3.8c.6-1 2-1.3 3-.6l1.6 1.1c.9.6 1.2 1.8.7 2.7l-.9 1.5c-.2.4-.2.9 0 1.3 1 2.1 2.7 3.8 4.8 4.8.4.2.9.2 1.3 0l1.5-.9c.9-.5 2.1-.2 2.7.7l1.1 1.6c.7 1 .4 2.4-.6 3-1 .6-2.1 1-3.2 1-8.2 0-14.9-6.7-14.9-14.9 0-1.1.4-2.2 1-3.2Z" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 64 </svg> 65 <div> <a href="tel:+989121000743">09121000743</a></div> 66 </div> 67 68 <div class="cf-info-item"> 69 <!-- mail icon --> 70 <svg class="cf-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 71 <path d="M4 7.5A2.5 2.5 0 0 1 6.5 5h11A2.5 2.5 0 0 1 20 7.5v9A2.5 2.5 0 0 1 17.5 19h-11A2.5 2.5 0 0 1 4 16.5v-9Z" stroke="white" stroke-width="1.6"/> 72 <path d="m6 8 6 4.3L18 8" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 73 </svg> 74 <div><a href="mailto:[email protected]">[email protected]</a></div> 75 </div> 76 77 <div class="cf-info-item"> 78 <!-- location icon --> 79 <svg class="cf-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 80 <path d="M12 21s7-5.2 7-11.3A7 7 0 0 0 5 9.7C5 15.8 12 21 12 21Z" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 81 <path d="M12 12.2a2.3 2.3 0 1 0 0-4.6 2.3 2.3 0 0 0 0 4.6Z" stroke="white" stroke-width="1.6"/> 82 </svg> 83 <div> 84 <a target="_blank" href="https://maps.app.goo.gl/eaJFJwCGf3L4sKdY7"> 85 ÙÛØ§ÙØ±Ø§ÙØ ٠جت٠ع ØÛات Ø³Ø¨Ø²Ø ÙØ§ØØ¯ 919 86 </a> 87 </div> 88 </div> 89 </div> 90 91 <div class="cf-hours"> 92 <div class="cf-hours-row">
93 <span>ÙÙ Ù Ø±ÙØ²Ù</span> 94 </div> 95 <div class="cf-hours-row"> 96 <!-- clock icon --> 97 <svg class="cf-ico" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 98 <path d="M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z" stroke="white" stroke-width="1.6"/> 99 <path d="M12 7v5l3 2" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 100 </svg> 101 <div>10 اÙÛ 21</div> 102 </div> 103 </div> 104 105 <div class="cf-social" aria-label="social links"> 106 <!-- instagram --> 107 <a href="https://t.me/saniawatch/"><svg viewBox="0 0 192 192" xmlns="http://www.w3.org/2000/svg" fill="none"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path stroke="#ffffff" stroke-width="12" d="M23.073 88.132s65.458-26.782 88.16-36.212c8.702-3.772 38.215-15.843 38.215-15.843s13.621-5.28 12.486 7.544c-.379 5.281-3.406 23.764-6.433 43.756-4.54 28.291-9.459 59.221-9.459 59.221s-.756 8.676-7.188 10.185c-6.433 1.509-17.027-5.281-18.919-6.79-1.513-1.132-28.377-18.106-38.214-26.404-2.649-2.263-5.676-6.79.378-12.071 13.621-12.447 29.891-27.913 39.728-37.72 4.54-4.527 9.081-15.089-9.837-2.264-26.864 18.483-53.35 35.835-53.35 35.835s-6.053 3.772-17.404.377c-11.351-3.395-24.594-7.921-24.594-7.921s-9.08-5.659 6.433-11.693Z"></path></g></svg></a> 108 <a href="https://www.instagram.com/saniawatch.gallery/"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z" fill="#ffffff"></path> <path d="M18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5Z" fill="#ffffff"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M1.65396 4.27606C1 5.55953 1 7.23969 1 10.6V13.4C1 16.7603 1 18.4405 1.65396 19.7239C2.2292 20.8529 3.14708 21.7708 4.27606 22.346C5.55953 23 7.23969 23 10.6 23H13.4C16.7603 23 18.4405 23 19.7239 22.346C20.8529 21.7708 21.7708 20.8529 22.346 19.7239C23 18.4405 23 16.7603 23 13.4V10.6C23 7.23969 23 5.55953 22.346 4.27606C21.7708 3.14708 20.8529 2.2292 19.7239 1.65396C18.4405 1 16.7603 1 13.4 1H10.6C7.23969 1 5.55953 1 4.27606 1.65396C3.14708 2.2292 2.2292 3.14708 1.65396 4.27606ZM13.4 3H10.6C8.88684 3 7.72225 3.00156 6.82208 3.0751C5.94524 3.14674 5.49684 3.27659 5.18404 3.43597C4.43139 3.81947 3.81947 4.43139 3.43597 5.18404C3.27659 5.49684 3.14674 5.94524 3.0751 6.82208C3.00156 7.72225 3 8.88684 3 10.6V13.4C3 15.1132 3.00156 16.2777 3.0751 17.1779C3.14674 18.0548 3.27659 18.5032 3.43597 18.816C3.81947 19.5686 4.43139 20.1805 5.18404 20.564C5.49684 20.7234 5.94524 20.8533 6.82208 20.9249C7.72225 20.9984 8.88684 21 10.6 21H13.4C15.1132 21 16.2777 20.9984 17.1779 20.9249C18.0548 20.8533 18.5032 20.7234 18.816 20.564C19.5686 20.1805 20.1805 19.5686 20.564 18.816C20.7234 18.5032 20.8533 18.0548 20.9249 17.1779C20.9984 16.2777 21 15.1132 21 13.4V10.6C21 8.88684 20.9984 7.72225 20.9249 6.82208C20.8533 5.94524 20.7234 5.49684 20.564 5.18404C20.1805 4.43139 19.5686 3.81947 18.816 3.43597C18.5032 3.27659 18.0548 3.14674 17.1779 3.0751C16.2777 3.00156 15.1132 3 13.4 3Z" fill="#ffffff"></path> </g></svg></a> 109 <a href="https://wa.me/+989121000743"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M6.014 8.00613C6.12827 7.1024 7.30277 5.87414 8.23488 6.01043L8.23339 6.00894C9.14051 6.18132 9.85859 7.74261 10.2635 8.44465C10.5504 8.95402 10.3641 9.4701 10.0965 9.68787C9.7355 9.97883 9.17099 10.3803 9.28943 10.7834C9.5 11.5 12 14 13.2296 14.7107C13.695 14.9797 14.0325 14.2702 14.3207 13.9067C14.5301 13.6271 15.0466 13.46 15.5548 13.736C16.3138 14.178
10917.0288 14.6917 17.69 15.27C18.0202 15.546 18.0977 15.9539 17.8689 16.385C17.4659 17.1443 16.3003 18.1456 15.4542 17.9421C13.9764 17.5868 8 15.27 6.08033 8.55801C5.97237 8.24048 5.99955 8.12044 6.014 8.00613Z" fill="#ffffff"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 23C10.7764 23 10.0994 22.8687 9 22.5L6.89443 23.5528C5.56462 24.2177 4 23.2507 4 21.7639V19.5C1.84655 17.492 1 15.1767 1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23ZM6 18.6303L5.36395 18.0372C3.69087 16.4772 3 14.7331 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C11.0143 21 10.552 20.911 9.63595 20.6038L8.84847 20.3397L6 21.7639V18.6303Z" fill="#ffffff"></path> </g></svg></a> 110 </div> 111 </aside> 112 113 <!-- RIGHT --> 114 <main class="cf-right"> 115 <form class="cf-form" action="#" method="post" id="contactForm"> 116 <input type="hidden" name="csrf_token" value="a8c86c7fd0d112fdbe29bceb83637a295d937124f0e9410d3bb4626d79119666"> 117 <div class="cf-grid-2"> 118 <div class="cf-field"> 119 <label class="cf-label" for="cf-firstname">ÙØ§Ù Ù ÙØ§Ù خاÙÙØ§Ø¯Ú¯Û</label> 120 <input class="cf-input" id="cf-firstname" name="firstname" type="text" placeholder="با ØØ±ÙÙ ÙØ§Ø±Ø³Û ÙØ§Ø±Ø¯ Ù٠اÛÛØ¯" /> 121 </div> 122 123 <div class="cf-field"> 124 <label class="cf-label" for="cf-phone">ش٠ار٠Ù٠راÙ</label> 125 <input class="cf-input" id="cf-phone" name="phone" type="tel" placeholder="09120000000" /> 126 </div> 127 </div> 128 129 <div class="cf-field"> 130 <label class="cf-label" for="cf-email">اÛÙ ÛÙ</label> 131 <input class="cf-input" id="cf-email" name="email" type="email" placeholder="[email protected]" /> 132 </div> 133 134 135 <div class="cf-field"> 136 <label class="cf-label" for="cf-message">Ù¾ÛØ§Ù ش٠ا</label> 137 <textarea class="cf-textarea" id="cf-message" name="message" placeholder="Ù¾ÛØ§Ù ش٠ا با Ø¯ÙØª Ø¨Ø±Ø±Ø³Û Ø´Ø¯Ù Ù Ø¯Ø± اسرع ÙÙØª پاسخ Ø¯Ø§Ø¯Ù Ø®ÙØ§Ùد شد."></textarea> 138 </div> 139 140 <div class="cf-actions"> 141 <button class="cf-btn" type="submit">Ø§Ø±Ø³Ø§Ù Ù¾ÛØ§Ù </button> 142 </div> 143 </form> 144 </main> 145 146 </div> 147 </div> 148<a class="back_to_home" href="https://saniawatch.com/">بازگشت ب٠خاÙÙ <svg viewBox="-19.04 0 75.803 75.803" xmlns="http://www.w3.org/2000/svg" fill="#ffffff" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g id="Group_64" data-name="Group 64" transform="translate(-624.082 -383.588)"> <path id="Path_56" data-name="Path 56" d="M660.313,383.588a1.5,1.5,0,0,1,1.06,2.561l-33.556,33.56a2.528,2.528,0,0,0,0,3.564l33.556,33.558a1.5,1.5,0,0,1-2.121,2.121L625.7,425.394a5.527,5.527,0,0,1,0-7.807l33.556-33.559A1.5,1.5,0,0,1,660.313,383.588Z" fill="#ffffff"></path> </g> </g></svg></a> 149 150</section> 151 152 153 154 155
156<script src="../assets/js/jquery.min.js"></script>
vendor: 1 bytes, line 156
156
157<script> 158jQuery(function ($) { 159 'use strict'; 160 161 var $form = $('#contactForm').length ? $('#contactForm') : $('.cf-form').first(); 162 if (!$form.length) return; 163 164 var $name = $form.find('#cf-firstname'); 165 var $phone = $form.find('#cf-phone'); 166 var $email = $form.find('#cf-email'); 167 var $msg = $form.find('#cf-message'); 168 var $btn = $form.find('button[type="submit"]'); 169 var $csrf = $form.find('input[name="csrf_token"]'); // اگر Ø¯Ø§Ø±Û 170 171 // UX + Hardening ساد٠172 $name.attr({ autocomplete: 'name', maxlength: 60 }); 173 $phone.attr({ inputmode: 'numeric', autocomplete: 'tel', maxlength: 14 }); 174 $email.attr({ autocomplete: 'email', maxlength: 120 }); 175 $msg.attr({ maxlength: 1500 }); 176 177 function clamp(s, max) { 178 s = String(s || ''); 179 return s.length > max ? s.slice(0, max) : s; 180 } 181 182 function normalizeSpaces(s) { 183 return String(s || '') 184 .replace(/\s+/g, ' ') 185 .replace(/[\u200f\u202a-\u202e]/g, '') // ØØ°Ù bidi controls (ا٠ÙÛØª/ÙÙ Ø§ÛØ´) 186 .trim(); 187 } 188 189 function toEnglishDigits(input) { 190 var fa = 'Û°Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹'; 191 var ar = '٠١٢٣٤٥٦٧٨٩'; 192 return String(input) 193 .replace(/[Û°-Û¹]/g, function (d) { return String(fa.indexOf(d)); }) 194 .replace(/[Ù -Ù©]/g, function (d) { return String(ar.indexOf(d)); }); 195 } 196 197 // --- ÙØ§Ù ÙÙØ· ØØ±ÙÙ (بدÙ٠عدد/Ø¹ÙØ§Ù ت) --- 198 function normalizeFullName(raw) { 199 var s = normalizeSpaces(raw); 200 // Ùگ٠داشت٠ÙÙØ·: ØØ±ÙÙ ÙØ§Ø±Ø³Û/Ø¹Ø±Ø¨Û + ÙØ§ØµÙÙ + ÙÛÙ âÙØ§ØµÙÙ 201 // ÙØ± ÚÛØ² دÛÚ¯Ù ØØ°Ù Ù ÛØ´Ù (عدد/Ø¹ÙØ§Ù ت/ÙØ§ØªÛÙ/...)
202 s = s.replace(/[^\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\s\u200c]/g, ''); 203 s = normalizeSpaces(s); 204 return s; 205 } 206 207 function isValidFullName(name) { 208 // ØØ¯Ø§ÙÙ Û² Ú©Ø§Ø±Ø§Ú©ØªØ±Ø ÙÙØ· ØØ±ÙÙ + ÙØ§ØµÙÙ/ÙÛÙ âÙØ§ØµÙÙ 209 return /^[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF\s\u200c]{2,60}$/.test(name); 210 } 211 212 // --- ش٠ار٠ÙÙØ· عدد + تبدÛÙ ÙØ§Ø±Ø³Û/Ø¹Ø±Ø¨Û Ø¨Ù Ø§ÙÚ¯ÙÛØ³Û + Ø§ÙØ²Ùد٠0 + 11 رÙÙ --- 213 function normalizeMobile(raw) { 214 var s = toEnglishDigits(raw); 215 216 // ÙÙØ· رÙÙ Ùگ٠دار 217 s = s.replace(/[^\d]/g, ''); 218 219 // اگر 98... ÛØ§ 0098... Ø¨ÙØ¯ تبدÛÙØ´ ک٠ب٠0... 220 if (s.indexOf('0098') === 0) s = '0' + s.slice(4); 221 else if (s.indexOf('98') === 0) s = '0' + s.slice(2); 222 223 // اگر با 0 Ø´Ø±ÙØ¹ ÙØ´Ø¯Ø 0 اÙÙØ´ بگذار 224 if (s && s.charAt(0) !== '0') s = '0' + s; 225 226 return s; 227 } 228 229 function isValidIranMobile(m) { 230 // دÙÛÙØ§Ù 11 رÙÙ Ù Ø´Ø±ÙØ¹ با 09 231 return /^09\d{9}$/.test(m); 232 } 233 234 // Ø§Ø¹Ù Ø§Ù ÙØØ¸ÙâØ§Û ÙÙØ§ÙÛ٠رÙÛ ÙØ±ÙدÛâÙØ§ 235 $name.on('input blur', function () { 236 var n = normalizeFullName($(this).val()); 237 if ($(this).val() !== n) $(this).val(n); 238 }); 239 240 $phone.on('input blur', function () { 241 var n = normalizeMobile($(this).val()); 242 // اÛÙØ¬Ø§ ÙØ°Ø§Ø±ÛÙ ÙØ± ÙØØ¸Ù 0 اضاÙÙ Ú©Ù٠٠کاربر Ø§Ø°ÛØª Ø¨Ø´ÙØ 243 // Ø·Ø¨Ù Ø®ÙØ§Ø³ØªÙâØ§ØªØ Ø§Ø¶Ø§Ù٠کرد٠0 را Ø§ÙØ¬Ø§Ù Ù ÛâØ¯ÙÛÙ . 244 if ($(this).val() !== n) $(this).val(n); 245 }); 246 247 function isValidEmail(email) { 248 if (!email) return true; 249 return /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/i.test(email); 250 } 251 252 $form.on('submit', function (e) { 253 e.preventDefault(); 254 255 var fullName = normalizeFullName(clamp($name.val(), 60)); 256 var phone = normalizeMobile(clamp($phone.val(), 30)); 257 var email = normalizeSpaces(clamp($email.val(), 120)).toLowerCase(); 258 var message = normalizeSpaces(clamp($msg.val(), 1500)); 259 var csrfTok = $csrf.length ? normalizeSpaces(clamp($csrf.val(), 200)) : ''; 260 261 // ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û: ÙØ§Ù Ø Ø´Ù Ø§Ø±ÙØ Ù¾ÛØ§Ù (اÛÙ ÛÙ Ø§Ø®ØªÛØ§Ø±Û) 262 // اگر CSRF Ø¯Ø§Ø±Û Ù Ù ÛâØ®ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø¨Ø§Ø´Ù: csrfTok Ù٠اضاÙÙ Ú©Ù 263 var requiredOk = !!(fullName && phone && message); 264 265 if ( 266 !requiredOk || 267 !isValidFullName(fullName) || 268 !isValidIranMobile(phone) || 269 !isValidEmail(email) 270 ) { 271 simplePopup({ 272 title: "راÙÙÙ Ø§Û Ø³Ø§ÛØª", 273 text: "کاربر Ø¹Ø²ÛØ² ÙØ·Ùا Ø§Ø·ÙØ§Ø¹Ø§Øª Ø®ÙØ§Ø³ØªÙ شد٠را Ú©Ø§Ù Ù ÙØ§Ø±Ø¯ Ù٠اÛÛØ¯.", 274 buttonText: "Ù ØªÙØ¬Ù شد٠" 275 }); 276 return; 277 } 278 279 // Ù ÙØ§Ø¯Ûر ÙØ±Ù اÙâØ´Ø¯Ù Ø±Ù Ø¨Ø±Ú¯Ø±Ø¯Ù٠تÙÛ ÙÛÙØ¯Ùا 280 $name.val(fullName); 281 $phone.val(phone); 282 283 $btn.prop('disabled', true).attr('aria-busy', 'true'); 284 285 var payload = { 286 fullname: fullName, 287 phone: phone, 288 email: email ? email : null, 289 message: message 290 }; 291 292 // اگر CSRF Ø¯Ø§Ø±Û Ù endpoint ÚÚ©Ø´ Ù ÛâÚ©ÙÙ: 293 if (csrfTok) payload.csrf_token = csrfTok; 294 295 $.ajax({ 296 url: 'https://saniawatch.com/core/contactus.php', 297 type: 'POST', 298 data: JSON.stringify(payload), 299 contentType: 'application/json; charset=utf-8', 300 dataType: 'json', 301 headers: { 302 'Accept': 'application/json', 303 'X-Requested-With': 'XMLHttpRequest' 304 } 305 }) 306 .done(function () { 307 simplePopup({ 308 title: "راÙÙÙ Ø§Û Ø³Ø§ÛØª", 309 text: "ÙÙ Ø±Ø§Ù Ø¹Ø²ÛØ²Ø Ù¾ÛØ§Ù âØªØ§Ù Ø¨Ø§ Ù ÙÙÙÛØª Ø¯Ø±ÛØ§Ùت شد. Ù٠کارا٠٠ا در اسرعâÙÙØª با ش٠ا ارتباط Ø®ÙØ§ÙÙØ¯ Ú¯Ø±ÙØª.", 310 buttonText: "Ù ØªÙØ¬Ù شد٠" 311 }); 312 $form[0].reset(); 313 }) 314 .fail(function () { 315 simplePopup({ 316 title: "راÙÙÙ Ø§Û Ø³Ø§ÛØª", 317 text: "Ø§Ø±Ø³Ø§Ù Ù¾ÛØ§Ù با خطا Ù ÙØ§Ø¬Ù شد.", 318 buttonText: "Ù ØªÙØ¬Ù شد٠" 319 }); 320 }) 321 .always(function () { 322 $btn.prop('disabled', false).removeAttr('aria-busy'); 323 }); 324 }); 325}); 326</script>
326 327 328
329<script> 330 (function($){ 331 // ÙÚ¯ÙØ¯Ø§Ø±Û callback Ø¬Ø§Ø±Û (Ø¨Ø±Ø§Û ÙØ± بار باز شدÙ) 332 var current = { onOk: null, onClose: null }; 333 334 window.simplePopup = function(options){ 335 var o = $.extend({ 336 title: "", 337 text: "", 338 buttonText: "باشÙ", 339 onOk: null, // function(close){} 340 onClose: null // function(){} 341 }, options || {}); 342 343 current.onOk = o.onOk; 344 current.onClose = o.onClose; 345 346 $('#spTitle').text(o.title || ''); 347 $('#spBody').text(o.text || ''); 348 $('#spOk').text(o.buttonText || 'باشÙ'); 349 350 // ÙÙ Ø§ÛØ´ 351 $('#spOverlay').fadeIn(120); 352 $('#spModal').fadeIn(120); 353 354 return { 355 close: closePopup 356 }; 357 }; 358 359 function closePopup(){ 360 $('#spModal').fadeOut(120); 361 $('#spOverlay').fadeOut(120, function(){ 362 if(typeof current.onClose === 'function') current.onClose(); 363 current.onOk = null; 364 current.onClose = null; 365 }); 366 } 367 368 // رÙÛØ¯Ø§Ø¯ÙØ§Û Ø«Ø§Ø¨Øª Ø¨Ø±Ø§Û Ø¨Ø³ØªÙ (اÛÙâÙØ§ Ø¨Ø±Ø§Û Ø¨Ø§Ø² کرد٠ÙÛØ³ØªÙد) 369 $(document).on('click', '#spOverlay, #spClose', function(){ 370 closePopup(); 371 }); 372 373 $(document).on('click', '#spOk', function(){ 374 if(typeof current.onOk === 'function'){ 375 current.onOk(closePopup); // Ø§Ø¬Ø§Ø²Ù Ù ÛØ¯Û داخ٠callback Ø®ÙØ¯Øª Ø¨Ø¨ÙØ¯Û 376 } else { 377 closePopup(); 378 } 379 }); 380 381 $(document).on('keydown', function(e){ 382 if(e.key === 'Escape') closePopup(); 383 }); 384 385 })(jQuery); 386</script>
386 387 388 389</body> 390</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.