diff --git a/src/utils/openThem.ts b/src/utils/openThem.ts
index e1ebd03b76dec0016626d643841a3c7e2e260b6a..fb00b7217bf915a239fab03f1323de12701128e1 100644
--- a/src/utils/openThem.ts
+++ b/src/utils/openThem.ts
@@ -1,44 +1,81 @@
-export function openThem({it, scrollToId}: {it: string, scrollToId?: string}) {
+export function openThem({ it, scrollToId }: { it: string; scrollToId?: string }) {
     const gotoandopen = (_event: React.MouseEvent<HTMLElement, MouseEvent>) => {
-        console.log("it classname: " + document.getElementById(it)?.className);
-        console.log("it: " + it);
+      if (typeof window !== 'undefined') {
+        console.log(`Opening tab: ${it}`);
+        updateTabs(it, scrollToId);
         
-        let contenttabid = "tab-" + it; 
-        let parent = "parent-" + it; 
-        console.log("we want to open " + it + " and " + contenttabid);
-        let sideitems = document.getElementsByClassName("sideitem"); 
-        let subtabs = document.getElementsByClassName("sidesubtab");
-        let contenttabs = document.getElementsByClassName("enginneeringtab");
-        
-        // Verstecke alle Subtabs und Content-Tabs
-        for (let i = 0; i < subtabs.length; i++) {
-            (subtabs[i] as HTMLElement).style.display = "none";
-            console.log("Hiding sidebar subtab...");
-        }
-        for (let i = 0; i < contenttabs.length; i++) {
-            (contenttabs[i] as HTMLElement).style.display = "none";
-            console.log("Hiding content tab...");
-        }
-        for (let i = 0; i < sideitems.length; i++) {
-            (sideitems[i] as HTMLElement)!.classList.remove("active-sideitem");
-            console.log("Hiding sidebar subtab...");
-        }
-        
-        // Zeige den aktuellen Tab und markiere das entsprechende Sidebar-Item
-        document.getElementById(it)!.style.display = "block";
-        document.getElementById(parent)!.classList.add("active-sideitem");
-        document.getElementById(contenttabid)!.style.display = "block";
-  
         // Update der URL
         const newUrl = `?tab=${it}`;
+        console.log(`Updating URL to: ${newUrl}`);
         window.history.pushState({ tab: it }, '', newUrl);
-  
-        // Scrolle zu der angegebenen ID, falls vorhanden
-        if (scrollToId && document.getElementById(scrollToId)) {
-            console.log("Scrolling to: " + scrollToId);
-            document.getElementById(scrollToId)!.scrollIntoView({ behavior: "smooth" });
-        }
+        
+        // Scrollen nach oben
+        console.log("Scrolling to top...");
+        window.scrollTo({ top: 0, behavior: 'smooth' });
+      }
     };
+  
     return gotoandopen;
   }
+  
+  function updateTabs(it: string, scrollToId?: string) {
+    if (typeof window === 'undefined') return;
+  
+    let contenttabid = "tab-" + it;
+    let parent = "parent-" + it;
+  
+    console.log(`Updating tabs for: ${it}`);
+    
+    // Verstecke alle Subtabs und Content-Tabs
+    const subtabs = document.getElementsByClassName("sidesubtab");
+    const contenttabs = document.getElementsByClassName("enginneeringtab");
+    const sideitems = document.getElementsByClassName("sideitem");
+  
+    for (let i = 0; i < subtabs.length; i++) {
+      (subtabs[i] as HTMLElement).style.display = "none";
+      console.log(`Hiding subtab: ${subtabs[i].id}`);
+    }
+    for (let i = 0; i < contenttabs.length; i++) {
+      (contenttabs[i] as HTMLElement).style.display = "none";
+      console.log(`Hiding content tab: ${contenttabs[i].id}`);
+    }
+    for (let i = 0; i < sideitems.length; i++) {
+      (sideitems[i] as HTMLElement)!.classList.remove("active-sideitem");
+      console.log(`Removing active class from side item: ${sideitems[i].id}`);
+    }
+  
+    // Zeige den aktuellen Tab und markiere das entsprechende Sidebar-Item
+    document.getElementById(it)!.style.display = "block";
+    console.log(`Showing tab: ${it}`);
+    document.getElementById(parent)!.classList.add("active-sideitem");
+    console.log(`Activating side item: ${parent}`);
+    document.getElementById(contenttabid)!.style.display = "block";
+    console.log(`Showing content tab: ${contenttabid}`);
+  
+    // Scrolle zu der angegebenen ID, falls vorhanden
+    if (scrollToId && document.getElementById(scrollToId)) {
+      console.log(`Scrolling to ID: ${scrollToId}`);
+      document.getElementById(scrollToId)!.scrollIntoView({ behavior: "smooth" });
+    } else {
+      console.log(`No scrollToId provided or ID not found: ${scrollToId}`);
+    }
+  }
+  
+  // Füge einen Event Listener für `popstate` hinzu
+  if (typeof window !== 'undefined') {
+    window.addEventListener('popstate', (event) => {
+      console.log('Popstate event triggered');
+      if (event.state) {
+        const tab = event.state.tab;
+        console.log(`Restoring tab: ${tab}`);
+        updateTabs(tab);
+        
+        // Scrollen nach oben beim Zurücknavigieren
+        console.log("Scrolling to top on popstate...");
+        window.scrollTo({ top: 0, behavior: 'smooth' });
+      } else {
+        console.log("No state found in popstate event.");
+      }
+    });
+  }
   
\ No newline at end of file