`;
}).join('');
return true;
};
window.filterData = function() {
const searchInput = document.getElementById('verbSearch');
const query = (searchInput ? searchInput.value : '').toLowerCase().trim();
const filtered = verbs.filter(v => {
const matchesSearch = v.v1.toLowerCase().includes(query) ||
v.m1.includes(query) ||
v.id.toString() === query;
const matchesCat = currentCat === "All" || v.cat === currentCat;
return matchesSearch && matchesCat;
});
renderCards(filtered);
};
window.setCategory = function(cat) {
currentCat = cat;
document.querySelectorAll('.cat-btn').forEach(btn => {
btn.className = "cat-btn px-4 py-2 rounded-full glass-card hover:bg-white/80 transition-all font-medium text-xs";
if(btn.innerText.includes(cat) || (cat === "All" && btn.innerText === "সবগুলো")) {
btn.className = "cat-btn px-4 py-2 rounded-full bg-indigo-600 text-white font-semibold shadow-lg text-xs scale-105";
}
});
filterData();
};
let quizPool = [], qIdx = 0, score = 0;
window.startQuiz = function() {
quizPool = [...verbs].sort(() => 0.5 - Math.random()).slice(0, 10);
qIdx = 0; score = 0;
document.getElementById('quiz-intro').classList.add('hidden');
document.getElementById('quiz-result').classList.add('hidden');
document.getElementById('quiz-container').classList.remove('hidden');
loadQuestion();
};
function loadQuestion() {
const v = quizPool[qIdx];
const type = Math.random() > 0.5 ? 'V2' : 'V3';
const correct = type === 'V2' ? v.v2.split('/')[0] : v.v3.split('/')[0];
document.getElementById('q-idx').innerText = qIdx + 1;
document.getElementById('q-score').innerText = score;
document.getElementById('question-txt').innerText = `What is the ${type} form of...`;
document.getElementById('target-verb').innerHTML = `#${v.id} ${v.v1.toUpperCase()}`;
let opts = [correct];
while(opts.length < 4) {
let rv = verbs[Math.floor(Math.random() * verbs.length)];
let rf = Math.random() > 0.5 ? rv.v2.split('/')[0] : rv.v3.split('/')[0];
if(!opts.includes(rf)) opts.push(rf);
}
opts.sort(() => 0.5 - Math.random());
const grid = document.getElementById('quiz-options');
grid.innerHTML = '';
document.getElementById('quiz-feedback').classList.add('hidden');
opts.forEach(o => {
const b = document.createElement('button');
b.className = "p-3 md:p-4 rounded-xl md:rounded-2xl glass-card text-sm md:text-lg font-bold hover:bg-white transition-all border-2 border-transparent break-all font-sans";
b.innerText = o;
b.onclick = () => {
document.querySelectorAll('#quiz-options button').forEach(x => x.disabled = true);
if(o === correct) {
score++; b.classList.add('border-green-500', 'bg-green-50');
document.getElementById('feedback-msg').innerText = "সঠিক উত্তর! 🌟";
document.getElementById('feedback-msg').className = "text-green-600 text-xl font-bold mb-4 font-bengali";
} else {
b.classList.add('border-red-500', 'bg-red-50');
document.getElementById('feedback-msg').innerText = `ভুল উত্তর! সঠিক ছিল: ${correct}`;
document.getElementById('feedback-msg').className = "text-red-600 text-xl font-bold mb-4 font-bengali";
}
document.getElementById('quiz-feedback').classList.remove('hidden');
};
grid.appendChild(b);
});
}
window.loadNextQuestion = function() {
qIdx++;
if(qIdx < 10) loadQuestion();
else {
document.getElementById('quiz-container').classList.add('hidden');
document.getElementById('quiz-result').classList.remove('hidden');
document.getElementById('res-score').innerText = `আপনার স্কোর: ${score}/10`;
document.getElementById('res-comment').innerText = score > 7 ? "চমৎকার! আপনি খুব ভালো করেছেন।" : "আরও প্র্যাকটিস করুন!";
}
};
const bootstrap = setInterval(() => {
const grid = document.getElementById('verbGrid');
if (grid) {
const success = renderCards(verbs);
if (success && grid.innerHTML.indexOf('glass-card') !== -1) clearInterval(bootstrap);
}
}, 250);
setTimeout(() => clearInterval(bootstrap), 10000);
})();