/** * AI Search Engine v2 - Main JavaScript File * Enhanced with better error handling and debugging */ jQuery(document).ready(function($) { // Variables let searchTimeout; let currentPage = 1; let currentSearchTerm = ''; let isLoading = false; // ============================================ // EVENT HANDLERS // ============================================ // Auto-search με καθυστέρηση $('#ai-search-input').on('input', function() { const searchTerm = $(this).val().trim(); if (searchTerm.length < 2) { $('#search-results').html(`

🔍 Πληκτρολογήστε τουλάχιστον 2 χαρακτήρες για αναζήτηση...

`); $('#ai-answer').hide(); return; } clearTimeout(searchTimeout); // Show typing indicator $('#search-results').html(`

Πληκτρολογείτε: "${searchTerm}"

`); searchTimeout = setTimeout(function() { performSearch(searchTerm, 1); }, 500); }); // Manual search με κλικ $('#ai-search-button').on('click', function() { const searchTerm = $('#ai-search-input').val().trim(); if (searchTerm.length >= 2) { performSearch(searchTerm, 1); } else { showAlert('Παρακαλώ εισάγετε τουλάχιστον 2 χαρακτήρες για αναζήτηση.', 'warning'); $('#ai-search-input').focus(); } }); // Enter key support $('#ai-search-input').on('keypress', function(e) { if (e.which === 13) { // Enter key const searchTerm = $(this).val().trim(); if (searchTerm.length >= 2) { performSearch(searchTerm, 1); } } }); // AI Answer button $('#get-ai-answer').on('click', function() { const searchTerm = $('#ai-search-input').val().trim(); if (searchTerm.length < 2) { showAlert('Παρακαλώ εισάγετε τουλάχιστον 2 χαρακτήρες για να ρωτήσετε την AI.', 'warning'); return; } getAIAnswer(searchTerm); }); // Dark mode toggle $('#dark-mode-toggle').on('click', function() { $('body').toggleClass('dark-mode-active'); $(this).toggleClass('active'); // Αποθήκευση στην τοπική αποθήκη const isDark = $('body').hasClass('dark-mode-active'); localStorage.setItem('ai_search_dark_mode', isDark ? 'dark' : 'light'); // Αλλαγή εικονιδίου $(this).html(isDark ? '☀️' : '🌙'); }); // ============================================ // CORE FUNCTIONS // ============================================ /** * Εκτέλεση αναζήτησης */ function performSearch(searchTerm, page) { if (isLoading) return; currentSearchTerm = searchTerm; currentPage = page; isLoading = true; // Εμφάνιση loading indicator $('#search-results').html(`

🔍 Αναζήτηση για: "${searchTerm}"

Παρακαλώ περιμένετε...

`); // Καταγραφή για debugging console.log('🔍 Starting search for:', searchTerm, 'Page:', page); $.ajax({ url: ai_search_vars.ajax_url, type: 'POST', data: { action: 'ai_search', search_term: searchTerm, page: page, nonce: ai_search_vars.nonce }, timeout: 15000, // 15 second timeout success: function(response) { console.log('✅ Search response:', response); if (response.success) { displayResults(response.data); updatePagination(response.data); // Αποθήκευση στατιστικού saveSearchStat(searchTerm); // Εμφάνιση πληροφοριών αναζήτησης showSearchInfo(response.data); } else { displayNoResults(searchTerm, 'Σφάλμα από το διακομιστή'); console.error('❌ Server error:', response.data); } }, error: function(xhr, status, error) { console.error('❌ AJAX Error:', { status: status, error: error, response: xhr.responseText }); displayNoResults(searchTerm, 'Σφάλμα σύνδεσης'); // Προσπάθεια fallback if (status === 'timeout') { showAlert('Η αναζήτηση χρειάστηκε πολύ χρόνο. Παρακαλώ δοκιμάστε ξανά.', 'error'); } }, complete: function() { isLoading = false; } }); } /** * Εμφάνιση αποτελεσμάτων */ function displayResults(data) { let resultsHtml = ''; if (data.results.length === 0) { resultsHtml = createNoResultsHTML(); } else { resultsHtml += `

✅ Βρέθηκαν ${data.total_results} αποτελέσματα

Μέθοδος: ${data.method || 'αναζήτηση'}
`; data.results.forEach(function(result, index) { const animationDelay = (index * 0.1) + 's'; resultsHtml += `

${result.title}

${result.categories ? ` 🏷️ ${result.categories} ` : ''} 📄 ${result.type} 📅 ${result.date}
👁️ Προβολή
`; }); // Προσθήκη debugging info αν υπάρχει if (data.search_method) { resultsHtml += `
Debug: ${data.search_method}
`; } } $('#search-results').html(resultsHtml); // Προσθήκη event listeners για buttons $('.copy-link').on('click', function() { const url = $(this).data('url'); navigator.clipboard.writeText(url).then(function() { showAlert('Ο σύνδεσμος αντιγράφηκε!', 'success'); }); }); $('.result-link').on('click', function(e) { console.log('Clicked result:', $(this).text()); // Μπορούμε να καταγράφουμε analytics εδώ }); } /** * HTML όταν δεν υπάρχουν αποτελέσματα */ function createNoResultsHTML() { return `
😔

Δεν βρέθηκαν αποτελέσματα για "${currentSearchTerm}"

💡 Προτάσεις για καλύτερη αναζήτηση:

⚡ Γρήγορες αναζητήσεις:

🤖 Βοήθεια από την AI:

Μπορείτε να ρωτήσετε την τεχνητή νοημοσύνη για:

`; } /** * Εμφάνιση μηνύματος όταν δεν υπάρχουν αποτελέσματα */ function displayNoResults(searchTerm, reason) { $('#search-results').html(`
⚠️

Πρόβλημα με την αναζήτηση για "${searchTerm}"

Αιτία: ${reason}

Αν το πρόβλημα παραμένει, ελέγξτε:

`); } /** * Ενημέρωση pagination */ function updatePagination(data) { let paginationHtml = ''; if (data.total_pages > 1) { paginationHtml = '
'; // Προηγούμενη σελίδα if (data.current_page > 1) { paginationHtml += ` `; } // Αριθμοί σελίδων let startPage = Math.max(1, data.current_page - 2); let endPage = Math.min(data.total_pages, data.current_page + 2); // Πρώτη σελίδα if (startPage > 1) { paginationHtml += ``; if (startPage > 2) paginationHtml += `...`; } // Κεντρικές σελίδες for (let i = startPage; i <= endPage; i++) { if (i === data.current_page) { paginationHtml += `${i}`; } else { paginationHtml += ``; } } // Τελευταία σελίδα if (endPage < data.total_pages) { if (endPage < data.total_pages - 1) paginationHtml += `...`; paginationHtml += ``; } // Επόμενη σελίδα if (data.current_page < data.total_pages) { paginationHtml += ` `; } paginationHtml += '
'; // Προσθήκη page info paginationHtml += `
Σελίδα ${data.current_page} από ${data.total_pages} (${data.total_results} αποτελέσματα)
`; } $('#search-pagination').html(paginationHtml); // Εκδήλωση κλικ σε pagination buttons $('.page-button').on('click', function() { const page = $(this).data('page'); performSearch(currentSearchTerm, page); // Scroll στο top των αποτελεσμάτων $('html, body').animate({ scrollTop: $('#search-results').offset().top - 100 }, 300); }); } /** * Λήψη απάντησης από AI */ function getAIAnswer(searchTerm) { if (isLoading) return; isLoading = true; $('#ai-answer').html(`

🤖 Η AI σκέφτεται...

Ανάλυση της αναζήτησης: "${searchTerm}"

Αυτό μπορεί να πάρει λίγα δευτερόλεπτα
`).show(); console.log('🧠 Requesting AI answer for:', searchTerm); $.ajax({ url: ai_search_vars.ajax_url, type: 'POST', data: { action: 'get_ai_answer', search_term: searchTerm, nonce: ai_search_vars.nonce }, timeout: 30000, // 30 seconds for AI success: function(response) { console.log('✅ AI response:', response); if (response.success) { $('#ai-answer').html(`
🤖

AI Απάντηση για: "${response.data.search_term}"

${response.data.answer}
`); // Auto scroll στην απάντηση $('html, body').animate({ scrollTop: $('#ai-answer').offset().top - 50 }, 500); } else { $('#ai-answer').html(`
⚠️

Δεν ήταν δυνατή η λήψη απάντησης

${response.data || 'Το API key μπορεί να μην είναι σωστά ρυθμισμένο.'}

⚙️ Ρυθμίσεις
`); } }, error: function(xhr, status, error) { console.error('❌ AI Error:', error); $('#ai-answer').html(`
🔌

Σφάλμα Σύνδεσης με AI

Δεν ήταν δυνατή η σύνδεση με τον διακομιστή AI.

Σφάλμα: ${error}

Βεβαιωθείτε ότι:

`); }, complete: function() { isLoading = false; } }); } /** * Αποθήκευση στατιστικών */ function saveSearchStat(searchTerm) { // Ασύγχρονη αποστολή - δεν περιμένουμε response $.ajax({ url: ai_search_vars.ajax_url, type: 'POST', data: { action: 'save_search_stat', search_term: searchTerm, nonce: ai_search_vars.nonce }, // Αδιάφορο αν αποτύχει error: function() { console.log('Statistics save failed (not critical)'); } }); } /** * Εμφάνιση πληροφοριών αναζήτησης */ function showSearchInfo(data) { // Μπορούμε να προσθέσουμε επιπλέον πληροφορίες if (data.total_results > 0) { const infoHtml = `
💡 Βρήκατε αυτό που ψάχνατε; Αν όχι, δοκιμάστε την AI ή αλλάξτε τους όρους αναζήτησης.
`; $('#search-results').append(infoHtml); } } /** * Εμφάνιση alert μηνύματος */ function showAlert(message, type = 'info') { const alertClass = { 'success': 'alert-success', 'error': 'alert-error', 'warning': 'alert-warning', 'info': 'alert-info' }[type] || 'alert-info'; const alertHtml = `
${message}
`; // Προσθήκη alert $('.ai-search-container').prepend(alertHtml); // Αυτόματη απόκρυψη μετά από 5 δευτερόλεπτα setTimeout(() => { $('.ai-alert').fadeOut(300, function() { $(this).remove(); }); }, 5000); // Κλείσιμο με κλικ $('.alert-close').on('click', function() { $(this).parent().fadeOut(300, function() { $(this).remove(); }); }); } // ============================================ // HELPER FUNCTIONS // ============================================ // Global functions για χρήση σε onclick handlers window.retrySearch = function(searchTerm) { performSearch(searchTerm || currentSearchTerm, 1); }; window.simplifySearch = function(searchTerm) { // Απλοποίηση αναζήτησης - πάρτε μόνο την πρώτη λέξη const words = searchTerm.split(' '); if (words.length > 1) { const simpleTerm = words[0]; $('#ai-search-input').val(simpleTerm); performSearch(simpleTerm, 1); showAlert(`Απλοποίηση σε: "${simpleTerm}"`, 'info'); } }; // Quick search buttons $(document).on('click', '.quick-search', function() { const term = $(this).data('term'); $('#ai-search-input').val(term); performSearch(term, 1); }); // ============================================ // INITIALIZATION // ============================================ // Έλεγχος για προηγούμενη ρύθμιση dark mode const savedMode = localStorage.getItem('ai_search_dark_mode'); if (savedMode === 'dark') { $('body').addClass('dark-mode-active'); $('#dark-mode-toggle').addClass('active').html('☀️'); } // Initial instruction $('#search-results').html(`
🔍

Καλωσήρθατε στην Έξυπνη Αναζήτηση

Πληκτρολογήστε παραπάνω για να ξεκινήσει η αναζήτηση.

📋 Παραδείγματα αναζήτησης:

✨ Δυνατότητες:

`); // Example search buttons $('.example-search').on('click', function() { const term = $(this).data('term'); $('#ai-search-input').val(term); performSearch(term, 1); }); // Debug mode (απενεργοποιημένο από default) const debugMode = false; if (debugMode) { console.log('🔧 AI Search Debug Mode Enabled'); console.log('AJAX URL:', ai_search_vars.ajax_url); console.log('Nonce:', ai_search_vars.nonce); } // Keyboard shortcuts $(document).on('keydown', function(e) { // Ctrl/Cmd + F για focus στο search input if ((e.ctrlKey || e.metaKey) && e.key === 'f') { e.preventDefault(); $('#ai-search-input').focus().select(); } // Escape για clear if (e.key === 'Escape') { $('#ai-search-input').val('').focus(); } // Ctrl/Cmd + Enter για AI if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') { e.preventDefault(); $('#get-ai-answer').click(); } }); // Focus στο input όταν φορτώνει η σελίδα setTimeout(() => { $('#ai-search-input').focus(); }, 500); }); // Global error handler window.addEventListener('error', function(e) { console.error('Global error:', e.error); }); apotelesmata – Σελίδα 2 – Διαποίμανση

(Εισήγηση στο Διεθνές Επιστημονικό Συνέδριο για τα 100 χρόνια του περιοδικού; «ΘΕΟΛΟΓΙΑ» με θέμα: «Ἡ Ὀρθόδοξη θεολογία ἐν πορείᾳ στήν “ἄυλη πραγματικότητα” τῆς ὕστερης νεωτερικότητας», Αθήνα 11-14 Οκτωβρίου 2023),

Το κείμενο αναλύει ποιμαντικά προβλήματα από τις Πράξεις των Αποστόλων, αξιολογώντας τις θετικές, ουδέτερες ή αρνητικές αντιδράσεις της Εκκλησίας, προσφέροντας κατευθύνσεις για τη σύγχρονη ποιμαντική πράξη. Δημοσιευμένο και στο Περιοδικό ΑΧΙΛΛΙΟΥ ΠΟΛΙΣ, τ. 12, ΝΟΕΜΒΡΙΟΣ 2024

Ποιμαντικό Έργο (1)✍️ Στέφανος Χ. Κουμαρόπουλος (45) 💬 0 👁️ 1184

Ένα σπουδαίο έργο συντονιστικό και καθοδηγητικό έργο είχε αναλάβει η Κεντρική Διεύθυνση Ποιμαντικού Έργου της Αρχιεπισκοπής Αθηνών, υπό την εποπτεία του Μακαριστού Μητροπολίτου Αχελώου κ. Ευθυμίου, ο οποίος είχε οριστεί Υπεύθυνος. Στην Ομάδα αυτή για λίγο χρονικό διάστημα είχα την τιμή να μετέχω μετά από πρόταση του Σεβαστού Καθηγητού μας κ. Αλεξάνδρου Μ. Σταυροπούλου, μέλους […]

Διάφορα 2 (669)✍️ Τριαντάφυλλος Κ. Μπολτέτσος (27) 💬 0 👁️ 1286

50 Χρόνια Άγιος Νεκτάριος Χαϊδαρίου Μία ιστορική στιγμή για την Ενορία που γιορτάζει! Η Ενορία του Αγίου Νεκταρίου Χαϊδαρίου της Ιεράς ΜητροπόλεωςΝικαίας με την ευλογία του επιχώριου Σεβασμιωτάτου Μητροπολίτου κ.Αλεξίου, διοργανώνει την Κυριακή 3 Νοεμβρίου 2024, στην αίθουσαεκδηλώσεων του Δημαρχείου Χαϊδαρίου, εορταστική εκδήλωση –αφιέρωμα, με την ευκαιρία της ιδρύσεως της Ενορίας πριν από 50χρόνια.Το γεγονός […]

Διάφορα 2 (669)✍️ Αλέξανδρος Μ. Σταυρόπουλος (622) 💬 1 👁️ 1002

Η πνευματική διακονία της Ιεράς Μητροπόλεως Φιλίππων, Νεαπόλεως και Θάσου με τον έντυπο λόγο Ανακοίνωση σε πρόσφατο (28-30 Σεπτεμβρίου 2024) Διεθνές Συνέδριοτης Ι. Μητροπόλεως για τα 100 χρόνια της Στάθης Κεκρίδης Αναπληρωτής Καθηγητής Δημοκρίτειου Πανεπιστημίου Θράκης Η Εκκλησία στη δισχιλιετή πορεία της δίδαξε έμπρακτα την πίστη της στην αθανασία του γραπτού λόγου, χειρογράφου παλαιότερα, εντύπου […]

Τριαντάφυλλου Κ. Μπολτέτσου Δρ. Ποιμαντικής Θεολογίας και Μεθοδολογίας Μέσα στην πανθομολογούμενη κρίση του γάμου και της οικογένειας, με την πληθώρα των δυσάρεστων συμβάντων έως και συγκλονιστικών παρεκτροπών, που κυκλοφορούν ως είδηση καθημερινά μέσα από τα δελτία ειδήσεων, για ακόμα μια φορά η Εκκλησία της Ελλάδας και μάλιστα «εν Συνόδω», κατά την δεύτερη ημέρα της Ιεραρχίας, […]

Μορφές Ποιμένων (14)✍️ Αλέξανδρος Μ. Σταυρόπουλος (622) 💬 0 👁️ 1006

  Αλεξάνδρου Μ. Σταυροπούλου Μετράμε και ξαναμετράμε και αναρωτιόμαστε μήπως και έχουμε κάνει λάθος και δεν μετρήσαμε σωστά. Κι όμως οι αριθμοί βγαίνουν σωστοί. Πράγματι η πληροφορία ήταν ακριβής. Κι απαριθμούμε ημερομηνίες και τόπους και διαπιστώνουμε ότι ναι κι ο Τάκης κι ο Δήμος κι ο Γιώργος καθώς και τόσοι άλλοι δεν είναι πια μαζί μας. […]

Αναρτούμε συνέντευξη του Καθηγητή της Θεολογικής Σχολής Αθηνών Αλέξανδρου Μ. Σταυρόπουλου, στον Τριαντάφυλλο Μπολτέτσο, για θέματα Θεολογίας Γάμου και Οικογένειας η οποία πραγματοποιήθηκε το 2007. Μπορείτε να δείτε τη συνέντευξη: εδώ

Παγκόσμια Ημέρα Μεταναστών Η Ποιμαντική των Μεταναστών Η μετανάστευση αποτελεί ένα από τα πιο σημαντικά και επίκαιρα κοινωνικά φαινόμενα της εποχής μας. Ο αυξανόμενος αριθμός μεταναστών παγκοσμίως δημιουργεί προκλήσεις αλλά και ευκαιρίες για την εκκλησία και την κοινωνία. Η ποιμαντική των μεταναστών αναφέρεται στις πρακτικές και τις δράσεις της εκκλησίας που αποσκοπούν στην υποστήριξη, την […]