Spaces:
Running
Running
| // Search functionality for the TN Medical Connect site | |
| document.addEventListener('DOMContentLoaded', function() { | |
| // Set up search forms | |
| const searchForms = document.querySelectorAll('.search-form'); | |
| searchForms.forEach(form => { | |
| form.addEventListener('submit', function(e) { | |
| e.preventDefault(); | |
| const searchInput = this.querySelector('input[type="text"]'); | |
| const searchTerm = searchInput.value.trim(); | |
| if (searchTerm) { | |
| // Get search category if available (podcasts, research, etc.) | |
| const category = this.dataset.category || ''; | |
| const finalSearchTerm = category ? `${category} ${searchTerm}` : searchTerm; | |
| // Show loading state | |
| const resultsContainer = document.getElementById('search-results'); | |
| if (resultsContainer) { | |
| resultsContainer.innerHTML = '<div class="text-center py-4"><i class="fas fa-spinner fa-spin text-primary text-2xl"></i><p class="mt-2 text-gray-600">Searching...</p></div>'; | |
| } | |
| // In a real implementation, this would call a server-side API | |
| // For this demo, we'll simulate results after a delay | |
| setTimeout(() => { | |
| simulateSearchResults(finalSearchTerm, resultsContainer); | |
| }, 1000); | |
| } | |
| }); | |
| }); | |
| // Function to simulate search results (in a real app, this would call the server) | |
| function simulateSearchResults(searchTerm, container) { | |
| if (!container) return; | |
| // Simulate different results based on search term | |
| const termLower = searchTerm.toLowerCase(); | |
| if (termLower.includes('podcast') || termLower.includes('audio')) { | |
| showPodcastResults(container); | |
| } else if (termLower.includes('research') || termLower.includes('paper') || termLower.includes('study')) { | |
| showResearchResults(container); | |
| } else if (termLower.includes('ai') || termLower.includes('artificial intelligence')) { | |
| showAIResults(container); | |
| } else { | |
| showGeneralResults(container); | |
| } | |
| } | |
| // Simulate podcast results | |
| function showPodcastResults(container) { | |
| container.innerHTML = ` | |
| <h3 class="text-xl font-semibold text-gray-800 mb-4">Search Results</h3> | |
| <div class="grid gap-4 md:grid-cols-2"> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Recent Advances in Cardiology</h4> | |
| <p class="text-sm text-gray-600">A discussion with Dr. Ramesh about the latest treatments.</p> | |
| <audio controls class="mt-2 w-full"> | |
| <source src="#" type="audio/mpeg"> | |
| Your browser does not support the audio element. | |
| </audio> | |
| </div> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Public Health Initiatives in Tamil Nadu</h4> | |
| <p class="text-sm text-gray-600">How local communities are benefiting from new programs.</p> | |
| <audio controls class="mt-2 w-full"> | |
| <source src="#" type="audio/mpeg"> | |
| Your browser does not support the audio element. | |
| </audio> | |
| </div> | |
| </div> | |
| `; | |
| } | |
| // Simulate research results | |
| function showResearchResults(container) { | |
| container.innerHTML = ` | |
| <h3 class="text-xl font-semibold text-gray-800 mb-4">Research Results</h3> | |
| <div class="space-y-4"> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Impact of Climate Change on Vector-borne Diseases in South India</h4> | |
| <p class="text-sm text-gray-500">Journal of Tropical Medicine • March 2025</p> | |
| <p class="text-sm text-gray-600 mt-1">This study examines the correlation between rising temperatures and the spread of dengue and malaria in Tamil Nadu.</p> | |
| <a href="#" class="text-primary text-sm hover:underline mt-2 inline-block">Read Abstract</a> | |
| </div> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Efficacy of Traditional Medicines in Managing Type 2 Diabetes</h4> | |
| <p class="text-sm text-gray-500">Indian Journal of Medical Research • January 2025</p> | |
| <p class="text-sm text-gray-600 mt-1">A randomized controlled trial comparing traditional herbal preparations with standard pharmaceutical interventions.</p> | |
| <a href="#" class="text-primary text-sm hover:underline mt-2 inline-block">Read Abstract</a> | |
| </div> | |
| </div> | |
| `; | |
| } | |
| // Simulate AI results | |
| function showAIResults(container) { | |
| container.innerHTML = ` | |
| <h3 class="text-xl font-semibold text-gray-800 mb-4">AI in Healthcare Results</h3> | |
| <div class="space-y-4"> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">AI-Powered Diagnostic Tools for Rural Healthcare</h4> | |
| <p class="text-sm text-gray-600 mt-1">How machine learning is helping bridge the healthcare gap in remote areas of Tamil Nadu.</p> | |
| <div class="flex justify-between items-center mt-2"> | |
| <span class="text-xs text-gray-500">Resource Type: Case Study</span> | |
| <a href="#" class="text-primary text-sm hover:underline">View Details</a> | |
| </div> | |
| </div> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Implementing AI Chatbots in Patient Triage</h4> | |
| <p class="text-sm text-gray-600 mt-1">A guide for hospitals looking to adopt AI-powered patient screening systems.</p> | |
| <div class="flex justify-between items-center mt-2"> | |
| <span class="text-xs text-gray-500">Resource Type: Implementation Guide</span> | |
| <a href="#" class="text-primary text-sm hover:underline">View Details</a> | |
| </div> | |
| </div> | |
| </div> | |
| `; | |
| } | |
| // General mixed results | |
| function showGeneralResults(container) { | |
| container.innerHTML = ` | |
| <h3 class="text-xl font-semibold text-gray-800 mb-4">Search Results</h3> | |
| <div class="space-y-4"> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Upcoming Medical Conferences in Chennai</h4> | |
| <p class="text-sm text-gray-600">View the schedule of medical conferences happening in the next 6 months.</p> | |
| <a href="#" class="text-primary text-sm hover:underline mt-2 inline-block">View Calendar</a> | |
| </div> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Grant Opportunities for Medical Researchers</h4> | |
| <p class="text-sm text-gray-600">Current funding opportunities for research in various medical fields.</p> | |
| <a href="#" class="text-primary text-sm hover:underline mt-2 inline-block">Browse Grants</a> | |
| </div> | |
| <div class="p-4 bg-gray-50 border border-gray-200 rounded-lg"> | |
| <h4 class="text-lg font-medium">Latest Podcast: Healthcare Challenges in 2025</h4> | |
| <p class="text-sm text-gray-600">A discussion with leading experts about what to expect this year.</p> | |
| <a href="#" class="text-primary text-sm hover:underline mt-2 inline-block">Listen Now</a> | |
| </div> | |
| </div> | |
| `; | |
| } | |
| // Initialize any search fields with the search parameter if present in URL | |
| const urlParams = new URLSearchParams(window.location.search); | |
| const searchParam = urlParams.get('search'); | |
| if (searchParam) { | |
| const searchInputs = document.querySelectorAll('.search-form input[type="text"]'); | |
| searchInputs.forEach(input => { | |
| input.value = searchParam; | |
| }); | |
| // Auto-submit the first search form if a search term is provided in URL | |
| const firstForm = document.querySelector('.search-form'); | |
| if (firstForm) { | |
| firstForm.dispatchEvent(new Event('submit')); | |
| } | |
| } | |
| }); | |