';
}).join('');
var tagsHtml = s.tags.map(function(t) {
return '' + t + '';
}).join('');
return '
' +
'' +
'
';
}).join('');
}
function applyFilters() {
var sector = document.getElementById('f-sector').value;
var stage = document.getElementById('f-stage').value;
var type = document.getElementById('f-type').value;
var ministry = document.getElementById('f-ministry').value;
var search = document.getElementById('f-search').value.toLowerCase().trim();
var filtered = SCHEMES.filter(function(s) {
if (sector && sector !== 'all') {
if (!s.sectors.includes(sector) && !s.sectors.includes('all')) return false;
}
if (stage && stage !== 'all') {
if (!s.stages.includes(stage)) return false;
}
if (type) {
if (!s.types.includes(type)) return false;
}
if (ministry) {
if (s.ministryKey !== ministry) return false;
}
if (search) {
var haystack = (s.name + ' ' + s.desc + ' ' + s.tags.join(' ') + ' ' + s.ministry).toLowerCase();
if (!haystack.includes(search)) return false;
}
return true;
});
renderSchemes(filtered);
}
function clearFilters() {
document.getElementById('f-sector').value = '';
document.getElementById('f-stage').value = '';
document.getElementById('f-type').value = '';
document.getElementById('f-ministry').value = '';
document.getElementById('f-search').value = '';
applyFilters();
}
// Init
document.getElementById('total-count').textContent = SCHEMES.length + '+';
applyFilters();
' +
'
' +
'' +
'' +
'
' +
'' +
'
' +
'' + s.badge + '' +
'' + s.ministry + '
' +
'' + s.name + '
' +
'' + s.desc + '
' + '' + benefitsHtml + '
' +
'' +
'' +
'