پرش به محتوا

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

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
 
(۸۷ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۱: خط ۱:
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<html lang="fa" dir="rtl">
<head>
<head>
خط ۵: خط ۴:
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>کتاب مقدس - مطالعه آنلاین</title>
     <title>کتاب مقدس - مطالعه آنلاین</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
     <style>
     <style>
         :root {
         :root {
             --primary-color: #2c3e50;
             --primary-color: #2c3e50;
             --secondary-color: #3498db;
             --secondary-color: #8B4513;
             --accent-color: #e74c3c;
             --accent-color: #A52A2A;
             --light-color: #ecf0f1;
             --light-color: #f8f5f2;
             --dark-color: #34495e;
             --dark-color: #3E2723;
             --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            --border-color: #D2B48C;
             --font-family: 'Times New Roman', serif;
         }
         }
          
          
خط ۲۳: خط ۲۴:
         body {
         body {
             font-family: var(--font-family);
             font-family: var(--font-family);
             background-color: #f5f7fa;
             background-color: #f5f1eb;
             color: var(--dark-color);
             color: var(--dark-color);
             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>');
            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: 20px;
             margin-bottom: 20px;
             padding: 15px 0;
             padding: 15px 20px;
             border-bottom: 1px solid #ddd;
             border-bottom: 2px solid var(--border-color);
            background: linear-gradient(to bottom, #f9f6f2, #f0e6d6);
            border-radius: 8px;
            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;
         }
         }
          
          
         h1 {
         .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;
        }
       
        .app-header h1 {
             color: var(--primary-color);
             color: var(--primary-color);
             margin-bottom: 8px;
             margin-bottom: 8px;
             font-size: 1.5rem;
             font-size: 1.8rem;
            text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
            font-weight: 700;
            text-align: center;
         }
         }
          
          
         .description {
         .description {
             color: #7f8c8d;
             color:#808080;
             font-size: 0.95rem;
             font-size:1rem;
            font-style: italic;
            margin-top: 5px;
            text-align: center;
         }
         }
          
          
         .bible-selector {
         .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;
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.08);
            border: 1px solid var(--border-color);
            direction: rtl;
            text-align: right;
         }
         }
          
          
         .selector-box {
         .selector-box {
            flex: 1;
            min-width: 200px;
             background: white;
             background: white;
             border-radius: 8px;
             border-radius: 6px;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
             padding: 12px;
             padding: 15px;
             border: 1px solid var(--border-color);
             transition: transform 0.3s ease;
        }
       
        .selector-box:hover {
            transform: translateY(-3px);
         }
         }
          
          
         .selector-title {
         .selector-title {
             font-size: 1.1rem;
             font-size: 1rem;
             margin-bottom: 12px;
             margin-bottom: 8px;
             color: var(--primary-color);
             color: var(--primary-color);
             border-bottom: 2px solid var(--secondary-color);
             border-bottom: 1px solid var(--border-color);
             padding-bottom: 6px;
             padding-bottom: 5px;
            text-align: center;
         }
         }
          
          
خط ۸۴: خط ۱۴۲:
             width: 100%;
             width: 100%;
             padding: 10px 12px;
             padding: 10px 12px;
             border: 1px solid #ddd;
             border: 1px solid var(--border-color);
             border-radius: 5px;
             border-radius: 4px;
             background-color: white;
             background-color: white;
             font-size: 0.95rem;
             font-size: 0.95rem;
             color: var(--dark-color);
             color: var(--dark-color);
             cursor: pointer;
             cursor: pointer;
             transition: border-color 0.3s;
             transition: all 0.3s;
            font-family: var(--font-family);
            text-align: right;
            direction: rtl;
         }
         }
          
          
         select:focus {
         select:focus {
             outline: none;
             outline: none;
             border-color: var(--secondary-color);
             border-color: var(--accent-color);
            box-shadow: 0 0 0 2px rgba(165, 42, 42, 0.2);
         }
         }
          
          
خط ۱۰۱: خط ۱۶۳:
             background: white;
             background: white;
             border-radius: 8px;
             border-radius: 8px;
             box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
             box-shadow: 0 4px 12px rgba(0,0,0,0.1);
             padding: 20px;
             padding: 25px;
             min-height: 300px;
             min-height: 500px;
            border: 1px solid var(--border-color);
            margin-bottom: 20px;
            direction: rtl;
            text-align: right;
         }
         }
          
          
         .chapter-title {
         .chapter-title {
             text-align: center;
             text-align: center;
             margin-bottom: 15px;
             margin-bottom: 20px;
             color: var(--primary-color);
             color: var(--primary-color);
             font-size: 1.3rem;
             font-size: 1.5rem;
            padding-bottom: 10px;
            border-bottom: 2px solid var(--border-color);
        }
       
        .content-display {
            width: 100%;
            height: 650px;
            border: 1px solid var(--border-color);
            border-radius: 6px;
            background: white;
         }
         }
          
          
خط ۱۱۶: خط ۱۹۲:
             display: flex;
             display: flex;
             justify-content: space-between;
             justify-content: space-between;
            align-items: center;
             margin-top: 25px;
             margin-top: 25px;
             flex-wrap: wrap;
             flex-wrap: wrap;
             gap: 10px;
             gap: 10px;
            direction: rtl;
         }
         }
          
          
         .nav-btn {
         .nav-btn {
             padding: 8px 16px;
             padding: 12px 20px;
             background-color: var(--secondary-color);
             background-color: var(--secondary-color);
             color: white;
             color: white;
             border: none;
             border: none;
             border-radius: 5px;
             border-radius: 6px;
             cursor: pointer;
             cursor: pointer;
             transition: background-color 0.3s;
             transition: all 0.3s;
             font-size: 0.9rem;
             font-size: 1rem;
            flex: 1;
            min-width: 120px;
            text-align: center;
             display: flex;
             display: flex;
             align-items: center;
             align-items: center;
             justify-content: center;
             gap: 8px;
             gap: 5px;
            font-family: var(--font-family);
             box-shadow: 0 2px 4px rgba(0,0,0,0.2);
         }
         }
          
          
         .nav-btn:hover {
         .nav-btn:hover {
             background-color: var(--primary-color);
             background-color: var(--accent-color);
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
         }
         }
          
          
         .nav-btn:disabled {
         .nav-btn:disabled {
             background-color: #bdc3c7;
             background-color: #b0a090;
             cursor: not-allowed;
             cursor: not-allowed;
            transform: none;
            box-shadow: none;
         }
         }


خط ۱۵۲: خط ۲۳۲:
             align-items: center;
             align-items: center;
             justify-content: center;
             justify-content: center;
             gap: 5px;
             gap: 8px;
             padding: 8px 16px;
             padding: 12px 20px;
             background-color: var(--accent-color);
             background-color: #87CEEB;
             color: white;
             color: #000000;
             text-decoration: none;
             text-decoration: none;
             border-radius: 5px;
             border-radius: 6px;
             transition: background-color 0.3s;
             transition: all 0.3s;
             font-size: 0.9rem;
             font-size: 1rem;
             text-align: center;
             font-family: var(--font-family);
            flex: 1;
             box-shadow: 0 2px 4px rgba(0,0,0,0.2);
             min-width: 120px;
         }
         }


         .wiki-link:hover {
         .wiki-link:hover {
             background-color: #c0392b;
             background-color: #8B0000;
        }
             transform: translateY(-2px);
 
             box-shadow: 0 4px 8px rgba(0,0,0,0.2);
        .loading {
             text-align: center;
             color: #7f8c8d;
            font-style: italic;
            padding: 30px;
         }
         }


خط ۱۷۹: خط ۲۵۳:
             text-align: center;
             text-align: center;
             color: #7f8c8d;
             color: #7f8c8d;
             padding: 15px;
             padding: 40px 20px;
             border: 1px dashed #ddd;
             border: 2px dashed var(--border-color);
            border-radius: 5px;
            margin-top: 15px;
            font-size: 0.9rem;
        }
 
        .iframe-container {
            margin-top: 15px;
            width: 100%;
        }
 
        .current-display {
            text-align: center;
            margin-bottom: 15px;
            padding: 8px;
            background: #f8f9fa;
            border-radius: 5px;
            font-size: 0.9rem;
        }
 
        .clean-iframe {
            width: 100%;
            height: 500px;
            border: 1px solid #ddd;
             border-radius: 8px;
             border-radius: 8px;
             background: white;
            margin-top: 20px;
            font-size: 1.1rem;
             background-color: var(--light-color);
         }
         }


         .access-denied {
         .access-denied {
             text-align: center;
             text-align: center;
             padding: 30px;
             padding: 40px;
             background: #fee;
             background: #fee;
             border-radius: 8px;
             border-radius: 8px;
             border: 2px solid #f5c6cb;
             border: 2px solid #f5c6cb;
             color: #721c24;
             color: #721c24;
            margin-top: 20px;
         }
         }


         .access-denied h3 {
         .access-denied h3 {
             color: #721c24;
             color: #721c24;
             margin-bottom: 12px;
             margin-bottom: 15px;
             font-size: 1.2rem;
             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: 15px;
                 margin-bottom: 15px;
                 padding: 10px 0;
                 padding: 12px 15px;
            }
           
            .breadcrumb {
                font-size: 0.85rem;
                margin-bottom: 10px;
             }
             }
              
              
             h1 {
             .app-header h1 {
                 font-size: 1.3rem;
                 font-size: 1.5rem;
                 margin-bottom: 5px;
                 margin-bottom: 6px;
             }
             }
              
              
خط ۲۴۳: خط ۳۱۲:
             }
             }
              
              
             .bible-selector {
             .selector-container {
                 flex-direction: column;
                 grid-template-columns: 1fr;
                 gap: 10px;
                 gap: 10px;
                 margin-bottom: 20px;
                 margin-bottom: 20px;
                padding: 15px;
             }
             }
              
              
             .selector-box {
             .bible-content {
                 min-width: 100%;
                 padding: 15px;
                 padding: 12px;
                 min-height: 450px;
             }
             }
              
              
             .selector-title {
             .chapter-title {
                 font-size: 1rem;
                 font-size: 1.3rem;
                 margin-bottom: 8px;
                 margin-bottom: 15px;
             }
             }
              
              
             select {
             .content-display {
                 padding: 8px 10px;
                 height: 500px;
                font-size: 0.9rem;
             }
             }
              
              
             .bible-content {
             .navigation {
                 padding: 15px;
                flex-direction: column;
                 gap: 10px;
             }
             }
              
              
             .chapter-title {
             .nav-btn, .wiki-link {
                 font-size: 1.1rem;
                 width: 100%;
                 margin-bottom: 12px;
                 justify-content: center;
             }
             }
           
        }
            .navigation {
 
                flex-direction: row;
        @media (max-width: 480px) {
                gap: 8px;
            .content-display {
                 margin-top: 20px;
                 height: 450px;
             }
             }
              
              
             .nav-btn, .wiki-link {
             .nav-btn, .wiki-link {
                 min-width: auto;
                 padding: 10px 15px;
                 flex: 1;
                 font-size: 0.9rem;
             }
             }
              
              
             .clean-iframe {
             .instructions {
                 height: 400px;
                 padding: 30px 15px;
                border-radius: 0;
                 font-size: 1rem;
                border-left: none;
                 border-right: none;
             }
             }
              
              
             .instructions {
             .app-header {
                 padding: 12px;
                 padding: 10px 12px;
                font-size: 0.85rem;
             }
             }
              
              
             .current-display {
             .app-header h1 {
                 font-size: 0.85rem;
                 font-size: 1.3rem;
                margin-bottom: 8px;
             }
             }
         }
         }


         @media (max-width: 480px) {
         /* استایل برای حالت انتخاب نشده */
            .clean-iframe {
        .placeholder {
                height: 350px;
            display: flex;
             }
             flex-direction: column;
              
             align-items: center;
             .navigation {
             justify-content: center;
                flex-wrap: nowrap;
             height: 100%;
             }
             color: #7f8c8d;
              
             text-align: center;
             .nav-btn, .wiki-link {
        }
                font-size: 0.8rem;
 
                padding: 6px 8px;
        .placeholder i {
             }
            font-size: 3rem;
            margin-bottom: 15px;
             color: var(--border-color);
        }
 
        /* استایل برای راست‌چین کامل */
        option {
            direction: rtl;
            text-align: right;
         }
         }
     </style>
     </style>
خط ۳۲۰: خط ۳۹۴:
<body>
<body>
     <div class="container">
     <div class="container">
         <header>
         <div class="app-header">
             <h1>کتاب مقدس</h1>
            <nav class="breadcrumb">
             <p class="description">مطالعه آنلاین کتاب مقدس به زبان فارسی</p>
                <a href="https://www.pediabible.com" class="breadcrumb-home">خانه</a>
         </header>
                <span class="breadcrumb-separator">/</span>
                <span class="breadcrumb-current">کتاب مقدس</span>
            </nav>
             <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;
خط ۳۶۱: خط ۴۵۰:
             wrapper.innerHTML = `
             wrapper.innerHTML = `
                 <div class="access-denied">
                 <div class="access-denied">
                     <h3>دسترسی محدود شده</h3>
                     <h3><i class="fas fa-ban"></i> دسترسی محدود شده</h3>
                     <p>این صفحه فقط بر روی دامنه <strong>pediabible.com</strong> قابل دسترسی است.</p>
                     <p>این صفحه فقط بر روی دامنه <strong>pediabible.com</strong> قابل دسترسی است.</p>
                     <p>دامنه فعلی: <code>${window.location.hostname}</code></p>
                     <p>دامنه فعلی: <code>${window.location.hostname}</code></p>
خط ۳۷۱: خط ۴۶۰:
         // تابع اصلی بارگذاری برنامه
         // تابع اصلی بارگذاری برنامه
         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: "کتاب مکاشفه " }
            ]
        };


         // 🔧 برنامه اصلی کتاب مقدس
         // 🔧 برنامه اصلی کتاب مقدس
خط ۳۸۶: خط ۵۵۳:
             // ایجاد ساختار HTML برنامه
             // ایجاد ساختار HTML برنامه
             wrapper.innerHTML = `
             wrapper.innerHTML = `
                 <div class="bible-selector">
                 <div class="selector-container">
                    <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">
                     <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>
                             <option value="new">عهد جدید</option>
                             <option value="new">عهد جدید</option>
خط ۳۹۹: خط ۵۷۷:
                         <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>
خط ۴۰۶: خط ۵۸۴:
                         <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 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="instructions">
                         <div class="instructions">
                             <p>برای مطالعه کتاب مقدس، لطفاً ابتدا عهد، سپس کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                             <div class="placeholder">
                                <i class="fas fa-book-open"></i>
                                <p>برای مطالعه کتاب مقدس، لطفاً ابتدا ترجمه، سپس عهد، کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                            </div>
                         </div>
                         </div>
                    </div>
                   
                    <div class="info-message">
                        <i class="fas fa-info-circle"></i>
                        واژه ها در همین پنجره نمایش داده می‌شوند. برای تجربه بهتر مطالعه واژه در تب جدید: راست کلیک → Open in new tab
                     </div>
                     </div>
                      
                      
                     <div class="navigation">
                     <div class="navigation">
                         <button class="nav-btn" id="prev-chapter" disabled>⏪ فصل قبلی</button>
                         <button class="nav-btn" id="prev-chapter" disabled>
                        <button class="nav-btn" id="clean-view" style="display: none;">🧹 نمایش تمیز</button>
                            <i class="fas fa-arrow-right"></i>
                         <button class="nav-btn" id="full-view" style="display: none;">📄 صفحه کامل</button>
                            فصل قبلی
                         <a href="#" class="wiki-link" id="wiki-page-link" target="_blank" style="display: none;">🔄 باز کردن در تب جدید</a>
                         </button>
                         <button class="nav-btn" id="next-chapter" disabled>فصل بعدی </button>
                       
                         <a href="#" class="wiki-link" id="wiki-page-link" target="_blank" style="display: none;">
                            <i class="fas fa-external-link-alt"></i>
                            صفحه کامل
                        </a>
                       
                         <button class="nav-btn" id="next-chapter" disabled>
                            فصل بعدی
                            <i class="fas fa-arrow-left"></i>
                        </button>
                     </div>
                     </div>
                 </div>
                 </div>
             `;
             `;


             // داده‌های کامل کتاب‌های مقدس
             // داده‌های ترجمه‌های مختلف
             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) {
                     // ... بقیه کتاب‌ها
                        return `${bookDisplayName} هزاره نو فصل ${chapter}`;
                 ],
                     }
                 new: [
                 },
                     { name: "متی", chapters: 28, displayName: "انجیل به قلم متی" },
                 'mozde': {
                     { name: "مرقس", chapters: 16, displayName: "انجیل به قلم مرقس" },
                     name: 'مژده',
                     { name: "لوقا", chapters: 24, displayName: "انجیل به قلم لوقا" },
                    baseUrl: 'https://www.pediabible.com/index.php?title=',
                    { name: "یوحنا", chapters: 21, displayName: "انجیل به قلم یوحنا" },
                     getPageTitle: function(bookDisplayName, chapter) {
                    { name: "اعمال رسولان", chapters: 28, displayName: "اعمال رسولان" },
                        return `${bookDisplayName} مژده فصل ${chapter}`;
                     { name: "رومیان", chapters: 16, displayName: "رساله به رومیان" },
                     }
                     { name: "اول قرنتیان", chapters: 16, displayName: "رساله اول به قرنتیان" },
                },
                     { name: "دوم قرنتیان", chapters: 13, displayName: "رساله دوم به قرنتیان" },
                'daneshname': {
                    { name: "غلاطیان", chapters: 6, displayName: "رساله به غلاطیان" },
                     name: 'دانشنامه',  
                    { name: "افسسیان", chapters: 6, displayName: "رساله به افسسیان" }
                     baseUrl: 'https://www.pediabible.com/index.php?title=',
                     // ... بقیه کتاب‌ها
                     getPageTitle: function(bookDisplayName, chapter) {
                 ]
                        return `${bookDisplayName} دانشنامه فصل ${chapter}`;
                     }
                 }
             };
             };


             // عناصر 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 fullViewBtn = document.getElementById('full-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();
                }
            });


             // رویداد تغییر عهد
             // رویداد تغییر عهد
خط ۴۸۴: خط ۶۹۷:
                 if (currentTestament) {
                 if (currentTestament) {
                     bookSelect.disabled = false;
                     bookSelect.disabled = false;
                     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;
خط ۴۹۴: خط ۷۰۷:
                      
                      
                     chapterSelect.disabled = true;
                     chapterSelect.disabled = true;
                     chapterSelect.innerHTML = '<option value="">ابتدا یک کتاب را انتخاب کنید</option>';
                     chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                     resetContent();
                     resetContent();
                 } else {
                 } else {
                     resetAll();
                     bookSelect.disabled = true;
                    bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>';
                    chapterSelect.disabled = true;
                    chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                    resetContent();
                 }
                 }
             });
             });
خط ۵۰۷: خط ۷۲۴:
                 if (currentBook !== '') {
                 if (currentBook !== '') {
                     chapterSelect.disabled = false;
                     chapterSelect.disabled = false;
                     chapterSelect.innerHTML = '<option value="">یک فصل را انتخاب کنید</option>';
                     chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                      
                      
                     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++) {
خط ۵۲۱: خط ۷۳۸:
                     prevChapterBtn.disabled = true;
                     prevChapterBtn.disabled = true;
                     nextChapterBtn.disabled = true;
                     nextChapterBtn.disabled = true;
                    cleanViewBtn.style.display = 'none';
                    fullViewBtn.style.display = 'none';
                     wikiPageLink.style.display = 'none';
                     wikiPageLink.style.display = 'none';
                 } else {
                 } else {
                     chapterSelect.disabled = true;
                     chapterSelect.disabled = true;
                     chapterSelect.innerHTML = '<option value="">ابتدا یک کتاب را انتخاب کنید</option>';
                     chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                     resetContent();
                     resetContent();
                 }
                 }
خط ۵۴۲: خط ۷۵۷:
             });
             });


             // نمایش فصل با 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 = `
                     <div class="iframe-container">
                     <iframe  
                        <div class="current-display">
                         id="content-iframe"
                            📖 در حال نمایش: <strong>${bookName} فصل ${currentChapter}</strong>
                        src="${contentUrl}"  
                         </div>
                        class="content-display"
                        <iframe
                        frameborder="0"
                            id="content-iframe"
                        loading="lazy"
                            src="${getCurrentViewUrl()}"  
                        sandbox="allow-scripts allow-same-origin allow-forms allow-popups"
                            class="clean-iframe"
                         allowfullscreen>
                            frameborder="0"
                     </iframe>
                            loading="lazy"
                            allowfullscreen>
                         </iframe>
                     </div>
                 `;
                 `;
                  
                  
                 // نمایش دکمه‌های حالت نمایش
                 // اضافه کردن sandbox به iframe برای امنیت بیشتر
                 cleanViewBtn.style.display = 'inline-flex';
                 const iframe = document.getElementById('content-iframe');
                fullViewBtn.style.display = 'inline-flex';
                  
                  
                // به‌روزرسانی وضعیت فعال دکمه‌ها
                 wikiPageLink.href = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`;
                updateViewButtons();
                 wikiPageLink.style.display = 'flex';
               
                 wikiPageLink.href = fullPageUrl;
                 wikiPageLink.style.display = 'inline-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;
            }
            function updateViewButtons() {
                if (currentViewMode === 'render') {
                    cleanViewBtn.style.backgroundColor = var(--primary-color);
                    fullViewBtn.style.backgroundColor = var(--secondary-color);
                } else {
                    cleanViewBtn.style.backgroundColor = var(--secondary-color);
                    fullViewBtn.style.backgroundColor = var(--primary-color);
                }
            }
            // رویداد دکمه نمایش تمیز
            cleanViewBtn.addEventListener('click', function() {
                currentViewMode = 'render';
                const iframe = document.getElementById('content-iframe');
                if (iframe) {
                    iframe.src = getCurrentViewUrl();
                }
                updateViewButtons();
            });
            // رویداد دکمه نمایش کامل
            fullViewBtn.addEventListener('click', function() {
                currentViewMode = 'full';
                const iframe = document.getElementById('content-iframe');
                if (iframe) {
                    iframe.src = getCurrentViewUrl();
                }
                updateViewButtons();
            });


             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 = '<div class="instructions"><p>برای مطالعه کتاب مقدس، لطفاً ابتدا عهد، سپس کتاب و فصل مورد نظر خود را انتخاب کنید.</p></div>';
                 versesContainer.innerHTML = `
                    <div class="instructions">
                        <div class="placeholder">
                            <i class="fas fa-book-open"></i>
                            <p>برای مطالعه کتاب مقدس، لطفاً ابتدا ترجمه، سپس عهد، کتاب و فصل مورد نظر خود را انتخاب کنید.</p>
                        </div>
                    </div>
                `;
                 prevChapterBtn.disabled = true;
                 prevChapterBtn.disabled = true;
                 nextChapterBtn.disabled = true;
                 nextChapterBtn.disabled = true;
                cleanViewBtn.style.display = 'none';
                fullViewBtn.style.display = 'none';
                 wikiPageLink.style.display = 'none';
                 wikiPageLink.style.display = 'none';
             }
             }


             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>';
                 chapterSelect.disabled = true;
                 chapterSelect.disabled = true;
                 chapterSelect.innerHTML = '<option value="">ابتدا یک کتاب را انتخاب کنید</option>';
                 chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>';
                 resetContent();
                 resetContent();
             }
             }
خط ۶۷۸: خط ۸۵۲:


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

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

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

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

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