// ===== أفكار القدرات - الصفحة الموحدة ===== var afkarState = { main: 'quanti', // quanti | quali sub2: 'tasis', // tasis | tadrib sub3: 'bunuk', // bunuk | aqsam sub2l: 'bunuk-l' // bunuk-l | aqsam-l }; function afkarG(id) { return document.getElementById(id); } // ===== طي/فتح القائمة ===== function afkarToggleSidebar() { var sb = afkarG('afkar-sidebar'); var btn = document.getElementById('afkar-new-toggle'); sb.classList.toggle('collapsed'); if (sb.classList.contains('collapsed')) { btn.style.position = 'fixed'; btn.style.right = '0'; btn.style.left = 'auto'; btn.style.top = '96px'; btn.style.borderRadius = '8px 0 0 8px'; } else { btn.style.position = 'absolute'; btn.style.right = 'auto'; btn.style.left = '-28px'; btn.style.top = '96px'; btn.style.borderRadius = '8px 0 0 8px'; } } // ===== Breadcrumb ===== function afkarSetBreadcrumb(parts, coral) { var bc = afkarG('afkar-bc'); var dv = afkarG('afkar-div-bc'); if (!parts || !parts.length) { bc.className = 'afkar-breadcrumb'; dv.style.display = 'none'; return; } var html = ''; parts.forEach(function(p, i) { html += '' + p + ''; if (i < parts.length - 1) html += ''; }); bc.innerHTML = html; bc.className = 'afkar-breadcrumb show' + (coral ? ' coral' : ''); dv.style.display = 'block'; } // ===== Toggle 1: كمّي/لفظي ===== function afkarToggle1() { var tog = afkarG('afkar-tog-1'); var isLafzi = tog.classList.contains('lafzi'); if (!isLafzi) { tog.classList.add('lafzi'); afkarState.main = 'quali'; afkarG('afkar-wrap-2-km').style.display = 'none'; afkarG('afkar-wrap-3-td').style.display = 'none'; afkarG('afkar-wrap-2-lf').style.display = 'block'; afkarG('afkar-tog-2lf').classList.remove('right'); afkarState.sub2l = 'bunuk-l'; afkarSetBreadcrumb(['لفظي', 'بنوك'], true); afkarRenderBunukL(); } else { tog.classList.remove('lafzi'); afkarState.main = 'quanti'; afkarG('afkar-wrap-2-lf').style.display = 'none'; afkarG('afkar-wrap-2-km').style.display = 'block'; afkarG('afkar-wrap-3-td').style.display = 'none'; afkarG('afkar-tog-2').classList.remove('right'); afkarState.sub2 = 'tasis'; afkarSetBreadcrumb(['كمّي', 'تأسيس']); afkarRenderTasis(); } } // ===== Toggle 2: تأسيس/تدريب ===== function afkarToggle2() { var tog = afkarG('afkar-tog-2'); var isRight = tog.classList.contains('right'); if (!isRight) { tog.classList.add('right'); afkarState.sub2 = 'tadrib'; afkarG('afkar-wrap-3-td').style.display = 'block'; afkarG('afkar-tog-3').classList.remove('right'); afkarState.sub3 = 'bunuk'; afkarSetBreadcrumb(['كمّي', 'تدريب', 'بنوك']); afkarRenderBunukQ(); } else { tog.classList.remove('right'); afkarState.sub2 = 'tasis'; afkarG('afkar-wrap-3-td').style.display = 'none'; afkarSetBreadcrumb(['كمّي', 'تأسيس']); afkarRenderTasis(); } } // ===== Toggle 3: بنوك/أقسام كمّي ===== function afkarToggle3() { var tog = afkarG('afkar-tog-3'); var isRight = tog.classList.contains('right'); if (!isRight) { tog.classList.add('right'); afkarState.sub3 = 'aqsam'; afkarSetBreadcrumb(['كمّي', 'تدريب', 'أقسام']); afkarRenderAqsamQ(); } else { tog.classList.remove('right'); afkarState.sub3 = 'bunuk'; afkarSetBreadcrumb(['كمّي', 'تدريب', 'بنوك']); afkarRenderBunukQ(); } } // ===== Toggle 2L: بنوك/أقسام لفظي ===== function afkarToggle2L() { var tog = afkarG('afkar-tog-2lf'); var isRight = tog.classList.contains('right'); if (!isRight) { tog.classList.add('right'); afkarState.sub2l = 'aqsam-l'; afkarSetBreadcrumb(['لفظي', 'أقسام'], true); afkarRenderAqsamL(); } else { tog.classList.remove('right'); afkarState.sub2l = 'bunuk-l'; afkarSetBreadcrumb(['لفظي', 'بنوك'], true); afkarRenderBunukL(); } } // ===== مسح/إظهار المحتوى ===== function afkarShowPlaceholder(show) { var p = afkarG('afkar-placeholder'); var c = afkarG('afkar-content-area'); if (p) p.style.display = show ? 'flex' : 'none'; if (c) c.style.display = show ? 'none' : 'block'; } // ===== رسم تأسيس ===== function afkarRenderTasis() { afkarG('afkar-nav-content').innerHTML = `
أولاً: العمليات الحسابية
١) الأعداد الصحيحة
9 مواضيع
50%
1- الأعداد وخواصها
2- منازل الأعداد
3- ترتيب العمليات
4- القيمة المطلقة
٢) الكسور
12 مواضيع
1- تبسيط الكسور
2- جمع وطرح الكسور
٣) المعادلات
11 مواضيع
25%
1- حل المعادلات
2- تطبيقات المعادلات
`; afkarShowPlaceholder(true); } function afkarRenderBunukQ() { afkarG('afkar-nav-content').innerHTML = `
البنك [1]
البنك [2]
البنك [3]
`; afkarShowPlaceholder(true); } function afkarRenderAqsamQ() { afkarG('afkar-nav-content').innerHTML = `
القسم [1]
القسم [2]
`; afkarShowPlaceholder(true); } function afkarRenderBunukL() { afkarG('afkar-nav-content').innerHTML = `
١- التناظر اللفظي
التناظر اللفظي
13 بنك
البنك [1]
البنك [2]
٢- إكمال الجمل
إكمال الجمل
8 بنك
البنك [1]
البنك [2]
٣- الخطأ السياقي
الخطأ السياقي
6 بنك
٤- المفردة الشاذة
المفردة الشاذة
5 بنك
٥- استيعاب المقروء
استيعاب المقروء
10 بنك
`; afkarShowPlaceholder(true); } function afkarRenderAqsamL() { afkarG('afkar-nav-content').innerHTML = `
القسم [1]
القسم [2]
`; afkarShowPlaceholder(true); } function afkarTogTopic(id, group) { group.forEach(function(x) { if (x !== id) { var sb = afkarG('afkar-subs-' + x); var ar = afkarG('afkar-arr-' + x); var tp = afkarG('afkar-tp-' + x); if (sb) sb.className = 'afkar-subs'; if (ar) ar.className = 'afkar-arr'; if (tp) tp.className = 'afkar-topic'; } }); var s = afkarG('afkar-subs-' + id); var a = afkarG('afkar-arr-' + id); var tp = afkarG('afkar-tp-' + id); if (!s || !a) return; var open = s.classList.contains('show'); s.className = open ? 'afkar-subs' : 'afkar-subs show'; a.className = open ? 'afkar-arr' : 'afkar-arr open'; if (tp) tp.className = open ? 'afkar-topic' : 'afkar-topic open'; } function afkarLoadQuiz(quizId) { if (!quizId) return; afkarShowPlaceholder(false); var ca = afkarG('afkar-content-area'); // بناء رابط الاختبار مع embed mode var base = typeof aq_ajax !== 'undefined' ? '' : ''; var quizUrl = '/?p=' + quizId + '&afkar_embed=1'; ca.innerHTML = '
جاري تحميل الاختبار...
' + ''; } // تحديث أيقونة زر الطي // ===== شريط انتهاء الدورة ===== document.addEventListener('DOMContentLoaded', function() { var main = document.getElementById('afkar-main'); var bar = document.getElementById('afkar-expiry-bar'); if (!main || !bar) return; var expiryTs = parseInt(main.dataset.expiry) * 1000; var enrollTs = parseInt(main.dataset.enroll) * 1000; if (!expiryTs) return; var now = Date.now(); var expiry = new Date(expiryTs); var enroll = enrollTs ? new Date(enrollTs) : new Date(now); var total = expiryTs - enroll.getTime(); var elapsed = now - enroll.getTime(); var remaining = expiryTs - now; var pct = Math.min(98, Math.max(2, (elapsed / total) * 100)); var days = Math.floor(remaining / 86400000); var months = Math.floor(days / 30); var years = Math.floor(days / 365); // تحديد اللون بناء على نسبة المتبقي من المدة الكلية var remainPct = (remaining / total) * 100; var colorClass = remainPct > 33 ? 'green' : remainPct > 10 ? 'orange' : 'red'; var daysText = days <= 0 ? 'اليوم الأخير!' : days === 1 ? 'يوم واحد' : days < 11 ? days + ' أيام' : days + ' يوم'; var unitText = days <= 0 ? '' : 'متبقي'; var expFormatted = expiry.toLocaleDateString('ar-SA', {year:'numeric', month:'long', day:'numeric'}); var todayFormatted = new Date(now).toLocaleDateString('ar-SA', {month:'long', day:'numeric'}); bar.className = colorClass; bar.innerHTML = '
' + '
' + (days > 0 ? days.toLocaleString('ar-SA') : '!') + '
' + '
' + unitText + '
' + '
' + '
' + '
الوقت المتبقي لانتهاء الاشتراك
' + '
' + '
اليوم' + expFormatted + '
' + '
'; bar.style.display = 'flex'; }); // ===== شريط الأيقونات والمنبثقة ===== var afkarCurrentTool = null; // بناء HTML البحث ديناميكياً لتجنب تكرار IDs في DOM function afkarSearchHTML() { return `
ابحث
كمّي
لفظي
`; } function afkarOpenTool(tool) { var overlay = document.getElementById('afkar-modal-overlay'); var title = document.getElementById('afkar-modal-title'); var body = document.getElementById('afkar-modal-body'); // إزالة active من كل الأزرار document.querySelectorAll('.afkar-tool-btn').forEach(function(b){ b.classList.remove('active'); }); // إذا نفس الأداة — أغلق if (afkarCurrentTool === tool) { afkarCloseTool(); return; } afkarCurrentTool = tool; document.getElementById('atb-' + (tool === 'search' ? 'search' : tool === 'ideas' ? 'ideas' : tool === 'points' ? 'points' : 'review')).classList.add('active'); var titles = { search: ' ابحث عن سؤال', ideas: ' تدرّب بالأفكار', points: ' اكسب نقاط', review: ' مجلد المراجعة' }; title.innerHTML = titles[tool] || ''; if (tool === 'search') { body.innerHTML = afkarSearchHTML(); afkarInitSearch(); } else if (tool === 'ideas') { body.innerHTML = afkarIdeasHTML(); afkarInitIdeas(); } else if (tool === 'points') { body.innerHTML = afkarPointsHTML(); afkarInitPoints(); } else if (tool === 'review') { body.innerHTML = afkarReviewHTML(); afkarInitReview(); } else { body.innerHTML = '
قريباً...
'; } // أضف class الأداة للـ overlay overlay.className = 'afkar-modal-overlay show tool-' + tool; } function afkarCloseTool() { document.getElementById('afkar-modal-overlay').classList.remove('show'); document.querySelectorAll('.afkar-tool-btn').forEach(function(b){ b.classList.remove('active'); }); afkarCurrentTool = null; } function afkarOpenPen() { // البحث عن زر القلم بعدة selectors محتملة var pen = document.getElementById('aq-pen') || document.querySelector('.aq-pen-btn') || document.querySelector('[data-pen]') || document.querySelector('.wp-block-pen'); if (pen) { pen.click(); } else { console.warn('Afkar: لم يُعثر على زر القلم (#aq-pen). تأكد من وجوده في الصفحة.'); } var atbPen = document.getElementById('atb-pen'); if (atbPen) atbPen.classList.toggle('active'); } function afkarInitSearch() { // إعادة تهيئة أحداث البحث داخل المنبثقة var inp = document.getElementById('aq-sinp'); var tog = document.getElementById('aq-tog-wrap'); if (!inp || !tog) return; var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; var curType = 'k'; var sel = new Set(); var timer = null; var ar = ['٠','١','٢','٣','٤','٥','٦','٧','٨','٩','١٠','١١','١٢','١٣','١٤','١٥','١٦','١٧','١٨','١٩','٢٠']; function updSel(){ var n = sel.size; var info = document.getElementById('aq-sel-info'); var go = document.getElementById('aq-go-search'); if (info) info.textContent = (ar[Math.min(n,20)] || n) + ' سؤال مختار'; if (go) go.disabled = (n === 0); } tog.addEventListener('click', function(){ curType = curType === 'k' ? 'l' : 'k'; var km = curType === 'k'; var thumb = document.getElementById('aq-tog-thumb'); var tlk = document.getElementById('aq-tlk'); var tll = document.getElementById('aq-tll'); if (thumb) thumb.className = 'aq-tog-thumb ' + (km ? 'km' : 'lf'); if (tlk) tlk.className = 'aq-tog-lbl ' + (km ? 'on' : 'off'); if (tll) tll.className = 'aq-tog-lbl ' + (km ? 'off' : 'on'); if (inp) inp.placeholder = 'ابحث في ' + (km ? 'الكمّي...' : 'اللفظي...'); inp.value = ''; document.getElementById('aq-s-res').style.display = 'none'; sel.clear(); updSel(); }); inp.addEventListener('input', function(){ clearTimeout(timer); var v = this.value.trim(); if (v.length < 2) { document.getElementById('aq-s-res').style.display = 'none'; return; } timer = setTimeout(function(){ document.getElementById('aq-q-list').innerHTML = '
جاري البحث...
'; document.getElementById('aq-s-res').style.display = 'block'; var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function(){ document.getElementById('aq-q-list').innerHTML = xhr.responseText; var cnt = document.getElementById('aq-scnt'); if (cnt) cnt.textContent = document.querySelectorAll('.aq-q-card').length + ' نتيجة'; }; xhr.send('action=aq_search_questions&s=' + encodeURIComponent(v) + '§ion=' + curType + '&nonce=' + nonce); }, 280); }); document.addEventListener('click', function(e){ if (!e.target.closest('.aq-q-add')) return; e.stopPropagation(); var id = e.target.closest('.aq-q-add').dataset.id + ''; if (!id) return; sel.add(id); e.target.closest('.aq-q-card').classList.add('sel'); e.target.closest('.aq-q-add').innerHTML = ' تمت'; e.target.closest('.aq-q-add').classList.add('done'); updSel(); }); document.addEventListener('click', function(e){ if (!e.target.closest('#aq-add-all')) return; document.querySelectorAll('.aq-q-add:not(.done)').forEach(function(btn){ var id = btn.dataset.id + ''; if (id) { sel.add(id); btn.closest('.aq-q-card').classList.add('sel'); btn.innerHTML = ' تمت'; btn.classList.add('done'); } }); updSel(); }); document.addEventListener('click', function(e){ if (!e.target.closest('#aq-go-search')) return; var btn = e.target.closest('#aq-go-search'); btn.disabled = true; btn.innerHTML = ' جاري...'; var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function(){ var url = xhr.responseText.trim(); if (url === 'login') { alert('يرجى تسجيل الدخول أولاً'); } else if (url === 'no_questions') { alert('لا توجد أسئلة!'); } else { afkarCloseTool(); window.location.href = url; return; } btn.disabled = false; btn.innerHTML = ' ابدأ'; }; xhr.send('action=aq_create_search_quiz&ids=' + Array.from(sel).join(',') + '&nonce=' + nonce); }); updSel(); } // ===== حفظ واسترجاع الحالة ===== function afkarSave() { try { var state = JSON.stringify({ t1: document.getElementById('afkar-tog-1') && document.getElementById('afkar-tog-1').classList.contains('lafzi') ? 'lf' : 'km', t2: document.getElementById('afkar-tog-2') && document.getElementById('afkar-tog-2').classList.contains('right') ? 'tadrib' : 'tasis', sb: document.getElementById('afkar-sidebar') && document.getElementById('afkar-sidebar').classList.contains('collapsed') ? '1' : '0' }); localStorage.setItem('afkar_s', state); // حفظ في الخادم عبر AJAX var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; if (ajaxUrl) { var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('action=afkar_save_state&state=' + encodeURIComponent(state) + '&nonce=' + nonce); } } catch(e) {} } document.addEventListener('DOMContentLoaded', function() { var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; function applyState(st) { if (!st) return; try { var s = typeof st === 'string' ? JSON.parse(st) : st; if (s.t1 === 'lf') afkarToggle1(); else if (s.t2 === 'tadrib') afkarToggle2(); if (s.sb === '1') afkarToggleSidebar(); } catch(e) {} } // أولاً: حاول من الخادم، واستخدم localStorage كـ fallback if (ajaxUrl) { var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function() { var serverState = xhr.responseText.trim(); if (serverState && serverState !== '{}') { applyState(serverState); } else { applyState(localStorage.getItem('afkar_s')); } }; xhr.onerror = function() { applyState(localStorage.getItem('afkar_s')); }; xhr.send('action=afkar_get_state&nonce=' + nonce); } else { applyState(localStorage.getItem('afkar_s')); } // حفظ عند كل تغيير document.getElementById('afkar-tog-1') && document.getElementById('afkar-tog-1').addEventListener('click', function(){ setTimeout(afkarSave, 50); }); document.getElementById('afkar-tog-2') && document.getElementById('afkar-tog-2').addEventListener('click', function(){ setTimeout(afkarSave, 50); }); document.getElementById('afkar-new-toggle') && document.getElementById('afkar-new-toggle').addEventListener('click', function(){ setTimeout(afkarSave, 50); }); window.addEventListener('beforeunload', afkarSave); }); // ===== أفكار القدرات ===== function afkarIdeasHTML() { return `
القسم
كل الأسئلة
الوحدة
اختر الوحدة
الصعوبة
كل المستويات
الوقت
اختر قسماً لعرض الأسئلة
`; } var afkarIdeasTimeOn = false; function afkarTogTime(el) { afkarIdeasTimeOn = !afkarIdeasTimeOn; var trk = document.getElementById('aq-time-trk'); if (trk) trk.classList.toggle('on', afkarIdeasTimeOn); } function afkarUpdateIdeas() { var sec = document.getElementById('aq-sel-section').value; var unit = document.getElementById('aq-sel-unit').value; var diff = document.getElementById('aq-sel-diff').value; var cnt = document.getElementById('aq-ideas-cnt'); var btn = document.getElementById('aq-go-ideas'); var secVal = document.getElementById('aq-sec-val'); var unitVal = document.getElementById('aq-unit-val'); var diffVal = document.getElementById('aq-diff-val'); if (secVal) secVal.textContent = sec === 'km' ? 'كمّي' : sec === 'lf' ? 'لفظي' : 'كل الأسئلة'; if (diffVal) diffVal.textContent = diff === '1' ? 'سهل' : diff === '2' ? 'متوسط' : diff === '3' ? 'صعب' : 'كل المستويات'; if (!sec) { if (cnt) cnt.textContent = 'اختر قسماً لعرض الأسئلة'; if (btn) btn.disabled = true; return; } if (cnt) cnt.textContent = 'جاري الحساب...'; if (btn) btn.disabled = false; } function afkarStartIdeas() { var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; var sec = document.getElementById('aq-sel-section') ? document.getElementById('aq-sel-section').value : ''; var unit = document.getElementById('aq-sel-unit') ? document.getElementById('aq-sel-unit').value : ''; var diff = document.getElementById('aq-sel-diff') ? document.getElementById('aq-sel-diff').value : ''; var time = afkarIdeasTimeOn ? '1' : '0'; var btn = document.getElementById('aq-go-ideas'); if (btn) { btn.disabled = true; btn.innerHTML = ' جاري...'; } var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function() { var url = xhr.responseText.trim(); if (url === 'login') { alert('يرجى تسجيل الدخول'); } else if (url === 'no_questions') { alert('لا توجد أسئلة!'); } else { afkarCloseTool(); window.location.href = url; return; } if (btn) { btn.disabled = false; btn.innerHTML = ' ابدأ'; } }; xhr.send('action=aq_create_search_quiz§ion=' + sec + '&unit=' + unit + '&diff=' + diff + '&timed=' + time + '&nonce=' + nonce); } function afkarInitIdeas() { // تحديث قائمة الوحدات عند تغيير القسم var secSel = document.getElementById('aq-sel-section'); if (!secSel) return; secSel.addEventListener('change', function() { var unitSel = document.getElementById('aq-sel-unit'); var unitVal = document.getElementById('aq-unit-val'); if (!unitSel) return; var sec = this.value; // إعادة تعيين الوحدات حسب القسم unitSel.innerHTML = ''; if (unitVal) unitVal.textContent = 'كل الوحدات'; if (sec === 'km') { var units = ['الأعداد الصحيحة','الكسور','المعادلات','النسبة والتناسب','الهندسة','الإحصاء']; units.forEach(function(u) { var o = document.createElement('option'); o.value = u; o.textContent = u; unitSel.appendChild(o); }); } else if (sec === 'lf') { var units2 = ['التناظر اللفظي','إكمال الجمل','الخطأ السياقي','المفردة الشاذة','استيعاب المقروء']; units2.forEach(function(u) { var o = document.createElement('option'); o.value = u; o.textContent = u; unitSel.appendChild(o); }); } }); } // ===== اكسب نقاط ===== var afkarLevels = [ { name: 'مبتدئ', color: '#888', min: 0, max: 49 }, { name: 'ناشئ', color: '#4CAF50', min: 50, max: 149 }, { name: 'متقدم', color: '#2196F3', min: 150, max: 349 }, { name: 'محترف', color: '#9C27B0', min: 350, max: 699 }, { name: 'خبير', color: '#FF9800', min: 700, max: 1199 }, { name: 'أسطورة', color: '#F44336', min: 1200, max: 9999 } ]; function afkarGetLevel(pts) { for (var i = afkarLevels.length - 1; i >= 0; i--) { if (pts >= afkarLevels[i].min) return afkarLevels[i]; } return afkarLevels[0]; } function afkarPointsHTML() { return '
جاري التحميل...
'; } function afkarInitPoints() { var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; if (!ajaxUrl) return; var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function() { var container = document.getElementById('aq-pts-data'); if (!container) return; try { var data = JSON.parse(xhr.responseText); afkarRenderPoints(data); } catch(e) { container.innerHTML = '
تعذر التحميل
'; } }; xhr.onerror = function() { var container = document.getElementById('aq-pts-data'); if (container) container.innerHTML = '
تعذر التحميل
'; }; xhr.send('action=afkar_get_points&nonce=' + nonce); } function afkarRenderPoints(data) { var pts = data.points || 0; var ok = data.correct || 0; var err = data.wrong || 0; var total = data.total || 0; var lvl = afkarGetLevel(pts); var nextLvl = afkarLevels[Math.min(afkarLevels.indexOf(lvl) + 1, afkarLevels.length - 1)]; var pct = lvl === nextLvl ? 100 : Math.round(((pts - lvl.min) / (lvl.max - lvl.min + 1)) * 100); var icons = ['😐','🌱','🚀','💎','🔥','⚡']; var idx = afkarLevels.indexOf(lvl); var html = `
${icons[idx]}
${lvl.name}
${pts} نقطة
${lvl.min}
${nextLvl.min}
${ok}
صحيح
${err}
خطأ
${total}
إجمالي
`; // جدول المستويات html += '
جدول المستويات
'; var icons2 = ['😐','🌱','🚀','💎','🔥','⚡']; afkarLevels.forEach(function(l, i) { var isActive = l.name === lvl.name; html += '
'; html += '' + icons2[i] + ' ' + l.name + ''; html += '' + l.min + ' — ' + l.max + ''; html += '
'; }); html += '
'; var card = document.getElementById('aq-pts-data'); if (card) card.innerHTML = html; } function afkarStartPoints() { var ajaxUrl = typeof aq_ajax !== 'undefined' ? aq_ajax.url : ''; var nonce = typeof aq_ajax !== 'undefined' ? aq_ajax.nonce : ''; var btn = document.querySelector('.aq-pts-btn'); if (btn) { btn.disabled = true; btn.innerHTML = ' جاري...'; } var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxUrl); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function() { var url = xhr.responseText.trim(); if (url === 'login') { alert('يرجى تسجيل الدخول'); } else if (url === 'no_questions') { alert('لا توجد أسئلة!'); } else { afkarCloseTool(); window.location.href = url; return; } if (btn) { btn.disabled = false; btn.innerHTML = ' ابدأ'; } }; xhr.send('action=aq_create_points_quiz&nonce=' + nonce); } // ===== مجلد المراجعة ===== function afkarReviewHTML() { var floatBtn = document.getElementById('aq-float-review'); var href = floatBtn ? floatBtn.getAttribute('href') : '/?page_id=46665'; var sep = href.indexOf('?') !== -1 ? '&' : '?'; var embedUrl = href + sep + 'afkar_embed=1'; return ''; } function afkarInitReview() { // إضافة معالج لأخطاء تحميل الـ iframe var iframe = document.querySelector('#afkar-modal-body iframe'); if (!iframe) return; iframe.addEventListener('error', function() { this.style.display = 'none'; var msg = document.createElement('div'); msg.style.cssText = 'padding:40px;text-align:center;color:#aaa;font-size:13px;'; msg.innerHTML = 'تعذّر تحميل صفحة المراجعة'; this.parentNode.appendChild(msg); }); } // اعترض الضغط على الأيقونة العائمة في my-courses document.addEventListener('DOMContentLoaded', function() { var floatBtn = document.getElementById('aq-float-review'); if (floatBtn) { floatBtn.addEventListener('click', function(e) { e.preventDefault(); afkarOpenTool('review'); }); } }); // ===== مزامنة عداد المراجعة ===== document.addEventListener('DOMContentLoaded', function() { function syncReviewCount() { var src = document.getElementById('aq-float-count'); var dest = document.getElementById('atb-review-count'); if (!src || !dest) return; var n = parseInt(src.textContent) || 0; dest.textContent = n > 99 ? '99+' : n; dest.style.cssText += ';display:flex !important;' } setTimeout(syncReviewCount, 500); // مراقبة التغييرات var src = document.getElementById('aq-float-count'); if (src) { new MutationObserver(syncReviewCount).observe(src, { childList: true, subtree: true, characterData: true }); } }); https://afkaralqudurat.com/page-sitemap.xml 2026-06-02T07:25:04+00:00 https://afkaralqudurat.com/sfwd-courses-sitemap.xml 2026-06-02T04:44:40+00:00