/* Aljaweea — footer "Cookie Preferences" link opens the Complianz banner.
* Original by Digency (19 Aug 2026); amended 8 Sep 2026, runbook 5.14:
* - e.preventDefault() so the href="#" no longer scrolls the page to the top;
* - calls Complianz's own cmplz_set_banner_status('show') and falls back to
* clicking the (hidden) Manage-consent button if that function is absent.
* Rollback: restore the original 12-line version recorded in the runbook. */
document.addEventListener('click', function (e) {
var link = e.target.closest('.cmplz-show-banner');
if (!link) { return; }
e.preventDefault();
if (typeof cmplz_set_banner_status === 'function') {
cmplz_set_banner_status('show');
} else {
document.querySelectorAll('.cmplz-manage-consent').forEach(function (btn) { btn.click(); });
}
});
خلال شهري يوليو وأغسطس 2026، شهد قطاع الطيران المدني السوري سلسلة متزامنة من التطورات حيث ارتفعت حركة الطائرات العابرة للأجواء السورية، وعادت مطارات إلى الخدمة أو دخلت مرحلة إعادة التأهيل والإدارة السورية، واستأنفت شركات طيران أجنبية تشغيل رحلات مباشرة إلى دمشق وحلب ودير الزور، فيما تحركت دمشق لإعادة بناء شبكة وجهات دولية وإقليمية والتفاوض على استعادة مسارات أخرى.
ويمكن قراءة التطورات الحالية باعتبارها عملية إعادة بناء تدريجية لمنظومة الطيران السورية عبر خمس حلقات مترابطة: زيادة العبور الجوي، واستعادة المطارات وتأهيلها وتسلم إدارتها، وعودة المسارات وفتح الوجهات، والتحرك لإعادة خطوط وشركات أخرى، ثم تحويل هذه الحركة إلى قيمة اقتصادية وإيرادات مباشرة وغير مباشرة.
الطيران العابر يفتح الباب أمام عودة سوريا إلى خريطة الملاحة الجوية
أبرز مؤشرات التحول في صناعة الطيران بسوريا يظهر في المجال الجوي نفسه. فقد أعلنت الهيئة العامة للطيران المدني والنقل الجوي أن 20,315 طائرة عبرت الأجواء السورية خلال يوليو 2026، مقارنة بـ11,801 طائرة في مايو الماضي، ما يعني ارتفاعاً بنحو 72% خلال شهرين.
ويأتي ذلك ضمن قفزة أكبر بدأت في مايو، عندما سجل المجال الجوي السوري 11,801 عملية عبور، مقابل 2,468 في مايو 2025. وكانت رويترز قد وثقت آنذاك إعادة توجيه أعداد كبيرة من الرحلات الخليجية المتجهة إلى أوروبا عبر المجال الجوي السوري، بدلاً من بعض المسارات التي أصبحت أطول نتيجة الاضطرابات والإغلاقات الجوية الإقليمية.
وهكذا لم تعد الأجواء السورية مجرد مساحة جغرافية تقع بين مراكز الطيران في الخليج وأوروبا، وإنما أصبحت مجدداً جزءاً من حسابات شركات الطيران عند تحديد المسارات الأكثر كفاءة.
رغم أهمية القفزة، فإن تفسيرها يحتاج إلى قدر من الحذر، فجزء كبير من الزيادة الحالية جاء نتيجة إعادة توجيه شركات الطيران لمساراتها بسبب الاضطرابات والإغلاقات الجوية الإقليمية.
من عبور الأجواء إلى استعادة المطارات وتأهيلها وتشغيلها
إذا كانت حركة العبور تمثل عودة سوريا إلى الخريطة الجوية، فإن إعادة تشغيل المطارات تمثل عودة شبكة الطيران على الأرض.
مطار دير الزور الدولي يستأنف عملياته لدعم النشاط الاقتصادي والتنموي. صورة: الهيئة العامة للطيران المدني والنقل الجوي – سوريا
مطار اللاذقية يدخل مرحلة الإدارة السورية
وفي 9 أغسطس، أعلنت الهيئة العامة للطيران المدني والنقل الجوي السورية توليها إدارة مطار اللاذقية والعمل على تأهيله، في خطوة تضع المطار ضمن مسار إعادة دمج المنشآت الجوية في المنظومة المدنية السورية.
وهذا تطور مهم، لأنه يعني أن مطار اللاذقية نفسه دخل مرحلة الإدارة السورية والتحضير لإعادة التأهيل والتشغيل، في خطوة قد تمنح الساحل السوري منفذاً جوياً مدنياً مستقلاً، وتضيف محوراً جديداً إلى شبكة المطارات السورية، بما قد يدعم حركة المسافرين والسياحة والأعمال والخدمات اللوجستية.
مسافرون عند مكتب تسجيل الوصول داخل مطار حلب الدولي. صورة: الهيئة العامة للطيران المدني والنقل الجوي – سوريا
حلب: من مطار إقليمي إلى بوابة دولية ثانية
واستقبل مطار حلب الدولي أولى الرحلات القادمة من بوخارست في الأول من يوليو 2026، التي تشغلها شركة DAN AIR الرومانية، في خطوة أعادت ربط المدينة مباشرة بأوروبا الشرقية.
وفي الاتجاه التركي، أعلنت سانداكسبريس ( SunExpress ) تشغيل رحلات مباشرة بين أنطاليا وحلب اعتباراً من 1 أغسطس، وبين إزمير وحلب اعتباراً من 2 أغسطس.
كما توسعت شبكة حلب من خلال رحلات LEAV Aviation بين كولونيا وحلب، فيما أطلقت flynas رحلات مباشرة بين الرياض وحلب.
وهكذا أصبح مطار حلب مرتبطاً مباشرة بوجهات في رومانيا وتركيا وألمانيا والسعودية، ما يعزز دوره باعتباره البوابة الجوية الدولية الثانية في سوريا إلى جانب دمشق.
والأهمية هنا أن توزيع الحركة بين مطارين رئيسيين يقلل الاعتماد على محور واحد، ويوفر لشركات الطيران خيارات تشغيلية متعددة، كما يسمح بربط مناطق جغرافية مختلفة داخل سوريا بشبكة دولية واحدة.
يشار الى أن الهيئة العامة للطيران المدني والنقل الجوي السورية أعادت في يونيو الماضي فتح الممرات الجوية الجنوبية المغلقة واستأنفت العمليات التشغيلية في مطار دمشق الدولي بعد اغلاق لساعات لأسباب أمنية، في حين مازال مطار القامشلي، ضمن مسار إعادة التأهيل والاستعداد التشغيلي.
عودة مسارات وفتح وجهات جديدة
إعادة فتح المطارات لا تحقق قيمتها الاقتصادية من دون رحلات وشركات ووجهات. ولذلك جاءت المرحلة التالية بالتوازي مع عودة خطوط جوية مباشرة إلى دمشق وحلب.
ووصلت أول رحلة لشركة ليف أفييشن ( LEAV Aviation ) من دوسلدورف إلى دمشق في 29 يوليو، لتعيد الرحلات المباشرة بين المدينتين بعد توقف دام نحو 14 عاماً.
كما أعلنت الهيئة أن LEAV Aviation ستشغل رحلات مباشرة بين كولونيا وحلب، بينما بدأت Sundair رحلات برلين–دمشق، على أن يبدأ خط برلين–حلب في أكتوبر المقبل.
وتكشف هذه التطورات أن عودة الطيران الأوروبي إلى سوريا لا تقتصر على استعادة خط واحد، بل تشمل بناء شبكة تربط عدة مدن سورية بعدة مراكز أوروبية.
وفي 2 يوليو 2026، استعادت الخطوط الجوية السورية خط دمشق–أمستردام، ليصبح أول خط مباشر للناقل الوطني إلى أوروبا بعد سنوات من التوقف.
وتكتسب هذه الخطوة أهمية تتجاوز عدد الرحلات، لأنها تعيد بناء شبكة الناقل الوطني وتمنح المسافرين خياراً مباشراً إلى مركز أوروبي مهم، بدلاً من الاعتماد على المطارات الوسيطة.
وفي الخليج، استعادت الخطوط الجوية الكويتية رحلاتها المنتظمة إلى دمشق في 15 يوليو 2026 بعد سنوات من التوقف.
وتكتسب عودة الناقل الكويتي أهمية خاصة لأن الكويت تمثل إحدى نقاط الربط الخليجية المهمة بالنسبة إلى السوق السورية، بينما يفتح تشغيل دير الزور من الكويت مساراً مختلفاً يربط شرق سوريا مباشرة بالخليج.
وبدء طيران الجزيرة رحلاته إلى دير الزور اعتباراً من 8 أغسطس يوضح كيف يمكن لإعادة تأهيل مطار محلي أن تنتقل سريعاً من مرحلة البنية التحتية إلى مرحلة الربط الإقليمي.
جاء ذلك بالاضافة الى الرحلات بين مدن سعودية عدة تشمل الرياض وجدة والمدينة المنورة وسوريا، كما أن الخطوط الجوية السورية أعلنت عن تشغيل رحلاتها المنتظمة والمباشرة بين دمشق وموسكو بدءا من 16 أغسطس الجاري.
خريطة تظهر مسارات الطيران المتوسعة إلى سوريا. رسم بياني: الجوية.
اتفاقية نقل جوي مع ألمانيا ومفاوضات مع مصر
في 16 يوليو 2026، وقعت سوريا وألمانيا اتفاقية للنقل الجوي تهدف إلى توسيع خدمات النقل الجوي بين البلدين، وفتح الطريق أمام استئناف الرحلات المباشرة.
ورغم اتساع شبكة الوجهات، لا تزال عملية إعادة الربط الجوي السورية في بدايتها، حيث بحثت سوريا ومصر في يونيو ويوليو الماضيين تعزيز التعاون في مجال الطيران المدني وإعادة الربط الجوي بين البلدين، فيما يحتاج استئناف الرحلات إلى استكمال المتطلبات الفنية والأمنية والتشغيلية.
ومن هنا، فإن عودة شركة طيران جديدة إلى سوريا لا تعني فقط إضافة وجهة على جدول الرحلات، بل تمثل أيضاً مؤشراً على ارتفاع مستوى الثقة في البيئة التشغيلية.
المطارات تستعيد الحركة وتبدأ في توليد قيمة اقتصادية
تظهر آثار إعادة بناء الشبكة أيضاً في أرقام حركة المسافرين، ففي مايو الماضي، سجل مطار دمشق الدولي 1,532 رحلة و148,305 مسافرين، بينما سجل مطار حلب الدولي 412 رحلة و40,451 مسافراً. أما في يوليو الماضي فوصل إجمالي عدد المسافرين عبر مطار دمشق الدولي إلى 243260 مسافراً، منهم 147318 قادماً و95942 مغادراً، فيما بلغ عدد الرحلات الجوية 2088 رحلة، بينما وصل عدد شركات الطيران إلى 16 شركة.
كما أن مطار حلب الدولي تعامل مع أكثر من 66 ألف مسافر خلال يوليو الماضي، في مؤشر إضافي على اتساع النشاط التشغيلي للمطار. كل هذا يعني أن المطارات لا تستعيد وظيفتها كمنشآت للنقل فقط، بل تعيد بناء سلسلة اقتصادية واسعة حولها.
لماذا ترتفع العائدات الاقتصادية؟
يمكن تقسيم القيمة الاقتصادية الناتجة عن هذه الطفرة إلى مستويين رئيسيين. أولا إيرادات مباشرة من المجال الجوي، حيث تكمن إحدى أهم فوائد ارتفاع حركة العبور في رسوم الملاحة الجوية. وحسب وثيقة اطلعت عليها “رويترز” وشركات تشغيل طيران، تبلغ الرسوم الثابتة المفروضة 499 دولاراً لكل رحلة، موزعة بين 430 دولاراً كرسوم عبور و69 دولاراً لرسوم الاتصالات، بغض النظر عن نوع الطائرة أو حجمها، مع إمكانية إضافة رسوم أخرى من قبل وكلاء المناولة.
وبناءً على هذه الرسوم، قدرت رويترز أن 11,801 عملية عبور في مايو كان يمكن أن تولد نحو 5.9 ملايين دولار من إيرادات التحليق.
أما بالنسبة إلى يوليو، فإن ضرب عدد الرحلات البالغ 20,315 في رسوم 499 دولاراً يعطي حسابياً نحو 10.14 ملايين دولار. ويمثل هذا الرقم حساباً نظرياً فقط، وليس رقماً رسمياً للإيرادات المحققة.
خدمات المناولة الأرضية تعد جزءاً رئيسياً من النشاط الاقتصادي الذي يولده تعافي عمليات المطارات. صورة: الهيئة العامة للطيران المدني والنقل الجوي – سوريا
ثانيا، إيرادات ونشاط اقتصادي حول المطارات، فكل رحلة تهبط أو تقلع تولد نشاطاً في خدمات المناولة الأرضية، ومواقف الطائرات، وخدمات المطارات والمسافرين، والتموين والخدمات التشغيلية، والشحن الجوي، والنقل البري من وإلى المطارات، والفنادق والسياحة، وخدمات السفر، والتجارة وحركة رجال الأعمال، والاستثمارات المرتبطة بالبنية التحتية.
وبالتالي، فإن عودة الطيران يمكن أن تعمل كمحرك اقتصادي، لأن قيمة الرحلة لا تتوقف عند سعر التذكرة أو رسوم المطار، وإنما تمتد إلى قطاعات متعددة تعتمد على حركة المسافرين والشحن والأعمال.
ابقوا على اطلاع دائم. احصلوا على أحدث أخبار الطيران والفضاء في العالم العربي لحظة نشرها عبر واتساب وتيليغرام، أو اشتركوا بنشرتنا البريدية لتصلكم نشرة أسبوعية. كما يمكنكم إضافتنا إلى مصادركم المفضلة لتظهر لكم أخبارنا بشكل أوسع في بحث Google.
نستخدم ملفات تعريف الارتباط لتشغيل هذا الموقع، وقياس القراءة، وعرض الإعلانات التي تموّل عملنا الصحافي. في منطقتكم تبقى ملفات تعريف الارتباط غير الضرورية معطّلة حتى تقبلوها. يمكنكم قبولها كلها أو رفضها كلها أو الاختيار بحسب الفئة، وتغيير خياركم في أي وقت عبر رابط “تفضيلات ملفات تعريف الارتباط” في أسفل كل صفحة.
وظيفية دائما مفعلة
ضرورية لعمل الموقع: لغة التصفح، وخياركم بشأن ملفات تعريف الارتباط، وحماية النماذج، وجلسة ووردبريس. مفعّلة دائماً.
تفضيلات
تحفظ الإعدادات التي اخترتموها حتى لا تحتاجوا إلى ضبطها مجدداً في زيارتكم التالية.
إحصائيات
Google Analytics لمعرفة المقالات الأكثر قراءة، ومن أي بلد، وعلى أي أجهزة. تُختصر عناوين IP قبل تخزينها.التخزين أو الوصول الفني الذي يُستخدم حصرياً لأغراض إحصائية مجهولة المصدر. وبدون أمر استدعاء أو امتثال طوعي من جانب مزود خدمة الإنترنت الخاص بك أو سجلات إضافية من طرف ثالث، لا يمكن عادةً استخدام المعلومات المخزنة أو المستردة لهذا الغرض وحده لتحديد هويتك.
تسويق
الإعلانات التي تعرضها Google AdSense، ومقاطع الفيديو المضمّنة وأزرار وسائل التواصل الاجتماعي، وبكسلات القياس لمنشوراتنا على المنصات الاجتماعية.
نستخدم ملفات تعريف الارتباط لتشغيل هذا الموقع، وقياس القراءة، وعرض الإعلانات التي تموّل عملنا الصحافي. وهي مفعّلة ما لم ترفضوها هنا. يمكنكم تغيير خياركم في أي وقت عبر رابط “تفضيلات ملفات تعريف الارتباط” في أسفل كل صفحة.
وظيفية دائما مفعلة
ضرورية لعمل الموقع: لغة التصفح، وخياركم بشأن ملفات تعريف الارتباط، وحماية النماذج، وجلسة ووردبريس. مفعّلة دائماً.
تفضيلات
تحفظ الإعدادات التي اخترتموها حتى لا تحتاجوا إلى ضبطها مجدداً في زيارتكم التالية.
إحصائيات
Google Analytics لمعرفة المقالات الأكثر قراءة، ومن أي بلد، وعلى أي أجهزة. تُختصر عناوين IP قبل تخزينها.التخزين أو الوصول الفني الذي يُستخدم حصرياً لأغراض إحصائية مجهولة المصدر. وبدون أمر استدعاء أو امتثال طوعي من جانب مزود خدمة الإنترنت الخاص بك أو سجلات إضافية من طرف ثالث، لا يمكن عادةً استخدام المعلومات المخزنة أو المستردة لهذا الغرض وحده لتحديد هويتك.
تسويق
الإعلانات التي تعرضها Google AdSense، ومقاطع الفيديو المضمّنة وأزرار وسائل التواصل الاجتماعي، وبكسلات القياس لمنشوراتنا على المنصات الاجتماعية.
var molongui_authorship_byline_params = {"byline_modifiers_enabled":"","byline_prefix":"","byline_suffix":"","byline_separator":",\u00a0","byline_last_separator":"\u00a0and\u00a0","byline_link_title":"View all posts by","byline_link_class":"","byline_dom_tree":"","byline_dom_prepend":"","byline_dom_append":"","byline_decoder":"v3","byline_data_url":"https://aljaweea.com/ar/wp-json/molongui-authorship/v1/bylines","byline_rest_nonce":""};
//# sourceURL=molongui-authorship-byline-js-extra
let cmplzBlockedContent = document.querySelector('.cmplz-blocked-content-notice');
if ( cmplzBlockedContent) {
cmplzBlockedContent.addEventListener('click', function(event) {
event.stopPropagation();
});
}
//# sourceURL=cmplz-cookiebanner-js-after
/* Accessibility quick fixes (WCAG 2.2 AA test, 27 Oct 2026). Safe to switch off.
1 skip link · 2 form autofill · 3 language switcher name · 4 dark-mode button name and state
5 mobile menu state and focus · 6 heading levels for screen readers · 7 author photos
8 form errors linked to fields · 9 "opens in a new tab" for screen readers · 10 main content area */
(function () {
var isAr = (document.documentElement.lang || '').toLowerCase().indexOf('ar') === 0;
var T = isAr
? { skip: 'تخطَّ إلى المحتوى الرئيسي', dark: 'الوضع المظلم', newTab: ' (يُفتح في علامة تبويب جديدة)' }
: { skip: 'Skip to main content', dark: 'Dark mode', newTab: ' (opens in a new tab)' };function visible(el) {
if (!el) { return false; }
var r = el.getBoundingClientRect(), s = getComputedStyle(el);
return r.width > 0 && r.height > 0 && s.visibility !== 'hidden' && s.display !== 'none' && r.right > 0 && r.left < window.innerWidth;
}function run() {
/* 1. Skip link (WCAG 2.4.1): jumps to the first block after the site header */
var header = document.getElementById('theme-header');
var target = header ? header.nextElementSibling : null;
while (target && (target.tagName === 'SCRIPT' || target.tagName === 'STYLE')) { target = target.nextElementSibling; }
if (target && !document.querySelector('.aj-skip-link')) {
if (!target.id) { target.id = 'aj-main'; }
if (!target.hasAttribute('tabindex')) { target.setAttribute('tabindex', '-1'); }
var a = document.createElement('a');
a.className = 'aj-skip-link';
a.href = '#' + target.id;
a.textContent = T.skip;
a.addEventListener('click', function () { setTimeout(function () { target.focus({ preventScroll: true }); }, 0); });
document.body.insertBefore(a, document.body.firstChild);
}/* 10. Main content area (WCAG 1.3.1): pages with none (the home pages) get one */
if (target && !document.querySelector('main, [role="main"]') && !target.querySelector('footer, #footer')) {
target.setAttribute('role', 'main');
}/* 2. Form autofill (WCAG 1.3.5) */
var inputs = document.querySelectorAll('form input');
for (var i = 0; i < inputs.length; i++) {
var el = inputs[i];
if (el.getAttribute('autocomplete')) { continue; }
var n = (el.name || '').toLowerCase();
var l = ((el.labels && el.labels[0] && el.labels[0].textContent) || el.getAttribute('aria-label') || el.placeholder || '').toLowerCase().trim();
var v = null;
if (el.type === 'email') { v = 'email'; }
else if (el.type === 'tel' || (/phone|هاتف|جوال/.test(l) && !/mail|بريد/.test(l))) { v = 'tel'; }
else if (/first_name/.test(n)) { v = 'given-name'; }
else if (/last_name/.test(n)) { v = 'family-name'; }
else if (el.type === 'text' && /^(name|full name|الاسم|الإسم)\b/.test(l)) { v = 'name'; }
else if (el.type === 'url') { v = 'url'; }
if (v) { el.setAttribute('autocomplete', v); }
}/* 3. Language switcher (WCAG 2.4.4, 3.1.2): name the target language in that language */
var sw = document.querySelectorAll('a.lang-toggle');
for (var s = 0; s < sw.length; s++) {
var toAr = /\/ar(\/|$)/.test(sw[s].getAttribute('href') || '');
var name = toAr ? 'العربية' : 'English';
sw[s].setAttribute('aria-label', name);
sw[s].setAttribute('title', name);
sw[s].setAttribute('lang', toAr ? 'ar' : 'en');
sw[s].setAttribute('hreflang', toAr ? 'ar' : 'en');
var ims = sw[s].querySelectorAll('img');
for (var k = 0; k < ims.length; k++) { ims[k].setAttribute('alt', ''); }
}/* 4. Dark-mode button (WCAG 4.1.2): clear name, behaves as a toggle button that reports on/off */
var skins = document.querySelectorAll('a.change-skin');
function isDark() { return document.documentElement.classList.contains('dark-skin'); }
function syncSkin() { for (var q = 0; q < skins.length; q++) { skins[q].setAttribute('aria-pressed', isDark() ? 'true' : 'false'); } }
for (var d = 0; d < skins.length; d++) {
skins[d].setAttribute('role', 'button');
skins[d].setAttribute('aria-label', T.dark);
skins[d].setAttribute('title', T.dark);
skins[d].addEventListener('click', function () { setTimeout(syncSkin, 300); });
skins[d].addEventListener('keydown', function (e) { if (e.key === ' ') { e.preventDefault(); this.click(); } });
}
syncSkin();/* 5. Mobile menu (WCAG 4.1.2, 2.4.3): report open/closed, move focus in on open and back on close */
var btn = document.getElementById('mobile-menu-icon');
var panel = document.querySelector('.side-aside');
if (btn && panel) {
btn.setAttribute('role', 'button');
btn.setAttribute('aria-expanded', 'false');
if (!panel.id) { panel.id = 'aj-mobile-menu'; }
btn.setAttribute('aria-controls', panel.id);
var check = function (moveFocus) {
setTimeout(function () {
var open = visible(panel);
btn.setAttribute('aria-expanded', open ? 'true' : 'false');
if (open && moveFocus) {
var first = panel.querySelector('a[href]:not(.close-side-aside), button');
if (first) { first.focus(); }
}
if (!open && moveFocus === 'back') { btn.focus(); }
}, 450);
};
btn.addEventListener('click', function () { check(true); });
var closers = panel.querySelectorAll('.close-side-aside');
for (var c = 0; c < closers.length; c++) { closers[c].addEventListener('click', function () { check('back'); }); }
document.addEventListener('keydown', function (e) {
if (e.key === 'Escape' && btn.getAttribute('aria-expanded') === 'true') {
setTimeout(function () {
/* the theme closes the menu on Escape in English but not in Arabic */
var x = panel.querySelector('.close-side-aside');
if (visible(panel) && x) { x.click(); }
check('back');
}, 150);
}
});
}/* 6. Heading levels (WCAG 1.3.1): no jumps for screen readers; looks unchanged */
var hs = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
var prev = 0, hasH1 = !!document.querySelector('h1');
for (var h = 0; h < hs.length; h++) {
if (!visible(hs[h]) && !hs[h].closest('.side-aside')) { continue; }
var lvl = parseInt(hs[h].tagName.charAt(1), 10);
var eff = lvl;
if (!hasH1 && prev === 0) { eff = 1; }
else if (prev && lvl > prev + 1) { eff = prev + 1; }
if (eff !== lvl) { hs[h].setAttribute('aria-level', String(eff)); }
prev = eff;
}/* 7. Author photos: describe a linked photo by the author's name (it is the link's name); otherwise decorative */
var boxes = document.querySelectorAll('.about-author, .author-box, .m-a-box, .molongui-author-box');
for (var b = 0; b < boxes.length; b++) {
var pics = boxes[b].querySelectorAll('img');
for (var p = 0; p < pics.length; p++) {
var lk = pics[p].closest('a[href]');
var who = '';
if (lk) {
var byline = document.querySelector('a.author-name[href="' + lk.getAttribute('href') + '"]');
var strong = boxes[b].querySelector('.m-a-box-bio strong, [itemprop="name"]');
who = ((byline && byline.textContent) || (strong && strong.textContent) || '').trim();
}
if (lk && !who) { continue; } /* name not found: keep the existing description so the link keeps a name */
pics[p].setAttribute('alt', who);
}
}/* 9. "Opens in a new tab" for screen-reader users (W3C technique G201) */
var blanks = document.querySelectorAll('a[target="_blank"]');
for (var t = 0; t < blanks.length; t++) {
if (blanks[t].querySelector('.aj-newtab')) { continue; }
var sr = document.createElement('span');
sr.className = 'screen-reader-text aj-newtab';
sr.textContent = T.newTab;
blanks[t].appendChild(sr);
if (blanks[t].hasAttribute('aria-label')) { blanks[t].setAttribute('aria-label', blanks[t].getAttribute('aria-label') + T.newTab); }
}
}/* 8. Form errors (WCAG 3.3.1): link each error message to its field when it appears */
function linkErrors(root) {
var errs = (root || document).querySelectorAll('.ff-el-group .error, .ff-el-group .text-danger');
for (var e = 0; e < errs.length; e++) {
var grp = errs[e].closest('.ff-el-group');
var field = grp ? grp.querySelector('input:not([type=hidden]), select, textarea') : null;
if (!field) { continue; }
if (!errs[e].id) { errs[e].id = 'aj-err-' + Math.random().toString(36).slice(2, 9); }
var ids = (field.getAttribute('aria-describedby') || '').split(' ').filter(Boolean);
if (ids.indexOf(errs[e].id) === -1) { ids.push(errs[e].id); field.setAttribute('aria-describedby', ids.join(' ')); }
}
}
function watchForms() {
var forms = document.querySelectorAll('form.frm-fluent-form');
if (!window.MutationObserver) { return; }
for (var f = 0; f < forms.length; f++) {
new MutationObserver(function () { linkErrors(); }).observe(forms[f], { childList: true, subtree: true });
}
}function start() { run(); watchForms(); }
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }
})();
/* Aljaweea newsletter form (form 10): on Arabic pages, pre-select the Arabic edition.
2 Nov 2026 (Claude, runbook 8.82). Decision D-05 asks for the page language to be pre-selected through
the WPML translation of the field's default value; WPML does not offer that value for translation,
so this is the flagged fallback. The stored values stay "English" / "العربية" for the FluentCRM tag routing.
Rollback: set this snippet to Draft (the Arabic page then pre-selects English). */
(function () {
function run() {
if (!/^ar/i.test(document.documentElement.lang || '')) { return; }
var radios = document.querySelectorAll('form.fluent_form_10 input[type="radio"][name="dropdown"]');
for (var i = 0; i < radios.length; i++) {
if (radios[i].value === 'العربية') { radios[i].checked = true; radios[i].dispatchEvent(new Event('change', { bubbles: true })); }
}
}
/* Runs whether or not the page has finished loading (Breeze may delay scripts). */
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); }
})();
/* Aljaweea forms: let Fluent Forms show its own error messages.
2 Nov 2026 (Claude, runbook 8.86; finding V-1 of the 8.85 test). Without this, the browser's own email check
stops the form when an address has no "@" and shows the browser's pop-up in the browser's language (English on
Arabic pages for most visitors), so our message from the forms standard (1.4) never appears.
"novalidate" switches off only the browser's own check: Fluent Forms still checks every field in the browser
and again on the server, so a badly formed address is still refused - now with our wording, in the page language.
Rollback: set this snippet to Draft. */
(function () {
function run() {
var forms = document.querySelectorAll('form.frm-fluent-form');
for (var i = 0; i < forms.length; i++) { forms[i].setAttribute('novalidate', 'novalidate'); }
}
/* Runs whether or not the page has finished loading (Breeze may delay scripts). */
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); }
})();
ai_front = {"insertion_before":"BEFORE","insertion_after":"AFTER","insertion_prepend":"PREPEND CONTENT","insertion_append":"APPEND CONTENT","insertion_replace_content":"REPLACE CONTENT","insertion_replace_element":"REPLACE ELEMENT","visible":"VISIBLE","hidden":"HIDDEN","fallback":"FALLBACK","automatically_placed":"Automatically placed by AdSense Auto ads code","cancel":"Cancel","use":"Use","add":"Add","parent":"Parent","cancel_element_selection":"Cancel element selection","select_parent_element":"Select parent element","css_selector":"CSS selector","use_current_selector":"Use current selector","element":"ELEMENT","path":"PATH","selector":"SELECTOR"};