پرش به محتوا

کتاب مقدس آنلاین: تفاوت میان نسخه‌ها

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
 
(۸۳ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۲۸: خط ۲۸:
             line-height: 1.6;
             line-height: 1.6;
             background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.05"><path fill="%238B4513" d="M20,20 L80,20 L80,80 L20,80 Z" stroke="%238B4513" stroke-width="2"/></svg>');
             background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.05"><path fill="%238B4513" d="M20,20 L80,20 L80,80 L20,80 Z" stroke="%238B4513" stroke-width="2"/></svg>');
            padding: 0;
            margin: 0;
        }
       
        /* مخفی کردن هدرهای اضافی ویکی */
        body > header:first-child,
        .wiki-header,
        .mw-header,
        #mw-header,
        #header,
        .header {
            display: none !important;
         }
         }
          
          
خط ۳۳: خط ۴۵:
             max-width: 1200px;
             max-width: 1200px;
             margin: 0 auto;
             margin: 0 auto;
             padding: 15px;
             padding: 5px 15px;
         }
         }
          
          
         header {
         .app-header {
             text-align: center;
             text-align: center;
             margin-bottom: 25px;
             margin-bottom: 20px;
             padding: 20px 0;
             padding: 15px 20px;
             border-bottom: 2px solid var(--border-color);
             border-bottom: 2px solid var(--border-color);
             background: linear-gradient(to bottom, #f9f6f2, #f0e6d6);
             background: linear-gradient(to bottom, #f9f6f2, #f0e6d6);
             border-radius: 8px;
             border-radius: 8px;
             box-shadow: 0 4px 12px rgba(0,0,0,0.1);
             box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            position: relative;
        }
       
        .breadcrumb {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 8px;
            margin-bottom: 12px;
            font-size: 1.1rem;
            color: var(--dark-color);
            direction: rtl;
        }
       
        .breadcrumb-home {
            color: var(--accent-color);
            text-decoration: none;
            transition: color 0.3s;
            font-weight: 500;
        }
       
        .breadcrumb-home:hover {
            color: var(--primary-color);
            text-decoration: underline;
        }
       
        .breadcrumb-separator {
            color: var(--border-color);
            font-weight: 300;
        }
       
        .breadcrumb-current {
            color: var(--primary-color);
            font-weight: bold;
         }
         }
          
          
         h1 {
         .app-header h1 {
             color: var(--primary-color);
             color: var(--primary-color);
             margin-bottom: 10px;
             margin-bottom: 8px;
             font-size: 2.2rem;
             font-size: 1.8rem;
             text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
             text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
            font-weight: 700;
            text-align: center;
         }
         }
          
          
         .description {
         .description {
             color: var(--accent-color);
             color:#808080;
             font-size: 1.1rem;
             font-size:1rem;
             font-style: italic;
             font-style: italic;
            margin-top: 5px;
            text-align: center;
         }
         }
          
          
         .selector-container {
         .selector-container {
             display: flex;
             display: grid;
             flex-wrap: wrap;
             grid-template-columns: 1fr 1fr;
             gap: 15px;
             gap: 15px;
             margin-bottom: 25px;
             margin-bottom: 20px;
             background: white;
             background: white;
             padding: 20px;
             padding: 15px;
             border-radius: 8px;
             border-radius: 8px;
             box-shadow: 0 4px 8px rgba(0,0,0,0.08);
             box-shadow: 0 4px 8px rgba(0,0,0,0.08);
             border: 1px solid var(--border-color);
             border: 1px solid var(--border-color);
        }
             direction: rtl;
       
             text-align: right;
        .testament-selector {
            flex: 1;
            min-width: 200px;
        }
       
        .book-chapter-container {
            display: flex;
            flex: 2;
            gap: 15px;
        }
       
        .book-selector {
            flex: 2;
        }
       
        .chapter-selector {
             flex: 1;
             min-width: 120px;
         }
         }
          
          
خط ۱۱۸: خط ۱۵۰:
             transition: all 0.3s;
             transition: all 0.3s;
             font-family: var(--font-family);
             font-family: var(--font-family);
            text-align: right;
            direction: rtl;
         }
         }
          
          
خط ۱۳۴: خط ۱۶۸:
             border: 1px solid var(--border-color);
             border: 1px solid var(--border-color);
             margin-bottom: 20px;
             margin-bottom: 20px;
            direction: rtl;
            text-align: right;
         }
         }
          
          
خط ۱۶۰: خط ۱۹۶:
             flex-wrap: wrap;
             flex-wrap: wrap;
             gap: 10px;
             gap: 10px;
            direction: rtl;
         }
         }
          
          
خط ۱۸۹: خط ۲۲۶:
             transform: none;
             transform: none;
             box-shadow: none;
             box-shadow: none;
        }
        .action-buttons {
            display: flex;
            gap: 10px;
        }
        .action-btn {
            padding: 12px 20px;
            background-color: var(--primary-color);
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.3s;
            font-size: 1rem;
            display: flex;
            align-items: center;
            gap: 8px;
            font-family: var(--font-family);
            box-shadow: 0 2px 4px rgba(0,0,0,0.2);
        }
        .action-btn:hover {
            background-color: #1a252f;
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
         }
         }


خط ۲۲۴: خط ۲۳۴:
             gap: 8px;
             gap: 8px;
             padding: 12px 20px;
             padding: 12px 20px;
             background-color: var(--accent-color);
             background-color: #87CEEB;
             color: white;
             color: #000000;
             text-decoration: none;
             text-decoration: none;
             border-radius: 6px;
             border-radius: 6px;
خط ۲۶۵: خط ۲۷۵:
             margin-bottom: 15px;
             margin-bottom: 15px;
             font-size: 1.5rem;
             font-size: 1.5rem;
        }
        .info-message {
            text-align: center;
            padding: 10px;
            background: #e7f3ff;
            border-radius: 5px;
            margin-top: 10px;
            font-size: 0.9rem;
            color: #0066cc;
         }
         }


خط ۲۷۰: خط ۲۹۰:
         @media (max-width: 768px) {
         @media (max-width: 768px) {
             .container {
             .container {
                 padding: 10px;
                 padding: 8px 10px;
             }
             }
              
              
             header {
             .app-header {
                 margin-bottom: 20px;
                 margin-bottom: 15px;
                 padding: 15px 0;
                 padding: 12px 15px;
            }
           
            .breadcrumb {
                font-size: 0.85rem;
                margin-bottom: 10px;
             }
             }
              
              
             h1 {
             .app-header h1 {
                 font-size: 1.8rem;
                 font-size: 1.5rem;
                 margin-bottom: 8px;
                 margin-bottom: 6px;
             }
             }
              
              
             .description {
             .description {
                 font-size: 1rem;
                 font-size: 0.9rem;
             }
             }
              
              
             .selector-container {
             .selector-container {
                 flex-direction: column;
                 grid-template-columns: 1fr;
                 gap: 15px;
                 gap: 10px;
                 margin-bottom: 20px;
                 margin-bottom: 20px;
                 padding: 15px;
                 padding: 15px;
            }
           
            .testament-selector {
                width: 100%;
            }
           
            .book-chapter-container {
                width: 100%;
                flex-direction: row;
                gap: 10px;
            }
           
            .book-selector {
                flex: 2;
            }
           
            .chapter-selector {
                flex: 1;
             }
             }
              
              
خط ۳۳۱: خط ۳۳۸:
             }
             }
              
              
             .nav-btn, .action-btn, .wiki-link {
             .nav-btn, .wiki-link {
                 width: 100%;
                 width: 100%;
                 justify-content: center;
                 justify-content: center;
            }
           
            .action-buttons {
                width: 100%;
                flex-direction: column;
             }
             }
         }
         }
خط ۳۴۷: خط ۳۴۹:
             }
             }
              
              
             .nav-btn, .action-btn, .wiki-link {
             .nav-btn, .wiki-link {
                 padding: 10px 15px;
                 padding: 10px 15px;
                 font-size: 0.9rem;
                 font-size: 0.9rem;
خط ۳۵۵: خط ۳۵۷:
                 padding: 30px 15px;
                 padding: 30px 15px;
                 font-size: 1rem;
                 font-size: 1rem;
            }
           
            .app-header {
                padding: 10px 12px;
            }
           
            .app-header h1 {
                font-size: 1.3rem;
             }
             }
         }
         }
خط ۳۷۵: خط ۳۸۵:
         }
         }


         .bible-icon {
         /* استایل برای راست‌چین کامل */
             font-size: 2.5rem;
        option {
            color: var(--secondary-color);
             direction: rtl;
             margin-bottom: 10px;
             text-align: right;
         }
         }
     </style>
     </style>
خط ۳۸۴: خط ۳۹۴:
<body>
<body>
     <div class="container">
     <div class="container">
         <header>
         <div class="app-header">
             <div class="bible-icon">
             <nav class="breadcrumb">
                 <i class="fas fa-bible"></i>
                <a href="https://www.pediabible.com" class="breadcrumb-home">خانه</a>
             </div>
                <span class="breadcrumb-separator">/</span>
             <h1>کتاب مقدس</h1>
                 <span class="breadcrumb-current">کتاب مقدس</span>
             <p class="description">مطالعه آنلاین کتاب مقدس به زبان فارسی</p>
             </nav>
         </header>
             <h1>کتاب مقدس آنلاین</h1>
             <p class="description">مطالعه ترجمه‌های مختلف بصورت کاربردی با واژه نامه تخصصی<br>
ترجمهٔ هزارهٔ نو و مژده هم‌اکنون قابل مطالعه‌اند و عهد جدید کامل شده است. واژه‌نامه‌ها به‌صورت روزانه و با دقت در حال اتصال و به‌روزرسانی هستند تا خدمتی ماندگار برای نسل حال و آیندگان در خداوند به‌جا بگذاریم.</p>
         </div>
          
          
         <div id="content-wrapper">
         <div id="content-wrapper">
خط ۴۰۲: خط ۴۱۵:
             'pediabible.com',
             'pediabible.com',
             'www.pediabible.com',
             'www.pediabible.com',
             'localhost', // برای توسعه
             'localhost',
             '127.0.0.1' // برای توسعه
             '127.0.0.1'
         ];
         ];


خط ۴۰۹: خط ۴۲۲:
         function isDomainAllowed() {
         function isDomainAllowed() {
             const currentDomain = window.location.hostname;
             const currentDomain = window.location.hostname;
             const isAllowed = ALLOWED_DOMAINS.some(domain =>
             console.log('🔍 بررسی دامنه:', currentDomain);
                currentDomain === domain ||  
           
                 currentDomain.endsWith('.' + domain)
            // اگر روی فایل محلی هستیم، اجازه بده
             );
            if (!currentDomain || currentDomain === '' || currentDomain === 'null') {
                 console.log('✅ فایل محلی - مجاز');
                return true;
             }
              
              
             console.log('🔍 بررسی دامنه:', {
             const isAllowed = ALLOWED_DOMAINS.some(domain => {
                دامنه_جاری: currentDomain,
                const match = currentDomain === domain || currentDomain.endsWith('.' + domain);
                 مجاز: isAllowed,
                if (match) {
                 دامنه_های_مجاز: ALLOWED_DOMAINS
                    console.log(`✅ دامنه ${currentDomain} مجاز است`);
                 }
                 return match;
             });
             });
           
            if (!isAllowed) {
                console.log(`❌ دامنه ${currentDomain} غیرمجاز است`);
            }
              
              
             return isAllowed;
             return isAllowed;
خط ۴۳۸: خط ۴۶۰:
         // تابع اصلی بارگذاری برنامه
         // تابع اصلی بارگذاری برنامه
         function loadApplication() {
         function loadApplication() {
            console.log('🚀 شروع بارگذاری با بررسی امنیتی...');
           
             if (!isDomainAllowed()) {
             if (!isDomainAllowed()) {
                console.log('❌ دسترسی غیرمجاز - نمایش پیام خطا');
                 showAccessDenied();
                 showAccessDenied();
                 return;
                 return;
             }
             }


            console.log('✅ دامنه مجاز - بارگذاری برنامه اصلی');
             // اگر دامنه مجاز باشد، برنامه اصلی بارگذاری می‌شود
             // اگر دامنه مجاز باشد، برنامه اصلی بارگذاری می‌شود
             initializeBibleApp();
             initializeBibleApp();
         }
         }
        // داده‌های کامل کتاب‌های مقدس
        const bibleBooks = {
            old: [
                { name: "پیدایش", chapters: 50, displayName: "پیدایش" },
                { name: "خروج", chapters: 40, displayName: "خروج" },
                { name: "لاویان", chapters: 27, displayName: "لاویان" },
                { name: "اعداد", chapters: 36, displayName: "اعداد" },
                { name: "تثنیه", chapters: 34, displayName: "تثنیه" },
                { name: "یوشع", chapters: 24, displayName: "یوشع" },
                { name: "داوران", chapters: 21, displayName: "داوران" },
                { name: "روت", chapters: 4, displayName: "روت" },
                { name: "اول سموئیل", chapters: 31, displayName: "اول سموئیل" },
                { name: "دوم سموئیل", chapters: 24, displayName: "دوم سموئیل" },
                { name: "اول پادشاهان", chapters: 22, displayName: "اول پادشاهان" },
                { name: "دوم پادشاهان", chapters: 25, displayName: "دوم پادشاهان" },
                { name: "اول تواریخ", chapters: 29, displayName: "اول تواریخ" },
                { name: "دوم تواریخ", chapters: 36, displayName: "دوم تواریخ" },
                { name: "عزرا", chapters: 10, displayName: "عزرا" },
                { name: "نحمیا", chapters: 13, displayName: "نحمیا" },
                { name: "استر", chapters: 10, displayName: "استر" },
                { name: "ایوب", chapters: 42, displayName: "ایوب" },
                { name: "مزامیر", chapters: 150, displayName: "مزامیر" },
                { name: "امثال سلیمان", chapters: 31, displayName: "امثال سلیمان" },
                { name: "جامعه", chapters: 12, displayName: "جامعه" },
                { name: "غزل غزلهای سلیمان", chapters: 8, displayName: "غزل غزلهای سلیمان" },
                { name: "اشعیا", chapters: 66, displayName: "اشعیا" },
                { name: "ارمیا", chapters: 52, displayName: "ارمیا" },
                { name: "مراثی ارمیا", chapters: 5, displayName: "مراثی ارمیا" },
                { name: "حزقیال", chapters: 48, displayName: "حزقیال" },
                { name: "دانیال", chapters: 12, displayName: "دانیال" },
                { name: "هوشع", chapters: 14, displayName: "هوشع" },
                { name: "یوئیل", chapters: 3, displayName: "یوئیل" },
                { name: "عاموس", chapters: 9, displayName: "عاموس" },
                { name: "عوبدیا", chapters: 1, displayName: "عوبدیا" },
                { name: "یونس", chapters: 4, displayName: "یونس" },
                { name: "میکاه", chapters: 7, displayName: "میکاه" },
                { name: "ناحوم", chapters: 3, displayName: "ناحوم" },
                { name: "حبقوق", chapters: 3, displayName: "حبقوق" },
                { name: "صفنیا", chapters: 3, displayName: "صفنیا" },
                { name: "حجی", chapters: 2, displayName: "حجی" },
                { name: "زکریا", chapters: 14, displayName: "زکریا" },
                { name: "ملاکی", chapters: 4, displayName: "ملاکی" }
            ],
            new: [
                { name: "متی", chapters: 28, displayName: "انجیل به قلم متی" },
                { name: "مرقس", chapters: 16, displayName: "انجیل به قلم مرقس" },
                { name: "لوقا", chapters: 24, displayName: "انجیل به قلم لوقا" },
                { name: "یوحنا", chapters: 21, displayName: "انجیل به قلم یوحنا" },
                { name: "اعمال ", chapters: 28, displayName: "اعمال " },
                { name: "رومیان", chapters: 16, displayName: "رساله به رومیان" },
                { name: "اول قرنتیان", chapters: 16, displayName: "رساله اول به قرنتیان" },
                { name: "دوم قرنتیان", chapters: 13, displayName: "رساله دوم به قرنتیان" },
                { name: "غلاطیان", chapters: 6, displayName: "رساله به غلاطیان" },
                { name: "افسسیان", chapters: 6, displayName: "رساله به افسسیان" },
                { name: "فیلیپیان", chapters: 4, displayName: "رساله به فیلیپیان" },
                { name: "کولسیان", chapters: 4, displayName: "رساله به کولسیان" },
                { name: "اول تسالونیکیان", chapters: 5, displayName: "رساله اول به تسالونیکیان" },
                { name: "دوم تسالونیکیان", chapters: 3, displayName: "رساله دوم به تسالونیکیان" },
                { name: "اول تیموتائوس", chapters: 6, displayName: "رساله اول به تیموتائوس" },
                { name: "دوم تیموتائوس", chapters: 4, displayName: "رساله دوم به تیموتائوس" },
                { name: "تیتوس", chapters: 3, displayName: "رساله به تیتوس" },
                { name: "فیلیمون", chapters: 1, displayName: "رساله به فیلیمون" },
                { name: "عبرانیان", chapters: 13, displayName: "رساله به عبرانیان" },
                { name: "یعقوب", chapters: 5, displayName: "رساله یعقوب" },
                { name: "اول پطرس", chapters: 5, displayName: "رساله اول پطرس" },
                { name: "دوم پطرس", chapters: 3, displayName: "رساله دوم پطرس" },
                { name: "اول یوحنا", chapters: 5, displayName: "رساله اول یوحنا" },
                { name: "دوم یوحنا", chapters: 1, displayName: "رساله دوم یوحنا" },
                { name: "سوم یوحنا", chapters: 1, displayName: "رساله سوم یوحنا" },
                { name: "یهودا", chapters: 1, displayName: "رساله یهودا" },
                { name: "کتاب مکاشفه", chapters: 22, displayName: "کتاب مکاشفه " }
            ]
        };


         // 🔧 برنامه اصلی کتاب مقدس
         // 🔧 برنامه اصلی کتاب مقدس
خط ۴۵۴: خط ۵۵۴:
             wrapper.innerHTML = `
             wrapper.innerHTML = `
                 <div class="selector-container">
                 <div class="selector-container">
                     <div class="testament-selector selector-box">
                     <div class="selector-box">
                        <h3 class="selector-title">ترجمه</h3>
                        <select id="translation-select">
                            <option value="">انتخاب ترجمه</option>
                            <option value="old">ترجمه قدیم</option>
                            <option value="hejre_nou">هزاره نو</option>
                            <option value="mozde">مژده</option>
                            <option value="daneshname">دانشنامه</option>
                        </select>
                    </div>
                   
                    <div class="selector-box">
                         <h3 class="selector-title">عهد</h3>
                         <h3 class="selector-title">عهد</h3>
                         <select id="testament-select">
                         <select id="testament-select" disabled>
                             <option value="">انتخاب عهد</option>
                             <option value="">انتخاب عهد</option>
                             <option value="old">عهد قدیم</option>
                             <option value="old">عهد قدیم</option>
خط ۴۶۳: خط ۵۷۴:
                     </div>
                     </div>
                      
                      
                     <div class="book-chapter-container">
                     <div class="selector-box">
                        <div class="book-selector selector-box">
                        <h3 class="selector-title">کتاب</h3>
                            <h3 class="selector-title">کتاب</h3>
                        <select id="book-select" disabled>
                            <select id="book-select" disabled>
                            <option value="">انتخاب کتاب</option>
                                <option value="">انتخاب کتاب</option>
                        </select>
                            </select>
                    </div>
                        </div>
                   
                       
                    <div class="selector-box">
                        <div class="chapter-selector selector-box">
                        <h3 class="selector-title">فصل</h3>
                            <h3 class="selector-title">فصل</h3>
                        <select id="chapter-select" disabled>
                            <select id="chapter-select" disabled>
                            <option value="">انتخاب فصل</option>
                                <option value="">انتخاب فصل</option>
                        </select>
                            </select>
                        </div>
                     </div>
                     </div>
                 </div>
                 </div>
                  
                  
                 <div class="bible-content">
                 <div class="bible-content">
                     <h2 class="chapter-title" id="chapter-title">لطفاً کتاب و فصل مورد نظر را انتخاب کنید</h2>
                     <h2 class="chapter-title" id="chapter-title">لطفاً ترجمه، کتاب و فصل مورد نظر را انتخاب کنید</h2>
                      
                      
                     <div id="verses-container">
                     <div id="verses-container">
خط ۴۸۷: خط ۵۹۶:
                             <div class="placeholder">
                             <div class="placeholder">
                                 <i class="fas fa-book-open"></i>
                                 <i class="fas fa-book-open"></i>
                                 <p>برای مطالعه کتاب مقدس، لطفاً ابتدا عهد، سپس کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                                 <p>برای مطالعه کتاب مقدس، لطفاً ابتدا ترجمه، سپس عهد، کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                             </div>
                             </div>
                         </div>
                         </div>
                    </div>
                   
                    <div class="info-message">
                        <i class="fas fa-info-circle"></i>
                        واژه ها در همین پنجره نمایش داده می‌شوند. برای تجربه بهتر مطالعه واژه در تب جدید: راست کلیک → Open in new tab
                     </div>
                     </div>
                      
                      
خط ۴۹۸: خط ۶۱۲:
                         </button>
                         </button>
                          
                          
                         <div class="action-buttons">
                         <a href="#" class="wiki-link" id="wiki-page-link" target="_blank" style="display: none;">
                            <button class="action-btn" id="clean-view">
                            <i class="fas fa-external-link-alt"></i>
                                <i class="fas fa-eye"></i>
                            صفحه کامل
                                نمایش تمیز
                        </a>
                            </button>
                            <a href="#" class="wiki-link" id="wiki-page-link" target="_blank" style="display: none;">
                                <i class="fas fa-external-link-alt"></i>
                                صفحه کامل
                            </a>
                        </div>
                          
                          
                         <button class="nav-btn" id="next-chapter" disabled>
                         <button class="nav-btn" id="next-chapter" disabled>
خط ۵۱۷: خط ۶۲۵:
             `;
             `;


             // داده‌های کامل کتاب‌های مقدس
             // داده‌های ترجمه‌های مختلف
             const bibleData = {
             const translations = {
                 old: [
                 'old': {
                    { name: "پیدایش", chapters: 50, displayName: "پیدایش" },
                     name: 'ترجمه قدیم',
                     { name: "خروج", chapters: 40, displayName: "خروج" },
                     baseUrl: 'https://www.pediabible.com/index.php?title=',
                     { name: "لاویان", chapters: 27, displayName: "لاویان" },
                     getPageTitle: function(bookDisplayName, chapter) {
                     { name: "اعداد", chapters: 36, displayName: "اعداد" },
                        return `${bookDisplayName} فصل ${chapter}`;
                    { name: "تثنیه", chapters: 34, displayName: "تثنیه" },
                     }
                    { name: "یوشع", chapters: 24, displayName: "یوشع" },
                },
                    { name: "داوران", chapters: 21, displayName: "داوران" },
                'hejre_nou': {
                     { name: "روت", chapters: 4, displayName: "روت" },
                     name: 'هزاره نو',
                    { name: "اول سموئیل", chapters: 31, displayName: "اول سموئیل" },
                     baseUrl: 'https://www.pediabible.com/index.php?title=',
                    { name: "دوم سموئیل", chapters: 24, displayName: "دوم سموئیل" },
                     getPageTitle: function(bookDisplayName, chapter) {
                    { name: "اول پادشاهان", chapters: 22, displayName: "اول پادشاهان" },
                        return `${bookDisplayName} هزاره نو فصل ${chapter}`;
                     { name: "دوم پادشاهان", chapters: 25, displayName: "دوم پادشاهان" },
                     }
                     { name: "اول تواریخ", chapters: 29, displayName: "اول تواریخ" },
                },
                     { name: "دوم تواریخ", chapters: 36, displayName: "دوم تواریخ" },
                'mozde': {
                    { name: "عزرا", chapters: 10, displayName: "عزرا" },
                     name: 'مژده',
                    { name: "نحمیا", chapters: 13, displayName: "نحمیا" },
                     baseUrl: 'https://www.pediabible.com/index.php?title=',
                    { name: "استر", chapters: 10, displayName: "استر" },
                     getPageTitle: function(bookDisplayName, chapter) {
                     { name: "ایوب", chapters: 42, displayName: "ایوب" },
                        return `${bookDisplayName} مژده فصل ${chapter}`;
                    { name: "مزامیر", chapters: 150, displayName: "مزامیر" },
                     }
                    { name: "امثال", chapters: 31, displayName: "امثال" },
                },
                    { name: "جامعه", chapters: 12, displayName: "جامعه" },
                'daneshname': {
                     { name: "غزل غزلهای سلیمان", chapters: 8, displayName: "غزل غزلهای سلیمان" },
                     name: 'دانشنامه',  
                     { name: "اشعیا", chapters: 66, displayName: "اشعیا" },
                     baseUrl: 'https://www.pediabible.com/index.php?title=',
                     { name: "ارمیا", chapters: 52, displayName: "ارمیا" },
                     getPageTitle: function(bookDisplayName, chapter) {
                    { name: "مراثی ارمیا", chapters: 5, displayName: "مراثی ارمیا" },
                        return `${bookDisplayName} دانشنامه فصل ${chapter}`;
                    { name: "حزقیال", chapters: 48, displayName: "حزقیال" },
                     }
                    { name: "دانیال", chapters: 12, displayName: "دانیال" },
                 }
                     { name: "هوشع", chapters: 14, displayName: "هوشع" },
                    { name: "یوئیل", chapters: 3, displayName: "یوئیل" },
                    { name: "عاموس", chapters: 9, displayName: "عاموس" },
                    { name: "عوبدیا", chapters: 1, displayName: "عوبدیا" },
                     { name: "یونس", chapters: 4, displayName: "یونس" },
                     { name: "میکا", chapters: 7, displayName: "میکا" },
                     { name: "ناحوم", chapters: 3, displayName: "ناحوم" },
                    { name: "حبقوق", chapters: 3, displayName: "حبقوق" },
                    { name: "صفنیا", chapters: 3, displayName: "صفنیا" },
                    { name: "حجی", chapters: 2, displayName: "حجی" },
                    { name: "زکریا", chapters: 14, displayName: "زکریا" },
                     { name: "ملاکی", chapters: 4, displayName: "ملاکی" }
                 ],
                new: [
                    { name: "متی", chapters: 28, displayName: "انجیل به قلم متی" },
                    { name: "مرقس", chapters: 16, displayName: "انجیل به قلم مرقس" },
                    { name: "لوقا", chapters: 24, displayName: "انجیل به قلم لوقا" },
                    { name: "یوحنا", chapters: 21, displayName: "انجیل به قلم یوحنا" },
                    { name: "اعمال رسولان", chapters: 28, displayName: "اعمال رسولان" },
                    { name: "رومیان", chapters: 16, displayName: "رساله به رومیان" },
                    { name: "اول قرنتیان", chapters: 16, displayName: "رساله اول به قرنتیان" },
                    { name: "دوم قرنتیان", chapters: 13, displayName: "رساله دوم به قرنتیان" },
                    { name: "غلاطیان", chapters: 6, displayName: "رساله به غلاطیان" },
                    { name: "افسسیان", chapters: 6, displayName: "رساله به افسسیان" },
                    { name: "فیلیپیان", chapters: 4, displayName: "رساله به فیلیپیان" },
                    { name: "کولسیان", chapters: 4, displayName: "رساله به کولسیان" },
                    { name: "اول تسالونیکیان", chapters: 5, displayName: "رساله اول به تسالونیکیان" },
                    { name: "دوم تسالونیکیان", chapters: 3, displayName: "رساله دوم به تسالونیکیان" },
                    { name: "اول تیموتائوس", chapters: 6, displayName: "رساله اول به تیموتائوس" },
                    { name: "دوم تیموتائوس", chapters: 4, displayName: "رساله دوم به تیموتائوس" },
                    { name: "طیطوس", chapters: 3, displayName: "رساله به طیطوس" },
                    { name: "فلیمون", chapters: 1, displayName: "رساله به فلیمون" },
                    { name: "عبرانیان", chapters: 13, displayName: "رساله به عبرانیان" },
                    { name: "یعقوب", chapters: 5, displayName: "رساله یعقوب" },
                    { name: "اول پطرس", chapters: 5, displayName: "رساله اول پطرس" },
                    { name: "دوم پطرس", chapters: 3, displayName: "رساله دوم پطرس" },
                    { name: "اول یوحنا", chapters: 5, displayName: "رساله اول یوحنا" },
                    { name: "دوم یوحنا", chapters: 1, displayName: "رساله دوم یوحنا" },
                    { name: "سوم یوحنا", chapters: 1, displayName: "رساله سوم یوحنا" },
                    { name: "یهودا", chapters: 1, displayName: "رساله یهودا" },
                    { name: "مکاشفه", chapters: 22, displayName: "مکاشفه یوحنا" }
                ]
             };
             };


             // عناصر DOM
             // عناصر DOM
            const translationSelect = document.getElementById('translation-select');
             const testamentSelect = document.getElementById('testament-select');
             const testamentSelect = document.getElementById('testament-select');
             const bookSelect = document.getElementById('book-select');
             const bookSelect = document.getElementById('book-select');
خط ۵۹۹: خط ۶۶۶:
             const prevChapterBtn = document.getElementById('prev-chapter');
             const prevChapterBtn = document.getElementById('prev-chapter');
             const nextChapterBtn = document.getElementById('next-chapter');
             const nextChapterBtn = document.getElementById('next-chapter');
            const cleanViewBtn = document.getElementById('clean-view');
             const wikiPageLink = document.getElementById('wiki-page-link');
             const wikiPageLink = document.getElementById('wiki-page-link');


             // متغیرهای وضعیت فعلی
             // متغیرهای وضعیت فعلی
            let currentTranslation = '';
             let currentTestament = '';
             let currentTestament = '';
             let currentBook = '';
             let currentBook = '';
             let currentChapter = 1;
             let currentChapter = 1;
             let currentViewMode = 'render';
 
             // رویداد تغییر ترجمه
            translationSelect.addEventListener('change', function() {
                currentTranslation = this.value;
               
                if (currentTranslation) {
                    testamentSelect.disabled = false;
                    testamentSelect.value = '';
                    bookSelect.disabled = true;
                    bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                    chapterSelect.disabled = true;
                    chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                    resetContent();
                } else {
                    resetAll();
                }
            });


             // رویداد تغییر عهد
             // رویداد تغییر عهد
خط ۶۱۶: خط ۶۹۹:
                     bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                     bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                      
                      
                     bibleData[currentTestament].forEach((book, index) => {
                     bibleBooks[currentTestament].forEach((book, index) => {
                         const option = document.createElement('option');
                         const option = document.createElement('option');
                         option.value = index;
                         option.value = index;
خط ۶۲۷: خط ۷۱۰:
                     resetContent();
                     resetContent();
                 } else {
                 } else {
                     resetAll();
                     bookSelect.disabled = true;
                    bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                    chapterSelect.disabled = true;
                    chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                    resetContent();
                 }
                 }
             });
             });
خط ۶۴۰: خط ۷۲۷:
                      
                      
                     const bookIndex = parseInt(currentBook);
                     const bookIndex = parseInt(currentBook);
                     const chaptersCount = bibleData[currentTestament][bookIndex].chapters;
                     const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters;
                      
                      
                     for (let i = 1; i <= chaptersCount; i++) {
                     for (let i = 1; i <= chaptersCount; i++) {
خط ۶۷۰: خط ۷۵۷:
             });
             });


             // نمایش فصل با iframe
             // نمایش فصل با iframe - فقط محتوای اصلی
             function displayChapterWithIframe() {
             function displayChapterWithIframe() {
                 const bookIndex = parseInt(currentBook);
                 const bookIndex = parseInt(currentBook);
                 const bookData = bibleData[currentTestament][bookIndex];
                 const bookData = bibleBooks[currentTestament][bookIndex];
                 const bookName = bookData.name;
                 const bookName = bookData.name;
                 const bookDisplayName = bookData.displayName;
                 const bookDisplayName = bookData.displayName;
                const translationName = translations[currentTranslation].name;
                  
                  
                 chapterTitle.textContent = `${bookName} - فصل ${currentChapter}`;
                 chapterTitle.textContent = `${translationName} - ${bookName} - فصل ${currentChapter}`;
                  
                  
                 const pageTitle = `${bookDisplayName} فصل ${currentChapter}`;
                 const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter);
                 const fullPageUrl = `https://www.pediabible.com/index.php?title=${encodeURIComponent(pageTitle)}`;
                 const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}&action=render`;
                const cleanPageUrl = `${fullPageUrl}&action=render`;
                  
                  
                 versesContainer.innerHTML = `
                 versesContainer.innerHTML = `
                     <iframe  
                     <iframe  
                         id="content-iframe"
                         id="content-iframe"
                         src="${getCurrentViewUrl()}"  
                         src="${contentUrl}"  
                         class="content-display"
                         class="content-display"
                         frameborder="0"
                         frameborder="0"
                         loading="lazy"
                         loading="lazy"
                        sandbox="allow-scripts allow-same-origin allow-forms allow-popups"
                         allowfullscreen>
                         allowfullscreen>
                     </iframe>
                     </iframe>
                 `;
                 `;
                  
                  
                 wikiPageLink.href = fullPageUrl;
                // اضافه کردن sandbox به iframe برای امنیت بیشتر
                const iframe = document.getElementById('content-iframe');
               
                 wikiPageLink.href = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                 wikiPageLink.style.display = 'flex';
                 wikiPageLink.style.display = 'flex';
                 updateNavigationButtons();
                 updateNavigationButtons();
             }
             }
            function getCurrentViewUrl() {
                const bookIndex = parseInt(currentBook);
                const bookData = bibleData[currentTestament][bookIndex];
                const bookDisplayName = bookData.displayName;
                const pageTitle = `${bookDisplayName} فصل ${currentChapter}`;
                const baseUrl = `https://www.pediabible.com/index.php?title=${encodeURIComponent(pageTitle)}`;
               
                return currentViewMode === 'render' ? `${baseUrl}&action=render` : baseUrl;
            }
            // رویداد دکمه نمایش تمیز
            cleanViewBtn.addEventListener('click', function() {
                currentViewMode = 'render';
                const iframe = document.getElementById('content-iframe');
                if (iframe) {
                    iframe.src = getCurrentViewUrl();
                }
            });


             function updateNavigationButtons() {
             function updateNavigationButtons() {
                 const bookIndex = parseInt(currentBook);
                 const bookIndex = parseInt(currentBook);
                 const chaptersCount = bibleData[currentTestament][bookIndex].chapters;
                 const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters;
                  
                  
                 prevChapterBtn.disabled = currentChapter <= 1;
                 prevChapterBtn.disabled = currentChapter <= 1;
خط ۷۳۶: خط ۸۰۸:
             nextChapterBtn.addEventListener('click', function() {
             nextChapterBtn.addEventListener('click', function() {
                 const bookIndex = parseInt(currentBook);
                 const bookIndex = parseInt(currentBook);
                 const chaptersCount = bibleData[currentTestament][bookIndex].chapters;
                 const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters;
                  
                  
                 if (currentChapter < chaptersCount) {
                 if (currentChapter < chaptersCount) {
خط ۷۴۶: خط ۸۱۸:


             function resetContent() {
             function resetContent() {
                 chapterTitle.textContent = 'لطفاً کتاب و فصل مورد نظر را انتخاب کنید';
                 chapterTitle.textContent = 'لطفاً ترجمه، کتاب و فصل مورد نظر را انتخاب کنید';
                 versesContainer.innerHTML = `
                 versesContainer.innerHTML = `
                     <div class="instructions">
                     <div class="instructions">
                         <div class="placeholder">
                         <div class="placeholder">
                             <i class="fas fa-book-open"></i>
                             <i class="fas fa-book-open"></i>
                             <p>برای مطالعه کتاب مقدس، لطفاً ابتدا عهد، سپس کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                             <p>برای مطالعه کتاب مقدس، لطفاً ابتدا ترجمه، سپس عهد، کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                         </div>
                         </div>
                     </div>
                     </div>
خط ۷۶۱: خط ۸۳۳:


             function resetAll() {
             function resetAll() {
                testamentSelect.disabled = true;
                testamentSelect.innerHTML = '<option value="">انتخاب عهد</option>';
                 bookSelect.disabled = true;
                 bookSelect.disabled = true;
                 bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                 bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
خط ۷۷۸: خط ۸۵۲:


         // 🔒 جلوگیری از دسترسی به توابع از کنسول
         // 🔒 جلوگیری از دسترسی به توابع از کنسول
         Object.defineProperty(window, 'bibleData', {
         Object.defineProperty(window, 'translations', {
             value: null,
             value: null,
             writable: false,
             writable: false,

نسخهٔ کنونی تا ‏۱۱ اکتبر ۲۰۲۵، ساعت ۲۲:۰۹

کتاب مقدس - مطالعه آنلاین

کتاب مقدس آنلاین

مطالعه ترجمه‌های مختلف بصورت کاربردی با واژه نامه تخصصی
ترجمهٔ هزارهٔ نو و مژده هم‌اکنون قابل مطالعه‌اند و عهد جدید کامل شده است. واژه‌نامه‌ها به‌صورت روزانه و با دقت در حال اتصال و به‌روزرسانی هستند تا خدمتی ماندگار برای نسل حال و آیندگان در خداوند به‌جا بگذاریم.