Code
<script>
document.addEventListener("DOMContentLoaded", () => {
// აკრძალული სიტყვების სია
const badWords = ["გინება","შეურაცხყოფა","დაწყევლა","დამცირება","ლანძღვა","შე*","ნაბ","მატრაკ","სიძულვილი","ფაშისტი","ნაცისტი","ზიზღი","მუქარა","მოკალი","გაანადგურე","სპამი","რეკლამა","ვირუსი","ფიშინგი","პორნო","სექს","სქესობრივი","მოტყნა","დაბომბე","გააუპატიურე","დასახიჩრე","დამუქრება","სირ","ყლ*","მოწამლე","დაწვი","წამება","ძალადობა","მშობლები შეგიწყვონ","შეცი","გადაგასვენებ","სიკვდილი","სუიციდი","მოკვლით დაგემუქრები","ტერორი","ბოროტება","გაიხადე","გაშიშვლდი","გარყვნილი","პედო","ინცესტი"];
const textarea = document.getElementById("message");
if (!textarea) return; // თუ ტექსტარეა არ არსებობს, არაფერს ვაკეთებთ
// ფუნქცია ამოწმებს შეიცავს თუ არა ტექსტი აკრძალულ სიტყვას
const checkBadWords = t => badWords.some(w => new RegExp(w.replace(/\*/g,".*"),"i").test(t));
// პირველივე დაკლიკებაზე ამოაგდებს გაფრთხილების ფანჯარას warn=true
textarea.addEventListener("click", () => {
if (!textarea.value.trim() && !sessionStorage.getItem("rulesClosed")) {
openRulesModal(null, true); // ყოველთვის გაფრთხილებით
}
});
// აკრძალულ სიტყვაზე რეაგირება – ტექსტს წაშლის და დაბლოკავს შეყვანას
textarea.addEventListener("keyup", function() {
if (checkBadWords(this.value.toLowerCase())) {
this.value = ""; // ტექსტი იშლება
this.disabled = true; // დროებით ბლოკავს ველს
openRulesModal(() => { // მოდალის დახურვის შემდეგ ველი ისევ ჩართულია
this.disabled = false;
this.focus();
}, true);
}
});
// მოდალის (გაფრთხილების ფანჯრის) გახსნის ფუნქცია
function openRulesModal(cb, warn=false) {
if (document.getElementById("rulesModal")) return; // თუ უკვე გახსნილია, არაფერს ვაკეთებთ
const modal = document.createElement("div");
Object.assign(modal.style,{
position:"fixed",top:0,left:0,width:"100%",height:"100%",
background:"rgba(0,0,0,0.5)",display:"flex",
justifyContent:"center",alignItems:"center",zIndex:9999
});
modal.id="rulesModal";
const box=document.createElement("div");
Object.assign(box.style,{
background:"#fff",overflow:"hidden",width:"420px",
fontFamily:"sans-serif",boxShadow:"0 4px 12px rgba(0,0,0,0.3)",
borderRadius:"6px"
});
// მოდალის თავსართი
const header=document.createElement("div");
Object.assign(header.style,{
background:"#1a1a1a",color:"#fff",padding:"10px",
display:"flex",justifyContent:"space-between",alignItems:"center",
fontWeight:"bold"
});
header.textContent="დაფიქსირებული აკრძალული ტექსტი";
// დახურვის ღილაკი
const closeBtn=document.createElement("button");
closeBtn.textContent="დახურვა";
Object.assign(closeBtn.style,{
background:"#c00",color:"#fff",border:"none",
padding:"5px 10px",cursor:"pointer",
borderRadius:"4px",fontWeight:"bold",transition:"background .2s"
});
closeBtn.onmouseenter=()=>closeBtn.style.background="#900";
closeBtn.onmouseleave=()=>closeBtn.style.background="#c00";
header.appendChild(closeBtn);
box.appendChild(header);
// მოდალის ძირითადი კონტენტი
const content=document.createElement("div");
Object.assign(content.style,{padding:"15px",fontSize:"13px",color:"#ff0000"});
// გაფრთხილების ბლოკი ყოველთვის ჩნდება warn=true-ზე
if(warn){
const w=document.createElement("div");
Object.assign(w.style,{
background:"#ffe6e6",color:"#c00",fontWeight:"bold",
border:"1px solid #c00",padding:"8px",marginBottom:"10px",
fontSize:"11px",textAlign:"center",borderRadius:"4px"
});
w.textContent="⚠️ აკრძალული ტექსტი აღმოჩენილია – წერა დაბლოკილია!";
content.appendChild(w);
const hr=document.createElement("div");
Object.assign(hr.style,{height:"1px",background:"#ccc",margin:"10px 0"});
content.appendChild(hr);
}
// წესების ჩამონათვალი
const list=document.createElement("ul");
Object.assign(list.style,{listStyle:"none",padding:0,margin:0});
[
"❌ 1. არ გამოიყენოთ შეურაცხმყოფელი სიტყვები",
"❌ 2. არ დაწეროთ სპამი ან რეკლამა",
"❌ 3. არ გაავრცელოთ ვირუსები/ფიშინგი",
"❌ 4. არ დადგათ მუქარა ან ძალადობის მოწოდება",
"❌ 5. დაიცავით თემატიკა და პატივი ეცით სხვებს"
].forEach(t=>{
const li=document.createElement("li");
li.textContent=t;
li.style.margin="4px 0";
list.appendChild(li);
});
content.appendChild(list);
box.appendChild(content);
modal.appendChild(box);
document.body.appendChild(modal);
// მოდალის დახურვის ფუნქცია
function closeModal(){
modal.remove();
sessionStorage.setItem("rulesClosed","true"); // ინახავს რომ გაფრთხილება დახურულია
if(typeof cb==="function") cb();
}
closeBtn.onclick=closeModal;
modal.onclick=e=>{if(e.target===modal) closeModal();}
}
});
</script>