ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <title>CTET * G * 0 -2 | 5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 | & H ( ?   - M / > 8  ( 0 G  0 </title> <link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='45' fill='%232b6b2b'/%3E%3Ctext x='50' y='68' font-size='48' text-anchor='middle' fill='white' font-weight='bold'%3E5 %3C/text%3E%3C/svg%3E" rel="icon"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> :root { --primary: #2b6b2b; --primary-dark: #1e4a1e; --secondary: #4caf50; --danger: #e53e3e; --success: #2e7d32; --light: #e8f5e9; --dark: #1a3a1a; --gray: #2e5a2e; --border-radius: 12px; --box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', 'Poppins', system-ui, sans-serif; } body { background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; color: var(--dark); line-height: 1.5; } .container { width: 100%; max-width: 1100px; background: white; border-radius: var(--border-radius); box-shadow: var(--box-shadow); overflow: hidden; transition: var(--transition); animation: fadeIn 0.4s 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: 28px 20px; text-align: center; position: relative; } .header::before { content: '=Ø,Ý'; position: absolute; bottom: 10px; right: 20px; font-size: 70px; opacity: 0.1; } .header h1 { font-size: 1.9rem; margin-bottom: 8px; font-weight: 700; letter-spacing: -0.5px; } .header p { font-size: 1rem; opacity: 0.9; } .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; background: rgba(0,0,0,0.2); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; } .header-controls .home-icon:hover { transform: scale(1.08); background: rgba(0,0,0,0.4); } .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: 28px; } .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 8px rgba(0,0,0,0.05); margin: 8px 5px; font-size: 0.95rem; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 10px 20px -5px var(--primary); } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #1b5e20; transform: translateY(-2px); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #c53030; transform: translateY(-2px); } .btn-level { background: white; color: var(--dark); border: 2px solid #cbd5e0; font-size: 1.1rem; padding: 14px 28px; width: 190px; font-weight: 600; transition: all 0.2s; } .btn-level:hover { transform: translateY(-4px); background: #f7fafc; border-color: var(--primary); } .btn-level.selected { background: var(--primary); color: white; border-color: var(--primary); box-shadow: 0 8px 16px -4px rgba(43,107,43,0.4); } .btn-group { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 20px 0; } .level-buttons { display: flex; justify-content: center; gap: 25px; margin: 30px 0; flex-wrap: wrap; } .section-title { text-align: center; margin-bottom: 25px; color: var(--primary-dark); font-size: 1.7rem; position: relative; padding-bottom: 12px; font-weight: 600; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 4px; background: var(--secondary); border-radius: 4px; } .checkbox-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 14px; margin: 25px 0; max-height: 520px; overflow-y: auto; padding: 15px; border: 1px solid #e2e8f0; border-radius: 18px; background: #f0f8f0; } .checkbox-item { display: flex; align-items: center; background: white; padding: 8px 12px; border-radius: 40px; transition: all 0.2s; border: 1px solid #e9ecef; } .checkbox-item:hover { background: #e8f5e9; transform: translateX(3px); } .checkbox-item input { margin-right: 12px; width: 18px; height: 18px; cursor: pointer; accent-color: var(--primary); } .checkbox-item label { cursor: pointer; font-size: 0.9rem; font-weight: 500; } .question { margin-bottom: 25px; page-break-inside: avoid; background: #ffffff; padding: 15px; border-radius: 16px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); border-left: 4px solid var(--secondary); } .question-text { font-weight: 700; margin-bottom: 12px; font-size: 1.05rem; color: #2d3748; } .option { margin-left: 24px; margin-bottom: 6px; color: #4a5568; } .action-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; margin-top: 40px; } .answer-sheet { margin-top: 40px; padding: 20px; background: #e8f5e9; border-radius: var(--border-radius); } .answer-table { width: 100%; border-collapse: collapse; margin-top: 15px; border-radius: 12px; overflow: hidden; } .answer-table th, .answer-table td { border: 1px solid #cbd5e0; padding: 10px; text-align: center; } .answer-table th { background-color: var(--primary); color: white; font-weight: 600; } .streak-container { display: flex; justify-content: center; align-items: center; margin: 20px 0; gap: 20px; flex-wrap: wrap; } .streak-counter { background: #ff9100; color: white; padding: 10px 20px; border-radius: 60px; font-weight: bold; box-shadow: 0 4px 10px rgba(0,0,0,0.1); } .date-display { font-size: 1rem; font-weight: 600; background: #e2e8f0; padding: 8px 18px; border-radius: 40px; color: var(--primary-dark); } .progress-container { margin: 20px 0; background: #edf2ed; padding: 20px; border-radius: 28px; } .progress-bar { height: 12px; background: #cbd5e0; border-radius: 20px; overflow: hidden; margin-top: 12px; } .progress-fill { height: 100%; background: var(--success); border-radius: 20px; transition: width 0.5s ease; } .problem-of-day { background: linear-gradient(115deg, #fff6e5, #ffedd5); border-left: 5px solid var(--danger); padding: 20px; margin: 20px 0; border-radius: 24px; } .daily-summary { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin: 20px 0; } .summary-card { flex: 1; min-width: 110px; background: white; padding: 15px; border-radius: 20px; box-shadow: 0 8px 20px rgba(0,0,0,0.05); text-align: center; border: 1px solid #e2e8f0; } .home-icon { position: absolute; top: 20px; left: 20px; color: white; font-size: 26px; cursor: pointer; transition: transform 0.2s; z-index: 5; background: rgba(0,0,0,0.2); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; } .home-icon:hover { transform: scale(1.08); background: rgba(0,0,0,0.4); } .instructions { margin-bottom: 30px; padding: 18px 22px; background: #f0f8f0; border-radius: 24px; border: 1px solid #e2e8f0; } @media (max-width: 680px) { .header h1 { font-size: 1.3rem; } .btn-level { width: 140px; font-size: 0.9rem; padding: 12px 16px; } .checkbox-container { grid-template-columns: 1fr; } .header-controls { top: 12px; right: 12px; gap: 8px; } .lang-toggle { font-size: 0.7rem; padding: 4px 12px; } } @media print { .action-buttons, .streak-container, .progress-container, .problem-of-day, .daily-summary, .header-controls { display: none; } .question { break-inside: avoid; } } .text-center { text-align: center; } </style> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4930137336556867" crossorigin="anonymous"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KMZ9RJ62EY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KMZ9RJ62EY'); </script> </head> <body> <div class="container" id="startContainer"> <div class="header"> <div class="header-controls"> <a href="ctet-exam-paper2-daily-practice-problem-generator.html" class="home-icon" ><i class="fas fa-chalkboard-user"></i></a> <button class="lang-toggle" id="langToggleBtn"><i class="fas fa-globe"></i> <span id="langLabel">9 ?  & @ </span></button> </div> <h1 id="mainTitle"><i class="fas fa-flask"></i> CTET * G * 0 -2</h1> <p id="mainSubtitle">5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 | & H ( ?   - M / > 8 8 . 8 M / >  ( 0 G  0 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title" id="startTitle">=Ø,Ý 5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 </h2> <div class="streak-container"> <div class="streak-counter"><i class="fas fa-fire"></i> <span id="streakLabel">2  > $ > 0 </span>: <span id="streakDays">0</span> <span id="dayLabel">& ? ( </span></div> <div class="date-display" id="currentDate"></div> </div> <div class="progress-container"> <h3><i class="fas fa-chart-line"></i> <span id="progressTitle"> *  @ * M 0  $ ? </span></h3> <div class="progress-bar"><div class="progress-fill" id="progressFill" style="width: 0%"></div></div> <p id="progressText" style="margin-top: 8px;">0% * B 0 M # </p> </div> <div class="btn-group"> <button class="btn btn-primary" id="problemOfDayBtn"><i class="fas fa-calendar-day"></i> <span id="podBtnText">& ? (  @ 8 . 8 M / > </span></button> <button class="btn btn-success" id="customPracticeBtn"><i class="fas fa-pen-ruler"></i> <span id="customBtnText"> 8 M  .  - M / > 8 </span></button> </div> </div> <div id="subjectSelection" class="hidden"> <h2 class="section-title" id="subjectTitle"><Ø¯ß 5 ? 7 /  / ( </h2> <div class="btn-group"><button class="btn btn-primary" id="selectScienceBtn"><i class="fas fa-brain"></i> <span id="selectSubjectText">5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 </span></button></div> </div> <div id="topicSelection" class="hidden"> <h2 class="section-title" id="topicTitle">=ØÚÜ <span id="chapterSelectText"> ' M / > / K   >  / (  0 G  </span> (21  ' M / > / )</h2> <form id="topicForm"> <div class="checkbox-container" id="topicsContainer"></div> </form> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn"><i class="fas fa-arrow-left"></i> <span id="backStartText">* M 0 > 0  - * 0 5 > * 8 </span></button> <button class="btn btn-success" id="generateAssignmentBtn"><i class="fas fa-cogs"></i> <span id="genAssignText"> - M / > 8 * M 0 6 M (  G ( 0 G   0 G  </span></button> </div> </div> <div id="levelSelection" class="hidden"> <h2 class="section-title" id="levelTitle">¡& <span id="levelSelectText"> ? ( >  8 M $ 0  A ( G  </span></h2> <p class="text-center" id="levelDescText" style="text-align:center; margin-bottom:10px;"> * ( G CTET 8 M $ 0  G  ( A 8 > 0  A ( G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn"><span id="l1Title">8 M $ 0 1</span> <br><small id="l1Sub">, G 8 ?  / CTET  ' > 0 </small></button> <button class="btn btn-level" id="level2Btn"><span id="l2Title">8 M $ 0 2</span> <br><small id="l2Sub">. ' M / . (CTET . > (  )</small></button> <button class="btn btn-level" id="level3Btn"><span id="l3Title">8 M $ 0 3</span> <br><small id="l3Sub"> ( M ( $ (5 ? 6 M 2 G 7 # > $ M .  )</small></button> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToTopicsBtn"><i class="fas fa-arrow-left"></i> <span id="backTopicsText">5 ? 7 / K  * 0 5 > * 8 </span></button> <button class="btn btn-success" id="generateFinalBtn"><i class="fas fa-cogs"></i> <span id="genFinalText"> - M / > 8 * M 0 6 M (  G ( 0 G   0 G  </span></button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const subjectSelection = document.getElementById('subjectSelection'); const topicSelection = document.getElementById('topicSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); // ===================================================== // BILINGUAL QUESTIONS DATABASE (21 TOPICS: 11 Science + 10 Pedagogy) // ===================================================== const questionBank = {}; 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); }); } // ----- SCIENCE (11) ----- addQuestions('- K  ( ', [ { question: "Which vitamin is known as the 'sunshine vitamin'?", options: ["Vitamin D", "Vitamin C", "Vitamin A", "Vitamin B12"], answer: "A" }, { question: "Which nutrient gives the most energy?", options: ["Carbohydrates", "Proteins", "Fats", "Vitamins"], answer: "A" }, { question: "Protein is essential for:", options: ["Body growth and repair", "Energy", "Immunity", "Bone health"], answer: "A" } ], [ { question: " ? 8 5 ?  > . ? (  K '8 ( 6 >  ( 5 ?  > . ? ( '  9 >  > $ > 9 H ?", options: ["5 ?  > . ? ( D", "5 ?  > . ? ( C", "5 ?  > . ? ( A", "5 ?  > . ? ( B12"], answer: "A" }, { question: " ? 8 * K 7  $ $ M 5 8 G 8 , 8 G  ' ?  0 M  > . ? 2 $ @ 9 H ?", options: [" > 0 M , K 9 >  ! M 0 G  ", "* M 0 K  @ ( ", "5 8 > ", "5 ?  > . ? ( "], answer: "A" }, { question: "* M 0 K  @ (  ? 8  G 2 ?   5 6 M /  9 H ?", options: ["6 0 @ 0  @ 5 C & M ' ?  0 . 0 . M . $ ", " 0 M  > ", "0 K  * M 0 $ ? 0 K '   M 7 . $ > ", "9 ! M ! ? / K   > 8 M 5 > 8 M % M / "], answer: "A" } ] ); addQuestions('& M 0 5 M /  @  5 8 M % >   ', [ { question: "Which is not a state of matter?", options: ["Plasma", "Liquid", "Gas", "Solid"], answer: "A" }, { question: "The process of solid changing directly to gas is called:", options: ["Sublimation", "Evaporation", "Condensation", "Melting"], answer: "A" }, { question: "Which state has a definite shape?", options: ["Solid", "Liquid", "Gas", "Plasma"], answer: "A" } ], [ { question: " L ( * & > 0 M %  @  5 8 M % > ( 9 @  9 H ?", options: ["* M 2 >  M . > ", "& M 0 5 ", " H 8 ", " K 8 "], answer: "A" }, { question: " K 8  > 8 @ ' G  H 8 . G  , & 2 ( >  9 2 > $ > 9 H :", options: [" 0 M ' M 5 * > $ ( ", "5 > 7 M * @  0 # ", "8   ( ( ", " 2 ( "], answer: "A" }, { question: " ? 8  5 8 M % >  > ( ? 6 M  ? $   > 0 9 K $ > 9 H ?", options: [" K 8 ", "& M 0 5 ", " H 8 ", "* M 2 >  M . > "], answer: "A" } ] ); addQuestions('& H ( ?  * / K  @ * & > 0 M % ', [ { question: "Which substance is commonly used as a disinfectant?", options: ["Phenol", "Salt", "Sugar", "Vinegar"], answer: "A" }, { question: "Baking soda is chemically known as:", options: ["Sodium bicarbonate", "Sodium carbonate", "Calcium carbonate", "Sodium chloride"], answer: "A" }, { question: "Which gas is used in fire extinguishers?", options: ["Carbon dioxide", "Oxygen", "Nitrogen", "Hydrogen"], answer: "A" } ], [ { question: " ? 8 * & > 0 M %  > * / K  8 > . > ( M / $   @  > # A ( > 6   G 0 B * . G   ? / >  > $ > 9 H ?", options: ["+ ? ( K 2 ", "( .  ", " @ ( @ ", "8 ? 0  > "], answer: "A" }, { question: ", G  ?   8 K ! >  > 0 > 8 > / ( ?  ( > .  M / > 9 H ?", options: ["8 K ! ? / . , >   > 0 M , K ( G  ", "8 K ! ? / .  > 0 M , K ( G  ", " H 2 M 6 ? / .  > 0 M , K ( G  ", "8 K ! ? / .  M 2 K 0 >  ! "], answer: "A" }, { question: "  M ( ? 6 > .  /  $ M 0 K  . G   ? 8  H 8  > * / K   ? / >  > $ > 9 H ?", options: [" > 0 M , ( ! >    M 8 >  ! ", "  M 8 @  ( ", "( >   M 0 K  ( ", "9 >  ! M 0 K  ( "], answer: "A" } ] ); addQuestions('8  @ 5   $ ', [ { question: "Which organism is a prokaryote?", options: ["Bacteria", "Fungi", "Plants", "Animals"], answer: "A" }, { question: "The process by which plants make food is called:", options: ["Photosynthesis", "Respiration", "Transpiration", "Digestion"], answer: "A" }, { question: "Which is a multicellular organism?", options: ["Human", "Amoeba", "Paramecium", "Yeast"], answer: "A" } ], [ { question: " L ( 8 >  @ 5 * M 0 K  H 0 ? / K  9 H ?", options: [", H  M  @ 0 ? / > ", " 5  ", "* L ' G ", " > ( 5 0 "], answer: "A" }, { question: "* L ' G - K  ( , ( > ( G  @ * M 0  M 0 ? / >  9 2 > $ @ 9 H :", options: ["* M 0  > 6 8  6 M 2 G 7 # ", "6 M 5 8 ( ", "5 > 7 M * K $ M 8 0 M  ( ", "* >  ( "], answer: "A" }, { question: " L ( , 9 A  K 6 ?  @ /  @ 5 9 H ?", options: [". ( A 7 M / ", " . @ , > ", "* H 0 > . @ 6 ? / . ", "/ @ 8 M  "], answer: "A" } ] ); addQuestions('. > ( 5  > 0 M /  @ ', [ { question: "The largest organ in the human body is:", options: ["Skin", "Liver", "Brain", "Heart"], answer: "A" }, { question: "The function of the kidney is to:", options: ["Filter blood", "Digest food", "Pump blood", "Store urine"], answer: "A" }, { question: "The brain is protected by:", options: ["Skull", "Rib cage", "Spine", "Muscles"], answer: "A" } ], [ { question: ". > ( 5 6 0 @ 0  > 8 , 8 G , ! < >    9 H :", options: ["$ M 5  > ", "/  C $ ", ". 8 M $ ? 7 M  ", "9 C & / "], answer: "A" }, { question: " A 0 M & G  >  > 0 M / 9 H :", options: ["0  M $  K + ? 2 M  0  0 ( > ", "- K  ( *  > ( > ", "0  M $ *  *  0 ( > ", ". B $ M 0 -  ! > 0 # "], answer: "A" }, { question: ". 8 M $ ? 7 M   ? 8  G & M 5 > 0 > 8 A 0  M 7 ? $ 9 H ?", options: [" K * ! < @ ", "* ?   0 > ", "0 @ " < ", ". >  8 * G 6 ? / >  "], answer: "A" } ] ); addQuestions('8 B  M 7 M .  @ 5 ', [ { question: "Which is a beneficial microorganism?", options: ["Lactobacillus", "Salmonella", "E.coli", "Staphylococcus"], answer: "A" }, { question: "The study of microorganisms is called:", options: ["Microbiology", "Biology", "Zoology", "Botany"], answer: "A" }, { question: "Which microorganism causes malaria?", options: ["Plasmodium", "Bacteria", "Virus", "Fungi"], answer: "A" } ], [ { question: " L ( 2 > -  > 0 @ 8 B  M 7 M .  @ 5 9 H ?", options: ["2 H  M  K , H 8 ? 2 8 ", "8 > 2 M . K ( G 2 > ", " .  K 2 @ ", "8 M  H + ? 2 K  K  8 "], answer: "A" }, { question: "8 B  M 7 M .  @ 5 K   G  ' M / / (  K  M / >  9 $ G 9 H  ?", options: [". >   M 0 K , > / K 2 I  @ ", ", > / K 2 I  @ ", " B 2 I  @ ", ", I  ( @ "], answer: "A" }, { question: " L ( 8 > 8 B  M 7 M .  @ 5 . 2 G 0 ? / >  >  > 0 # , ( $ > 9 H ?", options: ["* M 2 > 8 M . K ! ? / . ", ", H  M  @ 0 ? / > ", "5 > / 0 8 ", " 5  "], answer: "A" } ] ); addQuestions(' $ ? . > ( 5 8 M $ A    5  (  G  ( A * M 0 / K  ', [ { question: "The force that opposes motion is called:", options: ["Friction", "Gravity", "Magnetism", "Pressure"], answer: "A" }, { question: "Newton's first law is also known as:", options: ["Law of inertia", "Law of acceleration", "Law of action-reaction", "Law of gravitation"], answer: "A" }, { question: "Speed is measured in:", options: ["m/s", "m", "s", "km"], answer: "A" } ], [ { question: " $ ?  > 5 ? 0 K '  0 ( G 5 > 2 > , 2  9 2 > $ > 9 H :", options: [" 0 M 7 # ", " A 0 A $ M 5 >  0 M 7 # ", " A  ,  $ M 5 ", "& > , "], answer: "A" }, { question: "( M / B  (  > * 9 2 > ( ? / .  ? 8 ( > . 8 G  > ( >  > $ > 9 H ?", options: [" ! < $ M 5  > ( ? / . ", "$ M 5 0 #  > ( ? / . ", " M 0 ? / > -* M 0 $ ?  M 0 ? / >  > ( ? / . ", " A 0 A $ M 5 >  0 M 7 #  > ( ? / . "], answer: "A" }, { question: " > 2  ? 8 . G  . > * @  > $ @ 9 H ?", options: ["m/s", "m", "s", "km"], answer: "A" } ] ); addQuestions(' @  G   H 8 G  > .  0 $ @ 9 H  ?', [ { question: "Which simple machine is a screw?", options: ["Inclined plane", "Lever", "Pulley", "Wedge"], answer: "A" }, { question: "A lever has a fulcrum. What is a fulcrum?", options: ["Pivot point", "Effort point", "Load point", "Middle point"], answer: "A" }, { question: "The principle of a wheel and axle is used in:", options: ["Doorknob", "Scissors", "Pulley", "Screwdriver"], answer: "A" } ], [ { question: " L ( 8 @ 8 0 2 . 6 @ (   * G   9 H ?", options: [" A  > 5 5 ? . > ( ", "2 @ 5 0 ", "* A 2 @ ", "5 G  "], answer: "A" }, { question: "  2 @ 5 0 . G  + A 2  M 0 . 9 K $ > 9 H d + A 2  M 0 .  M / > 9 H ?", options: ["* ? 5  , ?  & A ", "* M 0 / > 8 , ?  & A ", "- > 0 , ?  & A ", ". ' M / , ?  & A "], answer: "A" }, { question: "* 9 ? / >  0 ' A 0 @  > 8 ? & M ' >  $  ? 8 . G  * / K  9 K $ > 9 H ?", options: ["! K 0 ( I , ", " H   @ ", "* A 2 @ ", "* G    8 "], answer: "A" } ] ); addQuestions('* M 0 >  C $ ?    ( >   ', [ { question: "What causes a rainbow?", options: ["Refraction of light", "Reflection of light", "Diffraction of light", "Scattering of light"], answer: "A" }, { question: "The earth's rotation causes:", options: ["Day and night", "Seasons", "Tides", "Earthquakes"], answer: "A" }, { question: "An earthquake is caused by:", options: ["Movement of tectonic plates", "Wind", "Water", "Fire"], answer: "A" } ], [ { question: "  & M 0 ' ( A 7  ? 8  G  > 0 # , ( $ > 9 H ?", options: ["* M 0  > 6  >  * 5 0 M $ ( ", "* M 0  > 6  > * 0 > 5 0 M $ ( ", "* M 0  > 6  > 5 ? 5 0 M $ ( ", "* M 0  > 6  > * M 0  @ 0 M # ( "], answer: "A" }, { question: "* C % M 5 @  >  B 0 M # (  ? 8  >  > 0 # 9 H ?", options: ["& ? (  0 0 > $ ", " $ A   ", " M 5 > 0 ", "- B   * "], answer: "A" }, { question: "- B   *  ? 8  G  > 0 #  $ > 9 H ?", options: [" G  M  K ( ?  * M 2 G  K   @  $ ? ", "9 5 > ", "* > ( @ ", "  "], answer: "A" } ] ); addQuestions('$ > 0 G $ % > 8 L 0 . # M ! 2 ', [ { question: "The closest star to Earth is:", options: ["The Sun", "Proxima Centauri", "Alpha Centauri", "Sirius"], answer: "A" }, { question: "Which planet has the most moons?", options: ["Saturn", "Jupiter", "Uranus", "Neptune"], answer: "A" }, { question: "The largest planet in the solar system is:", options: ["Jupiter", "Saturn", "Neptune", "Uranus"], answer: "A" } ], [ { question: "* C % M 5 @  G 8 , 8 G ( ?    > $ > 0 > 9 H :", options: ["8 B 0 M / ", "* M 0 I  M 8 ? . > 8 G   I 0 @ ", " 2 M + > 8 G   I 0 @ ", "8 @ 0 ? / 8 "], answer: "A" }, { question: " ? 8  M 0 9  G 8 , 8 G  ' ?    & M 0 . > 9 H  ?", options: ["6 ( ? ", ", C 9 8 M * $ ? ", " 0 A # ", "5 0 A # "], answer: "A" }, { question: "8 L 0 .  ! 2  > 8 , 8 G , ! < >  M 0 9 9 H :", options: [", C 9 8 M * $ ? ", "6 ( ? ", "5 0 A # ", " 0 A # "], answer: "A" } ] ); addQuestions('* M 0 >  C $ ?  8  8 > ' ( ', [ { question: "Which is a renewable resource?", options: ["Solar energy", "Coal", "Petroleum", "Natural gas"], answer: "A" }, { question: "Which is a non-renewable resource?", options: ["Coal", "Water", "Wind", "Sunlight"], answer: "A" }, { question: "Conservation of resources means:", options: ["Using wisely", "Stopping usage", "Throwing away", "Burning"], answer: "A" } ], [ { question: " L ( ( 5 @  0 # @ / 8  8 > ' ( 9 H ?", options: ["8 L 0 0 M  > ", " K / 2 > ", "* G  M 0 K 2 ? / . ", "* M 0 >  C $ ?   H 8 "], answer: "A" }, { question: " L (  ( 5 @  0 # @ / 8  8 > ' ( 9 H ?", options: [" K / 2 > ", " 2 ", "* 5 ( ", "8 B 0 M / * M 0  > 6 "], answer: "A" }, { question: "8  8 > ' ( K   > 8  0  M 7 #  >  0 M % 9 H :", options: [", A & M ' ? . > ( @ 8 G * / K  ", " * / K  0 K  ( > ", "+ G   ( > ", " 2 > ( > "], answer: "A" } ] ); // ----- PEDAGOGY (10) ----- addQuestions('5 ?  M  > (  @ * M 0  C $ ?  5  8  0  ( > ', [ { question: "Science is a body of knowledge based on:", options: ["Observation and evidence", "Opinion", "Belief", "Tradition"], answer: "A" }, { question: "The scientific method involves:", options: ["Hypothesis, experiment, conclusion", "Reading books", "Memorizing", "Copying"], answer: "A" }, { question: "Science is:", options: ["A way of exploring", "A fixed truth", "A set of rules", "An opinion"], answer: "A" } ], [ { question: "5 ?  M  > (  ? 8 * 0  ' > 0 ? $  M  > (  > -  ! > 0 9 H ?", options: [" 5 2 K  (  0 8 >  M 7 M / ", "0 > / ", "5 ? 6 M 5 > 8 ", "* 0  * 0 > "], answer: "A" }, { question: "5 H  M  > ( ?  5 ? ' ? . G  6 > . ? 2 9 H :", options: ["* 0 ?  2 M * ( > , * M 0 / K  , ( ? 7 M  0 M 7 ", "* A 8 M $  G  * " < ( > ", "0  ( > ", "(  2  0 ( > "], answer: "A" }, { question: "5 ?  M  > ( 9 H :", options: [" K   >   $ 0 @  > ", "  ( ? 6 M  ? $ 8 $ M / ", "( ? / . K   > 8 . B 9 ", "  0 > / "], answer: "A" } ] ); addQuestions('* M 0 >  C $ ?  5 ?  M  > ( 2  M 7 M /  5  & M & G 6 M / ', [ { question: "The goal of science education is to:", options: ["Develop scientific literacy", "Pass exams", "Memorize facts", "Learn formulas"], answer: "A" }, { question: "Science education aims to develop:", options: ["Critical thinking", "Rote learning", "Competition", "Fear"], answer: "A" }, { question: "An objective of science teaching is:", options: ["Understanding concepts", "Completing syllabus", "Scoring marks", "Time pass"], answer: "A" } ], [ { question: "5 ?  M  > ( 6 ?  M 7 >  > 2  M 7 M / 9 H :", options: ["5 H  M  > ( ?  8 >  M 7 0 $ > 5 ?  8 ? $  0 ( > ", "* 0 @  M 7 > * > 8  0 ( > ", "$ % M / K   K 0  ( > ", "8 B $ M 0 K   K / > &  0 ( > "], answer: "A" }, { question: "5 ?  M  > ( 6 ?  M 7 >  > & M & G 6 M / 5 ?  8 ? $  0 ( > 9 H :", options: [" 2 K  ( > $ M .  8 K  ", "0  ( > ", "* M 0 $ ? 8 M * 0 M ' > ", "! 0 "], answer: "A" }, { question: "5 ?  M  > ( 6 ?  M 7 #  >   & M & G 6 M / 9 H :", options: [" 5 ' > 0 # >    K 8 .  ( > ", "* > M /  M 0 . * B 0 >  0 ( > ", "   * M 0 > * M $  0 ( > ", "8 . / , ? $ > ( > "], answer: "A" } ] ); addQuestions('5 ?  M  > (  > . 9 $ M $ M 5  5   8  @ 8 .  ', [ { question: "Science helps us to:", options: ["Understand the world", "Only get jobs", "Only pass exams", "Only earn money"], answer: "A" }, { question: "Understanding science is important for:", options: ["Everyday decisions", "Only scientists", "Only students", "Only teachers"], answer: "A" }, { question: "Scientific understanding promotes:", options: ["Logical thinking", "Fear", "Confusion", "Irrationality"], answer: "A" } ], [ { question: "5 ?  M  > ( 9 . G  8 9 > / $ >  0 $ > 9 H :", options: ["& A ( ? / >  K 8 .  ( G . G  ", " G 5 2 ( L  0 @ * > ( G . G  ", " G 5 2 * 0 @  M 7 > * > 8  0 ( G . G  ", " G 5 2 * H 8 G  . > ( G . G  "], answer: "A" }, { question: "5 ?  M  > (  K 8 .  ( >  ? 8  G 2 ?  . 9 $ M 5 * B 0 M # 9 H :", options: ["& H ( ?  ( ? 0 M # / ", " G 5 2 5 H  M  > ( ?  ", " G 5 2  > $ M 0 ", " G 5 2 6 ?  M 7  "], answer: "A" }, { question: "5 H  M  > ( ?  8 .   K , " < > 5 > & G $ @ 9 H :", options: ["$ > 0 M  ?  8 K  ", "! 0 ", "- M 0 . ", " $ > 0 M  ?  $ > "], answer: "A" } ] ); addQuestions(' * >  . /  @  C $ * >  . ', [ { question: "An integrated approach in science means:", options: ["Connecting different disciplines", "Teaching one subject only", "Avoiding experiments", "Ignoring real life"], answer: "A" }, { question: "Integrated approach helps in:", options: ["Better understanding", "Confusion", "Memorization", "Isolation"], answer: "A" }, { question: "Which is an example of integrated approach?", options: ["Science and math combined", "Only science", "Only math", "Only language"], answer: "A" } ], [ { question: "5 ?  M  > ( . G    @  C $ * >  .  >  0 M % 9 H :", options: ["5 ? - ? ( M ( 5 ? 7 / K   K  K ! < ( > ", " G 5 2   5 ? 7 / * " < > ( > ", "* M 0 / K  K  8 G ,  ( > ", "5 > 8 M $ 5 ?   @ 5 (  @  ( & G  @ "], answer: "A" }, { question: "  @  C $ * >  . 8 9 > /  9 H :", options: [", G 9 $ 0 8 .  . G  ", "- M 0 . . G  ", "0  ( G . G  ", " 2  > 5 . G  "], answer: "A" }, { question: "  @  C $ * >  .  > & > 9 0 #  M / > 9 H ?", options: ["5 ?  M  > (  0  # ? $  > 8  / K  ( ", " G 5 2 5 ?  M  > ( ", " G 5 2  # ? $ ", " G 5 2 - > 7 > "], answer: "A" } ] ); addQuestions('5 ?  M  > ( 6 ?  M 7 #  @ 5 ? ' ? / >  ', [ { question: "The inquiry method in science involves:", options: ["Questioning and exploring", "Lecturing", "Rote learning", "Copying"], answer: "A" }, { question: "Hands-on activities in science promote:", options: ["Active learning", "Passive learning", "Memorization", "Boredom"], answer: "A" }, { question: "Project-based learning in science is:", options: ["Student-centered", "Teacher-centered", "Book-centered", "Exam-centered"], answer: "A" } ], [ { question: "5 ?  M  > ( . G   ( M 5 G 7 # 5 ? ' ? . G  6 > . ? 2 9 H :", options: ["* M 0 6 M ( * B  ( >  0  K  ( > ", "5 M / >  M / > ( & G ( > ", "0  ( > ", "(  2  0 ( > "], answer: "A" }, { question: "5 ?  M  > ( . G  9 > % K  -9 > %  $ ? 5 ? ' ? / >  , " < > 5 > & G $ @ 9 H  :", options: ["8  M 0 ? /  ' ?  . ", "( ? 7 M  M 0 ? /  ' ?  . ", "0  ( > ", " , "], answer: "A" }, { question: "5 ?  M  > ( . G  * 0 ? / K  ( > - ' > 0 ? $  ' ?  . 9 H :", options: [" > $ M 0 - G  & M 0 ? $ ", "6 ?  M 7  - G  & M 0 ? $ ", "* A 8 M $  - G  & M 0 ? $ ", "* 0 @  M 7 > - G  & M 0 ? $ "], answer: "A" } ] ); addQuestions('( 5 >  > 0 ', [ { question: "Innovation in science teaching refers to:", options: ["New methods and ideas", "Traditional methods", "Old techniques", "Avoiding technology"], answer: "A" }, { question: "Using technology in science class is:", options: ["Innovative", "Traditional", "Obsolete", "Unnecessary"], answer: "A" }, { question: "Innovation helps in:", options: ["Better engagement", "More boredom", "Less learning", "More confusion"], answer: "A" } ], [ { question: "5 ?  M  > ( 6 ?  M 7 # . G  ( 5 >  > 0  >  0 M % 9 H :", options: ["(  5 ? ' ? / >   0 5 ?  > 0 ", "* > 0  * 0 ?  5 ? ' ? / >  ", "* A 0 > ( @ $  ( @  G  ", "$  ( @  8 G ,  ( > "], answer: "A" }, { question: "5 ?  M  > (   M 7 > . G  * M 0 L & M / K  ?  @  > * / K  9 H :", options: ["( 5 K ( M . G 7 @ ", "* > 0  * 0 ?  ", " * M 0  2 ? $ ", " ( > 5 6 M /  "], answer: "A" }, { question: "( 5 >  > 0 8 9 > /  9 H :", options: [", G 9 $ 0 8 9 - >  ? $ > . G  ", " ' ?  , . G  ", " .  ' ?  . . G  ", " ' ?  - M 0 . . G  "], answer: "A" } ] ); addQuestions('6 ?  M 7 # 8 9 > /  8 > .  M 0 @ ', [ { question: "Teaching aids in science include:", options: ["Models, charts, videos", "Only textbooks", "Only notebooks", "Only pens"], answer: "A" }, { question: "A model in science teaching helps to:", options: ["Visualize concepts", "Read books", "Pass exams", "Avoid experiments"], answer: "A" }, { question: "Audio-visual aids in science are:", options: ["Effective teaching tools", "Waste of time", "Distracting", "Unnecessary"], answer: "A" } ], [ { question: "5 ?  M  > ( . G  6 ?  M 7 # 8 9 > /  8 > .  M 0 @ . G  6 > . ? 2 9 H  :", options: [". I ! 2 ,  > 0 M  , 5 @ ! ? / K ", " G 5 2 * > M / * A 8 M $  G  ", " G 5 2  I * ? / >  ", " G 5 2  2 . "], answer: "A" }, { question: "5 ?  M  > ( 6 ?  M 7 # . G  . I ! 2 8 9 > /  9 H :", options: [" 5 ' > 0 # >    K & C 6 M / 0 B * & G ( > ", "* A 8 M $  G  * " < ( > ", "* 0 @  M 7 > * > 8  0 ( > ", "* M 0 / K  K  8 G ,  ( > "], answer: "A" }, { question: "5 ?  M  > ( . G   ! ? / K -5 ?  A  2 8 9 > /  8 > .  M 0 @ 9 H  :", options: ["* M 0 - > 5 @ 6 ?  M 7 # *  0 # ", "8 . /  @ , 0 M , > & @ ", "5 ?  2 ? $  0 ( G 5 > 2 @ ", " ( > 5 6 M /  "], answer: "A" } ] ); addQuestions('. B 2 M / >   ( ', [ { question: "Evaluation in science is:", options: ["Continuous process", "One-time event", "Only written test", "Only oral test"], answer: "A" }, { question: "Formative assessment in science is:", options: ["During instruction", "At the end", "At the beginning", "After exams"], answer: "A" }, { question: "Summative assessment aims to:", options: ["Assign grades", "Improve learning", "Diagnose difficulties", "Plan instruction"], answer: "A" } ], [ { question: "5 ?  M  > ( . 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: "5 ?  M  > ( . G  0  ( > $ M .  . B 2 M / >   ( 9 H :", options: ["6 ?  M 7 #  G & L 0 > ( ", "  $ . G  ", "6 A 0 A  $ . G  ", "* 0 @  M 7 >  G , > & "], answer: "A" }, { question: "/ K  > $ M .  . B 2 M / >   (  > & M & G 6 M / 9 H :", options: [" M 0 G ! & G ( > ", "8 @  ( G . G  8 A ' > 0 ", " ? ( >  / K   > ( ? & > ( ", "6 ?  M 7 #  @ / K  ( > "], answer: "A" } ] ); addQuestions('5 ?  M  > ( 6 ?  M 7 # 8 G 8 . M , ( M ' ? $ 8 . 8 M / >   ', [ { question: "Major problem in science teaching:", options: ["Lack of practical exposure", "Too many books", "Less time", "More teachers"], answer: "A" }, { question: "Challenge in science teaching:", options: ["Student apathy", "High interest", "Good resources", "Motivated students"], answer: "A" }, { question: "Classroom management issue in science:", options: ["Diverse learning levels", "Same level", "Perfect behavior", "Full attendance"], answer: "A" } ], [ { question: "5 ?  M  > ( 6 ?  M 7 # . G  * M 0 . A  8 . 8 M / > :", options: ["5 M / > 5 9 > 0 ?   ( A - 5  @  . @ ", ", 9 A $  ' ?  * A 8 M $  G  ", " . 8 . / ", " ' ?  6 ?  M 7  "], answer: "A" }, { question: "5 ?  M  > ( 6 ?  M 7 # . G   A ( L $ @ :", options: [" > $ M 0 K   @ & > 8 @ ( $ > ", "  M  0 A  ? ", "  M  G 8  8 > ' ( ", "* M 0 G 0 ? $  > $ M 0 "], answer: "A" }, { question: "5 ?  M  > ( . G    M 7 > * M 0 ,  ' (  @ 8 . 8 M / > :", 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" } ] ); addQuestions(' *  > 0 > $ M .  6 ?  M 7 # ', [ { question: "Remedial teaching in science aims to:", options: ["Correct errors", "Punish", "Ignore", "Skip topics"], answer: "A" }, { question: "Diagnostic test in science is:", options: ["Specific", "General", "Comprehensive", "Standardized"], answer: "A" }, { question: "Remedial teaching is for:", options: ["Slow learners", "Gifted", "Average", "All"], answer: "A" } ], [ { question: "5 ?  M  > ( . G  *  > 0 > $ M .  6 ?  M 7 #  > & M & G 6 M / :", options: ["$ M 0 A  ? / K   K 8 A ' > 0 ( > ", "&  ! & G ( > ", " ( & G  >  0 ( > ", "5 ? 7 /  K ! < ( > "], answer: "A" }, { question: "5 ?  M  > ( . G  ( ? & > ( > $ M .  * 0 @  M 7 # :", options: ["5 ? 6 ? 7 M  ", "8 > . > ( M / ", "5 M / > *  ", ". > (  @  C $ "], answer: "A" }, { question: " *  > 0 > $ M .  6 ?  M 7 #  ? 8  G 2 ?  9 H :", options: ["' @ . @  $ ?  G 6 ?  M 7 > 0 M % @ ", "* M 0 $ ? - > 6 > 2 @ ", " 8 $ ", "8 - @ "], answer: "A" } ] ); // ===================================================== // TOPIC KEYS & BILINGUAL NAMES // ===================================================== const topicKeys = [ "- K  ( ", "& M 0 5 M /  @  5 8 M % >   ", "& H ( ?  * / K  @ * & > 0 M % ", "8  @ 5   $ ", ". > ( 5  > 0 M /  @ ", "8 B  M 7 M .  @ 5 ", " $ ? . > ( 5 8 M $ A    5  (  G  ( A * M 0 / K  ", " @  G   H 8 G  > .  0 $ @ 9 H  ?", "* M 0 >  C $ ?    ( >   ", "$ > 0 G $ % > 8 L 0 . # M ! 2 ", "* M 0 >  C $ ?  8  8 > ' ( ", "5 ?  M  > (  @ * M 0  C $ ?  5  8  0  ( > ", "* M 0 >  C $ ?  5 ?  M  > ( 2  M 7 M /  5  & M & G 6 M / ", "5 ?  M  > (  > . 9 $ M $ M 5  5   8  @ 8 .  ", " * >  . /  @  C $ * >  . ", "5 ?  M  > ( 6 ?  M 7 #  @ 5 ? ' ? / >  ", "( 5 >  > 0 ", "6 ?  M 7 # 8 9 > /  8 > .  M 0 @ ", ". B 2 M / >   ( ", "5 ?  M  > ( 6 ?  M 7 # 8 G 8 . M , ( M ' ? $ 8 . 8 M / >   ", " *  > 0 > $ M .  6 ?  M 7 # " ]; const topicNames = { hi: [ "- K  ( ", "& M 0 5 M /  @  5 8 M % >   ", "& H ( ?  * / K  @ * & > 0 M % ", "8  @ 5   $ ", ". > ( 5  > 0 M /  @ ", "8 B  M 7 M .  @ 5 ", " $ ? . > ( 5 8 M $ A    5  (  G  ( A * M 0 / K  ", " @  G   H 8 G  > .  0 $ @ 9 H  ?", "* M 0 >  C $ ?    ( >   ", "$ > 0 G $ % > 8 L 0 . # M ! 2 ", "* M 0 >  C $ ?  8  8 > ' ( ", "5 ?  M  > (  @ * M 0  C $ ?  5  8  0  ( > ", "* M 0 >  C $ ?  5 ?  M  > ( 2  M 7 M /  5  & M & G 6 M / ", "5 ?  M  > (  > . 9 $ M $ M 5  5   8  @ 8 .  ", " * >  . /  @  C $ * >  . ", "5 ?  M  > ( 6 ?  M 7 #  @ 5 ? ' ? / >  ", "( 5 >  > 0 ", "6 ?  M 7 # 8 9 > /  8 > .  M 0 @ ", ". B 2 M / >   ( ", "5 ?  M  > ( 6 ?  M 7 # 8 G 8 . M , ( M ' ? $ 8 . 8 M / >   ", " *  > 0 > $ M .  6 ?  M 7 # " ], en: [ "Food", "States of Matter", "Daily Use Substances", "Living World", "Human Body", "Microorganisms", "Moving Objects and Their Applications", "How Things Work?", "Natural Phenomena", "Stars and Solar System", "Natural Resources", "Nature and Structure of Science", "Goals and Objectives of Science", "Importance and Understanding of Science", "Approach/Integrated Approach", "Methods of Science Teaching", "Innovation", "Teaching Learning Material", "Evaluation", "Problems Related to Science Teaching", "Remedial 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 * G * 0 -2 - 5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 ", mainSubtitle: "5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 | & H ( ?   - M / > 8 8 . 8 M / >  ( 0 G  0 ", startTitle: "=Ø,Ý 5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 ", streakLabel: "2  > $ > 0 ", dayLabel: "& ? ( ", progressTitle: " *  @ * M 0  $ ? ", podBtnText: "& ? (  @ 8 . 8 M / > ", customBtnText: " 8 M  .  - M / > 8 ", subjectTitle: "<Ø¯ß 5 ? 7 /  / ( ", selectSubjectText: "5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 ", topicTitle: "=ØÚÜ  ' M / > / K   >  / (  0 G  ", chapterSelectText: " ' M / > / K   >  / (  0 G  ", backStartText: "* M 0 > 0  - * 0 5 > * 8 ", genAssignText: " - M / > 8 * M 0 6 M (  G ( 0 G   0 G  ", levelTitle: "¡&  ? ( >  8 M $ 0  A ( G  ", levelSelectText: " ? ( >  8 M $ 0  A ( G  ", levelDescText: " * ( G CTET 8 M $ 0  G  ( A 8 > 0  A ( G  :", l1Title: "8 M $ 0 1", l1Sub: ", G 8 ?  / CTET  ' > 0 ", l2Title: "8 M $ 0 2", l2Sub: ". ' M / . (CTET . > (  )", l3Title: "8 M $ 0 3", l3Sub: " ( M ( $ (5 ? 6 M 2 G 7 # > $ M .  )", backTopicsText: "5 ? 7 / K  * 0 5 > * 8 ", genFinalText: " - M / > 8 * M 0 6 M (  G ( 0 G   0 G  ", langLabel: "9 ?  & @ ", fullPaper: "8 - @ 5 ? 7 / (* B 0 M # * > M /  M 0 . - 21  ' M / > / )", noTopicAlert: " C * / >  . 8 G  .    ' M / > /  A ( G  !", noLevelAlert: " C * / >  ? ( >  8 M $ 0  A ( G  !", instructions: "( ? 0 M & G 6 (5 ?  M  > (  - M / > 8 ):", inst1: "10 , 9 A 5 ?  2 M * @ * M 0 6 M ( , 5 ?  M  > (  5  6 ?  M 7 > 6 > 8 M $ M 0 * 0  ' > 0 ? $ d ", inst2: "15 . ? (  . G  9 2  0 G  , $ M $ 0  A   @ 8 G . ? 2 >   d ", mcqHeading: "'þ  - M / > 8 * M 0 6 M ( ", answerKey: "=ØÝ $ M $ 0  A   @ ", qNo: "* M 0 6 M ( 8  .", ans: " $ M $ 0 ", print: "* M 0 ?   / PDF", newPractice: "( / >  - M / > 8 ", markComplete: "* B 0 M #  ? 9 M ( ? $  0 G  ", completeMsg: "<Ø‰ß 6 > ( & > 0 !  - M / > 8 * B 0 M # 9 A  d * M 0  $ ? 8 9 G  @   d ", dailyComplete: ", ' >  9 K ! & ? (  @ 8 . 8 M / > 9 2 9 A  d ", podTitle: "<Øß & ? (  @  A ( L $ @ (5 ?  M  > ( )", podSub: "<دß", podLevel: "8 M $ 0 ", podToday: "   >  - M / > 8 * M 0 6 M ( ", podStreak: "=Ø%Ý 2  > $ > 0 ", podSolved: "' 9 2 * M 0 6 M ( ", podProgress: "=ØÚÜ * M 0  $ ? ", podSolution: "=ØÌÜ 8 . > ' > ( ", podCorrect: "8 9 @ $ M $ 0 :", podExplanation: "5 M / >  M / > : CTET 5 ?  M  > (  5 ' > 0 # >  G  ( A 8 > 0 ", podComplete: "* B 0 M #  ? / > ", podPrint: "* M 0 ?    0 G  ", podNew: "( / >  - M / > 8 " }, en: { mainTitle: "=Ø,Ý CTET Paper 2 - Science and Pedagogy", mainSubtitle: "Science and Pedagogy | Daily Practice Problem Generator", startTitle: "=Ø,Ý Science and Pedagogy", streakLabel: "Streak", dayLabel: "days", progressTitle: "Your Progress", podBtnText: "Problem of the Day", customBtnText: "Custom Practice", subjectTitle: "<Ø¯ß Select Subject", selectSubjectText: "Science and Pedagogy", topicTitle: "=ØÚÜ Select Chapters", chapterSelectText: "Select Chapters", backStartText: "Back to Start", genAssignText: "Generate Practice Questions", levelTitle: "¡& Select Difficulty Level", levelSelectText: "Select Difficulty Level", levelDescText: "Choose according to your CTET level:", l1Title: "Level 1", l1Sub: "Basic / CTET Foundation", l2Title: "Level 2", l2Sub: "Medium (CTET Standard)", l3Title: "Level 3", l3Sub: "Advanced (Analytical)", backTopicsText: "Back to Topics", genFinalText: "Generate Practice Questions", langLabel: "English", fullPaper: "All Topics (Full Syllabus - 21 Chapters)", noTopicAlert: "Please select at least one chapter!", noLevelAlert: "Please select a difficulty level!", instructions: "Instructions (Science Practice):", inst1: "10 multiple choice questions based on Science and Pedagogy.", inst2: "Solve in 15 minutes, check with answer key.", mcqHeading: "'þ Practice Questions", answerKey: "=ØÝ Answer Key", qNo: "Q. No.", ans: "Answer", print: "Print / PDF", newPractice: "New Practice", markComplete: "Mark Complete", completeMsg: "<Ø‰ß Excellent! Practice marked complete. Progress saved.", dailyComplete: "Congratulations! Problem of the day solved.", podTitle: "<Øß Problem of the Day (Science)", podSub: "<دß", podLevel: "Level", podToday: "Today's Practice Question", podStreak: "=Ø%Ý Streak", podSolved: "' Solved", podProgress: "=ØÚÜ Progress", podSolution: "=ØÌÜ Solution", podCorrect: "Correct Answer:", podExplanation: "Explanation: As per CTET Science concept", podComplete: "Mark Complete", podPrint: "Print", podNew: "New Practice" } }; // ===================================================== // DOM REFS & STATE // ===================================================== const langToggleBtn = document.getElementById('langToggleBtn'); const langLabel = document.getElementById('langLabel'); let currentLang = 'hi'; let selectedTopics = []; let selectedLevel = null; let userProgress = { streak: 0, lastPracticeDate: null, totalProblemsSolved: 0, topicsCompleted: 0, totalTopics: topicKeys.length }; 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('streakLabel').textContent = t.streakLabel; document.getElementById('dayLabel').textContent = t.dayLabel; document.getElementById('progressTitle').textContent = t.progressTitle; document.getElementById('podBtnText').textContent = t.podBtnText; document.getElementById('customBtnText').textContent = t.customBtnText; document.getElementById('subjectTitle').textContent = t.subjectTitle; document.getElementById('selectSubjectText').textContent = t.selectSubjectText; document.getElementById('topicTitle').textContent = t.topicTitle; document.getElementById('chapterSelectText').textContent = t.chapterSelectText; document.getElementById('backStartText').textContent = t.backStartText; document.getElementById('genAssignText').textContent = t.genAssignText; document.getElementById('levelTitle').textContent = t.levelTitle; document.getElementById('levelSelectText').textContent = t.levelSelectText; document.getElementById('levelDescText').textContent = t.levelDescText; document.getElementById('l1Title').textContent = t.l1Title; document.getElementById('l1Sub').textContent = t.l1Sub; document.getElementById('l2Title').textContent = t.l2Title; document.getElementById('l2Sub').textContent = t.l2Sub; document.getElementById('l3Title').textContent = t.l3Title; document.getElementById('l3Sub').textContent = t.l3Sub; document.getElementById('backTopicsText').textContent = t.backTopicsText; document.getElementById('genFinalText').textContent = t.genFinalText; langLabel.textContent = t.langLabel; renderTopics(); if (!generatedPaperContainer.classList.contains('hidden')) { if (selectedTopics.length > 0 && selectedLevel) { generatePaper(selectedTopics, selectedLevel, currentLang); } } } langToggleBtn.addEventListener('click', function() { currentLang = (currentLang === 'hi') ? 'en' : 'hi'; applyUILanguage(currentLang); }); // ============ CORE FUNCTIONS ============ function renderTopics() { const container = document.getElementById('topicsContainer'); const t = uiText[currentLang]; const fullLabel = (currentLang === 'hi') ? "' 8  * B 0 M # * > M /  M 0 . (8 - @ 21  ' M / > / )" : "' Full Syllabus (All 21 Chapters)"; container.innerHTML = `<div class="checkbox-item" style="background:#e8f5e9;"><input type="checkbox" id="fullSyllabus" value="full"><label for="fullSyllabus"><strong>${fullLabel}</strong></label></div>`; topicKeys.forEach(topic => { const id = `topic_${topic.replace(/[\s,?()]/g, '_').substring(0, 40)}`; const displayName = getTopicDisplay(topic, currentLang); container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="${id}" name="topic" value="${topic}"><label for="${id}">${displayName}</label></div>`; }); document.getElementById('fullSyllabus')?.addEventListener('change', (e) => { const allCheckboxes = document.querySelectorAll('input[name="topic"]'); allCheckboxes.forEach(cb => cb.disabled = e.target.checked); if(e.target.checked) allCheckboxes.forEach(cb => cb.checked = false); }); } function getRandomQuestions(topics, level, count, lang) { let allQs = []; topics.forEach(topic => { if (questionBank[topic] && questionBank[topic][lang] && questionBank[topic][lang][`level${level}`]) { allQs = allQs.concat(questionBank[topic][lang][`level${level}`]); } }); if (allQs.length === 0) { const t = uiText[lang]; return [{ question: t.noTopicAlert, options: ["A", "B", "C", "D"], answer: "A" }]; } allQs = allQs.sort(() => Math.random() - 0.5); return allQs.slice(0, count); } function loadUserProgress() { const saved = localStorage.getItem('ctetScienceDailyProgressPaper2'); if (saved) userProgress = JSON.parse(saved); const today = new Date().toDateString(); if (userProgress.lastPracticeDate !== today) { const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); if (userProgress.lastPracticeDate === yesterday.toDateString()) userProgress.streak++; else userProgress.streak = 1; userProgress.lastPracticeDate = today; saveUserProgress(); } updateUI(); } function saveUserProgress() { localStorage.setItem('ctetScienceDailyProgressPaper2', JSON.stringify(userProgress)); } function updateUI() { const t = uiText[currentLang]; document.getElementById('streakDays').textContent = userProgress.streak; const today = new Date(); document.getElementById('currentDate').textContent = today.toLocaleDateString(currentLang === 'hi' ? 'hi-IN' : 'en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); const percent = Math.min(100, Math.round((userProgress.topicsCompleted / userProgress.totalTopics) * 100)); document.getElementById('progressFill').style.width = `${percent}%`; document.getElementById('progressText').textContent = `${percent}% ${currentLang === 'hi' ? '* B 0 M # ' : 'complete'} (${userProgress.topicsCompleted}/${userProgress.totalTopics} ${currentLang === 'hi' ? ' ' M / > / ' : 'chapters'})`; } function generatePaper(topics, level, lang) { const t = uiText[lang]; const topicNamesDisplay = topics.length > 5 ? topics.slice(0,5).map(t => getTopicDisplay(t, lang)).join(", ")+" ..." : topics.map(t => getTopicDisplay(t, lang)).join(", "); const mcqs = getRandomQuestions(topics, level, 10, lang); let paperContent = `<div class="header"><h2>=ØØÜ CTET Paper-2 (Science & Pedagogy)</h2><h3>=ØÌÜ ${topics.length === topicKeys.length ? (currentLang === 'hi' ? "8 . M * B 0 M # * > M /  M 0 . (21  ' M / > / )" : "Full Syllabus (21 Chapters)") : topicNamesDisplay.substring(0, 85)}</h3><p>¡& ${currentLang === 'hi' ? ' ? ( >  8 M $ 0 ' : 'Difficulty Level'} ${level}  ${level === 1 ? (currentLang === 'hi' ? ', G 8 ?  ' : 'Basic') : level === 2 ? (currentLang === 'hi' ? '. ' M / . ' : 'Medium') : (currentLang === 'hi' ? ' ( M ( $ ' : 'Advanced')}</p></div><div class="content-area"><div class="instructions"><p><strong>${t.instructions}</strong></p><ol><li>${t.inst1}</li><li>${t.inst2}</li></ol></div><div class="question-section"><div style="font-size:1.4rem; margin-bottom:20px; font-weight:bold;">${t.mcqHeading}</div>`; let qNum = 1; mcqs.forEach(mcq => { paperContent += `<div class="question"><div class="question-text">${qNum}. ${mcq.question}</div> <div class="option">A. ${mcq.options[0]}</div><div class="option">B. ${mcq.options[1]}</div> <div class="option">C. ${mcq.options[2]}</div><div class="option">D. ${mcq.options[3]}</div></div>`; qNum++; }); 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></tr></thead><tbody>`; for (let i = 0; i < mcqs.length; i += 2) { paperContent += `<tr><td>${i+1}</td><td><strong>${mcqs[i].answer}</strong></td>`; if (i+1 < mcqs.length) paperContent += `<td>${i+2}</td><td><strong>${mcqs[i+1].answer}</strong></td>`; else paperContent += `<td></td><td></td>`; paperContent += `</tr>`; } paperContent += `</tbody></table></div><div class="action-buttons"><button class="btn btn-success" id="markCompleteBtn"><i class="fas fa-check-circle"></i> ${t.markComplete}</button><button class="btn btn-primary" id="printBtn"><i class="fas fa-print"></i> ${t.print}</button><button class="btn btn-danger" id="newAssignmentBtn"><i class="fas fa-undo-alt"></i> ${t.newPractice}</button></div></div>`; generatedPaperContainer.innerHTML = paperContent; generatedPaperContainer.classList.remove('hidden'); startContainer.classList.add('hidden'); document.getElementById('markCompleteBtn')?.addEventListener('click', markPracticeComplete); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('newAssignmentBtn')?.addEventListener('click', backToStart); } function markPracticeComplete() { const t = uiText[currentLang]; userProgress.totalProblemsSolved += 10; let newlyCompleted = 0; selectedTopics.forEach(t => { if (!userProgress[`comp_${t}`]) { userProgress[`comp_${t}`] = true; newlyCompleted++; } }); userProgress.topicsCompleted = Math.min(userProgress.totalTopics, userProgress.topicsCompleted + newlyCompleted); saveUserProgress(); updateUI(); alert(t.completeMsg); backToStart(); } function generateProblemOfDay() { const t = uiText[currentLang]; const randomTopic = topicKeys[Math.floor(Math.random() * topicKeys.length)]; const randomLevel = Math.floor(Math.random() * 3) + 1; selectedTopics = [randomTopic]; selectedLevel = randomLevel; const mcq = getRandomQuestions(selectedTopics, randomLevel, 1, currentLang)[0]; const topicDisplay = getTopicDisplay(randomTopic, currentLang); startContainer.classList.add('hidden'); generatedPaperContainer.classList.remove('hidden'); let content = `<div class="header"><h2>${t.podTitle}</h2><h3>${t.podSub} ${topicDisplay}</h3><p>${t.podLevel} ${randomLevel}</p></div><div class="content-area"><div class="problem-of-day"><h3><i class="fas fa-star-of-life"></i> ${t.podToday}</h3><p>${currentLang === 'hi' ? ' * ( @ learning streak , ( >  0  G  !' : 'Keep your learning streak going!'}</p></div><div class="daily-summary"><div class="summary-card"><h4>${t.podStreak}</h4><p>${userProgress.streak} ${currentLang === 'hi' ? '& ? ( ' : 'days'}</p></div><div class="summary-card"><h4>${t.podSolved}</h4><p>${userProgress.totalProblemsSolved}</p></div><div class="summary-card"><h4>${t.podProgress}</h4><p>${Math.round((userProgress.topicsCompleted / userProgress.totalTopics) * 100)}%</p></div></div><div class="question"><div class="question-text">${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><div class="answer-sheet"><h3>${t.podSolution}</h3><p><strong>${t.podCorrect}</strong> ${mcq.answer}</p><p><strong>${t.podExplanation}</strong></p></div><div class="action-buttons"><button class="btn btn-success" id="markCompleteDailyBtn"><i class="fas fa-check"></i> ${t.podComplete}</button><button class="btn btn-primary" id="printBtn">${t.podPrint}</button><button class="btn btn-danger" id="newAssignmentBtn">${t.podNew}</button></div></div>`; generatedPaperContainer.innerHTML = content; document.getElementById('markCompleteDailyBtn')?.addEventListener('click', () => { userProgress.totalProblemsSolved++; saveUserProgress(); updateUI(); alert(t.dailyComplete); backToStart(); }); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('newAssignmentBtn')?.addEventListener('click', backToStart); } function backToStart() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); document.getElementById('topicSelection').classList.add('hidden'); document.getElementById('levelSelection').classList.add('hidden'); document.getElementById('subjectSelection').classList.add('hidden'); document.getElementById('startScreen').classList.remove('hidden'); updateUI(); } // ===================================================== // EVENT BINDINGS // ===================================================== document.getElementById('customPracticeBtn').addEventListener('click', () => { document.getElementById('startScreen').classList.add('hidden'); document.getElementById('subjectSelection').classList.remove('hidden'); }); document.getElementById('selectScienceBtn').addEventListener('click', () => { renderTopics(); document.getElementById('subjectSelection').classList.add('hidden'); document.getElementById('topicSelection').classList.remove('hidden'); }); document.getElementById('backToStartBtn').addEventListener('click', backToStart); document.getElementById('generateAssignmentBtn').addEventListener('click', () => { const full = document.getElementById('fullSyllabus')?.checked; if (full) selectedTopics = [...topicKeys]; else selectedTopics = Array.from(document.querySelectorAll('input[name="topic"]:checked')).map(cb => cb.value); if (selectedTopics.length === 0) { const t = uiText[currentLang]; alert(t.noTopicAlert); return; } document.getElementById('topicSelection').classList.add('hidden'); document.getElementById('levelSelection').classList.remove('hidden'); }); document.getElementById('backToTopicsBtn').addEventListener('click', () => { document.getElementById('levelSelection').classList.add('hidden'); document.getElementById('topicSelection').classList.remove('hidden'); }); document.getElementById('level1Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level1Btn').classList.add('selected'); selectedLevel = 1; }); document.getElementById('level2Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level2Btn').classList.add('selected'); selectedLevel = 2; }); document.getElementById('level3Btn').addEventListener('click', () => { document.querySelectorAll('.btn-level').forEach(b => b.classList.remove('selected')); document.getElementById('level3Btn').classList.add('selected'); selectedLevel = 3; }); document.getElementById('generateFinalBtn').addEventListener('click', () => { if (!selectedLevel) { const t = uiText[currentLang]; alert(t.noLevelAlert); return; } generatePaper(selectedTopics, selectedLevel, currentLang); }); document.getElementById('problemOfDayBtn').addEventListener('click', generateProblemOfDay); document.getElementById('homeIconBtn').addEventListener('click', (e) => { e.preventDefault(); backToStart(); }); document.addEventListener('DOMContentLoaded', () => { loadUserProgress(); }); </script> </body> </html>