{"id":16166,"date":"2025-07-11T09:42:48","date_gmt":"2025-07-11T07:42:48","guid":{"rendered":"https:\/\/reisrobotics.com\/?page_id=16166"},"modified":"2025-07-14T07:58:08","modified_gmt":"2025-07-14T05:58:08","slug":"training-calender","status":"publish","type":"page","link":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/","title":{"rendered":"Training calender"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.16&#8243; global_colors_info=&#8220;{}&#8220;][et_pb_row _builder_version=&#8220;4.16&#8243; background_size=&#8220;initial&#8220; background_position=&#8220;top_left&#8220; background_repeat=&#8220;repeat&#8220; global_colors_info=&#8220;{}&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; custom_padding=&#8220;|||&#8220; global_colors_info=&#8220;{}&#8220; custom_padding__hover=&#8220;|||&#8220;][et_pb_code _builder_version=&#8220;4.27.4&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; hover_enabled=&#8220;0&#8243; sticky_enabled=&#8220;0&#8243;]<!-- [et_pb_line_break_holder] --><!DOCTYPE html><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"utf-8\"\/><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><title>Reis Robotics Schulungskurse \u00dcbersicht<\/title><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/index.global.min.css\" rel=\"stylesheet\"\/><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/index.global.min.js\"><\/script><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/locales\/de.global.min.js\"><\/script><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->    \/* Schritt 1: Basis-Schriftgr\u00f6\u00dfe *\/<!-- [et_pb_line_break_holder] -->    html { font-size: 16px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Grundfarbe f\u00fcr das gesamte Dokument *\/<!-- [et_pb_line_break_holder] -->    html, body {<!-- [et_pb_line_break_holder] -->        max-width: 100%;<!-- [et_pb_line_break_holder] -->        overflow-x: hidden;<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* Falls der Body weiter unten einmal ein anderes Background setzt *\/<!-- [et_pb_line_break_holder] -->    body {<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->        font-family: Arial, sans-serif;<!-- [et_pb_line_break_holder] -->        margin: 2rem; \/* statt 2em *\/<!-- [et_pb_line_break_holder] -->        font-size: 1rem; \/* 16px *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Kalender-Container *\/<!-- [et_pb_line_break_holder] -->    #calendarWrapper {<!-- [et_pb_line_break_holder] -->        margin-top: 2rem;<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->        padding: 1rem;<!-- [et_pb_line_break_holder] -->        border-radius: 0.375rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Tabelle und ihr Wrapper *\/<!-- [et_pb_line_break_holder] -->    table,<!-- [et_pb_line_break_holder] -->    #trainingTable {<!-- [et_pb_line_break_holder] -->        width: 100%;<!-- [et_pb_line_break_holder] -->        border-collapse: collapse;<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->        margin-top: 2rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Kopf- und Datenzellen *\/<!-- [et_pb_line_break_holder] -->    th, td {<!-- [et_pb_line_break_holder] -->        padding: 0.625rem;<!-- [et_pb_line_break_holder] -->        border: 0.0625rem solid #666666 !important;<!-- [et_pb_line_break_holder] -->        text-align: left;<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->        color: #ffffff !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Spezieller Header-Stil *\/<!-- [et_pb_line_break_holder] -->    th {<!-- [et_pb_line_break_holder] -->        background-color: #4B5054 !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Verstecke die 5. Spalte wie gehabt *\/<!-- [et_pb_line_break_holder] -->    #trainingTable th:nth-child(5),<!-- [et_pb_line_break_holder] -->    #trainingTable td:nth-child(5) {<!-- [et_pb_line_break_holder] -->        display: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Rest Deiner Styles \u2013 unver\u00e4ndert, aber mit rem *\/<!-- [et_pb_line_break_holder] -->    h1 { color: #333; font-size: 2rem; }<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->    \/* 1) Filter in einer Zeile, die umbricht *\/<!-- [et_pb_line_break_holder] -->\t.filter-section {<!-- [et_pb_line_break_holder] -->\t  display: flex;<!-- [et_pb_line_break_holder] -->\t  flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->\t  gap: 0.5em;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/* 2) Ab einem bestimmten Breakpoint: untereinander *\/<!-- [et_pb_line_break_holder] -->\t@media (max-width: 1100px) {<!-- [et_pb_line_break_holder] -->\t  .filter-section {<!-- [et_pb_line_break_holder] -->\t\tflex-direction: column;<!-- [et_pb_line_break_holder] -->\t  }<!-- [et_pb_line_break_holder] -->\t  .filter-section > label,<!-- [et_pb_line_break_holder] -->\t  .filter-section > select,<!-- [et_pb_line_break_holder] -->\t  .filter-section > button {<!-- [et_pb_line_break_holder] -->\t\twidth: 100%;<!-- [et_pb_line_break_holder] -->\t\tmargin-right: 0;<!-- [et_pb_line_break_holder] -->\t  }<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    label, select, button { margin-right: 0.625rem; }<!-- [et_pb_line_break_holder] -->    select, button {<!-- [et_pb_line_break_holder] -->        padding: 0.375rem 0.75rem;<!-- [et_pb_line_break_holder] -->        border-radius: 0.25rem;<!-- [et_pb_line_break_holder] -->        border: none;<!-- [et_pb_line_break_holder] -->        cursor: pointer;<!-- [et_pb_line_break_holder] -->        font-size: 1rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    button:hover {<!-- [et_pb_line_break_holder] -->        background-color: #d0d0d0;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .active {<!-- [et_pb_line_break_holder] -->        background-color: #0078D7;<!-- [et_pb_line_break_holder] -->        color: white;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .faded {<!-- [et_pb_line_break_holder] -->        opacity: 0.4;<!-- [et_pb_line_break_holder] -->        filter: grayscale(100%);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .request-button {<!-- [et_pb_line_break_holder] -->        background-color: #0078D7;<!-- [et_pb_line_break_holder] -->        color: white;<!-- [et_pb_line_break_holder] -->        padding: 0.3125rem 0.625rem;<!-- [et_pb_line_break_holder] -->        margin-left: 0.625rem;<!-- [et_pb_line_break_holder] -->        border: none;<!-- [et_pb_line_break_holder] -->        border-radius: 0.25rem;<!-- [et_pb_line_break_holder] -->        text-decoration: none;<!-- [et_pb_line_break_holder] -->        font-size: 0.9rem;<!-- [et_pb_line_break_holder] -->        transition: background-color 0.3s ease;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .request-button:hover {<!-- [et_pb_line_break_holder] -->        background-color: #005fa3;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .request-button:focus {<!-- [et_pb_line_break_holder] -->        outline: 0.125rem solid #003f73;<!-- [et_pb_line_break_holder] -->        outline-offset: 0.125rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .request-button.disabled {<!-- [et_pb_line_break_holder] -->        background-color: #ccc;<!-- [et_pb_line_break_holder] -->        color: #666;<!-- [et_pb_line_break_holder] -->        cursor: not-allowed;<!-- [et_pb_line_break_holder] -->        opacity: 0.6;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    select.participant-count {<!-- [et_pb_line_break_holder] -->        padding: 0.375rem 0.625rem;<!-- [et_pb_line_break_holder] -->        font-size: 0.875rem;<!-- [et_pb_line_break_holder] -->        border: 0.0625rem solid #ccc;<!-- [et_pb_line_break_holder] -->        border-radius: 0.25rem;<!-- [et_pb_line_break_holder] -->        background-color: #fff;<!-- [et_pb_line_break_holder] -->        appearance: none;<!-- [et_pb_line_break_holder] -->        background-size: 0.625rem 0.3125rem;<!-- [et_pb_line_break_holder] -->        min-width: 3.75rem;<!-- [et_pb_line_break_holder] -->        margin-left: 0.3125rem;<!-- [et_pb_line_break_holder] -->        cursor: pointer;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .logo-wrapper {<!-- [et_pb_line_break_holder] -->        text-align: center;<!-- [et_pb_line_break_holder] -->        margin-bottom: 1.25rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .logo-wrapper img {<!-- [et_pb_line_break_holder] -->        height: 3.75rem;<!-- [et_pb_line_break_holder] -->        max-width: 100%;<!-- [et_pb_line_break_holder] -->        object-fit: contain;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .fully-booked {<!-- [et_pb_line_break_holder] -->        opacity: 0.4 !important;<!-- [et_pb_line_break_holder] -->        filter: grayscale(100%) !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .tooltip-icon {<!-- [et_pb_line_break_holder] -->        cursor: help;<!-- [et_pb_line_break_holder] -->        margin-left: 0.375rem;<!-- [et_pb_line_break_holder] -->        color: #0078D7;<!-- [et_pb_line_break_holder] -->        font-size: 1rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .tooltip-icon:hover {<!-- [et_pb_line_break_holder] -->        color: #005fa3;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    a[download] {<!-- [et_pb_line_break_holder] -->        margin-left: 0.375rem;<!-- [et_pb_line_break_holder] -->        font-size: 1rem;<!-- [et_pb_line_break_holder] -->        color: #333;<!-- [et_pb_line_break_holder] -->        text-decoration: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    a[download]:hover {<!-- [et_pb_line_break_holder] -->        color: #000;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .table-tooltip-trigger {<!-- [et_pb_line_break_holder] -->        color: #007BFF;<!-- [et_pb_line_break_holder] -->        cursor: pointer;<!-- [et_pb_line_break_holder] -->        transition: color 0.2s ease;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .table-tooltip-trigger:hover {<!-- [et_pb_line_break_holder] -->        color: #0056b3;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* \u00dcberschriften und Filter-Labels *\/<!-- [et_pb_line_break_holder] -->    h1,<!-- [et_pb_line_break_holder] -->    .filter-section label,<!-- [et_pb_line_break_holder] -->    #language-switcher-container span {<!-- [et_pb_line_break_holder] -->      color: #ffffff !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Filter-Buttons und -Selects: wei\u00dfe Schrift *\/<!-- [et_pb_line_break_holder] -->    .filter-section select,<!-- [et_pb_line_break_holder] -->    .filter-section button,<!-- [et_pb_line_break_holder] -->    #toggleCalendar,<!-- [et_pb_line_break_holder] -->    #btnMonth,<!-- [et_pb_line_break_holder] -->    #btn3x4 {<!-- [et_pb_line_break_holder] -->      color: #ffffff !important;<!-- [et_pb_line_break_holder] -->      font-size: 1rem;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Kalender-Wrapper: Text wei\u00df *\/<!-- [et_pb_line_break_holder] -->    #calendarWrapper {<!-- [et_pb_line_break_holder] -->      color: #ffffff;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Kalender-Titel und Kopfzeile *\/<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-toolbar-title,<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-col-header-cell-cushion,<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-daygrid-day-number,<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-event-title {<!-- [et_pb_line_break_holder] -->      color: #ffffff !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Kalender-Navigation-Buttons *\/<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-button {<!-- [et_pb_line_break_holder] -->      background-color: #666 !important;<!-- [et_pb_line_break_holder] -->      color: #ffffff !important;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #calendarWrapper .fc-button:hover {<!-- [et_pb_line_break_holder] -->      background-color: #555 !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Filter-Dropdowns: schwarze Schrift *\/<!-- [et_pb_line_break_holder] -->    .filter-section select {<!-- [et_pb_line_break_holder] -->      color: #000 !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* Buttons im Kalender-Header: schwarze Schrift *\/<!-- [et_pb_line_break_holder] -->    #toggleCalendar,<!-- [et_pb_line_break_holder] -->    #btnMonth,<!-- [et_pb_line_break_holder] -->    #btn3x4 {<!-- [et_pb_line_break_holder] -->      color: #000 !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->\t@media (max-width: 880px) {<!-- [et_pb_line_break_holder] -->  \/* blende Monats- und Jahresansicht-Buttons aus *\/<!-- [et_pb_line_break_holder] -->  #btnMonth,<!-- [et_pb_line_break_holder] -->  #btn3x4 {<!-- [et_pb_line_break_holder] -->    display: none !important;<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] -->\t\/* Tabellen-Header responsive skalieren *\/<!-- [et_pb_line_break_holder] -->\t#trainingTable th {<!-- [et_pb_line_break_holder] -->\t  \/* min 0.8rem, ideal 2vw, max 1.2rem *\/<!-- [et_pb_line_break_holder] -->\t  font-size: clamp(0.8rem, 2vw, 1.2rem) !important;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/* Optional: auch die Datenzellen anpassen *\/<!-- [et_pb_line_break_holder] -->\t#trainingTable td {<!-- [et_pb_line_break_holder] -->\t  \/* min 0.7rem, ideal 1.6vw, max 1rem *\/<!-- [et_pb_line_break_holder] -->\t  font-size: clamp(0.7rem, 1.6vw, 1rem);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/code.jquery.com\/jquery-3.5.1.js\"><\/script><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.datatables.net\/1.10.21\/js\/jquery.dataTables.min.js\"><\/script><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/moment.js\/2.29.1\/moment.min.js\"><\/script><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.datatables.net\/plug-ins\/1.10.21\/sorting\/datetime-moment.js\"><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/cdn.datatables.net\/1.10.21\/css\/jquery.dataTables.min.css\" rel=\"stylesheet\"\/><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><\/p>\n<h1>Anstehende Schulungskurse<\/h1>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div><!-- [et_pb_line_break_holder] --><button id=\"toggleCalendar\" onclick=\"toggleCalendar()\" style=\"margin-bottom: 10px;\">Kalender einklappen \u25b2<\/button><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"calendarWrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"margin-bottom: 1em;\"><!-- [et_pb_line_break_holder] --><button id=\"btnMonth\" onclick=\"switchCalendarView('dayGridMonth')\">Monatsansicht<\/button><!-- [et_pb_line_break_holder] --><button class=\"active\" id=\"btn3x4\" onclick=\"switchCalendarView('multiMonthYear4x1')\">Jahresansicht<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"calendar\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"filter-section\" id=\"filterSection\"><!-- [et_pb_line_break_holder] --><label for=\"titleFilter\">Filtern nach Kurs:<\/label><!-- [et_pb_line_break_holder] --><select id=\"titleFilter\" onchange=\"filterAll()\"><!-- [et_pb_line_break_holder] --><option value=\"all\">Alle<\/option><!-- [et_pb_line_break_holder] --><option value=\"bedienen programmieren i\">Bedienen Programmieren I<\/option><!-- [et_pb_line_break_holder] --><option value=\"service mechanik service elektrik\">Service Mechanik Service Elektrik<\/option><!-- [et_pb_line_break_holder] --><option value=\"programmieren ii\">Programmieren II<\/option><!-- [et_pb_line_break_holder] --><option value=\"provis grundlagen provis offline programmierung\">Provis Grundlagen Provis Offline Programmierung<\/option><!-- [et_pb_line_break_holder] --><option value=\"roboter sps programmierung\">Roboter SPS Programmierung<\/option><!-- [et_pb_line_break_holder] --><option value=\"makroprogrammierung\">Makroprogrammierung<\/option><!-- [et_pb_line_break_holder] --><option value=\"lichtbogensensor\/suchen\">Lichtbogensensor\/Suchen<\/option><!-- [et_pb_line_break_holder] --><option value=\"servo-robot nahtverfolgung\">Servo-Robot Nahtverfolgung<\/option><!-- [et_pb_line_break_holder] --><option value=\"programmieren von sicherheitsbereichen\">Programmieren von Sicherheitsbereichen<\/option><!-- [et_pb_line_break_holder] --><option value=\"automatische bahn generierung\">Automatische Bahn Generierung<\/option><!-- [et_pb_line_break_holder] --><option value=\"workshop\">Workshop<\/option><!-- [et_pb_line_break_holder] --><option value=\"schulungskurs auf anfrage\">Schulungskurs auf Anfrage<\/option><!-- [et_pb_line_break_holder] --><\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><label for=\"controllerFilter\">Filtern nach Steuerungstyp:<\/label><!-- [et_pb_line_break_holder] --><select id=\"controllerFilter\" onchange=\"filterAll()\"><!-- [et_pb_line_break_holder] --><option value=\"All\">All<\/option><!-- [et_pb_line_break_holder] --><option value=\"RSV\">ROBOTstarV<\/option><!-- [et_pb_line_break_holder] --><option value=\"RSVI\">ROBOTstarVI<\/option><!-- [et_pb_line_break_holder] --><option value=\"RSVII\">ROBOTstarVII<\/option><!-- [et_pb_line_break_holder] --><\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><label for=\"quarterFilter\">Filtern nach Datum:<\/label><!-- [et_pb_line_break_holder] --><select id=\"quarterFilter\" onchange=\"filterAll()\"><!-- [et_pb_line_break_holder] --><option value=\"all\">All<\/option><!-- [et_pb_line_break_holder] --><option value=\"2025-Q2\">Q2 2025<\/option><!-- [et_pb_line_break_holder] --><option value=\"2025-Q3\">Q3 2025<\/option><!-- [et_pb_line_break_holder] --><option value=\"2025-Q4\">Q4 2025<\/option><!-- [et_pb_line_break_holder] --><option value=\"2026-Q1\">Q1 2026<\/option><!-- [et_pb_line_break_holder] --><option value=\"2026-Q2\">Q2 2026<\/option><!-- [et_pb_line_break_holder] --><\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><label for=\"spotsFilter\">Anzahl verf\u00fcgbare Pl\u00e4tze:<\/label><!-- [et_pb_line_break_holder] --><select id=\"spotsFilter\" onchange=\"filterAll()\"><!-- [et_pb_line_break_holder] --><option value=\"0\">All<\/option><!-- [et_pb_line_break_holder] --><option value=\"6\">6+<\/option><!-- [et_pb_line_break_holder] --><option value=\"5\">5+<\/option><!-- [et_pb_line_break_holder] --><option value=\"4\">4+<\/option><!-- [et_pb_line_break_holder] --><option value=\"3\">3+<\/option><!-- [et_pb_line_break_holder] --><option value=\"2\">2+<\/option><!-- [et_pb_line_break_holder] --><option value=\"1\">1+<\/option><!-- [et_pb_line_break_holder] --><\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"hinweisKeinGeplanterKurs\" style=\"display: none; margin-top: 10px; background-color: #e7f3ff; border-left: 4px solid #0078D7; padding: 10px 15px; border-radius: 4px; font-size: 14px;\"><!-- [et_pb_line_break_holder] -->  <strong>Gut zu wissen:<\/strong> F\u00fcr diesen Kurs sind aktuell keine festen Termine geplant. Nutzen Sie gerne eine der angezeigten Wochen zur individuellen Anfrage \u2013 wir richten uns nach Ihrem Bedarf!<!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<table id=\"trainingTable\"><!-- [et_pb_line_break_holder] --><\/p>\n<thead><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<th>Schulungskurs<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<th>Steuerungstyp<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<th>Kursbeginn<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<th>Kursende<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<th>Category<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<th>Verf\u00fcgbare Pl\u00e4tze und Kursanfrage<\/th>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tbody><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-02\">02.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-06\">06.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Englisch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-02' data-end='2025-06-06' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Workshop<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-09\">09.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-10\">10.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Englisch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>-2<\/span><!-- [et_pb_line_break_holder] --><span style='margin: 0 10px; color: #a00; font-weight: bold;'>Kurs belegt.<\/span><!-- [et_pb_line_break_holder] --><button type='button' class='request-button disabled' disabled>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Workshop<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-16\">16.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-18\">18.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Englisch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Workshop' data-start='2025-06-16' data-end='2025-06-18' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-23\">23.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-27\">27.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>3<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-23' data-end='2025-06-27' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-06-30\">30.06.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-04\">04.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>4<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-30' data-end='2025-07-04' data-controller='RSVII' data-spots='4'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Programmieren II<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-07\">07.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-09\">09.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Programmieren II' data-start='2025-07-07' data-end='2025-07-09' data-controller='RSVI' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-14\">14.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-18\">18.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>0<\/span><!-- [et_pb_line_break_holder] --><span style='margin: 0 10px; color: #a00; font-weight: bold;'>Kurs belegt.<\/span><!-- [et_pb_line_break_holder] --><button type='button' class='request-button disabled' disabled>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-21\">21.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-25\">25.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-07-21' data-end='2025-07-25' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-07-28\">28.07.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-01\">01.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-07-28' data-end='2025-08-01' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-04\">04.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-08\">08.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>4<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-04' data-end='2025-08-08' data-controller='RSVI' data-spots='4'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Provis Grundlagen Provis Offline Programmierung<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>All<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-11\">11.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-14\">14.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td><\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>5<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Provis Grundlagen Provis Offline Programmierung' data-start='2025-08-11' data-end='2025-08-14' data-controller='All' data-spots='5'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-18\">18.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-22\">22.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>4<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-18' data-end='2025-08-22' data-controller='RSV' data-spots='4'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-25\">25.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-08-29\">29.08.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-25' data-end='2025-08-29' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Provis Grundlagen Provis Offline Programmierung<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-01\">01.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-05\">05.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch Englisch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>4<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Provis Grundlagen Provis Offline Programmierung' data-start='2025-09-01' data-end='2025-09-05' data-controller='RSV' data-spots='4'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-08\">08.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-12\">12.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>3<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-08' data-end='2025-09-12' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-15\">15.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-19\">19.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>4<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-15' data-end='2025-09-19' data-controller='RSVI' data-spots='4'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-22\">22.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-26\">26.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>2<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-22' data-end='2025-09-26' data-controller='RSVI' data-spots='2'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Schulungskurs auf Anfrage<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>All<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-09-29\">29.09.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-02\">02.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td><\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-09-29' data-end='2025-10-02' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-06\">06.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-10\">10.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-06' data-end='2025-10-10' data-controller='RSV' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Schulungskurs auf Anfrage<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>All<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-13\">13.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-17\">17.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-10-13' data-end='2025-10-17' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-20\">20.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-24\">24.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-20' data-end='2025-10-24' data-controller='RSVI' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-27\">27.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-10-31\">31.10.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-27' data-end='2025-10-31' data-controller='RSV' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Programmieren II<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-03\">03.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-05\">05.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Programmieren II' data-start='2025-11-03' data-end='2025-11-05' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-10\">10.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-14\">14.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>3<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-11-10' data-end='2025-11-14' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSV<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-17\">17.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-21\">21.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Englisch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>5<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-11-17' data-end='2025-11-21' data-controller='RSV' data-spots='5'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Service Mechanik Service Elektrik<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-24\">24.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-11-27\">27.11.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Service Mechanik Service Elektrik' data-start='2025-11-24' data-end='2025-11-27' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVI<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-01\">01.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-05\">05.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>1<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-12-01' data-end='2025-12-05' data-controller='RSVI' data-spots='1'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Schulungskurs auf Anfrage<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>All<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-08\">08.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-12\">12.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td><\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-12-08' data-end='2025-12-12' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<tr><!-- [et_pb_line_break_holder] --><\/p>\n<td>Bedienen Programmieren I<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>RSVII<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-15\">15.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td data-date=\"2025-12-19\">19.12.2025<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>Deutsch<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<td>\n<div style='display:flex; justify-content: space-between; align-items: center'><!-- [et_pb_line_break_holder] --><span class='available-spots'>6<\/span><!-- [et_pb_line_break_holder] --><span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span><!-- [et_pb_line_break_holder] --><select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select><!-- [et_pb_line_break_holder] --><button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-12-15' data-end='2025-12-19' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<\/td>\n<p><!-- [et_pb_line_break_holder] --><\/tr>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/tbody>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> <!-- [et_pb_line_break_holder] --><\/thead>\n<\/table>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/table>\n<p>  <!-- Hier endet die Tabelle --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->\t\tfunction addOneDay(dateStr) {<!-- [et_pb_line_break_holder] -->\t\t\tconst date = new Date(dateStr);<!-- [et_pb_line_break_holder] -->\t\t\tdate.setDate(date.getDate() + 1);<!-- [et_pb_line_break_holder] -->\t\t\treturn date.toISOString().split(\"T\")[0]; \/\/ YYYY-MM-DD<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\tfunction extractEventsFromTable() {<!-- [et_pb_line_break_holder] -->\t\t\tconst rows = document.querySelectorAll(\"#trainingTable tbody tr\");<!-- [et_pb_line_break_holder] -->\t\t\tconst events = [];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\tconst cells = row.querySelectorAll(\"td\");<!-- [et_pb_line_break_holder] -->\t\t\t\tconst title = cells[0].textContent.trim();<!-- [et_pb_line_break_holder] -->\t\t\t\tconst controller = cells[1].textContent.trim();<!-- [et_pb_line_break_holder] -->\t\t\t\t\/* const start = cells[2].textContent.trim();<!-- [et_pb_line_break_holder] -->\t\t\t\t' const end = cells[3].textContent.trim();<!-- [et_pb_line_break_holder] -->\t\t\t\t*\/<!-- [et_pb_line_break_holder] -->\t\t\t\tconst start = cells[2].getAttribute(\"data-date\");<!-- [et_pb_line_break_holder] -->\t\t\t\tconst end = cells[3].getAttribute(\"data-date\");<!-- [et_pb_line_break_holder] -->\t\t\t\tconst spots = parseInt(cells[5].textContent.trim());<!-- [et_pb_line_break_holder] -->\t\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\t\tconst today = new Date().setHours(0, 0, 0, 0); \/\/ heute, 00:00 Uhr<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endDate = new Date(end).setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\tif (endDate < today) return; \/\/ \u26d4 Kurs ist in der Vergangenheit \u2192 \u00fcberspringen<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tevents.push({<!-- [et_pb_line_break_holder] -->\t\t\t\ttitle,<!-- [et_pb_line_break_holder] -->\t\t\t\tcontroller,<!-- [et_pb_line_break_holder] -->\t\t\t\tstart,<!-- [et_pb_line_break_holder] -->\t\t\t\tend: addOneDay(end), \/\/ Hier wird nur f\u00fcr den Kalender verl\u00e4ngert<!-- [et_pb_line_break_holder] -->\t\t\t\tspots<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\treturn events;<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tlet allEvents = extractEventsFromTable();<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\tlet calendar;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->    function filterAll() {<!-- [et_pb_line_break_holder] -->\t\tconst titleFilter = document.getElementById(\"titleFilter\").value.toLowerCase();<!-- [et_pb_line_break_holder] -->\t\tconst controllerFilter = document.getElementById(\"controllerFilter\").value.toLowerCase();<!-- [et_pb_line_break_holder] -->\t\tconst spotsFilter = parseInt(document.getElementById(\"spotsFilter\").value) || 0;<!-- [et_pb_line_break_holder] -->\t\tconst quarterFilter = document.getElementById(\"quarterFilter\").value; \/\/ e.g. \"2025-Q2\"<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\/\/ Hilfsfunktion: pr\u00fcft, ob ein Datum in einem Quartal liegt<!-- [et_pb_line_break_holder] -->\t\tfunction isInQuarter(dateStr, quarterValue) {<!-- [et_pb_line_break_holder] -->\t\t\tif (quarterValue === \"all\") return true;<!-- [et_pb_line_break_holder] -->\t\t\tconst date = new Date(dateStr);<!-- [et_pb_line_break_holder] -->\t\t\tconst [year, quarter] = quarterValue.split(\"-Q\");<!-- [et_pb_line_break_holder] -->\t\t\tconst q = parseInt(quarter);<!-- [et_pb_line_break_holder] -->\t\t\tconst startMonth = (q - 1) * 3;<!-- [et_pb_line_break_holder] -->\t\t\treturn (<!-- [et_pb_line_break_holder] -->\t\t\t\tdate.getFullYear() === parseInt(year) &&<!-- [et_pb_line_break_holder] -->\t\t\t\tdate.getMonth() >= startMonth &&<!-- [et_pb_line_break_holder] -->\t\t\t\tdate.getMonth() < startMonth + 3<!-- [et_pb_line_break_holder] -->\t\t\t);<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\/\/ Tabelle<!-- [et_pb_line_break_holder] -->\t\tconst table = document.getElementById(\"trainingTable\");<!-- [et_pb_line_break_holder] -->\t\tconst tbody = table.querySelector(\"tbody\");<!-- [et_pb_line_break_holder] -->\t\t\/\/const rows = Array.from(tbody.getElementsByTagName(\"tr\"));<!-- [et_pb_line_break_holder] -->\t\tconst rows = Array.from(tbody.querySelectorAll(\"tr:not(.past-course)\"));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\tconst today = new Date().setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] -->\t\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endDateStr = row.cells[3].getAttribute(\"data-date\");<!-- [et_pb_line_break_holder] -->\t\t\t\tif (!endDateStr) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\tconst endDate = new Date(endDateStr).setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] -->\t\t\t\tif (endDate < today) {<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.style.display = \"none\";         \/\/ Verstecke vergangene Zeilen<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.dataset.match = \"0\";            \/\/ Markiere sie als \u201enicht matchend\u201c<!-- [et_pb_line_break_holder] -->\t\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\/\/const title = row.cells[0].textContent.toLowerCase();<!-- [et_pb_line_break_holder] -->\t\t\tconst title = row.querySelector(\".course-title\").textContent.toLowerCase();<!-- [et_pb_line_break_holder] -->\t\t\tconst controller = row.cells[1].textContent.toLowerCase();<!-- [et_pb_line_break_holder] -->\t\t\t\/\/const startDate = row.cells[2].textContent;<!-- [et_pb_line_break_holder] -->\t\t\tconst startDate = row.cells[2].getAttribute('data-date');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tconst spots = parseInt(row.cells[5].textContent);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tconst titleMatch = (titleFilter === \"all\" || title === titleFilter);<!-- [et_pb_line_break_holder] -->\t\t\tconst controllerMatch = (controllerFilter === \"all\" || controller === controllerFilter);<!-- [et_pb_line_break_holder] -->\t\t\tconst spotsMatch = (spots >= spotsFilter);<!-- [et_pb_line_break_holder] -->\t\t\tconst quarterMatch = isInQuarter(startDate, quarterFilter);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tconst match = titleMatch && controllerMatch && spotsMatch && quarterMatch;<!-- [et_pb_line_break_holder] -->\t\t\trow.classList.toggle(\"faded\", !match);<!-- [et_pb_line_break_holder] -->\t\t\trow.dataset.match = match ? \"1\" : \"0\";<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\/\/ Pr\u00fcfen, ob der Kurs \u00fcberhaupt existiert<!-- [et_pb_line_break_holder] -->\t\t\tconst hasMatchingCourse = rows.some(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\tconst titleEl = row.querySelector(\".course-title\");<!-- [et_pb_line_break_holder] -->\t\t\t\tconst title = titleEl ? titleEl.textContent.toLowerCase() : \"\";<!-- [et_pb_line_break_holder] -->\t\t\t\treturn title === titleFilter && row.dataset.match === \"1\";<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tif (!hasMatchingCourse && titleFilter !== \"schulungskurs auf anfrage\") {<!-- [et_pb_line_break_holder] -->\t\t\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\t  const titleEl = row.querySelector(\".course-title\");<!-- [et_pb_line_break_holder] -->\t\t\t\t  const title = titleEl ? titleEl.textContent.toLowerCase() : \"\";<!-- [et_pb_line_break_holder] -->\t\t\t\t  const startDate = row.cells[2].getAttribute('data-date');<!-- [et_pb_line_break_holder] -->\t\t\t\t  const quarterMatch = isInQuarter(startDate, quarterFilter);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\t  if (title === \"schulungskurs auf anfrage\" && quarterMatch) {<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.classList.remove(\"faded\");<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.dataset.match = \"1\";<!-- [et_pb_line_break_holder] -->\t\t\t\t  }<!-- [et_pb_line_break_holder] -->\t\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\trows.sort((a, b) => b.dataset.match - a.dataset.match);<!-- [et_pb_line_break_holder] -->\t\trows.forEach(row => tbody.appendChild(row));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\/\/ Kalender<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\/\/ Kalender aktualisieren basierend auf Tabellenergebnissen<!-- [et_pb_line_break_holder] -->\t\tcalendar.removeAllEvents();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tconst matchedTableEntries = new Set();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t  if (row.dataset.match === \"1\") {<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ const title = row.cells[0].textContent.trim();<!-- [et_pb_line_break_holder] -->\t\t\tconst titleEl = row.querySelector(\".course-title\");<!-- [et_pb_line_break_holder] -->\t\t\tconst title = titleEl ? titleEl.textContent.trim() : \"\";<!-- [et_pb_line_break_holder] -->\t\t\tconst start = row.cells[2].getAttribute(\"data-date\");<!-- [et_pb_line_break_holder] -->\t\t\tmatchedTableEntries.add(`${title}__${start}`);<!-- [et_pb_line_break_holder] -->\t\t  }<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tcalendar.batchRendering(() => {<!-- [et_pb_line_break_holder] -->\t\t  allEvents.forEach(ev => {<!-- [et_pb_line_break_holder] -->\t\t\tconst matchKey = `${ev.title}__${ev.start}`;<!-- [et_pb_line_break_holder] -->\t\t\tconst isVisible = matchedTableEntries.has(matchKey);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\tcalendar.addEvent({<!-- [et_pb_line_break_holder] -->\t\t\t  ...ev,<!-- [et_pb_line_break_holder] -->\t\t\t  extendedProps: {<!-- [et_pb_line_break_holder] -->\t\t\t\tlocation: ev.location,<!-- [et_pb_line_break_holder] -->\t\t\t\tcontroller: ev.controller,<!-- [et_pb_line_break_holder] -->\t\t\t\tspots: ev.spots<!-- [et_pb_line_break_holder] -->\t\t\t  },<!-- [et_pb_line_break_holder] -->\t\t\t  classNames: isVisible ? [] : ['faded']<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t  });<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ Sichtbarkeit des Hinweistexts steuern<!-- [et_pb_line_break_holder] -->\t\tconst hinweis = document.getElementById(\"hinweisKeinGeplanterKurs\");<!-- [et_pb_line_break_holder] -->\t\tconst matchedRows = rows.filter(row => row.dataset.match === \"1\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\/\/ Pr\u00fcfen: Gibt es einen sichtbaren Kurs au\u00dfer \"Schulungskurs auf Anfrage\"?<!-- [et_pb_line_break_holder] -->\t\tconst andereKurseGefunden = matchedRows.some(row => {<!-- [et_pb_line_break_holder] -->\t\t  const kursEl = row.querySelector(\".course-title\");<!-- [et_pb_line_break_holder] -->\t\t  const kurs = kursEl ? kursEl.textContent.trim() : \"\";<!-- [et_pb_line_break_holder] -->\t\t  return kurs !== \"Schulungskurs auf Anfrage\";<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tif (titleFilter !== \"all\" && matchedRows.length > 0 && !andereKurseGefunden) {<!-- [et_pb_line_break_holder] -->\t\t  hinweis.style.display = \"block\";<!-- [et_pb_line_break_holder] -->\t\t} else {<!-- [et_pb_line_break_holder] -->\t\t  hinweis.style.display = \"none\";<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function toggleCalendar() {<!-- [et_pb_line_break_holder] -->            const wrapper = document.getElementById(\"calendarWrapper\");<!-- [et_pb_line_break_holder] -->            const toggleBtn = document.getElementById(\"toggleCalendar\");<!-- [et_pb_line_break_holder] -->            const visible = wrapper.style.display !== \"none\";<!-- [et_pb_line_break_holder] -->            wrapper.style.display = visible ? \"none\" : \"block\";<!-- [et_pb_line_break_holder] -->            toggleBtn.innerHTML = visible ? \"Kalender anzeigen \u25bc\" : \"Kalender einklappen \u25b2\";<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function switchCalendarView(view) {<!-- [et_pb_line_break_holder] -->            calendar.changeView(view);<!-- [et_pb_line_break_holder] -->            document.getElementById(\"btnMonth\").classList.remove(\"active\");<!-- [et_pb_line_break_holder] -->            document.getElementById(\"btn3x4\").classList.remove(\"active\");<!-- [et_pb_line_break_holder] -->            if (view === \"dayGridMonth\") {<!-- [et_pb_line_break_holder] -->                document.getElementById(\"btnMonth\").classList.add(\"active\");<!-- [et_pb_line_break_holder] -->            } else {<!-- [et_pb_line_break_holder] -->                document.getElementById(\"btn3x4\").classList.add(\"active\");<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        document.addEventListener('DOMContentLoaded', function () {<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\/\/Tabelle in deutsches FOrmat wandeln<!-- [et_pb_line_break_holder] -->\t\t\/\/ \/*<!-- [et_pb_line_break_holder] -->\t\tconst rows = document.querySelectorAll(\"#trainingTable tbody tr\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\tconst startCell = row.cells[2]; \/\/ Start Date column<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endCell = row.cells[3];   \/\/ End Date column<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\tstartCell.textContent = formatToGermanDate(startCell.textContent);<!-- [et_pb_line_break_holder] -->\t\t\t\tendCell.textContent = formatToGermanDate(endCell.textContent);<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\tconst today = new Date().setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] -->\t\t\trows.forEach(row => {<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endCell = row.cells[3];<!-- [et_pb_line_break_holder] -->\t\t\t\tif (!endCell) return;<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endDateStr = endCell.getAttribute(\"data-date\");<!-- [et_pb_line_break_holder] -->\t\t\t\tif (!endDateStr) return;<!-- [et_pb_line_break_holder] -->\t\t\t\tconst endDate = new Date(endDateStr).setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] -->\t\t\t\tif (endDate < today) {<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.classList.add(\"past-course\");<!-- [et_pb_line_break_holder] -->\t\t\t\t\trow.style.display = \"none\";<!-- [et_pb_line_break_holder] -->\t\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tfunction formatToGermanDate(dateStr) {<!-- [et_pb_line_break_holder] -->\t\t\tconst parts = dateStr.split(\"-\");<!-- [et_pb_line_break_holder] -->\t\t\tif (parts.length !== 3) return dateStr;<!-- [et_pb_line_break_holder] -->\t\t\treturn `${parts[2]}.${parts[1]}.${parts[0]}`; \/\/ DD.MM.YYYY<!-- [et_pb_line_break_holder] -->\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\/\/ *\/<!-- [et_pb_line_break_holder] -->\t\t\/\/Irgendwas anderes<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->\t\t\/\/ helper-Funktion f\u00fcr ein dynamisches Ratio<!-- [et_pb_line_break_holder] -->\t\tfunction getAspectRatio() {<!-- [et_pb_line_break_holder] -->\t\t  \/\/ Basis-Ratio: Breite\/H\u00f6he<!-- [et_pb_line_break_holder] -->\t\t  let ratio = window.innerWidth \/ window.innerHeight;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t  \/\/ nur unterhalb des 880px-Breakpoints anpassen<!-- [et_pb_line_break_holder] -->\t\t  if (window.innerWidth < 880) {<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ wenn die H\u00f6he unter 450px f\u00e4llt, den Kalender<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ noch weiter stauchen \u2013 linear von 1\u00d7 (bei 450px)<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ bis 2\u00d7 (bei 0px)<!-- [et_pb_line_break_holder] -->\t\t\tconst h = window.innerHeight;<!-- [et_pb_line_break_holder] -->\t\t\tconst factor = h < 450<!-- [et_pb_line_break_holder] -->\t\t\t  ? 1 + (450 - h) \/ 450    \/\/ bei h=450 \u2192 factor=1; bei h=0 \u2192 factor=2<!-- [et_pb_line_break_holder] -->\t\t\t  : 1;<!-- [et_pb_line_break_holder] -->\t\t\tratio *= factor;<!-- [et_pb_line_break_holder] -->\t\t  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t  return ratio;<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t\t\t\t<!-- [et_pb_line_break_holder] -->         var calendarEl = document.getElementById('calendar');<!-- [et_pb_line_break_holder] -->\t\t\tcalendar = new FullCalendar.Calendar(calendarEl, {<!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t  locale: 'de',<!-- [et_pb_line_break_holder] -->\t\t\t   \/\/ 1) Ansicht und ratio je nach Breite<!-- [et_pb_line_break_holder] -->\t\t\t  initialView: window.innerWidth < 880 ? 'dayGridMonth' : 'multiMonthYear4x1',<!-- [et_pb_line_break_holder] -->\t\t\t  height: 'auto',<!-- [et_pb_line_break_holder] -->\t\t\t  aspectRatio: window.innerWidth < 880 ? getAspectRatio() : 1.3,<!-- [et_pb_line_break_holder] -->\t\t\t  views: {<!-- [et_pb_line_break_holder] -->\t\t\t\tmultiMonthYear4x1: {<!-- [et_pb_line_break_holder] -->\t\t\t\t  type: 'multiMonth',<!-- [et_pb_line_break_holder] -->\t\t\t\t  duration: { months: 2 },<!-- [et_pb_line_break_holder] -->\t\t\t\t  multiMonthMaxColumns: 2<!-- [et_pb_line_break_holder] -->\t\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\t  },<!-- [et_pb_line_break_holder] -->\t\t\t  titleFormat: { day: '2-digit', month: '2-digit', year: 'numeric' },<!-- [et_pb_line_break_holder] -->\t\t\t  aspectRatio: getAspectRatio(),<!-- [et_pb_line_break_holder] -->\t\t\t  events: allEvents.map(ev => ({<!-- [et_pb_line_break_holder] -->\t\t\t\t...ev,<!-- [et_pb_line_break_holder] -->\t\t\t\ttitle: ev.title,<!-- [et_pb_line_break_holder] -->\t\t\t\textendedProps: {<!-- [et_pb_line_break_holder] -->\t\t\t\t  location: ev.location,<!-- [et_pb_line_break_holder] -->\t\t\t\t  controller: ev.controller,<!-- [et_pb_line_break_holder] -->\t\t\t\t  spots: ev.spots<!-- [et_pb_line_break_holder] -->\t\t\t\t},<!-- [et_pb_line_break_holder] -->\t\t\t\tclassNames: ev.spots === 0 ? ['fully-booked'] : []<!-- [et_pb_line_break_holder] -->\t\t\t  })),<!-- [et_pb_line_break_holder] -->\t\t\t  <!-- [et_pb_line_break_holder] -->\t\t\t    \/\/ 2) bei Resize ratio & View aktualisieren, Scrollbar vermeiden<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\twindowResize() {<!-- [et_pb_line_break_holder] -->\t\t\tconst isSmall = window.innerWidth < 880;<!-- [et_pb_line_break_holder] -->\t\t\tconst newView = isSmall ? 'dayGridMonth' : 'multiMonthYear4x1';<!-- [et_pb_line_break_holder] -->\t\t\tif (calendar.view.type !== newView) {<!-- [et_pb_line_break_holder] -->\t\t\t  calendar.changeView(newView);<!-- [et_pb_line_break_holder] -->\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\tcalendar.setOption('aspectRatio', isSmall ? getAspectRatio() : 1.3);<!-- [et_pb_line_break_holder] -->\t\t  },<!-- [et_pb_line_break_holder] -->\t\t<!-- [et_pb_line_break_holder] -->                <!-- [et_pb_line_break_holder] -->    eventDidMount: function(info) {<!-- [et_pb_line_break_holder] -->        info.el.addEventListener('click', function() {<!-- [et_pb_line_break_holder] -->            const rows = document.querySelectorAll(\"#trainingTable tbody tr\");<!-- [et_pb_line_break_holder] -->            rows.forEach(row => {<!-- [et_pb_line_break_holder] -->                row.style.backgroundColor = \"\";<!-- [et_pb_line_break_holder] -->                \/\/const title = row.cells[0].textContent;<!-- [et_pb_line_break_holder] -->\t\t\t\tconst titleEl = row.querySelector(\".course-title\");<!-- [et_pb_line_break_holder] -->\t\t\t\tconst title = titleEl ? titleEl.textContent.trim() : \"\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/const start = row.cells[2].textContent;<!-- [et_pb_line_break_holder] -->\t\t\t\tconst start = row.cells[2].getAttribute('data-date');<!-- [et_pb_line_break_holder] -->\t\t\t\tconst calendarStart = info.event.startStr.slice(0, 10);<!-- [et_pb_line_break_holder] -->                \/\/if (title === info.event.title && start === info.event.startStr.substring(0, 10)) {<!-- [et_pb_line_break_holder] -->\t\t\t\tif (title === info.event.title && start === calendarStart) {<!-- [et_pb_line_break_holder] -->                    row.scrollIntoView({ behavior: 'smooth', block: 'center' });<!-- [et_pb_line_break_holder] -->                    row.style.backgroundColor = '#ffffcc';<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->                    const tooltip = `<!-- [et_pb_line_break_holder] -->                        <strong>${info.event.title}<\/strong><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->                        <em>${info.event.extendedProps.controller}<\/em><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->                        <!-- [et_pb_line_break_holder] -->                        Verf\u00fcgbare Pl\u00e4tze: ${info.event.extendedProps.spots}<!-- [et_pb_line_break_holder] -->                    `;<!-- [et_pb_line_break_holder] -->                    const tooltipEl = document.createElement('div');<!-- [et_pb_line_break_holder] -->                    tooltipEl.innerHTML = tooltip;<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.position = 'absolute';<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.background = '#333';<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.color = '#fff';<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.padding = '6px 10px';<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.borderRadius = '4px';<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.fontSize = '13px';<!-- [et_pb_line_break_holder] -->\t\t\t\t\ttooltipEl.style.lineHeight = '1.6';  \/\/ oder z.B. '1.8' f\u00fcr mehr Abstand<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.zIndex = 1000;<!-- [et_pb_line_break_holder] -->                    tooltipEl.style.display = 'none';<!-- [et_pb_line_break_holder] -->                    document.body.appendChild(tooltipEl);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                    info.el.addEventListener('mouseenter', function(e) {<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.display = 'block';<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.left = e.pageX + 10 + 'px';<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.top = e.pageY + 10 + 'px';<!-- [et_pb_line_break_holder] -->                    });<!-- [et_pb_line_break_holder] -->                    info.el.addEventListener('mousemove', function(e) {<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.left = e.pageX + 10 + 'px';<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.top = e.pageY + 10 + 'px';<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t\/\/ max. Fensterbreite\/-h\u00f6he abfragen<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t  const maxX = window.innerWidth  - tooltipEl.offsetWidth - 10;<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t  const maxY = window.innerHeight - tooltipEl.offsetHeight - 10;<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t  tooltipEl.style.left = Math.min(left, maxX) + 'px';<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t  tooltipEl.style.top  = Math.min(top,  maxY) + 'px';<!-- [et_pb_line_break_holder] -->\t\t\t\t\t\t<!-- [et_pb_line_break_holder] -->                    });<!-- [et_pb_line_break_holder] -->                    info.el.addEventListener('mouseleave', function() {<!-- [et_pb_line_break_holder] -->                        tooltipEl.style.display = 'none';<!-- [et_pb_line_break_holder] -->                    });<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\t\/\/fillFilterOptions(); \/\/ Beim Start aufrufen<!-- [et_pb_line_break_holder] -->\t\t\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ \ud83d\udee0\ufe0f Kurszelle (erste Spalte) mit Tooltip und PDF-Link anreichern<!-- [et_pb_line_break_holder] -->document.querySelectorAll(\"#trainingTable tbody tr\").forEach(row => {<!-- [et_pb_line_break_holder] -->\tconst kursCell = row.cells[0];<!-- [et_pb_line_break_holder] -->\tconst kursName = kursCell.textContent.trim();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/\/ \ud83d\udd27 Statisch hinterlegte Beschreibungen & PDF-Dateinamen<!-- [et_pb_line_break_holder] -->const kursInfos = {<!-- [et_pb_line_break_holder] -->  \"Bedienen Programmieren I\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Bedienen & Programmieren 1 <!\u2013- [et_pb_br_holder] -\u2013>Lernen Sie das Bedienen & Programmieren der Roboter mit der Reis ROBOTStar Steuerung kennen: <!\u2013- [et_pb_br_holder] -\u2013> Die Probleml\u00f6sung h\u00e4ufiger Fehler & ein sicherer Umgang mit dem System, gepaart mit ersten Programmierkenntnissen,<!\u2013- [et_pb_br_holder] -\u2013> vermindern bereits stark die Ausfallzeit und erh\u00f6hen die Produktivit\u00e4t Ihrer Anlage.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Bedienen & Programmieren I\", file: \"01_Schulungsinhalt_Bedienen_Programmieren_1.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Service Mechanik Service Elektrik\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Service Mechanik <!\u2013- [et_pb_br_holder] -\u2013>Sie wollen die sachgerechte Wartung und anstehende Reparaturarbeiten selbst in die Hand nehmen? <!\u2013- [et_pb_br_holder] -\u2013> Hier lernen Sie, wie Sie die Lebenszeit ihrer Roboter erh\u00f6hen und mechanische Baugruppen selbst austauschen k\u00f6nnen. <!\u2013- [et_pb_br_holder] -\u2013> <!\u2013- [et_pb_br_holder] -\u2013> Service Elektrik <!\u2013- [et_pb_br_holder] -\u2013> Eine fachgerechte St\u00f6rungsdiagnose und St\u00f6rungsbeseitigung der Elektrik bringt ihre Anlage schnellstm\u00f6glich wieder in Produktionsbetrieb. <!\u2013- [et_pb_br_holder] -\u2013> Wir bringen Ihnen bei, wie sie Ihre Anlage m\u00f6glichst schnell wieder elektrisch in Betrieb nehmen.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Service Mechanik RV\", file: \"03_Schulungsinhalt_Service Mechanik RV-Kinematik.pdf\" },<!-- [et_pb_line_break_holder] -->\t  { name: \"Schulungsinhalt Service Mechanik RL\", file: \"02_Schulungsinhalt_Service Mechanik RL-Kinematik.pdf\" },<!-- [et_pb_line_break_holder] -->\t  { name: \"Schulungsinhalt Service Elektrik\", file: \"04_Schulungsinhalt_Service Elektrik Systemtechnik.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Programmieren II\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Programmieren II <!\u2013- [et_pb_br_holder] -\u2013> Vertiefen Sie ihre bestehenden Programmierkenntnisse & Beschleunigen Sie ihre Programmiergeschwindigkeit mit n\u00fctzlichen Features. <!\u2013- [et_pb_br_holder] -\u2013> Au\u00dferdem: Erlernen von spezifischen Fertigkeiten f\u00fcr Bahnanwendungen wie Schwei\u00dfen, Schneiden oder Kleben.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Programmieren II\", file: \"05_Schulungsinhalt_Programmieren_2.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Provis Grundlagen Provis Offline Programmierung\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Provis Grundlagen <!\u2013- [et_pb_br_holder] -\u2013> Mittels unseres Offlinetools Provis k\u00f6nnen Sie Ihre Anlage bereits im Voraus programmieren und potentielle Schwachstellen erkennen. <!\u2013- [et_pb_br_holder] -\u2013> Lernen Sie mit diesem Kurs den Einstieg in die Welt der Offlineprogrammierung kennen. <!\u2013- [et_pb_br_holder] -\u2013> <!\u2013- [et_pb_br_holder] -\u2013> Provis Offline Programmierung <!\u2013- [et_pb_br_holder] -\u2013> Mit der Weiterf\u00fchrung unseres Kurses zu dem Offlinetool Provis k\u00f6nnen Sie komplette virtuelle Welten erstellen, <!\u2013- [et_pb_br_holder] -\u2013> welche ihre Offlineprogrammierung von Roboterbewegungen auf das n\u00e4chste Level heben wird.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Provis Grundlagen\", file: \"06_Schulungsinhalt_Provis Grundlagen.pdf\" },<!-- [et_pb_line_break_holder] -->\t  { name: \"Schulungsinhalt Provis Offline Programmierung\", file: \"07_Schulungsinhalt_Provis_Grundlagen_Offline.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Roboter SPS Programmierung\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Roboter SPS Programmierung <!\u2013- [et_pb_br_holder] -\u2013> Unsere Reis ROBOTstar Steuerungen verf\u00fcgen \u00fcber eine interne SPS. <!\u2013- [et_pb_br_holder] -\u2013> Mittels dieser k\u00f6nnen Sie parallele Abl\u00e4ufe steuern, komplexe Logikverkn\u00fcpfungen erstellen und Echtzeitsystemvariablen ansteuern und auswerten.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Roboter SPS Programmierung\", file: \"08_Schulungsinhalt_Roboter_SPS_Programmierung.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Makroprogrammierung\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Makroprogrammierung <!\u2013- [et_pb_br_holder] -\u2013> Mittels Makrofunktionen erleichtern und erm\u00f6glichen Sie ihren Anlagenbedienern den Umgang mit Greifern, Schwei\u00dfzangen und vielen weiteren Dingen. <!\u2013- [et_pb_br_holder] -\u2013> Hier lernen Sie diese in Betrieb zu nehmen, zu konfigurieren und zu programmieren.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Makroprogrammierung\", file: \"09_Schulungsinhalt_Makroprogrammierung.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Lichtbogensensor\/Suchen\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Lichtbogensensor\/Suchen <!\u2013- [et_pb_br_holder] -\u2013> Das Programmieren von Lichtbogenschwei\u00dfen mit der Suchen-Funktion erfordert spezielle Fachkenntnisse. <!\u2013- [et_pb_br_holder] -\u2013> In dieser Schulung zeigen wir Ihnen die h\u00e4ufigsten Fehlerquellen und die beste Programmiervorgehensweise, um Ihren Programmieraufwand und Ihre Ausschussrate zu reduzieren.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Lichtbogensensor\/Suchen\", file: \"10_Schulungsinhalt_Lichtbogensensor_Suchen.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Servo-Robot Nahtverfolgung\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Servo-Robot Nahtverfolgung <!\u2013- [et_pb_br_holder] -\u2013> Mit unserer integrierten Servo-Robot Nahtverfolgung lassen sich toleranzanf\u00e4llige Bauteile verschwei\u00dfen, <!\u2013- [et_pb_br_holder] -\u2013> ohne den Roboter immer wieder neu zu programmieren und die Schwei\u00dfbahn neu ausrichten zu m\u00fcssen.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Servo-Robot Nahtverfolgung\", file: \"11_Schulungsinhalt_Servo_Robot_Nahtverfolgung.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Programmieren von Sicherheitsbereichen\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Programmieren von Sicherheitsbereichen <!\u2013- [et_pb_br_holder] -\u2013> Das Programmieren von Sicherheitsbereichen sind das A und O, um Ihren Mitarbeitern die erforderliche Sicherheit neben Ihrer Anlage zu gew\u00e4hrleisten.<!\u2013- [et_pb_br_holder] -\u2013> Dazu z\u00e4hlen die sachgerechte Inbetriebnahme, die anfallende St\u00f6rungsdiagnose und die erforderliche St\u00f6rungsbeseitung der Sicherheitskomponenten.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Programmieren von Sicherheitsbereichen\", file: \"12_Schulungsinhalt_Programmieren von Sicherheitsbereichen.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Automatische Bahn Generierung\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Automatische Bahngenerierung <!\u2013- [et_pb_br_holder] -\u2013> Mittels des Offlinetools Provis k\u00f6nnen Sie ihr Anlage virtuell abbilden. <!\u2013- [et_pb_br_holder] -\u2013> Mittels der automatischen Bahngenerierung der CAD Daten k\u00f6nnen Sie auf einfachste Weise ganze Bahnen und Programme in k\u00fcrzester Zeit erstellen.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"Schulungsinhalt Automatische Bahn Generierung\", file: \"13_Schulungsinhalt_Automatische_Bahn_Generierung.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Workshop\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Workshop <!\u2013- [et_pb_br_holder] -\u2013> Wir bieten verschiedenste Workshops an \u2013 Nennen Sie uns gerne Ihre Themen, f\u00fcr die Sie sich interessieren.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      \/\/{ name: \"Schulungsinhalt Workshop\", file: \"Schulungsinhalt_Workshop.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  \"Schulungskurs auf Anfrage\": {<!-- [et_pb_line_break_holder] -->    beschreibung: \"Schulungskurs auf Anfrage <!\u2013- [et_pb_br_holder] -\u2013> Fragen Sie uns gerne nach einem spezifischen Kurs oder ihrem ganz eigenen Thema. <!\u2013- [et_pb_br_holder] -\u2013> Sie finden eine Schulungs\u00fcbersicht zum Download unter dem nebenstehenden Icon.\",<!-- [et_pb_line_break_holder] -->    pdfs: [<!-- [et_pb_line_break_holder] -->      { name: \"\u00dcbersicht Schulungskurse\", file: \"00_Schulungsinhalt_Schulungsunterlagen_\u00dcbersicht_2025.pdf\" }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tconst info = kursInfos[kursName];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tif (!info) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const pdfLinks = info.pdfs.map(pdf =><!-- [et_pb_line_break_holder] -->  `<a target=\"_blank\" href=\"${pdf.file}\" download title=\"${pdf.name}\">\ud83d\udcc4<\/a>`<!-- [et_pb_line_break_holder] -->).join(\" \");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->kursCell.innerHTML = `<!-- [et_pb_line_break_holder] -->  <\/p>\n<div style=\"display: flex; justify-content: space-between; align-items: center;\"><!-- [et_pb_line_break_holder] -->    <span class=\"course-title\" style=\"flex: 1; text-align: left;\">${kursName}<\/span><!-- [et_pb_line_break_holder] -->    <span style=\"white-space: nowrap;\"><!-- [et_pb_line_break_holder] -->      <span class=\"table-tooltip-trigger\" data-tooltip=\"${info.beschreibung}\">\ud83d\udec8<\/span><!-- [et_pb_line_break_holder] -->      ${pdfLinks}<!-- [et_pb_line_break_holder] -->    <\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] -->            calendar.render();<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ Diese Funktionen global machen<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ window.toggleCalendar = toggleCalendar;<!-- [et_pb_line_break_holder] -->\t\t\t\/\/ window.switchCalendarView = switchCalendarView;<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->    <\/script><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->$(document).ready(function() {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/\/ Registriere moment.js mit deutschem Datumsformat<!-- [et_pb_line_break_holder] -->    $.fn.dataTable.moment('DD.MM.YYYY');<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->    $('#trainingTable').DataTable({<!-- [et_pb_line_break_holder] -->        \"paging\": false,<!-- [et_pb_line_break_holder] -->        \"searching\": false,<!-- [et_pb_line_break_holder] -->        \"info\": false,<!-- [et_pb_line_break_holder] -->\t\t\"order\": [[2, \"asc\"]] \/\/ Spalte 2 (Index beginnt bei 0) aufsteigend sortieren<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><\/script><script><!-- [et_pb_line_break_holder] -->function filterTableByTitle(courseTitle) {<!-- [et_pb_line_break_holder] -->    var table, tr, td, i;<!-- [et_pb_line_break_holder] -->    table = document.getElementById(\"trainingTable\");<!-- [et_pb_line_break_holder] -->    tr = table.getElementsByTagName(\"tr\");<!-- [et_pb_line_break_holder] -->    for (i = 1; i < tr.length; i++) {<!-- [et_pb_line_break_holder] -->        td = tr[i].getElementsByTagName(\"td\")[0];<!-- [et_pb_line_break_holder] -->        if (td) {<!-- [et_pb_line_break_holder] -->            if (courseTitle == \"\" || td.innerHTML.indexOf(courseTitle) > -1) {<!-- [et_pb_line_break_holder] -->                tr[i].style.display = \"\";<!-- [et_pb_line_break_holder] -->            } else {<!-- [et_pb_line_break_holder] -->                tr[i].style.display = \"none\";<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function getISOWeek(date) {<!-- [et_pb_line_break_holder] -->    const tmp = new Date(date.valueOf());<!-- [et_pb_line_break_holder] -->    const day = date.getDay() || 7;<!-- [et_pb_line_break_holder] -->    tmp.setDate(tmp.getDate() + 4 - day);<!-- [et_pb_line_break_holder] -->    const yearStart = new Date(tmp.getFullYear(), 0, 1);<!-- [et_pb_line_break_holder] -->    return Math.ceil((((tmp - yearStart) \/ 86400000) + 1) \/ 7);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function formatGermanDate(dateStr) {<!-- [et_pb_line_break_holder] -->    const date = new Date(dateStr);<!-- [et_pb_line_break_holder] -->    const day = String(date.getDate()).padStart(2, '0');<!-- [et_pb_line_break_holder] -->    const month = String(date.getMonth() + 1).padStart(2, '0');<!-- [et_pb_line_break_holder] -->    const year = date.getFullYear();<!-- [et_pb_line_break_holder] -->    return `${day}.${month}.${year}`;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.addEventListener('DOMContentLoaded', function () {<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.request-button').forEach(function(button) {<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->    \/\/ Hier STARTET die Schleife: F\u00fcge den Block gleich HIER ein!<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  const today = new Date();<!-- [et_pb_line_break_holder] -->  const startDate = new Date(button.dataset.start);<!-- [et_pb_line_break_holder] -->  const daysUntilStart = (startDate - today) \/ (1000 * 60 * 60 * 24);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (daysUntilStart < 14) {<!-- [et_pb_line_break_holder] -->    button.disabled = true;<!-- [et_pb_line_break_holder] -->    button.classList.add(\"disabled\");<!-- [et_pb_line_break_holder] -->    button.textContent = \"Kursanfrage nicht mehr m\u00f6glich.\";<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    const row = button.closest('tr');<!-- [et_pb_line_break_holder] -->    const dropdown = row.querySelector('.participant-count');<!-- [et_pb_line_break_holder] -->    if (dropdown) dropdown.disabled = true;<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  \/*<!-- [et_pb_line_break_holder] -->    button.addEventListener('click', function () {<!-- [et_pb_line_break_holder] -->\tif (button.disabled) return; \/\/ Ignoriere, wenn Button deaktiviert ist<!-- [et_pb_line_break_holder] -->      const row = button.closest('tr');<!-- [et_pb_line_break_holder] -->      const dropdown = row.querySelector('.participant-count');<!-- [et_pb_line_break_holder] -->      const participants = dropdown ? dropdown.value : 1;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const title = `\u201e${button.dataset.title}\u201c`;<!-- [et_pb_line_break_holder] -->      const startRaw = button.dataset.start;<!-- [et_pb_line_break_holder] -->      const endRaw = button.dataset.end;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const startDate = new Date(startRaw);<!-- [et_pb_line_break_holder] -->      const endDate = new Date(endRaw);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const formattedStart = formatGermanDate(startRaw);<!-- [et_pb_line_break_holder] -->      const formattedEnd = formatGermanDate(endRaw);<!-- [et_pb_line_break_holder] -->      const week = getISOWeek(startDate);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const controller = row.cells[1].textContent.trim();<!-- [et_pb_line_break_holder] -->      const availableSpots = row.cells[5].querySelector('.available-spots')?.textContent.trim() || 'n\/a';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const subject = `Anfrage zu Schulungskurs ${title}`;<!-- [et_pb_line_break_holder] -->      const rawBody =<!-- [et_pb_line_break_holder] -->\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `ich interessiere mich f\u00fcr den Kurs ${title} auf dem Steuerungstyp ${controller} vom ${formattedStart} bis ${formattedEnd} in Kalenderwoche ${week}.\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Es sollten noch ${availableSpots} Pl\u00e4tze verf\u00fcgbar sein, ich w\u00fcrde gerne f\u00fcr ${participants} Teilnehmer vorreservieren.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Bitte senden Sie mir weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const mailtoLink = `mailto:consulting.cs@reisrobotics.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(rawBody)}`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      window.open(mailtoLink, '_blank');<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->\t*\/<!-- [et_pb_line_break_holder] -->\tbutton.addEventListener('click', function () {<!-- [et_pb_line_break_holder] -->\t  if (button.disabled) return; \/\/ Ignoriere, wenn Button deaktiviert ist<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const row = button.closest('tr');<!-- [et_pb_line_break_holder] -->\t  const dropdown = row.querySelector('.participant-count');<!-- [et_pb_line_break_holder] -->\t  const participants = dropdown ? dropdown.value : 1;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const kursTitelRaw = button.dataset.title.trim();<!-- [et_pb_line_break_holder] -->\t  const title = `\u201e${kursTitelRaw}\u201c`;<!-- [et_pb_line_break_holder] -->\t  const startRaw = button.dataset.start;<!-- [et_pb_line_break_holder] -->\t  const endRaw = button.dataset.end;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const startDate = new Date(startRaw);<!-- [et_pb_line_break_holder] -->\t  const endDate = new Date(endRaw);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const formattedStart = formatGermanDate(startRaw);<!-- [et_pb_line_break_holder] -->\t  const formattedEnd = formatGermanDate(endRaw);<!-- [et_pb_line_break_holder] -->\t  const week = getISOWeek(startDate);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const controller = row.cells[1].textContent.trim();<!-- [et_pb_line_break_holder] -->\t  const availableSpots = row.cells[5].querySelector('.available-spots')?.textContent.trim() || 'n\/a';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  let subject = `Anfrage zu Schulungskurs ${title}`;<!-- [et_pb_line_break_holder] -->\t  let rawBody = \"\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  \/\/ \u2705 Spezialfall: Schulungskurs auf Anfrage<!-- [et_pb_line_break_holder] -->\t  if (kursTitelRaw.toLowerCase() === \"schulungskurs auf anfrage\") {<!-- [et_pb_line_break_holder] -->\t\trawBody =<!-- [et_pb_line_break_holder] -->\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `ich interessiere mich f\u00fcr eine individuelle Schulung bzw. f\u00fcr die Schulung \"...\" \\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `auf dem Steuerungstyp \"...\", \\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `welche momentan nicht im Schulungskalender vorgesehen ist.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Bitte geben Sie mir Bescheid, ob hierzu die Kalenderwoche ${week} von ${formattedStart} bis ${formattedEnd} f\u00fcr ${participants} Teilnehmer verf\u00fcgbar ist.\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Bitte senden Sie mir au\u00dferdem weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;<!-- [et_pb_line_break_holder] -->\t  } else {<!-- [et_pb_line_break_holder] -->\t\t\/\/ \ud83d\udfe6 Standardfall<!-- [et_pb_line_break_holder] -->\t\trawBody =<!-- [et_pb_line_break_holder] -->\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `ich interessiere mich f\u00fcr den Kurs ${title} auf dem Steuerungstyp ${controller} vom ${formattedStart} bis ${formattedEnd} in Kalenderwoche ${week}.\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Es sollten noch ${availableSpots} Pl\u00e4tze verf\u00fcgbar sein, ich w\u00fcrde gerne f\u00fcr ${participants} Teilnehmer vorreservieren.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Bitte senden Sie mir weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +<!-- [et_pb_line_break_holder] -->\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;<!-- [et_pb_line_break_holder] -->\t  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t  const mailtoLink = `mailto:consulting.cs@reisrobotics.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(rawBody)}`;<!-- [et_pb_line_break_holder] -->\t  window.open(mailtoLink, '_blank');<!-- [et_pb_line_break_holder] -->\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->document.addEventListener('DOMContentLoaded', function () {<!-- [et_pb_line_break_holder] -->  const tooltipEl = document.createElement('div');<!-- [et_pb_line_break_holder] -->  tooltipEl.className = 'tooltip-custom';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.position = 'absolute';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.background = '#333';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.color = '#fff';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.padding = '6px 10px';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.borderRadius = '4px';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.fontSize = '13px';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.lineHeight = '1.6';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.zIndex = 1000;<!-- [et_pb_line_break_holder] -->  tooltipEl.style.display = 'none';<!-- [et_pb_line_break_holder] -->  tooltipEl.style.pointerEvents = 'none';<!-- [et_pb_line_break_holder] -->  document.body.appendChild(tooltipEl);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.table-tooltip-trigger').forEach(function (icon) {<!-- [et_pb_line_break_holder] -->    icon.addEventListener('mouseenter', function (e) {<!-- [et_pb_line_break_holder] -->      \/\/tooltipEl.textContent = icon.dataset.tooltip;<!-- [et_pb_line_break_holder] -->\t  tooltipEl.innerHTML = icon.dataset.tooltip;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      tooltipEl.style.display = 'block';<!-- [et_pb_line_break_holder] -->      tooltipEl.style.left = e.pageX + 10 + 'px';<!-- [et_pb_line_break_holder] -->      tooltipEl.style.top = e.pageY + 10 + 'px';<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    icon.addEventListener('mousemove', function (e) {<!-- [et_pb_line_break_holder] -->      tooltipEl.style.left = e.pageX + 10 + 'px';<!-- [et_pb_line_break_holder] -->      tooltipEl.style.top = e.pageY + 10 + 'px';<!-- [et_pb_line_break_holder] -->\t    \/\/ max. Fensterbreite\/-h\u00f6he abfragen<!-- [et_pb_line_break_holder] -->\t\t  const maxX = window.innerWidth  - tooltipEl.offsetWidth - 10;<!-- [et_pb_line_break_holder] -->\t\t  const maxY = window.innerHeight - tooltipEl.offsetHeight - 10;<!-- [et_pb_line_break_holder] -->\t\t  tooltipEl.style.left = Math.min(left, maxX) + 'px';<!-- [et_pb_line_break_holder] -->\t\t  tooltipEl.style.top  = Math.min(top,  maxY) + 'px';<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    icon.addEventListener('mouseleave', function () {<!-- [et_pb_line_break_holder] -->      tooltipEl.style.display = 'none';<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function detectFilterWrap() {<!-- [et_pb_line_break_holder] -->  const container = document.querySelector('.filter-section');<!-- [et_pb_line_break_holder] -->  if (!container) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Wir schauen, ob das zweite Element in einer anderen Zeile sitzt als das erste<!-- [et_pb_line_break_holder] -->  const children = Array.from(container.children).filter(el => el.tagName !== 'BR');<!-- [et_pb_line_break_holder] -->  if (children.length < 2) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const firstTop  = children[0].offsetTop;<!-- [et_pb_line_break_holder] -->  const secondTop = children[1].offsetTop;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (secondTop > firstTop) {<!-- [et_pb_line_break_holder] -->    container.classList.add('wrapped');<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    container.classList.remove('wrapped');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Beim Laden und bei jeder Gr\u00f6\u00dfen\u00e4nderung pr\u00fcfen<!-- [et_pb_line_break_holder] -->window.addEventListener('load',    detectFilterWrap);<!-- [et_pb_line_break_holder] -->window.addEventListener('resize',  detectFilterWrap);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":15368,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"<!DOCTYPE html>\r\n\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\"\/>\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n\r\n<title>Reis Robotics Schulungskurse \u00dcbersicht<\/title>\r\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/index.global.min.css\" rel=\"stylesheet\"\/>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/index.global.min.js\"><\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@6.1.8\/locales\/de.global.min.js\"><\/script>\r\n\r\n<div class=\"logo-wrapper\">\r\n  <img src=\"Reis Logo RRB Blue.jpg\" alt=\"Firmenlogo\">\r\n<\/div>\r\n\r\n\r\n\r\n<style>\r\n        html, body {\r\n\t\t\tmax-width: 100%;\r\n\t\t\toverflow-x: hidden;\r\n\t\t}\r\n\t\tbody { font-family: Arial, sans-serif; margin: 2em; background: #f9f9f9; }\r\n        h1 { color: #333; }\r\n        .filter-section { margin-bottom: 1.5em; }\r\n        label, select, button { margin-right: 10px; }\r\n        select, button {\r\n            padding: 6px 12px;\r\n            border-radius: 4px;\r\n            border: none;\r\n            cursor: pointer;\r\n        }\r\n        button:hover {\r\n            background-color: #d0d0d0;\r\n        }\r\n        .active {\r\n            background-color: #0078D7;\r\n            color: white;\r\n        }\r\n        .faded {\r\n            opacity: 0.4;\r\n            filter: grayscale(100%);\r\n        }\r\n        #calendarWrapper { margin-top: 2em; background: #fff; padding: 1em; border-radius: 6px; }\r\n        table { width: 100%; border-collapse: collapse; background: #fff; margin-top: 2em; }\r\n        th, td { padding: 10px; border: 1px solid #ddd; text-align: left; }\r\n        th { background: #f0f0f0; }\r\n\t\t\r\n\t\t#trainingTable {\r\n\t\t  max-width: 100%;\r\n\t\t  word-break: break-word;\r\n\t\t}\r\n\t\t\r\n\t\t#trainingTable th:nth-child(5),\r\n\t\t#trainingTable td:nth-child(5) {\r\n\t\tdisplay: none;\r\n\t\t}\r\n\t\t\r\n\t\t.request-button {\r\n        background-color: #0078D7;\r\n        color: white;\r\n        padding: 5px 10px;\r\n        margin-left: 10px;\r\n        border: none;\r\n        border-radius: 4px;\r\n        text-decoration: none;\r\n        font-size: 0.9em;\r\n        transition: background-color 0.3s ease;\r\n    }\r\n\r\n    .request-button:hover {\r\n        background-color: #005fa3;\r\n    }\r\n\r\n    .request-button:focus {\r\n        outline: 2px solid #003f73;\r\n        outline-offset: 2px;\r\n    }\r\n\t\r\n\t.request-button.disabled {\r\n    background-color: #ccc;\r\n    color: #666;\r\n    cursor: not-allowed;\r\n    opacity: 0.6;\r\n\t}\r\n\t\t\r\n\tselect.participant-count {\r\n    padding: 6px 10px;\r\n    font-size: 14px;\r\n    border: 1px solid #ccc;\r\n    border-radius: 4px;\r\n    background-color: #fff;\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n    -moz-appearance: none;\r\n    background-image: url(\"data:image\/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22https:\/\/www.w3.org\/2000\/svg%22%20width%3D%2210%22%20height%3D%225%22%3E%3Cpath%20fill%3D%22%23666%22%20d%3D%22M0%200l5%205%205-5z%22\/%3E%3C\/svg%3E\");\r\n    background-repeat: no-repeat;\r\n    background-position: right 10px center;\r\n    background-size: 10px 5px;\r\n    min-width: 60px;\r\n    margin-left: 5px;\r\n    cursor: pointer;\r\n}\r\n\t.logo-wrapper {\r\n\t\ttext-align: center;\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.logo-wrapper img {\r\n\t\theight: 60px;\r\n\t\tmax-width: 100%;\r\n\t\tobject-fit: contain; \/* sorgt f\u00fcr sauberes Skalieren *\/\r\n\t}\r\n\t\t\r\n\t.fully-booked {\r\n\t\topacity: 0.4 !important;\r\n\t\tfilter: grayscale(100%) !important;\r\n\t\t\/* pointer-events: none; \/* Optional: deaktiviert Klick *\/\r\n\t}\r\n\r\n\t.tooltip-icon {\r\n\t  cursor: help;\r\n\t  margin-left: 6px;\r\n\t  color: #0078D7;\r\n\t  font-size: 1em;\r\n\t}\r\n\r\n\t.tooltip-icon:hover {\r\n\t  color: #005fa3;\r\n\t}\r\n\r\n\ta[download] {\r\n\t  margin-left: 6px;\r\n\t  font-size: 1em;\r\n\t  color: #333;\r\n\t  text-decoration: none;\r\n\t}\r\n\r\n\ta[download]:hover {\r\n\t  color: #000;\r\n\t}\r\n\r\n\t.table-tooltip-trigger {\r\n\t  color: #007BFF; \/* Info-Blau *\/\r\n\t  cursor: pointer;\r\n\t  transition: color 0.2s ease;\r\n\t}\r\n\r\n\t.table-tooltip-trigger:hover {\r\n\t  color: #0056b3; \/* Dunkleres Blau beim Hover *\/\r\n\t}\r\n\r\n\r\n<\/style>\r\n<script src=\"https:\/\/code.jquery.com\/jquery-3.5.1.js\"><\/script>\r\n<script src=\"https:\/\/cdn.datatables.net\/1.10.21\/js\/jquery.dataTables.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/moment.js\/2.29.1\/moment.min.js\"><\/script>\r\n<script src=\"https:\/\/cdn.datatables.net\/plug-ins\/1.10.21\/sorting\/datetime-moment.js\"><\/script>\r\n\r\n<link href=\"https:\/\/cdn.datatables.net\/1.10.21\/css\/jquery.dataTables.min.css\" rel=\"stylesheet\"\/>\r\n\r\n\r\n<\/head>\r\n<h1>Anstehende Schulungskurse<\/h1>\r\n\r\n\r\n\r\n\r\n<h3>Neuester Stand: 05.06.2025<\/h3>\r\n<div>\r\n<button id=\"toggleCalendar\" onclick=\"toggleCalendar()\" style=\"margin-bottom: 10px;\">Kalender einklappen \u25b2<\/button>\r\n<div id=\"calendarWrapper\">\r\n<div style=\"margin-bottom: 1em;\">\r\n<button id=\"btnMonth\" onclick=\"switchCalendarView('dayGridMonth')\">Monatsansicht<\/button>\r\n<button class=\"active\" id=\"btn3x4\" onclick=\"switchCalendarView('multiMonthYear4x1')\">Jahresansicht (4x1)<\/button>\r\n<\/div>\r\n<div id=\"calendar\"><\/div>\r\n<\/div>\r\n<\/div>\r\n<br>\r\n<div class=\"filter-section\" id=\"filterSection\">\r\n<label for=\"titleFilter\">Filtern nach Kurs:<\/label>\r\n<select id=\"titleFilter\" onchange=\"filterAll()\">\r\n  <option value=\"all\">Alle<\/option>\r\n  <option value=\"bedienen programmieren i\">Bedienen Programmieren I<\/option>\r\n  <option value=\"service mechanik service elektrik\">Service Mechanik Service Elektrik<\/option>\r\n  <option value=\"programmieren ii\">Programmieren II<\/option>\r\n  <option value=\"provis grundlagen provis offline programmierung\">Provis Grundlagen Provis Offline Programmierung<\/option>\r\n  <option value=\"roboter sps programmierung\">Roboter SPS Programmierung<\/option>\r\n  <option value=\"makroprogrammierung\">Makroprogrammierung<\/option>\r\n  <option value=\"lichtbogensensor\/suchen\">Lichtbogensensor\/Suchen<\/option>\r\n  <option value=\"servo-robot nahtverfolgung\">Servo-Robot Nahtverfolgung<\/option>\r\n  <option value=\"programmieren von sicherheitsbereichen\">Programmieren von Sicherheitsbereichen<\/option>\r\n  <option value=\"automatische bahn generierung\">Automatische Bahn Generierung<\/option>\r\n  <option value=\"workshop\">Workshop<\/option>\r\n  <option value=\"schulungskurs auf anfrage\">Schulungskurs auf Anfrage<\/option>\r\n<\/select>\r\n\r\n<label for=\"controllerFilter\">Filtern nach Steuerungstyp:<\/label>\r\n<select id=\"controllerFilter\" onchange=\"filterAll()\">\r\n<option value=\"All\">All<\/option>\r\n<option value=\"RSV\">ROBOTstarV<\/option>\r\n<option value=\"RSVI\">ROBOTstarVI<\/option>\r\n<option value=\"RSVII\">ROBOTstarVII<\/option>\r\n<\/select>\r\n\r\n<label for=\"quarterFilter\">Filtern nach Datum:<\/label>\r\n<select id=\"quarterFilter\" onchange=\"filterAll()\">\r\n  <option value=\"all\">All<\/option>\r\n  <option value=\"2025-Q2\">Q2 2025<\/option>\r\n  <option value=\"2025-Q3\">Q3 2025<\/option>\r\n  <option value=\"2025-Q4\">Q4 2025<\/option>\r\n  <option value=\"2026-Q1\">Q1 2026<\/option>\r\n  <option value=\"2026-Q2\">Q2 2026<\/option>\r\n<\/select>\r\n\r\n\r\n<label for=\"spotsFilter\">Anzahl verf\u00fcgbare Pl\u00e4tze:<\/label>\r\n<select id=\"spotsFilter\" onchange=\"filterAll()\">\r\n<option value=\"0\">All<\/option>\r\n<option value=\"6\">6+<\/option>\r\n<option value=\"5\">5+<\/option>\r\n<option value=\"4\">4+<\/option>\r\n<option value=\"3\">3+<\/option>\r\n<option value=\"2\">2+<\/option>\r\n<option value=\"1\">1+<\/option>\r\n<\/select>\r\n\r\n<\/div>\r\n\r\n<div id=\"hinweisKeinGeplanterKurs\" style=\"display: none; margin-top: 10px; background-color: #e7f3ff; border-left: 4px solid #0078D7; padding: 10px 15px; border-radius: 4px; font-size: 14px;\">\r\n  <strong>Gut zu wissen:<\/strong> F\u00fcr diesen Kurs sind aktuell keine festen Termine geplant. Nutzen Sie gerne eine der angezeigten Wochen zur individuellen Anfrage \u2013 wir richten uns nach Ihrem Bedarf!\r\n<\/div>\r\n<br>\r\n\r\n<table id=\"trainingTable\">\r\n<thead>\r\n\r\n<tr>\r\n<th>Schulungskurs<\/th>\r\n<th>Steuerungstyp<\/th>\r\n<th>Kursbeginn<\/th>\r\n<th>Kursende<\/th>\r\n<th>Category<\/th>\r\n<th>Verf\u00fcgbare Pl\u00e4tze und Kursanfrage<\/th>\r\n<\/tr>\r\n\r\n\r\n<tbody>\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-06-02\">02.06.2025<\/td>\r\n<td data-date=\"2025-06-06\">06.06.2025<\/td>\r\n<td>Englisch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-02' data-end='2025-06-06' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Workshop<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-06-09\">09.06.2025<\/td>\r\n<td data-date=\"2025-06-10\">10.06.2025<\/td>\r\n<td>Englisch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>-2<\/span>\r\n<span style='margin: 0 10px; color: #a00; font-weight: bold;'>Kurs belegt.<\/span>\r\n<button type='button' class='request-button disabled' disabled>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Workshop<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-06-16\">16.06.2025<\/td>\r\n<td data-date=\"2025-06-18\">18.06.2025<\/td>\r\n<td>Englisch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Workshop' data-start='2025-06-16' data-end='2025-06-18' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-06-23\">23.06.2025<\/td>\r\n<td data-date=\"2025-06-27\">27.06.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>3<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-23' data-end='2025-06-27' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-06-30\">30.06.2025<\/td>\r\n<td data-date=\"2025-07-04\">04.07.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>4<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-06-30' data-end='2025-07-04' data-controller='RSVII' data-spots='4'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Programmieren II<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-07-07\">07.07.2025<\/td>\r\n<td data-date=\"2025-07-09\">09.07.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Programmieren II' data-start='2025-07-07' data-end='2025-07-09' data-controller='RSVI' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-07-14\">14.07.2025<\/td>\r\n<td data-date=\"2025-07-18\">18.07.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>0<\/span>\r\n<span style='margin: 0 10px; color: #a00; font-weight: bold;'>Kurs belegt.<\/span>\r\n<button type='button' class='request-button disabled' disabled>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-07-21\">21.07.2025<\/td>\r\n<td data-date=\"2025-07-25\">25.07.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-07-21' data-end='2025-07-25' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-07-28\">28.07.2025<\/td>\r\n<td data-date=\"2025-08-01\">01.08.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-07-28' data-end='2025-08-01' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-08-04\">04.08.2025<\/td>\r\n<td data-date=\"2025-08-08\">08.08.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>4<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-04' data-end='2025-08-08' data-controller='RSVI' data-spots='4'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Provis Grundlagen Provis Offline Programmierung<\/td>\r\n<td>All<\/td>\r\n<td data-date=\"2025-08-11\">11.08.2025<\/td>\r\n<td data-date=\"2025-08-14\">14.08.2025<\/td>\r\n<td><\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>5<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Provis Grundlagen Provis Offline Programmierung' data-start='2025-08-11' data-end='2025-08-14' data-controller='All' data-spots='5'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-08-18\">18.08.2025<\/td>\r\n<td data-date=\"2025-08-22\">22.08.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>4<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-18' data-end='2025-08-22' data-controller='RSV' data-spots='4'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-08-25\">25.08.2025<\/td>\r\n<td data-date=\"2025-08-29\">29.08.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-08-25' data-end='2025-08-29' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Provis Grundlagen Provis Offline Programmierung<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-09-01\">01.09.2025<\/td>\r\n<td data-date=\"2025-09-05\">05.09.2025<\/td>\r\n<td>Deutsch Englisch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>4<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Provis Grundlagen Provis Offline Programmierung' data-start='2025-09-01' data-end='2025-09-05' data-controller='RSV' data-spots='4'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-09-08\">08.09.2025<\/td>\r\n<td data-date=\"2025-09-12\">12.09.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>3<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-08' data-end='2025-09-12' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-09-15\">15.09.2025<\/td>\r\n<td data-date=\"2025-09-19\">19.09.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>4<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-15' data-end='2025-09-19' data-controller='RSVI' data-spots='4'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-09-22\">22.09.2025<\/td>\r\n<td data-date=\"2025-09-26\">26.09.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>2<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-09-22' data-end='2025-09-26' data-controller='RSVI' data-spots='2'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Schulungskurs auf Anfrage<\/td>\r\n<td>All<\/td>\r\n<td data-date=\"2025-09-29\">29.09.2025<\/td>\r\n<td data-date=\"2025-10-02\">02.10.2025<\/td>\r\n<td><\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-09-29' data-end='2025-10-02' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-10-06\">06.10.2025<\/td>\r\n<td data-date=\"2025-10-10\">10.10.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-06' data-end='2025-10-10' data-controller='RSV' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Schulungskurs auf Anfrage<\/td>\r\n<td>All<\/td>\r\n<td data-date=\"2025-10-13\">13.10.2025<\/td>\r\n<td data-date=\"2025-10-17\">17.10.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-10-13' data-end='2025-10-17' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-10-20\">20.10.2025<\/td>\r\n<td data-date=\"2025-10-24\">24.10.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-20' data-end='2025-10-24' data-controller='RSVI' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-10-27\">27.10.2025<\/td>\r\n<td data-date=\"2025-10-31\">31.10.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-10-27' data-end='2025-10-31' data-controller='RSV' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Programmieren II<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-11-03\">03.11.2025<\/td>\r\n<td data-date=\"2025-11-05\">05.11.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Programmieren II' data-start='2025-11-03' data-end='2025-11-05' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-11-10\">10.11.2025<\/td>\r\n<td data-date=\"2025-11-14\">14.11.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>3<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-11-10' data-end='2025-11-14' data-controller='RSVI' data-spots='3'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSV<\/td>\r\n<td data-date=\"2025-11-17\">17.11.2025<\/td>\r\n<td data-date=\"2025-11-21\">21.11.2025<\/td>\r\n<td>Englisch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>5<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-11-17' data-end='2025-11-21' data-controller='RSV' data-spots='5'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Service Mechanik Service Elektrik<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-11-24\">24.11.2025<\/td>\r\n<td data-date=\"2025-11-27\">27.11.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Service Mechanik Service Elektrik' data-start='2025-11-24' data-end='2025-11-27' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVI<\/td>\r\n<td data-date=\"2025-12-01\">01.12.2025<\/td>\r\n<td data-date=\"2025-12-05\">05.12.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>1<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-12-01' data-end='2025-12-05' data-controller='RSVI' data-spots='1'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Schulungskurs auf Anfrage<\/td>\r\n<td>All<\/td>\r\n<td data-date=\"2025-12-08\">08.12.2025<\/td>\r\n<td data-date=\"2025-12-12\">12.12.2025<\/td>\r\n<td><\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Schulungskurs auf Anfrage' data-start='2025-12-08' data-end='2025-12-12' data-controller='All' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<tr>\r\n<td>Bedienen Programmieren I<\/td>\r\n<td>RSVII<\/td>\r\n<td data-date=\"2025-12-15\">15.12.2025<\/td>\r\n<td data-date=\"2025-12-19\">19.12.2025<\/td>\r\n<td>Deutsch<\/td>\r\n<td><div style='display:flex; justify-content: space-between; align-items: center'>\r\n<span class='available-spots'>6<\/span>\r\n<span style='margin-left: 8px;'>Anzahl Teilnehmer ausw\u00e4hlen:<\/span>\r\n<select class='participant-count' style='margin: 0 10px;'><option value='1'>1<\/option><option value='2'>2<\/option><option value='3'>3<\/option><option value='4'>4<\/option><option value='5'>5<\/option><option value='6'>6<\/option><\/select>\r\n<button type='button' class='request-button' data-title='Bedienen Programmieren I' data-start='2025-12-15' data-end='2025-12-19' data-controller='RSVII' data-spots='6'>Diesen Kurs anfragen<\/button>\r\n<\/div><\/td>\r\n<\/tr>\r\n\r\n<\/tbody>\r\n\r\n \r\n<\/thead><\/table>\r\n\r\n<\/table>  <!-- Hier endet die Tabelle -->\r\n\r\n<!-- Hier den neuen Kontaktblock einf\u00fcgen -->\r\n<div style=\"display: flex; justify-content: space-between; align-items: flex-start; margin-top: 2em; flex-wrap: wrap; gap: 2em; font-size: 0.95em; color: #333; line-height: 1.6;\">\r\n\r\n  <!-- Kontaktdaten -->\r\n  <div style=\"flex: 1; min-width: 250px;\">\r\n    <strong>Reis Robotics GmbH & Co. KG<\/strong><br>\r\n    Walter-Reis-Stra\u00dfe 1<br>\r\n    63785 Obernburg, Deutschland<br><br>\r\n\r\n    <strong>Telefon:<\/strong> +49 6022 503-0<br>\r\n    <strong>E-Mail:<\/strong> <a href=\"mailto:info@reisrobotics.com\">info@reisrobotics.com<\/a>\r\n  <\/div>\r\n\r\n  <!-- Unternehmenslogo -->\r\n  <div style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n    <div style=\"margin-bottom: 0.5em;\">Ein Unternehmen von<\/div>\r\n    <img src=\"logo ACT Horizontal-04.svg\" alt=\"Mutterunternehmen Logo\" style=\"max-height: 60px; width: auto;\">\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<script>\r\n        \r\n\t\tfunction addOneDay(dateStr) {\r\n\t\t\tconst date = new Date(dateStr);\r\n\t\t\tdate.setDate(date.getDate() + 1);\r\n\t\t\treturn date.toISOString().split(\"T\")[0]; \/\/ YYYY-MM-DD\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\tfunction extractEventsFromTable() {\r\n\t\t\tconst rows = document.querySelectorAll(\"#trainingTable tbody tr\");\r\n\t\t\tconst events = [];\r\n\r\n\t\t\trows.forEach(row => {\r\n\t\t\t\tconst cells = row.querySelectorAll(\"td\");\r\n\t\t\t\tconst title = cells[0].textContent.trim();\r\n\t\t\t\tconst controller = cells[1].textContent.trim();\r\n\t\t\t\t\/* const start = cells[2].textContent.trim();\r\n\t\t\t\t' const end = cells[3].textContent.trim();\r\n\t\t\t\t*\/\r\n\t\t\t\tconst start = cells[2].getAttribute(\"data-date\");\r\n\t\t\t\tconst end = cells[3].getAttribute(\"data-date\");\r\n\t\t\t\tconst spots = parseInt(cells[5].textContent.trim());\r\n\t\t\t\t\r\n\t\t\t\tconst today = new Date().setHours(0, 0, 0, 0); \/\/ heute, 00:00 Uhr\r\n\t\t\t\tconst endDate = new Date(end).setHours(0, 0, 0, 0);\r\n\r\n\t\t\t\tif (endDate < today) return; \/\/ \u26d4 Kurs ist in der Vergangenheit \u2192 \u00fcberspringen\r\n\r\n\t\t\tevents.push({\r\n\t\t\t\ttitle,\r\n\t\t\t\tcontroller,\r\n\t\t\t\tstart,\r\n\t\t\t\tend: addOneDay(end), \/\/ Hier wird nur f\u00fcr den Kalender verl\u00e4ngert\r\n\t\t\t\tspots\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn events;\r\n\t\t}\r\n\r\n\t\tlet allEvents = extractEventsFromTable();\r\n\t\t\r\n\t\t\r\n\t\tlet calendar;\r\n\r\n        \r\n    function filterAll() {\r\n\t\tconst titleFilter = document.getElementById(\"titleFilter\").value.toLowerCase();\r\n\t\tconst controllerFilter = document.getElementById(\"controllerFilter\").value.toLowerCase();\r\n\t\tconst spotsFilter = parseInt(document.getElementById(\"spotsFilter\").value) || 0;\r\n\t\tconst quarterFilter = document.getElementById(\"quarterFilter\").value; \/\/ e.g. \"2025-Q2\"\r\n\r\n\t\t\/\/ Hilfsfunktion: pr\u00fcft, ob ein Datum in einem Quartal liegt\r\n\t\tfunction isInQuarter(dateStr, quarterValue) {\r\n\t\t\tif (quarterValue === \"all\") return true;\r\n\t\t\tconst date = new Date(dateStr);\r\n\t\t\tconst [year, quarter] = quarterValue.split(\"-Q\");\r\n\t\t\tconst q = parseInt(quarter);\r\n\t\t\tconst startMonth = (q - 1) * 3;\r\n\t\t\treturn (\r\n\t\t\t\tdate.getFullYear() === parseInt(year) &&\r\n\t\t\t\tdate.getMonth() >= startMonth &&\r\n\t\t\t\tdate.getMonth() < startMonth + 3\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t\/\/ Tabelle\r\n\t\tconst table = document.getElementById(\"trainingTable\");\r\n\t\tconst tbody = table.querySelector(\"tbody\");\r\n\t\t\/\/const rows = Array.from(tbody.getElementsByTagName(\"tr\"));\r\n\t\tconst rows = Array.from(tbody.querySelectorAll(\"tr:not(.past-course)\"));\r\n\r\n\t\t\r\n\t\tconst today = new Date().setHours(0, 0, 0, 0);\r\n\t\t\trows.forEach(row => {\r\n\t\t\t\tconst endDateStr = row.cells[3].getAttribute(\"data-date\");\r\n\t\t\t\tif (!endDateStr) return;\r\n\r\n\t\t\t\tconst endDate = new Date(endDateStr).setHours(0, 0, 0, 0);\r\n\t\t\t\tif (endDate < today) {\r\n\t\t\t\t\trow.style.display = \"none\";         \/\/ Verstecke vergangene Zeilen\r\n\t\t\t\t\trow.dataset.match = \"0\";            \/\/ Markiere sie als \u201enicht matchend\u201c\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\r\n\r\n\t\trows.forEach(row => {\r\n\t\t\t\/\/const title = row.cells[0].textContent.toLowerCase();\r\n\t\t\tconst title = row.querySelector(\".course-title\").textContent.toLowerCase();\r\n\t\t\tconst controller = row.cells[1].textContent.toLowerCase();\r\n\t\t\t\/\/const startDate = row.cells[2].textContent;\r\n\t\t\tconst startDate = row.cells[2].getAttribute('data-date');\r\n\r\n\t\t\tconst spots = parseInt(row.cells[5].textContent);\r\n\r\n\t\t\tconst titleMatch = (titleFilter === \"all\" || title === titleFilter);\r\n\t\t\tconst controllerMatch = (controllerFilter === \"all\" || controller === controllerFilter);\r\n\t\t\tconst spotsMatch = (spots >= spotsFilter);\r\n\t\t\tconst quarterMatch = isInQuarter(startDate, quarterFilter);\r\n\r\n\t\t\tconst match = titleMatch && controllerMatch && spotsMatch && quarterMatch;\r\n\t\t\trow.classList.toggle(\"faded\", !match);\r\n\t\t\trow.dataset.match = match ? \"1\" : \"0\";\r\n\t\t});\r\n\t\t\r\n\t\t\/\/ Pr\u00fcfen, ob der Kurs \u00fcberhaupt existiert\r\n\t\t\tconst hasMatchingCourse = rows.some(row => {\r\n\t\t\t\tconst titleEl = row.querySelector(\".course-title\");\r\n\t\t\t\tconst title = titleEl ? titleEl.textContent.toLowerCase() : \"\";\r\n\t\t\t\treturn title === titleFilter && row.dataset.match === \"1\";\r\n\t\t\t});\r\n\r\n\t\t\tif (!hasMatchingCourse && titleFilter !== \"schulungskurs auf anfrage\") {\r\n\t\t\t\trows.forEach(row => {\r\n\t\t\t\t  const titleEl = row.querySelector(\".course-title\");\r\n\t\t\t\t  const title = titleEl ? titleEl.textContent.toLowerCase() : \"\";\r\n\t\t\t\t  const startDate = row.cells[2].getAttribute('data-date');\r\n\t\t\t\t  const quarterMatch = isInQuarter(startDate, quarterFilter);\r\n\r\n\t\t\t\t  if (title === \"schulungskurs auf anfrage\" && quarterMatch) {\r\n\t\t\t\t\trow.classList.remove(\"faded\");\r\n\t\t\t\t\trow.dataset.match = \"1\";\r\n\t\t\t\t  }\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\r\n\r\n\t\trows.sort((a, b) => b.dataset.match - a.dataset.match);\r\n\t\trows.forEach(row => tbody.appendChild(row));\r\n\r\n\t\t\/\/ Kalender\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\/\/ Kalender aktualisieren basierend auf Tabellenergebnissen\r\n\t\tcalendar.removeAllEvents();\r\n\r\n\t\tconst matchedTableEntries = new Set();\r\n\r\n\t\trows.forEach(row => {\r\n\t\t  if (row.dataset.match === \"1\") {\r\n\t\t\t\/\/ const title = row.cells[0].textContent.trim();\r\n\t\t\tconst titleEl = row.querySelector(\".course-title\");\r\n\t\t\tconst title = titleEl ? titleEl.textContent.trim() : \"\";\r\n\t\t\tconst start = row.cells[2].getAttribute(\"data-date\");\r\n\t\t\tmatchedTableEntries.add(`${title}__${start}`);\r\n\t\t  }\r\n\t\t});\r\n\r\n\t\tcalendar.batchRendering(() => {\r\n\t\t  allEvents.forEach(ev => {\r\n\t\t\tconst matchKey = `${ev.title}__${ev.start}`;\r\n\t\t\tconst isVisible = matchedTableEntries.has(matchKey);\r\n\r\n\t\t\tcalendar.addEvent({\r\n\t\t\t  ...ev,\r\n\t\t\t  extendedProps: {\r\n\t\t\t\tlocation: ev.location,\r\n\t\t\t\tcontroller: ev.controller,\r\n\t\t\t\tspots: ev.spots\r\n\t\t\t  },\r\n\t\t\t  classNames: isVisible ? [] : ['faded']\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\/\/ Sichtbarkeit des Hinweistexts steuern\r\n\t\tconst hinweis = document.getElementById(\"hinweisKeinGeplanterKurs\");\r\n\t\tconst matchedRows = rows.filter(row => row.dataset.match === \"1\");\r\n\r\n\t\t\/\/ Pr\u00fcfen: Gibt es einen sichtbaren Kurs au\u00dfer \"Schulungskurs auf Anfrage\"?\r\n\t\tconst andereKurseGefunden = matchedRows.some(row => {\r\n\t\t  const kursEl = row.querySelector(\".course-title\");\r\n\t\t  const kurs = kursEl ? kursEl.textContent.trim() : \"\";\r\n\t\t  return kurs !== \"Schulungskurs auf Anfrage\";\r\n\t\t});\r\n\r\n\t\tif (titleFilter !== \"all\" && matchedRows.length > 0 && !andereKurseGefunden) {\r\n\t\t  hinweis.style.display = \"block\";\r\n\t\t} else {\r\n\t\t  hinweis.style.display = \"none\";\r\n\t\t}\r\n\r\n\t\r\n}\r\n\r\n\r\n\r\n        function toggleCalendar() {\r\n            const wrapper = document.getElementById(\"calendarWrapper\");\r\n            const toggleBtn = document.getElementById(\"toggleCalendar\");\r\n            const visible = wrapper.style.display !== \"none\";\r\n            wrapper.style.display = visible ? \"none\" : \"block\";\r\n            toggleBtn.innerHTML = visible ? \"Kalender anzeigen \u25bc\" : \"Kalender einklappen \u25b2\";\r\n        }\r\n\r\n        function switchCalendarView(view) {\r\n            calendar.changeView(view);\r\n            document.getElementById(\"btnMonth\").classList.remove(\"active\");\r\n            document.getElementById(\"btn3x4\").classList.remove(\"active\");\r\n            if (view === \"dayGridMonth\") {\r\n                document.getElementById(\"btnMonth\").classList.add(\"active\");\r\n            } else {\r\n                document.getElementById(\"btn3x4\").classList.add(\"active\");\r\n            }\r\n        }\r\n\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n\t\t\r\n\t\t\/\/Tabelle in deutsches FOrmat wandeln\r\n\t\t\/\/ \/*\r\n\t\tconst rows = document.querySelectorAll(\"#trainingTable tbody tr\");\r\n\r\n\t\t\trows.forEach(row => {\r\n\t\t\t\tconst startCell = row.cells[2]; \/\/ Start Date column\r\n\t\t\t\tconst endCell = row.cells[3];   \/\/ End Date column\r\n\r\n\t\t\t\tstartCell.textContent = formatToGermanDate(startCell.textContent);\r\n\t\t\t\tendCell.textContent = formatToGermanDate(endCell.textContent);\r\n\t\t\t});\r\n\t\t\r\n\t\t\tconst today = new Date().setHours(0, 0, 0, 0);\r\n\t\t\trows.forEach(row => {\r\n\t\t\t\tconst endCell = row.cells[3];\r\n\t\t\t\tif (!endCell) return;\r\n\t\t\t\tconst endDateStr = endCell.getAttribute(\"data-date\");\r\n\t\t\t\tif (!endDateStr) return;\r\n\t\t\t\tconst endDate = new Date(endDateStr).setHours(0, 0, 0, 0);\r\n\t\t\t\tif (endDate < today) {\r\n\t\t\t\t\trow.classList.add(\"past-course\");\r\n\t\t\t\t\trow.style.display = \"none\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\tfunction formatToGermanDate(dateStr) {\r\n\t\t\tconst parts = dateStr.split(\"-\");\r\n\t\t\tif (parts.length !== 3) return dateStr;\r\n\t\t\treturn `${parts[2]}.${parts[1]}.${parts[0]}`; \/\/ DD.MM.YYYY\r\n\t\t\t}\r\n\t\t\/\/ *\/\r\n\t\t\/\/Irgendwas anderes\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n            var calendarEl = document.getElementById('calendar');\r\n            calendar = new FullCalendar.Calendar(calendarEl, {\r\n                locale: 'de',  \/\/Set language to German\r\n\t\t\t\tinitialView: 'multiMonthYear4x1',\r\n                views: {\r\n                    multiMonthYear4x1: {\r\n                        type: 'multiMonth',\r\n                        duration: { months: 4 },\r\n                        multiMonthMaxColumns: 4\r\n                    }\r\n                },\r\n                titleFormat: { day: '2-digit', month: '2-digit', year: 'numeric' },  \/\/German-style date\r\n                height: 'auto',\r\n                events: allEvents.map(ev => ({\r\n                    ...ev,\r\n                    title: ev.title,\r\n                    extendedProps: {\r\n                        location: ev.location,\r\n                        controller: ev.controller,\r\n                        spots: ev.spots\r\n                    },\r\n\t\t\t\t\t    classNames: ev.spots === 0 ? ['fully-booked'] : []\r\n                })),\r\n                \r\n    eventDidMount: function(info) {\r\n        info.el.addEventListener('click', function() {\r\n            const rows = document.querySelectorAll(\"#trainingTable tbody tr\");\r\n            rows.forEach(row => {\r\n                row.style.backgroundColor = \"\";\r\n                \/\/const title = row.cells[0].textContent;\r\n\t\t\t\tconst titleEl = row.querySelector(\".course-title\");\r\n\t\t\t\tconst title = titleEl ? titleEl.textContent.trim() : \"\";\r\n\r\n                \/\/const start = row.cells[2].textContent;\r\n\t\t\t\tconst start = row.cells[2].getAttribute('data-date');\r\n\t\t\t\tconst calendarStart = info.event.startStr.slice(0, 10);\r\n                \/\/if (title === info.event.title && start === info.event.startStr.substring(0, 10)) {\r\n\t\t\t\tif (title === info.event.title && start === calendarStart) {\r\n                    row.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n                    row.style.backgroundColor = '#ffffcc';\r\n                }\r\n            });\r\n        });\r\n    \r\n                    const tooltip = `\r\n                        <strong>${info.event.title}<\/strong><br>\r\n                        <em>${info.event.extendedProps.controller}<\/em><br>\r\n                        \r\n                        Verf\u00fcgbare Pl\u00e4tze: ${info.event.extendedProps.spots}\r\n                    `;\r\n                    const tooltipEl = document.createElement('div');\r\n                    tooltipEl.innerHTML = tooltip;\r\n                    tooltipEl.style.position = 'absolute';\r\n                    tooltipEl.style.background = '#333';\r\n                    tooltipEl.style.color = '#fff';\r\n                    tooltipEl.style.padding = '6px 10px';\r\n                    tooltipEl.style.borderRadius = '4px';\r\n                    tooltipEl.style.fontSize = '13px';\r\n\t\t\t\t\ttooltipEl.style.lineHeight = '1.6';  \/\/ oder z.B. '1.8' f\u00fcr mehr Abstand\r\n                    tooltipEl.style.zIndex = 1000;\r\n                    tooltipEl.style.display = 'none';\r\n                    document.body.appendChild(tooltipEl);\r\n\r\n                    info.el.addEventListener('mouseenter', function(e) {\r\n                        tooltipEl.style.display = 'block';\r\n                        tooltipEl.style.left = e.pageX + 10 + 'px';\r\n                        tooltipEl.style.top = e.pageY + 10 + 'px';\r\n                    });\r\n                    info.el.addEventListener('mousemove', function(e) {\r\n                        tooltipEl.style.left = e.pageX + 10 + 'px';\r\n                        tooltipEl.style.top = e.pageY + 10 + 'px';\r\n                    });\r\n                    info.el.addEventListener('mouseleave', function() {\r\n                        tooltipEl.style.display = 'none';\r\n                    });\r\n                }\r\n            });\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\/\/fillFilterOptions(); \/\/ Beim Start aufrufen\r\n\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\/\/ \ud83d\udee0\ufe0f Kurszelle (erste Spalte) mit Tooltip und PDF-Link anreichern\r\ndocument.querySelectorAll(\"#trainingTable tbody tr\").forEach(row => {\r\n\tconst kursCell = row.cells[0];\r\n\tconst kursName = kursCell.textContent.trim();\r\n\r\n\t\/\/ \ud83d\udd27 Statisch hinterlegte Beschreibungen & PDF-Dateinamen\r\nconst kursInfos = {\r\n  \"Bedienen Programmieren I\": {\r\n    beschreibung: \"Bedienen & Programmieren 1 <br>Lernen Sie das Bedienen & Programmieren der Roboter mit der Reis ROBOTStar Steuerung kennen: <br> Die Probleml\u00f6sung h\u00e4ufiger Fehler & ein sicherer Umgang mit dem System, gepaart mit ersten Programmierkenntnissen,<br> vermindern bereits stark die Ausfallzeit und erh\u00f6hen die Produktivit\u00e4t Ihrer Anlage.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Bedienen & Programmieren I\", file: \"01_Schulungsinhalt_Bedienen_Programmieren_1.pdf\" }\r\n    ]\r\n  },\r\n  \"Service Mechanik Service Elektrik\": {\r\n    beschreibung: \"Service Mechanik <br>Sie wollen die sachgerechte Wartung und anstehende Reparaturarbeiten selbst in die Hand nehmen? <br> Hier lernen Sie, wie Sie die Lebenszeit ihrer Roboter erh\u00f6hen und mechanische Baugruppen selbst austauschen k\u00f6nnen. <br> <br> Service Elektrik <br> Eine fachgerechte St\u00f6rungsdiagnose und St\u00f6rungsbeseitigung der Elektrik bringt ihre Anlage schnellstm\u00f6glich wieder in Produktionsbetrieb. <br> Wir bringen Ihnen bei, wie sie Ihre Anlage m\u00f6glichst schnell wieder elektrisch in Betrieb nehmen.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Service Mechanik RV\", file: \"03_Schulungsinhalt_Service Mechanik RV-Kinematik.pdf\" },\r\n\t  { name: \"Schulungsinhalt Service Mechanik RL\", file: \"02_Schulungsinhalt_Service Mechanik RL-Kinematik.pdf\" },\r\n\t  { name: \"Schulungsinhalt Service Elektrik\", file: \"04_Schulungsinhalt_Service Elektrik Systemtechnik.pdf\" }\r\n    ]\r\n  },\r\n  \"Programmieren II\": {\r\n    beschreibung: \"Programmieren II <br> Vertiefen Sie ihre bestehenden Programmierkenntnisse & Beschleunigen Sie ihre Programmiergeschwindigkeit mit n\u00fctzlichen Features. <br> Au\u00dferdem: Erlernen von spezifischen Fertigkeiten f\u00fcr Bahnanwendungen wie Schwei\u00dfen, Schneiden oder Kleben.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Programmieren II\", file: \"05_Schulungsinhalt_Programmieren_2.pdf\" }\r\n    ]\r\n  },\r\n  \"Provis Grundlagen Provis Offline Programmierung\": {\r\n    beschreibung: \"Provis Grundlagen <br> Mittels unseres Offlinetools Provis k\u00f6nnen Sie Ihre Anlage bereits im Voraus programmieren und potentielle Schwachstellen erkennen. <br> Lernen Sie mit diesem Kurs den Einstieg in die Welt der Offlineprogrammierung kennen. <br> <br> Provis Offline Programmierung <br> Mit der Weiterf\u00fchrung unseres Kurses zu dem Offlinetool Provis k\u00f6nnen Sie komplette virtuelle Welten erstellen, <br> welche ihre Offlineprogrammierung von Roboterbewegungen auf das n\u00e4chste Level heben wird.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Provis Grundlagen\", file: \"06_Schulungsinhalt_Provis Grundlagen.pdf\" },\r\n\t  { name: \"Schulungsinhalt Provis Offline Programmierung\", file: \"07_Schulungsinhalt_Provis_Grundlagen_Offline.pdf\" }\r\n    ]\r\n  },\r\n  \"Roboter SPS Programmierung\": {\r\n    beschreibung: \"Roboter SPS Programmierung <br> Unsere Reis ROBOTstar Steuerungen verf\u00fcgen \u00fcber eine interne SPS. <br> Mittels dieser k\u00f6nnen Sie parallele Abl\u00e4ufe steuern, komplexe Logikverkn\u00fcpfungen erstellen und Echtzeitsystemvariablen ansteuern und auswerten.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Roboter SPS Programmierung\", file: \"08_Schulungsinhalt_Roboter_SPS_Programmierung.pdf\" }\r\n    ]\r\n  },\r\n  \"Makroprogrammierung\": {\r\n    beschreibung: \"Makroprogrammierung <br> Mittels Makrofunktionen erleichtern und erm\u00f6glichen Sie ihren Anlagenbedienern den Umgang mit Greifern, Schwei\u00dfzangen und vielen weiteren Dingen. <br> Hier lernen Sie diese in Betrieb zu nehmen, zu konfigurieren und zu programmieren.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Makroprogrammierung\", file: \"09_Schulungsinhalt_Makroprogrammierung.pdf\" }\r\n    ]\r\n  },\r\n  \"Lichtbogensensor\/Suchen\": {\r\n    beschreibung: \"Lichtbogensensor\/Suchen <br> Das Programmieren von Lichtbogenschwei\u00dfen mit der Suchen-Funktion erfordert spezielle Fachkenntnisse. <br> In dieser Schulung zeigen wir Ihnen die h\u00e4ufigsten Fehlerquellen und die beste Programmiervorgehensweise, um Ihren Programmieraufwand und Ihre Ausschussrate zu reduzieren.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Lichtbogensensor\/Suchen\", file: \"10_Schulungsinhalt_Lichtbogensensor_Suchen.pdf\" }\r\n    ]\r\n  },\r\n  \"Servo-Robot Nahtverfolgung\": {\r\n    beschreibung: \"Servo-Robot Nahtverfolgung <br> Mit unserer integrierten Servo-Robot Nahtverfolgung lassen sich toleranzanf\u00e4llige Bauteile verschwei\u00dfen, <br> ohne den Roboter immer wieder neu zu programmieren und die Schwei\u00dfbahn neu ausrichten zu m\u00fcssen.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Servo-Robot Nahtverfolgung\", file: \"11_Schulungsinhalt_Servo_Robot_Nahtverfolgung.pdf\" }\r\n    ]\r\n  },\r\n  \"Programmieren von Sicherheitsbereichen\": {\r\n    beschreibung: \"Programmieren von Sicherheitsbereichen <br> Das Programmieren von Sicherheitsbereichen sind das A und O, um Ihren Mitarbeitern die erforderliche Sicherheit neben Ihrer Anlage zu gew\u00e4hrleisten.<br> Dazu z\u00e4hlen die sachgerechte Inbetriebnahme, die anfallende St\u00f6rungsdiagnose und die erforderliche St\u00f6rungsbeseitung der Sicherheitskomponenten.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Programmieren von Sicherheitsbereichen\", file: \"12_Schulungsinhalt_Programmieren von Sicherheitsbereichen.pdf\" }\r\n    ]\r\n  },\r\n  \"Automatische Bahn Generierung\": {\r\n    beschreibung: \"Automatische Bahngenerierung <br> Mittels des Offlinetools Provis k\u00f6nnen Sie ihr Anlage virtuell abbilden. <br> Mittels der automatischen Bahngenerierung der CAD Daten k\u00f6nnen Sie auf einfachste Weise ganze Bahnen und Programme in k\u00fcrzester Zeit erstellen.\",\r\n    pdfs: [\r\n      { name: \"Schulungsinhalt Automatische Bahn Generierung\", file: \"13_Schulungsinhalt_Automatische_Bahn_Generierung.pdf\" }\r\n    ]\r\n  },\r\n  \"Workshop\": {\r\n    beschreibung: \"Workshop <br> Wir bieten verschiedenste Workshops an \u2013 Nennen Sie uns gerne Ihre Themen, f\u00fcr die Sie sich interessieren.\",\r\n    pdfs: [\r\n      \/\/{ name: \"Schulungsinhalt Workshop\", file: \"Schulungsinhalt_Workshop.pdf\" }\r\n    ]\r\n  },\r\n  \"Schulungskurs auf Anfrage\": {\r\n    beschreibung: \"Schulungskurs auf Anfrage <br> Fragen Sie uns gerne nach einem spezifischen Kurs oder ihrem ganz eigenen Thema. <br> Sie finden eine Schulungs\u00fcbersicht zum Download unter dem nebenstehenden Icon.\",\r\n    pdfs: [\r\n      { name: \"\u00dcbersicht Schulungskurse\", file: \"00_Schulungsinhalt_Schulungsunterlagen_\u00dcbersicht_2025.pdf\" }\r\n    ]\r\n  }\r\n};\r\n\r\n\tconst info = kursInfos[kursName];\r\n\r\n\tif (!info) return;\r\n\r\nconst pdfLinks = info.pdfs.map(pdf =>\r\n  `<a target=\"_blank\" href=\"${pdf.file}\" download title=\"${pdf.name}\">\ud83d\udcc4<\/a>`\r\n).join(\" \");\r\n\r\nkursCell.innerHTML = `\r\n  <div style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n    <span class=\"course-title\" style=\"flex: 1; text-align: left;\">${kursName}<\/span>\r\n    <span style=\"white-space: nowrap;\">\r\n      <span class=\"table-tooltip-trigger\" data-tooltip=\"${info.beschreibung}\">\ud83d\udec8<\/span>\r\n      ${pdfLinks}\r\n    <\/span>\r\n  <\/div>\r\n`;\r\n\r\n});\r\n\r\n\t\t\t\r\n            calendar.render();\r\n\t\t\t\/\/ Diese Funktionen global machen\r\n\t\t\t\/\/ window.toggleCalendar = toggleCalendar;\r\n\t\t\t\/\/ window.switchCalendarView = switchCalendarView;\r\n        });\r\n    <\/script>\r\n<script>\r\n$(document).ready(function() {\r\n\r\n\t\/\/ Registriere moment.js mit deutschem Datumsformat\r\n    $.fn.dataTable.moment('DD.MM.YYYY');\r\n\t\r\n    $('#trainingTable').DataTable({\r\n        \"paging\": false,\r\n        \"searching\": false,\r\n        \"info\": false,\r\n\t\t\"order\": [[2, \"asc\"]] \/\/ Spalte 2 (Index beginnt bei 0) aufsteigend sortieren\r\n    });\r\n});\r\n<\/script><script>\r\nfunction filterTableByTitle(courseTitle) {\r\n    var table, tr, td, i;\r\n    table = document.getElementById(\"trainingTable\");\r\n    tr = table.getElementsByTagName(\"tr\");\r\n    for (i = 1; i < tr.length; i++) {\r\n        td = tr[i].getElementsByTagName(\"td\")[0];\r\n        if (td) {\r\n            if (courseTitle == \"\" || td.innerHTML.indexOf(courseTitle) > -1) {\r\n                tr[i].style.display = \"\";\r\n            } else {\r\n                tr[i].style.display = \"none\";\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/script>\r\n<script>\r\n\r\nfunction getISOWeek(date) {\r\n    const tmp = new Date(date.valueOf());\r\n    const day = date.getDay() || 7;\r\n    tmp.setDate(tmp.getDate() + 4 - day);\r\n    const yearStart = new Date(tmp.getFullYear(), 0, 1);\r\n    return Math.ceil((((tmp - yearStart) \/ 86400000) + 1) \/ 7);\r\n}\r\n\r\nfunction formatGermanDate(dateStr) {\r\n    const date = new Date(dateStr);\r\n    const day = String(date.getDate()).padStart(2, '0');\r\n    const month = String(date.getMonth() + 1).padStart(2, '0');\r\n    const year = date.getFullYear();\r\n    return `${day}.${month}.${year}`;\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n  document.querySelectorAll('.request-button').forEach(function(button) {\r\n  \r\n    \/\/ Hier STARTET die Schleife: F\u00fcge den Block gleich HIER ein!\r\n  \r\n  const today = new Date();\r\n  const startDate = new Date(button.dataset.start);\r\n  const daysUntilStart = (startDate - today) \/ (1000 * 60 * 60 * 24);\r\n\r\n  if (daysUntilStart < 14) {\r\n    button.disabled = true;\r\n    button.classList.add(\"disabled\");\r\n    button.textContent = \"Kursanfrage nicht mehr m\u00f6glich.\";\r\n    \r\n    const row = button.closest('tr');\r\n    const dropdown = row.querySelector('.participant-count');\r\n    if (dropdown) dropdown.disabled = true;\r\n    return;\r\n  }\r\n  \r\n  \r\n  \r\n  \/*\r\n    button.addEventListener('click', function () {\r\n\tif (button.disabled) return; \/\/ Ignoriere, wenn Button deaktiviert ist\r\n      const row = button.closest('tr');\r\n      const dropdown = row.querySelector('.participant-count');\r\n      const participants = dropdown ? dropdown.value : 1;\r\n\r\n      const title = `\u201e${button.dataset.title}\u201c`;\r\n      const startRaw = button.dataset.start;\r\n      const endRaw = button.dataset.end;\r\n\r\n      const startDate = new Date(startRaw);\r\n      const endDate = new Date(endRaw);\r\n\r\n      const formattedStart = formatGermanDate(startRaw);\r\n      const formattedEnd = formatGermanDate(endRaw);\r\n      const week = getISOWeek(startDate);\r\n\r\n      const controller = row.cells[1].textContent.trim();\r\n      const availableSpots = row.cells[5].querySelector('.available-spots')?.textContent.trim() || 'n\/a';\r\n\r\n      const subject = `Anfrage zu Schulungskurs ${title}`;\r\n      const rawBody =\r\n\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +\r\n\t\t  `ich interessiere mich f\u00fcr den Kurs ${title} auf dem Steuerungstyp ${controller} vom ${formattedStart} bis ${formattedEnd} in Kalenderwoche ${week}.\\n` +\r\n\t\t  `Es sollten noch ${availableSpots} Pl\u00e4tze verf\u00fcgbar sein, ich w\u00fcrde gerne f\u00fcr ${participants} Teilnehmer vorreservieren.\\n\\n` +\r\n\t\t  `Bitte senden Sie mir weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +\r\n\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;\r\n\r\nconst mailtoLink = `mailto:consulting.cs@reisrobotics.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(rawBody)}`;\r\n\r\n      window.open(mailtoLink, '_blank');\r\n    });\r\n\t*\/\r\n\tbutton.addEventListener('click', function () {\r\n\t  if (button.disabled) return; \/\/ Ignoriere, wenn Button deaktiviert ist\r\n\r\n\t  const row = button.closest('tr');\r\n\t  const dropdown = row.querySelector('.participant-count');\r\n\t  const participants = dropdown ? dropdown.value : 1;\r\n\r\n\t  const kursTitelRaw = button.dataset.title.trim();\r\n\t  const title = `\u201e${kursTitelRaw}\u201c`;\r\n\t  const startRaw = button.dataset.start;\r\n\t  const endRaw = button.dataset.end;\r\n\r\n\t  const startDate = new Date(startRaw);\r\n\t  const endDate = new Date(endRaw);\r\n\r\n\t  const formattedStart = formatGermanDate(startRaw);\r\n\t  const formattedEnd = formatGermanDate(endRaw);\r\n\t  const week = getISOWeek(startDate);\r\n\r\n\t  const controller = row.cells[1].textContent.trim();\r\n\t  const availableSpots = row.cells[5].querySelector('.available-spots')?.textContent.trim() || 'n\/a';\r\n\r\n\t  let subject = `Anfrage zu Schulungskurs ${title}`;\r\n\t  let rawBody = \"\";\r\n\r\n\t  \/\/ \u2705 Spezialfall: Schulungskurs auf Anfrage\r\n\t  if (kursTitelRaw.toLowerCase() === \"schulungskurs auf anfrage\") {\r\n\t\trawBody =\r\n\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +\r\n\t\t  `ich interessiere mich f\u00fcr eine individuelle Schulung bzw. f\u00fcr die Schulung \"...\" \\n\\n` +\r\n\t\t  `auf dem Steuerungstyp \"...\", \\n\\n` +\r\n\t\t  `welche momentan nicht im Schulungskalender vorgesehen ist.\\n\\n` +\r\n\t\t  `Bitte geben Sie mir Bescheid, ob hierzu die Kalenderwoche ${week} von ${formattedStart} bis ${formattedEnd} f\u00fcr ${participants} Teilnehmer verf\u00fcgbar ist.\\n` +\r\n\t\t  `Bitte senden Sie mir au\u00dferdem weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +\r\n\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;\r\n\t  } else {\r\n\t\t\/\/ \ud83d\udfe6 Standardfall\r\n\t\trawBody =\r\n\t\t  `Sehr geehrtes Reis Robotics Team,\\n\\n` +\r\n\t\t  `ich interessiere mich f\u00fcr den Kurs ${title} auf dem Steuerungstyp ${controller} vom ${formattedStart} bis ${formattedEnd} in Kalenderwoche ${week}.\\n` +\r\n\t\t  `Es sollten noch ${availableSpots} Pl\u00e4tze verf\u00fcgbar sein, ich w\u00fcrde gerne f\u00fcr ${participants} Teilnehmer vorreservieren.\\n\\n` +\r\n\t\t  `Bitte senden Sie mir weitere Informationen bez\u00fcglich Unterkunft, Anfahrt und ein Angebot zu.\\n\\n` +\r\n\t\t  `Mit freundlichen Gr\u00fc\u00dfen,`;\r\n\t  }\r\n\r\n\t  const mailtoLink = `mailto:consulting.cs@reisrobotics.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(rawBody)}`;\r\n\t  window.open(mailtoLink, '_blank');\r\n\t});\r\n\r\n\t\r\n\t\r\n\t\r\n  });\r\n});\r\n<\/script>\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n  const tooltipEl = document.createElement('div');\r\n  tooltipEl.className = 'tooltip-custom';\r\n  tooltipEl.style.position = 'absolute';\r\n  tooltipEl.style.background = '#333';\r\n  tooltipEl.style.color = '#fff';\r\n  tooltipEl.style.padding = '6px 10px';\r\n  tooltipEl.style.borderRadius = '4px';\r\n  tooltipEl.style.fontSize = '13px';\r\n  tooltipEl.style.lineHeight = '1.6';\r\n  tooltipEl.style.zIndex = 1000;\r\n  tooltipEl.style.display = 'none';\r\n  tooltipEl.style.pointerEvents = 'none';\r\n  document.body.appendChild(tooltipEl);\r\n\r\n  document.querySelectorAll('.table-tooltip-trigger').forEach(function (icon) {\r\n    icon.addEventListener('mouseenter', function (e) {\r\n      \/\/tooltipEl.textContent = icon.dataset.tooltip;\r\n\t  tooltipEl.innerHTML = icon.dataset.tooltip;\r\n\r\n      tooltipEl.style.display = 'block';\r\n      tooltipEl.style.left = e.pageX + 10 + 'px';\r\n      tooltipEl.style.top = e.pageY + 10 + 'px';\r\n    });\r\n\r\n    icon.addEventListener('mousemove', function (e) {\r\n      tooltipEl.style.left = e.pageX + 10 + 'px';\r\n      tooltipEl.style.top = e.pageY + 10 + 'px';\r\n    });\r\n\r\n    icon.addEventListener('mouseleave', function () {\r\n      tooltipEl.style.display = 'none';\r\n    });\r\n  });\r\n});\r\n<\/script>\r\n\r\n\r\n<\/html>","_et_gb_content_width":"","footnotes":""},"class_list":["post-16166","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Training calender - Reis Robotics<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Training calender - Reis Robotics\" \/>\n<meta property=\"og:url\" content=\"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/\" \/>\n<meta property=\"og:site_name\" content=\"Reis Robotics\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-14T05:58:08+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/training-calender\\\/\",\"url\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/training-calender\\\/\",\"name\":\"Training calender - Reis Robotics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#website\"},\"datePublished\":\"2025-07-11T07:42:48+00:00\",\"dateModified\":\"2025-07-14T05:58:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/training-calender\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/training-calender\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/training-calender\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kundenservice\",\"item\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Training &#038; Schulung\",\"item\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/kundenservice\\\/training-schulung\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Training calender\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/\",\"name\":\"Reis Robotics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#organization\",\"name\":\"Reis Robotics\",\"url\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/reisrobotics.com\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/REIS_LOGO-BLACK.svg\",\"contentUrl\":\"https:\\\/\\\/reisrobotics.com\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/REIS_LOGO-BLACK.svg\",\"width\":1,\"height\":1,\"caption\":\"Reis Robotics\"},\"image\":{\"@id\":\"https:\\\/\\\/reisrobotics.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Training calender - Reis Robotics","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/","og_locale":"de_DE","og_type":"article","og_title":"Training calender - Reis Robotics","og_url":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/","og_site_name":"Reis Robotics","article_modified_time":"2025-07-14T05:58:08+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/","url":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/","name":"Training calender - Reis Robotics","isPartOf":{"@id":"https:\/\/reisrobotics.com\/de\/#website"},"datePublished":"2025-07-11T07:42:48+00:00","dateModified":"2025-07-14T05:58:08+00:00","breadcrumb":{"@id":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/training-calender\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/reisrobotics.com\/de\/"},{"@type":"ListItem","position":2,"name":"Kundenservice","item":"https:\/\/reisrobotics.com\/de\/kundenservice\/"},{"@type":"ListItem","position":3,"name":"Training &#038; Schulung","item":"https:\/\/reisrobotics.com\/de\/kundenservice\/training-schulung\/"},{"@type":"ListItem","position":4,"name":"Training calender"}]},{"@type":"WebSite","@id":"https:\/\/reisrobotics.com\/de\/#website","url":"https:\/\/reisrobotics.com\/de\/","name":"Reis Robotics","description":"","publisher":{"@id":"https:\/\/reisrobotics.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/reisrobotics.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/reisrobotics.com\/de\/#organization","name":"Reis Robotics","url":"https:\/\/reisrobotics.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/reisrobotics.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/reisrobotics.com\/wp-content\/uploads\/2023\/07\/REIS_LOGO-BLACK.svg","contentUrl":"https:\/\/reisrobotics.com\/wp-content\/uploads\/2023\/07\/REIS_LOGO-BLACK.svg","width":1,"height":1,"caption":"Reis Robotics"},"image":{"@id":"https:\/\/reisrobotics.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/pages\/16166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/comments?post=16166"}],"version-history":[{"count":4,"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/pages\/16166\/revisions"}],"predecessor-version":[{"id":16186,"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/pages\/16166\/revisions\/16186"}],"up":[{"embeddable":true,"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/pages\/15368"}],"wp:attachment":[{"href":"https:\/\/reisrobotics.com\/de\/wp-json\/wp\/v2\/media?parent=16166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}