// ===== أفكار القدرات - الصفحة الموحدة =====
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 مواضيع
1- الأعداد وخواصها
2- منازل الأعداد
3- ترتيب العمليات
4- القيمة المطلقة
٢) الكسور
12 مواضيع
1- تبسيط الكسور
2- جمع وطرح الكسور
٣) المعادلات
11 مواضيع
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 =
'
';
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.xml2026-06-02T07:25:04+00:00https://afkaralqudurat.com/sfwd-courses-sitemap.xml2026-06-02T04:44:40+00:00