/* 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(); });
}
});
بزيادة الخيارات والمسارات وتسهيل الإجراءات مع الحفاظ على ضوابط تنظيمية وسيادية
العلاقات الجوية الكويتية المصرية نحو شراكة استراتيجية أكثر انفتاحا وتنافسية
بعد أن كانتا تتبعان سياسات تقليدية محافظة، تعمل دولة الكويت وجمهورية مصر العربية خلال السنوات الأخيرة على تعزيز علاقتهما في مجال النقل الجوي المدني من خلال توقيع مذكرات تفاهم مثلت نقطة تحول نحو مرحلة أكثر انفتاحا من التعاون، وذلك بالاضافة الى عقد محادثات ثنائية بشكل متواصل وتصريحات رسمية لمسؤولين من الجانبين في مناسبات عدة تؤكد سعي الطرفين إلى شراكة طيران مدني استراتيجية طويلة المدى، ربما تثمر في المستقبل الوصول الى مرحلة السماء المفتوحة. فماهي أهم محطات التعاون الجوي الكويتي المصري؟ وكيف ساهمت في تعزيز جسور الربط الجوي؟
تعود جذور التعاون الجوي المدني بين الكويت ومصر الى منتصف القرن العشرين، حيث سيّرت الخطوط الجوية الكويتية أول رحلة تجارية بين البلدين في العام ١٩٥٦، فيما بدأت مصر تشغيل رحلات مجدولة الى الكويت بعد توقيع اتفاقيات النقل الجوي الثنائية بين مصر ودول الخليج في أوائل السبعينات.
Kuwait Airways Boeing 707-369C 9K-ACL “Al-Jahra” / Credit: Photo by Kambui – Wikimedia Commons / License: CC BY 2.0 (Modified) / Source:click on the image
وكانت الاتفاقيات في المجال الجوي بين مصر ودول الخليج محافظة بهدف حماية الناقلات الوطنية ووضع قواعد ثابتة للتبادل الجوي، باعتبار أنها كانت تشمل تقييدات على عدد شركات التعيين، بالاضافة إلى جداول رحلات مقنّنة، وحدود لسعة المقاعد. وكان هذا النهج ممارسة شائعة في الطيران الدولي لحماية المصالح الوطنية، إلا أن هناك توجهاً حديثاً نحو التوسع والتحرير.
وفي يونيو ١٩٨٨، وقعت الدولتان اتفاق الخطوط الجوية المنتظمة والملحق المرفق به. وينظم هذا الاتفاق الخدمات الجوية بين البلدين، والتي تؤسس الإطار القانوني لتشغيل الرحلات المجدولة، وتشمل تعريف الخدمات والحقوق الممنوحة للطرفين وتصنيف الخطوط المتفق عليها وآليات تسمية الناقلين ومنح التصاريح التشغيلية واشتراطات الرقابة التنظيمية بالاضافة الى أحكام عن السعات والجدول الزمني، الى جانب بنود عن السلامة الجوية والأمن ورسوم المستخدمين، والاعفاءات الجمركية، وآلية تسوية النزاعات.
وحسب الاتفاقيات القديمة وإعلانات التحديث يحق للناقلات المصرّح لها من كل طرف سواء مصر أو الكويت إجراء رحلات جوية منتظمة بين نقاط محددة (القاعدتان التقليديتان: القاهرة ↔ الكويت)، الأمر الذي يمنح عادةً الحق في الإقلاع والهبوط لأغراض نقل الركاب والبضائع على المسارات المتفق عليها، مع إبقاء قيود على النقل الداخلي داخل الدولة الأخرى (cabotage) ما لم يُمنح صراحة.
وفي البداية، كانت كل من الخطوط الجوية الكويتية والخطوط الجويةالمصرية هما الناقلان الرسميان الوحيدان الذين يسيّران رحلات بين الكويت ومصر، ضمن الاتفاقيات الثنائية التقليدية للنقل الجوي بين البلدين، والتي تحصر تشغيل الرحلات المجدولة بين شركات البلدين الرسمية فقط.
EgyptAir Airbus A300B4-203 Horus in 1985 / Credit: Photo by Pete Macklin – Wikimedia Commons / Licence: CC BY 2.0. (Modified) / Source: click on the image
وتمهيدا لانفتاح السوق على شركات أخرى، اضافة للناقلين الوطنيين التقليديين، بدأ طيران الجزيرة في تسيير رحلات الى الاسكندرية والأقصر في ٢٠٠٦.
من جانبها، أطلقتاير كايرو أولى رحلاتها الى الكويت في يونيو ٢٠١٢ من مطار برج العرب- الاسكندرية.
كما أطلقت شركة “العربية للطيران مصر” (Air Arabia) أولى رحلاتها بين الكويت ومصر في نوفمبر ٢٠١٢. وواصلت كل هذه الشركات العمل مع توسيع مساراتها باضافة خطوط رحلات مباشرة جديدة بين الكويت ومطارات عدة داخل مصر. (Air Arabia Egypt news)
نقطة تحول
وفي نقطة تحول تهدف لتعزيز التعاون وزيادة الربط الجوي، بالانتقال من نموذج شبه حمائي الى نموذج أكثر انفتاحا وتنافسية يسمح بخيارات أوسع للمسافرين، وقعت دولة الكويت ومصر في يناير ٢٠١٩ مذكرة تعاون فني سمحت لشركات النقل الجوي في البلدين بزيادة السعات التشغيلية ومنحتهم حق التشغيل باستخدام المشاركة بالرموز. كما تم الاتفاق على جدول طرق جديد يحل محل جدول الطرق المتفق عليه سابقاً.
وفي خطوة استراتيجية اضافية تفتح المجال أمام مرحلة تطويرية وتوسعية في الربط الجوي، خصوصاً مع تزايد الطلب السياحي والتجاري، وقّعت مصر والكويت في سبتمبر ٢٠٢٤ مذكرة تفاهم تسمح بزيادة اضافية في القدرة الركابية وبمزيد من الرحلات ولكن ضمن إطار تحكّم ثنائي.
وبدأ العمل بهذه المذكرة في أكتوبر ٢٠٢٥ بين مطار الكويت الدولي ومطاري القاهرة وسفنكس، باعتبار أن السعة التشغيلية مع باقي المطارات المصرية مفتوحة باتفاق الطرفين الكويتي والمصري.
Logo of Directorate General of Civil AviationLogo of Egyptian Civil Aviation Authority
رغبة سياسية
وفي تصريحات صحافية لوكالة الأنباء الكويتية “كونا” عقب مراسم التوقيع، قال رئيس الإدارة العامة للطيران المدني الكويتي الشيخ م. حمود مبارك الحمود الصباح، إن المذكرة تهدف لرفع عدد المقاعد المتاحة. كما أنها تشمل “تحديث الترتيبات الفنية” لتشغيل شركات الطيران من الجانبين، أي مراجعة الشروط التشغيلية بين الناقلات الكويتية والمصرية.
وأكد أن المذكرة ستنعكس إيجابا على السعة التشغيلية للركاب بين البلدين، مشيرا إلى أنها ستخدم سوق النقل الجوي بين الكويت ومصر والذي يشهد زيادة في عدد الرحلات والركاب، كما أنها ستصب في مصلحة شركات الطيران الناقلة للركاب.
وخلال زيارته القاهرة، التقى الوفد الكويتي مع وزير الطيران المدني المصري سامح الحفني، الذي رحب بتوقيع المذكرة، مؤكدا الحرص على تطوير العلاقات مع الكويت خاصة في سوق النقل الجوي بما يخدم المسافرين لكلا البلدين.
وأعرب الحفني عن ثقته بأن المذكرة ستسهم في تلبية الطلب الذي يشهده سوق النقل الجوي وسترفع من السعة التشغيلية للناقلين الجويين من كلا البلدين، معتبرا هذه الخطوة ترجمة لرغبة القيادتين السياسيتين في الكويت ومصر.
Cairo, Egypt / Credit: Photo by Nina R – Wikimedia Commons / Licence: CC BY 2.0. (Modified) / Source: Click on the image
نقل الخبرات
وفي يوليو 2025، زار وزير الطيران المدني المصري سامح الحفني الكويت والتقى مجددا رئيس الإدارة العامة للطيران المدني الكويتي الشيخ م. حمود مبارك الحمود الصباح. وبحث الجانبان توسيع آفاق التعاون في صناعة النقل الجوي، بما في ذلك الجوانب الفنية والتنظيمية، وأعربا عن تطلعهما لتعزيز التعاون في المجالات المرتبطة بالطيران المدني، وعلى رأسها مجالات التدريب ونقل الخبرات والاستثمار في قطاع المطارات.
وأكد الحفني أن عمق العلاقات المصرية الكويتية يمثل نموذجًا للتعاون العربي البناء، مشيراً إلى أن قطاع الطيران المدني المصري يشهد في المرحلة الحالية عملية تطوير شاملة في بنيته التحتية والخدمات التشغيلية، ما يوفر فرصاً واعدة لإقامة شراكات بناءه مع الدول الشقيقة وفي مقدمتها دولة الكويت، لافتا إلى أن هذه الشراكات تُسهم في دعم المنظومة الإقليمية للنقل الجوي وتعزز من قدراتها التنافسية.
من جهته، أعرب الشيخ حمود مبارك الحمود الجابر الصباح عن تقديره للزيارة التي تعكس عمق العلاقات الاستراتيجية بين البلدين، مؤكدا دعم دولة الكويت الكامل لمصر في إنتخابات منظمة الطيران المدني الدولي “إيكاو”.
Kuwait City Skyline / Credit: Photo by Zairon – Wikimedia Commons / Licence: CC BY 4.0. (Modified) / Source: Click on the image
تعاون استثماري
وعلى صعيد التعاون الاستثماري، الذي يعزز الربط الجوي على المدى الطويل، لأنه لا يقتصر على الرحلات فقط بل يشمل البنية التحتية، أعلنت شركة بودي كورب الكويتية التي تعمل في مجالات عدة من بينها قطاعات النقل والطيران والبناء والهندسة، عن اهتمامها بالاستثمار في قطاع الطيران والبنية التحتية في مصر، بما في ذلك المطارات المصرية.
جاء ذلك خلال لقاء في فبراير الماضي بالقاهرة بين وفد من الشركة، ووزير الاستثمار والتجارة الخارجية المصري م.حسن الخطيب، الذي صرح وقتها أن الشركة تعمل في سبعة مطارات مصرية، وسوف تتم زيادتها إلى تسعة مطارات، من خلال إضافة مطاري العلمين والغردقة.
توقيع اتفاقيات ومذكرات التفاهم وتبادل الزيارات الرسمية وادلاء المسؤولين بتصريحات تؤكد تعزيز التعاون الفني والتنظيمي والاستثماري، كلها خطوات تدعم انفتاحا جويا مُنظّماً يزيد من الخيارات والمسارات المتاحة أمام الركاب، ويسهل الإجراءات مع الحفاظ على ضوابط تنظيمية وسيادية (سلامة، أمن، شروط ترخيص)، ويُحفّز النمو السياحي والتشغيلي وسط سوق سفر متنام بين البلدين، فاستنادا الى أرقام تقديرية مبنية على جداول شركات الطيران العامة ومحركات الحجز، تقدر إجمالي الرحلات المدنية الأسبوعية المباشرة بين الكويت ومختلف مطارات مصر بما بين 60 و75 رحلة مباشرة أسبوعياً (مع تباين حسب الموسم)، مع العلم أن هذا الرقم لا يشمل رحلات الترانزيت الطويلة ورحلات الشحن أو الرحلات الخاصة.
9K-CBE – Airbus A320-251N – Jazeera Airways Fly off / Credit: Photo by Uzeyir Mikayil – Wikimedia Commons / Licence: CC BY4.0. (Modified) / Source: Click on the image
ابقوا على اطلاع دائم. احصلوا على أحدث أخبار الطيران والفضاء في العالم العربي لحظة نشرها عبر واتساب وتيليغرام، أو اشتركوا بنشرتنا البريدية لتصلكم نشرة أسبوعية. كما يمكنكم إضافتنا إلى مصادركم المفضلة لتظهر لكم أخبارنا بشكل أوسع في بحث 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"};