ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CTET Paper 1 -  # ? $  5  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-paper1-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 1</h1> <p id="mainSubtitle"> # ? $  5  6 ?  M 7 > 6 > 8 M $ M 0 (Mathematics and Pedagogy)  8 >  ( . G    ( 0 G  0 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title" id="startTitle"> # ? $  5  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="selectMathBtn"> # ? $  5  6 ?  M 7 > 6 > 8 M $ M 0 (Mathematics & 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 (23 TOPICS: 15 Maths + 8 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); }); } // ----- MATHEMATICS TOPICS (15) ----- // 1. Number System addQuestions('8   M / > * & M ' $ ? ', [ { question: "Which of the following is a prime number?", options: ["17", "21", "27", "39"], answer: "A" }, { question: "The LCM of 12 and 18 is:", options: ["36", "72", "108", "144"], answer: "A" }, { question: "The value of 5! is:", options: ["120", "60", "24", "720"], answer: "A" } ], [ { question: "( ? . M ( 2 ?  ? $ . G   L ( 8 @  - >  M / 8   M / > 9 H ?", options: ["17", "21", "27", "39"], answer: "A" }, { question: "12  0 18  > LCM 9 H :", options: ["36", "72", "108", "144"], answer: "A" }, { question: "5!  > . > ( 9 H :", options: ["120", "60", "24", "720"], answer: "A" } ] ); // 2. Mathematical Operations addQuestions(' # ? $ @ / . B 2 8   M 0 ? / >   ', [ { question: "123 + 456 = ?", options: ["579", "569", "589", "599"], answer: "A" }, { question: "1000 - 254 = ?", options: ["746", "756", "736", "766"], answer: "A" }, { question: "25 × 4 = ?", options: ["80", "100", "120", "90"], answer: "B" } ], [ { question: "123 + 456 = ?", options: ["579", "569", "589", "599"], answer: "A" }, { question: "1000 - 254 = ?", options: ["746", "756", "736", "766"], answer: "A" }, { question: "25 × 4 = ?", options: ["80", "100", "120", "90"], answer: "B" } ] ); // 3. LCM & HCF addQuestions('2  A $ M $ . 8 . > * 5 0 M $ M /  0 . 9 $ M $ . 8 . > * 5 0 M $  ', [ { question: "HCF of 24 and 36 is:", options: ["12", "6", "18", "24"], answer: "A" }, { question: "LCM of 4, 5, 10 is:", options: ["20", "40", "10", "5"], answer: "A" }, { question: "HCF of 48 and 72 is:", options: ["24", "16", "12", "8"], answer: "A" } ], [ { question: "24  0 36  > HCF 9 H :", options: ["12", "6", "18", "24"], answer: "A" }, { question: "4, 5  0 10  > LCM 9 H :", options: ["20", "40", "10", "5"], answer: "A" }, { question: "48  0 72  > HCF 9 H :", options: ["24", "16", "12", "8"], answer: "A" } ] ); // 4. Fractions and Decimals addQuestions('. ? ( M (  5  & 6 . 2 5 8   M / >   ', [ { question: "1/2 + 1/4 = ?", options: ["3/4", "2/6", "1/6", "2/4"], answer: "A" }, { question: "2.5 + 3.7 = ?", options: ["6.2", "5.2", "6.5", "5.5"], answer: "A" }, { question: "3/5 × 2/3 = ?", options: ["2/5", "5/8", "6/15", "1/2"], answer: "A" } ], [ { question: "1/2 + 1/4 = ?", options: ["3/4", "2/6", "1/6", "2/4"], answer: "A" }, { question: "2.5 + 3.7 = ?", options: ["6.2", "5.2", "6.5", "5.5"], answer: "A" }, { question: "3/5 × 2/3 = ?", options: ["2/5", "5/8", "6/15", "1/2"], answer: "A" } ] ); // 5. Square, Square Root, Cube, Cube Root addQuestions('5 0 M  -5 0 M  . B 2  5   ( - ( . B 2 ', [ { question: "12² = ?", options: ["144", "122", "124", "136"], answer: "A" }, { question: ""81 = ?", options: ["9", "8", "7", "10"], answer: "A" }, { question: "5³ = ?", options: ["125", "25", "75", "100"], answer: "A" } ], [ { question: "12² = ?", options: ["144", "122", "124", "136"], answer: "A" }, { question: ""81 = ?", options: ["9", "8", "7", "10"], answer: "A" }, { question: "5³ = ?", options: ["125", "25", "75", "100"], answer: "A" } ] ); // 6. Average addQuestions(' 8 $ ', [ { question: "Average of 10, 20, 30 is:", options: ["20", "15", "25", "30"], answer: "A" }, { question: "Average of first 5 natural numbers is:", options: ["3", "2", "4", "5"], answer: "A" }, { question: "If average of 6 numbers is 10, sum is:", options: ["60", "50", "70", "80"], answer: "A" } ], [ { question: "10, 20, 30  >  8 $ 9 H :", options: ["20", "15", "25", "30"], answer: "A" }, { question: "* 9 2 @ 5 * M 0 >  C $ ?  8   M / >    >  8 $ 9 H :", options: ["3", "2", "4", "5"], answer: "A" }, { question: "/ & ? 6 8   M / >    >  8 $ 10 9 H , $ K / K  9 H :", options: ["60", "50", "70", "80"], answer: "A" } ] ); // 7. Time and Distance addQuestions('8 . /  0 & B 0 @ ', [ { question: "Speed = 60 km/h, Time = 2 hours, Distance = ?", options: ["120 km", "30 km", "60 km", "180 km"], answer: "A" }, { question: "Distance = 180 km, Speed = 60 km/h, Time = ?", options: ["3 h", "2 h", "4 h", "5 h"], answer: "A" }, { question: "Speed = 40 km/h, Time = 5 h, Distance = ?", options: ["200 km", "160 km", "180 km", "220 km"], answer: "A" } ], [ { question: " $ ? = 60  ? . @ /   > , 8 . / = 2    G , & B 0 @ = ?", options: ["120  ? . @ ", "30  ? . @ ", "60  ? . @ ", "180  ? . @ "], answer: "A" }, { question: "& B 0 @ = 180  ? . @ ,  $ ? = 60  ? . @ /   > , 8 . / = ?", options: ["3    G ", "2    G ", "4    G ", "5    G "], answer: "A" }, { question: " $ ? = 40  ? . @ /   > , 8 . / = 5    G , & B 0 @ = ?", options: ["200  ? . @ ", "160  ? . @ ", "180  ? . @ ", "220  ? . @ "], answer: "A" } ] ); // 8. Geometry addQuestions(' M / > . ? $ ? ', [ { question: "Sum of angles in a triangle is:", options: ["180°", "90°", "360°", "270°"], answer: "A" }, { question: "Number of sides in a hexagon:", options: ["6", "5", "7", "8"], answer: "A" }, { question: "Area of a rectangle with length 5 and breadth 4 is:", options: ["20", "9", "18", "15"], answer: "A" } ], [ { question: "$ M 0 ? - A   G  K # K   > / K  9 K $ > 9 H :", options: ["180°", "90°", "360°", "270°"], answer: "A" }, { question: "7  M - A   @ - A  >    @ 8   M / > :", options: ["6", "5", "7", "8"], answer: "A" }, { question: "5 2  , >   0 4  L ! < >  5 > 2 G  / $  >  M 7 G $ M 0 + 2 :", options: ["20", "9", "18", "15"], answer: "A" } ] ); // 9. Mensuration addQuestions(' M 7 G $ M 0 . ? $ ? ', [ { question: "Perimeter of square with side 5 cm:", options: ["20 cm", "25 cm", "15 cm", "30 cm"], answer: "A" }, { question: "Area of circle with radius 7 cm (À=22/7):", options: ["154 sq cm", "44 sq cm", "88 sq cm", "77 sq cm"], answer: "A" }, { question: "Volume of cube with side 3 cm:", options: ["27 cu cm", "9 cu cm", "18 cu cm", "36 cu cm"], answer: "A" } ], [ { question: "5 8 G . @ - A  > 5 > 2 G 5 0 M   > * 0 ? . > * :", options: ["20 8 G . @ ", "25 8 G . @ ", "15 8 G . @ ", "30 8 G . @ "], answer: "A" }, { question: "7 8 G . @ $ M 0 ?  M / > 5 > 2 G 5 C $ M $  >  M 7 G $ M 0 + 2 (À=22/7):", options: ["154 5 0 M  8 G . @ ", "44 5 0 M  8 G . @ ", "88 5 0 M  8 G . @ ", "77 5 0 M  8 G . @ "], answer: "A" }, { question: "3 8 G . @ - A  > 5 > 2 G  (  >  / $ ( :", options: ["27  ( 8 G . @ ", "9  ( 8 G . @ ", "18  ( 8 G . @ ", "36  ( 8 G . @ "], answer: "A" } ] ); // 10. Units and Measurement addQuestions('6 ?  M 7 > / K   5  . > * ( ', [ { question: "1 kilometer = ? meters", options: ["1000", "100", "500", "2000"], answer: "A" }, { question: "1 liter = ? milliliters", options: ["1000", "100", "500", "2000"], answer: "A" }, { question: "1 kilogram = ? grams", options: ["1000", "100", "500", "2000"], answer: "A" } ], [ { question: "1  ? 2 K . @  0 = ? . @  0 ", options: ["1000", "100", "500", "2000"], answer: "A" }, { question: "1 2 @  0 = ? . ? 2 @ 2 @  0 ", options: ["1000", "100", "500", "2000"], answer: "A" }, { question: "1  ? 2 K  M 0 > . = ?  M 0 > . ", options: ["1000", "100", "500", "2000"], answer: "A" } ] ); // 11. Money addQuestions('. A & M 0 > ', [ { question: "5 rupees 50 paise in rupees:", options: ["5.50", "5.05", "5.55", "5.00"], answer: "A" }, { question: "2.75 rupees in paise:", options: ["275", "270", "280", "260"], answer: "A" }, { question: "8.40 + 3.60 = ?", options: ["12.00", "12.50", "11.00", "13.00"], answer: "A" } ], [ { question: "5 0 A * / G 50 * H 8 G  K 0 A * / G . G  :", options: ["5.50", "5.05", "5.55", "5.00"], answer: "A" }, { question: "2.75 0 A * / G  K * H 8 G . G  :", options: ["275", "270", "280", "260"], answer: "A" }, { question: "8.40 + 3.60 = ?", options: ["12.00", "12.50", "11.00", "13.00"], answer: "A" } ] ); // 12. Calendar addQuestions(' G 2 G * ! 0 ', [ { question: "Days in a leap year:", options: ["366", "365", "364", "367"], answer: "A" }, { question: "If 10 Mar 2024 is Sunday, 17 Mar 2024 is:", options: ["Sunday", "Monday", "Saturday", "Friday"], answer: "A" }, { question: "Number of days in February 2024:", options: ["29", "28", "30", "31"], answer: "A" } ], [ { question: "2 @ * 5 0 M 7 . G  & ? ( K   @ 8   M / > :", options: ["366", "365", "364", "367"], answer: "A" }, { question: "/ & ? 10 . > 0 M  2024 0 5 ? 5 > 0 9 H , $ K 17 . > 0 M  2024 9 H :", options: ["0 5 ? 5 > 0 ", "8 K . 5 > 0 ", "6 ( ? 5 > 0 ", "6 A  M 0 5 > 0 "], answer: "A" }, { question: "+ 0 5 0 @ 2024 . G  & ? ( K   @ 8   M / > :", options: ["29", "28", "30", "31"], answer: "A" } ] ); // 13. Clock and Time Table addQuestions(' ! @  0 8 . / 8 > 0 # @ ', [ { question: "Angle between hour and minute hand at 6:00:", options: ["180°", "90°", "120°", "150°"], answer: "A" }, { question: "10:15 to 13:45 duration:", options: ["3h 30m", "3h", "4h", "2h 30m"], answer: "A" }, { question: "45 minutes = ? seconds", options: ["2700", "1800", "3600", "3000"], answer: "A" } ], [ { question: "6:00 * 0    G  0 . ? (   @ 8 A   G , @   K # :", options: ["180°", "90°", "120°", "150°"], answer: "A" }, { question: "10:15 8 G 13:45 $   5 ' ? :", options: ["3h 30m", "3h", "4h", "2h 30m"], answer: "A" }, { question: "45 . ? (  = ? 8 G   ! ", options: ["2700", "1800", "3600", "3000"], answer: "A" } ] ); // 14. Pattern addQuestions('* G   ( ', [ { question: "Next in series: 2, 4, 6, 8, ?", options: ["10", "12", "14", "16"], answer: "A" }, { question: "Next in series: 5, 10, 15, 20, ?", options: ["25", "30", "35", "40"], answer: "A" }, { question: "Next in series: 3, 9, 27, ?", options: ["81", "54", "72", "90"], answer: "A" } ], [ { question: "6 M 0 C   2 > . G    2 > : 2, 4, 6, 8, ?", options: ["10", "12", "14", "16"], answer: "A" }, { question: "6 M 0 C   2 > . G    2 > : 5, 10, 15, 20, ?", options: ["25", "30", "35", "40"], answer: "A" }, { question: "6 M 0 C   2 > . G    2 > : 3, 9, 27, ?", options: ["81", "54", "72", "90"], answer: "A" } ] ); // 15. Statistics & Data Handling addQuestions('8 >   M / ?  @  0    ! < > * M 0 , ( M ' ( ', [ { question: "Mean of 2,4,6,8,10 is:", options: ["6", "5", "7", "8"], answer: "A" }, { question: "Median of 3,5,7,9,11 is:", options: ["7", "5", "9", "8"], answer: "A" }, { question: "Mode of 2,3,3,4,5,5,5 is:", options: ["5", "3", "4", "2"], answer: "A" } ], [ { question: "2,4,6,8,10  > . > ' M / 9 H :", options: ["6", "5", "7", "8"], answer: "A" }, { question: "3,5,7,9,11  @ . > ' M / ?  > 9 H :", options: ["7", "5", "9", "8"], answer: "A" }, { question: "2,3,3,4,5,5,5  > , 9 A 2  9 H :", options: ["5", "3", "4", "2"], answer: "A" } ] ); // ----- PEDAGOGY TOPICS (8) ----- // 1. Nature of Mathematics/Logical Thinking addQuestions(' # ? $  @ * M 0  C $ ? /$ >  ?  M   8 K  ', [ { question: "Mathematics is a science of:", options: ["Pattern and order", "Nature", "Language", "Art"], answer: "A" }, { question: "Logical thinking involves:", options: ["Reasoning", "Memorization", "Creativity", "Imagination"], answer: "A" }, { question: "Which is not a characteristic of mathematical thinking?", options: ["Rote memorization", "Abstraction", "Logical reasoning", "Problem solving"], answer: "A" } ], [ { question: " # ? $  ? 8  > 5 ?  M  > ( 9 H ?", options: ["* H  0 M (  0 5 M / 5 8 M % > ", "* M 0  C $ ? ", "- > 7 > ", " 2 > "], answer: "A" }, { question: "$ > 0 M  ?  8 K  . G  6 > . ? 2 9 H :", options: ["$ 0 M  ", "0  ( > ", "0  ( > $ M .  $ > ", " 2 M * ( > "], answer: "A" }, { question: " # ? $ @ / 8 K   @ 5 ? 6 G 7 $ > ( 9 @  9 H :", options: ["0  ( > ", " . B 0 M $ $ > ", "$ > 0 M  ?  $ 0 M  ", "8 . 8 M / > 8 . > ' > ( "], answer: "A" } ] ); // 2. Place of Mathematics in Curriculum addQuestions('* > M /  M 0 . . G   # ? $  > 8 M % > ( ', [ { question: "Mathematics in curriculum develops:", options: ["Logical reasoning", "Physical fitness", "Artistic skills", "Social skills"], answer: "A" }, { question: "Which is a goal of teaching mathematics?", options: ["Problem solving", "Entertainment", "Physical development", "Memorization"], answer: "A" }, { question: "Mathematics helps in:", options: ["Daily life", "Only exams", "Only science", "Only commerce"], answer: "A" } ], [ { question: "* > M /  M 0 . . G   # ? $ 5 ?  8 ? $  0 $ > 9 H :", options: ["$ > 0 M  ?  $ 0 M  ", "6 > 0 @ 0 ?  + ?  ( G 8 ", " 2 > $ M .   L 6 2 ", "8 > . >  ?   L 6 2 "], answer: "A" }, { question: " # ? $ 6 ?  M 7 #  > 2  M 7 M / 9 H :", options: ["8 . 8 M / > 8 . > ' > ( ", ". ( K 0   ( ", "6 > 0 @ 0 ?  5 ?  > 8 ", "0  ( > "], answer: "A" }, { question: " # ? $ 8 9 > /  9 H :", options: ["& H ( ?   @ 5 ( . G  ", " G 5 2 * 0 @  M 7 > . G  ", " G 5 2 5 ?  M  > ( . G  ", " G 5 2 5 > # ?  M / . G  "], answer: "A" } ] ); // 3. Language of Mathematics addQuestions(' # ? $  @ - > 7 > ', [ { question: "Language of mathematics is:", options: ["Symbolic and precise", "Vague", "Artistic", "Poetic"], answer: "A" }, { question: "Which is a mathematical symbol?", options: ["+", "&", "@", "#"], answer: "A" }, { question: "Mathematics language helps in:", options: ["Clear communication", "Confusion", "Art", "Music"], answer: "A" } ], [ { question: " # ? $  @ - > 7 > 9 H :", options: ["* M 0 $ @  > $ M .   0 8  @  ", " 8 M * 7 M  ", " 2 > $ M .  ", " > 5 M / > $ M .  "], answer: "A" }, { question: " # ? $ @ / * M 0 $ @  9 H :", options: ["+", "&", "@", "#"], answer: "A" }, { question: " # ? $ @ / - > 7 > 8 9 > /  9 H :", options: ["8 M * 7 M  8   > 0 . G  ", "- M 0 . . G  ", " 2 > . G  ", "8   @ $ . G  "], answer: "A" } ] ); // 4. Community Mathematics addQuestions('8 > . A & > / ?   # ? $ ', [ { question: "Community mathematics relates to:", options: ["Real life situations", "Abstract theory", "Pure numbers", "Geometry"], answer: "A" }, { question: "Which is an example of community mathematics?", options: ["Budgeting", "Algebra", "Calculus", "Trigonometry"], answer: "A" }, { question: "Community mathematics helps in:", options: ["Practical problem solving", "Theoretical research", "Memorization", "Rote learning"], answer: "A" } ], [ { question: "8 > . A & > / ?   # ? $ 8  ,  ' ? $ 9 H :", options: ["5 > 8 M $ 5 ?   @ 5 ( 8 M % ? $ ? / K  8 G ", " . B 0 M $ 8 ? & M ' >  $ 8 G ", "6 A & M ' 8   M / >   8 G ", " M / > . ? $ ? 8 G "], answer: "A" }, { question: "8 > . A & > / ?   # ? $  > & > 9 0 # 9 H :", options: [",   , ( > ( > ", ", @   # ? $ ", " H 2  A 2 8 ", "$ M 0 ?  K # . ? $ ? "], answer: "A" }, { question: "8 > . A & > / ?   # ? $ 8 9 > /  9 H :", options: ["5 M / > 5 9 > 0 ?  8 . 8 M / > 8 . > ' > ( . G  ", "8 H & M ' >  $ ?  6 K ' . G  ", "0  ( G . G  ", "  8 M % @  0 # . G  "], answer: "A" } ] ); // 5. Evaluation addQuestions('. B 2 M / >   ( ', [ { question: "Evaluation in mathematics is:", options: ["Continuous process", "One time event", "Only written test", "Only oral test"], answer: "A" }, { question: "Formative assessment is:", options: ["During instruction", "At end of course", "At beginning", "After exams"], answer: "A" }, { question: "Summative assessment aims to:", options: ["Assign grades", "Improve learning", "Diagnose difficulties", "Plan instruction"], answer: "A" } ], [ { question: " # ? $ . G  . B 2 M / >   ( 9 H :", options: ["8 $ $ * M 0  M 0 ? / > ", "  , > 0  @   ( > ", " G 5 2 2 ?  ? $ * 0 @  M 7 > ", " G 5 2 . L  ?  * 0 @  M 7 > "], answer: "A" }, { question: "0  ( > $ M .  . B 2 M / >   ( 9 H :", options: ["6 ?  M 7 #  G & L 0 > ( ", "* > M /  M 0 .  G   $ . 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" } ] ); // 6. Diagnostic and Remedial Teaching addQuestions('( ? 0 M & > ( > $ M .   5  *  > 0 > $ M .  6 ?  M 7 # ', [ { question: "Diagnostic teaching identifies:", options: ["Learning difficulties", "Talents", "Physical abilities", "Interests"], answer: "A" }, { question: "Remedial teaching aims to:", options: ["Correct errors", "Punish", "Ignore", "Skip topics"], answer: "A" }, { question: "Diagnostic test is:", options: ["Specific", "General", "Comprehensive", "Standardized"], answer: "A" } ], [ { question: "( ? 0 M & G 6 > $ M .  6 ?  M 7 # * 9  > ( $ > 9 H :", options: [" ' ?  .  @  ? ( >  / >  ", "* M 0 $ ? - >   ", "6 > 0 @ 0 ?   M 7 . $ >   ", "0 A  ? / >  "], answer: "A" }, { question: " *  > 0 > $ M .  6 ?  M 7 #  > & M & G 6 M / 9 H :", options: ["$ M 0 A  ? / K   K 8 A ' > 0 ( > ", "&  ! & G ( > ", " ( & G  >  0 ( > ", "5 ? 7 /  K ! < ( > "], answer: "A" }, { question: "( ? 0 M & G 6 > $ M .  * 0 @  M 7 # 9 H :", options: ["5 ? 6 ? 7 M  ", "8 > . > ( M / ", "5 M / > *  ", ". > (  @  C $ "], answer: "A" } ] ); // 7. Problems of Teaching addQuestions('6 ?  M 7 # . G  8 . 8 M / >   ', [ { question: "A major problem in mathematics teaching is:", options: ["Lack of conceptual understanding", "Too many books", "Less time", "More teachers"], answer: "A" }, { question: "Which is a challenge in teaching math?", options: ["Student anxiety", "High interest", "Good resources", "Motivated students"], answer: "A" }, { question: "Classroom management issue in math is:", options: ["Diverse learning levels", "Same level", "Perfect behavior", "Full attendance"], answer: "A" } ], [ { question: " # ? $ 6 ?  M 7 # . G  * M 0 . A  8 . 8 M / > 9 H :", options: [" 5 ' > 0 # > $ M .  8 .   @  . @ ", ", 9 A $  ' ?  * A 8 M $  G  ", " . 8 . / ", " ' ?  6 ?  M 7  "], answer: "A" }, { question: " # ? $ 6 ?  M 7 # . G   A ( L $ @ 9 H :", options: [" > $ M 0 K   @  ?  $ > ", "  M  0 A  ? ", "  M  G 8  8 > ' ( ", "* M 0 G 0 ? $  > $ M 0 "], answer: "A" }, { question: " # ? $ . G    M 7 > * M 0 ,  ' (  @ 8 . 8 M / > 9 H :", options: ["5 ? 5 ? '  ' ?  . 8 M $ 0 ", "8 . > ( 8 M $ 0 ", "* 0 ? * B 0 M # 5 M / 5 9 > 0 ", "* B 0 M # * 8 M % ? $ ? "], answer: "A" } ] ); // 8. Error Analysis and Related Aspects addQuestions('& M 5 ? $ @ / 5 ? 6 M 2 G 7 #  0 8 @  ( G  0 8 ?  > ( G  G 8 . M , ( M ' ? $ * 9 2 B ', [ { question: "Error analysis helps in:", options: ["Identifying misconceptions", "Punishing students", "Ignoring mistakes", "Testing memory"], answer: "A" }, { question: "Which is a common error in math?", options: ["Misplacing decimal", "Correct placement", "Right method", "Perfect answer"], answer: "A" }, { question: "Error analysis is useful for:", options: ["Remedial planning", "Ignoring", "Rote learning", "Standardized tests"], answer: "A" } ], [ { question: "$ M 0 A  ? 5 ? 6 M 2 G 7 # 8 9 > /  9 H :", options: [" 2 $ ' > 0 # >    @ * 9  > ( . G  ", " > $ M 0 K   K &  ! & G ( G . G  ", " 2 $ ? / K   K  ( & G  >  0 ( G . G  ", "8 M . 0 # 6  M $ ? * 0 @  M 7 # . G  "], answer: "A" }, { question: " # ? $ . G  8 > . > ( M / $ M 0 A  ? 9 H :", options: ["& 6 . 2 5  2 $ 0  ( > ", "8 9 @ 0  ( > ", "8 9 @ 5 ? ' ? ", "* 0 ? * B 0 M # $ M $ 0 "], answer: "A" }, { question: "$ M 0 A  ? 5 ? 6 M 2 G 7 # * / K  @ 9 H :", options: [" *  > 0 > $ M .  / K  ( >  G 2 ?  ", " ( & G  @  G 2 ?  ", "0  ( G  G 2 ?  ", ". > (  @  C $ * 0 @  M 7 #  G 2 ?  "], answer: "A" } ] ); // Topic keys for display (23 topics) const topicKeys = [ "8   M / > * & M ' $ ? ", " # ? $ @ / . B 2 8   M 0 ? / >   ", "2  A $ M $ . 8 . > * 5 0 M $ M /  0 . 9 $ M $ . 8 . > * 5 0 M $  ", ". ? ( M (  5  & 6 . 2 5 8   M / >   ", "5 0 M  -5 0 M  . B 2  5   ( - ( . B 2 ", " 8 $ ", "8 . /  0 & B 0 @ ", " M / > . ? $ ? ", " M 7 G $ M 0 . ? $ ? ", "6 ?  M 7 > / K   5  . > * ( ", ". A & M 0 > ", " G 2 G * ! 0 ", " ! @  0 8 . / 8 > 0 # @ ", "* G   ( ", "8 >   M / ?  @  0    ! < > * M 0 , ( M ' ( ", " # ? $  @ * M 0  C $ ? /$ >  ?  M   8 K  ", "* > M /  M 0 . . G   # ? $  > 8 M % > ( ", " # ? $  @ - > 7 > ", "8 > . A & > / ?   # ? $ ", ". B 2 M / >   ( ", "( ? 0 M & > ( > $ M .   5  *  > 0 > $ M .  6 ?  M 7 # ", "6 ?  M 7 # . G  8 . 8 M / >   ", "& M 5 ? $ @ / 5 ? 6 M 2 G 7 #  0 8 @  ( G  0 8 ?  > ( G  G 8 . M , ( M ' ? $ * 9 2 B " ]; // Bilingual topic names for display const topicNames = { hi: [ "8   M / > * & M ' $ ? ", " # ? $ @ / . B 2 8   M 0 ? / >   ", "2  A $ M $ . 8 . > * 5 0 M $ M /  0 . 9 $ M $ . 8 . > * 5 0 M $  ", ". ? ( M (  5  & 6 . 2 5 8   M / >   ", "5 0 M  -5 0 M  . B 2  5   ( - ( . B 2 ", " 8 $ ", "8 . /  0 & B 0 @ ", " M / > . ? $ ? ", " M 7 G $ M 0 . ? $ ? ", "6 ?  M 7 > / K   5  . > * ( ", ". A & M 0 > ", " G 2 G * ! 0 ", " ! @  0 8 . / 8 > 0 # @ ", "* G   ( ", "8 >   M / ?  @  0    ! < > * M 0 , ( M ' ( ", " # ? $  @ * M 0  C $ ? /$ >  ?  M   8 K  ", "* > M /  M 0 . . G   # ? $  > 8 M % > ( ", " # ? $  @ - > 7 > ", "8 > . A & > / ?   # ? $ ", ". B 2 M / >   ( ", "( ? 0 M & > ( > $ M .   5  *  > 0 > $ M .  6 ?  M 7 # ", "6 ?  M 7 # . G  8 . 8 M / >   ", "& M 5 ? $ @ / 5 ? 6 M 2 G 7 #  0 8 @  ( G  0 8 ?  > ( G  G 8 . M , ( M ' ? $ * 9 2 B " ], en: [ "Number System", "Mathematical Operations", "L.C.M. and H.C.F.", "Fractions and Decimal Numbers", "Square-Square Root and Cube-Cube Root", "Average", "Time and Distance", "Geometry", "Mensuration", "Units and Measurement", "Money", "Calendar", "Clock and Time Table", "Pattern", "Statistics & Data Handling", "Nature of Mathematics/Logical Thinking", "Place of Mathematics in Curriculum", "Language of Mathematics", "Community Mathematics", "Evaluation", "Diagnostic and Remedial Teaching", "Problems of Teaching", "Error Analysis and Related Aspects of Learning and Teaching" ] }; 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 1", mainSubtitle: " # ? $  5  6 ?  M 7 > 6 > 8 M $ M 0 (Mathematics and Pedagogy)  8 >  ( . G    ( 0 G  0 ", startTitle: " # ? $  5  6 ?  M 7 > 6 > 8 M $ M 0  8 >  ( . G    ( 0 G  0 ", startBtn: " 8 >  ( . G   , ( >   ", subjectTitle: "5 ? 7 /  >  / (  0 G  ", selectSubject: " # ? $  5  6 ?  M 7 > 6 > 8 M $ M 0 (Mathematics & 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 - @ 23 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 - @ 23 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: " # ? $  5  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 1", mainSubtitle: "Mathematics and Pedagogy Assignment Generator", startTitle: "Mathematics and Pedagogy Assignment Generator", startBtn: "Create Assignment", subjectTitle: "Select Subject", selectSubject: "Mathematics & 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 23 Topics)", noChapterAlert: "Please select at least one chapter/topic!", noLevelAlert: "Please select a difficulty level!", fullPaperLabel: "Full Syllabus (All 23 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: "Mathematics & 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('selectMathBtn').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 - @ 23 5 ? 7 / )" : "Full Syllabus (All 23 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 1 - ${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('selectMathBtn').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_Maths_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>