Promotional Banner - Delivery in 2-3 hours, Quality & Original, Delivered

Computer networks

New Sale
100mm Inner & Outer Corner Trunking Bends
New Sale
12U 600x450 Cabinet

12U 600x450 Cabinet

Cabinet (64-12U600*450*640MM)
from 1 P 2,273.00 Incl. 0.16% VAT
New Sale
25mm Rigid PVC Conduit
New Sale
32mm Rigid PVC Conduit
New Sale
600mm x 450mm Cabinet Tray

600mm x 450mm Cabinet Tray

Model: Tray 6450
from 1 P 623.90 Incl. 0.16% VAT
New Sale
600mm x 600mm Cabinet Tray

600mm x 600mm Cabinet Tray

Model: Tray 6600
from 1 P 644.87 Incl. 0.16% VAT
New Sale
800mm x 1000mm Cabinet Tray

800mm x 1000mm Cabinet Tray

Model: Tray 6842U
from 1 P 725.47 Incl. 0.16% VAT
New Sale
Aico Cat6 48 Port Patch panel

Aico Cat6 48 Port Patch panel

Brand: Aico
from 1 P 1,209.16 Incl. 0.16% VAT
New Sale
APKR Rotary Fan

APKR Rotary Fan

Brand: APKR
from 1 P 209.62 Incl. 0.16% VAT
New Sale
APS 12U 600*600 Cabinet

APS 12U 600*600 Cabinet

Brand: APC
from 1 P 3,063.05 Incl. 0.16% VAT
document.addEventListener('DOMContentLoaded', function() { const searchInput = document.getElementById('searchInput'); const suggestionsContainer = document.getElementById('autocomplete-suggestions'); if (!searchInput || !suggestionsContainer) return; let debounceTimer; searchInput.addEventListener('input', function() { clearTimeout(debounceTimer); const query = this.value.trim(); if (query.length < 2) { suggestionsContainer.style.display = 'none'; return; } // Show a "loading" state (optional) suggestionsContainer.innerHTML = '
Searching...
'; suggestionsContainer.style.display = 'block'; debounceTimer = setTimeout(function() { const siteCode = getSiteCode(); const url = '/' + siteCode + '/search/autocomplete?q=' + encodeURIComponent(query); fetch(url) .then(response => response.json()) .then(data => { if (data.length === 0) { suggestionsContainer.innerHTML = '
No products found
'; return; } let html = ''; data.forEach(item => { html += `${escapeHtml(item.name)}`; }); // Add "View all results" link html += `View all results`; suggestionsContainer.innerHTML = html; }) .catch(() => { suggestionsContainer.innerHTML = '
Error loading suggestions
'; }); }, 200); // 200ms debounce delay }); // Hide suggestions when clicking outside document.addEventListener('click', function(e) { if (!e.target.closest('.search-wrapper')) { suggestionsContainer.style.display = 'none'; } }); // Helper: get site code from URL function getSiteCode() { const path = window.location.pathname.split('/'); return path.length > 1 ? path[1] : 'shop'; } // Helper: escape HTML to prevent XSS function escapeHtml(unsafe) { return unsafe.replace(/[&<>"]/g, function(m) { if (m === '&') return '&'; if (m === '<') return '<'; if (m === '>') return '>'; if (m === '"') return '"'; return m; }); } });