ÿþ<!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 - 8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0  8 >  ( . G    ( 0 G  0 </title> <link href="img/logo1.jpg" 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: #4361ee; --primary-dark: #3f37c9; --secondary: #4895ef; --danger: #f72585; --success: #4cc9f0; --light: #f8f9fa; --dark: #212529; --gray: #6c757d; --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', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #f5f7fa 0%, #e2e8f0 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: 950px; 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; top: -50px; right: -50px; width: 150px; height: 150px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; } .header h1 { font-size: 2rem; 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(67, 97, 238, 0.3); } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #3ab0d6; transform: translateY(-2px); box-shadow: 0 8px 15px rgba(76, 201, 240, 0.3); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #d3166b; transform: translateY(-2px); box-shadow: 0 8px 15px rgba(247, 37, 133, 0.3); } .btn-level { background: var(--light); color: var(--dark); border: 2px solid var(--gray); font-size: 1.2rem; 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; } .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(280px, 1fr)); gap: 12px; margin: 25px 0; max-height: 500px; overflow-y: auto; padding: 10px; border: 1px solid #eee; border-radius: var(--border-radius); } .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.9rem; } .instructions { margin-bottom: 30px; padding: 20px; background: #f8f9fa; border-radius: var(--border-radius); } .instructions ol { padding-left: 20px; margin-top: 10px; } .instructions li { margin-bottom: 8px; } .question-section { margin-bottom: 30px; } .section-heading { font-weight: 600; color: var(--primary-dark); margin-bottom: 15px; padding-bottom: 5px; border-bottom: 1px solid #eee; } .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; } .answer-table tr:nth-child(even) { background-color: #f2f2f2; } @media (max-width: 768px) { .header h1 { font-size: 1.6rem; } .content-area { padding: 20px; } .checkbox-container { grid-template-columns: 1fr; } .btn { padding: 10px 20px; font-size: 0.9rem; } .btn-level { width: 150px; font-size: 1rem; padding: 12px 20px; } .level-buttons { flex-direction: column; align-items: center; } .header-controls { top: 12px; right: 12px; gap: 8px; } .lang-toggle { font-size: 0.7rem; padding: 4px 12px; } } @media (max-width: 480px) { .header { padding: 20px 15px; } .section-title { font-size: 1.3rem; } .action-buttons { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 250px; } } @media print { body { background: none; padding: 0; } .container { box-shadow: none; max-width: 100%; } .action-buttons { display: none; } .question { page-break-inside: avoid; } .header { -webkit-print-color-adjust: exact; print-color-adjust: exact; } .header-controls { display: none; } } .temp-pdf-container { font-family: Arial, sans-serif; line-height: 1.5; width: 794px; background-color: white; color: black; } .question { page-break-inside: avoid; break-inside: avoid; } .text-center { text-align: center; margin-bottom: 15px; } </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-assignment-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> <h1 id="mainTitle">CTET Paper 2</h1> <p id="mainSubtitle">8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0 (Social Studies/Pedagogy)  8 >  ( . G    ( 0 G  0 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title" id="startTitle">8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0  8 >  ( . G    ( 0 G  0 </h2> <div class="btn-group"> <button class="btn btn-primary" id="startGeneratingBtn"> 8 >  ( . G   , ( >   </button> </div> </div> <div id="subjectSelection" class="hidden"> <h2 class="section-title" id="subjectTitle">5 ? 7 /  >  / (  0 G  </h2> <div class="btn-group"> <button class="btn btn-primary" id="selectSocialBtn">8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0 (Social Studies/Pedagogy)</button> </div> </div> <div id="chapterSelection" class="hidden"> <h2 class="section-title" id="chapterTitle"> ' M / > / / 5 ? 7 /  A ( G  </h2> <div id="chapterCheckboxContainer" class="checkbox-container"></div> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn">* M 0 > 0  - * 0 5 > * 8  >   </button> <button class="btn btn-success" id="generateAssignmentBtn"> 8 >  ( . G   , ( >   </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"> * ( G  8 >  ( . G    G 2 ?  8 M $ 0  >  / (  0 G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn">8 M $ 0 1<br><small id="level1Sub">, G 8 ?  8 M $ 0 </small></button> <button class="btn btn-level" id="level2Btn">8 M $ 0 2<br><small id="level2Sub">. ' M / . 8 M $ 0 </small></button> <button class="btn btn-level" id="level3Btn">8 M $ 0 3<br><small id="level3Sub">* 0 @  M 7 > 8 M $ 0 </small></button> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToChaptersBtn">5 ? 7 / K  * 0 5 > * 8  >   </button> <button class="btn btn-success" id="generateFinalBtn"> 8 >  ( . G    ( 0 G   0 G  </button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; // ===================================================== // BILINGUAL QUESTIONS DATABASE (55 TOPICS: 19 History + 9 Civics + 9 Geography + 10 Pedagogy) // ===================================================== 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); }); } // Helper to add simple questions (no bilingual) function addSimpleQuestions(topicKey, hiQ) { if (!questionBank[topicKey]) questionBank[topicKey] = { en: { level1: [], level2: [], level3: [] }, hi: { level1: [], level2: [], level3: [] } }; const levels = ['level1', 'level2', 'level3']; hiQ.forEach((q, idx) => { const levelKey = levels[idx] || 'level1'; questionBank[topicKey].hi[levelKey].push(q); // Add same questions as English (with translation) const enQ = { question: q.question.replace(/[?]/g, '?'), options: q.options, answer: q.answer }; questionBank[topicKey].en[levelKey].push(enQ); }); } // ----- HISTORY TOPICS (19) ----- addSimpleQuestions(' $ ? 9 > 8  > ( ( G  G 8 M 0 K $ ', [ { question: " $ ? 9 > 8  > ( ( G  G . A  M / 8 M 0 K $  M / > 9 H  ?", options: ["* A 0 > $ > $ M 5 ?   5  8 > 9 ? $ M / ?  ", " G 5 2  ? $ > , G  ", " G 5 2 . B 0 M $ ? / >  ", " G 5 2 8 ?  M  G "], answer: "A" }, { question: "* M 0 >  @ ( - > 0 $ @ /  $ ? 9 > 8  > 8 , 8 G . 9 $ M 5 * B 0 M # 8 > 9 ? $ M / ?  8 M 0 K $  M / > 9 H ?", options: ["5 G & ", "* A 0 > # ", "0 > . > / # ", ". 9 > - > 0 $ "], answer: "A" }, { question: "* A 0 > $ > $ M 5 ?  8 M 0 K $ K  . G   M / > 6 > . ? 2 9 H ?", options: [" A & >  , 8 ?  M  G , . B 0 M $ ? / >  ", " G 5 2  ? $ > , G  ", " G 5 2  - ? 2 G  ", " G 5 2 8 ?  M  G "], answer: "A" } ]); addSimpleQuestions('. > ( 5  > 5 ?  > 8 ', [ { question: "* M 0 > 0  - ?  . > ( 5 8 . >   ? 8 / A  . G  5 ?  8 ? $ 9 A  ?", options: ["* > 7 > # / A  ", "$ > . M 0 * > 7 > # / A  ", "2 L 9 / A  ", " >  8 M / / A  "], answer: "A" }, { question: "* M 0 % .  ? 8 > (  5   0 5 > 9 G  ? 8 / A  . G  - 0 G ?", options: ["( 5 * > 7 > # / A  ", "* A 0 > * > 7 > # / A  ", ". ' M / * > 7 > # / A  ", "$ > . M 0 * > 7 > # / A  "], answer: "A" }, { question: "$ > . M 0 * > 7 > # 8  8 M  C $ ? . G   ? 8 ' > $ A  > * M 0 / K  6 A 0 B 9 A  ?", options: ["$ >  , > ", "2 K 9 > ", " >  8 > ", "8 K ( > "], answer: "A" } ]); addSimpleQuestions('8 ? ( M ' A  >  @  0 5 H & ?  8 - M / $ > ', [ { question: "8 ? ( M ' A  >  @ 8 - M / $ >  ? 8 ( & @  G  ? ( > 0 G 5 ?  8 ? $ 9 A  ?", options: ["8 ? ( M ' A ", "   > ", "/ . A ( > ", "8 0 8 M 5 $ @ "], answer: "A" }, { question: "9 ! < * M * > 8 - M / $ >  @ * M 0 . A  5 ? 6 G 7 $ >  M / > % @ ?", options: ["(  0 ( ? / K  ( ", ", ! < G . 9 2 ", ", ! < G .  & ? 0 ", "2 K 9 G  G   > 0 "], answer: "A" }, { question: "5 H & ?  8 - M / $ >  > . A  M /  M 0  %  L ( 8 > 9 H ?", options: ["  M 5 G & ", "/  A 0 M 5 G & ", "8 > . 5 G & ", " % 0 M 5 5 G & "], answer: "A" } ]); addSimpleQuestions(' H ( ' 0 M .  0 , L & M ' ' 0 M . ', [ { question: " H ( ' 0 M .  G 8  8 M % > *   L ( 9 H  ?", options: [". 9 > 5 @ 0 ", ", A & M ' ", " 7 - ", "6   0 "], answer: "A" }, { question: ", L & M ' ' 0 M .  G 8  8 M % > *   L ( 9 H  ?", options: [" L $ . , A & M ' ", ". 9 > 5 @ 0 ", "6   0 ", "0 > . > ( A  "], answer: "A" }, { question: " H ( ' 0 M . . G   ? 8 8 ? & M ' >  $ * 0 5 ? 6 G 7 , 2 & ? / >  / > ?", options: [" 9 ?  8 > ", "5 0 M # 5 M / 5 8 M % > ", "/  M  ", " 0 M .  >  ! "], answer: "A" } ]); addSimpleQuestions('. 9 >  ( * &  > 2 ', [ { question: ". 9 >  ( * &  > 2 . G   ? $ ( G . 9 >  ( * & % G ?", options: ["16", "14", "12", "18"], answer: "A" }, { question: ".  '  ? 8  G 2 ?  * M 0 8 ? & M ' % > ?", options: ["6  M $ ? 6 > 2 @ 0 >  M / ", "5 M / > * > 0 ", "6 ?  M 7 > ", " 2 > "], answer: "A" }, { question: ". 9 >  ( * &  > 2 . G   ? 8 0 >  M /  > 8 , 8 G  ' ?  $ M  0 M 7 9 A  ?", options: [".  ' ", " K 8 2 ", "5 $ M 8 ", " 5  $ ? "], answer: "A" } ]); addSimpleQuestions('. L 0 M /  > 2 ', [ { question: ". L 0 M / 8 > . M 0 >  M /  > 8  8 M % > *   L ( % > ?", options: [" ( M & M 0  A * M $ . L 0 M / ", " 6 K  ", ", ? ( M & A 8 > 0 ", "  K $ M   "], answer: "A" }, { question: " 6 K   ? 8 ' 0 M .  G  ( A / > / @ % G ?", options: [", L & M ' ", " H ( ", "9 ?  & B ", " 8 M 2 > . "], answer: "A" }, { question: " 6 K   G  - ? 2 G   ? 8 2 ? * ? . G  9 H  ?", options: [", M 0 > 9 M . @ ", " 0 K 7 M @ ", "& G 5 ( >  0 @ ", " A * M $ "], answer: "A" } ]); addSimpleQuestions('. L 0 M / >  $ 0 - > 0 $ ', [ { question: ". L 0 M / 8 > . M 0 >  M /  G * $ (  G , > &  ? 8 0 >  5  6  > & / 9 A  ?", options: ["6 A   ", " A * M $ ", " A 7 > # ", "8 > $ 5 > 9 ( "], answer: "A" }, { question: ". L 0 M / K $ M $ 0  > 2 . G  - > 0 $ * 0  ? 8 5 ? & G 6 @   M 0 . #  > 0 @  >   M 0 . # 9 A  ?", options: ["/ 5 ( ", "9 B # ", "6  ", " A 7 > # "], answer: "A" }, { question: ". L 0 M / K $ M $ 0  > 2 . G   L ( 8 > (  0 5 M / > * > 0  >  G  & M 0 , ( > ?", options: ["* >  2 ? * A $ M 0 ", "$  M 7 6 ? 2 > ", "  M  H ( ", ". % A 0 > "], answer: "A" } ]); addSimpleQuestions(' A * M $  0  A * M $ >  $ 0 / A  ', [ { question: " A * M $ 8 > . M 0 >  M /  > 8 M 5 0 M #  > 2  ? 8  G 6 > 8 (  > 2 . G  . > ( >  > $ > 9 H ?", options: [" ( M & M 0  A * M $ 5 ?  M 0 . > & ? $ M / ", "8 . A & M 0  A * M $ ", "8 M  ( M &  A * M $ ", " A . > 0  A * M $ "], answer: "A" }, { question: " A * M $  > 2  K - > 0 $  > 8 M 5 0 M # / A   M / K   9 >  > $ > 9 H ?", options: ["8 >  8 M  C $ ?  5 ?  > 8 ", "8 H ( M / 5 ?  / ", " 0 M % ?  8 . C & M ' ? ", "' > 0 M . ?  8 9 ? 7 M # A $ > "], answer: "A" }, { question: " A * M $ K $ M $ 0  > 2 . G   ? 8 0 >  5  6  > & / 9 A  ?", options: ["9 0 M 7 5 0 M ' ( ", "* > 2 ", "* M 0 $ ? 9 > 0 ", "0 > 7 M  M 0  B  "], answer: "A" } ]); addSimpleQuestions('8   . / A   0 &  M 7 ? # - > 0 $ @ / 8 > . M 0 >  M / ', [ { question: "8   . 8 > 9 ? $ M /  ? 8 - > 7 > . G  0  >  / > ?", options: ["$ . ? 2 ", "$ G 2 A  A ", " ( M ( ! < ", ". 2 / > 2 . "], answer: "A" }, { question: "8   . / A  . G   ? $ ( G 8   . 9 A  ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: "&  M 7 ? # - > 0 $  > * M 0 8 ? & M '  G 0 0 >  M /  ? 8  M 7 G $ M 0 . G  % > ?", options: [" G 0 2 ", "$ . ? 2 ( > ! A ", " 0 M ( >   ", "  ' M 0 "], answer: "A" } ]); addSimpleQuestions('8   0 M 7  > / A  : 5 ?  / (  0  0 , 9 . ( @ 8 > . M 0 >  M / ', [ { question: "5 ?  / (  0 8 > . M 0 >  M /  @ 8 M % > * ( >  , 9 A  ?", options: ["1336", "1347", "1320", "1350"], answer: "A" }, { question: ", 9 . ( @ 8 > . M 0 >  M /  > 8  8 M % > *   L ( % > ?", options: [" 2 > & M & @ ( 9 8 ( ", ". 9 . B &  5 >  ", "+ ? 0 K  6 > 9 ", ". A 9 . M . & , ? ( $ A  2  "], answer: "A" }, { question: "5 ?  / (  0  0 , 9 . ( @  G , @  . A  M / 8   0 M 7  ? 8  M 7 G $ M 0  G 2 ?  % > ?", options: ["0 > /  B 0 & K  , ", " K 2  A  ! > ", ", @  > * A 0 ", "5 > 0   2 "], answer: "A" } ]); addSimpleQuestions('& ? 2 M 2 @ 8 2 M $ ( $ ', [ { question: "& ? 2 M 2 @ 8 2 M $ ( $  @ 8 M % > * ( >  ? 8 ( G  @ ?", options: [" A $ A , A & M & @ (  ,  ", " 2 M $ A $ . ? 6 ", ", 2 , ( ", " 2 > & M & @ (  ? 2  @ "], answer: "A" }, { question: "& ? 2 M 2 @ 8 2 M $ ( $ . G   ? 8 5  6  > 6 > 8 ( 8 , 8 G 2  , > % > ?", options: [" A 2 > . 5  6 ", " ? 2  @ 5  6 ", "$ A  2  5  6 ", "8 H / & 5  6 "], answer: "A" }, { question: "& ? 2 M 2 @ 8 2 M $ ( $  >   $ ? . 6 > 8   L ( % > ?", options: [" , M 0 > 9 ? . 2 K & @ ", ", 9 2 K 2 2 K & @ ", "8 ?   & 0 2 K & @ ", " 8 >  >  "], answer: "A" } ]); addSimpleQuestions('. ' M /  > 2 @ ( ' > 0 M . ?   ( M & K 2 ( ', [ { question: "-  M $ ?   & K 2 (  @ . A  M / 5 ? 6 G 7 $ >  M / > % @ ?", options: [" 6 M 5 0  G * M 0 $ ? * M 0 G . ", " 0 M .  >  ! ", "/  M  ", "5 0 M # 5 M / 5 8 M % > "], answer: "A" }, { question: "8 B + @   & K 2 (  ? 8 ' 0 M . 8 G 8  ,  ' ? $ 9 H ?", options: [" 8 M 2 > . ", "9 ?  & B ", "8 ?  ", " 8 >  "], answer: "A" }, { question: " , @ 0 ( G  ? 8 - > 7 > . G   * ( G * & 2 ?  G ?", options: ["9 ?  & @ ", " 0 M & B ", "+ > 0 8 @ ", "8  8 M  C $ "], answer: "A" } ]); addSimpleQuestions('. A  2 8 > . M 0 >  M /  > & /  0 8 M 5 $  $ M 0 0 >  M / ', [ { question: ". A  2 8 > . M 0 >  M /  @ 8 M % > * ( >  ? 8 ( G  @ ?", options: [", > , 0 ", "9 A . > / B  ", "  , 0 ", " 9 >   @ 0 "], answer: "A" }, { question: "  , 0 ( G  L ( 8 @ ( @ $ ?  * ( >  ?", options: ["8 A 2 9 - - A 2 ", "  < ? / > ", "' 0 M . * 0 ? 5 0 M $ ( ", "  M  0 $ > "], answer: "A" }, { question: ". A  2 8 > . M 0 >  M /  >   $ ? . 6 > 8   L ( % > ?", options: [", 9 > & A 0 6 > 9  + 0 ", " 0    G , ", "6 > 9  2 . ", "  , 0 & M 5 ? $ @ / "], answer: "A" } ]); addSimpleQuestions('- > 0 $ . G  , M 0 ?  ? 6 * M 0 6 > 8 (  0 8  G  0 M % ?  * M 0 - > 5 ', [ { question: "- > 0 $ . G  , M 0 ?  ? 6 6 > 8 (  , 8 M % > * ? $ 9 A  ?", options: ["1757", "1857", "1765", "1773"], answer: "A" }, { question: ", M 0 ?  ? 6 6 > 8 (  > - > 0 $ @ /  0 M % 5 M / 5 8 M % > * 0  M / > * M 0 - > 5 * ! < > ?", options: ["6 K 7 # ", "5 ?  > 8 ", "8 M 5 > 2  , ( ", "8 . C & M ' ? "], answer: "A" }, { question: ", M 0 ?  ? 6 K  ( G  ? 8 ( @ $ ? 8 G - > 0 $ @ / 9 8 M $ 6 ? 2 M *  K ( 7 M   ? / > ?", options: ["   M 0 G  @ 5 8 M $ A    >  / > $ ", " 0 5 C & M ' ? ", "/ A & M ' ", " C 7 ? 8 A ' > 0 "], answer: "A" } ]); addSimpleQuestions('/ B 0 K * @ / 6  M $ ?  > - > 0 $ . G    . ( ', [ { question: "- > 0 $ . G  * A 0 M $  > 2 ? / K   >   . (  , 9 A  ?", options: ["1498", "1500", "1600", "1505"], answer: "A" }, { question: "- > 0 $  ( G 5 > 2 > * 9 2 > * A 0 M $  > 2 @ ( > 5 ?   L ( % > ?", options: ["5 > 8 M  K ! @  > . > ", " K 2  , 8 ", ". H  2 ( ", "! M 0 G  "], answer: "A" }, { question: "   M 0 G  K  ( G - > 0 $ . G   * ( @ * 9 2 @ + H  M  M 0 @  9 >  8 M % > * ? $  @ ?", options: ["8 B 0 $ ", " 2  $ M $ > ", ",  ,  ", ". & M 0 > 8 "], answer: "A" } ]); addSimpleQuestions('- > 0 $ . G  ( 5  >  0 # , - > 0 $ . G  0 > 7 M  M 0 5 > &  > & / ', [ { question: "- > 0 $ . G  ( 5  >  0 #  @ 6 A 0 A  $  ? 8 ( G  @ ?", options: ["0 >  > 0 > . . K 9 ( 0 > / ", "8 M 5 > . @ 5 ? 5 G  > (  & ", "& / > (  & 8 0 8 M 5 $ @ ", " G 6 5   & M 0 8 G ( "], answer: "A" }, { question: "- > 0 $ . G  0 > 7 M  M 0 5 > &  > & /  , 9 A  ?", options: ["195 @  8 & @ ", "185 @  8 & @ ", "205 @  8 & @ ", "175 @  8 & @ "], answer: "A" }, { question: ", M 0 9 M . 8 . >   @ 8 M % > * ( >  ? 8 ( G  @ ?", options: ["0 >  > 0 > . . K 9 ( 0 > / ", "8 M 5 > . @ & / > (  & ", " G 6 5   & M 0 8 G ( ", "& G 5 G ( M & M 0 ( > %  H  K 0 "], answer: "A" } ]); addSimpleQuestions('1857-58  > 8 M 5 $  $ M 0 $ > 8   M 0 > . ', [ { question: "1857  G 5 ? & M 0 K 9  > $ > $ M  > 2 ?   > 0 #  M / > % > ?", options: [" ( + @ 2 M ! 0 >  + 2  > . > . 2 > ", " 0 5 C & M ' ? ", "   M 0 G  K   >  $ M / >  > 0 ", "8 $ @ * M 0 % > "], answer: "A" }, { question: "1857  G 5 ? & M 0 K 9 . G   ? 8 . A  2 6 > 8   K ( G $ > , ( > / >  / > ?", options: [", 9 > & A 0 6 > 9  + 0 ", "  , 0 & M 5 ? $ @ / ", "6 > 9  2 . ", " 0    G , "], answer: "A" }, { question: "1857  G 5 ? & M 0 K 9  K  ? 8 ( > . 8 G  > ( >  > $ > 9 H ?", options: ["* M 0 % . 8 M 5 $  $ M 0 $ > 8   M 0 > . ", "8 H ( M / 5 ? & M 0 K 9 ", " & 0 ", ",  > 5 $ "], answer: "A" } ]); addSimpleQuestions('- > 0 $ @ / 0 > 7 M  M 0 @ /   & K 2 ( (1885-1947)', [ { question: "- > 0 $ @ / 0 > 7 M  M 0 @ /  >   M 0 G 8  @ 8 M % > * ( >  , 9 A  ?", options: ["1885", "1905", "1920", "1942"], answer: "A" }, { question: " 8 9 / K    & K 2 (  ? 8 ( G 6 A 0 B  ? / > ?", options: [" >  ' @  @ ", "( G 9 0 B ", "8 A - > 7 ", "$ ? 2  "], answer: "A" }, { question: "- > 0 $  K ! < K   & K 2 (  ? 8 5 0 M 7 9 A  ?", options: ["1942", "1930", "1920", "1945"], answer: "A" } ]); addSimpleQuestions('8 M 5 $  $ M 0 $ >  G , > & - > 0 $ ', [ { question: "- > 0 $  K 8 M 5 $  $ M 0 $ >  , . ? 2 @ ?", options: ["1947", "1948", "1946", "1950"], answer: "A" }, { question: "- > 0 $  > 8  5 ? ' > (  , 2 >  B 9 A  ?", options: ["1950", "1949", "1951", "1948"], answer: "A" }, { question: "- > 0 $  G * M 0 % . * M 0 ' > ( .  $ M 0 @  L ( % G ?", options: [" 5 > 9 0 2 > 2 ( G 9 0 B ", "8 0 & > 0 *  G 2 ", "0 >  G ( M & M 0 * M 0 8 > & ", " >  ' @  @ "], answer: "A" } ]); // ----- CIVICS TOPICS (9) ----- addSimpleQuestions('5 ? 5 ? ' $ >  0 - G & - > 5 ', [ { question: "5 ? 5 ? ' $ >  >  0 M %  M / > 9 H ?", options: ["5 ? - ? ( M ( $ >   ", "  0 B * $ > ", "8 . > ( $ > ", " 8 . > ( $ > "], answer: "A" }, { question: "- G & - > 5  ? 8 * 0  ' > 0 ? $ 9 K $ > 9 H ?", options: [" > $ ? , ' 0 M . , 2 ?   ", "6 ?  M 7 > ", " / A ", "0 A  ? "], answer: "A" }, { question: "8 . > ( $ >  >  ' ?  > 0  ? 8  ( A  M  G & . G  9 H ?", options: [" ( A  M  G & 14", " ( A  M  G & 15", " ( A  M  G & 16", " ( A  M  G & 17"], answer: "A" } ]); addSimpleQuestions('- > 0 $ @ / 8  5 ? ' > (  0 ' 0 M . ( ? 0 * G  M 7 $ > ', [ { question: "- > 0 $  > 8  5 ? ' > (  , , ( > ?", options: ["1949", "1950", "1948", "1947"], answer: "A" }, { question: "8  5 ? ' > (  G  ( A 8 > 0 - > 0 $  H 8 > 0 >  M / 9 H ?", options: ["' 0 M . ( ? 0 * G  M 7 ", "' > 0 M . ?  ", " 8 >  ", ". A 8 M 2 ? . "], answer: "A" }, { question: "' 0 M . ( ? 0 * G  M 7 $ >  >  0 M %  M / > 9 H ?", options: ["8 - @ ' 0 M . K   G * M 0 $ ? 8 . > ( $ > ", "  ' 0 M . ", "' 0 M .  @  ( & G  @ ", "' 0 M .  > 5 ? 0 K ' "], answer: "A" } ]); addSimpleQuestions('0 > 7 M  M 0 @ / * M 0 $ @  ', [ { question: "- > 0 $  > 0 > 7 M  M 0 @ / *  M 7 @  M / > 9 H ?", options: [". K 0 ", "$ K $ > ", " 0 A ! < ", "9  8 "], answer: "A" }, { question: "- > 0 $  > 0 > 7 M  M 0 @ / * 6 A  M / > 9 H ?", options: [", >  ", "6 G 0 ", "9 > % @ ", " > / "], answer: "A" }, { question: "- > 0 $  > 0 > 7 M  M 0 @ / + B 2  M / > 9 H ?", options: [" . 2 ", " A 2 > , ", " . G 2 @ ", "8 B 0  . A  @ "], answer: "A" } ]); addSimpleQuestions('8  8 & ', [ { question: "- > 0 $ @ / 8  8 &  G  ? $ ( G 8 & ( 9 H  ?", options: ["& K ", "  ", "$ @ ( ", " > 0 "], answer: "A" }, { question: "2 K  8 - >  G 8 & 8 M / K   @  ' ?  $ . 8   M / >  ? $ ( @ 9 H ?", options: ["552", "500", "545", "560"], answer: "A" }, { question: "0 >  M / 8 - >  > 8 - > * $ ?  L ( 9 K $ > 9 H ?", options: [" * 0 > 7 M  M 0 * $ ? ", "0 > 7 M  M 0 * $ ? ", "* M 0 ' > ( .  $ M 0 @ ", "2 K  8 - >  ' M /  M 7 "], answer: "A" } ]); addSimpleQuestions('8 0  > 0  G * M 0  > 0 , 8 0  > 0  G 5 ? - ? ( M ( 8 M $ 0  0  A ( > 5 ', [ { question: "- > 0 $ . G   ? 8 * M 0  > 0  @ 8 0  > 0 9 H ?", options: ["2 K  $ >  $ M 0 ?  ", "$ > ( > 6 > 9 @ ", "8 > . M 0 >  M / 5 > & @ ", " ' ? ( > /  5 > & @ "], answer: "A" }, { question: "- > 0 $ . G  8 0  > 0  G  ? $ ( G 8 M $ 0 9 H  ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: " A ( > 5 . G   ? 8 8 ? & M ' >  $  > * > 2 (  ? / >  > $ > 9 H ?", options: ["  5 M /  M $ ?   5 K  ", " # $  $ M 0 ", "0 >  $  $ M 0 ", "5 0 M # 5 M / 5 8 M % > "], answer: "A" } ]); addSimpleQuestions('8 M % > ( @ / 8 M 5 6 > 8 ( ', [ { question: "8 M % > ( @ / 8 M 5 6 > 8 (  > 8 , 8 G  K  > 8 M $ 0  M / > 9 H ?", options: [" M 0 > . *   > / $ ", "(  0 * > 2 ?  > ", " ? 2 > * 0 ? 7 & ", ", M 2 I  "], answer: "A" }, { question: "735 G  8  6 K ' ( ( G  ? 8 5 M / 5 8 M % >  K 8  5 H ' > ( ?  & 0 M  > & ? / > ?", options: ["*   > / $ @ 0 >  ", "(  0 * > 2 ?  > ", " ? 2 > * M 0 6 > 8 ( ", "0 >  M / 8 0  > 0 "], answer: "A" }, { question: "745 G  8  6 K ' ( ( G  ? 8 5 M / 5 8 M % >  K 8  5 H ' > ( ?  & 0 M  > & ? / > ?", options: ["(  0 ( ?  > / ", "*   > / $ ", " ? 2 > ", ", M 2 I  "], answer: "A" } ]); addSimpleQuestions('. @ ! ? / >  0 2 K  $  $ M 0 ', [ { question: ". @ ! ? / >  > . A  M /  > 0 M /  M / > 9 H ?", options: ["8 B  ( > * M 0 8 > 0 ? $  0 ( > ", "0 >  ( @ $ ?  0 ( > ", "5 M / > * > 0  0 ( > ", ". ( K 0   ( "], answer: "A" }, { question: "2 K  $  $ M 0 . G  . @ ! ? / >  @  M / > - B . ?  > 9 H ?", options: [" ( . $ , ( > ( > ", "8 0  > 0  2 > ( > ", " > ( B ( , ( > ( > ", "( M / > /  0 ( > "], answer: "A" }, { question: ". @ ! ? / >  >  L % > 8 M $  -  ? 8 G  9 >  > $ > 9 H ?", options: ["* M 0 G 8 ", "5 ? ' > / ?  > ", " > 0 M / * > 2 ?  > ", "( M / > / * > 2 ?  > "], answer: "A" } ]); addSimpleQuestions('( M / > / * > 2 ?  >  0  * 0 > ' ?  ( M / > / * M 0 # > 2 @ ', [ { question: "- > 0 $  > 8 0 M 5 K  M  ( M / > / > 2 /  9 >  8 M % ? $ 9 H ?", options: ["(  & ? 2 M 2 @ ", ",  ,  ", " 2  $ M $ > ", " G ( M (  "], answer: "A" }, { question: "  M  $ . ( M / > / > 2 /  G ( M / > / > ' @ 6 K   @ ( ? / A  M $ ?  L (  0 $ > 9 H ?", options: ["0 > 7 M  M 0 * $ ? ", "* M 0 ' > ( .  $ M 0 @ ", ". A  M / ( M / > / > ' @ 6 ", "8  8 & "], answer: "A" }, { question: " * 0 > ' ?  ( M / > / * M 0 # > 2 @  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["( M / > / & G ( > ", "&  ! & G ( > ", ",  > 5  0 ( > ", " - ? / K  ( "], answer: "A" } ]); addSimpleQuestions('8 . > ( $ > , 9 > 6 ? / >  0 # , 8 > 0 M 5  ( ?  8 A 5 ? ' >    0 8 !  8 A 0  M 7 > ', [ { question: "8 . > ( $ >  >  M / >  0 M % 9 H ?", options: ["8 ,  K 8 . > (  5 8 0 ", "8 ,  K    H 8 > ", "8 ,  K 8 . > ( ' ( ", "8 ,  K 8 . > ( * & "], answer: "A" }, { question: "9 > 6 ? / >  0 #  >  0 M %  M / > 9 H ?", options: ["8 . >  8 G , > 9 0  0 ( > ", "8 . >  . G  6 > . ? 2  0 ( > ", "5 ? 6 G 7 > ' ?  > 0 & G ( > ", "6 ?  M 7 > & G ( > "], answer: "A" }, { question: "8 > 0 M 5  ( ?  8 A 5 ? ' >   . G   M / > 6 > . ? 2 9 H ?", options: ["8 M 5 > 8 M % M / , 6 ?  M 7 > , * 0 ? 5 9 ( ", " G 5 2 8 ! <  G  ", " G 5 2 * > ( @ ", " G 5 2 , ?  2 @ "], answer: "A" } ]); // ----- GEOGRAPHY TOPICS (9) ----- addSimpleQuestions(', M 0 9 M . >  !  0 8 L 0 .  ! 2 ', [ { question: ", M 0 9 M . >  !  > 8 , 8 G , ! < > 9 ? 8 M 8 >  M / > 9 H ?", options: ["  > 6    > ", "$ > 0 > ", " M 0 9 ", " *  M 0 9 "], answer: "A" }, { question: "8 B 0 M /  ? 8 * M 0  > 0  > $ > 0 > 9 H ?", options: ["$ > 0 > ", " M 0 9 ", " *  M 0 9 ", " M 7 A & M 0  M 0 9 "], answer: "A" }, { question: "* C % M 5 @ 8 B 0 M /  G  > 0 K   0  ? $ ( G & ? ( K  . G    M  0 2  > $ @ 9 H ?", options: ["365", "366", "360", "370"], answer: "A" } ]); addSimpleQuestions(' M 2 K , ,   M 7 >  6  0 & G 6 >  $ 0 ', [ { question: " M 2 K , * 0   M 7 >  6 0 G  >    ? 8 & ? 6 > . G  9 K $ @ 9 H  ?", options: ["* B 0 M 5 -* 6 M  ? . ", " $ M $ 0 -&  M 7 ? # ", " $ M $ 0 -* B 0 M 5 ", "&  M 7 ? # -* 6 M  ? . "], answer: "A" }, { question: "- B . ' M / 0 G  >  ? $ ( G ! ?  M 0 @ * 0 9 H ?", options: ["0°", "23.5°", "66.5°", "90°"], answer: "A" }, { question: "* M 0 ' > ( . ' M / > 9 M ( 0 G  >  9 >  8 G  A  0 $ @ 9 H ?", options: [" M 0 @ ( 5 ?  ", "* G 0 ? 8 ", "5 > 6 ?    ( ", "& ? 2 M 2 @ "], answer: "A" } ]); addSimpleQuestions('5 > / A & > , $ % > * 5 ( 8   > 0 ', [ { question: "5 > / A & > ,  ? 8  > 0 # 8 G $ M * ( M ( 9 K $ > 9 H ?", options: ["9 5 >  G - > 0 8 G ", "$ > * . > ( 8 G ", " 0 M & M 0 $ > 8 G ", "' B 2 8 G "], answer: "A" }, { question: "* 5 (  ? 8 & ? 6 > 8 G  ? 8 & ? 6 > . G  , 9 $ @ 9 H ?", options: ["  M  & > , 8 G ( ? . M ( & > , ", "( ? . M ( & > , 8 G  M  & > , ", "* B 0 M 5 8 G * 6 M  ? . ", "* 6 M  ? . 8 G * B 0 M 5 "], answer: "A" }, { question: "8 M % > / @ * 5 ( K  . G   L ( 8 @ * M 0 . A  9 H ?", options: ["5 M / > * > 0 ?  * 5 ( G  ", ". > ( 8 B ( ", "  M 0 5 > $ ", ", 5  ! 0 "], answer: "A" } ]); addSimpleQuestions('- B . ? , . C & >  0  2 8  8 > ' ( ', [ { question: ". C & >  G ( ? 0 M . > # . G   L ( 8 >  > 0  . A  M / 9 H ?", options: [" *  M 7 / ", " * 0 & ( ", "5 ?   ( ", "8   / ( "], answer: "A" }, { question: " 2 8  8 > ' (  > 8 , 8 G , ! < > 8 M 0 K $  M / > 9 H ?", options: ["8 . A & M 0 ", "( & ? / >  ", "9 ? . ( & ", "- B  2 "], answer: "A" }, { question: "- B . ?  G  ? $ ( G - >  * 0  C 7 ?  @  > 8  $ @ 9 H ?", options: [" *  > . ?  M  @ * 0 ", "* % 0 @ 2 @ - B . ? * 0 ", "0 G  ? 8 M $ > ( . G  ", "* 9 > ! < K  * 0 "], answer: "A" } ]); addSimpleQuestions('5 (  0 * M 0 . A   > 8  G . H & > ( ', [ { question: "- > 0 $ . G  8 , 8 G  ' ?  5 (  ? 8 0 >  M / . G  9 H  ?", options: [". ' M / * M 0 & G 6 ", " $ M $ 0 * M 0 & G 6 ", ". 9 > 0 > 7 M  M 0 ", " ! ? 6 > "], answer: "A" }, { question: "* M 0 . A   > 8  G . H & > (  ? 8 G  9 $ G 9 H  ?", options: ["8 M  G * @  < ", " A  ! M 0 > ", "8 5 > ( > ", ". 0 A 8 M % 2 "], answer: "A" }, { question: " 7 M #   ? ,  ' @ / 5 0 M 7 > 5 (  9 >  * >   > $ G 9 H  ?", options: ["- B . ' M / 0 G  >  G * > 8 ", "' M 0 A 5 K  * 0 ", "* 9 > ! < K  * 0 ", "0 G  ? 8 M $ > ( . G  "], answer: "A" } ]); addSimpleQuestions('* M 0 5 > 8 (  0 (  0 @  0 # ', [ { question: "* M 0 5 > 8 (  > . A  M /  > 0 #  M / > 9 H ?", options: ["0 K   > 0  @ $ 2 > 6 ", "6 ?  M 7 > ", "8 M 5 > 8 M % M / ", ". ( K 0   ( "], answer: "A" }, { question: "(  0 @  0 #  >  0 M %  M / > 9 H ?", options: [" >  5  > 6 9 0 . G  , & 2 ( > ", "6 9 0  >  >  5 . G  , & 2 ( > ", " ( 8   M / > 5 C & M ' ? ", " 0 M % ?  5 ?  > 8 "], answer: "A" }, { question: "- > 0 $ . G  8 , 8 G  ' ?  (  0 @  C $ 0 >  M /  L ( 8 > 9 H ?", options: [". 9 > 0 > 7 M  M 0 ", " $ M $ 0 * M 0 & G 6 ", ", ? 9 > 0 ", "0 >  8 M % > ( "], answer: "A" } ]); addSimpleQuestions('. > ( 5 8  8 > ' ( ', [ { question: ". > ( 5 8  8 > ' (  >  M / >  0 M % 9 H ?", options: [". ( A 7 M /  @  M 7 . $ > ", "' ( ", "8  * $ M $ ? ", "8  8 > ' ( "], answer: "A" }, { question: ". > ( 5 8  8 > ' (  > 5 ?  > 8  ? 8 8 G 9 K $ > 9 H ?", options: ["6 ?  M 7 >  0 8 M 5 > 8 M % M / ", "' ( 8 G ", "* M 0 >  C $ ?  8  8 > ' ( K  8 G ", " & M / K  K  8 G "], answer: "A" }, { question: "- > 0 $  @  ( 8   M / >  ? $ ( @ 9 H ?", options: ["140  0 K ! < ", "120  0 K ! < ", "130  0 K ! < ", "150  0 K ! < "], answer: "A" } ]); addSimpleQuestions('- > 0 $ . G  * 0 ? 5 9 ( , 8   > 0  5  5 M / > * > 0 ', [ { question: "- > 0 $ . G  * 0 ? 5 9 (  > 8 , 8 G 8 8 M $ > 8 > ' (  M / > 9 H ?", options: ["0 G 2 ", "8 ! <  ", " 2 ", "5 > / A "], answer: "A" }, { question: "8   > 0  > 8 , 8 G $ G  < 8 > ' (  M / > 9 H ?", options: ["   0 ( G  ", " G 2 @ + K ( ", "! >  ", " G 2 @  M 0 > + "], answer: "A" }, { question: "- > 0 $  > 8 , 8 G , ! < > ,  & 0  > 9  L ( 8 > 9 H ?", options: [". A  ,  ", " K 2  > $ > ", " G ( M (  ", "5 ? 6 >  > * $ M $ ( . "], answer: "A" } ]); addSimpleQuestions('* 0 M / > 5 0 # ', [ { question: "* 0 M / > 5 0 #  >  0 M %  M / > 9 H ?", options: [" > 0 K   0  > 5 > $ > 5 0 # ", " 2 5 > / A ", ". L 8 . ", "* M 0 >  C $ ?  8  8 > ' ( "], answer: "A" }, { question: "* 0 M / > 5 0 #  G  ? $ ( G    9 H  ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: "* 0 M / > 5 0 # * M 0 & B 7 #  > . A  M /  > 0 #  M / > 9 H ?", options: [". > ( 5  $ ? 5 ? ' ? / >  ", "* M 0 >  C $ ?   * & > ", " 2 5 > / A * 0 ? 5 0 M $ ( ", " ( 8   M / > "], answer: "A" } ]); // ----- PEDAGOGY TOPICS (10) ----- addSimpleQuestions('8 > . >  ?  5 ?  M  > ( /8 > . >  ?   ' M / / (  @  5 ' > 0 # >  5  * M 0  C $ ? ', [ { question: "8 > . >  ?   ' M / / (  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["8 > . >  ?  8 .  5 ?  8 ? $  0 ( > ", " $ ? 9 > 8 / > &  0 ( > ", "- B  K 2 * " < ( > ", "( >  0 ?  6 > 8 M $ M 0 * " < ( > "], answer: "A" }, { question: "8 > . >  ?  5 ?  M  > (  @ * M 0  C $ ?  H 8 @ 9 H ?", options: ["  $  5 ? 7 /  ", "  5 ? 7 /  ", "8   @ 0 M # ", "8 @ . ? $ "], answer: "A" }, { question: "8 > . >  ?   ' M / / (  ? 8 8 G 8  ,  ' ? $ 9 H ?", options: [". > ( 5 8 . >  ", "* M 0 >  C $ ?  5 ?  M  > ( ", " # ? $ ", "- > 7 > "], answer: "A" } ]); addSimpleQuestions('  M 7 >  @ * M 0  M 0 ? / >   ,  $ ? 5 ? ' ? / >   0 * M 0 5  ( ', [ { question: "  M 7 > . G  * M 0 - > 5 @ 6 ?  M 7 #  G 2 ?   M / >  5 6 M /  9 H ?", options: ["8  5 > & > $ M .   $ ? 5 ? ' ? / >  ", " G 5 2 5 M / >  M / > ( ", " G 5 2 2 G  ( ", " G 5 2 * ( "], answer: "A" }, { question: "  M 7 > . G  * M 0 5  (  >  M / > . 9 $ M 5 9 H ?", options: ["5 ?  > 0 K   >  & > ( -* M 0 & > ( ", " ' ?  > 0  . > ( > ", "( ? /  $ M 0 # ", " ( A 6 > 8 ( "], answer: "A" }, { question: " $ ? 5 ? ' ? - ' > 0 ? $ 6 ?  M 7 #  > 2 > -  M / > 9 H ?", options: ["8  M 0 ? /  ' ?  . ", "( ? 7 M  M 0 ? /  ' ?  . ", "0  ( > ", "/ > & 0  ( > "], answer: "A" } ]); addSimpleQuestions(' 2 K  ( > $ M .  5 ?  > 0 K   > 5 ?  > 8 ', [ { question: " 2 K  ( > $ M .   ?  $ (  >  M / >  0 M % 9 H ?", options: ["$ > 0 M  ?  5 ? 6 M 2 G 7 # ", "  ' 5 ? 6 M 5 > 8 ", "8 M 5 @  C $ ? ", " (  > 0 "], answer: "A" }, { question: " 2 K  ( > $ M .   ?  $ (  ? 8 . G  8 9 > /  9 H ?", options: ["8 . 8 M / > 8 . > ' > ( ", "0  ( > ", "/ > & 0  ( > ", " ( A 8 0 # "], answer: "A" }, { question: " 2 K  ( > $ M .   ?  $ (  > 5 ?  > 8  H 8 G 9 K $ > 9 H ?", options: ["* M 0 6 M ( * B  ( G 8 G ", ", ? ( > 8 K  G ", " G 5 2 * " < ( G 8 G ", " G 5 2 8 A ( ( G 8 G "], answer: "A" } ]); addSimpleQuestions('* B  $ >  / ( A - 5  ( M / 8 >  M 7 M / ', [ { question: "* B  $ >   >  0 M %  M / > 9 H ?", options: [" >   -* ! < $ > 2 ", "8 M 5 @  C $ ? ", " (  > 0 ", " ( A . > ( "], answer: "A" }, { question: " ( A - 5  ( M / 8 >  M 7 M /  ? 8 * 0  ' > 0 ? $ 9 K $ G 9 H  ?", options: [" 5 2 K  (  0  ( A - 5 ", "  ' 5 ? 6 M 5 > 8 ", " ( A . > ( ", "* 0  * 0 > "], answer: "A" }, { question: " ( A - 5  ( M / 8 >  M 7 M /  > . 9 $ M 5  M / > 9 H ?", options: ["$ % M / > $ M .  $ > ", " 2 M * ( > ", "5 ? 6 M 5 > 8 ", "* 0  * 0 > "], answer: "A" } ]); addSimpleQuestions('6 ?  M 7 #  ' ?  . 0 # ( @ $ ? / >  ', [ { question: "* M 0 - > 5 @ 6 ?  M 7 # 0 # ( @ $ ?  M / > 9 H ?", options: ["5 ? 5 ? ' 5 ? ' ? / K   > * / K  ", "  9 @ 5 ? ' ? ", " G 5 2 5 M / >  M / > ( ", " G 5 2 * ( "], answer: "A" }, { question: "8 9  > 0 @  ' ?  . . G   M / > 9 K $ > 9 H ?", options: ["8 . B 9 . G   > 0 M / ", "  G 2 G  > 0 M / ", "* M 0 $ ? 8 M * 0 M ' > ", "( ? 7 M  M 0 ? / $ > "], answer: "A" }, { question: "0 # ( @ $ ? - ' > 0 ? $ 6 ?  M 7 #  > 2 > -  M / > 9 H ?", options: ["5 H /  M $ ?   ' ?  . ", "8 . B 9  ' ?  . ", "0  ( > ", "( ? 7 M  M 0 ? / $ > "], answer: "A" } ]); addSimpleQuestions('8 > . >  ?  5 ?  M  > ( /8 > . >  ?   ' M / / ( * & M ' $ ?  @ 8 . 8 M / >   ', [ { question: "8 > . >  ?   ' M / / ( 6 ?  M 7 # . G  . A  M / 8 . 8 M / >  M / > 9 H ?", options: ["5 M / > 5 9 > 0 ?   - > 5 ", "* A 8 M $  K   @  . @ ", "6 ?  M 7  K   @  . @ ", "8 . /  @  . @ "], answer: "A" }, { question: "8 > . >  ?  5 ?  M  > ( 6 ?  M 7 # . G   M / >  A ( L $ @ 9 H ?", options: [" > $ M 0 K   @  0 A  ? ", "  M  0 A  ? ", "  M  G 8  8 > ' ( ", "* M 0 G 0 ? $  > $ M 0 "], answer: "A" }, { question: "8 > . >  ?   ' M / / ( . G   ? 8 * 0  K 0 & G ( >  > 9 ?  ?", options: [" 5 ' > 0 # > $ M .  8 .  ", "0  ( > ", "$ % M / K   K / > &  0 ( > ", "$ > 0 @  G  / > &  0 ( > "], answer: "A" } ]); addSimpleQuestions('8 M 0 K $ -* M 0 > ' ?  > 0 @  0 . > ' M / . ?  ', [ { question: "* M 0 > % . ?  8 M 0 K $  M / > 9 H  ?", options: [". B 2 & 8 M $ > 5 G  ", "& M 5 ? $ @ /  8 M 0 K $ ", "* A 8 M $  G  ", "2 G  "], answer: "A" }, { question: "& M 5 ? $ @ /  8 M 0 K $  M / > 9 H  ?", options: ["5 M / >  M / > ", ". B 2 & 8 M $ > 5 G  ", " - ? 2 G  ", "8 >  M 7 M / "], answer: "A" }, { question: "8 M 0 K $ K   @ * M 0 > . > # ?  $ >  H 8 G  >   @  > $ @ 9 H ?", options: ["$ A 2 ( >  0 5 ? 6 M 2 G 7 # ", "5 ? 6 M 5 > 8 ", " ( A . > ( ", "* 0  * 0 > "], answer: "A" } ]); addSimpleQuestions('* 0 ? / K  ( >  > 0 M / ', [ { question: "* 0 ? / K  ( >  > 0 M /  > . A  M / & M & G 6 M /  M / > 9 H ?", options: [" ( A 8  ' > (  L 6 2 5 ?  8 ? $  0 ( > ", "0  ( > ", "/ > &  0 ( > ", "2 G  ( "], answer: "A" }, { question: "* 0 ? / K  ( >  > 0 M /  ? 8 * M 0  > 0  > 9 K $ > 9 H ?", options: ["5 M / > 5 9 > 0 ?  ", "8 H & M ' >  $ ?  ", "( ? 7 M  M 0 ? / ", "8 M . 0 # > $ M .  "], answer: "A" }, { question: "* 0 ? / K  ( >  > 0 M /  > 2 > -  M / > 9 H ?", options: ["8 M 5 - ' ?  . ", "( ? 0 M & G 6 ? $  ' ?  . ", "( ? 7 M  M 0 ? / $ > ", "0  ( > "], answer: "A" } ]); addSimpleQuestions('6 ?  M 7 # 8 > .  M 0 @ / ! M 8 ', [ { question: "6 ?  M 7 # 8 > .  M 0 @  >  M / > & M & G 6 M / 9 H ?", options: ["6 ?  M 7 #  K 0 K   , ( > ( > ", "0  ( > ", "* 0 @  M 7 > ", " - M / > 8 "], answer: "A" }, { question: "& C 6 M / 8 > .  M 0 @  > & > 9 0 #  M / > 9 H ?", options: [". > (  ? $ M 0 ", "* A 8 M $  ", " G * ", "0 G ! ? / K "], answer: "A" }, { question: "6 ?  M 7 #  ! M 8  > * / K   M / K   0 G  ?", options: ["8 .  , " < > ( G  G 2 ?  ", "8 . / , ? $ > ( G ", ". ( K 0   ( ", " - M / > 8 "], answer: "A" } ]); addSimpleQuestions('. B 2 M / >   ( ', [ { question: ". B 2 M / >   (  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["6 ?  M 7 > 0 M % @  @ * M 0  $ ?  >   ( > ", "6 ?  M 7   @ * M 0  $ ? ", "* > M /  M 0 . ", "5 ? & M / > 2 / "], answer: "A" }, { question: "0  ( > $ M .  . B 2 M / >   (  ,  ? / >  > $ > 9 H ?", options: ["6 ?  M 7 #  G & L 0 > ( ", "6 ?  M 7 #  G   $ ", "6 ?  M 7 #  G 6 A 0 B ", "* 0 @  M 7 >  G , > & "], answer: "A" }, { question: "/ K  > $ M .  . B 2 M / >   (  > & M & G 6 M /  M / > 9 H ?", options: [" M 0 G ! & G ( > ", "8 A ' > 0 ", "( ? & > ( ", "/ K  ( > "], answer: "A" } ]); // Topic keys (55 topics) const topicKeys = [ // History (19) " $ ? 9 > 8  > ( ( G  G 8 M 0 K $ ", ". > ( 5  > 5 ?  > 8 ", "8 ? ( M ' A  >  @  0 5 H & ?  8 - M / $ > ", " H ( ' 0 M .  0 , L & M ' ' 0 M . ", ". 9 >  ( * &  > 2 ", ". L 0 M /  > 2 ", ". L 0 M / >  $ 0 - > 0 $ ", " A * M $  0  A * M $ >  $ 0 / A  ", "8   . / A   0 &  M 7 ? # - > 0 $ @ / 8 > . M 0 >  M / ", "8   0 M 7  > / A  : 5 ?  / (  0  0 , 9 . ( @ 8 > . M 0 >  M / ", "& ? 2 M 2 @ 8 2 M $ ( $ ", ". ' M /  > 2 @ ( ' > 0 M . ?   ( M & K 2 ( ", ". A  2 8 > . M 0 >  M /  > & /  0 8 M 5 $  $ M 0 0 >  M / ", "- > 0 $ . G  , M 0 ?  ? 6 * M 0 6 > 8 (  0 8  G  0 M % ?  * M 0 - > 5 ", "/ B 0 K * @ / 6  M $ ?  > - > 0 $ . G    . ( ", "- > 0 $ . G  ( 5  >  0 # , - > 0 $ . G  0 > 7 M  M 0 5 > &  > & / ", "1857-58  > 8 M 5 $  $ M 0 $ > 8   M 0 > . ", "- > 0 $ @ / 0 > 7 M  M 0 @ /   & K 2 ( (1885-1947)", "8 M 5 $  $ M 0 $ >  G , > & - > 0 $ ", // Civics (9) "5 ? 5 ? ' $ >  0 - G & - > 5 ", "- > 0 $ @ / 8  5 ? ' > (  0 ' 0 M . ( ? 0 * G  M 7 $ > ", "0 > 7 M  M 0 @ / * M 0 $ @  ", "8  8 & ", "8 0  > 0  G * M 0  > 0 , 8 0  > 0  G 5 ? - ? ( M ( 8 M $ 0  0  A ( > 5 ", "8 M % > ( @ / 8 M 5 6 > 8 ( ", ". @ ! ? / >  0 2 K  $  $ M 0 ", "( M / > / * > 2 ?  >  0  * 0 > ' ?  ( M / > / * M 0 # > 2 @ ", "8 . > ( $ > , 9 > 6 ? / >  0 # , 8 > 0 M 5  ( ?  8 A 5 ? ' >    0 8 !  8 A 0  M 7 > ", // Geography (9) ", M 0 9 M . >  !  0 8 L 0 .  ! 2 ", " M 2 K , ,   M 7 >  6  0 & G 6 >  $ 0 ", "5 > / A & > , $ % > * 5 ( 8   > 0 ", "- B . ? , . C & >  0  2 8  8 > ' ( ", "5 (  0 * M 0 . A   > 8  G . H & > ( ", "* M 0 5 > 8 (  0 (  0 @  0 # ", ". > ( 5 8  8 > ' ( ", "- > 0 $ . G  * 0 ? 5 9 ( , 8   > 0  5  5 M / > * > 0 ", "* 0 M / > 5 0 # ", // Pedagogy (10) "8 > . >  ?  5 ?  M  > ( /8 > . >  ?   ' M / / (  @  5 ' > 0 # >  5  * M 0  C $ ? ", "  M 7 >  @ * M 0  M 0 ? / >   ,  $ ? 5 ? ' ? / >   0 * M 0 5  ( ", " 2 K  ( > $ M .  5 ?  > 0 K   > 5 ?  > 8 ", "* B  $ >  / ( A - 5  ( M / 8 >  M 7 M / ", "6 ?  M 7 #  ' ?  . 0 # ( @ $ ? / >  ", "8 > . >  ?  5 ?  M  > ( /8 > . >  ?   ' M / / ( * & M ' $ ?  @ 8 . 8 M / >   ", "8 M 0 K $ -* M 0 > ' ?  > 0 @  0 . > ' M / . ?  ", "* 0 ? / K  ( >  > 0 M / ", "6 ?  M 7 # 8 > .  M 0 @ / ! M 8 ", ". B 2 M / >   ( " ]; // Bilingual topic names for display const topicNames = { hi: topicKeys, en: [ // History "Sources of Knowing History", "Evolution of Man", "Indus Valley and Vedic Civilization", "Jainism and Buddhism", "Mahajanpadas Period", "Mauryan Period", "Post Mauryan India", "Gupta and Post Gupta Era", "Sangam Age and South Indian Empire", "Age of Struggle: Vijayanagar and Bahmani", "Delhi Sultanate", "Medieval Religious Movements", "Rise of Mughal Dynasty and Autonomous State", "British Administration and Economic Effects", "Arrival of European Powers", "Renaissance and Rise of Nationalism", "War of Independence 1857-58", "Indian National Movement (1885-1947)", "India After Independence", // Civics "Diversity and Discrimination", "Indian Constitution and Secularism", "National Symbols", "The Parliament", "Types of Governments, Tiers and Election", "Local Self Government", "Media and Democracy", "Judiciary and Criminal Justice System", "Equality, Marginalisation, Public Facilities, Road Safety", // Geography "Universe and Solar System", "Globe, Latitudes and Longitudes", "Atmospheric Pressure & Air Circulation", "Land, Soil and Water Resources", "Forest and Major Grasslands", "Migration and Urbanisation", "Human Resources", "Transportation, Communication and Trade in India", "Environment", // Pedagogy "Concept and Nature of Social Science/Social Studies", "Classroom Processes, Activities and Discourse", "Development of Critical Thinking", "Enquiry/Empirical Evidence", "Teaching Learning Strategies", "Problems in Teaching Social Science/Social Studies", "Primary and Secondary Sources", "Project Work", "Teaching Aids", "Evaluation" ] }; 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", mainSubtitle: "8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0 (Social Studies/Pedagogy)  8 >  ( . G    ( 0 G  0 ", startTitle: "8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0  8 >  ( . G    ( 0 G  0 ", startBtn: " 8 >  ( . G   , ( >   ", subjectTitle: "5 ? 7 /  >  / (  0 G  ", selectSubject: "8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0 (Social Studies/Pedagogy)", chapterTitle: " ' M / > / / 5 ? 7 /  A ( G  ", backStart: "* M 0 > 0  - * 0 5 > * 8  >   ", generateAssign: " 8 >  ( . G   , ( >   ", levelTitle: " ? ( >  8 M $ 0  A ( G  ", levelDesc: " * ( G  8 >  ( . G    G 2 ?  8 M $ 0  >  / (  0 G  :", level1: "8 M $ 0 1", level1Sub: ", G 8 ?  8 M $ 0 ", level2: "8 M $ 0 2", level2Sub: ". ' M / . 8 M $ 0 ", level3: "8 M $ 0 3", level3Sub: "* 0 @  M 7 > 8 M $ 0 ", backChapters: "5 ? 7 / K  * 0 5 > * 8  >   ", generateFinal: " 8 >  ( . G    ( 0 G   0 G  ", fullPaper: "* B 0 M # * > M /  M 0 . (8 - @ 55 5 ? 7 / )", noChapterAlert: " C * / >  . 8 G  .    ' M / > / /5 ? 7 /  A ( G  !", noLevelAlert: " C * / >  ? ( >  8 M $ 0  A ( G  !", fullPaperLabel: "* B 0 M # * > M /  M 0 . (8 - @ 55 5 ? 7 / )", instructions: "( ? 0 M & G 6 :", inst1: " 8  8 >  ( . G   . G  45 , 9 A 5 ?  2 M * @ / * M 0 6 M ( (MCQs) 9 H  d ", inst2: "* M 0 $ M / G  * M 0 6 M (  G  > 0 5 ?  2 M * 9 H  ,  G 5 2   8 9 @ 9 H d ", inst3: "  ? $ 5 ?  2 M *  >  / (  0 G  d ", inst4: "8 . / : 60 . ? (  ", mcqHeading: ", 9 A 5 ?  2 M * @ / * M 0 6 M ( (MCQs)", answerKey: " $ M $ 0  A   @ (Answer Key)", qNo: "* M 0 6 M ( 8  .", ans: " $ M $ 0 ", print: "* M 0 ?    0 G  ", download: "PDF ! > ( 2 K !  0 G  ", newAssign: "( / >  8 >  ( . G   ", subjectLabel: "8 > . >  ?   ' M / / ( /6 ?  M 7 > 6 > 8 M $ M 0 ", langLabel: "9 ?  & @ ", noQuestions: "* M 0 6 M ( * 2 , M ' ( 9 @  9 H  d  C * / >  ( M /  ' M / > /  A ( G  d " }, en: { mainTitle: "CTET Paper 2", mainSubtitle: "Social Studies/Pedagogy Assignment Generator", startTitle: "Social Studies/Pedagogy Assignment Generator", startBtn: "Create Assignment", subjectTitle: "Select Subject", selectSubject: "Social Studies/Pedagogy", chapterTitle: "Select Chapters / Topics", backStart: "Back to Start", generateAssign: "Generate Assignment", levelTitle: "Select Difficulty Level", levelDesc: "Choose the level for your assignment:", level1: "Level 1", level1Sub: "Basic Level", level2: "Level 2", level2Sub: "Medium Level", level3: "Level 3", level3Sub: "Exam Level", backChapters: "Back to Topics", generateFinal: "Generate Assignment", fullPaper: "Full Syllabus (All 55 Topics)", noChapterAlert: "Please select at least one chapter/topic!", noLevelAlert: "Please select a difficulty level!", fullPaperLabel: "Full Syllabus (All 55 Topics)", instructions: "Instructions:", inst1: "This assignment has 45 multiple-choice questions (MCQs).", inst2: "Each question has four options, only one is correct.", inst3: "Select the appropriate option.", inst4: "Time: 60 minutes", mcqHeading: "Multiple Choice Questions (MCQs)", answerKey: "Answer Key", qNo: "Q. No.", ans: "Answer", print: "Print", download: "Download PDF", newAssign: "New Assignment", subjectLabel: "Social Studies/Pedagogy", langLabel: "English", noQuestions: "Questions not available. Please select other chapters." } }; // DOM refs const langToggleBtn = document.getElementById('langToggleBtn'); const langLabel = document.getElementById('langLabel'); let currentLang = 'hi'; 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('startGeneratingBtn').textContent = t.startBtn; document.getElementById('subjectTitle').textContent = t.subjectTitle; document.getElementById('selectSocialBtn').textContent = t.selectSubject; document.getElementById('chapterTitle').textContent = t.chapterTitle; document.getElementById('backToStartBtn').textContent = t.backStart; document.getElementById('generateAssignmentBtn').textContent = t.generateAssign; document.getElementById('levelTitle').textContent = t.levelTitle; document.getElementById('levelDesc').textContent = t.levelDesc; document.getElementById('level1Btn').innerHTML = `${t.level1}<br><small>${t.level1Sub}</small>`; document.getElementById('level2Btn').innerHTML = `${t.level2}<br><small>${t.level2Sub}</small>`; document.getElementById('level3Btn').innerHTML = `${t.level3}<br><small>${t.level3Sub}</small>`; document.getElementById('backToChaptersBtn').textContent = t.backChapters; document.getElementById('generateFinalBtn').textContent = t.generateFinal; langLabel.textContent = t.langLabel; populateChapters(); if (!generatedPaperContainer.classList.contains('hidden')) { if (selectedChapters && selectedLevel) { generatePaper(selectedChapters, selectedLevel, currentLang); } } } langToggleBtn.addEventListener('click', function() { currentLang = (currentLang === 'hi') ? 'en' : 'hi'; applyUILanguage(currentLang); }); // ----- Core logic ----- let selectedChapters = []; let selectedLevel = null; const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const subjectSelection = document.getElementById('subjectSelection'); const chapterSelection = document.getElementById('chapterSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); function populateChapters() { const container = document.getElementById('chapterCheckboxContainer'); const t = uiText[currentLang]; const fullPaperLabel = (currentLang === 'hi') ? "* B 0 M # * > M /  M 0 . (8 - @ 55 5 ? 7 / )" : "Full Syllabus (All 55 Topics)"; container.innerHTML = `<div class="checkbox-item"><input type="checkbox" id="fullPaper" value="full"><label for="fullPaper">${fullPaperLabel}</label></div>`; topicKeys.forEach((key, idx) => { const displayName = getTopicDisplay(key, currentLang); container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="topic_${idx}" name="chapter" value="${key}"><label for="topic_${idx}">${idx+1}. ${displayName}</label></div>`; }); const fullPaperCheckbox = document.getElementById('fullPaper'); if(fullPaperCheckbox) { fullPaperCheckbox.addEventListener('change', function() { const allChapterCheckboxes = document.querySelectorAll('input[name="chapter"]'); allChapterCheckboxes.forEach(cb => cb.disabled = this.checked); }); } } function getRandomQuestions(chapters, level, count, lang) { let allQuestions = []; chapters.forEach(ch => { if(questionBank[ch] && questionBank[ch][lang] && questionBank[ch][lang][`level${level}`]) { allQuestions = allQuestions.concat(questionBank[ch][lang][`level${level}`]); } }); if(allQuestions.length === 0) { const t = uiText[lang]; return [{ 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 generatePaper(chapters, level, lang) { const t = uiText[lang]; const mcqs = getRandomQuestions(chapters, level, 45, lang); let questionNumber = 1; let chapterDisplay = ''; if (chapters.length === topicKeys.length) { chapterDisplay = t.fullPaperLabel; } else { const displayNames = chapters.slice(0,3).map(k => getTopicDisplay(k, lang)); chapterDisplay = displayNames.join(", ") + (chapters.length > 3 ? "..." : ""); } let paperContent = ` <div class="header"> <h2>CTET Paper 2 - ${t.subjectLabel}</h2> <h3>${chapterDisplay}</h3> <p>${level === 1 ? t.level1 : level === 2 ? t.level2 : t.level3} - ${level === 1 ? t.level1Sub : level === 2 ? t.level2Sub : t.level3Sub}</p> </div> <div class="content-area"> <div class="instructions"> <p><strong>${t.instructions}</strong></p> <ol> <li>${t.inst1}</li> <li>${t.inst2}</li> <li>${t.inst3}</li> <li>${t.inst4}</li> </ol> </div> <div class="question-section"> <div class="section-heading">${t.mcqHeading}</div>`; mcqs.forEach(mcq => { paperContent += ` <div class="question"> <div class="question-text">${questionNumber}. ${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>`; questionNumber++; }); paperContent += ` </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) { paperContent += `<tr>`; for(let j=0; j<3; j++) { if(i+j < mcqs.length) { paperContent += `<td>${i+j+1}</td><td>${mcqs[i+j].answer}</td>`; } else { paperContent += `<td></td><td></td>`; } } paperContent += `</tr>`; } paperContent += ` </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.newAssign}</button> </div> </div>`; generatedPaperContainer.innerHTML = paperContent; generatedPaperContainer.classList.remove('hidden'); startContainer.classList.add('hidden'); document.getElementById('printBtn').addEventListener('click', function() { window.print(); }); document.getElementById('downloadBtn').addEventListener('click', downloadPDF); document.getElementById('newAssignmentBtn').addEventListener('click', function() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); startScreen.classList.remove('hidden'); subjectSelection.classList.add('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); selectedLevel = null; level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); }); } // Event Listeners document.getElementById('startGeneratingBtn').addEventListener('click', function() { startScreen.classList.add('hidden'); subjectSelection.classList.remove('hidden'); }); document.getElementById('selectSocialBtn').addEventListener('click', function() { subjectSelection.classList.add('hidden'); populateChapters(); chapterSelection.classList.remove('hidden'); }); document.getElementById('backToStartBtn').addEventListener('click', function() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); startScreen.classList.remove('hidden'); subjectSelection.classList.add('hidden'); }); document.getElementById('generateAssignmentBtn').addEventListener('click', function() { const fullPaper = document.getElementById('fullPaper'); if(fullPaper && fullPaper.checked) { selectedChapters = [...topicKeys]; } else { selectedChapters = Array.from(document.querySelectorAll('input[name="chapter"]:checked')).map(cb => cb.value); } if(selectedChapters.length === 0) { const t = uiText[currentLang]; alert(t.noChapterAlert); return; } chapterSelection.classList.add('hidden'); levelSelection.classList.remove('hidden'); }); document.getElementById('backToChaptersBtn').addEventListener('click', function() { levelSelection.classList.add('hidden'); chapterSelection.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; } document.getElementById('level1Btn').addEventListener('click', function() { selectLevel(1); }); document.getElementById('level2Btn').addEventListener('click', function() { selectLevel(2); }); document.getElementById('level3Btn').addEventListener('click', function() { selectLevel(3); }); document.getElementById('generateFinalBtn').addEventListener('click', function() { if(!selectedLevel) { const t = uiText[currentLang]; alert(t.noLevelAlert); return; } startContainer.classList.add('hidden'); levelSelection.classList.add('hidden'); generatePaper(selectedChapters, selectedLevel, currentLang); }); // PDF Download 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; const pageHeight = pdf.internal.pageSize.getHeight() - 25.4; let position = 12.7; let remainingHeight = tempDiv.scrollHeight; let pageNum = 1; while(remainingHeight > 0) { const canvas = await html2canvas(tempDiv, { scale: 2, windowHeight: pageHeight * 3.78, windowWidth: pageWidth * 3.78, y: position * 3.78, height: pageHeight * 3.78, useCORS: true, backgroundColor: '#ffffff', logging: false }); const imgData = canvas.toDataURL('image/jpeg', 0.95); if(pageNum > 1) pdf.addPage('a4', 'portrait'); pdf.addImage(imgData, 'JPEG', 12.7, 12.7, pageWidth, (canvas.height * pageWidth) / canvas.width); position += pageHeight; remainingHeight -= pageHeight * 3.78; pageNum++; } pdf.save('CTET_Social_Studies_Pedagogy_Assignment.pdf'); } catch(err) { console.error(err); alert('PDF generation error. Please try again.'); } finally { if(tempDiv && tempDiv.parentNode) document.body.removeChild(tempDiv); } } // Home icon document.getElementById('homeIconBtn').addEventListener('click', function(e) { e.preventDefault(); generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); startScreen.classList.remove('hidden'); subjectSelection.classList.add('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); selectedLevel = null; level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); }); // Initial load applyUILanguage('hi'); </script> </body> </html>