{"id":40,"date":"2026-02-17T14:08:40","date_gmt":"2026-02-17T10:38:40","guid":{"rendered":"https:\/\/najvato.ir\/mani\/?page_id=40"},"modified":"2026-02-17T17:12:36","modified_gmt":"2026-02-17T13:42:36","slug":"voice-test","status":"publish","type":"page","link":"https:\/\/najvato.ir\/mani\/voice-test\/","title":{"rendered":"voice-test"},"content":{"rendered":"\n\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f64-o1\" lang=\"fa-IR\" dir=\"rtl\" data-wpcf7-id=\"64\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/mani\/wp-json\/wp\/v2\/pages\/40#wpcf7-f64-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"\u0641\u0631\u0645 \u062a\u0645\u0627\u0633\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"64\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"fa_IR\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f64-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<p><!DOCTYPE html>\n<\/p>\n<html lang=\"fa\" dir=\"rtl\">\n\t<head>\n <meta charset=\"UTF-8\" \/>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n\t\t<title>\u0641\u0631\u0645 \u062a\u0633\u062a \u06af\u0648\u06cc\u0646\u062f\u06af\u06cc \u062f\u062e\u062a\u0631\u0627\u0646\u0647\n\t\t<\/title>\n\t\t<style>\n \/* \u0641\u0648\u0646\u062a \u0648\u0632\u06cc\u0631\u0645\u062a\u0646 \u0648 \u0627\u0633\u062a\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc *\/\n @font-face {\n font-family: 'Vazirmatn';\n src: url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Regular.woff2') format('woff2'),\n url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Regular.woff') format('woff'),\n url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Regular.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n }\n @font-face {\n font-family: 'Vazirmatn';\n src: url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Bold.woff2') format('woff2'),\n url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Bold.woff') format('woff'),\n url('https:\/\/najvato.ir\/mani\/wp-content\/themes\/flatsome-child\/assets\/public\/css\/flatsome-child\/font\/Vazirmatn-Bold.ttf') format('truetype');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n }\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n font-family: 'Vazirmatn', 'Tahoma', 'Arial', sans-serif;\n background: linear-gradient(135deg, #fbeaff 0%, #ffe4f3 100%);\n min-height: 100vh;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 20px;\n }\n .form-container {\n background: rgba(255, 255, 255, 0.7);\n backdrop-filter: blur(10px);\n border-radius: 50px;\n padding: 40px 30px;\n box-shadow: 0 25px 45px rgba(255, 150, 200, 0.25);\n border: 2px solid #ffffff80;\n max-width: 600px;\n width: 100%;\n }\n h2 {\n text-align: center;\n color: #b380a0;\n font-weight: 700;\n font-size: 2rem;\n margin-bottom: 10px;\n text-shadow: 2px 2px 0 #ffd9e8;\n }\n .subtitle {\n text-align: center;\n color: #a67a9e;\n margin-bottom: 30px;\n font-size: 1.1rem;\n border-bottom: 2px dashed #ffc1d5;\n padding-bottom: 15px;\n }\n .form-group { margin-bottom: 20px; }\n label {\n display: block;\n margin-bottom: 8px;\n color: #7b4f6e;\n font-weight: 500;\n padding-right: 10px;\n }\n input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"], select, textarea {\n width: 100%;\n padding: 14px 20px;\n border: 2px solid #ffd5e8;\n border-radius: 40px;\n background-color: #fff9fe;\n font-family: 'Vazirmatn', 'Tahoma', 'Arial', sans-serif;\n font-size: 1rem;\n color: #4a3846;\n transition: 0.3s;\n box-shadow: 0 4px 8px #ffd5e880;\n }\n input:focus, select:focus, textarea:focus {\n border-color: #ffa5c3;\n outline: none;\n box-shadow: 0 0 0 4px #ffb0cf80;\n }\n textarea { min-height: 100px; border-radius: 30px; }\n\n \/* \u0628\u062e\u0634 \u0635\u062f\u0627 *\/\n .audio-section {\n background: #fff0fa;\n border-radius: 40px;\n padding: 20px;\n margin: 25px 0;\n border: 2px dashed #ffb3d1;\n }\n .audio-label {\n font-weight: bold;\n color: #a1557a;\n margin-bottom: 15px;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .audio-label::before { content: \"\ud83c\udfa4\"; font-size: 1.8rem; }\n .audio-controls {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n justify-content: center;\n }\n .audio-btn {\n background: #ffc2d9;\n border: none;\n color: #5b3a4e;\n padding: 12px 25px;\n border-radius: 50px;\n font-family: 'Vazirmatn', 'Tahoma', 'Arial', sans-serif;\n font-weight: 600;\n font-size: 1rem;\n cursor: pointer;\n transition: 0.2s;\n box-shadow: 0 5px 0 #e6a1bf;\n flex: 1 1 auto;\n min-width: 120px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n }\n .audio-btn:hover {\n background: #ffafcf;\n transform: translateY(-2px);\n box-shadow: 0 7px 0 #e6a1bf;\n }\n .audio-btn:active {\n transform: translateY(5px);\n box-shadow: 0 2px 0 #e6a1bf;\n }\n .audio-btn.recording { background: #ff8fb4; color: white; animation: pulse 1s infinite; }\n @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } }\n .audio-player {\n width: 100%;\n margin-top: 20px;\n border-radius: 40px;\n background: #ffe7f2;\n padding: 10px;\n }\n audio { width: 100%; border-radius: 30px; outline: none; }\n .file-info {\n font-size: 0.9rem;\n color: #a75b83;\n margin-top: 10px;\n text-align: center;\n }\n\n \/* \u06af\u0632\u06cc\u0646\u0647 \u0622\u067e\u0644\u0648\u062f \u0641\u0627\u06cc\u0644 *\/\n .upload-option {\n margin-top: 20px;\n text-align: center;\n border-top: 1px solid #ffc1d5;\n padding-top: 20px;\n }\n .upload-option label {\n display: inline-block;\n background: #ffe0f0;\n padding: 10px 20px;\n border-radius: 40px;\n cursor: pointer;\n color: #a75b83;\n font-weight: 500;\n }\n .upload-option input[type=\"file\"] {\n display: none;\n }\n .upload-option .file-name {\n margin-top: 10px;\n color: #6b4f5e;\n }\n\n .submit-btn {\n background: linear-gradient(45deg, #ffb6d9, #ffc1e0);\n border: none;\n color: white;\n padding: 18px 30px;\n font-size: 1.5rem;\n font-weight: bold;\n border-radius: 60px;\n cursor: pointer;\n width: 100%;\n box-shadow: 0 10px 0 #e695b7, 0 10px 25px #ffb0cf;\n transition: 0.1s;\n font-family: 'Vazirmatn', 'Tahoma', 'Arial', sans-serif;\n margin-top: 20px;\n }\n .submit-btn:hover { transform: translateY(5px); box-shadow: 0 5px 0 #e695b7, 0 10px 25px #ffb0cf; }\n .submit-btn:active { transform: translateY(10px); box-shadow: 0 0 0 #e695b7, 0 10px 25px #ffb0cf; }\n .message {\n text-align: center;\n padding: 10px;\n border-radius: 40px;\n margin-top: 20px;\n display: none;\n }\n .message.success { background: #d5f5e3; color: #1d6b4c; border: 2px solid #a3e0c0; display: block; }\n .message.error { background: #ffe3e9; color: #b3405a; border: 2px solid #ffa7b9; display: block; }\n .flower-decoration { text-align: center; font-size: 2.5rem; margin-bottom: 5px; filter: drop-shadow(0 5px 5px #ffc1d5); }\n\t\t<\/style>\n\t<\/head>\n\t<body>\n\t\t<div class=\"form-container\">\n\t\t\t<div class=\"flower-decoration\">\n\t\t\t\t<p>\ud83c\udf38\ud83c\udfa4\ud83c\udf38\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<h2>\u062a\u0633\u062a \u06af\u0648\u06cc\u0646\u062f\u06af\u06cc\n\t\t\t<\/h2>\n\t\t\t<div class=\"subtitle\">\n\t\t\t\t<p>\u0628\u0627 \u0635\u062f\u0627\u06cc \u0632\u06cc\u0628\u0627\u06cc\u062a \u0645\u0627 \u0631\u0627 \u0634\u06af\u0641\u062a\u200c\u0632\u062f\u0647 \u06a9\u0646\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<form id=\"voiceTestForm\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<p><label for=\"name\">\u0646\u0627\u0645 \u0648 \u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc (\u0627\u0644\u0632\u0627\u0645\u06cc)<\/label><br \/>\n<input type=\"text\" id=\"name\" name=\"name\" required placeholder=\"\u0645\u062b\u0627\u0644: \u0645\u0631\u06cc\u0645 \u0645\u062d\u0645\u062f\u06cc\" \/>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<p><label for=\"email\">\u0627\u06cc\u0645\u06cc\u0644 (\u0627\u0644\u0632\u0627\u0645\u06cc)<\/label><br \/>\n<input type=\"email\" id=\"email\" name=\"email\" required placeholder=\"example@domain.com\" \/>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<p><label for=\"phone\">\u0634\u0645\u0627\u0631\u0647 \u062a\u0645\u0627\u0633<\/label><br \/>\n<input type=\"tel\" id=\"phone\" name=\"phone\" placeholder=\"\u06f0\u06f9\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\" \/>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<p><label for=\"age\">\u0645\u062d\u062f\u0648\u062f\u0647 \u0633\u0646\u06cc<\/label><br \/>\n<select id=\"age\" name=\"age\">\n <option value=\"\">\u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/option>\n <option value=\"\u0632\u06cc\u0631 \u06f1\u06f8\">\u0632\u06cc\u0631 \u06f1\u06f8<\/option>\n <option value=\"\u06f1\u06f8-\u06f2\u06f5\">\u06f1\u06f8-\u06f2\u06f5<\/option>\n <option value=\"\u06f2\u06f6-\u06f3\u06f5\">\u06f2\u06f6-\u06f3\u06f5<\/option>\n <option value=\"\u06f3\u06f6-\u06f5\u06f0\">\u06f3\u06f6-\u06f5\u06f0<\/option>\n <option value=\"\u0628\u0627\u0644\u0627\u06cc \u06f5\u06f0\">\u0628\u0627\u0644\u0627\u06cc \u06f5\u06f0<\/option>\n <\/select>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<p><label for=\"experience\">\u0633\u0627\u0628\u0642\u0647 \u06af\u0648\u06cc\u0646\u062f\u06af\u06cc<\/label><br \/>\n<textarea id=\"experience\" name=\"experience\" placeholder=\"\u0627\u06af\u0631 \u062a\u062c\u0631\u0628\u0647\u200c\u0627\u06cc \u062f\u0627\u0631\u06cc\u062f \u0645\u062e\u062a\u0635\u0631 \u062a\u0648\u0636\u06cc\u062d \u062f\u0647\u06cc\u062f...\"><\/textarea>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\n <!-- \u0628\u062e\u0634 \u0636\u0628\u0637 \u0635\u062f\u0627 -->\n\t\t\t\t<div class=\"audio-section\">\n\t\t\t\t\t<div class=\"audio-label\">\n\t\t\t\t\t\t<p>\u0636\u0628\u0637 \u0635\u062f\u0627\u06cc \u0632\u0646\u062f\u0647\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"audio-controls\">\n\t\t\t\t\t\t<p><button type=\"button\" id=\"startRecord\" class=\"audio-btn\">\ud83c\udf99\ufe0f \u0634\u0631\u0648\u0639 \u0636\u0628\u0637<\/button><br \/>\n<button type=\"button\" id=\"stopRecord\" class=\"audio-btn\" disabled>\u23f9\ufe0f \u062a\u0648\u0642\u0641<\/button>\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"audio-player\" id=\"audioPlayerContainer\" style=\"display: none;\">\n\t\t\t\t\t\t<p><audio id=\"audioPlayback\" controls><\/audio>\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"file-info\" id=\"audioFileInfo\">\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<p><input type=\"hidden\" id=\"audioData\" name=\"audio_data\" \/>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/div>\n\n <!-- \u06af\u0632\u06cc\u0646\u0647 \u0622\u067e\u0644\u0648\u062f \u0641\u0627\u06cc\u0644 (\u067e\u0634\u062a\u06cc\u0628\u0627\u0646) -->\n\t\t\t\t<div class=\"upload-option\">\n\t\t\t\t\t<p><label for=\"audioUpload\">\ud83d\udcc1 \u06cc\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0635\u0648\u062a\u06cc \u0627\u0632 \u0642\u0628\u0644 \u0636\u0628\u0637\u200c\u0634\u062f\u0647 \u0622\u067e\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f<\/label><br \/>\n<input type=\"file\" id=\"audioUpload\" name=\"audio_upload\" accept=\"audio\/*\" \/>\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<div class=\"file-name\" id=\"uploadFileName\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<p><button type=\"submit\" class=\"submit-btn\">\u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u2728<\/button>\n\t\t\t\t<\/p>\n\t\t\t\t<div id=\"formMessage\" class=\"message\">\n\t\t\t\t<\/div>\n\t\t\t<\/form>\n\t\t<\/div>\n\t\t<p><script>\n (function() {\n \/\/ \u0639\u0646\u0627\u0635\u0631\n const startBtn = document.getElementById('startRecord');\n const stopBtn = document.getElementById('stopRecord');\n const audioPlayerContainer = document.getElementById('audioPlayerContainer');\n const audioPlayback = document.getElementById('audioPlayback');\n const audioFileInfo = document.getElementById('audioFileInfo');\n const audioDataInput = document.getElementById('audioData');\n const audioUpload = document.getElementById('audioUpload');\n const uploadFileName = document.getElementById('uploadFileName');\n const form = document.getElementById('voiceTestForm');\n const messageDiv = document.getElementById('formMessage');\n\n \/\/ \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0636\u0628\u0637\n let mediaRecorder;\n let audioChunks = [];\n let audioBlob = null;\n let stream = null;\n let recordingSupported = true;\n\n \/\/ \u0628\u0631\u0631\u0633\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u0631\u0648\u0631\u06af\u0631\n if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\n recordingSupported = false;\n startBtn.disabled = true;\n startBtn.title = \"\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u0636\u0628\u0637 \u0635\u062f\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\";\n }\n\n \/\/ \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646 (\u0641\u0642\u0637 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u06a9\u0645\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0644\u06cc\u06a9 \u0634\u0648\u062f)\n async function requestMicrophone() {\n try {\n stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n mediaRecorder = new MediaRecorder(stream);\n \n mediaRecorder.ondataavailable = event => {\n audioChunks.push(event.data);\n };\n\n mediaRecorder.onstop = () => {\n audioBlob = new Blob(audioChunks, { type: 'audio\/webm' });\n const audioUrl = URL.createObjectURL(audioBlob);\n audioPlayback.src = audioUrl;\n audioPlayerContainer.style.display = 'block';\n \n const fileSize = (audioBlob.size \/ 1024).toFixed(2);\n audioFileInfo.textContent = `\u0641\u0627\u06cc\u0644 \u0636\u0628\u0637 \u0634\u062f\u0647: ${audioBlob.size} \u0628\u0627\u06cc\u062a (${fileSize} \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a)`;\n\n \/\/ \u0630\u062e\u06cc\u0631\u0647 base64 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\n const reader = new FileReader();\n reader.readAsDataURL(audioBlob);\n reader.onloadend = function() {\n audioDataInput.value = reader.result;\n };\n\n audioChunks = [];\n };\n\n startBtn.disabled = false;\n return true;\n } catch (err) {\n console.error('\u062e\u0637\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646:', err);\n let errorMessage = '\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646 \u0645\u0645\u06a9\u0646 \u0646\u06cc\u0633\u062a. ';\n if (err.name === 'NotAllowedError' || err.name === 'PermissionDeniedError') {\n errorMessage += '\u0644\u0637\u0641\u0627\u064b \u0645\u062c\u0648\u0632 \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u062f.';\n } else if (err.name === 'NotFoundError') {\n errorMessage += '\u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646\u06cc \u0645\u062a\u0635\u0644 \u0646\u06cc\u0633\u062a.';\n } else if (err.name === 'NotReadableError') {\n errorMessage += '\u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a.';\n } else {\n errorMessage += '\u062e\u0637\u0627\u06cc \u0646\u0627\u0634\u0646\u0627\u062e\u062a\u0647: ' + err.message;\n }\n alert(errorMessage);\n return false;\n }\n }\n\n \/\/ \u0634\u0631\u0648\u0639 \u0636\u0628\u0637\n startBtn.addEventListener('click', async () => {\n if (!mediaRecorder && recordingSupported) {\n const granted = await requestMicrophone();\n if (!granted) return;\n }\n \n if (mediaRecorder && mediaRecorder.state === 'inactive') {\n audioChunks = [];\n mediaRecorder.start();\n startBtn.classList.add('recording');\n startBtn.disabled = true;\n stopBtn.disabled = false;\n audioPlayerContainer.style.display = 'none';\n audioFileInfo.textContent = '';\n \/\/ \u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0622\u067e\u0644\u0648\u062f\u06cc (\u0627\u06af\u0631 \u0642\u0628\u0644\u0627\u064b \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647)\n audioUpload.value = '';\n uploadFileName.textContent = '';\n }\n });\n\n stopBtn.addEventListener('click', () => {\n if (mediaRecorder && mediaRecorder.state === 'recording') {\n mediaRecorder.stop();\n startBtn.classList.remove('recording');\n startBtn.disabled = false;\n stopBtn.disabled = true;\n \n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n stream = null;\n }\n }\n });\n\n \/\/ \u0646\u0645\u0627\u06cc\u0634 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647\n audioUpload.addEventListener('change', (e) => {\n const file = e.target.files[0];\n if (file) {\n uploadFileName.textContent = `\u0641\u0627\u06cc\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647: ${file.name} (${(file.size\/1024).toFixed(2)} \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a)`;\n \/\/ \u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0636\u0628\u0637 \u0642\u0628\u0644\u06cc\n audioBlob = null;\n audioPlayerContainer.style.display = 'none';\n audioDataInput.value = '';\n \/\/ \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062f\u06a9\u0645\u0647\u200c\u0647\u0627\u06cc \u0636\u0628\u0637 (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc)\n } else {\n uploadFileName.textContent = '';\n }\n });\n\n \/\/ \u0627\u0631\u0633\u0627\u0644 \u0641\u0631\u0645\n form.addEventListener('submit', async (e) => {\n e.preventDefault();\n\n const name = document.getElementById('name').value.trim();\n const email = document.getElementById('email').value.trim();\n if (!name || !email) {\n showMessage('\u0644\u0637\u0641\u0627\u064b \u0646\u0627\u0645 \u0648 \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.', 'error');\n return;\n }\n\n const formData = new FormData(form);\n \n \/\/ \u0627\u0648\u0644\u0648\u06cc\u062a \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0622\u067e\u0644\u0648\u062f\u06cc \u0627\u0633\u062a\n if (audioUpload.files.length > 0) {\n formData.append('audio_file', audioUpload.files[0]);\n } else if (audioBlob) {\n const audioFile = new File([audioBlob], 'voice-recording.webm', { type: audioBlob.type });\n formData.append('audio_file', audioFile);\n } else {\n if (!confirm('\u0647\u0646\u0648\u0632 \u0641\u0627\u06cc\u0644 \u0635\u0648\u062a\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06cc\u0627 \u0636\u0628\u0637 \u0646\u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f. \u0628\u062f\u0648\u0646 \u0641\u0627\u06cc\u0644 \u0635\u0648\u062a\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f\u061f')) {\n return;\n }\n }\n\n \/\/ \u0622\u062f\u0631\u0633 endpoint \u0631\u0627 \u0628\u0647 backend \u0648\u0627\u0642\u0639\u06cc \u062e\u0648\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\n try {\n const response = await fetch('https:\/\/najvato.ir\/mani\/wp-json\/custom-form\/submit', {\n method: 'POST',\n body: formData\n });\n\n if (response.ok) {\n showMessage('\u0641\u0631\u0645 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0631\u0633\u0627\u0644 \u0634\u062f!', 'success');\n form.reset();\n audioPlayerContainer.style.display = 'none';\n audioDataInput.value = '';\n audioBlob = null;\n uploadFileName.textContent = '';\n } else {\n const errText = await response.text();\n showMessage('\u062e\u0637\u0627 \u062f\u0631 \u0627\u0631\u0633\u0627\u0644: ' + errText, 'error');\n }\n } catch (error) {\n console.error('Error:', error);\n showMessage('\u0627\u0631\u0633\u0627\u0644 \u0628\u0627 \u062e\u0637\u0627 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f. \u0644\u0637\u0641\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f.', 'error');\n }\n });\n\n function showMessage(text, type) {\n messageDiv.textContent = text;\n messageDiv.className = 'message ' + type;\n }\n\n \/\/ \u0622\u0632\u0627\u062f\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639 \u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0635\u0641\u062d\u0647\n window.addEventListener('beforeunload', () => {\n if (stream) {\n stream.getTracks().forEach(track => track.stop());\n }\n });\n })();\n <\/script>\n\t\t<\/p>\n\t<\/body>\n<\/html><p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"_wpcf7_ak_\"><label>&#916;<textarea name=\"_wpcf7_ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"_wpcf7_ak_js\" value=\"87\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"episode_type":"","audio_file":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"class_list":["post-40","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/pages\/40","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/comments?post=40"}],"version-history":[{"count":2,"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/pages\/40\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/pages\/40\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/najvato.ir\/mani\/wp-json\/wp\/v2\/media?parent=40"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}