whois.handle: TT-20240522
whois.name: Contabo GmbH
whois.cidrs: 45.92.10.0/23
whois.created: 2024-05-22T00:00:00.000000
whois.updated: 2024-05-23T00:00:00.000000
whois.handle: ORG-CG338-RIPE
whois.name: Contabo GmbH
whois.address: Aschauer Strasse 32a\n81549\nMunchen\nGERMANY
whois.handle: MH12453-RIPE
whois.name: CONTABO ABUSE DEPARTMENT
whois.email: abuse@contabo.de
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-28T05:46:38.676494
services.banner: HTTP/1.1 200 OK
  Server: nginx/1.18.0 (Ubuntu)
  Date:  <REDACTED>
  Content-Type: text/html
  Last-Modified: Sat, 06 Jul 2024 10:51:37 GMT
  Transfer-Encoding: chunked
  Connection: keep-alive
  ETag: W/"668921b9-264"
  Content-Encoding: gzip
  
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: nginx
services.product: nginx
services.version: 1.18.0
services.cpe: cpe:2.3:a:f5:nginx:1.18.0:*:*:*:*:*:*:*
services.value: default-landing-page
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-28T05:46:38.676494
services.uri: http://45.92.11.174/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Server
services.headers: nginx/1.18.0 (Ubuntu)
services.key: Content-Type
services.headers: text/html
services.key: Date
services.headers: <REDACTED>
services.key: ETag
services.headers: W/"668921b9-264"
services.key: Transfer-Encoding
services.headers: chunked
services.key: Last-Modified
services.headers: Sat, 06 Jul 2024 10:51:37 GMT
services.key: Content-Encoding
services.headers: gzip
services.key: Connection
services.headers: keep-alive
services.html_tags: <title>Welcome to nginx!</title>
services.body: <!DOCTYPE html>
  <html>
  <head>
  <title>Welcome to nginx!</title>
  <style>
      body {
          width: 35em;
          margin: 0 auto;
          font-family: Tahoma, Verdana, Arial, sans-serif;
      }
  </style>
  </head>
  <body>
  <h1>Welcome to nginx!</h1>
  <p>If you see this page, the nginx web server is successfully installed and
  working. Further configuration is required.</p>
  
  <p>For online documentation and support please refer to
  <a href="http://nginx.org/">nginx.org</a>.<br/>
  Commercial support is available at
  <a href="http://nginx.com/">nginx.com</a>.</p>
  
  <p><em>Thank you for using nginx.</em></p>
  </body>
  </html>
  
services.body_hash_sha1: sha1:7dd71afcfb14e105e80b0c0d7fce370a28a41f0a
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-27T13:38:43.803246
services.banner: HTTP/1.1 200 OK
  Server: nginx/1.18.0 (Ubuntu)
  Content-Type: text/html; charset=UTF-8
  Transfer-Encoding: chunked
  Connection: keep-alive
  Cache-Control: max-age=0, must-revalidate, private
  Date:  <REDACTED>
  Expires: Sun, 27 Jul 2025 13:38:51 GMT
  Set-Cookie: PHPSESSID=94hb4n8ttvh5qo6hduvmrgapve; path=/; secure; httponly; samesite=lax
  Content-Encoding: gzip
  
services.version_selected: TLSv1_3
services.cipher_selected: TLS_CHACHA20_POLY1305_SHA256
services.fingerprint_sha256: 9d7c3f1aa6ad2b2ec0d5cf1e246f8d9ae6cbc9fd0755ad37bb974b1f2fb603f3
services.subject_dn: C=US, O=Let's Encrypt, CN=R10
services.issuer_dn: C=US, O=Internet Security Research Group, CN=ISRG Root X1
services.ja4s: t130200_1303_a56c5b993250
services.version: TLSv1_3
services.ja4s: t130200_1303_a56c5b993250
services.version: TLSv1_2
services.ja4s: t120200_cca8_344b4dce5a52
services.names: bluewavemobiles.com www.bluewavemobiles.com
services.issuer_dn: C=US, O=Let's Encrypt, CN=R10
services.common_name: R10
services.country: US
services.organization: Let's Encrypt
services.subject_dn: CN=bluewavemobiles.com
services.common_name: bluewavemobiles.com
services.scan_time: 2025-07-24T16:20:43.656482
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: PHP
services.product: PHP
services.cpe: cpe:2.3:a:php:php:*:*:*:*:*:*:*:*
services.source: OSI_APPLICATION_LAYER
services.part: a
services.vendor: nginx
services.product: nginx
services.version: 1.18.0
services.cpe: cpe:2.3:a:f5:nginx:1.18.0:*:*:*:*:*:*:*
services.value: jquery
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-27T13:38:43.803246
services.uri: https://45.92.11.174/
services.protocol: HTTP/1.1
services.status_reason: OK
services.key: Transfer-Encoding
services.headers: chunked
services.key: Server
services.headers: nginx/1.18.0 (Ubuntu)
services.key: Expires
services.headers: Sun, 27 Jul 2025 13:38:51 GMT
services.key: Cache-Control
services.headers: max-age=0, must-revalidate, private
services.key: Content-Type
services.headers: text/html; charset=UTF-8
services.key: Date
services.headers: <REDACTED>
services.key: Set-Cookie
services.headers: PHPSESSID=94hb4n8ttvh5qo6hduvmrgapve; path=/; secure; httponly; samesite=lax
services.key: Content-Encoding
services.headers: gzip
services.key: Connection
services.headers: keep-alive
services.html_tags: <title>Home
  </title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" />
services.body: <!DOCTYPE html>
  <html>
  <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>Home
  </title>
      <link rel="icon"
            href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
      <style>
  
  
      </style>
              <link rel="stylesheet" href="/build/app.css">
          <link rel="stylesheet" href="/build/easyAdminScss.css">
          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
          
      
              <script src="/build/runtime.js" defer></script><script src="/build/vendors-node_modules_jquery_dist_jquery_js-node_modules_sweetalert2_dist_sweetalert2_all_js-n-9b8a6b.js" defer></script><script src="/build/app.js" defer></script>
          
  <script type="importmap" data-turbo-track="reload">
  {
      "imports": {
          "app": "/assets/app-dc0016dd7797fa0195c09bc9d85cb164.js",
          "/assets/bootstrap.js": "/assets/bootstrap-74cf5266c08da24e686da75e5f398c58.js",
          "/assets/styles/app.scss": "/assets/styles/app-539ca5ce9e271d13098913e86649a6d3.scss",
          "/assets/scripts/home-page.js": "/assets/scripts/home-page-32492eb45c751ad37d6c34ef4d1952b8.js",
          "/assets/scripts/checkout.js": "/assets/scripts/checkout-e03d16adfa07456f339800e6e757fe91.js",
          "/assets/scripts/header.js": "/assets/scripts/header-29047d70b5d09e7cac76e01706c2c141.js",
          "/assets/scripts/register.js": "/assets/scripts/register-a58c5637d287ee01577c206748e49f02.js",
          "/assets/scripts/shoppingBasket.js": "/assets/scripts/shoppingBasket-9a30324393c253ebdcc023310621d67e.js",
          "/assets/scripts/aside.js": "/assets/scripts/aside-442c0ac2f8a30e2c0bb73055de19a283.js",
          "/assets/scripts/addToShoppingBasket.js": "/assets/scripts/addToShoppingBasket-f45066adde0a22f19a16fa08c35e0557.js",
          "@hotwired/stimulus": "/assets/vendor/@hotwired/stimulus/stimulus.index-b5b1d00e42695b8959b4a1e94e3bc92a.js",
          "@symfony/stimulus-bundle": "/assets/@symfony/stimulus-bundle/loader-e1ee9ace0562f2e6a52301e4ccc8627d.js",
          "/assets/@symfony/stimulus-bundle/controllers.js": "/assets/@symfony/stimulus-bundle/controllers-20d1514fd94d72a9c2d52e553862ddfb.js",
          "/assets/@symfony/ux-turbo/turbo_controller.js": "/assets/@symfony/ux-turbo/turbo_controller-ce5e32dafdec0b7752f02e3e2cb25751.js",
          "/assets/controllers/hello_controller.js": "/assets/controllers/hello_controller-55882fcad241d2bea50276ea485583bc.js",
          "@hotwired/turbo": "/assets/vendor/@hotwired/turbo/turbo.index-810f44ef1a202a441e4866b7a4c72d11.js"
      }
  }
  </script>
  <!-- ES Module Shims: Import maps polyfill for modules browsers without import maps support -->
  <script async src="https://ga.jspm.io/npm:es-module-shims@1.8.0/dist/es-module-shims.js" data-turbo-track="reload"></script>
  <link rel="modulepreload" href="/assets/app-dc0016dd7797fa0195c09bc9d85cb164.js">
  <link rel="modulepreload" href="/assets/bootstrap-74cf5266c08da24e686da75e5f398c58.js">
  <link rel="modulepreload" href="/assets/styles/app-539ca5ce9e271d13098913e86649a6d3.scss">
  <link rel="modulepreload" href="/assets/scripts/home-page-32492eb45c751ad37d6c34ef4d1952b8.js">
  <link rel="modulepreload" href="/assets/scripts/checkout-e03d16adfa07456f339800e6e757fe91.js">
  <link rel="modulepreload" href="/assets/scripts/header-29047d70b5d09e7cac76e01706c2c141.js">
  <link rel="modulepreload" href="/assets/scripts/register-a58c5637d287ee01577c206748e49f02.js">
  <link rel="modulepreload" href="/assets/scripts/shoppingBasket-9a30324393c253ebdcc023310621d67e.js">
  <link rel="modulepreload" href="/assets/scripts/aside-442c0ac2f8a30e2c0bb73055de19a283.js">
  <link rel="modulepreload" href="/assets/scripts/addToShoppingBasket-f45066adde0a22f19a16fa08c35e0557.js">
  <script type="module" data-turbo-track="reload">import 'app';</script>    
  <script type="text/javascript" class="flasher-js">(function() {    var rootScript = 'https://cdn.jsdelivr.net/npm/@flasher/flasher@1.3.2/dist/flasher.min.js';    var FLASHER_FLASH_BAG_PLACE_HOLDER = {};    var options = mergeOptions([], FLASHER_FLASH_BAG_PLACE_HOLDER);    function mergeOptions(first, second) {        return {            context: merge(first.context || {}, second.context || {}),            envelopes: merge(first.envelopes || [], second.envelopes || []),            options: merge(first.options || {}, second.options || {}),            scripts: merge(first.scripts || [], second.scripts || []),            styles: merge(first.styles || [], second.styles || []),        };    }    function merge(first, second) {        if (Array.isArray(first) && Array.isArray(second)) {            return first.concat(second).filter(function(item, index, array) {                return array.indexOf(item) === index;            });        }        return Object.assign({}, first, second);    }    function renderOptions(options) {        if(!window.hasOwnProperty('flasher')) {            console.error('Flasher is not loaded');            return;        }        requestAnimationFrame(function () {            window.flasher.render(options);        });    }    function render(options) {        if ('loading' !== document.readyState) {            renderOptions(options);            return;        }        document.addEventListener('DOMContentLoaded', function() {            renderOptions(options);        });    }    if (1 === document.querySelectorAll('script.flasher-js').length) {        document.addEventListener('flasher:render', function (event) {            render(event.detail);        });            }    if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {        render(options);    } else {        var tag = document.createElement('script');        tag.setAttribute('src', rootScript);        tag.setAttribute('type', 'text/javascript');        tag.onload = function () {            render(options);        };        document.head.appendChild(tag);    }})();</script>
  </head>
  <body>
  
      
  <style>
  
  body{
  background:#0e0370!important;
  }
  
  .header-container.scroll{
  background: linear-gradient(#0e0370, #2c619e)!important;
  }
  
  .changeColor{
  background-color: #ea0015!important;
  }
  
  </style>
      <div class="header-container" style="border-bottom:1px solid #ea0015" >
  
          <div class="header-left-side">
              <img src="/assets/images/logo.png" alt="logo" class="header-logo"
                   style="width: 150px; height: auto; border-radius: 300px;">
          </div>
  
          <a href="https://wa.me/96176686498/?text=Hello!" class="whatsapp-button" id="whatsappButton" style="margin-bottom:20px;text-align:center;"> 
  
          <i class="fa-brands fa-whatsapp" style="height: auto; width: 20px;"></i>
  
  
      </a> 
  
  
  
          
              <div class="header-right-side">
  
                  <a href='/login' class="user-icon" style="background-color: #0e0370!important;">
                      <i class="fa-regular fa-user"></i>
                  </a>
  
                  <a class="burger-icon" style="background-color: #0e0370!important;" >
                      <i class="fa-solid fa-bars"></i>
                  </a>
  
              </div>
  
          
  
      </div>
  
  
  
      <script>
          window.addEventListener('scroll', function() {
              const header = document.querySelector('.header-container');
              if (window.scrollY > 50) { 
                  header.classList.add('scroll');
              } else {
                  header.classList.remove('scroll');
              }
          });
          
          window.addEventListener('DOMContentLoaded', function(){
          	let btnDanger = document.querySelectorAll('.btn-danger');
              
              if(btnDanger && btnDanger.length>0){
              console.log('yesss');
         			btnDanger.forEach(function(button) {
              		button.style.backgroundColor = '#ea0015';
          });     
                  }})
                   
          
      </script>
  
  
  
          <div class="aside" style="background-color: #0e0370!important;">
          <i class="fa-regular fa-circle-xmark close-menu" style="font-size: 24px;color: red;display: flex !important;
          height: 50px;
          width: 50px;
          margin: 5px auto 25px auto;
          text-align: center;
          justify-content: center;
          align-items: center;
          border-radius: 50%;"></i>
  
          
              <div class="aside-login">
  
                  <h3>Login</h3>
                  <h4>Login to get access to our online store</h4>
                  <a href="/login">Login</a>
  
              </div>
  
          
          <hr style="width: 100%">
  
          <div class="nav">
  
              <a href="/" class="aside-link aside-home"><i class="fa-solid fa-house"></i> <span>Home</span></a>
              <a href='/accessories' class="aside-link aside-accessories">
  
                  <i class="fa-solid fa-hat-wizard" style="color:yellow"></i></i><span>Accessories</span>
  
              </a>
  
              <a href='/telecommunication?cn=Alfa' class="aside-link aside-alfa">
  
                  <i class="fa-solid fa-sim-card" style="color:#e7374e;"></i></i><span>Alfa</span>
  
              </a>
  
              <a href='/telecommunication?cn=Mtc' class="aside-link aside-mtc">
  
                  <i class="fa-solid fa-sim-card" style="color:#489cbd;"></i></i><span>Mtc</span>
  
              </a>
  
  
                              <a href='' class="aside-link admin require-admin">
  
                      <i class="fa-solid fa-user-tie" style="color:#2dbbe2"></i></i><span>Admin</span>
  
                  </a>
  
                          <a style='color: gray;pointer-events: none' class="about-us aside-link"><i style="color: gray"
                                                                                      class="fa-solid fa-user-gear"></i>
                  <span>About Us</span></a>
  
          </div>
  
  
          <hr style="width: 100%">
  
  
          <div class="contact-apps-container">
  
              <a class="whatsapp-link" href="https://wa.me/96176686498/?text=Hello Bluewave Team!"><i
                          class="fa-brands fa-whatsapp"></i></a>
              <a class="tiktok-link" href="https://www.tiktok.com/@blue.wave.tecno.center"><i class="fa-brands fa-tiktok"></i></a>
              <a class="insta-link" href="https://www.instagram.com/bluewave_techno_center"><i
                          class="fa-brands fa-instagram"></i></a>
  
  
          </div>
  
      </div>
  
      <script>
          const links = document.querySelectorAll('.aside-link');
          let pageTitle = document.querySelector('title').innerHTML;
  
  
          switch (pageTitle) {
              case 'Accessories' :
                  document.querySelector('.aside-accessories').style.backgroundColor = 'rgb(90 121 147)';
                  break;
  
              case 'Home':
                  document.querySelector('.aside-home').style.backgroundColor = 'rgb(90 121 147)';
                  break;
  
              case 'Telecommunication-Mtc':
                  document.querySelector('.aside-mtc').style.backgroundColor = 'rgb(90 121 147)';
                  break;
  
              case 'Telecommunication-Alfa':
                  document.querySelector('.aside-alfa').style.backgroundColor = 'rgb(90 121 147)';
                  break;
  
              case 'About-us' :
                  document.querySelector('.aside-about').style.backgroundColor = 'rgb(90 121 147)';
  
  
          }
          links.forEach(function (link) {
              link.addEventListener('click', function (event) {
                  let element = event.currentTarget;
  
                  for (let i = 0; i < links.length; i++) {
                      if (links[i] != element) {
                          links[i].style.backgroundColor = 'transparent'
                      }
                  }
  
                  element.style.backgroundColor = 'rgb(90 121 147)';
  
              })
          });
  
          const burgerMenu = document.querySelector('.burger-icon');
          const closeMenu = document.querySelector('.close-menu');
          const asideContainer = document.querySelector('.aside');
  
          const headerLeftSide = document.querySelector('.header-left-side');
  
          const addBalanceBtn = document.querySelector('.add-balance');
  
  
          // closing aside container when it is opened and we click outside
          document.addEventListener('click', function (event) {
  
              const predectedBurgerIcon = event.target.closest('a');
              const clickedInsideAside = event.target.closest('.aside');
  
              if (predectedBurgerIcon != burgerMenu && asideContainer.classList.contains('aside-opened') && !clickedInsideAside) {
  
                  asideContainer.classList.remove('aside-opened');
                  document.body.classList.remove('smaller');
  
              }
  
          })
  
          if (burgerMenu) {
              burgerMenu.addEventListener('click', function () {
                  document.body.classList.toggle('smaller');
                  asideContainer.classList.toggle('aside-opened');
              })
          }
          ;
  
          if (closeMenu) {
              closeMenu.addEventListener('click', function () {
                  document.body.classList.toggle('smaller');
                  asideContainer.classList.toggle('aside-opened');
              })
          }
  
  
          if (headerLeftSide) {
              headerLeftSide.addEventListener('click', function () {
                  window.location.href = '/';
              });
          }
          ;
  
          if (addBalanceBtn) {
  
              addBalanceBtn.addEventListener('click', function () {
                  window.alert('Service not available yet! ')
              })
          }
          ;
  
      </script>
  
  
  
  <style>
  .changeColor{
  	background-color:'#ea00115';
  }
  
  </style>
  
  
  	<a href="/shopping-basket">
  
  		<i class="fa-solid fa-basket-shopping shopping-basket"></i>
  	</a>
  
  
  	<swiper-container class="mySwiper" pagination-clickable="true" navigation="false" space-between="30" centered-slides="true" autoplay-delay="2500" autoplay-disable-on-interaction="false" pagination="false">
  		<swiper-slide><img src="/assets/images/banner/slide-1.jpeg" alt="slide-1"></swiper-slide>
  		<swiper-slide><img src="/assets/images/banner/slide-2.jpeg" alt="slide-2"></swiper-slide>
  		<swiper-slide><img src="/assets/images/banner/slide-3.jpeg" alt="slide-3"></swiper-slide>
  	</swiper-container>
  
  	<div class="info-container">
  
  		<p>
  			For more infos:
  			<a style="font-weight: 500;text-decoration: none;color: black" href="tel:0096176686498">76 686 498</a>
  		</p>
  	</div>
  
  
  	<div class="m-auto" style="max-width: 600px ;width: 90%">
  
  		<div name="search_type_form" class="searchForm-homePage">
  
  			<div class="d-flex flex-column flex-wrap gap-3 search-div align-items-center justify-content-end w-100">
  
  				<input type="text" id="search_type" name="search_type" class="mx-auto">
  				<label class="m-auto" for="search_type_form_gameName">Search</label>
  
  
  			</div>
  
  		</div>
  
  	</div>
  	<section class="products-home flex-row">
  
  
  	</section>
  
  
  	<div class="services-slider">
  
  		<div class="trace">
  			<div class="slide">
  				<img src="/assets/images/services/alfa.jpg" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/whish.png" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/mtc.png" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/western.jpg" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/maleye.jpg" height="100" width="250" alt=""/>
  			</div>
  
  
  			<div class="slide">
  				<img src="/assets/images/services/alfa.jpg" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/whish.png" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/mtc.png" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/western.jpg" height="100" width="250" alt=""/>
  			</div>
  
  			<div class="slide">
  				<img src="/assets/images/services/maleye.jpg" height="100" width="250" alt=""/>
  			</div>
  
  
  		</div>
  
  
  	</div>
  
  
  	<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-element-bundle.min.js"></script>
  
  	<script>
  const input = document.querySelector("#search_type");
  
  if (input.value) {
    document
      .querySelector("#search_type + label")
      .classList.add("translateAndResize");
  } else {
    document
      .querySelector("#search_type + label")
      .classList.remove("translateAndResize");
  }
  input.addEventListener("blur", function (event) {
    const value = event.target.value;
  
    if (value) {
      document
        .querySelector("#search_type + label")
        .classList.add("translateAndResize");
    } else {
      document
        .querySelector("#search_type + label")
        .classList.remove("translateAndResize");
    }
  });
  
  // Load more products on scrolling
  
  let container = document.querySelector(".products-home");
  let isFetching = false;
  let hasMore = true;
  let offSet = 0;
  let isLoading = true;
  let isFiltering = false;
  
  async function fetchData(offset, url) {
    isFetching = true;
  
    try {
      let response = await fetch(`/${url}?offset=${offset}`);
      let data = await response.json();
  
  
      isFetching = false;
      isFiltering = false; // / it is true when the user is filtering using search bar
  
      if (data.max) {
        hasMore = false;
        return;
      }
  
      removeLoadingSpin();
  
      for (let category of data.categories) {
        let a = document.createElement("a");
        a.classList.add("product-container-home");
        a.setAttribute("href", `view-product?c=${category.id}`);
  
        let div = document.createElement("div");
        div.classList.add("product-home");
  
        let h6 = document.createElement("h6");
        h6.innerText = category.name;
        h6.classList.add('changeColor');
  
        let image = document.createElement("img");
  
        if (category.url) {
          image.setAttribute("src", `assets/images/categories/${category.url}`);
        } else {
          image.setAttribute("src", `assets/images/logo.png`);
        }
        image.setAttribute("alt", category.name);
  
        div.appendChild(image);
        div.appendChild(h6);
        a.appendChild(div);
  
        container?.appendChild(a);
      }
  
      offSet++;
    } catch (error) {
      console.log(error);
    }
  }
  
  window.addEventListener("scroll", function () {
    if (isFetching || isFiltering || isLoading || input.value) {
      return;
    }
  
    if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
      fetchData(offSet, "load-categories");
    }
  });
  
  fetchData(offSet, "load-categories"); // fetch some categories when loading
  
  /// Searching for specific category
  // the input is declared at the top of the script
    input.addEventListener("input", async function (event) {
  
  
      if(isLoading){
        input.value= '';
  
        return;
      }
  
      if(isFiltering){
        if(!input.value){
        return;
  
        }
      }
  
      offset = 0;
      hasMore = true;
      isFiltering = true;
  
      let value = event.target.value;
  
      if (value) {
        console.log("there is a value");
        try {
          let response = await fetch("search-categories-by-name?n=" + value);
          let data = await response.json();
  
          document.querySelector(".products-home").innerHTML = "";
          for (let category of data.categories) {
            let a = document.createElement("a");
            a.classList.add("product-container-home");
            a.setAttribute("href", `view-product?c=${category.id}`);
  
            let div = document.createElement("div");
            div.classList.add("product-home");
  
            let h6 = document.createElement("h6");
            h6.innerText = category.name;
  
            let image = document.createElement("img");
  
            if (category.url) {
              image.setAttribute("src", `assets/images/categories/${category.url}`);
            } else {
              image.setAttribute("src", `assets/images/logo.png`);
            }
            image.setAttribute("alt", category.name);
  
            div.appendChild(image);
            div.appendChild(h6);
            a.appendChild(div);
            isFiltering = false;
            container?.appendChild(a);
          }
        } catch (error) {
          console.error("Error:", error);
        }
      } else {
  
        isFiltering = false;
        document.querySelector(".products-home").innerHTML = "";
        console.log(document.querySelector(".products-home"));
        if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
      
  }
  
  
        offSet = 0;
        fetchData(offset, "load-categories");
  
      }
    });
  
  //Loading spin
  function addLoadingSpin() {
    if (container) {
      container.innerHTML = `<div class="loader-container">
  					<div class="loader"></div>
  				</div>`;
      isLoading = true;
    }
  }
  
  function removeLoadingSpin() {
    if (container) {
      let loaderContainer = container.querySelector(".loader-container");
  
      if (loaderContainer) {
        loaderContainer.remove();
      }
      isLoading = false;
    }
  }
  addLoadingSpin(); // add the loading spin till we have have categories to display
  
  
  	</script>
  </body>
  </html>
  
services.body_hash_sha1: sha1:0f7901797930e87c16c8a18852beb5e45df0b281
services.supported_versions: HTTP/1.1
services.protocol: HTTP
services.transport_protocol: TCP
services.scan_time: 2025-07-27T11:08:54.783689
services.banner: HTTP/1.0 200 Document follows
  Server: MiniServ
  Date:  <REDACTED>
  Content-type: text/html; Charset=utf-8
  Connection: close
  
services.path: /
services.endpoint_type: HTTP
services.scan_time: 2025-07-27T11:08:54.783689
services.uri: http://45.92.11.174:15212/
services.protocol: HTTP/1.0
services.status_reason: Document follows
services.key: Server
services.headers: MiniServ
services.key: Date
services.headers: <REDACTED>
services.key: Content-type
services.headers: text/html; Charset=utf-8
services.key: Connection
services.headers: close
services.html_tags: <title>200 &mdash; Document follows</title>
services.body: <html>
  <head>
  <style data-err type="text/css">.err-head,.err-content,.err-body { font-family: Lucida Console, Courier, monospace;}.err-head { color: #f12b2b; font-size: 14px; font-weight: 500; padding: 5px 2.5px 0; text-transform: uppercase; transform: scale(1, 1.5); white-space: pre-wrap;}.err-content { padding-left: 2.5px; white-space: pre-wrap;}.err-content,.err-body { font-size: 12.5px;}.err-head[data-fatal-error-text] { padding: 0;}.err-stack caption,.err-stack > tbody > tr:first-child > td > b { color: #151515; font-weight: bold; text-align: left;}.err-stack > tbody > tr:first-child > td > b { border-bottom: 1px solid #151515;}.err-stack > tbody > tr:first-child>td { font-family: unset; font-size: 14px; height: 25px; text-transform: uppercase; transform: scale(1, 1.2); vertical-align: top;}.err-stack { border: 1px dashed #151515}.err-stack.captured { margin-left: 12px; width: auto}.err-stack tr td { font-family: Lucida Console, Courier, monospace; font-size: 13px; padding: 1px 10px; transform: scale(1, 1.15);}.err-stack tr:not(:first-child) td.captured { font-size: 90%;}.err-stack > tr:first-child > td.captured { font-size: 96%; padding-bottom: 7px; padding-top: 3px;}.err-stack caption.err-head { padding:0 0 10px 0;}.err-stack caption.err-head.captured { color: #222; font-size:98%;}</style>
  <title>200 &mdash; Document follows</title></head>
  <body class="err-body"><h2 class="err-head">Error &mdash; Document follows</h2>
  <p class="err-content">This web server is running in SSL mode. Trying to redirect to <a href='https://vmi1989368.contaboserver.net:15212/'>https://vmi1989368.contaboserver.net:15212/</a> instead ...<script>if (location.protocol != 'https:') {  document.querySelector('a').href='https://'+location.host+'';document.querySelector('a').innerText='https://'+location.host+'';location.protocol='https:'}</script></p>
  </body></html>
  
services.body_hash_sha1: sha1:b6b70eda40175b93a390d104a6dc18fb1315c41c
services.supported_versions: HTTP/1.0
[binary data, 14 values, 366 bytes]