#cj,#cj *{box-sizing:border-box} #cj{--panel:#fff;--ink:#1c1b2e;--mut:#5b5f7a;--acc:#1d4ed8;--line:#d5dae6;--chip:#e8eefc;max-width:980px;margin:0 auto;padding:8px;color:var(--ink);font-family:'Cairo',Tahoma,Arial,sans-serif;line-height:1.7;text-align:start} #cj h1{font-size:1.4rem;margin:4px 0 12px} #cj .bar{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px} #cj button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--chip);color:var(--ink);padding:7px 14px;border-radius:10px;font-weight:600} #cj button[aria-pressed="true"],#cj button.pri{background:var(--acc);color:#fff;border-color:var(--acc)} #cj button:focus-visible,#cj input:focus-visible,#cj textarea:focus-visible{outline:3px solid var(--acc);outline-offset:1px} #cj .sp{flex:1} #cj label.chk{display:flex;gap:6px;align-items:center;font-size:.9rem;color:var(--mut)} #cj .note{font-size:.85rem;color:var(--mut);margin-top:10px} #cj .sheet{background:#fff;color:#111;border:2px solid #111;border-radius:6px;padding:18px;overflow-x:auto} #cj .sheet h2{text-align:center;margin:0 0 12px;font-size:1.3rem} #cj .meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-bottom:10px} #cj .meta label{display:flex;flex-direction:column;font-size:.82rem;font-weight:700;border:1.5px solid #111;border-radius:6px;padding:3px 8px} #cj .sheet input,#cj .sheet textarea{font:inherit;color:#111;background:transparent;border:none;border-bottom:1px dotted #888;border-radius:0;box-shadow:none;width:100%;padding:2px 0;margin:0;resize:none;overflow:hidden} #cj .sheet input:focus,#cj .sheet textarea:focus{background:#fffbe6} #cj .box{border:1.5px solid #111;border-radius:6px;padding:6px 10px;margin:10px 0} #cj .box b{font-size:.9rem} #cj table{border-collapse:collapse;width:100%;min-width:640px;font-size:.92rem;margin:0} #cj th{background:#c6e0b4;border:1.5px solid #111;padding:4px;font-size:.82rem;color:#111} #cj th input{text-align:center;font-weight:700;border:none} #cj td{border:1px solid #555;padding:2px 4px;vertical-align:top} #cj td.w{width:84px}#cj td.s{width:48px}#cj td.d{width:58px}#cj td.g{width:52px} #cj tr.brk td{background:#c6e0b4;text-align:center;font-weight:700;border:1.5px solid #111} #cj .x{background:none;border:none;color:#b91c1c;padding:0 6px;font-size:1.1rem} #cj .tot{text-align:end;font-weight:700;font-size:.9rem;margin-top:6px} @media print{ *{-webkit-print-color-adjust:exact;print-color-adjust:exact} @page{size:A4;margin:10mm} body *{visibility:hidden} #cj .sheet,#cj .sheet *{visibility:visible} #cj .sheet{position:absolute;left:0;top:0;width:100%;border:none;padding:0;overflow:visible} #cj .no-print{display:none!important} #cj .sheet input,#cj .sheet textarea{border:none!important} #cj table{min-width:0} } //<![CDATA[ var L={ ar:{h1:"أداة المذكرة اليومية",title:"المذكرة اليومية",school:"المؤسسة",teacher:"الأستاذ(ة)",cls:"القسم",date:"تاريخ اليوم",period:"اللبنة / الفترة",week:"الأسبوع",day:"اليوم",session:"الحصة",group:"الفوج",obj:"الأهداف",time:"التوقيت",disc:"المادة",s:"الحصة",dur:"المدة",act:"الأنشطة ومضامينها",g:"الفوج",rec:"الاستراحة",rem:"ملاحظات",total:"مجموع المدة",min:"د",add:"+ نشاط",brk:"+ استراحة",today:"تاريخ اليوم",print:"طباعة",reset:"مسح الكل",ncm:"إظهار عمود N.C.M",note:"تُحفظ بياناتك تلقائياً في متصفحك. اضغط طباعة ثم اختر حفظ PDF إن أردت ملفاً.",conf:"هل تريد مسح كل البيانات؟"}, fr:{h1:"Outil Cahier journal",title:"Cahier journal",school:"Établissement",teacher:"Enseignant(e)",cls:"Classe",date:"Date",period:"Période",week:"Semaine",day:"Jour",session:"Séance",group:"Groupe",obj:"Objectifs",time:"Horaire",disc:"Discipline",s:"S",dur:"Durée",act:"Activités",g:"G",rec:"Récréation",rem:"Remarques",total:"Durée totale",min:"min",add:"+ Ligne",brk:"+ Récréation",today:"Date du jour",print:"Imprimer",reset:"Tout effacer",ncm:"Afficher la colonne N.C.M",note:"Vos données sont enregistrées automatiquement dans ce navigateur. Cliquez sur Imprimer puis choisissez Enregistrer en PDF si besoin.",conf:"Effacer toutes les données ?"} }; function blank(){var r=function(){return{t:"r",h:"",d:"",s:"",m:"",a:"",g:"",n:""}}; return{lang:"ar",ncmShow:true,ncm:"N.C.M",h:{school:"",teacher:"",cls:"",date:"",period:"",week:"",day:"",session:"",group:"",obj:"",rem:""},rows:[r(),r(),r(),r()]}} var S=blank(); try{var sv=localStorage.getItem("cj_state");if(sv){var p=JSON.parse(sv);if(p&&p.rows)S=p}}catch(e){} function save(){try{localStorage.setItem("cj_state",JSON.stringify(S))}catch(e){}} function esc(s){return String(s==null?"":s).replace(/[&<>"]/g,function(c){return{"&":"&","<":"<",">":">",'"':"""}[c]})} function grow(t){t.style.height="auto";t.style.height=t.scrollHeight+"px"} function total(){var n=0;S.rows.forEach(function(r){if(r.t==="r")n+=parseInt(r.m,10)||0});return n} function render(){ var l=L[S.lang],ar=S.lang==="ar"; document.getElementById("cj").dir=ar?"rtl":"ltr"; document.getElementById("ui-h1").textContent=l.h1; document.getElementById("ui-note").textContent=l.note; document.getElementById("bar").innerHTML= '<button data-act="ar" aria-pressed="'+ar+'">العربية</button><button data-act="fr" aria-pressed="'+!ar+'">Français</button>'+ '<span class="sp"></span><button data-act="add">'+l.add+'</button><button data-act="brk">'+l.brk+'</button><button data-act="today">'+l.today+'</button>'+ '<label class="chk"><input type="checkbox" data-act="ncm" '+(S.ncmShow?"checked":"")+'> '+l.ncm+'</label>'+ '<button data-act="reset">'+l.reset+'</button><button class="pri" data-act="print">🖨️ '+l.print+'</button>'; var h=S.h; function f(k){return'<label>'+l[k]+'<input data-h="'+k+'" value="'+esc(h[k])+'"></label>'} var cols=S.ncmShow?7:6; var rows=S.rows.map(function(r,i){ if(r.t==="b")return'<tr class="brk"><td colspan="'+cols+'">'+l.rec+'</td><td class="no-print" style="border:none;background:none"><button class="x" data-del="'+i+'" aria-label="x">×</button></td></tr>'; function c(k,cls){return'<td class="'+cls+'"><input data-r="'+i+'" data-k="'+k+'" value="'+esc(r[k])+'"></td>'} return'<tr>'+c("h","w")+c("d","")+c("s","s")+c("m","d")+'<td><textarea rows="1" data-r="'+i+'" data-k="a">'+esc(r.a)+'</textarea></td>'+c("g","g")+(S.ncmShow?c("n","g"):"")+ '<td class="no-print" style="border:none"><button class="x" data-del="'+i+'" aria-label="x">×</button></td></tr>'}).join(""); document.getElementById("sheet").innerHTML= '<h2>'+l.title+'</h2>'+ '<div class="meta">'+f("school")+f("teacher")+f("cls")+f("date")+f("period")+f("week")+f("day")+f("session")+f("group")+'</div>'+ '<div class="box"><b>'+l.obj+':</b><textarea rows="2" data-h="obj">'+esc(h.obj)+'</textarea></div>'+ '<table><thead><tr><th>'+l.time+'</th><th>'+l.disc+'</th><th>'+l.s+'</th><th>'+l.dur+' ('+l.min+')</th><th>'+l.act+'</th><th>'+l.g+'</th>'+ (S.ncmShow?'<th><input data-ncm value="'+esc(S.ncm)+'"></th>':'')+'<th class="no-print" style="background:none;border:none"></th></tr></thead><tbody>'+rows+'</tbody></table>'+ '<div class="tot">'+l.total+': <span id="tot">'+total()+'</span> '+l.min+'</div>'+ '<div class="box"><b>'+l.rem+':</b><textarea rows="2" data-h="rem">'+esc(h.rem)+'</textarea></div>'; document.querySelectorAll("#sheet textarea").forEach(grow); } document.addEventListener("input",function(e){ var t=e.target; if(t.dataset.h!==undefined)S.h[t.dataset.h]=t.value; else if(t.dataset.r!==undefined){S.rows[+t.dataset.r][t.dataset.k]=t.value;if(t.dataset.k==="m")document.getElementById("tot").textContent=total()} else if(t.hasAttribute("data-ncm"))S.ncm=t.value; if(t.tagName==="TEXTAREA")grow(t); save(); }); document.addEventListener("click",function(e){ var b=e.target.closest("[data-act],[data-del]");if(!b)return; if(b.dataset.del!==undefined){S.rows.splice(+b.dataset.del,1);save();render();return} var a=b.dataset.act; if(a==="ar"||a==="fr"){S.lang=a;save();render()} else if(a==="add"){S.rows.push({t:"r",h:"",d:"",s:"",m:"",a:"",g:"",n:""});save();render()} else if(a==="brk"){S.rows.push({t:"b"});save();render()} else if(a==="print"){window.print()} else if(a==="today"){ var d=new Date(); try{ if(S.lang==="ar"){ var hj=new Intl.DateTimeFormat("ar-u-ca-islamic-umalqura-nu-latn",{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(d); var gr=new Intl.DateTimeFormat("ar-MA-u-nu-latn",{day:"numeric",month:"long",year:"numeric"}).format(d); S.h.date=hj+" / "+gr; }else S.h.date=new Intl.DateTimeFormat("fr-FR",{weekday:"long",day:"numeric",month:"long",year:"numeric"}).format(d); }catch(x){S.h.date=d.toLocaleDateString()} save();render(); } else if(a==="reset"){if(confirm(L[S.lang].conf)){S=blank();save();render()}} }); document.addEventListener("change",function(e){ if(e.target.dataset.act==="ncm"){S.ncmShow=e.target.checked;save();render()} }); render(); //]]>