AnesKAM commited on
Commit
df422cc
·
verified ·
1 Parent(s): 92160e0

Update results.html

Browse files
Files changed (1) hide show
  1. results.html +515 -195
results.html CHANGED
@@ -1,16 +1,15 @@
1
  <!DOCTYPE html>
2
-
3
- <html data-theme="light" dir="rtl" lang="ar"><head>
4
- <meta charset="utf-8"/>
5
- <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
6
- <title>SurfGO | نتائج البحث</title>
7
- <link href="https://fonts.googleapis.com" rel="preconnect"/>
8
- <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&amp;family=Tajawal:wght@300;400;500;700&amp;display=swap" rel="stylesheet"/>
9
- <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" rel="stylesheet"/>
10
- <style>
11
- /* =========================================
12
- 1. نظام الألوان المتطور (SurfGO Theme)
13
- ========================================= */
14
  :root {
15
  --bg-base: #f8fafc;
16
  --bg-nav: rgba(255, 255, 255, 0.85);
@@ -22,7 +21,14 @@
22
  --text-sub: #64748b;
23
  --transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
24
  }
25
- * { margin: 0; padding: 0; box-sizing: border-box; outline: none; }
 
 
 
 
 
 
 
26
  body {
27
  font-family: 'Plus Jakarta Sans', 'Tajawal', sans-serif;
28
  background: var(--bg-base);
@@ -30,72 +36,219 @@
30
  min-height: 100vh;
31
  overflow-x: hidden;
32
  }
 
33
  .orb {
34
- position: fixed; border-radius: 50%; filter: blur(100px); z-index: 0; pointer-events: none; opacity: 0.15;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
- .orb-1 { top: -10%; left: -10%; width: 50vw; height: 50vw; background: var(--accent); }
37
- .orb-2 { bottom: -10%; right: -10%; width: 40vw; height: 40vw; background: var(--accent-2); }
38
-
39
  .navbar {
40
- position: fixed; top: 16px; left: 50%; transform: translateX(-50%);
41
- width: 95%; max-width: 1300px; height: auto; min-height: 72px;
42
- background: var(--bg-nav); backdrop-filter: blur(24px);
43
- border: 1px solid var(--border); border-radius: 20px;
44
- display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
45
- padding: 10px 20px; z-index: 1000; box-shadow: 0 10px 30px rgba(0,0,0,0.05);
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  gap: 15px;
47
  }
48
- .brand { font-weight: 700; font-size: 22px; text-decoration: none; color: var(--text-main); display: flex; align-items: center; gap: 10px; }
49
- .brand-icon { width: 38px; height: 38px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-radius: 11px; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; }
50
- .search-container { flex: 1; max-width: 600px; width: 100%; margin: 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  .search-bar {
52
- display: flex; align-items: center; background: #f1f5f9;
53
- border: 1px solid var(--border); border-radius: 100px; padding: 4px; transition: var(--transition);
 
 
 
 
 
54
  width: 100%;
55
  }
56
- .search-bar:focus-within { border-color: var(--accent); background: #ffffff; box-shadow: 0 0 15px rgba(99,102,241,0.1); }
57
- .search-bar input { flex: 1; background: transparent; border: none; padding: 10px 18px; color: var(--text-main); font-size: 15px; width: 100%; }
58
- .search-bar input::placeholder { color: var(--text-sub); }
59
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  .tabs-bar {
61
- position: fixed; top: 105px; left: 50%; transform: translateX(-50%);
62
- width: 95%; max-width: 1300px; display: flex; gap: 8px; z-index: 999;
63
- overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; /* Firefox */
 
 
 
 
 
 
 
 
 
64
  }
65
- .tabs-bar::-webkit-scrollbar { display: none; /* Safari and Chrome */ }
66
-
 
 
 
67
  .tab-pill {
68
- padding: 8px 16px; border-radius: 100px; background: var(--bg-card);
69
- border: 1px solid var(--border); color: var(--text-sub); font-size: 13px;
70
- cursor: pointer; transition: 0.3s; display: flex; align-items: center; gap: 6px;
71
- box-shadow: 0 2px 10px rgba(0,0,0,0.02); white-space: nowrap;
72
- }
73
- .tab-pill.active { background: var(--accent); color: #fff; border-color: var(--accent); }
74
-
75
- .page-wrapper { max-width: 1300px; margin: 180px auto 50px; padding: 0 16px; display: flex; flex-direction: column; gap: 30px; }
76
- .results-area { min-width: 0; width: 100%; }
77
-
78
- /* =========================================
79
- 2. إخفاء آثار GOOGLE CSE بشكل جذري
80
- ========================================= */
81
- .gsc-control-cse { background: transparent !important; border: none !important; padding: 0 !important; }
82
-
83
- .gsc-result {
84
- background: var(--bg-card) !important; border: 1px solid var(--border) !important;
85
- border-radius: 16px !important; padding: 16px !important; margin-bottom: 15px !important;
86
- transition: var(--transition) !important; box-shadow: 0 4px 20px rgba(0,0,0,0.02) !important;
87
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  @media (min-width: 768px) {
89
- .gsc-result { padding: 22px !important; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
- .gsc-result:hover { border-color: var(--accent) !important; transform: translateX(-5px) !important; background: #f8fafc !important; box-shadow: 0 8px 30px rgba(99,102,241,0.08) !important; }
92
- .gs-title, .gs-title * { color: var(--accent) !important; text-decoration: none !important; font-size: 16px !important; }
93
  @media (min-width: 768px) {
94
- .gs-title, .gs-title * { font-size: 18px !important; }
 
 
 
 
 
 
 
 
 
95
  }
96
- .gs-snippet { color: var(--text-sub) !important; line-height: 1.6 !important; font-size: 14px !important; }
97
-
98
- /* الخيار النووي: إخفاء كل ما يمت لجوجل بصلة بما في ذلك تابات (الكل / صور) */
99
  .gsc-adBlock,
100
  .gsc-branding,
101
  .gsc-search-box,
@@ -111,12 +264,12 @@
111
  .gsc-orderby,
112
  .gsc-selected-option-container,
113
  .gsc-thumbnail-inside,
114
- .gsc-tabsArea, /* يخفي شريط تبويبات جوجل (الكل / صور) */
115
- .gsc-tabsAreaInvisible, /* يخفي المساحة الفارغة للتبويبات */
116
- .gsc-refinementHeader, /* يخفي أدوات التصفية المتقدمة */
117
- .gsc-refinementBlock {
118
- display: none !important;
119
- visibility: hidden !important;
120
  opacity: 0 !important;
121
  height: 0 !important;
122
  width: 0 !important;
@@ -124,125 +277,252 @@
124
  padding: 0 !important;
125
  pointer-events: none !important;
126
  }
127
- .gsc-above-wrapper-area { border: none !important; padding: 0 !important; margin: 0 !important; height: 0 !important; }
128
-
129
- .sidebar { width: 100%; order: 2; margin-top: 20px; }
130
-
131
- .widget { background: var(--bg-card); border: 1px solid var(--border); border-radius: 20px; padding: 20px; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.03); }
132
- .ai-avatar { width: 60px; height: 60px; border-radius: 50%; background: var(--bg-base); border: 2px solid var(--accent); padding: 5px; margin-bottom: 15px; }
133
- .btn-ai { display: block; margin-top: 15px; padding: 12px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; border-radius: 12px; text-decoration: none; font-weight: 600; font-size: 14px; }
134
-
135
- /* Tablet & Desktop Layout Adjustments */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  @media (min-width: 768px) {
137
- .navbar { flex-wrap: nowrap; padding: 0 20px; height: 72px; gap: 0; }
138
- .search-container { margin: 0 24px; }
139
- .tabs-bar { top: 105px; overflow-x: visible; padding-bottom: 0; justify-content: flex-start; }
140
- .tab-pill { padding: 8px 20px; font-size: 13px; gap: 8px; }
141
- .page-wrapper { margin: 180px auto 50px; grid-template-columns: 1fr 300px; display: grid; }
142
- .sidebar { order: unset; margin-top: 0; }
143
- }
144
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  @media (max-width: 767px) {
146
- .navbar { top: 10px; border-radius: 16px; padding: 12px 16px; }
147
- .brand { font-size: 18px; }
148
- .brand-icon { width: 32px; height: 32px; border-radius: 8px; font-size: 14px; }
149
- .tabs-bar { top: 135px; } /* Adjust based on new navbar height */
150
- .page-wrapper { margin-top: 190px; }
151
- }
152
-
153
- /* Collapsible Sidebar on Mobile */
154
- .sidebar-toggle { display: none; width: 100%; background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 15px; text-align: center; font-weight: 600; color: var(--text-main); cursor: pointer; margin-bottom: 15px; box-shadow: 0 2px 10px rgba(0,0,0,0.02); }
155
- .sidebar-content { display: block; }
156
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  @media (max-width: 767px) {
158
- .sidebar-toggle { display: block; }
159
- .sidebar-content { display: none; }
160
- .sidebar-content.active { display: block; }
161
- }
162
-
163
- .gs-favicon { width: 18px; height: 18px; vertical-align: middle; margin-left: 8px; border-radius: 4px; display: inline-block; }
164
- .gs-title { display: flex !important; align-items: center; flex-wrap: wrap; }
165
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  </head>
167
  <body>
168
- <div class="orb orb-1"></div>
169
- <div class="orb orb-2"></div>
170
- <nav class="navbar">
171
- <a class="brand" href="index.html">
172
- <div class="brand-icon"><i class="fa-solid fa-bolt"></i></div>
173
- <span>SurfGO</span>
174
- </a>
175
- <div class="search-container">
176
- <form class="search-bar" id="search-form">
177
- <input id="main-input" placeholder="ابحث في الويب..." type="text"/>
178
- <button style="background:none; border:none; color:var(--accent); cursor:pointer; padding:0 15px;" type="submit">
179
- <i class="fa-solid fa-search"></i>
180
- </button>
181
- </form>
182
- </div>
183
- <div class="hidden md:block" style="width: 40px;"></div>
184
- </nav>
185
- <div class="tabs-bar">
186
- <button class="tab-pill active" data-tab="all"><i class="fa-solid fa-globe"></i> الويب</button>
187
- <button class="tab-pill" data-tab="news"><i class="fa-solid fa-newspaper"></i> أخبار</button>
188
- <button class="tab-pill" data-tab="images"><i class="fa-solid fa-image"></i> صور</button>
189
- <button class="tab-pill" data-tab="videos"><i class="fa-solid fa-play"></i> فيديو</button>
190
- </div>
191
- <div class="page-wrapper">
192
- <main class="results-area">
193
- <div id="loading-text" style="color:var(--text-sub); margin-bottom:20px; font-size: 14px;">جاري استدعاء البيانات من SurfGO...</div>
194
- <div id="results-container"></div>
195
- </main>
196
- <aside class="sidebar">
197
- <button class="sidebar-toggle" id="sidebarToggle">
198
- <i class="fa-solid fa-server" style="margin-left: 8px; color: var(--accent);"></i> المحركات النشطة <i class="fa-solid fa-chevron-down" style="margin-right: 8px; font-size: 12px;"></i>
199
- </button>
200
- <div class="sidebar-content" id="sidebarContent">
201
- <div class="widget">
202
- <div class="brand-icon" style="margin: 0 auto 15px auto;"><i class="fa-solid fa-server"></i></div>
203
- <h3 style="font-size: 16px; margin-bottom: 15px;">المحركات النشطة</h3>
204
- <div style="display: flex; flex-direction: column; gap: 10px; text-align: right;">
205
- <div style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
206
- <span style="font-size: 13px;">SurfGO Index</span>
207
- <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
208
- <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
209
- نشط
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  </div>
211
- </div>
212
- <div style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
213
- <span style="font-size: 13px;">الأخبار العالمية</span>
214
- <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
215
- <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
216
- نشط
 
217
  </div>
218
- </div>
219
- <div style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
220
- <span style="font-size: 13px;">الوسائط المرئية</span>
221
- <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
222
- <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
223
- نشط
 
224
  </div>
225
- </div>
226
- <div style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
227
- <span style="font-size: 13px;">خدمة الفيديو</span>
228
- <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
229
- <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
230
- نشط
 
231
  </div>
232
- </div>
233
- </div>
234
- <p style="font-size: 11px; color: var(--text-sub); margin-top: 15px;">مدعوم بواسطة AnesNT Core</p>
235
- </div>
236
- </div>
237
- </aside>
238
- </div>
239
- <script>
240
  const ENGINES = {
241
- all: '75aa960081baa4f0c',
242
- news: '35b0f5b6012e94f78',
243
  images: '23c7fd94975714dd8',
244
  videos: 'b11f5dceb04784b9f'
245
  };
 
246
  const params = new URLSearchParams(window.location.search);
247
  let query = params.get('q');
248
  let currentTab = params.get('tab') || 'all';
@@ -251,12 +531,12 @@
251
  const loadingText = document.getElementById('loading-text');
252
  const sidebarToggle = document.getElementById('sidebarToggle');
253
  const sidebarContent = document.getElementById('sidebarContent');
254
-
255
- if(sidebarToggle) {
256
  sidebarToggle.addEventListener('click', () => {
257
  sidebarContent.classList.toggle('active');
258
  const icon = sidebarToggle.querySelector('.fa-chevron-down, .fa-chevron-up');
259
- if(sidebarContent.classList.contains('active')) {
260
  icon.classList.remove('fa-chevron-down');
261
  icon.classList.add('fa-chevron-up');
262
  } else {
@@ -265,7 +545,7 @@
265
  }
266
  });
267
  }
268
-
269
  document.querySelectorAll('.tab-pill').forEach(btn => {
270
  btn.classList.toggle('active', btn.dataset.tab === currentTab);
271
  });
@@ -285,8 +565,10 @@
285
  document.querySelectorAll('.tab-pill').forEach(btn => {
286
  btn.classList.toggle('active', btn.dataset.tab === tab);
287
  });
 
288
  const oldScript = document.getElementById('cse-logic');
289
  if (oldScript) oldScript.remove();
 
290
  const script = document.createElement('script');
291
  script.id = 'cse-logic';
292
  script.src = `https://cse.google.com/cse.js?cx=${cx}`;
@@ -296,8 +578,9 @@
296
  gcseDiv.className = 'gcse-searchresults-only';
297
  gcseDiv.setAttribute('data-query', query);
298
  resultsContainer.appendChild(gcseDiv);
299
-
300
- setTimeout(() => { loadingText.style.display = 'none'; }, 1000);
 
301
  };
302
  document.head.appendChild(script);
303
  }
@@ -307,9 +590,10 @@
307
  currentTab = btn.dataset.tab;
308
  const newUrl = `${window.location.pathname}?q=${encodeURIComponent(query || '')}&tab=${currentTab}`;
309
  window.history.pushState({ path: newUrl }, '', newUrl);
310
- if(query) loadSurfEngine(currentTab);
311
  else {
312
- document.querySelectorAll('.tab-pill').forEach(b => b.classList.toggle('active', b.dataset.tab === currentTab));
 
313
  }
314
  });
315
  });
@@ -323,25 +607,61 @@
323
  loadSurfEngine(currentTab);
324
  }
325
  });
326
-
 
 
 
327
  const observer = new MutationObserver((mutations) => {
328
- document.querySelectorAll('.gsc-adBlock, .gcsc-branding, .gsc-result-info, .gsc-tabsArea, .gsc-refinementHeader').forEach(el => el.remove());
329
-
 
 
 
 
330
  document.querySelectorAll('.gsc-result').forEach(result => {
331
  if (result.dataset.faviconAdded) return;
 
332
  const link = result.querySelector('a.gs-title');
333
- if (link && link.href) {
334
- try {
 
 
 
335
  const url = new URL(link.href);
336
- const favicon = document.createElement('img');
337
- favicon.src = `https://www.google.com/s2/favicons?domain=${url.hostname}&sz=32`;
338
- favicon.className = 'gs-favicon';
339
- link.prepend(favicon);
340
- result.dataset.faviconAdded = 'true';
341
- } catch(e) {}
342
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  });
344
  });
 
345
  observer.observe(document.body, { childList: true, subtree: true });
346
  </script>
347
- </body></html>
 
 
1
  <!DOCTYPE html>
2
+ <html data-theme="light" dir="rtl" lang="ar">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport" />
6
+ <title>SurfGO | نتائج البحث</title>
7
+ <link href="https://fonts.googleapis.com" rel="preconnect" />
8
+ <link
9
+ href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&amp;family=Tajawal:wght@300;400;500;700&amp;display=swap"
10
+ rel="stylesheet" />
11
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" rel="stylesheet" />
12
+ <style>
 
13
  :root {
14
  --bg-base: #f8fafc;
15
  --bg-nav: rgba(255, 255, 255, 0.85);
 
21
  --text-sub: #64748b;
22
  --transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
23
  }
24
+
25
+ * {
26
+ margin: 0;
27
+ padding: 0;
28
+ box-sizing: border-box;
29
+ outline: none;
30
+ }
31
+
32
  body {
33
  font-family: 'Plus Jakarta Sans', 'Tajawal', sans-serif;
34
  background: var(--bg-base);
 
36
  min-height: 100vh;
37
  overflow-x: hidden;
38
  }
39
+
40
  .orb {
41
+ position: fixed;
42
+ border-radius: 50%;
43
+ filter: blur(100px);
44
+ z-index: 0;
45
+ pointer-events: none;
46
+ opacity: 0.15;
47
+ }
48
+
49
+ .orb-1 {
50
+ top: -10%;
51
+ left: -10%;
52
+ width: 50vw;
53
+ height: 50vw;
54
+ background: var(--accent);
55
+ }
56
+
57
+ .orb-2 {
58
+ bottom: -10%;
59
+ right: -10%;
60
+ width: 40vw;
61
+ height: 40vw;
62
+ background: var(--accent-2);
63
  }
64
+
 
 
65
  .navbar {
66
+ position: fixed;
67
+ top: 16px;
68
+ left: 50%;
69
+ transform: translateX(-50%);
70
+ width: 95%;
71
+ max-width: 1300px;
72
+ height: auto;
73
+ min-height: 72px;
74
+ background: var(--bg-nav);
75
+ backdrop-filter: blur(24px);
76
+ border: 1px solid var(--border);
77
+ border-radius: 20px;
78
+ display: flex;
79
+ flex-wrap: wrap;
80
+ align-items: center;
81
+ justify-content: space-between;
82
+ padding: 10px 20px;
83
+ z-index: 1000;
84
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
85
  gap: 15px;
86
  }
87
+
88
+ .brand {
89
+ font-weight: 700;
90
+ font-size: 22px;
91
+ text-decoration: none;
92
+ color: var(--text-main);
93
+ display: flex;
94
+ align-items: center;
95
+ gap: 10px;
96
+ }
97
+
98
+ .brand-icon {
99
+ width: 38px;
100
+ height: 38px;
101
+ background: linear-gradient(135deg, var(--accent), var(--accent-2));
102
+ border-radius: 11px;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ color: #fff;
107
+ flex-shrink: 0;
108
+ }
109
+
110
+ .search-container {
111
+ flex: 1;
112
+ max-width: 600px;
113
+ width: 100%;
114
+ margin: 0;
115
+ }
116
+
117
  .search-bar {
118
+ display: flex;
119
+ align-items: center;
120
+ background: #f1f5f9;
121
+ border: 1px solid var(--border);
122
+ border-radius: 100px;
123
+ padding: 4px;
124
+ transition: var(--transition);
125
  width: 100%;
126
  }
127
+
128
+ .search-bar:focus-within {
129
+ border-color: var(--accent);
130
+ background: #ffffff;
131
+ box-shadow: 0 0 15px rgba(99, 102, 241, 0.1);
132
+ }
133
+
134
+ .search-bar input {
135
+ flex: 1;
136
+ background: transparent;
137
+ border: none;
138
+ padding: 10px 18px;
139
+ color: var(--text-main);
140
+ font-size: 15px;
141
+ width: 100%;
142
+ }
143
+
144
+ .search-bar input::placeholder {
145
+ color: var(--text-sub);
146
+ }
147
+
148
  .tabs-bar {
149
+ position: fixed;
150
+ top: 105px;
151
+ left: 50%;
152
+ transform: translateX(-50%);
153
+ width: 95%;
154
+ max-width: 1300px;
155
+ display: flex;
156
+ gap: 8px;
157
+ z-index: 999;
158
+ overflow-x: auto;
159
+ padding-bottom: 5px;
160
+ scrollbar-width: none;
161
  }
162
+
163
+ .tabs-bar::-webkit-scrollbar {
164
+ display: none;
165
+ }
166
+
167
  .tab-pill {
168
+ padding: 8px 16px;
169
+ border-radius: 100px;
170
+ background: var(--bg-card);
171
+ border: 1px solid var(--border);
172
+ color: var(--text-sub);
173
+ font-size: 13px;
174
+ cursor: pointer;
175
+ transition: 0.3s;
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 6px;
179
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02);
180
+ white-space: nowrap;
 
 
 
 
 
 
181
  }
182
+
183
+ .tab-pill.active {
184
+ background: var(--accent);
185
+ color: #fff;
186
+ border-color: var(--accent);
187
+ }
188
+
189
+ .page-wrapper {
190
+ max-width: 1300px;
191
+ margin: 180px auto 50px;
192
+ padding: 0 16px;
193
+ display: flex;
194
+ flex-direction: column;
195
+ gap: 30px;
196
+ }
197
+
198
+ .results-area {
199
+ min-width: 0;
200
+ width: 100%;
201
+ }
202
+
203
+ .gsc-control-cse {
204
+ background: transparent !important;
205
+ border: none !important;
206
+ padding: 0 !important;
207
+ }
208
+
209
+ .gsc-result {
210
+ background: var(--bg-card) !important;
211
+ border: 1px solid var(--border) !important;
212
+ border-radius: 16px !important;
213
+ padding: 16px !important;
214
+ margin-bottom: 15px !important;
215
+ transition: var(--transition) !important;
216
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02) !important;
217
+ }
218
+
219
  @media (min-width: 768px) {
220
+ .gsc-result {
221
+ padding: 22px !important;
222
+ }
223
+ }
224
+
225
+ .gsc-result:hover {
226
+ border-color: var(--accent) !important;
227
+ transform: translateX(-5px) !important;
228
+ background: #f8fafc !important;
229
+ box-shadow: 0 8px 30px rgba(99, 102, 241, 0.08) !important;
230
+ }
231
+
232
+ .gs-title,
233
+ .gs-title * {
234
+ color: var(--accent) !important;
235
+ text-decoration: none !important;
236
+ font-size: 16px !important;
237
  }
238
+
 
239
  @media (min-width: 768px) {
240
+ .gs-title,
241
+ .gs-title * {
242
+ font-size: 18px !important;
243
+ }
244
+ }
245
+
246
+ .gs-snippet {
247
+ color: var(--text-sub) !important;
248
+ line-height: 1.6 !important;
249
+ font-size: 14px !important;
250
  }
251
+
 
 
252
  .gsc-adBlock,
253
  .gsc-branding,
254
  .gsc-search-box,
 
264
  .gsc-orderby,
265
  .gsc-selected-option-container,
266
  .gsc-thumbnail-inside,
267
+ .gsc-tabsArea,
268
+ .gsc-tabsAreaInvisible,
269
+ .gsc-refinementHeader,
270
+ .gsc-refinementBlock {
271
+ display: none !important;
272
+ visibility: hidden !important;
273
  opacity: 0 !important;
274
  height: 0 !important;
275
  width: 0 !important;
 
277
  padding: 0 !important;
278
  pointer-events: none !important;
279
  }
280
+
281
+ .gsc-above-wrapper-area {
282
+ border: none !important;
283
+ padding: 0 !important;
284
+ margin: 0 !important;
285
+ height: 0 !important;
286
+ }
287
+
288
+ .sidebar {
289
+ width: 100%;
290
+ order: 2;
291
+ margin-top: 20px;
292
+ }
293
+
294
+ .widget {
295
+ background: var(--bg-card);
296
+ border: 1px solid var(--border);
297
+ border-radius: 20px;
298
+ padding: 20px;
299
+ text-align: center;
300
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
301
+ }
302
+
303
+ .ai-avatar {
304
+ width: 60px;
305
+ height: 60px;
306
+ border-radius: 50%;
307
+ background: var(--bg-base);
308
+ border: 2px solid var(--accent);
309
+ padding: 5px;
310
+ margin-bottom: 15px;
311
+ }
312
+
313
+ .btn-ai {
314
+ display: block;
315
+ margin-top: 15px;
316
+ padding: 12px;
317
+ background: linear-gradient(135deg, var(--accent), var(--accent-2));
318
+ color: #fff;
319
+ border-radius: 12px;
320
+ text-decoration: none;
321
+ font-weight: 600;
322
+ font-size: 14px;
323
+ }
324
+
325
  @media (min-width: 768px) {
326
+ .navbar {
327
+ flex-wrap: nowrap;
328
+ padding: 0 20px;
329
+ height: 72px;
330
+ gap: 0;
331
+ }
332
+ .search-container {
333
+ margin: 0 24px;
334
+ }
335
+ .tabs-bar {
336
+ top: 105px;
337
+ overflow-x: visible;
338
+ padding-bottom: 0;
339
+ justify-content: flex-start;
340
+ }
341
+ .tab-pill {
342
+ padding: 8px 20px;
343
+ font-size: 13px;
344
+ gap: 8px;
345
+ }
346
+ .page-wrapper {
347
+ margin: 180px auto 50px;
348
+ grid-template-columns: 1fr 300px;
349
+ display: grid;
350
+ }
351
+ .sidebar {
352
+ order: unset;
353
+ margin-top: 0;
354
+ }
355
+ }
356
+
357
  @media (max-width: 767px) {
358
+ .navbar {
359
+ top: 10px;
360
+ border-radius: 16px;
361
+ padding: 12px 16px;
362
+ }
363
+ .brand {
364
+ font-size: 18px;
365
+ }
366
+ .brand-icon {
367
+ width: 32px;
368
+ height: 32px;
369
+ border-radius: 8px;
370
+ font-size: 14px;
371
+ }
372
+ .tabs-bar {
373
+ top: 135px;
374
+ }
375
+ .page-wrapper {
376
+ margin-top: 190px;
377
+ }
378
+ }
379
+
380
+ .sidebar-toggle {
381
+ display: none;
382
+ width: 100%;
383
+ background: var(--bg-card);
384
+ border: 1px solid var(--border);
385
+ border-radius: 16px;
386
+ padding: 15px;
387
+ text-align: center;
388
+ font-weight: 600;
389
+ color: var(--text-main);
390
+ cursor: pointer;
391
+ margin-bottom: 15px;
392
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.02);
393
+ }
394
+
395
+ .sidebar-content {
396
+ display: block;
397
+ }
398
+
399
  @media (max-width: 767px) {
400
+ .sidebar-toggle {
401
+ display: block;
402
+ }
403
+ .sidebar-content {
404
+ display: none;
405
+ }
406
+ .sidebar-content.active {
407
+ display: block;
408
+ }
409
+ }
410
+
411
+ /* تنسيق الفاف ايكون الجديد والمحسن */
412
+ .gs-favicon {
413
+ width: 20px;
414
+ height: 20px;
415
+ vertical-align: middle;
416
+ margin-left: 10px;
417
+ border-radius: 4px;
418
+ display: inline-block;
419
+ flex-shrink: 0;
420
+ object-fit: contain;
421
+ }
422
+
423
+ .gs-title {
424
+ display: flex !important;
425
+ align-items: center;
426
+ flex-wrap: wrap;
427
+ }
428
+ </style>
429
  </head>
430
  <body>
431
+ <div class="orb orb-1"></div>
432
+ <div class="orb orb-2"></div>
433
+
434
+ <nav class="navbar">
435
+ <a class="brand" href="index.html">
436
+ <div class="brand-icon"><i class="fa-solid fa-bolt"></i></div>
437
+ <span>SurfGO</span>
438
+ </a>
439
+ <div class="search-container">
440
+ <form class="search-bar" id="search-form">
441
+ <input id="main-input" placeholder="ابحث في الويب..." type="text" />
442
+ <button
443
+ style="background:none; border:none; color:var(--accent); cursor:pointer; padding:0 15px;"
444
+ type="submit">
445
+ <i class="fa-solid fa-search"></i>
446
+ </button>
447
+ </form>
448
+ </div>
449
+ <div class="hidden md:block" style="width: 40px;"></div>
450
+ </nav>
451
+
452
+ <div class="tabs-bar">
453
+ <button class="tab-pill active" data-tab="all"><i class="fa-solid fa-globe"></i> الويب</button>
454
+ <button class="tab-pill" data-tab="news"><i class="fa-solid fa-newspaper"></i> أخبار</button>
455
+ <button class="tab-pill" data-tab="images"><i class="fa-solid fa-image"></i> صور</button>
456
+ <button class="tab-pill" data-tab="videos"><i class="fa-solid fa-play"></i> فيديو</button>
457
+ </div>
458
+
459
+ <div class="page-wrapper">
460
+ <main class="results-area">
461
+ <div id="loading-text" style="color:var(--text-sub); margin-bottom:20px; font-size: 14px;">
462
+ جاري استدعاء البيانات من SurfGO...
463
+ </div>
464
+ <div id="results-container"></div>
465
+ </main>
466
+
467
+ <aside class="sidebar">
468
+ <button class="sidebar-toggle" id="sidebarToggle">
469
+ <i class="fa-solid fa-server" style="margin-left: 8px; color: var(--accent);"></i> المحركات النشطة
470
+ <i class="fa-solid fa-chevron-down" style="margin-right: 8px; font-size: 12px;"></i>
471
+ </button>
472
+ <div class="sidebar-content" id="sidebarContent">
473
+ <div class="widget">
474
+ <div class="brand-icon" style="margin: 0 auto 15px auto;">
475
+ <i class="fa-solid fa-server"></i>
476
+ </div>
477
+ <h3 style="font-size: 16px; margin-bottom: 15px;">المحركات النشطة</h3>
478
+ <div style="display: flex; flex-direction: column; gap: 10px; text-align: right;">
479
+ <div
480
+ style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
481
+ <span style="font-size: 13px;">SurfGO Index</span>
482
+ <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
483
+ <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
484
+ نشط
485
+ </div>
486
  </div>
487
+ <div
488
+ style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
489
+ <span style="font-size: 13px;">الأخبار العالمية</span>
490
+ <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
491
+ <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
492
+ نشط
493
+ </div>
494
  </div>
495
+ <div
496
+ style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
497
+ <span style="font-size: 13px;">الوسائط المرئية</span>
498
+ <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
499
+ <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
500
+ نشط
501
+ </div>
502
  </div>
503
+ <div
504
+ style="display: flex; align-items: center; justify-content: space-between; background: var(--bg-base); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);">
505
+ <span style="font-size: 13px;">خدمة الفيديو</span>
506
+ <div style="display: flex; align-items: center; gap: 5px; color: #10b981; font-size: 11px;">
507
+ <span style="width: 6px; height: 6px; background: #10b981; border-radius: 50%;"></span>
508
+ نشط
509
+ </div>
510
  </div>
511
+ </div>
512
+ <p style="font-size: 11px; color: var(--text-sub); margin-top: 15px;">مدعوم بواسطة AnesNT Core</p>
513
+ </div>
514
+ </div>
515
+ </aside>
516
+ </div>
517
+
518
+ <script>
519
  const ENGINES = {
520
+ all: '75aa960081baa4f0c',
521
+ news: '35b0f5b6012e94f78',
522
  images: '23c7fd94975714dd8',
523
  videos: 'b11f5dceb04784b9f'
524
  };
525
+
526
  const params = new URLSearchParams(window.location.search);
527
  let query = params.get('q');
528
  let currentTab = params.get('tab') || 'all';
 
531
  const loadingText = document.getElementById('loading-text');
532
  const sidebarToggle = document.getElementById('sidebarToggle');
533
  const sidebarContent = document.getElementById('sidebarContent');
534
+
535
+ if (sidebarToggle) {
536
  sidebarToggle.addEventListener('click', () => {
537
  sidebarContent.classList.toggle('active');
538
  const icon = sidebarToggle.querySelector('.fa-chevron-down, .fa-chevron-up');
539
+ if (sidebarContent.classList.contains('active')) {
540
  icon.classList.remove('fa-chevron-down');
541
  icon.classList.add('fa-chevron-up');
542
  } else {
 
545
  }
546
  });
547
  }
548
+
549
  document.querySelectorAll('.tab-pill').forEach(btn => {
550
  btn.classList.toggle('active', btn.dataset.tab === currentTab);
551
  });
 
565
  document.querySelectorAll('.tab-pill').forEach(btn => {
566
  btn.classList.toggle('active', btn.dataset.tab === tab);
567
  });
568
+
569
  const oldScript = document.getElementById('cse-logic');
570
  if (oldScript) oldScript.remove();
571
+
572
  const script = document.createElement('script');
573
  script.id = 'cse-logic';
574
  script.src = `https://cse.google.com/cse.js?cx=${cx}`;
 
578
  gcseDiv.className = 'gcse-searchresults-only';
579
  gcseDiv.setAttribute('data-query', query);
580
  resultsContainer.appendChild(gcseDiv);
581
+ setTimeout(() => {
582
+ loadingText.style.display = 'none';
583
+ }, 1000);
584
  };
585
  document.head.appendChild(script);
586
  }
 
590
  currentTab = btn.dataset.tab;
591
  const newUrl = `${window.location.pathname}?q=${encodeURIComponent(query || '')}&tab=${currentTab}`;
592
  window.history.pushState({ path: newUrl }, '', newUrl);
593
+ if (query) loadSurfEngine(currentTab);
594
  else {
595
+ document.querySelectorAll('.tab-pill').forEach(b => b.classList.toggle('active', b
596
+ .dataset.tab === currentTab));
597
  }
598
  });
599
  });
 
607
  loadSurfEngine(currentTab);
608
  }
609
  });
610
+
611
+ // ─────────────────────────────────────
612
+ // المراقب الذكي: إزالة عناصر غوغل + إضافة الفاف ايكون بذكاء
613
+ // ─────────────────────────────────────
614
  const observer = new MutationObserver((mutations) => {
615
+ // إخفاء عناصر غوغل غير المرغوب فيها
616
+ document.querySelectorAll(
617
+ '.gsc-adBlock, .gcsc-branding, .gsc-result-info, .gsc-tabsArea, .gsc-refinementHeader'
618
+ ).forEach(el => el.remove());
619
+
620
+ // إضافة شعار الموقع (فاف ايكون) لكل نتيجة
621
  document.querySelectorAll('.gsc-result').forEach(result => {
622
  if (result.dataset.faviconAdded) return;
623
+
624
  const link = result.querySelector('a.gs-title');
625
+ if (!link) return;
626
+
627
+ let domain = '';
628
+ try {
629
+ if (link.href) {
630
  const url = new URL(link.href);
631
+ domain = url.hostname;
632
+ }
633
+ } catch (e) {
634
+ // نتجاهل الأخطاء ونستخدم أيقونة افتراضية
 
 
635
  }
636
+
637
+ const favicon = document.createElement('img');
638
+ favicon.className = 'gs-favicon';
639
+ favicon.alt = 'شعار الموقع';
640
+ favicon.loading = 'lazy';
641
+
642
+ if (domain) {
643
+ favicon.src = `https://www.google.com/s2/favicons?domain=${domain}&sz=32`;
644
+ favicon.onerror = () => {
645
+ favicon.src =
646
+ 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%236366f1"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>';
647
+ };
648
+ } else {
649
+ favicon.src =
650
+ 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%236366f1"><circle cx="12" cy="12" r="10"/></svg>';
651
+ }
652
+
653
+ // إدراج الأيقونة داخل الرابط كأول عنصر
654
+ if (link.firstChild) {
655
+ link.insertBefore(favicon, link.firstChild);
656
+ } else {
657
+ link.appendChild(favicon);
658
+ }
659
+
660
+ result.dataset.faviconAdded = 'true';
661
  });
662
  });
663
+
664
  observer.observe(document.body, { childList: true, subtree: true });
665
  </script>
666
+ </body>
667
+ </html>