document.addEventListener('DOMContentLoaded', () => {
const players = document.querySelectorAll('.custom_audio_player');
players.forEach((player) => {
const audio = player.querySelector('.audio-player');
const playPauseBtn = player.querySelector('.playPauseBtn_twig');
const progress = player.querySelector('.progress_twig');
const currentTimeEl = player.querySelector('.currentTime_twig');
const durationEl = player.querySelector('.duration_twig');
const backwardBtn = player.querySelector('.backwardBtn_twig');
const forwardBtn = player.querySelector('.forwardBtn_twig');
const muteBtn = player.querySelector('.muteBtn_twig');
if (!playPauseBtn || !progress || !currentTimeEl || !durationEl || !backwardBtn || !forwardBtn || !muteBtn) {
return;
}
const playIcon = playPauseBtn.querySelector('.play');
const pauseIcon = playPauseBtn.querySelector('.pause');
const volumeIcon = muteBtn.querySelector('.volume');
const muteIcon = muteBtn.querySelector('.mute');
if (!playIcon || !pauseIcon || !volumeIcon || !muteIcon) {
console.error('One or more control icons are missing.');
return;
}
const formatTime = (time) => {
const minutes = Math.floor(time / 60);
const seconds = Math.floor(time % 60).toString().padStart(2, '0');
return `${minutes}:${seconds}`;
};
// Update progress bar and time
audio.addEventListener('timeupdate', () => {
progress.value = (audio.currentTime / audio.duration) * 100 || 0;
currentTimeEl.textContent = formatTime(audio.currentTime);
durationEl.textContent = formatTime(audio.duration || 0);
});
// Play/pause functionality
playPauseBtn.addEventListener('click', () => {
if (audio.paused) {
audio.play();
playIcon.classList.add('hidden');
pauseIcon.classList.remove('hidden');
} else {
audio.pause();
playIcon.classList.remove('hidden');
pauseIcon.classList.add('hidden');
}
});
// Seek functionality
progress.addEventListener('input', () => {
audio.currentTime = (progress.value / 100) * audio.duration;
});
// Mute/unmute functionality
muteBtn.addEventListener('click', () => {
audio.muted = !audio.muted;
if (audio.muted) {
volumeIcon.classList.add('hidden');
muteIcon.classList.remove('hidden');
} else {
volumeIcon.classList.remove('hidden');
muteIcon.classList.add('hidden');
}
});
// Skip backward and forward
backwardBtn.addEventListener('click', () => {
audio.currentTime = Math.max(0, audio.currentTime - 10); // Skip 10 seconds backward
});
forwardBtn.addEventListener('click', () => {
audio.currentTime = Math.min(audio.duration, audio.currentTime + 10); // Skip 10 seconds forward
});
// Display duration when audio is loaded
audio.addEventListener('loadedmetadata', () => {
durationEl.textContent = formatTime(audio.duration);
});
});
});
فرارو- سهل بن عبدالله تُستری یکی از چهرههای برجسته و اثرگذار عرفان و تصوف اسلامی است که در کتاب تذکرةالاولیاء عطار نیشابوری با نثری شاعرانه و پر رمز و راز به او پرداخته شده است. عطار، سهل را بهعنوان یکی از پیشگامان طریقت و اهل مکاشفه معرفی میکند که در نوجوانی با الهام از داییاش شروع به ذکر و مجاهدتهای شبانهروزی کرد.
به گزارش فرارو، در روایت عطار، سهل از همان کودکی شخصیتی متأمل، خموش و درونگرا داشته که روزهداری، ذکر دائمی و شبزندهداری جزء طبیعت او شده بود. جملهی معروف سهل: «الخلق کلهم مرضى، و لیس لهم طبیب إلا الله» نشان از نگاه عمیق او به رابطه انسان و خدا دارد، نگاهی که سراسر عشق، شفقت و فهم عمیق از ضعف انسانی است.
در این حکایت، عطار نهفقط به ذکر احوال سهل بسنده میکند، بلکه با انتخاب لحظاتی از زندگی او مانند سکوتهای طولانی، مکاشفات عرفانی، و سخنان حکیمانهاش، چهرهای از یک عارف کامل را ترسیم میکند. سهل در کلام عطار کسی است که به باطن دین نفوذ کرده و ظواهر را در پرتو معنویت و سلوک بیپیرایه میبیند.
او از آن دسته اولیاست که نه در هیاهو بلکه در سکوت، و نه در خطابه بلکه در نگاه، حکمت را منتقل میکند. حکایت سهل بن عبدالله در تذکرهالاولیاء نمونهای ناب از ادبیات عرفانی است که هم لطافت نثر عطار را نشان میدهد، هم عمق روحانی اندیشههای سهروردیوار او را.