Namaz Borcu (Eda edilen vakti, düş)


Düş Şifre:9, Niyet Değiştir Şifre: 9999

HTML Kod:

<html lang="tr">
<head>
<meta charset="UTF-8"></meta>
<meta content="width=device-width,initial-scale=1" name="viewport"></meta>
<title>Namaz Borcu Takip</title>
<style>
:root{
--bg:#f6f8fb;
--card:#ffffff;
--primary:#2563eb;
--text:#111827;
--muted:#6b7280;
--border:#e5e7eb;
}
*{box-sizing:border-box;font-family:system-ui,Arial,sans-serif}
body{margin:0;background:var(--bg);padding:12px;color:var(--text)}
.container{max-width:700px;margin:auto}
.card{
background:var(--card);
border-radius:24px;
padding:18px;
box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.time{font-size:12px;color:var(--muted);text-align:right}

/* Siyah Arka Planlı Başlık Alanı */
.header-box{
background-color:#000000;
color:#ffffff;
padding:12px;
border-radius:16px;
margin-bottom:15px;
}
.niyet{font-size:24px;font-weight:700;text-align:center}
.sub{font-size:14px;color:#9ca3af;text-align:center;margin-top:4px}

/* Gri ve Dikey Daraltılmış Toplam Alanı */
.total{
background:#e5e7eb;
color:var(--text);
padding:8px 16px; 
border-radius:18px;
text-align:center;
margin-bottom:14px;
}
.total b{font-size:28px}

.row{
display:grid;
grid-template-columns:1fr 90px 90px;
gap:8px;
align-items:center;
padding:10px;
border:1px solid var(--border);
border-radius:14px;
margin-bottom:8px;
background:#fff;
}
.vakit b{display:block}
.vakit span{color:var(--muted);font-size:13px}
input,button{
width:100%;
border-radius:12px;
padding:11px;
border:1px solid var(--border);
}
button{
background:var(--primary);
color:white;
border:none;
font-weight:600;
}
.tools{
margin-top:16px;
padding-top:12px;
border-top:1px solid var(--border);
}
.toolbtn{margin-top:8px}

/* Özel Buton Renkleri */
.btn-red{background-color:#dc2626 !important;}
.btn-green{background-color:#16a34a !important;}

.footer{
text-align:center;
margin-top:18px;
font-size:12px;
color:var(--muted);
}
</style>
</head>
<body>
<div class="container">
<div class="card">

<div class="top">
<div>🕌</div>
<div class="time" id="clock"></div>
</div>

<div class="header-box">
<div class="niyet" id="niyetText">Niyet</div>
<div class="sub">NAMAZ BORCU TAKİP</div>
</div>

<div class="total">
Toplam Kalan Borç<br />
<b id="toplam">0</b>
</div>

<div id="liste"></div>

<div class="tools">
<button class="toolbtn btn-red" onclick="olustur()">Borç Oluştur</button>
<button class="toolbtn btn-green" onclick="niyetDegistir()">Niyet Değiştir</button>
</div>

<div class="footer">
Designer: Muhammed Yusuf OLGUN
</div>

</div>
</div>

<script>
let veri=JSON.parse(localStorage.getItem("namazTakip"))||{
Sabah:100,Ogle:100,Ikindi:100,Aksam:100,Yatsi:100
};
let niyet=localStorage.getItem("niyet")||"Allah Rızası";
const kod="9";

function saat(){
document.getElementById("clock").innerHTML=
new Date().toLocaleString("tr-TR");
}

function save(){
localStorage.setItem("namazTakip",JSON.stringify(veri));
}

function render(){
document.getElementById("niyetText").innerText=niyet;

let html="",top=0;
for(let v in veri){
top+=veri[v];
html+=`
<div class="row">
<div class="vakit">
<b>${v}</b>
<span>Kalan: ${veri[v]}</span>
</div>
<div><input type="number" id="${v}" value="1"></div>
<div><button onclick="dus('${v}')">Düş</button></div>
</div>`;
}
document.getElementById("liste").innerHTML=html;
document.getElementById("toplam").innerText=top;
}

function dus(v){
let girilenKod = prompt("Lütfen şifreyi girin:");
if(girilenKod !== kod) {
    if(girilenKod !== null) alert("Hatalı şifre!");
    return;
}
let a=Number(document.getElementById(v).value||0);
veri[v]=Math.max(0,veri[v]-a);
save(); 
render();
}

function olustur(){
// 1. Adım: Şifre Kontrolü
let girilenKod = prompt("İşlem şifresini girin (Varsayılan: 9):");
if(girilenKod !== kod){
    if(girilenKod !== null) alert("Hatalı şifre girdiniz, işlem iptal edildi.");
    return;
}

// 2. Adım: Miktar Girişi (Her vakit için)
let miktar = prompt("Her bir vakit için oluşturulacak borç miktarını girin:\n(Örnek: 100 yazarsanız, 5 vakit için toplam 500 borç oluşur)", "100");
if(miktar === null || miktar.trim() === "") return; // İptale basılırsa veya boş bırakılırsa çık

let d = parseInt(miktar);
if(isNaN(d) || d < 0) {
    alert("Lütfen geçerli ve pozitif bir sayı giriniz!");
    return;
}

// 3. Adım: Veriyi Kaydet ve Güncelle
veri = {Sabah:d, Ogle:d, Ikindi:d, Aksam:d, Yatsi:d};
save(); 
render();
alert("Borçlar başarıyla oluşturuldu! Yeni toplam borcunuz: " + (d * 5));
}

function niyetDegistir(){
// Şifre sorusuna varsayılan bilgi eklendi
let girilenKod = prompt("İşlem şifresini girin (Varsayılan: 9):");
if(girilenKod !== kod){
    if(girilenKod !== null) alert("Hatalı şifre!");
    return;
}
let y=prompt("Yeni niyet metnini girin:");
if(y === null || y.trim() === "") return; // İptale basılırsa veya sadece boşluk girilirse iptal et

niyet=y;
localStorage.setItem("niyet",y);
render();
alert("Niyet metni başarıyla güncellendi!");
}

setInterval(saat,1000);
saat();
render();
</script>
</body>
</html><div><br /></div>