/* 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(); });
}
});
تكشف قائمة “أقوى 100 قائد في السياحة والسفر بالشرق الأوسط 2026” الصادرة عن فوربس الشرق الأوسط عن الحضور المتزايد لقطاع الطيران بمختلف مكوناته، من شركات الطيران التجارية والمطارات إلى الطيران الخاص.
وتضم القائمة، وفق تصنيف فوربس، 11 قائدًا من شركات الطيران، و7 قادة من المطارات، و6 قادة من الطيران الخاص. ويعتمد التصنيف على مجموعة من المعايير تشمل حجم الأعمال، والأداء المالي والتشغيلي، والخبرة القيادية، والإنجازات الاستراتيجية خلال العامين 2025 و2026.
قادة شركات الطيران
صورة شخصية للشيخ أحمد بن سعيد آل مكتوم. صورة: مطارات دبي.
الشيخ أحمد بن سعيد آل مكتوم – طيران الإمارات | المركز الأول
يتصدر الشيخ أحمد بن سعيد آل مكتوم قائمة فوربس، ويتولى رئاسة مجلس الإدارة والرئاسة التنفيذية لطيران الإمارات ومجموعة الإمارات منذ تأسيس الناقلة العام 1985، ويُعد من أبرز الشخصيات القيادية في قطاع الطيران في دبي.
صورة شخصية لحمد الخاطر. صورة: الخطوط الجوية القطرية.
حمد الخاطر – الخطوط الجوية القطرية | المركز الثاني
يتولى حمد الخاطر منصب الرئيس التنفيذي لمجموعة الخطوط الجوية القطرية منذ ديسمبر 2025، بعد مسيرة في قطاع الطيران شملت منصب الرئيس التنفيذي للعمليات في مطار حمد الدولي، لينتقل إلى قيادة إحدى أكبر الناقلات الجوية في المنطقة.
صورة شخصية لإبراهيم العمر. صورة: مجموعة السعودية.
إبراهيم العمر – مجموعة السعودية | المركز 16
يشغل إبراهيم العمر منصب المدير العام لمجموعة السعودية منذ العام 2020، ويشرف على الناقل الوطني السعودي والشركات التابعة للمجموعة، كما يرأس مجلس إدارة طيران شركة “أديل” والاتحاد العربي للنقل الجوي.
صورة شخصية لأنطونو ألدو نيفيس. صورة: مجموعة الاتحاد للطيران.
أنطونوالدو نيفيس – مجموعة الاتحاد للطيران | المركز 24
يقود أنطونوالدو نيفيس مجموعة الاتحاد للطيران منذ العام 2022، بعد مسيرة شملت قيادة شركات طيران دولية، من بينها TAP Air Portugal وAzul Airlines، إلى جانب خبرة سابقة في McKinsey & Company.
صورة شخصية لبندر المهنا. صورة: طيران ناس.
بندر المهنا – طيران ناس | المركز 29
يتولى بندر المهنا منصب الرئيس التنفيذي والعضو المنتدب لطيران ناس، بعد انضمامه إلى الشركة العام 2006 وتدرجه في مناصب قيادية وصولًا إلى منصبه الحالي. وقاد خلال السنوات الأخيرة توسع الناقلة ودخولها سوق الأسهم السعودية.
صورة شخصية لغيث الغيث. صورة: فلاي دبي.
غيث الغيث – فلاي دبي | المركز 30
يقود غيث الغيث فلاي دبي منذ تأسيسها عام 2008، وكان له دور في توسع الناقلة منخفضة التكلفة من شركة محلية إلى شبكة إقليمية ودولية واسعة تربط دبي بعدد كبير من الوجهات.
صورة شخصية لأحمد عادل. صورة: الشركة القابضة لمصر للطيران.
أحمد عادل – الشركة القابضة لمصر للطيران | المركز 43
يتولى أحمد عادل رئاسة مجلس الإدارة والعضو المنتدب التنفيذي للشركة القابضة لمصر للطيران، بعد أن شغل المنصب سابقًا، ويشرف على المجموعة وشركاتها التابعة وفي مقدمتها مصر للطيران.
عبد الحميد عدو يتحدث في إحدى الفعاليات. صورة: الخطوط الملكية المغربية.
عبد الحميد عدو – الخطوط الملكية المغربية | المركز 45
يتولى عبد الحميد عدو منصب الرئيس المدير العام للخطوط الملكية المغربية منذ 2016، ويقود الناقلة الوطنية المغربية في مرحلة توسع ترتبط بتعزيز حضور المغرب الجوي، خصوصًا بين أوروبا وأفريقيا وبقية الأسواق الدولية.
صورة شخصية لسامر المجالي. صورة: الملكية الأردنية.
سامر المجالي – الملكية الأردنية | المركز 78
يشغل سامر المجالي منصب نائب رئيس مجلس الإدارة والرئيس التنفيذي المعيّن للملكية الأردنية، ويملك خبرة طويلة في صناعة الطيران، إذ سبق له قيادة الناقلة الأردنية في مراحل مختلفة.
صورة شخصية لحسين شريف. صورة: إير كايرو.
حسين شريف – إير كايرو | المركز 89
يتولى حسين شريف رئاسة مجلس الإدارة والرئاسة التنفيذية لشركة إير كايرو، بعد عودته إلى قيادة الشركة في نوفمبر 2025، ويواصل العمل على توسعة شبكة الناقلة وتعزيز حضورها في الأسواق الدولية.
صورة شخصية لعادل العلي. صورة: العربية للطيران.
عادل العلي – العربية للطيران | المركز 92
أسس عادل العلي العربية للطيران العام 2003، ويقود منذ ذلك الحين واحدة من أبرز شركات الطيران الاقتصادي في الشرق الأوسط وشمال أفريقيا، مع توسع عملياتها إلى أسواق آسيوية وأوروبية.
قادة المطارات
صورة شخصية لرائد الإدريسي. صورة: مطارات القابضة.
رائد الإدريسي – مطارات القابضة | المركز 5
يتولى رائد الإدريسي منصب الرئيس التنفيذي لشركة مطارات القابضة، التي تشرف على منظومة المطارات السعودية وتعمل على تطوير نموذج تشغيل المطارات وتعزيز مشاركة القطاع الخاص فيها.
صورة شخصية لبول غريفيث. صورة: مطارات دبي.
بول غريفيث – مطارات دبي | المركز 8
يشغل بول غريفيث منصب الرئيس التنفيذي لمطارات دبي منذ تأسيس الشركة عام 2007، ويشرف على مطار دبي الدولي ومطار آل مكتوم الدولي، في واحدة من أهم منظومات المطارات في المنطقة.
صورة شخصية لأحمد جمعة الشامسي. صورة: مطارات أبوظبي.
أحمد جمعة الشامسي – مطارات أبوظبي | المركز 13
تولى أحمد جمعة الشامسي منصب الرئيس التنفيذي لمطارات أبوظبي في يناير 2026، بعد مسيرة طويلة داخل قطاع المطارات، ويشرف على المطارات التجارية التابعة للإمارة، وفي مقدمتها مطار زايد الدولي.
صورة شخصية لعادل الفقير. صورة: مطارات المغرب.
عادل الفقير – مطارات المغرب | المركز 35
يتولى عادل الفقير منصب المدير العام لمطارات المغرب، بعد خبرة في قطاع السياحة والطيران، ويقود منظومة المطارات المغربية في مرحلة تشهد توسعًا في حركة السفر والبنية التحتية الجوية.
صورة شخصية لعلي سالم المدفع. صورة: هيئة مطار الشارقة.
علي سالم المدفع – هيئة مطار الشارقة | المركز 47
يرأس علي سالم المدفع هيئة مطار الشارقة منذ 2014، ويملك خبرة تمتد لسنوات في إدارة الطيران والمطارات، ويشرف على تطوير المطار وتوسعة قدراته التشغيلية.
صورة شخصية لأندرو تايلر سميث. صورة: مطار البحر الأحمر الدولي.
أندرو تايلر-سميث – مطار البحر الأحمر الدولي | المركز 66
يتولى أندرو تايلر-سميث منصب الرئيس التنفيذي لمطار البحر الأحمر الدولي منذ 2025. ويرتبط المطار بتطوير وجهتي البحر الأحمر وأمالا، ما يجعله جزءًا من استراتيجية ربط الوجهات السياحية الجديدة بشبكة الطيران الدولية.
صورة شخصية لماركو ميخيا. صورة: مطار الملك سلمان الدولي.
ماركو ميخيا – مطار الملك سلمان الدولي | المركز 82
يشغل ماركو ميخيا منصب الرئيس التنفيذي بالإنابة لشركة تطوير مطار الملك سلمان الدولي، المشروع الضخم في الرياض الذي يستهدف إنشاء مركز جوي عالمي جديد يخدم خطط المملكة لتوسيع دور العاصمة كمركز للسفر والأعمال.
قادة الطيران الخاص
صورة شخصية لمحمود الهاملي. صورة: مجموعة طيران أبوظبي.
محمود الهاملي – مجموعة أبوظبي للطيران | المركز 57
يتولى محمود الهاملي منصب الرئيس التنفيذي لمجموعة أبوظبي للطيران، التي تنشط في مجالات تشمل الطيران الخاص، وتشغيل الطائرات، والصيانة والإصلاح والعمرة، إلى جانب خدمات جوية متخصصة.
صورة شخصية لأرنو مارتينيز. صورة: شركة المروحيات.
أرنو مارتينيز – The Helicopter Company | المركز 79
يقود أرنو مارتينيز شركة الطائرات المروحية (The Helicopter Company) السعودية منذ إطلاقها، وهي شركة مملوكة لصندوق الاستثمارات العامة وتقدم خدمات الطيران العمودي، بما فيها الرحلات الخاصة والسياحية والخدمات الجوية المتخصصة.
صورة شخصية لبول دي ساليس. صورة: رويال جيت.
بول دي ساليس – RoyalJet | المركز 86
يتولى بول دي ساليس منصب الرئيس التنفيذي لشركة رويال جيت (RoyalJet)، المتخصصة في خدمات الطيران الخاص وإدارة الطائرات وتأجير الطائرات التنفيذية، وتتخذ من أبوظبي مقرًا لها.
عادل مارديني. صورة: جيتكس.
عادل مارديني – Jetex | المركز 88
أسس عادل مارديني شركة جيتكس (Jetex) العام 2005، وتعمل في مجال خدمات الطيران الخاص وإدارة مرافق كبار الشخصيات وخدمات المناولة للطائرات التنفيذية، مع شبكة دولية من المحطات.
صورة شخصية لهادي معوض. صورة: إكسيكيوجت الشرق الأوسط.
هادي معوض – ExecuJet Middle East | المركز 94
يقود هادي معوض إكسيكوجيت الشرق الأوسط ( ExecuJet Middle East ) منذ تأسيسها، وهي شركة متخصصة في الطيران التنفيذي وإدارة الطائرات وخدمات المناولة الأرضية للطائرات الخاصة، مع حضور في مطارات رئيسية في دبي.
صورة شخصية لأحمد أبو غزالة. صورة: ديل مونتي.
أحمد أبو غزالة – International Wings Group | المركز 95
يشغل أحمد أبو غزالة منصب الرئيس التنفيذي ونائب رئيس مجلس إدارة مجموعة الأجنحة الدولية (International Wings Group)، التي تضم شركات تعمل في الطيران الخاص، وإدارة الطائرات، والإخلاء الطبي، إضافة إلى مؤسسات للتدريب والتعليم في مجال الطيران.
توزيع قادة الطيران الـ 24 في الشرق الأوسط ضمن قائمة فوربس لقادة السياحة والسفر لعام 2026. رسم بياني: الجوية، المصدر: Forbes Lists.
ثلاث واجهات لصناعة واحدة
ورغم أن فوربس تفصل بين شركات الطيران والمطارات والطيران الخاص في تصنيفها، فإن جمع هذه الأسماء في قراءة واحدة يوضح اتساع منظومة الطيران في الشرق الأوسط. فالناقلات التجارية تعمل على توسيع شبكاتها وتجديد أساطيلها، والمطارات تستثمر في زيادة الطاقة الاستيعابية وتطوير بنيتها التحتية، بينما يتحرك الطيران الخاص في سوق مختلفة تعتمد على الرحلات التنفيذية والسياحية والخدمات المتخصصة.
وتأتي هذه التحركات في ظل نمو قطاع السياحة والسفر في الشرق الأوسط، الذي سجل وفق فوربس نموًا بنسبة 5.3 في المئة خلال العام 2025، فيما بلغت مساهمته في الناتج المحلي للمنطقة 385.8 مليار دولار. وفي الوقت نفسه، واجه قطاع الطيران خلال العام 2026 تحديات مرتبطة بالتوترات الجيوسياسية واضطرابات المجال الجوي.
وهكذا، لا تعكس قائمة فوربس أسماء قادة شركات فحسب، بل تقدم صورة عن ثلاثة مسارات متوازية في صناعة الطيران بالشرق الأوسط: الناقلات التي تربط الأسواق، والمطارات التي تبني مراكز الحركة، والطيران الخاص الذي يوسع سوق الخدمات الجوية المتخصصة.
ابقوا على اطلاع دائم. احصلوا على أحدث أخبار الطيران والفضاء في العالم العربي لحظة نشرها عبر واتساب وتيليغرام، أو اشتركوا بنشرتنا البريدية لتصلكم نشرة أسبوعية. كما يمكنكم إضافتنا إلى مصادركم المفضلة لتظهر لكم أخبارنا بشكل أوسع في بحث 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"};