It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://achatroom.co.uk

  1. <!DOCTYPE html>
  2.  
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8"/>
  6. <meta content="width=device-width, initial-scale=1, viewport-fit=cover" name="viewport"/>
  7. <title>UK Free Webcam Chat &amp; Text Chat Room</title>
  8. <!-- Favicons -->
  9. <link href="/favicon.ico" rel="icon" type="image/x-icon"/>
  10. <link href="/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"/>
  11. <link href="/android-chrome-192x192.png" rel="icon" sizes="192x192" type="image/png"/>
  12. <link href="/android-chrome-512x512.png" rel="icon" sizes="512x512" type="image/png"/>
  13. <link href="/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/>
  14. <link href="/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/>
  15. <link href="/site.webmanifest" rel="manifest"/>
  16. <meta content="#124a7c" name="msapplication-TileColor"/>
  17. <meta content="#124a7c" name="theme-color"/>
  18. <link href="styles.css?=v5" rel="stylesheet"/>
  19. <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"/>
  20. <!-- Google Analytics -->
  21. <script async="" src="https://www.googletagmanager.com/gtag/js?id=G-8L49MG60FD"></script>
  22. <script>
  23.    window.dataLayer = window.dataLayer || [];
  24.    function gtag(){dataLayer.push(arguments);}
  25.    gtag('js', new Date());
  26.  
  27.    gtag('config', 'G-8L49MG60FD');
  28.  </script>
  29. </head>
  30. <body>
  31. <!-- MARKETING + LOGIN -->
  32. <div class="marketing-wrapper">
  33. <!-- Hero + Login Button -->
  34. <section id="hero">
  35. <h1>Free Chat Room P2P webcam video chat</h1>
  36. <p>Our Free Chat lets you connect in real time—text, voice, or video—without any servers storing your data. Your conversations stay between you and your friends. Share pictures and webcam chat!</p>
  37. <button class="cta-button" onclick="document.querySelector('.login-wrapper').scrollIntoView({behavior:'smooth'})">Get Started</button>
  38. </section>
  39. <!-- Login Box -->
  40. <div class="login-wrapper">
  41. <div class="side-text left-text">
  42. <p>Welcome to A Chat Room!</p>
  43. <p>We do not force you to create an account, but if you'd like to keep your username then you will need to register.</p>
  44. </div>
  45. <div id="login-container">
  46. <div class="logo">
  47. <i class="fas fa-lock"></i>
  48. <h2>Text and Webcam Chat Completely Free!</h2>
  49. <p class="tagline">Enter as a guest or register to come back to your chats</p>
  50. </div>
  51. <div class="tabs">
  52. <button class="tab-button active" data-tab="login"><i class="fas fa-sign-in-alt"></i> Login</button>
  53. <button class="tab-button" data-tab="register"><i class="fas fa-user-plus"></i> Register</button>
  54. <button class="tab-button" data-tab="guest"><i class="fas fa-user-secret"></i> Guest</button>
  55. </div>
  56. <!-- LOGIN TAB -->
  57. <div class="tab-content active" id="login">
  58. <form id="login-form">
  59. <div class="input-group">
  60. <i class="fas fa-user"></i>
  61. <input autocomplete="username" id="login-username" maxlength="20" placeholder="Username" required="" type="text"/>
  62. </div>
  63. <div class="input-group">
  64. <i class="fas fa-lock"></i>
  65. <input autocomplete="current-password" id="login-password" maxlength="20" placeholder="Password" required="" type="password"/>
  66. </div>
  67. <div class="input-group" style="text-align:left; display:flex; align-items:center; gap:8px; margin-top:10px;">
  68. <input id="remember-me" style="width:auto;" type="checkbox"/>
  69. <label for="remember-me" style="font-size:0.9rem; color:#64748b;">Remember me</label>
  70. </div>
  71. <script>
  72. document.addEventListener('DOMContentLoaded', () => {
  73.  const loginBtn = document.getElementById('login-button');
  74.  loginBtn.addEventListener('click', () => {
  75.    const username = document.getElementById('login-username').value;
  76.    const password = document.getElementById('login-password').value;
  77.    const remember = document.getElementById('remember-me').checked;
  78.  
  79.    fetch('login.php', {
  80.      method: 'POST',
  81.      credentials: 'include',
  82.      headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  83.      body: new URLSearchParams({ username, password, remember: remember ? '1' : '' })
  84.    })
  85.    .then(res => res.json())
  86.    .then(data => {
  87.      if (data.success) {
  88.        window.location.href = '/';
  89.      } else {
  90.        alert(data.message || 'Login failed');
  91.      }
  92.    });
  93.  });
  94. });
  95. </script>
  96. <button class="btn-primary" id="login-button"><i class="fas fa-sign-in-alt"></i> Login</button>
  97. <div class="auth-footer"><a class="forgot-password" href="#">Forgot password?</a></div>
  98. </form>
  99. </div>
  100. <!-- REGISTER TAB -->
  101. <div class="tab-content" id="register">
  102. <form id="register-form">
  103. <div class="input-group">
  104. <i class="fas fa-user"></i>
  105. <input autocomplete="username" id="register-username" maxlength="20" name="username" placeholder="Username" required="" type="text"/>
  106. </div>
  107. <div class="input-group">
  108. <i class="fas fa-lock"></i>
  109. <input autocomplete="new-password" id="register-password" maxlength="20" name="password" placeholder="Password" required="" type="password"/>
  110. </div>
  111. <div class="input-group">
  112. <i class="fas fa-lock"></i>
  113. <input autocomplete="new-password" id="register-confirm-password" maxlength="20" name="confirm_password" placeholder="Confirm Password" required="" type="password"/>
  114. </div>
  115. <div class="gender-selection">
  116. <label class="gender-option"><input checked="" name="register-gender" type="radio" value="male"/><span class="gender-icon male"><i class="fas fa-mars"></i></span> Male</label>
  117. <label class="gender-option"><input name="register-gender" type="radio" value="female"/><span class="gender-icon female"><i class="fas fa-venus"></i></span> Female</label>
  118. </div>
  119. <div class="input-group">
  120. <i class="fas fa-birthday-cake"></i>
  121. <input id="register-age" max="120" min="13" name="age" placeholder="Age" required="" type="number"/>
  122. </div>
  123. <div class="input-group">
  124. <i class="fas fa-globe"></i>
  125. <select id="register-location" name="location" required="">
  126. <option value="AF">Afghanistan</option>
  127. <option value="AL">Albania</option>
  128. <option value="DZ">Algeria</option>
  129. <option value="AD">Andorra</option>
  130. <option value="AO">Angola</option>
  131. <option value="AG">Antigua and Barbuda</option>
  132. <option value="AR">Argentina</option>
  133. <option value="AM">Armenia</option>
  134. <option value="AU">Australia</option>
  135. <option value="AT">Austria</option>
  136. <option value="AZ">Azerbaijan</option>
  137. <option value="BS">Bahamas</option>
  138. <option value="BH">Bahrain</option>
  139. <option value="BD">Bangladesh</option>
  140. <option value="BB">Barbados</option>
  141. <option value="BY">Belarus</option>
  142. <option value="BE">Belgium</option>
  143. <option value="BZ">Belize</option>
  144. <option value="BJ">Benin</option>
  145. <option value="BT">Bhutan</option>
  146. <option value="BO">Bolivia</option>
  147. <option value="BA">Bosnia and Herzegovina</option>
  148. <option value="BW">Botswana</option>
  149. <option value="BR">Brazil</option>
  150. <option value="BN">Brunei</option>
  151. <option value="BG">Bulgaria</option>
  152. <option value="BF">Burkina Faso</option>
  153. <option value="BI">Burundi</option>
  154. <option value="CV">Cabo Verde</option>
  155. <option value="KH">Cambodia</option>
  156. <option value="CM">Cameroon</option>
  157. <option value="CA">Canada</option>
  158. <option value="CF">Central African Republic</option>
  159. <option value="TD">Chad</option>
  160. <option value="CL">Chile</option>
  161. <option value="CN">China</option>
  162. <option value="CO">Colombia</option>
  163. <option value="KM">Comoros</option>
  164. <option value="CG">Congo – Brazzaville</option>
  165. <option value="CD">Congo – Kinshasa</option>
  166. <option value="CR">Costa Rica</option>
  167. <option value="CI">Côte d’Ivoire</option>
  168. <option value="HR">Croatia</option>
  169. <option value="CU">Cuba</option>
  170. <option value="CY">Cyprus</option>
  171. <option value="CZ">Czech Republic</option>
  172. <option value="DK">Denmark</option>
  173. <option value="DJ">Djibouti</option>
  174. <option value="DM">Dominica</option>
  175. <option value="DO">Dominican Republic</option>
  176. <option value="EC">Ecuador</option>
  177. <option value="EG">Egypt</option>
  178. <option value="SV">El Salvador</option>
  179. <option value="GQ">Equatorial Guinea</option>
  180. <option value="ER">Eritrea</option>
  181. <option value="EE">Estonia</option>
  182. <option value="SZ">Eswatini</option>
  183. <option value="ET">Ethiopia</option>
  184. <option value="FJ">Fiji</option>
  185. <option value="FI">Finland</option>
  186. <option value="FR">France</option>
  187. <option value="GA">Gabon</option>
  188. <option value="GM">Gambia</option>
  189. <option value="GE">Georgia</option>
  190. <option value="DE">Germany</option>
  191. <option value="GH">Ghana</option>
  192. <option value="GR">Greece</option>
  193. <option value="GD">Grenada</option>
  194. <option value="GT">Guatemala</option>
  195. <option value="GN">Guinea</option>
  196. <option value="GW">Guinea-Bissau</option>
  197. <option value="GY">Guyana</option>
  198. <option value="HT">Haiti</option>
  199. <option value="HN">Honduras</option>
  200. <option value="HU">Hungary</option>
  201. <option value="IS">Iceland</option>
  202. <option value="IN">India</option>
  203. <option value="ID">Indonesia</option>
  204. <option value="IR">Iran</option>
  205. <option value="IQ">Iraq</option>
  206. <option value="IE">Ireland</option>
  207. <option value="IL">Israel</option>
  208. <option value="IT">Italy</option>
  209. <option value="JM">Jamaica</option>
  210. <option value="JP">Japan</option>
  211. <option value="JO">Jordan</option>
  212. <option value="KZ">Kazakhstan</option>
  213. <option value="KE">Kenya</option>
  214. <option value="KI">Kiribati</option>
  215. <option value="KP">North Korea</option>
  216. <option value="KR">South Korea</option>
  217. <option value="KW">Kuwait</option>
  218. <option value="KG">Kyrgyzstan</option>
  219. <option value="LA">Laos</option>
  220. <option value="LV">Latvia</option>
  221. <option value="LB">Lebanon</option>
  222. <option value="LS">Lesotho</option>
  223. <option value="LR">Liberia</option>
  224. <option value="LY">Libya</option>
  225. <option value="LI">Liechtenstein</option>
  226. <option value="LT">Lithuania</option>
  227. <option value="LU">Luxembourg</option>
  228. <option value="MG">Madagascar</option>
  229. <option value="MW">Malawi</option>
  230. <option value="MY">Malaysia</option>
  231. <option value="MV">Maldives</option>
  232. <option value="ML">Mali</option>
  233. <option value="MT">Malta</option>
  234. <option value="MH">Marshall Islands</option>
  235. <option value="MR">Mauritania</option>
  236. <option value="MU">Mauritius</option>
  237. <option value="MX">Mexico</option>
  238. <option value="FM">Micronesia</option>
  239. <option value="MD">Moldova</option>
  240. <option value="MC">Monaco</option>
  241. <option value="MN">Mongolia</option>
  242. <option value="ME">Montenegro</option>
  243. <option value="MA">Morocco</option>
  244. <option value="MZ">Mozambique</option>
  245. <option value="MM">Myanmar</option>
  246. <option value="NA">Namibia</option>
  247. <option value="NR">Nauru</option>
  248. <option value="NP">Nepal</option>
  249. <option value="NL">Netherlands</option>
  250. <option value="NZ">New Zealand</option>
  251. <option value="NI">Nicaragua</option>
  252. <option value="NE">Niger</option>
  253. <option value="NG">Nigeria</option>
  254. <option value="NO">Norway</option>
  255. <option value="OM">Oman</option>
  256. <option value="PK">Pakistan</option>
  257. <option value="PW">Palau</option>
  258. <option value="PA">Panama</option>
  259. <option value="PG">Papua New Guinea</option>
  260. <option value="PY">Paraguay</option>
  261. <option value="PE">Peru</option>
  262. <option value="PH">Philippines</option>
  263. <option value="PL">Poland</option>
  264. <option value="PT">Portugal</option>
  265. <option value="QA">Qatar</option>
  266. <option value="RO">Romania</option>
  267. <option value="RU">Russia</option>
  268. <option value="RW">Rwanda</option>
  269. <option value="KN">Saint Kitts and Nevis</option>
  270. <option value="LC">Saint Lucia</option>
  271. <option value="VC">Saint Vincent and the Grenadines</option>
  272. <option value="WS">Samoa</option>
  273. <option value="SM">San Marino</option>
  274. <option value="ST">Sao Tome and Principe</option>
  275. <option value="SA">Saudi Arabia</option>
  276. <option value="SN">Senegal</option>
  277. <option value="RS">Serbia</option>
  278. <option value="SC">Seychelles</option>
  279. <option value="SL">Sierra Leone</option>
  280. <option value="SG">Singapore</option>
  281. <option value="SK">Slovakia</option>
  282. <option value="SI">Slovenia</option>
  283. <option value="SB">Solomon Islands</option>
  284. <option value="SO">Somalia</option>
  285. <option value="ZA">South Africa</option>
  286. <option value="ES">Spain</option>
  287. <option value="LK">Sri Lanka</option>
  288. <option value="SD">Sudan</option>
  289. <option value="SR">Suriname</option>
  290. <option value="SE">Sweden</option>
  291. <option value="CH">Switzerland</option>
  292. <option value="SY">Syria</option>
  293. <option value="TW">Taiwan</option>
  294. <option value="TJ">Tajikistan</option>
  295. <option value="TZ">Tanzania</option>
  296. <option value="TH">Thailand</option>
  297. <option value="TL">Timor-Leste</option>
  298. <option value="TG">Togo</option>
  299. <option value="TO">Tonga</option>
  300. <option value="TT">Trinidad and Tobago</option>
  301. <option value="TN">Tunisia</option>
  302. <option value="TR">Turkey</option>
  303. <option value="TM">Turkmenistan</option>
  304. <option value="TV">Tuvalu</option>
  305. <option value="UG">Uganda</option>
  306. <option value="UA">Ukraine</option>
  307. <option value="AE">United Arab Emirates</option>
  308. <option value="GB">United Kingdom</option>
  309. <option value="US">United States</option>
  310. <option value="UY">Uruguay</option>
  311. <option value="UZ">Uzbekistan</option>
  312. <option value="VU">Vanuatu</option>
  313. <option value="VA">Vatican City</option>
  314. <option value="VE">Venezuela</option>
  315. <option value="VN">Vietnam</option>
  316. <option value="YE">Yemen</option>
  317. <option value="ZM">Zambia</option>
  318. <option value="ZW">Zimbabwe</option>
  319. </select>
  320. </div>
  321. <button class="btn-primary" id="register-button"><i class="fas fa-user-plus"></i> Register</button>
  322. </form>
  323. </div>
  324. <!-- GUEST TAB -->
  325. <div class="tab-content" id="guest">
  326. <form id="guest-form">
  327. <div class="guest-warning"><i class="fas fa-exclamation-triangle"></i><p>Guest mode has limited features and your account will be temporary.</p></div>
  328. <div class="gender-selection">
  329. <label class="gender-option"><input checked="" name="guest-gender" type="radio" value="male"/><span class="gender-icon male"><i class="fas fa-mars"></i></span> Male</label>
  330. <label class="gender-option"><input name="guest-gender" type="radio" value="female"/><span class="gender-icon female"><i class="fas fa-venus"></i></span> Female</label>
  331. </div>
  332. <div class="input-group">
  333. <i class="fas fa-birthday-cake"></i>
  334. <input id="guest-age" max="120" min="13" name="age" placeholder="Age" required="" type="number"/>
  335. </div>
  336. <div class="input-group">
  337. <i class="fas fa-globe"></i>
  338. <select id="guest-location" name="location" required="">
  339. <option value="">Country</option>
  340. <option value="AF">Afghanistan</option>
  341. <option value="AL">Albania</option>
  342. <option value="DZ">Algeria</option>
  343. <option value="AD">Andorra</option>
  344. <option value="AO">Angola</option>
  345. <option value="AG">Antigua and Barbuda</option>
  346. <option value="AR">Argentina</option>
  347. <option value="AM">Armenia</option>
  348. <option value="AU">Australia</option>
  349. <option value="AT">Austria</option>
  350. <option value="AZ">Azerbaijan</option>
  351. <option value="BS">Bahamas</option>
  352. <option value="BH">Bahrain</option>
  353. <option value="BD">Bangladesh</option>
  354. <option value="BB">Barbados</option>
  355. <option value="BY">Belarus</option>
  356. <option value="BE">Belgium</option>
  357. <option value="BZ">Belize</option>
  358. <option value="BJ">Benin</option>
  359. <option value="BT">Bhutan</option>
  360. <option value="BO">Bolivia</option>
  361. <option value="BA">Bosnia and Herzegovina</option>
  362. <option value="BW">Botswana</option>
  363. <option value="BR">Brazil</option>
  364. <option value="BN">Brunei</option>
  365. <option value="BG">Bulgaria</option>
  366. <option value="BF">Burkina Faso</option>
  367. <option value="BI">Burundi</option>
  368. <option value="CV">Cabo Verde</option>
  369. <option value="KH">Cambodia</option>
  370. <option value="CM">Cameroon</option>
  371. <option value="CA">Canada</option>
  372. <option value="CF">Central African Republic</option>
  373. <option value="TD">Chad</option>
  374. <option value="CL">Chile</option>
  375. <option value="CN">China</option>
  376. <option value="CO">Colombia</option>
  377. <option value="KM">Comoros</option>
  378. <option value="CG">Congo – Brazzaville</option>
  379. <option value="CD">Congo – Kinshasa</option>
  380. <option value="CR">Costa Rica</option>
  381. <option value="CI">Côte d’Ivoire</option>
  382. <option value="HR">Croatia</option>
  383. <option value="CU">Cuba</option>
  384. <option value="CY">Cyprus</option>
  385. <option value="CZ">Czech Republic</option>
  386. <option value="DK">Denmark</option>
  387. <option value="DJ">Djibouti</option>
  388. <option value="DM">Dominica</option>
  389. <option value="DO">Dominican Republic</option>
  390. <option value="EC">Ecuador</option>
  391. <option value="EG">Egypt</option>
  392. <option value="SV">El Salvador</option>
  393. <option value="GQ">Equatorial Guinea</option>
  394. <option value="ER">Eritrea</option>
  395. <option value="EE">Estonia</option>
  396. <option value="SZ">Eswatini</option>
  397. <option value="ET">Ethiopia</option>
  398. <option value="FJ">Fiji</option>
  399. <option value="FI">Finland</option>
  400. <option value="FR">France</option>
  401. <option value="GA">Gabon</option>
  402. <option value="GM">Gambia</option>
  403. <option value="GE">Georgia</option>
  404. <option value="DE">Germany</option>
  405. <option value="GH">Ghana</option>
  406. <option value="GR">Greece</option>
  407. <option value="GD">Grenada</option>
  408. <option value="GT">Guatemala</option>
  409. <option value="GN">Guinea</option>
  410. <option value="GW">Guinea-Bissau</option>
  411. <option value="GY">Guyana</option>
  412. <option value="HT">Haiti</option>
  413. <option value="HN">Honduras</option>
  414. <option value="HU">Hungary</option>
  415. <option value="IS">Iceland</option>
  416. <option value="IN">India</option>
  417. <option value="ID">Indonesia</option>
  418. <option value="IR">Iran</option>
  419. <option value="IQ">Iraq</option>
  420. <option value="IE">Ireland</option>
  421. <option value="IL">Israel</option>
  422. <option value="IT">Italy</option>
  423. <option value="JM">Jamaica</option>
  424. <option value="JP">Japan</option>
  425. <option value="JO">Jordan</option>
  426. <option value="KZ">Kazakhstan</option>
  427. <option value="KE">Kenya</option>
  428. <option value="KI">Kiribati</option>
  429. <option value="KP">North Korea</option>
  430. <option value="KR">South Korea</option>
  431. <option value="KW">Kuwait</option>
  432. <option value="KG">Kyrgyzstan</option>
  433. <option value="LA">Laos</option>
  434. <option value="LV">Latvia</option>
  435. <option value="LB">Lebanon</option>
  436. <option value="LS">Lesotho</option>
  437. <option value="LR">Liberia</option>
  438. <option value="LY">Libya</option>
  439. <option value="LI">Liechtenstein</option>
  440. <option value="LT">Lithuania</option>
  441. <option value="LU">Luxembourg</option>
  442. <option value="MG">Madagascar</option>
  443. <option value="MW">Malawi</option>
  444. <option value="MY">Malaysia</option>
  445. <option value="MV">Maldives</option>
  446. <option value="ML">Mali</option>
  447. <option value="MT">Malta</option>
  448. <option value="MH">Marshall Islands</option>
  449. <option value="MR">Mauritania</option>
  450. <option value="MU">Mauritius</option>
  451. <option value="MX">Mexico</option>
  452. <option value="FM">Micronesia</option>
  453. <option value="MD">Moldova</option>
  454. <option value="MC">Monaco</option>
  455. <option value="MN">Mongolia</option>
  456. <option value="ME">Montenegro</option>
  457. <option value="MA">Morocco</option>
  458. <option value="MZ">Mozambique</option>
  459. <option value="MM">Myanmar</option>
  460. <option value="NA">Namibia</option>
  461. <option value="NR">Nauru</option>
  462. <option value="NP">Nepal</option>
  463. <option value="NL">Netherlands</option>
  464. <option value="NZ">New Zealand</option>
  465. <option value="NI">Nicaragua</option>
  466. <option value="NE">Niger</option>
  467. <option value="NG">Nigeria</option>
  468. <option value="NO">Norway</option>
  469. <option value="OM">Oman</option>
  470. <option value="PK">Pakistan</option>
  471. <option value="PW">Palau</option>
  472. <option value="PA">Panama</option>
  473. <option value="PG">Papua New Guinea</option>
  474. <option value="PY">Paraguay</option>
  475. <option value="PE">Peru</option>
  476. <option value="PH">Philippines</option>
  477. <option value="PL">Poland</option>
  478. <option value="PT">Portugal</option>
  479. <option value="QA">Qatar</option>
  480. <option value="RO">Romania</option>
  481. <option value="RU">Russia</option>
  482. <option value="RW">Rwanda</option>
  483. <option value="KN">Saint Kitts and Nevis</option>
  484. <option value="LC">Saint Lucia</option>
  485. <option value="VC">Saint Vincent and the Grenadines</option>
  486. <option value="WS">Samoa</option>
  487. <option value="SM">San Marino</option>
  488. <option value="ST">Sao Tome and Principe</option>
  489. <option value="SA">Saudi Arabia</option>
  490. <option value="SN">Senegal</option>
  491. <option value="RS">Serbia</option>
  492. <option value="SC">Seychelles</option>
  493. <option value="SL">Sierra Leone</option>
  494. <option value="SG">Singapore</option>
  495. <option value="SK">Slovakia</option>
  496. <option value="SI">Slovenia</option>
  497. <option value="SB">Solomon Islands</option>
  498. <option value="SO">Somalia</option>
  499. <option value="ZA">South Africa</option>
  500. <option value="ES">Spain</option>
  501. <option value="LK">Sri Lanka</option>
  502. <option value="SD">Sudan</option>
  503. <option value="SR">Suriname</option>
  504. <option value="SE">Sweden</option>
  505. <option value="CH">Switzerland</option>
  506. <option value="SY">Syria</option>
  507. <option value="TW">Taiwan</option>
  508. <option value="TJ">Tajikistan</option>
  509. <option value="TZ">Tanzania</option>
  510. <option value="TH">Thailand</option>
  511. <option value="TL">Timor-Leste</option>
  512. <option value="TG">Togo</option>
  513. <option value="TO">Tonga</option>
  514. <option value="TT">Trinidad and Tobago</option>
  515. <option value="TN">Tunisia</option>
  516. <option value="TR">Turkey</option>
  517. <option value="TM">Turkmenistan</option>
  518. <option value="TV">Tuvalu</option>
  519. <option value="UG">Uganda</option>
  520. <option value="UA">Ukraine</option>
  521. <option value="AE">United Arab Emirates</option>
  522. <option value="GB">United Kingdom</option>
  523. <option value="US">United States</option>
  524. <option value="UY">Uruguay</option>
  525. <option value="UZ">Uzbekistan</option>
  526. <option value="VU">Vanuatu</option>
  527. <option value="VA">Vatican City</option>
  528. <option value="VE">Venezuela</option>
  529. <option value="VN">Vietnam</option>
  530. <option value="YE">Yemen</option>
  531. <option value="ZM">Zambia</option>
  532. <option value="ZW">Zimbabwe</option>
  533. </select>
  534. </div>
  535. <button class="btn-secondary" id="guest-button"><i class="fas fa-user-secret"></i> Continue as Guest</button>
  536. </form>
  537. </div>
  538. </div>
  539. <div class="side-text right-text">
  540. <p>New here?</p>
  541. <p>Enter as a guest or register an account.</p>
  542. </div>
  543. </div>
  544. <!-- Features -->
  545. <section id="features">
  546. <div class="feature-grid">
  547. <div class="feature"><i class="fas fa-user-shield"></i><h3>End-to-End Encryption</h3><p>Only you and your chat partner can read your messages.</p></div>
  548. <div class="feature"><i class="fas fa-video"></i><h3>P2P Video Calls</h3><p>No intermediaries—your video streams go directly to your friends.</p></div>
  549. <div class="feature"><i class="fas fa-user-secret"></i><h3>Anonymous Guest Mode</h3><p>Drop in anonymously without creating a full account.</p></div>
  550. <div class="feature"><i class="fas fa-comments"></i><h3>Rich Chat Features</h3><p>Share images, emojis, and live typing indicators.</p></div>
  551. </div>
  552. </section>
  553. <!-- How It Works -->
  554. <section id="how-it-works">
  555. <h2 style="text-align:center;color:#124a7c;margin-bottom:2rem;">How It Works</h2>
  556. <div class="steps">
  557. <div class="step"><div class="step-number">1</div><p>Sign up or join as a guest in seconds</p></div>
  558. <div class="step"><div class="step-number">2</div><p>Choose a friend from the online list</p></div>
  559. <div class="step"><div class="step-number">3</div><p>Start chatting or video calling instantly</p></div>
  560. </div>
  561. </section>
  562. <!-- Testimonials -->
  563. <section id="testimonials">
  564. <h2 style="text-align:center;color:#124a7c;margin-bottom:2rem;">What Our Users Say</h2>
  565. <div class="testimonial-list">
  566. <div class="testimonial"><p>“Chatty Cam’s guest mode is a lifesaver when I just want to jump into a quick chat.”</p><div class="author">— Jasper123</div></div>
  567. <div class="testimonial"><p>“The P2P video quality is crystal clear, and I love the chat! Chattycam 4ever.”</p><div class="author">— Lilya</div></div>
  568. <div class="testimonial"><p>“Super simple to use, super private. Exactly what I needed! Made a ton of friends on here.”</p><div class="author">— Quazzy</div></div>
  569. </div>
  570. </section>
  571. <!-- Footer -->
  572. <footer>
  573. <p>
  574. <a href="about.html">About</a> |
  575.    <a href="faq.html">FAQ</a> |
  576.    <a href="#">Contact</a> |
  577.    <a href="https://achatroom.co.uk/blog">Blog</a> |
  578.    <a href="https://chattycam.com">Random Chat</a>
  579. </p>
  580. <p>© 2025 Chatty Cam. All rights reserved.</p>
  581. </footer>
  582. </div> <!-- /marketing-wrapper -->
  583. <!-- CHAT UI -->
  584. <div class="hidden" id="chat-container">
  585. <button class="sidebar-toggle" id="sidebar-toggle">☰</button>
  586. <div class="sidebar">
  587. <div class="sidebar-header"><h2 id="sidebar-header">CHAT</h2></div>
  588. <ul class="nav-tabs">
  589. <li class="nav-tab"><button class="icon-button" id="search-icon"><i class="fas fa-search"></i></button></li>
  590. <li class="nav-tab active" id="search-tab"><a href="#"><i class="fa-solid fa-user-group"></i><br/>(<span id="online-count">0</span>)</a></li>
  591. <li class="nav-tab" id="inbox-tab"><a href="#"><i class="fa-solid fa-envelope"></i><br/>(<span id="inbox-badge">0</span>)</a>
  592. </li> <li class="nav-tab" id="blocked-tab"><a href="#"><i class="fa-solid fa-ban"></i><br/>(<span id="blocked-badge">0</span>)</a>
  593. </li>
  594. </ul>
  595. <div class="inbox-content hidden" id="inbox-content">
  596. <div class="inbox-search-container" id="inbox-search-container">
  597. <input id="inbox-search-input" placeholder="Search conversations..." type="text"/>
  598. <select id="inbox-sort">
  599. <option value="latest">Latest</option>
  600. <option value="oldest">Oldest</option>
  601. <option value="name-asc">Name A-Z</option>
  602. <option value="name-desc">Name Z-A</option>
  603. </select>
  604. </div>
  605. <div id="inbox-list"></div>
  606. </div>
  607. <div class="inbox-content hidden" id="blocked-content"></div>
  608. <div class="online-section">
  609. <div class="info-messages"><p>Click a username below to open up the private chat!</p></div>
  610. <div class="user-list"></div>
  611. </div>
  612. <!-- 4) Footer -->
  613. <div class="sidebar-footer">
  614. <div class="logout-wrapper">
  615.  
  616.  
  617.  
  618. <a class="logout-button" href="#" id="logout-button"><i class="fa-solid fa-right-from-bracket"></i>Logout</a>
  619. </div>
  620. <div class="app-info">
  621. <div class="app-logo"><i class="fas fa-comment-dots"></i></div>
  622. <div class="app-details"><h4>AChatroom</h4><p>© 2025 Achatroom.co.uk
  623. </p></div>
  624. </div>
  625. <p class="footer-note">Always free, always secure</p>
  626. </div>
  627. </div><!-- /.sidebar -->
  628. <!-- Welcome Message: visible by default -->
  629. <div class="chat-welcome" id="chat-welcome">
  630. <h3 style="font-size: 2rem; font-weight: 700; color: #114777; margin-bottom: 1rem;">
  631.    👋 Select a user to chat
  632.  </h3>
  633. <p style="font-size: 1.1rem; margin-bottom: 0.75rem;">
  634.    Choose someone from the online list to begin chatting!
  635.  </p>
  636. <p style="font-size: 1rem; color: #607d8b; margin-bottom: 0.5rem;">
  637.    💻 Webcam chat is entirely optional.
  638.  </p>
  639. <p style="font-size: 1rem; color: #607d8b;">
  640.    📝 Register to come back and view your offline chats.
  641.  </p>
  642. </div>
  643. <div class="chat-area hidden">
  644. <div class="chat-actions">
  645. <button class="block-button" disabled="" id="block-button">Block</button>
  646. <button class="video-button" id="start-video-btn"> <i class="fa-solid fa-video"></i> Start Video Chat</button>
  647. </div>
  648. <div id="video-chat">
  649. <div class="video-container">
  650. <div class="video-box">
  651. <video autoplay="" id="localVideo" muted=""></video>
  652. </div>
  653. <div class="video-box">
  654. <video autoplay="" id="remoteVideo"></video>
  655. </div>
  656. </div>
  657. <div class="controls-container" id="video-controls" style="display: none;">
  658. <button id="stop-video-btn">Stop Video</button>
  659. </div>
  660. </div>
  661. <div class="chat-header hidden" id="chat-header">You are messaging <span id="chat-with-name"></span></div>
  662. <div class="chat-messages" id="chat-messages"></div>
  663. <div class="message-input">
  664. <input autocapitalize="off" autocomplete="off" autocorrect="off" disabled="" id="message-input" maxlength="400" placeholder="Type your message…" spellcheck="false" type="text"/>
  665. <button class="emoji-button" id="emoji-button">😀</button>
  666. <label class="image-upload-label" for="image-upload-camera"><i class="fas fa-camera"></i></label>
  667. <input accept="image/*" capture="" hidden="" id="image-upload-camera" type="file"/>
  668. <label class="image-upload-label" for="image-upload-gallery"><i class="fas fa-image"></i></label>
  669. <input accept="image/*" hidden="" id="image-upload-gallery" type="file"/>
  670. </div>
  671. </div>
  672. </div>
  673. <!-- Advanced Search Panel -->
  674. <div class="search-panel hidden" id="advanced-search-panel">
  675. <form class="advanced-search" id="advanced-search-form">
  676. <h2>Advanced Search</h2>
  677. <!-- Nickname -->
  678. <label for="nickname">Username</label>
  679. <input id="nickname" maxlength="20" name="nickname" placeholder="Optional"/>
  680. <!-- Gender -->
  681. <fieldset>
  682. <legend>Gender</legend>
  683. <div class="radio-group">
  684. <label><input checked="" name="gender" type="radio" value="both"/> Both</label>
  685. <label><input name="gender" type="radio" value="male"/> Male</label>
  686. <label><input name="gender" type="radio" value="female"/> Female</label>
  687. </div>
  688. </fieldset>
  689. <!-- NEW: Age Range -->
  690. <fieldset>
  691. <legend>Age Range</legend>
  692. <div class="age-slider">
  693. <label for="age-min">
  694.          Min: <output id="age-min-output">18</output>
  695. </label>
  696. <input id="age-min" max="120" min="13" name="ageMin" type="range" value="18"/>
  697. <label for="age-max">
  698.          Max: <output id="age-max-output">60</output>
  699. </label>
  700. <input id="age-max" max="120" min="13" name="ageMax" type="range" value="60"/>
  701. </div>
  702. </fieldset>
  703. <!-- NEW: Country selector -->
  704. <fieldset>
  705. <legend>Country</legend>
  706. <select id="search-location" name="location">
  707. <option value="">Any</option>
  708. <option value="AF">Afghanistan</option>
  709. <option value="AL">Albania</option>
  710. <option value="DZ">Algeria</option>
  711. <option value="AD">Andorra</option>
  712. <option value="AO">Angola</option>
  713. <option value="AG">Antigua and Barbuda</option>
  714. <option value="AR">Argentina</option>
  715. <option value="AM">Armenia</option>
  716. <option value="AU">Australia</option>
  717. <option value="AT">Austria</option>
  718. <option value="AZ">Azerbaijan</option>
  719. <option value="BS">Bahamas</option>
  720. <option value="BH">Bahrain</option>
  721. <option value="BD">Bangladesh</option>
  722. <option value="BB">Barbados</option>
  723. <option value="BY">Belarus</option>
  724. <option value="BE">Belgium</option>
  725. <option value="BZ">Belize</option>
  726. <option value="BJ">Benin</option>
  727. <option value="BT">Bhutan</option>
  728. <option value="BO">Bolivia</option>
  729. <option value="BA">Bosnia and Herzegovina</option>
  730. <option value="BW">Botswana</option>
  731. <option value="BR">Brazil</option>
  732. <option value="BN">Brunei</option>
  733. <option value="BG">Bulgaria</option>
  734. <option value="BF">Burkina Faso</option>
  735. <option value="BI">Burundi</option>
  736. <option value="CV">Cabo Verde</option>
  737. <option value="KH">Cambodia</option>
  738. <option value="CM">Cameroon</option>
  739. <option value="CA">Canada</option>
  740. <option value="CF">Central African Republic</option>
  741. <option value="TD">Chad</option>
  742. <option value="CL">Chile</option>
  743. <option value="CN">China</option>
  744. <option value="CO">Colombia</option>
  745. <option value="KM">Comoros</option>
  746. <option value="CG">Congo – Brazzaville</option>
  747. <option value="CD">Congo – Kinshasa</option>
  748. <option value="CR">Costa Rica</option>
  749. <option value="CI">Côte d’Ivoire</option>
  750. <option value="HR">Croatia</option>
  751. <option value="CU">Cuba</option>
  752. <option value="CY">Cyprus</option>
  753. <option value="CZ">Czech Republic</option>
  754. <option value="DK">Denmark</option>
  755. <option value="DJ">Djibouti</option>
  756. <option value="DM">Dominica</option>
  757. <option value="DO">Dominican Republic</option>
  758. <option value="EC">Ecuador</option>
  759. <option value="EG">Egypt</option>
  760. <option value="SV">El Salvador</option>
  761. <option value="GQ">Equatorial Guinea</option>
  762. <option value="ER">Eritrea</option>
  763. <option value="EE">Estonia</option>
  764. <option value="SZ">Eswatini</option>
  765. <option value="ET">Ethiopia</option>
  766. <option value="FJ">Fiji</option>
  767. <option value="FI">Finland</option>
  768. <option value="FR">France</option>
  769. <option value="GA">Gabon</option>
  770. <option value="GM">Gambia</option>
  771. <option value="GE">Georgia</option>
  772. <option value="DE">Germany</option>
  773. <option value="GH">Ghana</option>
  774. <option value="GR">Greece</option>
  775. <option value="GD">Grenada</option>
  776. <option value="GT">Guatemala</option>
  777. <option value="GN">Guinea</option>
  778. <option value="GW">Guinea-Bissau</option>
  779. <option value="GY">Guyana</option>
  780. <option value="HT">Haiti</option>
  781. <option value="HN">Honduras</option>
  782. <option value="HU">Hungary</option>
  783. <option value="IS">Iceland</option>
  784. <option value="IN">India</option>
  785. <option value="ID">Indonesia</option>
  786. <option value="IR">Iran</option>
  787. <option value="IQ">Iraq</option>
  788. <option value="IE">Ireland</option>
  789. <option value="IL">Israel</option>
  790. <option value="IT">Italy</option>
  791. <option value="JM">Jamaica</option>
  792. <option value="JP">Japan</option>
  793. <option value="JO">Jordan</option>
  794. <option value="KZ">Kazakhstan</option>
  795. <option value="KE">Kenya</option>
  796. <option value="KI">Kiribati</option>
  797. <option value="KP">North Korea</option>
  798. <option value="KR">South Korea</option>
  799. <option value="KW">Kuwait</option>
  800. <option value="KG">Kyrgyzstan</option>
  801. <option value="LA">Laos</option>
  802. <option value="LV">Latvia</option>
  803. <option value="LB">Lebanon</option>
  804. <option value="LS">Lesotho</option>
  805. <option value="LR">Liberia</option>
  806. <option value="LY">Libya</option>
  807. <option value="LI">Liechtenstein</option>
  808. <option value="LT">Lithuania</option>
  809. <option value="LU">Luxembourg</option>
  810. <option value="MG">Madagascar</option>
  811. <option value="MW">Malawi</option>
  812. <option value="MY">Malaysia</option>
  813. <option value="MV">Maldives</option>
  814. <option value="ML">Mali</option>
  815. <option value="MT">Malta</option>
  816. <option value="MH">Marshall Islands</option>
  817. <option value="MR">Mauritania</option>
  818. <option value="MU">Mauritius</option>
  819. <option value="MX">Mexico</option>
  820. <option value="FM">Micronesia</option>
  821. <option value="MD">Moldova</option>
  822. <option value="MC">Monaco</option>
  823. <option value="MN">Mongolia</option>
  824. <option value="ME">Montenegro</option>
  825. <option value="MA">Morocco</option>
  826. <option value="MZ">Mozambique</option>
  827. <option value="MM">Myanmar</option>
  828. <option value="NA">Namibia</option>
  829. <option value="NR">Nauru</option>
  830. <option value="NP">Nepal</option>
  831. <option value="NL">Netherlands</option>
  832. <option value="NZ">New Zealand</option>
  833. <option value="NI">Nicaragua</option>
  834. <option value="NE">Niger</option>
  835. <option value="NG">Nigeria</option>
  836. <option value="NO">Norway</option>
  837. <option value="OM">Oman</option>
  838. <option value="PK">Pakistan</option>
  839. <option value="PW">Palau</option>
  840. <option value="PA">Panama</option>
  841. <option value="PG">Papua New Guinea</option>
  842. <option value="PY">Paraguay</option>
  843. <option value="PE">Peru</option>
  844. <option value="PH">Philippines</option>
  845. <option value="PL">Poland</option>
  846. <option value="PT">Portugal</option>
  847. <option value="QA">Qatar</option>
  848. <option value="RO">Romania</option>
  849. <option value="RU">Russia</option>
  850. <option value="RW">Rwanda</option>
  851. <option value="KN">Saint Kitts and Nevis</option>
  852. <option value="LC">Saint Lucia</option>
  853. <option value="VC">Saint Vincent and the Grenadines</option>
  854. <option value="WS">Samoa</option>
  855. <option value="SM">San Marino</option>
  856. <option value="ST">Sao Tome and Principe</option>
  857. <option value="SA">Saudi Arabia</option>
  858. <option value="SN">Senegal</option>
  859. <option value="RS">Serbia</option>
  860. <option value="SC">Seychelles</option>
  861. <option value="SL">Sierra Leone</option>
  862. <option value="SG">Singapore</option>
  863. <option value="SK">Slovakia</option>
  864. <option value="SI">Slovenia</option>
  865. <option value="SB">Solomon Islands</option>
  866. <option value="SO">Somalia</option>
  867. <option value="ZA">South Africa</option>
  868. <option value="ES">Spain</option>
  869. <option value="LK">Sri Lanka</option>
  870. <option value="SD">Sudan</option>
  871. <option value="SR">Suriname</option>
  872. <option value="SE">Sweden</option>
  873. <option value="CH">Switzerland</option>
  874. <option value="SY">Syria</option>
  875. <option value="TW">Taiwan</option>
  876. <option value="TJ">Tajikistan</option>
  877. <option value="TZ">Tanzania</option>
  878. <option value="TH">Thailand</option>
  879. <option value="TL">Timor-Leste</option>
  880. <option value="TG">Togo</option>
  881. <option value="TO">Tonga</option>
  882. <option value="TT">Trinidad and Tobago</option>
  883. <option value="TN">Tunisia</option>
  884. <option value="TR">Turkey</option>
  885. <option value="TM">Turkmenistan</option>
  886. <option value="TV">Tuvalu</option>
  887. <option value="UG">Uganda</option>
  888. <option value="UA">Ukraine</option>
  889. <option value="AE">United Arab Emirates</option>
  890. <option value="GB">United Kingdom</option>
  891. <option value="US">United States</option>
  892. <option value="UY">Uruguay</option>
  893. <option value="UZ">Uzbekistan</option>
  894. <option value="VU">Vanuatu</option>
  895. <option value="VA">Vatican City</option>
  896. <option value="VE">Venezuela</option>
  897. <option value="VN">Vietnam</option>
  898. <option value="YE">Yemen</option>
  899. <option value="ZM">Zambia</option>
  900. <option value="ZW">Zimbabwe</option>
  901. <!-- …other ISO codes… -->
  902. </select>
  903. </fieldset>
  904. <!-- Buttons -->
  905. <div class="button-row">
  906. <button class="btn-primary" type="submit">Search</button>
  907.    <button class="btn-secondary" id="clear-search" type="button">Clear</button>
  908. <button class="btn-secondary" id="close-search" type="button">Close</button>
  909. </div>
  910. <div class="results-box" id="search-results"></div>
  911. </form>
  912. </div>
  913. <!-- Scripts -->
  914. <script src="dompurify.min.js"></script>
  915. <script defer="" src="chat.js?=1806v2"></script>
  916. <script defer="" src="video-chat.screenshot-enabled.js?=1806"></script>
  917. <div class="flood-warning hidden" id="flood-warning">
  918. <p>
  919.    ⚠️ You are sending messages too quickly.
  920.    Please wait <span id="countdown">5</span> seconds before continuing.
  921.  </p>
  922. <button disabled="" id="continue-button">Continue Chatting</button>
  923. </div>
  924. <div class="mute-warning hidden" id="mute-warning">
  925. <p>💢 You’ve been muted for <span id="mute-timer">60</span> seconds due to spamming!</p>
  926. </div>
  927. <!-- Image Modal Viewer -->
  928. <div class="modal hidden" id="imageModal" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.85);display:flex;align-items:center;justify-content:center;z-index:9999;">
  929. <div style="position:relative;">
  930. <img alt="Chat Image" id="modalImage" src=""/>
  931. <button id="closeModalBtn" style="position:absolute;top:-12px;right:-12px;background:#fff;border:none;border-radius:50%;padding:6px 10px;font-size:20px;cursor:pointer;">×</button>
  932. </div>
  933. </div>
  934. </body>
  935. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda