ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CTET Paper 2 - , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 (CDP)  - M / > 8 8 G   ( 0 G  0 </title> <link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='45' fill='%238e24aa'/%3E%3Ctext x='50' y='67' font-size='40' text-anchor='middle' fill='white' font-weight='bold'%3E, %3C/text%3E%3C/svg%3E" rel="icon"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> :root { --primary: #8e24aa; --primary-dark: #6a1b9a; --secondary: #ce93d8; --danger: #f44336; --success: #43a047; --light: #f3e5f5; --dark: #4a148c; --gray: #7b1fa2; --border-radius: 12px; --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', 'Noto Sans', 'Noto Sans Devanagari', system-ui, -apple-system, sans-serif; } body { background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; color: var(--dark); line-height: 1.6; } .container { width: 100%; max-width: 1000px; background: white; border-radius: var(--border-radius); box-shadow: var(--box-shadow); overflow: hidden; transition: var(--transition); animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .header { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: white; padding: 30px 20px; text-align: center; position: relative; overflow: hidden; } .header::before { content: '>ØàÝ'; position: absolute; bottom: -30px; right: -30px; font-size: 120px; opacity: 0.15; transform: rotate(-15deg); } .header h1 { font-size: 1.6rem; margin-bottom: 10px; font-weight: 700; position: relative; z-index: 1; } .header p { font-size: 1rem; opacity: 0.9; position: relative; z-index: 1; } .header-controls { position: absolute; top: 20px; right: 20px; display: flex; gap: 12px; z-index: 5; } .header-controls .home-icon { position: relative; top: 0; left: 0; color: white; font-size: 24px; cursor: pointer; transition: var(--transition); text-decoration: none; display: inline-block; } .header-controls .home-icon:hover { transform: scale(1.1); color: rgba(255, 255, 255, 0.8); } .lang-toggle { background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 30px; color: white; padding: 6px 16px; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: flex; align-items: center; gap: 8px; } .lang-toggle:hover { background: rgba(255,255,255,0.3); } .lang-toggle i { font-size: 1rem; } .content-area { padding: 30px; } .hidden { display: none !important; } .btn { display: inline-block; padding: 12px 28px; border-radius: 50px; font-weight: 600; cursor: pointer; transition: var(--transition); border: none; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); margin: 10px 5px; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 8px 15px rgba(142, 36, 170, 0.3); } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #2e7d32; transform: translateY(-2px); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #d32f2f; transform: translateY(-2px); } .btn-level { background: var(--light); color: var(--dark); border: 2px solid var(--gray); font-size: 1.1rem; padding: 15px 30px; width: 200px; } .btn-level:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .btn-level.selected { background: var(--primary); color: white; border-color: var(--primary); } .btn-group { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0; } .level-buttons { display: flex; justify-content: center; gap: 20px; margin: 30px 0; flex-wrap: wrap; } .section-title { text-align: center; margin-bottom: 25px; color: var(--primary-dark); font-size: 1.5rem; position: relative; padding-bottom: 10px; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: var(--secondary); border-radius: 3px; } .checkbox-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin: 25px 0; max-height: 450px; overflow-y: auto; padding: 10px; border: 1px solid #eee; border-radius: 12px; } .checkbox-item { display: flex; align-items: center; } .checkbox-item input { margin-right: 10px; width: 18px; height: 18px; cursor: pointer; } .checkbox-item label { cursor: pointer; font-size: 0.85rem; } .practice-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin: 30px 0; } .option-card { background: white; border-radius: var(--border-radius); padding: 25px; box-shadow: var(--box-shadow); text-align: center; transition: var(--transition); cursor: pointer; border: 2px solid transparent; } .option-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .option-card.selected { border-color: var(--primary); background: rgba(142, 36, 170, 0.05); } .option-icon { font-size: 2.5rem; color: var(--primary); margin-bottom: 15px; } .option-title { font-size: 1.2rem; font-weight: 600; margin-bottom: 10px; color: var(--primary-dark); } .option-description { color: var(--gray); font-size: 0.85rem; } .question-count-selector { display: flex; justify-content: center; align-items: center; gap: 15px; margin: 20px 0; } .count-btn { width: 40px; height: 40px; border-radius: 50%; background: var(--light); border: 2px solid var(--gray); display: flex; align-items: center; justify-content: center; cursor: pointer; font-weight: bold; transition: var(--transition); } .count-btn:hover { background: var(--primary); color: white; border-color: var(--primary); } .question-count { font-size: 1.5rem; font-weight: 600; min-width: 60px; text-align: center; } .timer-options { display: flex; justify-content: center; gap: 15px; margin: 20px 0; flex-wrap: wrap; } .timer-btn { padding: 10px 20px; background: var(--light); border: 2px solid var(--gray); border-radius: 30px; cursor: pointer; transition: var(--transition); } .timer-btn.selected { background: var(--primary); color: white; border-color: var(--primary); } .question { margin-bottom: 20px; page-break-inside: avoid; } .question-text { font-weight: 500; margin-bottom: 8px; } .option { margin-left: 20px; margin-bottom: 5px; } .action-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-top: 40px; } .answer-sheet { margin-top: 40px; padding: 20px; background: #f8f9fa; border-radius: var(--border-radius); } .answer-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .answer-table th, .answer-table td { border: 1px solid #ddd; padding: 8px; text-align: center; } .answer-table th { background-color: var(--primary); color: white; } .instructions { margin-bottom: 30px; padding: 20px; background: #f3e5f5; border-radius: var(--border-radius); border-left: 5px solid var(--primary); } .instructions ol { padding-left: 20px; margin-top: 10px; } .paper-header { text-align: center; margin-bottom: 20px; } .home-icon { position: absolute; top: 20px; left: 20px; color: white; font-size: 24px; cursor: pointer; transition: var(--transition); z-index: 2; } .home-icon:hover { transform: scale(1.1); } @media (max-width: 768px) { .checkbox-container { grid-template-columns: 1fr; } .level-buttons { flex-direction: column; align-items: center; } .btn-level { width: 100%; max-width: 250px; } .header h1 { font-size: 1.2rem; } .header-controls { top: 12px; right: 12px; gap: 8px; } .lang-toggle { font-size: 0.7rem; padding: 4px 12px; } } @media print { .action-buttons { display: none; } .home-icon { display: none; } .header-controls { display: none; } .question { page-break-inside: avoid; } } .text-center { text-align: center; } </style> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4930137336556867" crossorigin="anonymous"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KMZ9RJ62EY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KMZ9RJ62EY'); </script> </head> <body> <div class="container" id="startContainer"> <div class="header"> <div class="header-controls"> <a href="ctet-exam-paper2-practice-set-generator.html" class="home-icon" ><i class="fas fa-home"></i></a> <button class="lang-toggle" id="langToggleBtn"><i class="fas fa-globe"></i> <span id="langLabel">9 ?  & @ </span></button> </div> <br /><br /> <h1 id="mainTitle"><i class="fas fa-brain"></i> CTET Paper 2 - , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 (CDP)  - M / > 8 8 G   ( 0 G  0 </h1> <p id="mainSubtitle">CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) 9 G $ A , > 2 5 ?  > 8 ,  ' ?  .  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 7 / 5 > 0  - M / > 8 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title" id="startTitle">>ØàÝ , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 -  - M / > 8 8 G   ( 0 G  0 </h2> <p class="text-center" id="startDesc">CTET Paper 2 9 G $ A , > 2 5 ?  > 8 ,  ' ?  .  G 8 ? & M ' >  $ , 6 ?  M 7 # 5 ? ' ? / >   5  . ( K 5 ?  M  > (  > 5 ? 8 M $ C $  - M / > 8 8 G  $ H / > 0  0 G  </p> <div class="btn-group"> <button class="btn btn-primary" id="startGeneratingBtn"><i class="fas fa-play"></i> <span id="startBtnText"> - M / > 8 8 G  , ( > ( > 6 A 0 B  0 G  </span></button> </div> </div> <div id="practiceTypeSelection" class="hidden"> <h2 class="section-title" id="practiceTypeTitle"> - M / > 8  > * M 0  > 0  A ( G  </h2> <p class="text-center" id="practiceTypeDesc"> * ( @ $ H / > 0 @  G  ( A 8 > 0  - M / > 8 8 G   A ( G  :</p> <div class="practice-options"> <div class="option-card" data-type="chapter-wise"> <div class="option-icon"><i class="fas fa-book-open"></i></div> <div class="option-title" id="optChapterTitle">5 ? 7 / > ( A 8 > 0  - M / > 8 </div> <div class="option-description" id="optChapterDesc"> ? 8 @ 5 ? 6 G 7 5 ? 7 /  >  9 (  - M / > 8  0 G  </div> </div> <div class="option-card" data-type="full-length"> <div class="option-icon"><i class="fas fa-file-alt"></i></div> <div class="option-title" id="optFullTitle">* B 0 M # 2  , >   G 8 M  </div> <div class="option-description" id="optFullDesc">CTET * H  0 M ( * 0  ' > 0 ? $ 50 * M 0 6 M ( K   > 8 G  </div> </div> <div class="option-card" data-type="previous-year"> <div class="option-icon"><i class="fas fa-calendar-alt"></i></div> <div class="option-title" id="optPrevTitle">* ?  2 G 5 0 M 7 K   G * M 0 6 M ( </div> <div class="option-description" id="optPrevDesc">* ?  2 @ TET * 0 @  M 7 >   * 0  ' > 0 ? $ * M 0 6 M ( </div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn"><span id="backStartBtnText">* @  G  >   </span></button> <button class="btn btn-success" id="proceedToChaptersBtn"><span id="proceedBtnText">5 ? 7 /  A ( G  ’!</span></button> </div> </div> <div id="chapterSelection" class="hidden"> <h2 class="section-title" id="chapterTitle">=ØÚÜ , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 - 5 ? 7 /  A ( G  </h2> <form id="chapterForm"> <div class="checkbox-container" id="cdpTopicsContainer"></div> </form> <div id="questionCountSection"> <h3 class="section-title" id="qCountTitle">* M 0 6 M ( K   @ 8   M / >  A ( G  </h3> <div class="question-count-selector"> <div class="count-btn" id="decreaseCount">-</div> <div class="question-count" id="questionCount">50</div> <div class="count-btn" id="increaseCount">+</div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToPracticeTypeBtn"><span id="backPracticeBtnText">* @  G </span></button> <button class="btn btn-success" id="generateAssignmentBtn"><span id="generateAssignBtnText"> ? ( >  8 M $ 0  A ( G  ’!</span></button> </div> </div> <div id="levelSelection" class="hidden"> <h2 class="section-title" id="levelTitle"> ? ( >  8 M $ 0  A ( G  </h2> <p class="text-center" id="levelDesc">CTET Paper 2 * 0 @  M 7 >  G  ( A 8 > 0 8 M $ 0  A ( G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn"><span id="l1Title">Level 1</span><br><small id="l1Sub">, A ( ? / > & @ (* M 0 > 0  - ?  )</small></button> <button class="btn btn-level" id="level2Btn"><span id="l2Title">Level 2</span><br><small id="l2Sub">. ' M / . (CTET 8 M $ 0 )</small></button> <button class="btn btn-level" id="level3Btn"><span id="l3Title">Level 3</span><br><small id="l3Sub">  M  (6 ?  M 7  * > $ M 0 $ > )</small></button> </div> <div id="timerOptions"> <h3 class="section-title" id="timerTitle">8 . / 8 @ . >  A ( G  </h3> <div class="timer-options"> <div class="timer-btn" data-time="30"><span id="t30">30 . ? (  </span></div> <div class="timer-btn" data-time="45"><span id="t45">45 . ? (  </span></div> <div class="timer-btn" data-time="60" class="selected"><span id="t60">60 . ? (  </span></div> <div class="timer-btn" data-time="90"><span id="t90">90 . ? (  </span></div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToChaptersBtn"><span id="backChaptersBtnText">5 ? 7 / K  * 0 5 > * 8 </span></button> <button class="btn btn-success" id="generateFinalBtn"><span id="generateFinalBtnText"> - M / > 8 8 G   ( 0 G   0 G  </span></button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; // ===================================================== // BILINGUAL QUESTIONS DATABASE (19 TOPICS) - CTET Paper 2 // ===================================================== const questionBank = {}; // Helper to add questions function addQuestions(topicKey, enQ, hiQ) { if (!questionBank[topicKey]) questionBank[topicKey] = { en: { level1: [], level2: [], level3: [] }, hi: { level1: [], level2: [], level3: [] } }; const levels = ['level1', 'level2', 'level3']; enQ.forEach((q, idx) => { const levelKey = levels[idx] || 'level1'; questionBank[topicKey].en[levelKey].push(q); }); hiQ.forEach((q, idx) => { const levelKey = levels[idx] || 'level1'; questionBank[topicKey].hi[levelKey].push(q); }); } // Topic 1 addQuestions('5 ?  > 8  @  5 ' > 0 # >  0 8 @  ( G  G 8 > %  8  > 8  ,  ' ', [ { question: "What is the concept of development?", options: ["Quantitative changes", "Qualitative changes", "Both quantitative and qualitative", "Physical growth only"], answer: "C" }, { question: "Development is related to:", options: ["Only physical growth", "Only mental growth", "Overall growth", "Social growth only"], answer: "C" }, { question: "Which is true about development?", options: ["It is continuous", "It is discontinuous", "It is only physical", "It stops after adolescence"], answer: "A" } ], [ { question: "5 ?  > 8  @  5 ' > 0 # >  M / > 9 H ?", options: [". > $ M 0 > $ M .  * 0 ? 5 0 M $ ( ", " A # > $ M .  * 0 ? 5 0 M $ ( ", ". > $ M 0 > $ M .   0  A # > $ M .  & K ( K  ", " G 5 2 6 > 0 @ 0 ?  5 C & M ' ? "], answer: "C" }, { question: "5 ?  > 8  > 8  ,  '  ? 8 8 G 9 H ?", options: [" G 5 2 6 > 0 @ 0 ?  5 C & M ' ? ", " G 5 2 . > ( 8 ?  5 C & M ' ? ", "8 .  M 0 5 C & M ' ? ", " G 5 2 8 > . >  ?  5 C & M ' ? "], answer: "C" }, { question: "5 ?  > 8  G , > 0 G . G   L ( 8 > 8 $ M / 9 H ?", options: ["/ 9 8 $ $ 9 H ", "/ 9  8 $ $ 9 H ", "/ 9  G 5 2 6 > 0 @ 0 ?  9 H ", "/ 9  ? 6 K 0 > 5 8 M % >  G , > & 0 A   > $ > 9 H "], answer: "A" } ] ); // Topic 2 addQuestions(', > 2 5 ?  > 8  G 8 ? & M ' >  $ ', [ { question: "Which is a principle of child development?", options: ["Development follows a pattern", "Development is rapid", "Development is slow", "Development is haphazard"], answer: "A" }, { question: "The principle of 'cephalocaudal' means:", options: ["Head to toe", "Center to periphery", "Simple to complex", "General to specific"], answer: "A" }, { question: "Development is:", options: ["Predictable", "Unpredictable", "Random", "Static"], answer: "A" } ], [ { question: ", > 2 5 ?  > 8  >  L ( 8 > 8 ? & M ' >  $ 9 H ?", options: ["5 ?  > 8   * H  0 M (  >  ( A 8 0 #  0 $ > 9 H ", "5 ?  > 8 $ @ 5 M 0 9 H ", "5 ?  > 8 ' @ . > 9 H ", "5 ?  > 8  5 M / 5 8 M % ? $ 9 H "], answer: "A" }, { question: "'8 ? + H 2 K  I ! 2 ' 8 ? & M ' >  $  >  0 M % 9 H :", options: ["8 ? 0 8 G * H 0 $  ", " G  & M 0 8 G * 0 ? ' ? $  ", "8 0 2 8 G   ? 2 ", "8 > . > ( M / 8 G 5 ? 6 G 7 "], answer: "A" }, { question: "5 ?  > 8 9 H :", options: ["* B 0 M 5 > ( A . G / ", " * M 0 $ M / > 6 ? $ ", "/ > & C  M  ?  ", "8 M % ? 0 "], answer: "A" } ] ); // Topic 3 addQuestions('* 0 M / > 5 0 #  0  ( A 5  6 ?  $ >  > * M 0 - > 5 ', [ { question: "Which factors influence development?", options: ["Heredity only", "Environment only", "Both heredity and environment", "Nutrition only"], answer: "C" }, { question: "Heredity provides:", options: ["Innate potential", "Learned behavior", "Environmental influences", "Social skills"], answer: "A" }, { question: "Environment includes:", options: ["Physical surroundings", "Social surroundings", "Both physical and social", "Only family"], answer: "C" } ], [ { question: "5 ?  > 8  K  L ( 8 G  > 0  * M 0 - > 5 ? $  0 $ G 9 H  ?", options: [" G 5 2  ( A 5  6 ?  $ > ", " G 5 2 * 0 M / > 5 0 # ", " ( A 5  6 ?  $ >  0 * 0 M / > 5 0 # & K ( K  ", " G 5 2 * K 7 # "], answer: "C" }, { question: " ( A 5  6 ?  $ > * M 0 & > (  0 $ @ 9 H :", options: [" ( M .  > $  M 7 . $ > ", " 0 M  ? $ 5 M / 5 9 > 0 ", "* 0 M / > 5 0 # @ / * M 0 - > 5 ", "8 > . >  ?   L 6 2 "], answer: "A" }, { question: "* 0 M / > 5 0 # . G  6 > . ? 2 9 H :", options: ["- L $ ?  * 0 ? 5 G 6 ", "8 > . >  ?  * 0 ? 5 G 6 ", "- L $ ?   0 8 > . >  ?  & K ( K  ", " G 5 2 * 0 ? 5 > 0 "], answer: "C" } ] ); // Topic 4 addQuestions('8 . >  @  0 # * M 0  M 0 ? / >  5  8 . >  ?  & A ( ? / >  0 ,  M  G ', [ { question: "Socialization is the process of:", options: ["Learning social norms", "Physical growth", "Cognitive development", "Emotional development"], answer: "A" }, { question: "Primary agent of socialization is:", options: ["Family", "School", "Peer group", "Media"], answer: "A" }, { question: "Secondary socialization occurs in:", options: ["School", "Family", "Playground", "Home"], answer: "A" } ], [ { question: "8 . >  @  0 #  @ * M 0  M 0 ? / > 9 H :", options: ["8 > . >  ?  . > ( &  ! 8 @  ( > ", "6 > 0 @ 0 ?  5 C & M ' ? ", "8   M  > ( > $ M .  5 ?  > 8 ", "- > 5 ( > $ M .  5 ?  > 8 "], answer: "A" }, { question: "8 . >  @  0 #  > * M 0 > % . ?    G   9 H :", options: ["* 0 ? 5 > 0 ", "5 ? & M / > 2 / ", "8 9 * > @ 8 . B 9 ", ". @ ! ? / > "], answer: "A" }, { question: "& M 5 ? $ @ /  8 . >  @  0 #  9 >  9 K $ > 9 H ?", options: ["5 ? & M / > 2 / . G  ", "* 0 ? 5 > 0 . G  ", " G 2  G . H & > ( . G  ", " 0 * 0 "], answer: "A" } ] ); // Topic 5 addQuestions('* ? / >  G ,  K 9 2 5 0 M  , 5 > / A  K 2 M * ?  @ : 8  0  ( >  0  2 K  ( > $ M .  & C 7 M  ?  K # ', [ { question: "Piaget's cognitive development has how many stages?", options: ["4", "3", "5", "6"], answer: "A" }, { question: "Kohlberg's theory is related to:", options: ["Moral development", "Cognitive development", "Language development", "Physical development"], answer: "A" }, { question: "Vygotsky emphasized:", options: ["Social interaction", "Genetic factors", "Individual learning", "Reward and punishment"], answer: "A" } ], [ { question: "* ? / >  G  G 8   M  > ( > $ M .  5 ?  > 8  @  ? $ ( @  5 8 M % >   9 H  ?", options: ["4", "3", "5", "6"], answer: "A" }, { question: " K 9 2 , 0 M   > 8 ? & M ' >  $ 8  ,  ' ? $ 9 H :", options: ["( H $ ?  5 ?  > 8 8 G ", "8   M  > ( > $ M .  5 ?  > 8 8 G ", "- > 7 > 5 ?  > 8 8 G ", "6 > 0 @ 0 ?  5 ?  > 8 8 G "], answer: "A" }, { question: "5 > /  K $ M 8 M  @ ( G  ? 8 * 0  K 0 & ? / > ?", options: ["8 > . >  ?    $   M 0 ? / > ", " ( A 5  6 ?   > 0  ", "5 M /  M $ ?  $  ' ?  . ", "* A 0 8 M  > 0  0 &  ! "], answer: "A" } ] ); // Topic 6 addQuestions(', > 2 - G  & M 0 ? $  0 * M 0  $ ? 6 @ 2 6 ?  M 7 >  @  5 ' > 0 # > ', [ { question: "Child-centered education focuses on:", options: ["Child's interests", "Teacher's control", "Curriculum", "Examinations"], answer: "A" }, { question: "Progressive education believes in:", options: ["Learning by doing", "Rote learning", "Teacher dominance", "Bookish knowledge"], answer: "A" }, { question: "Who is the father of progressive education?", options: ["John Dewey", "Piaget", "Vygotsky", "Kohlberg"], answer: "A" } ], [ { question: ", > 2 - G  & M 0 ? $ 6 ?  M 7 >  ? 8 * 0  G  & M 0 ? $ 9 H ?", options: [", > 2   @ 0 A  ? / >  ", "6 ?  M 7   > ( ? /  $ M 0 # ", "* > M /  M 0 . ", "* 0 @  M 7 >   "], answer: "A" }, { question: "* M 0  $ ? 6 @ 2 6 ?  M 7 >  ? 8 * 0 5 ? 6 M 5 > 8  0 $ @ 9 H ?", options: [" 0  G 8 @  ( > ", "0   0 8 @  ( > ", "6 ?  M 7   > * M 0 - A $ M 5 ", " ? $ > , @  M  > ( "], answer: "A" }, { question: "* M 0  $ ? 6 @ 2 6 ?  M 7 >  G  (   L ( 9 H  ?", options: [" I ( ! @ 5 @ ", "* ? / >  G ", "5 > /  K $ M 8 M  @ ", " K 9 2 , 0 M  "], answer: "A" } ] ); // Topic 7 addQuestions(', A & M ' ? ( ? 0 M . > #  G 2 ?   2 K  ( > $ M .   0 , 9 A  / > . @ & C 7 M  ?  K # ', [ { question: "Multiple intelligence theory was given by:", options: ["Gardner", "Spearman", "Thurstone", "Cattell"], answer: "A" }, { question: "How many types of intelligence did Gardner propose?", options: ["8", "7", "9", "10"], answer: "A" }, { question: "Emotional intelligence is related to:", options: ["Understanding emotions", "Logical reasoning", "Physical strength", "Creativity"], answer: "A" } ], [ { question: ", 9 A -, A & M ' ? 8 ? & M ' >  $  ? 8 ( G & ? / > ?", options: [" > 0 M ! ( 0 ", "8 M * @ / 0 . H ( ", "% 0 M 8 M  K ( ", " H  G 2 "], answer: "A" }, { question: " > 0 M ! ( 0 ( G , A & M ' ?  G  ? $ ( G * M 0  > 0 , $ >  ?", options: ["8", "7", "9", "10"], answer: "A" }, { question: "- > 5 ( > $ M .  , A & M ' ? 8  ,  ' ? $ 9 H :", options: ["- > 5 ( >    K 8 .  ( G 8 G ", "$ > 0 M  ?  $ 0 M  8 G ", "6 > 0 @ 0 ?  6  M $ ? 8 G ", "0  ( > $ M .  $ > 8 G "], answer: "A" } ] ); // Topic 8 addQuestions('- > 7 >  0 5 ?  > 0 ', [ { question: "Language and thought are:", options: ["Interrelated", "Independent", "Language precedes thought", "Thought precedes language"], answer: "A" }, { question: "Vygotsky believed that language:", options: ["Shapes thought", "Is separate from thought", "Is a result of thought", "Has no relation"], answer: "A" }, { question: "Piaget believed that thought:", options: ["Precedes language", "Follows language", "Is unrelated", "Develops simultaneously"], answer: "A" } ], [ { question: "- > 7 >  0 5 ?  > 0 9 H  :", options: ["* 0 8 M * 0 8  ,  ' ? $ ", "8 M 5 $  $ M 0 ", "- > 7 > 5 ?  > 0 8 G * 9 2 G  $ @ 9 H ", "5 ?  > 0 - > 7 > 8 G * 9 2 G  $ > 9 H "], answer: "A" }, { question: "5 > /  K $ M 8 M  @  > . > ( ( > % >  ? - > 7 > :", options: ["5 ?  > 0  K   > 0 & G $ @ 9 H ", "5 ?  > 0 8 G  2  9 H ", "5 ?  > 0  > * 0 ? # > . 9 H ", " K  8  ,  ' ( 9 @  "], answer: "A" }, { question: "* ? / >  G  > . > ( ( > % >  ? 5 ?  > 0 :", options: ["- > 7 > 8 G * 9 2 G  $ > 9 H ", "- > 7 >  >  ( A 8 0 #  0 $ > 9 H ", " 8  ,  ' ? $ 9 H ", "  8 > % 5 ?  8 ? $ 9 K $ G 9 H  "], answer: "A" } ] ); // Topic 9 addQuestions('2 ?    @ - B . ?  > :   8 > . >  ?  8  0  ( >  G 0 B * . G  2 ?   , 2 ?   - B . ?  >   , 2 ?   -* B 0 M 5 > ' ?   0 6 H  M 7 # ?   - M / > 8 ', [ { question: "Gender is a:", options: ["Social construct", "Biological fact", "Psychological trait", "Cultural norm"], answer: "A" }, { question: "Gender roles are determined by:", options: ["Society", "Biology", "Religion", "Education"], answer: "A" }, { question: "Gender bias in education can be reduced by:", options: ["Sensitive curriculum", "Separate schools", "Gender stereotypes", "Ignoring gender"], answer: "A" } ], [ { question: "2 ?     :", options: ["8 > . >  ?  8  0  ( > 9 H ", " H 5 ?  $ % M / 9 H ", ". ( K 5 H  M  > ( ?  2  M 7 # 9 H ", "8 >  8 M  C $ ?  . > ( &  ! 9 H "], answer: "A" }, { question: "2 ?   - B . ?  >    ? 8  G & M 5 > 0 > ( ? 0 M ' > 0 ? $ 9 K $ @ 9 H  ?", options: ["8 . >  ", " @ 5 5 ?  M  > ( ", "' 0 M . ", "6 ?  M 7 > "], answer: "A" }, { question: "6 ?  M 7 > . G  2 ?   * B 0 M 5 >  M 0 9  K  H 8 G  .  ? / >  > 8  $ > 9 H ?", options: ["8  5 G & ( 6 @ 2 * > M /  M 0 . ", " 2  8 M  B 2 ", "2 ?   0 B " < ? / >  ", "2 ?    @  ( & G  @ "], answer: "A" } ] ); // Topic 10 addQuestions('5 M /  M $ ? $ M 5  0 5 M /  M $ ?  $   $ 0 ', [ { question: "Personality is:", options: ["Unique pattern of traits", "Physical appearance", "Intellectual ability", "Social status"], answer: "A" }, { question: "Individual differences are caused by:", options: ["Heredity and environment", "Only heredity", "Only environment", "Education"], answer: "A" }, { question: "Personality assessment can be done by:", options: ["Projective tests", "Blood tests", "X-rays", "Physical exams"], answer: "A" } ], [ { question: "5 M /  M $ ? $ M 5 9 H :", options: ["2  M 7 # K   >  & M 5 ? $ @ / * H  0 M ( ", "6 > 0 @ 0 ?  & ?  > 5  ", ", L & M ' ?   M 7 . $ > ", "8 > . >  ?  8 M % ? $ ? "], answer: "A" }, { question: "5 M /  M $ ?  $   $ 0  ? 8  G  > 0 # 9 K $ G 9 H  ?", options: [" ( A 5  6 ?  $ >  0 * 0 M / > 5 0 # ", " G 5 2  ( A 5  6 ?  $ > ", " G 5 2 * 0 M / > 5 0 # ", "6 ?  M 7 > "], answer: "A" }, { question: "5 M /  M $ ? $ M 5 . > * (  ? 8  G & M 5 > 0 >  ? / >  > 8  $ > 9 H ?", options: ["* M 0  M 7 G * @ * 0 @  M 7 # ", "0  M $ * 0 @  M 7 # ", "  M 8 -0 G ", "6 > 0 @ 0 ?  * 0 @  M 7 # "], answer: "A" } ] ); // Topic 11 addQuestions('6 H  M 7 ?  . > * (  5  . B 2 M / >   ( ', [ { question: "Measurement in education refers to:", options: ["Quantitative description", "Qualitative description", "Assessment of learning", "Evaluation of teaching"], answer: "A" }, { question: "Formative evaluation is conducted:", options: ["During instruction", "At the end", "At the beginning", "After exams"], answer: "A" }, { question: "Summative evaluation aims to:", options: ["Assign grades", "Improve learning", "Diagnose difficulties", "Plan instruction"], answer: "A" } ], [ { question: "6 ?  M 7 > . G  . > * (  >  0 M % 9 H :", options: [". > $ M 0 > $ M .  5 0 M # ( ", " A # > $ M .  5 0 M # ( ", " ' ?  .  >   2 ( ", "6 ?  M 7 #  > . B 2 M / >   ( "], answer: "A" }, { question: "0  ( > $ M .  . B 2 M / >   (  ,  ? / >  > $ > 9 H ?", options: ["6 ?  M 7 #  G & L 0 > ( ", "  $ . G  ", "6 A 0 A  $ . G  ", "* 0 @  M 7 >  G , > & "], answer: "A" }, { question: "/ K  > $ M .  . B 2 M / >   (  > & M & G 6 M / 9 H :", options: [" M 0 G ! & G ( > ", "8 @  ( G . G  8 A ' > 0 ", " ? ( >  / K   > ( ? & > ( ", "6 ?  M 7 #  @ / K  ( > "], answer: "A" } ] ); // Topic 12 addQuestions('2 > - > ( M 5 ? $  0 5 ?  ? $ M 0 5 0 M  K  8 9 ? $ 5 ? 5 ? ' * C 7 M - B . ? / K   G 6 ?  M 7 > 0 M % ? / K   @ * 9  > ( ', [ { question: "Diverse learners include:", options: ["Children from different backgrounds", "Only gifted children", "Only disadvantaged children", "Only average children"], answer: "A" }, { question: "Inclusive education means:", options: ["Education for all", "Education for elite", "Separate education", "Special schools"], answer: "A" }, { question: "Disadvantaged children need:", options: ["Extra support", "Less attention", "No support", "Punishment"], answer: "A" } ], [ { question: "5 ? 5 ? ' 6 ?  M 7 > 0 M % ? / K  . G  6 > . ? 2 9 H  :", options: ["5 ? - ? ( M ( * C 7 M - B . ? / K   G ,  M  G ", " G 5 2 * M 0 $ ? - > 6 > 2 @ ,  M  G ", " G 5 2 5   ? $ ,  M  G ", " G 5 2  8 $ ,  M  G "], answer: "A" }, { question: "8 . > 5 G 6 @ 6 ?  M 7 >  >  0 M % 9 H :", options: ["8 - @  G 2 ?  6 ?  M 7 > ", " A 2 @ ( 5 0 M   G 2 ?  6 ?  M 7 > ", " 2  6 ?  M 7 > ", "5 ? 6 G 7 5 ? & M / > 2 / "], answer: "A" }, { question: "5   ? $ ,  M  K   K  > 9 ?  :", options: [" $ ? 0 ?  M $ 8 9 > / $ > ", " . ' M / > ( ", " K  8 9 > / $ > ( 9 @  ", "&  ! "], answer: "A" } ] ); // Topic 13 addQuestions('6 ?  M 7 #  0  ' ?  . ', [ { question: "Teaching is:", options: ["Facilitating learning", "Delivering content", "Conducting exams", "Managing classroom"], answer: "A" }, { question: "Learning is:", options: ["Change in behavior", "Acquiring knowledge", "Developing skills", "All of the above"], answer: "D" }, { question: "Effective teaching requires:", options: ["Understanding learners", "Mastering content", "Using methods", "All of the above"], answer: "D" } ], [ { question: "6 ?  M 7 # 9 H :", options: [" ' ?  .  K 8 A  . , ( > ( > ", "8 > .  M 0 @ * M 0 & > (  0 ( > ", "* 0 @  M 7 >  / K  ? $  0 ( > ", "  M 7 > * M 0 ,  ' ( "], answer: "A" }, { question: " ' ?  . 9 H :", options: ["5 M / 5 9 > 0 . G  * 0 ? 5 0 M $ ( ", " M  > (  0 M  ( ", " L 6 2 5 ?  > 8 ", " * 0 K  M $ 8 - @ "], answer: "D" }, { question: "* M 0 - > 5 @ 6 ?  M 7 #  G 2 ?   5 6 M /  9 H :", options: ["6 ?  M 7 > 0 M % ? / K   K 8 .  ( > ", "8 > .  M 0 @ . G  . 9 > 0 $ ", "5 ? ' ? / K   > * / K  ", " * 0 K  M $ 8 - @ "], answer: "D" } ] ); // Topic 14 addQuestions('8 @  ( G  @  ? ( >   0   M 7 . $ > 5 > 2 G ,  M  K   @  5 6 M /  $ >    @ * 9  > ( ', [ { question: "Learning disability affects:", options: ["Specific areas of learning", "Physical health", "Social skills", "Creativity"], answer: "A" }, { question: "Dyslexia is related to:", options: ["Reading difficulty", "Writing difficulty", "Math difficulty", "Speaking difficulty"], answer: "A" }, { question: "Children with learning difficulties need:", options: ["Special strategies", "Less time", "No help", "Punishment"], answer: "A" } ], [ { question: " ' ?  .   M 7 . $ > * M 0 - > 5 ? $  0 $ @ 9 H :", options: [" ' ?  .  G 5 ? 6 ? 7 M   M 7 G $ M 0 ", "6 > 0 @ 0 ?  8 M 5 > 8 M % M / ", "8 > . >  ?   L 6 2 ", "0  ( > $ M .  $ > "], answer: "A" }, { question: "! ? 8 M 2 G  M 8 ? / > 8  ,  ' ? $ 9 H :", options: ["* " < ( G . G   ? ( >  ", "2 ?  ( G . G   ? ( >  ", " # ? $ . G   ? ( >  ", ", K 2 ( G . G   ? ( >  "], answer: "A" }, { question: " ' ?  .  ? ( >  5 > 2 G ,  M  K   K  > 9 ?  :", options: ["5 ? 6 G 7 0 # ( @ $ ? / >  ", " . 8 . / ", " K  . & & ( 9 @  ", "&  ! "], answer: "A" } ] ); // Topic 15 addQuestions('8 . 8 M / > 8 . > ' > (  0 M $ >  0 , G 9 $ 0 5 ?  > 8  G 0 B * . G  , > 2  ', [ { question: "Children are natural:", options: ["Problem solvers", "Passive learners", "Dependent beings", "Resistant to learning"], answer: "A" }, { question: "Scientific investigator approach means:", options: ["Exploring and questioning", "Rote learning", "Following instructions", "Memorizing facts"], answer: "A" }, { question: "To develop problem-solving skills, children need:", options: ["Opportunities to explore", "More lectures", "Less freedom", "Strict rules"], answer: "A" } ], [ { question: ",  M  G 8 M 5 - > 5 8 G 9 K $ G 9 H  :", options: ["8 . 8 M / > 8 . > ' > (  0 M $ > ", "( ? 7 M  M 0 ? / 6 ?  M 7 > 0 M % @ ", " 6 M 0 ? $ * M 0 > # @ ", "8 @  ( G  G * M 0 $ ? * M 0 $ ? 0 K ' @ "], answer: "A" }, { question: "5 H  M  > ( ?   ( M 5 G 7  & C 7 M  ?  K #  >  0 M % 9 H :", options: [" ( M 5 G 7 #  0 * M 0 6 M ( * B  ( > ", "0  ( > ", "( ? 0 M & G 6 K   > * > 2 ( ", "$ % M / K   K / > &  0 ( > "], answer: "A" }, { question: "8 . 8 M / > -8 . > ' > (  L 6 2 5 ?  8 ? $  0 ( G  G 2 ?  ,  M  K   K  > 9 ?  :", options: [" ( M 5 G 7 #  G  5 8 0 ", " ' ?  5 M / >  M / > ( ", " . 8 M 5 $  $ M 0 $ > ", " K 0 ( ? / . "], answer: "A" } ] ); // Topic 16 addQuestions(',  M  K   G 8 @  ( G  @ , G  2 M * ?   5 ' > 0 # >    0 ,  M  K   @ $ M 0 A  ? / >  ', [ { question: "Alternative concepts are:", options: ["Children's own understanding", "Teacher's understanding", "Bookish knowledge", "Expert opinions"], answer: "A" }, { question: "Children's errors are:", options: ["Learning opportunities", "Mistakes to punish", "Signs of failure", "Unimportant"], answer: "A" }, { question: "To correct alternative concepts, teachers should:", options: ["Provide experiences", "Ignore them", "Punish", "Give more homework"], answer: "A" } ], [ { question: "5 H  2 M * ?   5 ' > 0 # >   9 H  :", options: [",  M  K   @  * ( @ 8 .  ", "6 ?  M 7   @ 8 .  ", " ? $ > , @  M  > ( ", "5 ? 6 G 7  M  K   @ 0 > / "], answer: "A" }, { question: ",  M  K   @ $ M 0 A  ? / >  9 H  :", options: [" ' ?  .  G  5 8 0 ", "&  ! & G ( G / K  M /  2 $ ? / >  ", " 8 + 2 $ >  G 8   G $ ", " . 9 $ M 5 * B 0 M # "], answer: "A" }, { question: "5 H  2 M * ?   5 ' > 0 # >    K @   0 ( G  G 2 ?  6 ?  M 7   K :", options: [" ( A - 5 * M 0 & > (  0 ( > ", " ( & G  >  0 ( > ", "&  ! & G ( > ", " ' ?   C 9  > 0 M / & G ( > "], answer: "A" } ] ); // Topic 17 addQuestions('8   M  > (  5  8  5 G  ', [ { question: "Cognition refers to:", options: ["Mental processes", "Physical processes", "Social processes", "Emotional processes"], answer: "A" }, { question: "Emotion is:", options: ["A feeling state", "A thought", "A behavior", "A skill"], answer: "A" }, { question: "Cognition and emotion are:", options: ["Interconnected", "Separate", "Independent", "Opposite"], answer: "A" } ], [ { question: "8   M  > (  >  0 M % 9 H :", options: [". > ( 8 ?  * M 0  M 0 ? / >   ", "6 > 0 @ 0 ?  * M 0  M 0 ? / >   ", "8 > . >  ?  * M 0  M 0 ? / >   ", "- > 5 ( > $ M .  * M 0  M 0 ? / >   "], answer: "A" }, { question: "8  5 G  9 H :", options: ["  - > 5 ( > $ M .   5 8 M % > ", "  5 ?  > 0 ", "  5 M / 5 9 > 0 ", "   L 6 2 "], answer: "A" }, { question: "8   M  > (  0 8  5 G  9 H  :", options: ["* 0 8 M * 0  A ! < G ", " 2  ", "8 M 5 $  $ M 0 ", "5 ? * 0 @ $ "], answer: "A" } ] ); // Topic 18 addQuestions(' - ? * M 0 G 0 # >  0  ' ?  . ', [ { question: "Motivation is:", options: ["A drive for learning", "A hindrance", "Unimportant", "External only"], answer: "A" }, { question: "Intrinsic motivation comes from:", options: ["Within the person", "External rewards", "Punishment", "Competition"], answer: "A" }, { question: "Extrinsic motivation includes:", options: ["Rewards and praise", "Self-satisfaction", "Curiosity", "Interest"], answer: "A" } ], [ { question: " - ? * M 0 G 0 # > 9 H :", options: [" ' ?  .  G 2 ?  * M 0 G 0  ", "  , > ' > ", " . 9 $ M 5 * B 0 M # ", " G 5 2 , > 9 0 @ "], answer: "A" }, { question: "  $ 0 ?  * M 0 G 0 # >  ? 8 8 G  $ @ 9 H :", options: ["5 M /  M $ ?  G - @ $ 0 ", ", > 9 0 @ * A 0 8 M  > 0 ", "&  ! ", "* M 0 $ ? 8 M * 0 M ' > "], answer: "A" }, { question: ", > 9 0 @ * M 0 G 0 # > . G  6 > . ? 2 9 H :", options: ["* A 0 8 M  > 0  0 * M 0 6  8 > ", " $ M . -8  $ A 7 M  ? ", " ?  M  > 8 > ", "0 A  ? "], answer: "A" } ] ); // Topic 19 addQuestions(' ( .8 @ . + . 2005,  0 . @ . . 2009 $ % >  ( . .* @ . 2020', [ { question: "NCF 2005 emphasizes:", options: ["Child-centered learning", "Teacher-centered learning", "Exam-oriented learning", "Book-centered learning"], answer: "A" }, { question: "RTE Act 2009 provides right to education for:", options: ["6-14 years", "6-12 years", "6-16 years", "All children"], answer: "A" }, { question: "NEP 2020 focuses on:", options: ["Holistic development", "Only academics", "Vocational training only", "Sports only"], answer: "A" } ], [ { question: "NCF 2005  ? 8 * 0  K 0 & G $ > 9 H ?", options: [", > 2 - G  & M 0 ? $  ' ?  . ", "6 ?  M 7  - G  & M 0 ? $  ' ?  . ", "* 0 @  M 7 > - G  & M 0 ? $  ' ?  . ", "* A 8 M $  - G  & M 0 ? $  ' ?  . "], answer: "A" }, { question: "RTE  ' ? ( ? / . 2009 6 ?  M 7 >  >  ' ?  > 0 * M 0 & > (  0 $ > 9 H :", options: ["6-14 5 0 M 7 ", "6-12 5 0 M 7 ", "6-16 5 0 M 7 ", "8 - @ ,  M  K   K "], answer: "A" }, { question: "NEP 2020  ? 8 * 0  G  & M 0 ? $ 9 H ?", options: ["8 .  M 0 5 ?  > 8 ", " G 5 2 6 H  M 7 # ?  ", " G 5 2 5 M / > 5 8 > / ?  * M 0 6 ?  M 7 # ", " G 5 2  G 2 "], answer: "A" } ] ); // ===================================================== // TOPIC KEYS & BILINGUAL NAMES // ===================================================== const topicKeys = [ "5 ?  > 8  @  5 ' > 0 # >  0 8 @  ( G  G 8 > %  8  > 8  ,  ' ", ", > 2 5 ?  > 8  G 8 ? & M ' >  $ ", "* 0 M / > 5 0 #  0  ( A 5  6 ?  $ >  > * M 0 - > 5 ", "8 . >  @  0 # * M 0  M 0 ? / >  5  8 . >  ?  & A ( ? / >  0 ,  M  G ", "* ? / >  G ,  K 9 2 5 0 M  , 5 > / A  K 2 M * ?  @ : 8  0  ( >  0  2 K  ( > $ M .  & C 7 M  ?  K # ", ", > 2 - G  & M 0 ? $  0 * M 0  $ ? 6 @ 2 6 ?  M 7 >  @  5 ' > 0 # > ", ", A & M ' ? ( ? 0 M . > #  G 2 ?   2 K  ( > $ M .   0 , 9 A  / > . @ & C 7 M  ?  K # ", "- > 7 >  0 5 ?  > 0 ", "2 ?    @ - B . ?  > :   8 > . >  ?  8  0  ( >  G 0 B * . G  2 ?   , 2 ?   - B . ?  >   , 2 ?   -* B 0 M 5 > ' ?   0 6 H  M 7 # ?   - M / > 8 ", "5 M /  M $ ? $ M 5  0 5 M /  M $ ?  $   $ 0 ", "6 H  M 7 ?  . > * (  5  . B 2 M / >   ( ", "2 > - > ( M 5 ? $  0 5 ?  ? $ M 0 5 0 M  K  8 9 ? $ 5 ? 5 ? ' * C 7 M - B . ? / K   G 6 ?  M 7 > 0 M % ? / K   @ * 9  > ( ", "6 ?  M 7 #  0  ' ?  . ", "8 @  ( G  @  ? ( >   0   M 7 . $ > 5 > 2 G ,  M  K   @  5 6 M /  $ >    @ * 9  > ( ", "8 . 8 M / > 8 . > ' > (  0 M $ >  0 , G 9 $ 0 5 ?  > 8  G 0 B * . G  , > 2  ", ",  M  K   G 8 @  ( G  @ , G  2 M * ?   5 ' > 0 # >    0 ,  M  K   @ $ M 0 A  ? / >  ", "8   M  > (  5  8  5 G  ", " - ? * M 0 G 0 # >  0  ' ?  . ", " ( .8 @ . + . 2005,  0 . @ . . 2009 $ % >  ( . .* @ . 2020" ]; const topicNames = { hi: [ "5 ?  > 8  @  5 ' > 0 # >  0 8 @  ( G  G 8 > %  8  > 8  ,  ' ", ", > 2 5 ?  > 8  G 8 ? & M ' >  $ ", "* 0 M / > 5 0 #  0  ( A 5  6 ?  $ >  > * M 0 - > 5 ", "8 . >  @  0 # * M 0  M 0 ? / >  5  8 . >  ?  & A ( ? / >  0 ,  M  G ", "* ? / >  G ,  K 9 2 5 0 M  , 5 > / A  K 2 M * ?  @ : 8  0  ( >  0  2 K  ( > $ M .  & C 7 M  ?  K # ", ", > 2 - G  & M 0 ? $  0 * M 0  $ ? 6 @ 2 6 ?  M 7 >  @  5 ' > 0 # > ", ", A & M ' ? ( ? 0 M . > #  G 2 ?   2 K  ( > $ M .   0 , 9 A  / > . @ & C 7 M  ?  K # ", "- > 7 >  0 5 ?  > 0 ", "2 ?    @ - B . ?  > :   8 > . >  ?  8  0  ( >  G 0 B * . G  2 ?   , 2 ?   - B . ?  >   , 2 ?   -* B 0 M 5 > ' ?   0 6 H  M 7 # ?   - M / > 8 ", "5 M /  M $ ? $ M 5  0 5 M /  M $ ?  $   $ 0 ", "6 H  M 7 ?  . > * (  5  . B 2 M / >   ( ", "2 > - > ( M 5 ? $  0 5 ?  ? $ M 0 5 0 M  K  8 9 ? $ 5 ? 5 ? ' * C 7 M - B . ? / K   G 6 ?  M 7 > 0 M % ? / K   @ * 9  > ( ", "6 ?  M 7 #  0  ' ?  . ", "8 @  ( G  @  ? ( >   0   M 7 . $ > 5 > 2 G ,  M  K   @  5 6 M /  $ >    @ * 9  > ( ", "8 . 8 M / > 8 . > ' > (  0 M $ >  0 , G 9 $ 0 5 ?  > 8  G 0 B * . G  , > 2  ", ",  M  K   G 8 @  ( G  @ , G  2 M * ?   5 ' > 0 # >    0 ,  M  K   @ $ M 0 A  ? / >  ", "8   M  > (  5  8  5 G  ", " - ? * M 0 G 0 # >  0  ' ?  . ", " ( .8 @ . + . 2005,  0 . @ . . 2009 $ % >  ( . .* @ . 2020" ], en: [ "Concept of Development and Its Relation with Learning", "Principles of Child Development", "Influence of Environment and Heredity", "Socialization Processes: Social World and Children", "Piaget, Kohlberg, Vygotsky: Construction and Critical Approach", "Concepts of Child-Centered and Progressive Education", "Critical and Multidimensional Approach to Building Intelligence", "Language and Thought", "The Role of Gender: Gender as a Social Construct, Gender Roles, Gender-Bias and Educational Practice", "Personality and Individual Difference", "Educational Measurement and Evaluation", "Recognition of Learners from Diverse Backgrounds Including Advantaged and Disadvantaged Sections", "Teaching and Learning", "Identification of the Needs of Children with Learning Difficulties and Disability", "Child as a Problem Solver and a Scientific Investigator", "Alternative Concepts of Children's Learning and Children's Errors", "Cognition and Emotion", "Motivation and Learning", "N.C.F. 2005, R.T.E. 2009 and N.E.P. 2020" ] }; function getTopicDisplay(key, lang) { const idx = topicKeys.indexOf(key); if (idx === -1) return key; return topicNames[lang][idx] || key; } // ===================================================== // UI TRANSLATIONS // ===================================================== const uiText = { hi: { mainTitle: ">ØàÝ CTET Paper 2 - , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 (CDP)  - M / > 8 8 G   ( 0 G  0 ", mainSubtitle: "CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) 9 G $ A , > 2 5 ?  > 8 ,  ' ?  .  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 7 / 5 > 0  - M / > 8 ", startTitle: ">ØàÝ , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 -  - M / > 8 8 G   ( 0 G  0 ", startDesc: "CTET Paper 2 9 G $ A , > 2 5 ?  > 8 ,  ' ?  .  G 8 ? & M ' >  $ , 6 ?  M 7 # 5 ? ' ? / >   5  . ( K 5 ?  M  > (  > 5 ? 8 M $ C $  - M / > 8 8 G  $ H / > 0  0 G  ", startBtn: " - M / > 8 8 G  , ( > ( > 6 A 0 B  0 G  ", practiceTypeTitle: " - M / > 8  > * M 0  > 0  A ( G  ", practiceTypeDesc: " * ( @ $ H / > 0 @  G  ( A 8 > 0  - M / > 8 8 G   A ( G  :", optChapterTitle: "5 ? 7 / > ( A 8 > 0  - M / > 8 ", optChapterDesc: " ? 8 @ 5 ? 6 G 7 5 ? 7 /  >  9 (  - M / > 8  0 G  ", optFullTitle: "* B 0 M # 2  , >   G 8 M  ", optFullDesc: "CTET * H  0 M ( * 0  ' > 0 ? $ 50 * M 0 6 M ( K   > 8 G  ", optPrevTitle: "* ?  2 G 5 0 M 7 K   G * M 0 6 M ( ", optPrevDesc: "* ?  2 @ TET * 0 @  M 7 >   * 0  ' > 0 ? $ * M 0 6 M ( ", backStartBtn: "* @  G  >   ", proceedBtn: "5 ? 7 /  A ( G  ’!", chapterTitle: "=ØÚÜ , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 - 5 ? 7 /  A ( G  ", qCountTitle: "* M 0 6 M ( K   @ 8   M / >  A ( G  ", backPracticeBtn: "* @  G ", generateAssignBtn: " ? ( >  8 M $ 0  A ( G  ’!", levelTitle: " ? ( >  8 M $ 0  A ( G  ", levelDesc: "CTET Paper 2 * 0 @  M 7 >  G  ( A 8 > 0 8 M $ 0  A ( G  :", l1Title: "Level 1", l1Sub: ", A ( ? / > & @ (* M 0 > 0  - ?  )", l2Title: "Level 2", l2Sub: ". ' M / . (CTET 8 M $ 0 )", l3Title: "Level 3", l3Sub: "  M  (6 ?  M 7  * > $ M 0 $ > )", timerTitle: "8 . / 8 @ . >  A ( G  ", t30: "30 . ? (  ", t45: "45 . ? (  ", t60: "60 . ? (  ", t90: "90 . ? (  ", backChaptersBtn: "5 ? 7 / K  * 0 5 > * 8 ", generateFinalBtn: " - M / > 8 8 G   ( 0 G   0 G  ", langLabel: "9 ?  & @ ", fullPaper: "8 - @ 5 ? 7 / (* B 0 M # * > M /  M 0 . - 19  ' M / > / )", noTopicAlert: " C * / >  . 8 G  .   5 ? 7 /  A ( G  !", noLevelAlert: " C * / >  ? ( >  8 M $ 0  A ( G  !", noPracticeAlert: " C * / >  - M / > 8  > * M 0  > 0  A ( G  !", instructions: "=ØÌÜ ( ? 0 M & G 6 :", inst1: " 8 8 G  . G  {count} , 9 A 5 ?  2 M * @ / * M 0 6 M ( 9 H  d ", inst2: "* M 0 $ M / G  * M 0 6 M (  G  > 0 5 ?  2 M * ,  G 5 2   8 9 @ d ", inst3: "8 . / 8 @ . > : {time} . ? (  ", inst4: "CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 9 G $ A  - M / > 8 d ", inst5: "* M 0 $ M / G  * M 0 6 M ( 1     > 9 H ,  K  ( ?  G  ? 5 . > 0 M  ?   ( 9 @  d ", mcqHeading: ">ØàÝ , > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 (CDP) * M 0 6 M ( ", answerKey: "' $ M $ 0  A   @ (Answer Key)", qNo: "* M 0 6 M (  M 0 .", ans: " $ M $ 0 ", print: "* M 0 ?    0 G  ", download: "PDF ! > ( 2 K !  0 G  ", newSet: "( / >  - M / > 8 8 G  ", subjectLabel: ", > 2 5 ?  > 8  5  6 ?  M 7 > 6 > 8 M $ M 0 ", noQuestions: "* M 0 6 M ( * 2 , M ' ( 9 @  9 H  d  C * / >  ( M / 5 ? 7 /  A ( G  d " }, en: { mainTitle: ">ØàÝ CTET Paper 2 - Child Development and Pedagogy (CDP) Practice Set Generator", mainSubtitle: "Topic-wise practice for Child Development, Learning Theories, Teaching Methods & Psychology for CTET Paper 2 (Upper Primary Level)", startTitle: ">ØàÝ Child Development and Pedagogy - Practice Set Generator", startDesc: "Create comprehensive practice sets for CTET Paper 2 covering Child Development, Learning Theories, Teaching Methods and Psychology", startBtn: "Start Creating Practice Set", practiceTypeTitle: "Select Practice Type", practiceTypeDesc: "Choose practice set according to your preparation:", optChapterTitle: "Chapter-wise Practice", optChapterDesc: "Deep practice of a specific topic", optFullTitle: "Full Length Test", optFullDesc: "50 question set based on CTET pattern", optPrevTitle: "Previous Year Questions", optPrevDesc: "Questions based on previous TET exams", backStartBtn: "Back", proceedBtn: "Select Topics ’!", chapterTitle: "=ØÚÜ Child Development and Pedagogy - Select Topics", qCountTitle: "Select Number of Questions", backPracticeBtn: "Back", generateAssignBtn: "Select Difficulty ’!", levelTitle: "Select Difficulty Level", levelDesc: "Choose level according to CTET Paper 2 exam:", l1Title: "Level 1", l1Sub: "Basic (Introductory)", l2Title: "Level 2", l2Sub: "Medium (CTET Level)", l3Title: "Level 3", l3Sub: "Advanced (Teacher Eligibility)", timerTitle: "Select Time Limit", t30: "30 min", t45: "45 min", t60: "60 min", t90: "90 min", backChaptersBtn: "Back to Topics", generateFinalBtn: "Generate Practice Set", langLabel: "English", fullPaper: "All Topics (Full Syllabus - 19 Chapters)", noTopicAlert: "Please select at least one topic!", noLevelAlert: "Please select a difficulty level!", noPracticeAlert: "Please select a practice type!", instructions: "=ØÌÜ Instructions:", inst1: "This set has {count} multiple choice questions.", inst2: "Each question has four options, only one is correct.", inst3: "Time limit: {time} minutes", inst4: "For CTET Paper 2 (Upper Primary Level) Child Development and Pedagogy practice.", inst5: "Each question carries 1 mark, no negative marking.", mcqHeading: ">ØàÝ Child Development and Pedagogy (CDP) Questions", answerKey: "' Answer Key", qNo: "Q. No.", ans: "Answer", print: "Print", download: "Download PDF", newSet: "New Practice Set", subjectLabel: "Child Development and Pedagogy", noQuestions: "Questions not available. Please select other topics." } }; // ===================================================== // DOM REFS & STATE // ===================================================== const langToggleBtn = document.getElementById('langToggleBtn'); const langLabel = document.getElementById('langLabel'); let currentLang = 'hi'; const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const practiceTypeSelection = document.getElementById('practiceTypeSelection'); const chapterSelection = document.getElementById('chapterSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); const startGeneratingBtn = document.getElementById('startGeneratingBtn'); const backToStartBtn = document.getElementById('backToStartBtn'); const proceedToChaptersBtn = document.getElementById('proceedToChaptersBtn'); const backToPracticeTypeBtn = document.getElementById('backToPracticeTypeBtn'); const generateAssignmentBtn = document.getElementById('generateAssignmentBtn'); const backToChaptersBtn = document.getElementById('backToChaptersBtn'); const generateFinalBtn = document.getElementById('generateFinalBtn'); const level1Btn = document.getElementById('level1Btn'); const level2Btn = document.getElementById('level2Btn'); const level3Btn = document.getElementById('level3Btn'); const decreaseCount = document.getElementById('decreaseCount'); const increaseCount = document.getElementById('increaseCount'); const questionCountSpan = document.getElementById('questionCount'); const homeIconBtn = document.getElementById('homeIconBtn'); let selectedTopics = []; let selectedLevel = null; let selectedPracticeType = null; let questionCount = 50; let timeLimit = 60; // ===================================================== // UI LANGUAGE APPLICATION // ===================================================== function applyUILanguage(lang) { const t = uiText[lang]; document.getElementById('mainTitle').textContent = t.mainTitle; document.getElementById('mainSubtitle').textContent = t.mainSubtitle; document.getElementById('startTitle').textContent = t.startTitle; document.getElementById('startDesc').textContent = t.startDesc; document.getElementById('startBtnText').textContent = t.startBtn; document.getElementById('practiceTypeTitle').textContent = t.practiceTypeTitle; document.getElementById('practiceTypeDesc').textContent = t.practiceTypeDesc; document.getElementById('optChapterTitle').textContent = t.optChapterTitle; document.getElementById('optChapterDesc').textContent = t.optChapterDesc; document.getElementById('optFullTitle').textContent = t.optFullTitle; document.getElementById('optFullDesc').textContent = t.optFullDesc; document.getElementById('optPrevTitle').textContent = t.optPrevTitle; document.getElementById('optPrevDesc').textContent = t.optPrevDesc; document.getElementById('backStartBtnText').textContent = t.backStartBtn; document.getElementById('proceedBtnText').textContent = t.proceedBtn; document.getElementById('chapterTitle').textContent = t.chapterTitle; document.getElementById('qCountTitle').textContent = t.qCountTitle; document.getElementById('backPracticeBtnText').textContent = t.backPracticeBtn; document.getElementById('generateAssignBtnText').textContent = t.generateAssignBtn; document.getElementById('levelTitle').textContent = t.levelTitle; document.getElementById('levelDesc').textContent = t.levelDesc; document.getElementById('l1Title').textContent = t.l1Title; document.getElementById('l1Sub').textContent = t.l1Sub; document.getElementById('l2Title').textContent = t.l2Title; document.getElementById('l2Sub').textContent = t.l2Sub; document.getElementById('l3Title').textContent = t.l3Title; document.getElementById('l3Sub').textContent = t.l3Sub; document.getElementById('timerTitle').textContent = t.timerTitle; document.getElementById('t30').textContent = t.t30; document.getElementById('t45').textContent = t.t45; document.getElementById('t60').textContent = t.t60; document.getElementById('t90').textContent = t.t90; document.getElementById('backChaptersBtnText').textContent = t.backChaptersBtn; document.getElementById('generateFinalBtnText').textContent = t.generateFinalBtn; langLabel.textContent = t.langLabel; // Reload topics to update labels loadTopics(); // If paper is already generated, re-render if (!generatedPaperContainer.classList.contains('hidden')) { if (selectedTopics.length > 0 && selectedLevel) { generatePaper(selectedTopics, selectedLevel, currentLang); } } } // Language toggle langToggleBtn.addEventListener('click', function() { currentLang = (currentLang === 'hi') ? 'en' : 'hi'; applyUILanguage(currentLang); }); // ===================================================== // CORE LOGIC // ===================================================== function loadTopics() { const container = document.getElementById('cdpTopicsContainer'); const t = uiText[currentLang]; const fullPaperLabel = (currentLang === 'hi') ? "' 8 - @ 5 ? 7 / (* B 0 M # * > M /  M 0 . - 19  ' M / > / )" : "' All Topics (Full Syllabus - 19 Chapters)"; container.innerHTML = `<div class="checkbox-item"><input type="checkbox" id="fullPaper" name="topic" value="8 - @ 5 ? 7 / "><label for="fullPaper">${fullPaperLabel}</label></div>`; topicKeys.forEach((key, idx) => { const id = `topic${idx}`; const displayName = getTopicDisplay(key, currentLang); container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="${id}" name="topic" value="${key}"><label for="${id}">>ØàÝ ${displayName}</label></div>`; }); document.getElementById('fullPaper')?.addEventListener('change', (e) => { const checkboxes = document.querySelectorAll('input[name="topic"]:not(#fullPaper)'); checkboxes.forEach(cb => cb.disabled = e.target.checked); if(e.target.checked) checkboxes.forEach(cb => cb.checked = false); }); } function getSelectedTopics() { const full = document.getElementById('fullPaper'); if(full && full.checked) return [...topicKeys]; return Array.from(document.querySelectorAll('input[name="topic"]:checked')).filter(cb => cb.id !== 'fullPaper').map(cb => cb.value); } function getRandomQuestions(topics, level, count, lang) { let allQuestions = []; topics.forEach(topic => { if(questionBank[topic] && questionBank[topic][lang] && questionBank[topic][lang][`level${level}`]) { allQuestions = allQuestions.concat(questionBank[topic][lang][`level${level}`]); } }); if(allQuestions.length === 0) { const t = uiText[lang]; return Array(count).fill({ question: t.noQuestions, options: ["A", "B", "C", "D"], answer: "A" }); } allQuestions = allQuestions.sort(() => Math.random() - 0.5); return allQuestions.slice(0, Math.min(count, allQuestions.length)); } function showPracticeTypeSelection() { startScreen.classList.add('hidden'); practiceTypeSelection.classList.remove('hidden'); } function backToStart() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); practiceTypeSelection.classList.add('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); startScreen.classList.remove('hidden'); selectedTopics = []; selectedLevel = null; selectedPracticeType = null; questionCount = 50; timeLimit = 60; questionCountSpan.textContent = "50"; document.querySelectorAll('.option-card').forEach(c => c.classList.remove('selected')); document.querySelectorAll('.timer-btn').forEach(b => b.classList.remove('selected')); if(document.querySelector('.timer-btn[data-time="60"]')) document.querySelector('.timer-btn[data-time="60"]').classList.add('selected'); level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); } function backToPracticeType() { chapterSelection.classList.add('hidden'); practiceTypeSelection.classList.remove('hidden'); } function backToChapters() { levelSelection.classList.add('hidden'); chapterSelection.classList.remove('hidden'); } function showChapters() { const t = uiText[currentLang]; if(!selectedPracticeType) { alert(t.noPracticeAlert); return; } practiceTypeSelection.classList.add('hidden'); chapterSelection.classList.remove('hidden'); loadTopics(); } function showLevelSelection() { const t = uiText[currentLang]; selectedTopics = getSelectedTopics(); if(selectedTopics.length === 0) { alert(t.noTopicAlert); return; } chapterSelection.classList.add('hidden'); levelSelection.classList.remove('hidden'); } function selectLevel(level) { level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); document.getElementById(`level${level}Btn`).classList.add('selected'); selectedLevel = level; } level1Btn.onclick = () => selectLevel(1); level2Btn.onclick = () => selectLevel(2); level3Btn.onclick = () => selectLevel(3); decreaseCount.onclick = () => { if(questionCount > 10) { questionCount -= 5; questionCountSpan.textContent = questionCount; } }; increaseCount.onclick = () => { if(questionCount < 100) { questionCount += 5; questionCountSpan.textContent = questionCount; } }; document.querySelectorAll('.option-card').forEach(card => { card.addEventListener('click', () => { document.querySelectorAll('.option-card').forEach(c => c.classList.remove('selected')); card.classList.add('selected'); selectedPracticeType = card.dataset.type; if(selectedPracticeType === 'full-length') { questionCount = 50; questionCountSpan.textContent = "50"; } else if(selectedPracticeType === 'previous-year') { questionCount = 45; questionCountSpan.textContent = "45"; } }); }); document.querySelectorAll('.timer-btn').forEach(btn => { btn.addEventListener('click', () => { document.querySelectorAll('.timer-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); timeLimit = parseInt(btn.dataset.time); }); }); function getPracticeTypeName(type, lang) { const t = uiText[lang]; if(type === 'chapter-wise') return '=ØÖÜ ' + t.optChapterTitle; if(type === 'full-length') return '=ØÝÜ ' + t.optFullTitle; if(type === 'previous-year') return 'ó# ' + t.optPrevTitle; return '>ØàÝ ' + t.subjectLabel; } function generatePaper(topics, level, lang) { const t = uiText[lang]; const mcqs = getRandomQuestions(topics, level, questionCount, lang); let paperHTML = ` <div class="header" style="background: linear-gradient(135deg, #8e24aa, #6a1b9a);"> <h2>>ØàÝ CTET Paper 2 - ${t.subjectLabel}  - M / > 8 8 G $ </h2> <h3>${getPracticeTypeName(selectedPracticeType, lang)}</h3> <p>${level === 1 ? t.l1Title : level === 2 ? t.l2Title : t.l3Title} - ${level === 1 ? t.l1Sub : level === 2 ? t.l2Sub : t.l3Sub} | 8 . / : ${timeLimit} . ? (  </p> <p> A 2 * M 0 6 M ( : ${questionCount}</p> </div> <div class="content-area"> <div class="instructions"> <p><strong>${t.instructions}</strong></p> <ol> <li>${t.inst1.replace('{count}', questionCount)}</li> <li>${t.inst2}</li> <li>${t.inst3.replace('{time}', timeLimit)}</li> <li>${t.inst4}</li> <li>${t.inst5}</li> </ol> </div> <div class="question-section"> <div class="section-heading" style="font-size:1.2rem; font-weight:bold; margin-bottom:15px;">${t.mcqHeading}</div>`; let qNum = 1; mcqs.forEach(mcq => { paperHTML += `<div class="question"><div class="question-text">${qNum}. ${mcq.question}</div><div class="option">A. ${mcq.options[0]}</div><div class="option">B. ${mcq.options[1]}</div><div class="option">C. ${mcq.options[2]}</div><div class="option">D. ${mcq.options[3]}</div></div>`; qNum++; }); paperHTML += `</div><div class="answer-sheet"><h3 class="section-title">${t.answerKey}</h3><table class="answer-table"><thead><tr><th>${t.qNo}</th><th>${t.ans}</th><th>${t.qNo}</th><th>${t.ans}</th><th>${t.qNo}</th><th>${t.ans}</th></tr></thead><tbody>`; for(let i=0; i<mcqs.length; i+=3) { paperHTML += `<tr>`; for(let j=0; j<3; j++) { if(i+j < mcqs.length) paperHTML += `<td>${i+j+1}</td><td>${mcqs[i+j].answer}</td>`; else paperHTML += `<td></td><td></td>`; } paperHTML += `</tr>`; } paperHTML += `</tbody></table></div><div class="action-buttons"><button class="btn btn-primary" id="printBtn"><i class="fas fa-print"></i> ${t.print}</button><button class="btn btn-success" id="downloadBtn"><i class="fas fa-download"></i> ${t.download}</button><button class="btn btn-danger" id="newAssignmentBtn"><i class="fas fa-plus"></i> ${t.newSet}</button></div></div>`; generatedPaperContainer.innerHTML = paperHTML; generatedPaperContainer.classList.remove('hidden'); startContainer.classList.add('hidden'); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('downloadBtn')?.addEventListener('click', downloadPDF); document.getElementById('newAssignmentBtn')?.addEventListener('click', () => backToStart()); } async function downloadPDF() { const element = document.getElementById('generatedPaperContainer'); const tempDiv = document.createElement('div'); tempDiv.style.position = 'absolute'; tempDiv.style.left = '-9999px'; tempDiv.style.width = '794px'; tempDiv.style.backgroundColor = 'white'; tempDiv.style.padding = '20px'; tempDiv.innerHTML = element.innerHTML; document.body.appendChild(tempDiv); try { const pdf = new jsPDF('p', 'mm', 'a4'); const pageWidth = pdf.internal.pageSize.getWidth() - 25.4; let position = 12.7; let remainingHeight = tempDiv.scrollHeight; let pageNum = 1; while (remainingHeight > 0) { const canvas = await html2canvas(tempDiv, { scale: 1.5, backgroundColor: '#ffffff' }); const imgData = canvas.toDataURL('image/jpeg', 0.92); if(pageNum > 1) pdf.addPage(); pdf.addImage(imgData, 'JPEG', 12.7, 12.7, pageWidth, canvas.height * pageWidth / canvas.width); position += 277; remainingHeight -= 277 * 3.78; pageNum++; } pdf.save('CTET_Paper2_Child_Development_Pedagogy_Practice_Set.pdf'); } catch(e) { console.error(e); alert("PDF generation error"); } finally { if(tempDiv) document.body.removeChild(tempDiv); } } // ===================================================== // EVENT BINDINGS // ===================================================== startGeneratingBtn.onclick = showPracticeTypeSelection; backToStartBtn.onclick = backToStart; proceedToChaptersBtn.onclick = showChapters; backToPracticeTypeBtn.onclick = backToPracticeType; generateAssignmentBtn.onclick = showLevelSelection; backToChaptersBtn.onclick = backToChapters; generateFinalBtn.onclick = function() { const t = uiText[currentLang]; if(!selectedLevel) { alert(t.noLevelAlert); return; } generatePaper(selectedTopics, selectedLevel, currentLang); }; homeIconBtn.onclick = backToStart; // Default timer selection document.querySelector('.timer-btn[data-time="60"]')?.classList.add('selected'); // Initial load applyUILanguage('hi'); </script> </body> </html>