joermd commited on
Commit
510db31
·
verified ·
1 Parent(s): 5c477bd

Update reg.html

Browse files
Files changed (1) hide show
  1. reg.html +53 -100
reg.html CHANGED
@@ -4,10 +4,10 @@
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
  <title>المنصة القانونية الذكية - وإنشاء العقود</title>
7
- <!-- ربط مكتبات Tailwind وFont Awesome -->
8
  <link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet" />
9
  <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet" />
10
- <!-- ربط مكتبة jsPDF لتحويل النص إلى PDF -->
11
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
12
  <style>
13
  @import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700&display=swap");
@@ -18,14 +18,12 @@
18
  --background-light: #f8fafc;
19
  --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
20
  }
21
-
22
  body {
23
  font-family: "Tajawal", sans-serif;
24
  background: var(--background-light);
25
  margin: 0;
26
  padding-bottom: 60px; /* مساحة للتذييل */
27
  }
28
-
29
  /* الشريط الجانبي */
30
  .sidebar {
31
  background: white;
@@ -73,7 +71,7 @@
73
  }
74
  .feature-card:hover {
75
  transform: translateY(-4px);
76
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
77
  }
78
  .action-button {
79
  background: var(--primary-color);
@@ -119,7 +117,7 @@
119
  max-height: 400px;
120
  overflow-y: auto;
121
  }
122
- /* تنسيق مميز لنتائج خريطة التفكير */
123
  .mind-map-output {
124
  background: linear-gradient(135deg, #e0f7fa, #b2ebf2);
125
  padding: 1rem;
@@ -127,7 +125,7 @@
127
  border-radius: 1rem;
128
  font-size: 1.1rem;
129
  }
130
- /* تنسيق قسم إنشاء العقود */
131
  .split-screen {
132
  display: grid;
133
  grid-template-columns: 1fr 1fr;
@@ -191,7 +189,7 @@
191
  border-bottom: 2px solid #e5e7eb;
192
  font-weight: 600;
193
  }
194
- /* تحسين التنسيق على الأجهزة المحمولة */
195
  @media (max-width: 768px) {
196
  .sidebar { transform: translateX(100%); }
197
  .sidebar.open { transform: translateX(0); }
@@ -201,7 +199,7 @@
201
  </style>
202
  </head>
203
  <body>
204
- <!-- زر إظهار/إخفاء الشريط الجانبي -->
205
  <button id="sidebarToggle" class="fixed top-4 right-4 z-50 p-2 rounded-lg bg-white shadow-lg md:hidden">
206
  <i class="fas fa-bars text-xl"></i>
207
  </button>
@@ -210,7 +208,6 @@
210
  <aside class="sidebar">
211
  <div class="p-6">
212
  <div class="flex items-center gap-4 mb-8">
213
- <!-- استخدام الصورة المطلوبة كشعار -->
214
  <img src="https://ufastpro.com/wp-content/uploads/2025/02/تصميم-بدون-عنوان.png" alt="شعار المنصة" class="w-12 h-12 rounded-full" />
215
  <div>
216
  <h1 class="text-xl font-bold text-gray-800">المنصة القانونية</h1>
@@ -218,6 +215,7 @@
218
  </div>
219
  </div>
220
  <nav class="space-y-1">
 
221
  <div class="nav-link active" data-section="home">
222
  <i class="fas fa-home ml-3"></i>
223
  <span>الرئيسية</span>
@@ -262,75 +260,42 @@
262
  <main class="main-content">
263
  <!-- بحث عالمي -->
264
  <div class="search-container mb-6 relative">
265
- <input type="text" class="search-input w-full p-3 rounded border" placeholder="ابحث في المنصة..." id="globalSearch" />
266
  <i class="fas fa-search absolute top-1/2 right-4 transform -translate-y-1/2 text-gray-400"></i>
267
  </div>
268
 
269
  <!-- قسم الرئيسية -->
270
  <section id="home" class="section">
271
  <h2 class="text-3xl font-bold text-gray-800 mb-8">الخدمات القانونية</h2>
272
- <!-- أول مجموعة (الخدمات الأساسية) -->
273
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
 
274
  <div class="feature-card p-6">
275
  <div class="text-center">
276
  <i class="fas fa-balance-scale text-3xl mb-4 text-blue-600"></i>
277
  <h3 class="text-xl font-bold text-gray-800 mb-3">التحليل القانوني</h3>
278
- <p class="text-gray-600 mb-4">
279
- تحليل متكامل للقضايا والمستندات القانونية باستخدام الذكاء الاصطناعي.
280
- </p>
281
  <button class="action-button" onclick="showSection('analysis')">ابدأ التحليل</button>
282
  </div>
283
  </div>
 
284
  <div class="feature-card p-6">
285
  <div class="text-center">
286
  <i class="fas fa-project-diagram text-3xl mb-4 text-blue-600"></i>
287
  <h3 class="text-xl font-bold text-gray-800 mb-3">خريطة التفكير</h3>
288
- <p class="text-gray-600 mb-4">
289
- نظم قضية بشكل إبداعي باستخدام خطوات منهجية قوية.
290
- </p>
291
  <button class="action-button" onclick="showSection('mindMap')">إنشاء خريطة التفكير</button>
292
  </div>
293
  </div>
 
294
  <div class="feature-card p-6">
295
  <div class="text-center">
296
  <i class="fas fa-search text-3xl mb-4 text-blue-600"></i>
297
  <h3 class="text-xl font-bold text-gray-800 mb-3">البحث القانوني</h3>
298
- <p class="text-gray-600 mb-4">
299
- ابحث عن معلومات قانونية مع برومبت ثابت يشمل منصات: منصة1، منصة2، منصة3.
300
- </p>
301
  <button class="action-button" onclick="showSection('search')">ابدأ البحث</button>
302
  </div>
303
  </div>
304
- <div class="feature-card p-6">
305
- <div class="text-center">
306
- <i class="fas fa-file-alt text-3xl mb-4 text-blue-600"></i>
307
- <h3 class="text-xl font-bold text-gray-800 mb-3">المستندات</h3>
308
- <p class="text-gray-600 mb-4">
309
- أنشئ وحرر المستندات القانونية بسهولة.
310
- </p>
311
- <button class="action-button" onclick="showSection('documents')">إنشاء مستند</button>
312
- </div>
313
- </div>
314
- <div class="feature-card p-6">
315
- <div class="text-center">
316
- <i class="fas fa-language text-3xl mb-4 text-blue-600"></i>
317
- <h3 class="text-xl font-bold text-gray-800 mb-3">الترجمة القانونية</h3>
318
- <p class="text-gray-600 mb-4">
319
- ترجمة احترافية للوثائق القانونية مع إمكانية التنزيل كملف PDF.
320
- </p>
321
- <button class="action-button" onclick="showSection('translation')">ترجمة</button>
322
- </div>
323
- </div>
324
- <div class="feature-card p-6">
325
- <div class="text-center">
326
- <i class="fas fa-comments text-3xl mb-4 text-blue-600"></i>
327
- <h3 class="text-xl font-bold text-gray-800 mb-3">استشارة قانونية</h3>
328
- <p class="text-gray-600 mb-4">
329
- احصل على استشارة قانونية فورية من الخبراء.
330
- </p>
331
- <button class="action-button" onclick="showSection('consultation')">استشر الآن</button>
332
- </div>
333
- </div>
334
  </div>
335
  <!-- مجموعة الخدمات الإضافية -->
336
  <div class="mt-8">
@@ -358,8 +323,8 @@
358
  <div class="feature-card p-6">
359
  <div class="text-center">
360
  <i class="fas fa-newspaper text-3xl mb-4 text-blue-600"></i>
361
- <h3 class="text-xl font-bold text-gray-800 mb-3">آخر التحديثات القانونية في مصر</h3>
362
- <p class="text-gray-600 mb-4">تابع أحدث الأخبار القانونية.</p>
363
  <button class="action-button" onclick="showSection('latestUpdates')">آخر التحديثات</button>
364
  </div>
365
  </div>
@@ -398,7 +363,7 @@
398
  <section id="mindMap" class="section hidden">
399
  <h2 class="text-3xl font-bold text-gray-800 mb-4">خريطة التفكير القانونية</h2>
400
  <p class="mb-4 text-gray-700">
401
- أدخل الأفكار والخيوط المتعددة لتنظيم القضية بطريقة إبداعية باستخدام منهجيات قوية مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية. ساعد نفسك على التفكير مع النموذج.
402
  </p>
403
  <div id="mindMapFields">
404
  <div class="mb-4">
@@ -430,7 +395,7 @@
430
  </div>
431
  </section>
432
 
433
- <!-- قسم آخر التحديثات القانونية في مصر -->
434
  <section id="latestUpdates" class="section hidden">
435
  <h2 class="text-3xl font-bold text-gray-800 mb-8">آخر التحديثات القانونية في مصر</h2>
436
  <div class="input-group bg-white rounded p-6 shadow">
@@ -525,16 +490,16 @@
525
  </main>
526
 
527
  <!-- تذييل الصفحة -->
528
- <footer class="text-center py-4 text-gray-600 fixed bottom-0 left-0 w-full bg-white border-t">
529
  © Copyright 2025・<span class="font-bold">FASTPRO</span>・All rights reserved.
530
  </footer>
531
 
532
  <!-- سكربتات الموقع -->
533
  <script>
534
- // استخدام API كما كان سابقاً
535
  const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
536
 
537
- // دالة الحصول على البادئة (prompt prefix) بناءً على القسم
538
  function getPromptPrefix(section) {
539
  switch(section) {
540
  case 'analysis':
@@ -550,21 +515,21 @@
550
  case 'consultation':
551
  return 'أحتاج استشارة قانونية في الموضوع التالي: ';
552
  case 'precedents':
553
- // سيتم التعامل مع حالة المقارنة في handleSubmit
554
  return '';
555
  default:
556
  return '';
557
  }
558
  }
559
 
560
- // تفعيل التنقل بين الأقسام
561
  document.querySelectorAll(".nav-link").forEach(link => {
562
  link.addEventListener("click", (e) => {
563
  e.preventDefault();
564
  const section = e.currentTarget.getAttribute("data-section");
565
  if(section) {
566
  showSection(section);
567
- // إخفاء الشريط الجانبي على الأجهزة المحمولة
568
  if(window.innerWidth < 768) {
569
  document.querySelector(".sidebar").classList.remove("open");
570
  }
@@ -579,7 +544,7 @@
579
  document.getElementById(sectionId).classList.remove("hidden");
580
  document.querySelectorAll(".nav-link").forEach(link => {
581
  link.classList.remove("active");
582
- if (link.getAttribute("data-section") === sectionId) {
583
  link.classList.add("active");
584
  }
585
  });
@@ -590,28 +555,25 @@
590
  document.querySelector(".sidebar").classList.toggle("open");
591
  });
592
 
593
- // تحسين تأثير التركيز على حقول الإدخال
594
- document.querySelectorAll("input, textarea").forEach(element => {
595
- element.addEventListener("focus", function() {
596
  const group = this.closest(".input-group");
597
  if(group) group.classList.add("focused");
598
  this.style.transform = 'translateY(-2px)';
599
  });
600
-
601
- element.addEventListener("blur", function() {
602
  const group = this.closest(".input-group");
603
  if(group) group.classList.remove("focused");
604
  this.style.transform = 'translateY(0)';
605
  });
606
  });
607
 
608
- // دالة إرسال الطلبات العامة لجميع الأقسام باستخدام API الموحد
609
  async function handleSubmit(section) {
610
  const container = document.getElementById(section);
611
  let payload = { message: "", history: [] };
612
  let resultDiv = container.querySelector(".response-container");
613
-
614
- // حالة خاصة لقسم المقارنة (precedents)
615
  if(section === "precedents") {
616
  const textareas = container.querySelectorAll("textarea");
617
  if(textareas.length < 2) {
@@ -626,7 +588,6 @@
626
  }
627
  payload.message = "قم بمقارنة النصين القانونيين التاليين:\nالنص الأول: " + text1 + "\nالنص الثاني: " + text2;
628
  } else {
629
- // باقي الأقسام
630
  const textarea = container.querySelector("textarea");
631
  const text = textarea.value.trim();
632
  if(!text) {
@@ -635,7 +596,6 @@
635
  }
636
  payload.message = getPromptPrefix(section) + text;
637
  }
638
-
639
  try {
640
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
641
  const response = await fetch(API_URL, {
@@ -648,24 +608,24 @@
648
  }
649
  const data = await response.json();
650
  resultDiv.innerHTML = data.response || "";
651
- } catch (error) {
652
  console.error("Error:", error);
653
  resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
654
  }
655
  }
656
 
657
- // وظيفة زر النسخ في قسم إنشاء العقود
658
  document.getElementById("copyButton").addEventListener("click", async function() {
659
  const contractText = document.getElementById("contractOutput").innerText;
660
  try {
661
  await navigator.clipboard.writeText(contractText);
662
  showSuccessMessage("تم نسخ العقد بنجاح!");
663
- } catch (err) {
664
  console.error("فشل نسخ النص:", err);
665
  }
666
  });
667
 
668
- // وظيفة إظهار رسالة النجاح عند النسخ
669
  function showSuccessMessage(message) {
670
  const successMessage = document.createElement("div");
671
  successMessage.className = "success-message";
@@ -677,7 +637,7 @@
677
  }, 2000);
678
  }
679
 
680
- // التحقق من صحة الرقم القومي للطرف الأول والثاني
681
  document.querySelectorAll("#firstPartyID, #secondPartyID").forEach(input => {
682
  input.addEventListener("input", function() {
683
  this.value = this.value.replace(/[^0-9]/g, '');
@@ -687,7 +647,7 @@
687
  });
688
  });
689
 
690
- // دالة الحصول على تسمية الحقل لعرضها في رسائل الخطأ
691
  function getFieldLabel(field) {
692
  const labels = {
693
  contractTitle: 'عنوان العقد',
@@ -708,7 +668,7 @@
708
  return labels[field] || field;
709
  }
710
 
711
- // وظيفة زر إنشاء العقد
712
  document.getElementById("generateButton").addEventListener("click", async function() {
713
  const button = this;
714
  const outputDiv = document.getElementById("contractOutput");
@@ -749,11 +709,7 @@
749
  `;
750
  try {
751
  const dateObj = new Date(formData.contractDate);
752
- const arabicDate = new Intl.DateTimeFormat('ar-EG', {
753
- year: 'numeric',
754
- month: 'long',
755
- day: 'numeric'
756
- }).format(dateObj);
757
  const prompt = `قم بإنشاء عقد قانوني مصري رسمي باللغة العربية يتضمن البيانات التالية:
758
 
759
  عنوان العقد: ${formData.contractTitle}
@@ -797,8 +753,7 @@ ${formData.contractTerms}
797
  } catch(error) {
798
  outputDiv.innerHTML = `
799
  <div class="text-red-600 font-bold">
800
- عذراً، حدث خطأ في إنشاء العقد. يرجى المحاولة مرة أخرى.
801
- <br>
802
  تفاصيل الخطأ: ${error.message}
803
  </div>
804
  `;
@@ -809,12 +764,12 @@ ${formData.contractTerms}
809
  }
810
  }
811
 
812
- // وظيفة تنزيل الترجمة كملف PDF (باستخدام مكتبة jsPDF)
813
  document.getElementById("downloadPDFButton").addEventListener("click", function() {
814
  const { jsPDF } = window.jspdf;
815
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
816
  const content = document.getElementById("translationResult").innerText;
817
- if(!content.trim()) {
818
  alert("لا يوجد نص للترجمة لتنزيله");
819
  return;
820
  }
@@ -823,12 +778,12 @@ ${formData.contractTerms}
823
  doc.save("translation.pdf");
824
  });
825
 
826
- // وظيفة تنزيل التحليل كملف PDF (باستخدام مكتبة jsPDF)
827
  document.getElementById("downloadAnalysisPDFButton").addEventListener("click", function() {
828
  const { jsPDF } = window.jspdf;
829
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
830
  const content = document.getElementById("analysisResult").innerText;
831
- if(!content.trim()) {
832
  alert("لا يوجد نص للتحليل لتنزيله");
833
  return;
834
  }
@@ -837,7 +792,7 @@ ${formData.contractTerms}
837
  doc.save("analysis.pdf");
838
  });
839
 
840
- // وظيفة إضافة حقل جديد في قسم خريطة التفكير
841
  document.getElementById("addMindMapField").addEventListener("click", function() {
842
  const container = document.getElementById("mindMapFields");
843
  const newFieldDiv = document.createElement("div");
@@ -847,23 +802,23 @@ ${formData.contractTerms}
847
  container.appendChild(newFieldDiv);
848
  });
849
 
850
- // وظيفة إنشاء خريطة التفكير باستخدام الحقول المتعددة
851
  function handleMindMap() {
852
  const inputs = document.querySelectorAll("#mindMapFields input");
853
  let collectedText = "";
854
  inputs.forEach((input, index) => {
855
  const value = input.value.trim();
856
- if(value) {
857
- collectedText += `الخيط ${index + 1}: ${value}\n`;
858
  }
859
  });
860
- if(!collectedText.trim()) {
861
  alert("الرجاء إدخال بعض الأفكار لإنشاء خريطة التفكير");
862
  return;
863
  }
864
  const resultDiv = document.getElementById("mindMapResult");
865
  const prompt = getPromptPrefix("mindMap") + "\n" + collectedText +
866
- "\nاستخدم منهجيات قوية مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية مع النظر في البدائل القانونية لتنظيم القضية بشكل احترافي.";
867
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
868
  fetch(API_URL, {
869
  method: "POST",
@@ -871,16 +826,14 @@ ${formData.contractTerms}
871
  body: JSON.stringify({ message: prompt, history: [] })
872
  })
873
  .then(response => response.json())
874
- .then(data => {
875
- resultDiv.innerHTML = data.response || "";
876
- })
877
  .catch(error => {
878
  console.error("Error:", error);
879
  resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
880
  });
881
  }
882
 
883
- // وظيفة جلب آخر التحديثات القانونية (محاكاة)
884
  function fetchLatestUpdates() {
885
  const resultDiv = document.getElementById("latestUpdatesResult");
886
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
 
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
  <title>المنصة القانونية الذكية - وإنشاء العقود</title>
7
+ <!-- تحميل Tailwind CSS وFont Awesome -->
8
  <link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet" />
9
  <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet" />
10
+ <!-- تحميل مكتبة jsPDF -->
11
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
12
  <style>
13
  @import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700&display=swap");
 
18
  --background-light: #f8fafc;
19
  --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
20
  }
 
21
  body {
22
  font-family: "Tajawal", sans-serif;
23
  background: var(--background-light);
24
  margin: 0;
25
  padding-bottom: 60px; /* مساحة للتذييل */
26
  }
 
27
  /* الشريط الجانبي */
28
  .sidebar {
29
  background: white;
 
71
  }
72
  .feature-card:hover {
73
  transform: translateY(-4px);
74
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
75
  }
76
  .action-button {
77
  background: var(--primary-color);
 
117
  max-height: 400px;
118
  overflow-y: auto;
119
  }
120
+ /* تنسيق نتائج خريطة التفكير */
121
  .mind-map-output {
122
  background: linear-gradient(135deg, #e0f7fa, #b2ebf2);
123
  padding: 1rem;
 
125
  border-radius: 1rem;
126
  font-size: 1.1rem;
127
  }
128
+ /* تخطيط قسم إنشاء العقود */
129
  .split-screen {
130
  display: grid;
131
  grid-template-columns: 1fr 1fr;
 
189
  border-bottom: 2px solid #e5e7eb;
190
  font-weight: 600;
191
  }
192
+ /* تحسين العرض على الأجهزة المحمولة */
193
  @media (max-width: 768px) {
194
  .sidebar { transform: translateX(100%); }
195
  .sidebar.open { transform: translateX(0); }
 
199
  </style>
200
  </head>
201
  <body>
202
+ <!-- زر القائمة (على الهاتف) -->
203
  <button id="sidebarToggle" class="fixed top-4 right-4 z-50 p-2 rounded-lg bg-white shadow-lg md:hidden">
204
  <i class="fas fa-bars text-xl"></i>
205
  </button>
 
208
  <aside class="sidebar">
209
  <div class="p-6">
210
  <div class="flex items-center gap-4 mb-8">
 
211
  <img src="https://ufastpro.com/wp-content/uploads/2025/02/تصميم-بدون-عنوان.png" alt="شعار المنصة" class="w-12 h-12 rounded-full" />
212
  <div>
213
  <h1 class="text-xl font-bold text-gray-800">المنصة القانونية</h1>
 
215
  </div>
216
  </div>
217
  <nav class="space-y-1">
218
+ <!-- استخدام div مع data-section؛ ستعمل الدالة المضافة -->
219
  <div class="nav-link active" data-section="home">
220
  <i class="fas fa-home ml-3"></i>
221
  <span>الرئيسية</span>
 
260
  <main class="main-content">
261
  <!-- بحث عالمي -->
262
  <div class="search-container mb-6 relative">
263
+ <input type="text" id="globalSearch" class="search-input w-full p-3 rounded border" placeholder="ابحث في المنصة..." />
264
  <i class="fas fa-search absolute top-1/2 right-4 transform -translate-y-1/2 text-gray-400"></i>
265
  </div>
266
 
267
  <!-- قسم الرئيسية -->
268
  <section id="home" class="section">
269
  <h2 class="text-3xl font-bold text-gray-800 mb-8">الخدمات القانونية</h2>
270
+ <!-- مجموعة الخدمات الأساسية -->
271
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
272
+ <!-- التحليل القانوني -->
273
  <div class="feature-card p-6">
274
  <div class="text-center">
275
  <i class="fas fa-balance-scale text-3xl mb-4 text-blue-600"></i>
276
  <h3 class="text-xl font-bold text-gray-800 mb-3">التحليل القانوني</h3>
277
+ <p class="text-gray-600 mb-4">تحليل متكامل للقضايا والمستندات باست��دام الذكاء الاصطناعي.</p>
 
 
278
  <button class="action-button" onclick="showSection('analysis')">ابدأ التحليل</button>
279
  </div>
280
  </div>
281
+ <!-- خريطة التفكير -->
282
  <div class="feature-card p-6">
283
  <div class="text-center">
284
  <i class="fas fa-project-diagram text-3xl mb-4 text-blue-600"></i>
285
  <h3 class="text-xl font-bold text-gray-800 mb-3">خريطة التفكير</h3>
286
+ <p class="text-gray-600 mb-4">نظم قضية بشكل إبداعي باستخدام خطوات منهجية قوية.</p>
 
 
287
  <button class="action-button" onclick="showSection('mindMap')">إنشاء خريطة التفكير</button>
288
  </div>
289
  </div>
290
+ <!-- البحث القانوني -->
291
  <div class="feature-card p-6">
292
  <div class="text-center">
293
  <i class="fas fa-search text-3xl mb-4 text-blue-600"></i>
294
  <h3 class="text-xl font-bold text-gray-800 mb-3">البحث القانوني</h3>
295
+ <p class="text-gray-600 mb-4">ابحث عن معلومات قانونية باستخدام برومبت ثابت يشمل منصات: منصة1، منصة2، منصة3.</p>
 
 
296
  <button class="action-button" onclick="showSection('search')">ابدأ البحث</button>
297
  </div>
298
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  </div>
300
  <!-- مجموعة الخدمات الإضافية -->
301
  <div class="mt-8">
 
323
  <div class="feature-card p-6">
324
  <div class="text-center">
325
  <i class="fas fa-newspaper text-3xl mb-4 text-blue-600"></i>
326
+ <h3 class="text-xl font-bold text-gray-800 mb-3">آخر التحديثات القانونية</h3>
327
+ <p class="text-gray-600 mb-4">تابع أحدث الأخبار القانونية في مصر.</p>
328
  <button class="action-button" onclick="showSection('latestUpdates')">آخر التحديثات</button>
329
  </div>
330
  </div>
 
363
  <section id="mindMap" class="section hidden">
364
  <h2 class="text-3xl font-bold text-gray-800 mb-4">خريطة التفكير القانونية</h2>
365
  <p class="mb-4 text-gray-700">
366
+ أدخل الأفكار والخيوط المتعددة لتنظيم القضية بطريقة إبداعية باستخدام منهجيات مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية. ساعد نفسك على التفكير بعمق مع النموذج.
367
  </p>
368
  <div id="mindMapFields">
369
  <div class="mb-4">
 
395
  </div>
396
  </section>
397
 
398
+ <!-- قسم آخر التحديثات القانونية -->
399
  <section id="latestUpdates" class="section hidden">
400
  <h2 class="text-3xl font-bold text-gray-800 mb-8">آخر التحديثات القانونية في مصر</h2>
401
  <div class="input-group bg-white rounded p-6 shadow">
 
490
  </main>
491
 
492
  <!-- تذييل الصفحة -->
493
+ <footer class="fixed bottom-0 left-0 w-full bg-white border-t text-center py-4 text-gray-600">
494
  © Copyright 2025・<span class="font-bold">FASTPRO</span>・All rights reserved.
495
  </footer>
496
 
497
  <!-- سكربتات الموقع -->
498
  <script>
499
+ // تأكد من أن عنوان API صالح؛ إذا لم يكن متاحاً ستظهر أخطاء في وحدة التحكم.
500
  const API_URL = 'https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/chat';
501
 
502
+ // دالة للحصول على البرومبت بناءً على القسم
503
  function getPromptPrefix(section) {
504
  switch(section) {
505
  case 'analysis':
 
515
  case 'consultation':
516
  return 'أحتاج استشارة قانونية في الموضوع التالي: ';
517
  case 'precedents':
518
+ // في حالة المقارنة سيتم تجميع النصين من textarea
519
  return '';
520
  default:
521
  return '';
522
  }
523
  }
524
 
525
+ // تفعيل النقر على عناصر القائمة (nav-link)
526
  document.querySelectorAll(".nav-link").forEach(link => {
527
  link.addEventListener("click", (e) => {
528
  e.preventDefault();
529
  const section = e.currentTarget.getAttribute("data-section");
530
  if(section) {
531
  showSection(section);
532
+ // إخفاء القائمة على الأجهزة المحمولة
533
  if(window.innerWidth < 768) {
534
  document.querySelector(".sidebar").classList.remove("open");
535
  }
 
544
  document.getElementById(sectionId).classList.remove("hidden");
545
  document.querySelectorAll(".nav-link").forEach(link => {
546
  link.classList.remove("active");
547
+ if(link.getAttribute("data-section") === sectionId) {
548
  link.classList.add("active");
549
  }
550
  });
 
555
  document.querySelector(".sidebar").classList.toggle("open");
556
  });
557
 
558
+ // تأثير التركيز على حقول الإدخال
559
+ document.querySelectorAll("input, textarea").forEach(el => {
560
+ el.addEventListener("focus", function() {
561
  const group = this.closest(".input-group");
562
  if(group) group.classList.add("focused");
563
  this.style.transform = 'translateY(-2px)';
564
  });
565
+ el.addEventListener("blur", function() {
 
566
  const group = this.closest(".input-group");
567
  if(group) group.classList.remove("focused");
568
  this.style.transform = 'translateY(0)';
569
  });
570
  });
571
 
572
+ // دالة إرسال الطلبات (وتتعامل مع حالة المقارنة في قسم "precedents")
573
  async function handleSubmit(section) {
574
  const container = document.getElementById(section);
575
  let payload = { message: "", history: [] };
576
  let resultDiv = container.querySelector(".response-container");
 
 
577
  if(section === "precedents") {
578
  const textareas = container.querySelectorAll("textarea");
579
  if(textareas.length < 2) {
 
588
  }
589
  payload.message = "قم بمقارنة النصين القانونيين التاليين:\nالنص الأول: " + text1 + "\nالنص الثاني: " + text2;
590
  } else {
 
591
  const textarea = container.querySelector("textarea");
592
  const text = textarea.value.trim();
593
  if(!text) {
 
596
  }
597
  payload.message = getPromptPrefix(section) + text;
598
  }
 
599
  try {
600
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
601
  const response = await fetch(API_URL, {
 
608
  }
609
  const data = await response.json();
610
  resultDiv.innerHTML = data.response || "";
611
+ } catch(error) {
612
  console.error("Error:", error);
613
  resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
614
  }
615
  }
616
 
617
+ // زر النسخ في قسم العقود
618
  document.getElementById("copyButton").addEventListener("click", async function() {
619
  const contractText = document.getElementById("contractOutput").innerText;
620
  try {
621
  await navigator.clipboard.writeText(contractText);
622
  showSuccessMessage("تم نسخ العقد بنجاح!");
623
+ } catch(err) {
624
  console.error("فشل نسخ النص:", err);
625
  }
626
  });
627
 
628
+ // إظهار رسالة نجاح النسخ
629
  function showSuccessMessage(message) {
630
  const successMessage = document.createElement("div");
631
  successMessage.className = "success-message";
 
637
  }, 2000);
638
  }
639
 
640
+ // التحقق من الرقم القومي
641
  document.querySelectorAll("#firstPartyID, #secondPartyID").forEach(input => {
642
  input.addEventListener("input", function() {
643
  this.value = this.value.replace(/[^0-9]/g, '');
 
647
  });
648
  });
649
 
650
+ // دالة الحصول على تسمية الحقل (لعرض رسائل الخطأ)
651
  function getFieldLabel(field) {
652
  const labels = {
653
  contractTitle: 'عنوان العقد',
 
668
  return labels[field] || field;
669
  }
670
 
671
+ // دالة إنشاء العقد
672
  document.getElementById("generateButton").addEventListener("click", async function() {
673
  const button = this;
674
  const outputDiv = document.getElementById("contractOutput");
 
709
  `;
710
  try {
711
  const dateObj = new Date(formData.contractDate);
712
+ const arabicDate = new Intl.DateTimeFormat('ar-EG', { year: 'numeric', month: 'long', day: 'numeric' }).format(dateObj);
 
 
 
 
713
  const prompt = `قم بإنشاء عقد قانوني مصري رسمي باللغة العربية يتضمن البيانات التالية:
714
 
715
  عنوان العقد: ${formData.contractTitle}
 
753
  } catch(error) {
754
  outputDiv.innerHTML = `
755
  <div class="text-red-600 font-bold">
756
+ عذراً، حدث خطأ في إنشاء العقد. يرجى المحاولة مرة أخرى.<br>
 
757
  تفاصيل الخطأ: ${error.message}
758
  </div>
759
  `;
 
764
  }
765
  }
766
 
767
+ // تنزيل الترجمة كملف PDF
768
  document.getElementById("downloadPDFButton").addEventListener("click", function() {
769
  const { jsPDF } = window.jspdf;
770
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
771
  const content = document.getElementById("translationResult").innerText;
772
+ if(!content.trim()){
773
  alert("لا يوجد نص للترجمة لتنزيله");
774
  return;
775
  }
 
778
  doc.save("translation.pdf");
779
  });
780
 
781
+ // تنزيل التحليل كملف PDF
782
  document.getElementById("downloadAnalysisPDFButton").addEventListener("click", function() {
783
  const { jsPDF } = window.jspdf;
784
  const doc = new jsPDF({ orientation: "portrait", unit: "pt", format: "a4" });
785
  const content = document.getElementById("analysisResult").innerText;
786
+ if(!content.trim()){
787
  alert("لا يوجد نص للتحليل لتنزيله");
788
  return;
789
  }
 
792
  doc.save("analysis.pdf");
793
  });
794
 
795
+ // إضافة حقل جديد في قسم خريطة التفكير
796
  document.getElementById("addMindMapField").addEventListener("click", function() {
797
  const container = document.getElementById("mindMapFields");
798
  const newFieldDiv = document.createElement("div");
 
802
  container.appendChild(newFieldDiv);
803
  });
804
 
805
+ // إنشاء خريطة التفكير باستخدام الحقول المتعددة
806
  function handleMindMap() {
807
  const inputs = document.querySelectorAll("#mindMapFields input");
808
  let collectedText = "";
809
  inputs.forEach((input, index) => {
810
  const value = input.value.trim();
811
+ if(value){
812
+ collectedText += `الخيط ${index+1}: ${value}\n`;
813
  }
814
  });
815
+ if(!collectedText.trim()){
816
  alert("الرجاء إدخال بعض الأفكار لإنشاء خريطة التفكير");
817
  return;
818
  }
819
  const resultDiv = document.getElementById("mindMapResult");
820
  const prompt = getPromptPrefix("mindMap") + "\n" + collectedText +
821
+ "\nاستخدم منهجيات مثل تحليل SWOT و5 خطوات لتحليل الأسباب الجذرية مع النظر في البدائل القانونية لتنظيم القضية بشكل احترافي.";
822
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';
823
  fetch(API_URL, {
824
  method: "POST",
 
826
  body: JSON.stringify({ message: prompt, history: [] })
827
  })
828
  .then(response => response.json())
829
+ .then(data => { resultDiv.innerHTML = data.response || ""; })
 
 
830
  .catch(error => {
831
  console.error("Error:", error);
832
  resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
833
  });
834
  }
835
 
836
+ // محاكاة جلب آخر التحديثات القانونية
837
  function fetchLatestUpdates() {
838
  const resultDiv = document.getElementById("latestUpdatesResult");
839
  resultDiv.innerHTML = '<div class="loading-spinner"></div>';