PageSourceSearch

https://kunden.stadtwerke-schwentinental.de/powercommerce/ivu/fo/portal/

html stadtwerke-schwentinental.de collected 2026-10-05 10:56:10 UTC 65,680 bytes, 1,171 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de-DE">
3    <head>
4        <title>Kundenportal Stadtwerke Schwentinental</title>
5        <meta charset="UTF-8"/>
6        <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
7        <!-- Favorite icon -->
8        <link rel="apple-touch-icon" sizes="180x180" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/apple-touch-icon.png">
9        <link rel="icon" type="image/png" sizes="32x32" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/favicon-32x32.png">
10        <link rel="icon" type="image/png" sizes="16x16" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/favicon-16x16.png">
11        <link rel="manifest" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/site.webmanifest">
12        <link rel="mask-icon" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/safari-pinned-tab.svg" color="#fff">
13        <link rel="shortcut icon" href="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/favicon.ico">
14        <meta name="msapplication-TileColor" content="#ffffff">
15        <meta name="msapplication-config" content="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/favicons/browserconfig.xml">
16        <meta name="theme-color" content="#ffffff">
17        <link rel="stylesheet" type="text/css" href="/powercommerce/ivu/fo/portal/resources/css/i18n/ivu.css?v=21"/>
18        <!-- Java Script -->
19
20
21<!-- ITC -->
22<script type="text/javascript">
23    var flowUrl = '';
24var generalNoResponseMessage = 'Ihre Anfrage konnte nicht verarbeitet werden. Wenn Sie über längere Zeit keine Aktion ausgeführt haben, wurde Ihre Benutzersitzung beendet. Melden Sie sich ggf. vom Portal ab und führen Sie anschließend Ihre Eingabe erneut aus.';
25var errorTitle = 'Fehler';
26var warningTitle = 'Hinweis';
27var infoTitle = 'Information';
28var buttonCloseTitle = 'Schließen';
29
30var datepickerLocale = 'de';
31</script>
31
32
33
34<script type="text/javascript" src="/powercommerce/ivu/fo/portal/resources/js/vendor.min.js"></script>
34
35    
35<script type="text/javascript" src="/powercommerce/ivu/fo/portal/resources/js/core/cockpit.js"></script>
35
36
37<script type="text/javascript" src="/powercommerce/ivu/fo/portal/resources/js/ivu.min.js?v=21"></script>
37
38
39
40    </head>
41
42    <body class=" cockpit  ivu  ">
43        <a class="osp-link--skip" href="#main">Zum Inhalt</a>
44        <div id="browser-notification">
45            Sie verwenden einen veralteten Browser, mit dem nicht alle Inhalte des Kundenportals korrekt wiedergegeben werden können. Um unser Kundenportal in Aussehen und Funktion in vollem Umfang nutzen zu können, empfehlen wir Ihnen eine neue Version Ihres Browsers zu installieren.        </div>
46
47                <header class="osp-header">
48    <div class="osp-header__inner">
49        <div class="headblock">
50            <span class="redline"></span>
51            <div id="logo">
52                <a href="https://www.stadtwerke-schwentinental.de/home" target="_blank">
53                    <img class="osp-header__logo" src="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/logo.svg" alt="Stadtwerke Schwentinental" />
54                </a>
55            </div>
56        </div>
57        <div id="metaBox">
58            <h1>Kundenportal</h1>
59            <nav aria-label="header-nav" class="navbar metanav" role="navigation">
60                <span id="kontakt"><a href="https://www.stadtwerke-schwentinental.de/kontakt" title="Kontakt" class="active"><span>Kontakt</span></a></span>
61                <span id="stoerung"><a href="https://www.stadtwerke-schwentinental.de/stoerung" title="Störung"><span>Störung</span></a></span>
62                <span id="kundenportal"><a href="https://kunden.stadtwerke-schwentinental.de/powercommerce/ivu/fo/portal/" target="_blank" title="Kundenportal"><span>Kundenportal</span></a></span>
63                <span id="netzportal">
64                    <a href="https://www.stadtwerke-schwentinental.de/netze/netzportal" target="_blank" title="Netzportal">
65                        <span>Netzportal</span>
66                    </a>
67                </span>
68            </nav>
69        </div>
70    </div>
71</header>
72
73
74                                            
75
76<script type="text/javascript">
77    var errorsExists = false;
78    var warningsExists = false;
79    var infosExists = false;
80</script>
80
81
82<div id="cockpitMessageContainer" class="alert alert-danger fade" data-dismiss="alert" role="alert">
83    <button class="btn btn-close" data-dismiss="alert" type="button" aria-label="Schließen">
84                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon cancel osp-icon--medium " aria-hidden="true" role="presentation">
85            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#cancel" />
86        </svg>
87        </button>
88    <h2 class="font-bold">Fehler</h2>
89    <p>
90            </p>
91</div>
92
93<script type="text/javascript">
94        jQuery("#cockpitMessageContainer button").click(function() {
95        jQuery("#cockpitMessageContainer").removeClass("in");
96    });
97</script>
97
98
99
100
101
102                        
103        <main id="main">
104
105                                                            <section class="osp-hero">
106                        <picture class="osp-hero__picture">
107                            <source type="image/avif" sizes="100vw" srcset="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/hero.avif" />
108                            <img src="/powercommerce/ivu/fo/portal/resources/images/i18n/stt/hero.jpg" alt="" aria-hidden="true" />
109                        </picture>
110
111                        <div class="osp-hero__inner">
112                            <div class="osp-hero__claim">
113                                <h2 class="osp-hero__claim-text">Willkommen bei den Stadtwerken Schwentinental</h2>
114                                <nav class="btn__line osp-hero__claim-actions" aria-label="Schnelle Links zu Funktionen">
115        		
116                <a id="directCustomerRequest" href="/powercommerce/ivu/fo/portal/directCustomerRequest"                                 class="btn btn-default"                                        
117                                                            >
118                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon customer-service osp-icon--medium " aria-hidden="true" role="presentation">
119            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#customer-service" />
120        </svg>
121            Kundenservice kontaktieren
122    
123    </a>
124
125    <a class="btn btn-default osp-enwg-contract-cancellation" href="#">
126                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon contract-cancel osp-icon--medium " aria-hidden="true" role="presentation">
127            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#contract-cancel" />
128        </svg>
129            Vertrag kündigen
130    </a>
131
132    <a class="btn btn-default osp-contract-revocation" href="#">
133                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon contract-cancel osp-icon--medium " aria-hidden="true" role="presentation">
134            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#contract-cancel" />
135        </svg>
136            Vertrag widerrufen
137    </a>
138
139        		
140                <a id="directAdvancePaymentUpdate" href="/powercommerce/ivu/fo/portal/directAdvancePaymentUpdate"                                 class="btn btn-default"                                        
141                                                            >
142                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon prepayment osp-icon--medium " aria-hidden="true" role="presentation">
143            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18
143n/iconsprite.svg?v=2#prepayment" />
144        </svg>
145            Abschlag ändern    
146    </a>
147
148</nav>
149                            </div>
150                            		
151                
152            <div id="loginWidget" class="card login opened-sm widget" />
153                            <form id="loginProcessForm" action="/powercommerce/ivu/fo/portal/loginProcess" method="post"  >
154                            <div class="card-header" >
155                    <h2 class="card-title">
156                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon login osp-icon--large " aria-hidden="true" role="presentation">
157            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#login" />
158        </svg>
159                    <span class="card-title-text">Anmeldung</span>
160            </h2>
161        
162    </div>
163                                                <div class="card-body d-md-block" >
164                                    <div id="loginWidgetCredentialsContainer" class="osp-credentials" >
165                                <div class="card-text" >
166                        Sie sind bereits registriert? Dann können Sie sich hier mit Ihrem Benutzernamen und Ihrem Passwort anmelden.            
167    </div>
168
169            		
170            
171            
172                
173                            <div class="">
174                        <div class="osp-float-input  ">
175                                
176                    <input id="login" type="text" name="login" value=""
177                                   class="form-control   "                                        
178                                                                                maxlength="40"                      required aria-required="true"  />
179                        <label for="login">Benutzername</label>
180            </div>
181                                        </div>
182                    
183
184            <div class="osp-float-input">
185                <input id="password" type="password" name="password" class="form-control has-addon" title="Passwort" required>
186                <label for="password">Passwort</label>
187                <button id="passwordReveal" class="input-group-append" aria-label="Passwort anzeigen">
188                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <svg class="osp-icon visibility osp-icon--medium " aria-hidden="true" role="presentation">
189            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#visibility" />
190        </svg>
191                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon visibility-off osp-icon--medium hidden " aria-hidden="true" role="presentation">
192            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18
192n/iconsprite.svg?v=2#visibility-off" />
193        </svg>
194                    </button>
195            </div>
196        
197    </div>
198
199                    <div id="loginWidgetOneTimePasswordContainer" class="osp-credentials " style="display:none">
200                        <p class="widget-formline-text">                Sie haben die 2-Faktor-Authentifizierung aktiviert, ein Einmalpasswort wurde Ihnen per SMS zugesendet.            </p>
201            <div class="osp-float-input">
202                <input id="oneTimePassword" name="oneTimePassword" type="text" autocomplete="one-time-code"
203                       aria-placeholder="Einmalpasswort" class="form-control has-addon" maxlength="40" />
204                <label for="oneTimePassword">Einmalpasswort</label>
205                <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon login osp-icon--medium " aria-hidden="true" role="presentation">
206            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#login" />
207        </svg>
208    </div>
209            </div>
210        
211    </div>
212    
213    
214    </div>
215
216                    <div class="card-footer d-md-block" >
217                                    <div class="card-button-line" >
218                        		
219                
220                
221                
222                                <button id="loginButton" type="submit" name="button.login.widget"
223                                        class="btn btn-primary btn-block"            title="Anmelden"                            
224                                                            
225                                    onclick="return submitFormRequired('loginButton');"
226                                value="">
227                                    Jetzt Anmelden                        </button>
228            
229    </div>
230                    <div class="card-links" >
231                        		
232                <a id="loginUserAuthDataRetrieval" href="/powercommerce/ivu/fo/portal/userAuthDataRetrieval"                                 class="card-link"                                        
233                                                            >
234                        Zugangsdaten vergessen oder Konto gesperrt?            
235    </a>
236        
237    </div>
238    
239		<div class="clearfix"></div>
240    
241    </div>
242
243                            </form>
244                                <div class="osp-card-loader" aria-hidden="true">
245                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon cog osp-icon--rotate osp-icon--max " aria-hidden="true" role="presentation">
246            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#cog" />
247        </svg>
248        </div>
249            </div>
250
251<script type="text/javascript">
252    document.querySelector("#password").addEventListener('keyup', checkCapsLockpassword);
253    document.querySelector("#password").addEventListener('mousedown', checkCapsLockpassword);
254    /**
255     * @function check if capslock is active
256     * @param {Event} e
257     */
258    function checkCapsLockpassword(e) {
259        if (!e.getModifierState) return;
260        const capsLockOn = e.getModifierState('CapsLock');
261        const _msg = jQuery("#loginMessage");
262        if(capsLockOn === true && !_msg.is(":visible"))
263        {
264            showWidgetWarning('login', 'Die Feststelltaste ist aktiviert.');
265        }
266        else if(capsLockOn === false && _msg.is(":visible"))
267        {
268            hideWidgetMessage('login');
269        }
270    }
271
272    /**
273     * @function jQuery click handler for password reveal
274     */
275    jQuery("#passwordReveal").click(function(ev) {
276        ev.preventDefault();
277        const _password = jQuery("#password");
278        const _trigger = jQuery(this);
279        const _iconShow = _trigger.find(".visibility");
280        const _iconHide = _trigger.find(".visibility-off");
281        _iconShow.removeClass("hidden");
282        _iconHide.removeClass("hidden");
283        if (_password.attr("type") === "password") {
284            _password.attr("type", "text");
285            _iconShow.addClass("hidden");
286        } else {
287            _password.attr("type", "password");
288            _iconHide.addClass("hidden");
289        }
290    });
291
292</script>
292
293
294                            
294<script type="text/javascript">
295                                var login = null;
296var password = null;
297
298$(document).ready(function()
299{
300    });
301
302$('#loginButton').click(function()
303{
304    loginSubmitRequest('/powercommerce/ivu/fo/portal/loginWidget.json');
305    return false;
306});
307
308function loginSubmitRequest(url)
309{
310    // reset error formatting on submit
311    resetWidgetErrors();
312    if(typeof meterReadingInit == 'function')
313    {
314        meterReadingInit();
315    }
316    if(typeof productSearchInit == 'function')
317    {
318        productSearchInit();
319    }
320    if(typeof userRegistrationInit == 'function')
321    {
322        userRegistrationInit();
323    }
324
325    jQuery.ajax(
326        {
327            url : url,
328            type : 'POST',
329            dataType : 'json',
330            data : $('#loginProcessForm').serialize(),
331
332            // show IVU loader
333            beforeSend: function() {
334                jQuery( "#loginWidget .osp-card-loader" ).addClass("show");
335            },
336
337            // perform login, if no errors occurs
338            success : function(data, textStatus, jqXHR)
339            {
340                // $('#loginButton').showWidgetButtonLoader('login', 300000);
341                $('#loginProcessForm').submit();
342            },
343            error : function(data)
344            {
345                var jsonData = jQuery.parseJSON(data.responseText);
346                jQuery( "#loginWidget .osp-card-loader" ).removeClass("show");
347
348                // exception
349                if (jsonData == null || jsonData.exception != null)
350                {
351                    var message = null;
352                    if(jsonData == null)
353                    {
354                        message = 'Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.';
355                    }
356                    else
357                    {
358                        message = jsonData.exception;
359                    }
360                    showWidgetError('login', message);
361                    return;
362                }
363
364                $('#login').val(trimToUndefined(jsonData.model.login));
365                $('#password').val(trimToUndefined(jsonData.model.password));
366
367                // global errors
368                if (jsonData.hasGlobalErrors)
369                {
370                    showWidgetError('login', jsonData.globalerrors[0]);
371                }
372
373                // field errors
374                if (jsonData.hasFieldErrors)
375                {
376                    jQuery.each(jsonData.fielderrors, function(key, value)
377                    {
378                        if (key === "oneTimePassword")
379                        {
380                            if (value.indexOf("ONE_TIME_PASSWORD_MANDATORY_BUT_MISSING") != -1)
381                            {
382                                retrieveOneTimePassword();
383                            }
384                            else if (value.indexOf("WRONG_ONE_TIME_PASSWORD") != -1)
385                            {
386                                //loginInit();
387                            }
388                        }
389                        else
390                        {
391                            showWidgetFieldError(key, value);
392                        }
393                    });
394                }
395            }
396
397        });
398}
399
400function retrieveOneTimePassword()
401{
402    jQuery( "#loginWidget .osp-card-loader" ).addClass("show");
403    jQuery.ajax(
404        {
405            url: "/powercommerce/ivu/fo/portal/oneTimePasswordRequest.json",
406            type: 'POST',
407            dataType: 'json',
408            data: {
409                login: $('#login').val()
410            },
411
412            // perform login, if no errors occurs
413            success: function (data, textStatus, jqXHR)
414            {
415                jQuery( "#loginWidget .osp-card-loader" ).removeClass("show");
416                $('#loginWidgetCredentialsContainer, #loginFooterProcessLinks').fadeOut('fast', function ()
417                {
418                    $('#loginWidgetOneTimePasswordContainer').fadeIn('fast');
419                    jQuery("#oneTimePassword").focus();
420                })
421            },
422            error: function (data)
423            {
424                var jsonData = jQuery.parseJSON(data.responseText);
425                jQuery( "#loginWidget .osp-card-loader" ).removeClass("show");
426
427                // exception
428                if (jsonData == null || jsonData.exception != null)
429                {
430                    console.log("no json data");
431                    var message = null;
432                    if (jsonData == null)
433                    {
434                        message = 'Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.';
435                    }
436                    else
437                    {
438                        message = jsonData.exception;
439                    }
440                    showWidgetError('login', message);
441                    return;
442                }
443
444                if (jsonData.hasGlobalErrors && jsonData.globalerrors.length) {
445                    showWidgetError('login', jsonData.globalerrors[0]);
446                }
447            }
448        });
449}
450
451function loginInit()
452{
453    resetWidgetErrors();
454    $('#login, #password').reset();
455}
456
457                            </script>
457
458                        </div>
459                    </section>
460                    <div id="main-cockpit-panorama-cage" class="d-flex justify-content-between">
461                        <div class="osp-cockpit-overlay">
462                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon cog osp-icon--rotate osp-icon--max inner " aria-hidden="true" role="presentation">
463            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#cog" />
464        </svg>
465    </div>
466
467		
468                
469                
470        <div id="userRegistrationWidget" class="card userRegistration widget" />
471                            <form id="userRegistrationForm" action="/powercommerce/ivu/fo/portal/userRegistration" method="post"  >
472                            <div class="card-header" >
473                    <h2 class="card-title">
474                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon customer osp-icon--large " aria-hidden="true" role="presentation">
475            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#customer" />
476        </svg>
477                    <span class="card-title-text">Registrierung</span>
478            </h2>
479        
480    </div>
481                                                <div class="card-body d-md-block" >
482                                    <div class="card-text" >
483                        <p>                Sie sind Kunde von uns und möchten unseren Online-Service nutzen? Registrieren Sie sich hier mit Ihrer Kunden- und einer Zählernummer.            </p>
484        
485    </div>
486                <div class="osp-float-input">
487            <input id="userRegistrationCustomerNo" type="text" name="customerNo" class="form-control has-addon" maxlength="14" required aria-required="true" />
488            <label for="userRegistrationCustomerNo">Kundennummer</label>
489            <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon customer osp-icon--medium " aria-hidden="true" role="presentation">
490            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#customer" />
491        </svg>
492    </div>
493        </div>
494
495                <div class="osp-float-input">
496            <input id="userRegistrationMeterNo" type="text" name="meterNo" class="form-control has-addon" maxlength="18" required aria-required="true" />
497            <label for="userRegistrationMeterNo">Zählernummer</label>
498            <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon meter osp-icon--medium " aria-hidden="true" role="presentation">
499            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18
499n/iconsprite.svg?v=2#meter" />
500        </svg>
501    </div>
502        </div>
503    
504    
505    </div>
506
507                    <div class="card-footer d-md-block" >
508                                    <div class="card-button-line" >
509                        		
510                
511                
512                
513                                <button id="userRegistrationButton" type="submit" name="button.userRegistration.widget"
514                                        class="btn btn-primary btn-block"            title="Registrieren"                            
515                                                            
516                                    onclick="return submitFormRequired('userRegistrationButton');"
517                                value="">
518                                    Registrieren                        </button>
519            
520    </div>
521    
522		<div class="clearfix"></div>
523    
524    </div>
525
526                            </form>
527                                <div class="osp-card-loader" aria-hidden="true">
528                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon cog osp-icon--rotate osp-icon--max " aria-hidden="true" role="presentation">
529            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#cog" />
530        </svg>
531        </div>
532            </div>
533
534<script type="text/javascript">
535    $("#userRegistrationForm").submit(function () {
536    userRegistrationSubmitRequest(
537        '/powercommerce/ivu/fo/portal/userRegistrationWidget.json'
538    );
539    return false;
540});
541
542function userRegistrationSubmitRequest(url) {
543    jQuery.ajax({
544        url: url,
545        type: "POST",
546        dataType: "json",
547        data: $("#userRegistrationForm").serialize(),
548
549        // reset error formatting on submit
550        beforeSend: function () {
551            resetWidgetErrors();
552            if (typeof meterReadingInit == "function") {
553                meterReadingInit();
554            }
555            if (typeof productSearchInit == "function") {
556                productSearchInit();
557            }
558            if (typeof loginInit == "function") {
559                loginInit();
560            }
561            jQuery("#userRegistrationWidget .osp-card-loader").addClass("show"); // show IVU loader
562        },
563        // start user registration process, if no errors occurs
564        success: function (data, textStatus, jqXHR) {
565            // $('#userRegistrationButton').showWidgetButtonLoader('userRegistration', 300000);
566            startProcess(
567                '/powercommerce/ivu/fo/portal/userRegistration' +
568                    "?customerNo=" +
569                    trim($("#userRegistrationCustomerNo").val()) +
570                    "&meterNo=" +
571                    trim($("#userRegistrationMeterNo").val())
572            );
573        },
574        error: function (data) {
575            var jsonData = jQuery.parseJSON(data.responseText);
576
577            jQuery("#userRegistrationWidget .osp-card-loader").removeClass(
578                "show"
579            ); // hide IVU loader
580
581            // exception
582            if (jsonData == null || jsonData.exception != null) {
583                var message = null;
584                if (jsonData == null) {
585                    message = 'Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.';
586                } else {
587                    message = jsonData.exception;
588                }
589                showWidgetError("userRegistration", message);
590                return;
591            }
592            $("#userRegistrationCustomerNo").val(
593                trimToUndefined(jsonData.model.customerNo)
594            );
595            $("#userRegistrationMeterNo").val(
596                trimToUndefined(jsonData.model.meterNo)
597            );
598
599            // global errors
600            if (jsonData.hasGlobalErrors) {
601                showWidgetError("userRegistration", jsonData.globalerrors[0]);
602            }
603
604            // field errors
605            if (jsonData.hasFieldErrors) {
606                jQuery.each(jsonData.fielderrors, function (key, value) {
607                    fieldName =
608                        "userRegistration" +
609                        key.charAt(0).toUpperCase() +
610                        key.substring(1);
611                    showWidgetFieldError(fieldName, value);
612                });
613            }
614        }
615    });
616}
617
618function userRegistrationInit() {
619    resetWidgetErrors();
620    $("#userRegistrationCustomerNo, #userRegistrationMeterNo").reset();
621}
622
623</script>
623
624
625		
626                <div id="productSearchWidget" class="card product-calculator widget" />
627                            <form id="productSearchForm" action="/powercommerce/ivu/fo/portal/productSearch" method="post"  >
628                            <div class="card-header" >
629                    <h2 class="card-title">
630                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon product-calculator osp-icon--large " aria-hidden="true" role="presentation">
631            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#product-calculator" />
632        </svg>
633                    <span class="card-title-text">Jetzt Kunde werden</span>
634            </h2>
635        
636    </div>
637                                                <div class="card-body d-md-block" >
638                                <fieldset class="osp-radio-group">
639            <legend>Kundentyp</legend>
640                                                            <input id="productSearchCustomerTypePRIVATE" type="radio" name="customerType" value="PRIVATE" checked  />
641                <label for="productSearchCustomerTypePRIVATE">
642                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <svg class="osp-icon customer osp-icon--medium " aria-hidden="true" role="presentation">
643            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#customer" />
644        </svg>
645                        <span>Privat</span>
646                </label>
647                                                            <input id="productSearchCustomerTypeBUSINESS" type="radio" name="customerType" value="BUSINESS"  />
648                <label for="productSearchCustomerTypeBUSINESS">
649                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <svg class="osp-icon business osp-icon--medium " aria-hidden="true" role="presentation">
650            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#business" />
651        </svg>
652                        <span>Geschäftlich</span>
653                </label>
654                    </fieldset>
655                <fieldset class="osp-radio-group">
656            <legend>Energieart</legend>
657                                            <input id="productSearchMediaTextPOWER" type="checkbox" name="power" value="true">
658                <label for="productSearchMediaTextPOWER">
659                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <svg class="osp-icon power osp-icon--medium " aria-hidden="true" role="presentation">
660            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18
660n/iconsprite.svg?v=2#power" />
661        </svg>
662                        <span>Strom</span>
663                </label>
664                                            <input id="productSearchMediaTextGAS" type="checkbox" name="gas" value="true">
665                <label for="productSearchMediaTextGAS">
666                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <svg class="osp-icon gas osp-icon--medium " aria-hidden="true" role="presentation">
667            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#gas" />
668        </svg>
669                        <span>Gas</span>
670                </label>
671                    </fieldset>
672                <div class="osp-float-input">
673            <input id="productSearchPostalCode" type="text" name="postalCode" class="form-control has-addon" maxlength="5" required aria-required="true" />
674            <label for="productSearchPostalCode">Postleitzahl</label>
675            <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon location osp-icon--medium " aria-hidden="true" role="presentation">
676            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#location" />
677        </svg>
678    </div>
679        </div>
680    
681    
682    </div>
683                    <div class="card-footer d-md-block" >
684                                    <div class="card-button-line" >
685                        		
686                
687                
688                
689                                <button id="productSearchButton" type="submit" name="button.productSearch.widget"
690                                        class="btn btn-primary btn-block"            title="Produkte bestimmen"                            
691                                                            
692                                    onclick="return submitFormRequired('productSearchButton');"
693                                value="">
694                                    Produkte bestimmen                        </button>
695            
696    </div>
697    
698		<div class="clearfix"></div>
699    
700    </div>
701
702                            </form>
703                                <div class="osp-card-loader" aria-hidden="true">
704                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon cog osp-icon--rotate osp-icon--max " aria-hidden="true" role="presentation">
705            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#cog" />
706        </svg>
707        </div>
708            </div>
709
710
711
712<script type="text/javascript">
713    $("#productSearchForm").submit(function () {
714    productSearchSubmitRequest(
715        '/powercommerce/ivu/fo/portal/productSearchWidget.json'
716    );
717    return false;
718});
719
720function productSearchSubmitRequest(url) {
721    jQuery.ajax({
722        url: url,
723        type: "POST",
724        dataType: "json",
725        data: $("#productSearchForm").serialize(),
726
727        // reset error formatting on submit
728        beforeSend: function () {
729            productSearchResetErrors();
730            if (typeof meterReadingInit == "function") {
731                meterReadingInit();
732            }
733            if (typeof loginInit == "function") {
734                loginInit();
735            }
736            if (typeof userRegistrationInit == "function") {
737                userRegistrationInit();
738            }
739            jQuery("#productSearchWidget .osp-card-loader").addClass("show"); // show IVU loader
740            injectFilterData();
741        },
742        // start product search process, if no errors occurs
743        success: function (data, textStatus, jqXHR) {
744            // $('#productSearchButton').showWidgetButtonLoader('productSearch', 300000);
745            startProcess(
746                '/powercommerce/ivu/fo/portal/productSearch' +
747                    "?customerType=" +
748                    data.model.customerType +
749                    "&power=" +
750                    data.model.power +
751                    "&gas=" +
752                    data.model.gas +
753                    "&water=" +
754                    data.model.water +
755                    "&thermal=" +
756                    data.model.thermal +
757                    "&postalCode=" +
758                    trim(data.model.postalCode)
759            );
760        },
761        error: function (data) {
762            var jsonData = jQuery.parseJSON(data.responseText);
763            jQuery("#productSearchWidget .osp-card-loader").removeClass("show"); // hide IVU loader
764
765            // exception
766            if (jsonData == null || jsonData.exception != null) {
767                var message = null;
768                if (jsonData == null) {
769                    message = 'Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.';
770                } else {
771                    message = jsonData.exception;
772                }
773                showWidgetError("productSearch", message);
774                return;
775            }
776
777            // global errors
778            if (jsonData.hasGlobalErrors) {
779                showWidgetError("productSearch", jsonData.globalerrors[0]);
780            }
781
782            // field errors
783            if (jsonData.hasFieldErrors) {
784                var customerTypeError;
785                var mediaTypesError;
786                var postalCodeError;
787                jQuery.each(jsonData.fielderrors, function (key, value) {
788                    fieldName =
789                        "productSearch" +
790                        key.charAt(0).toUpperCase() +
791                        key.substring(1);
792                    if (key == "customerType") {
793                        customerTypeError = value;
794                        $('input[id^="productSearchCustomerType"]').addClass(
795                            "alert-danger"
796                        );
797                    }
798                    if (key == "mediaTypes") {
799                        mediaTypesError = value;
800                        $('input[id^="productSearchMedia"]').addClass(
801                            "alert-danger"
802                        );
803                    } else if (key == "postalCode") {
804                        showWidgetFieldError(fieldName, value, false);
805                    }
806                });
807                var message = "";
808                if (customerTypeError != null) {
809                    message += customerTypeError;
810                }
811                if (mediaTypesError != null) {
812                    if (message != "") {
813                        message += "<br/>";
814                    }
815                    message += mediaTypesError;
816                }
817                if (message != "") {
818                    showWidgetError("productSearch", message);
819                }
820            }
821        }
822    });
823}
824
825function productSearchResetErrors() {
826    resetWidgetErrors();
827}
828
829function productSearchInit() {
830    productSearchResetErrors();
831    $(
832        'input[id^="productSearchCustomerType"],input[id^="productSearchMedia"],#productSearchPostalCode'
833    ).reset();
834    $(
835        'input[id^="productSearchCustomerType"],input[id^="productSearchMedia"]'
836    ).removeClass("alert-danger");
837}
838
839</script>
839
840
841		
842                
843            <div id="meterReadingWidget" class="card meter-reading widget" />
844                            <form id="meterReadingForm" action="/powercommerce/ivu/fo/portal/meterReading" method="post"  >
845                            <div class="card-header" >
846                    <h2 class="card-title">
847                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <svg class="osp-icon meter osp-icon--large " aria-hidden="true" role="presentation">
848            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#meter" />
849        </svg>
850                    <span class="card-title-text">Zählerstandsmeldung</span>
851            </h2>
852        
853    </div>
854                            
855                    <div class="card-body d-md-block" >
856                                    <div class="card-text" >
857                        <p>                Sie wollen uns Ihren Zählerstand mitteilen? Bitte geben Sie hier Ihre Kunden- und Zählernummer ein.            </p>
858        
859    </div>
860                <div class="osp-float-input">
861            <input id="meterReadingCustomerNo" type="text" name="customerNo" class="form-control has-addon" maxlength="14" required aria-required="true" />
862            <label for="meterReadingCustomerNo">Kundennummer</label>
863            <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon customer osp-icon--medium " aria-hidden="true" role="presentation">
864            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#customer" />
865        </svg>
866    </div>
867        </div>
868
869                <div class="osp-float-input">
870            <input id="meterReadingMeterNo" type="text" name="meterNo" class="form-control has-addon" maxlength="18" required aria-required="true" />
871            <label for="meterReadingMeterNo">Zählernummer</label>
872            <div class="input-group-append">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon meter osp-icon--medium " aria-hidden="true" role="presentation">
873            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#meter" />
874        </svg>
875    </div>
876        </div>
877
878    
879    
880    </div>
881
882                    <div class="card-footer d-md-block" >
883                                    <div class="card-button-line" >
884                        		
885                
886                
887                
888                                <button id="meterReadingButton" type="submit" name="button.meterReading.widget"
889                                        class="btn btn-primary btn-block"            title="Zählerstandsmeldung"                            
890                                                            
891                                    onclick="return submitFormRequired('meterReadingButton');"
892                                value="">
893                                    Zählerstandsmeldung                        </button>
894            
895    </div>
896    
897		<div class="clearfix"></div>
898    
899    </div>
900
901                            </form>
902                                <div class="osp-card-loader" aria-hidden="true">
903                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <svg class="osp-icon cog osp-icon--rotate osp-icon--max " aria-hidden="true" role="presentation">
904            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18
904n/iconsprite.svg?v=2#cog" />
905        </svg>
906        </div>
907            </div>
908
909<script type="text/javascript">
910    $("#meterReadingForm").submit(function () {
911    meterReadingSubmitRequest(
912        '/powercommerce/ivu/fo/portal/meterReadingWidget.json'
913    );
914    return false;
915});
916
917function meterReadingSubmitRequest(url) {
918    jQuery.ajax({
919        url: url,
920        type: "POST",
921        dataType: "json",
922        data: $("#meterReadingForm").serialize(),
923
924        // reset error formatting on submit
925        beforeSend: function () {
926            resetWidgetErrors();
927            if (typeof loginInit == "function") {
928                loginInit();
929            }
930            if (typeof productSearchInit == "function") {
931                productSearchInit();
932            }
933            if (typeof userRegistrationInit == "function") {
934                userRegistrationInit();
935            }
936            jQuery("#meterReadingWidget .osp-card-loader").addClass("show"); // show IVU loader
937        },
938
939        // perform login, if no errors occurs
940        success: function (data, textStatus, jqXHR) {
941            // $('#meterReadingButton').showWidgetButtonLoader('meterReading', 300000);
942            startProcess(
943                '/powercommerce/ivu/fo/portal/directMeterReading' +
944                    "?customerNo=" +
945                    trim($("#meterReadingCustomerNo").val()) +
946                    "&meterNo=" +
947                    trim($("#meterReadingMeterNo").val())
948            );
949        },
950        error: function (data) {
951            var jsonData = jQuery.parseJSON(data.responseText);
952
953            jQuery("#meterReadingWidget .osp-card-loader").removeClass("show"); // hide IVU loader
954
955            // exception
956            if (jsonData == null || jsonData.exception != null) {
957                var message = null;
958                if (jsonData == null) {
959                    message = 'Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.';
960                } else {
961                    message = jsonData.exception;
962                }
963                showWidgetError("meterReading", message);
964                return;
965            }
966            $("#meterReadingCustomerNo").val(
967                trimToUndefined(jsonData.model.customerNo)
968            );
969            $("#meterReadingMeterNo").val(
970                trimToUndefined(jsonData.model.meterNo)
971            );
972
973            // global errors
974            if (jsonData.hasGlobalErrors) {
975                showWidgetError("meterReading", jsonData.globalerrors[0]);
976            }
977
978            // field errors
979            if (jsonData.hasFieldErrors) {
980                jQuery.each(jsonData.fielderrors, function (key, value) {
981                    fieldName =
982                        "meterReading" +
983                        key.charAt(0).toUpperCase() +
984                        key.substring(1);
985                    showWidgetFieldError(fieldName, value);
986                });
987            }
988        },
989        complete: function (jqXHR, textStatus) {
990            $("#meterReadingCaptcha").val("");
991        }
992    });
993}
994
995function meterReadingInit() {
996    resetWidgetErrors();
997    $("#meterReadingCustomerNo, #meterReadingMeterNo").reset();
998}
999
1000</script>
1000
1001
1002
1003
1004<script type="text/javascript">
1005    
1006</script>
1006
1007
1008    
1008<script type="text/javascript">
1009        ( function() {
1010            function getQueryVariable( variable ) { // extract Query Variable from URL
1011                var query = window.location.search.substring(1);
1012                var vars = query.split("&");
1013                for ( var i = 0 ; i < vars.length ; i++ ) {
1014                    var pair = vars[i].split( "=" );
1015                    if ( pair[0] == variable ){
1016                        return pair[1];
1017                    }
1018                }
1019                return false;
1020            }
1021            function cleanUrl() { // clean up URL without page refresh if history.replaceState is available
1022                var shortUrl = top.location.href.substring( 0, top.location.href.indexOf( "?" ) );
1023                if ( history.replaceState ) {
1024                    var windowTitle = jQuery( document ).prop( "title" );
1025                    history.replaceState( "string", windowTitle, shortUrl );
1026                }
1027            }
1028            // get action and url without query params
1029            var data = {
1030                power: parseInt(getQueryVariable( "consumptionPowerHt" ), 10) || 0,
1031                powerNt: parseInt(getQueryVariable( "consumptionPowerNt" ), 10) || 0,
1032                gas: parseInt(getQueryVariable( "consumptionGas" ), 10) || 0,
1033                water: parseInt(getQueryVariable( "consumptionWater" ), 10) || 0,
1034                thermal: parseInt(getQueryVariable( "consumptionThermal" ), 10) || 0,
1035            }
1036
1037                        Cookies.remove("OSPContractCancellationEnWG");
1038            Cookies.remove("OSPContractRevocation");
1039            if ( getQueryVariable( "action" ) === "contractCancellation" ) {
1040                cleanUrl();
1041                jQuery(document).ready(function() {
1042                    jQuery(".osp-enwg-contract-cancellation").trigger("click");
1043                });
1044            }
1045
1046                        jQuery( "#loginWidget, #userRegistrationWidget, #productSearchWidget, #meterReadingWidget" ).css( "opacity", "1" );
1047            if ( getQueryVariable( "action" ) === "productSearch" ) {
1048                jQuery( "#productSearchPostalCode" ).val( getQueryVariable( "pocode" ) );
1049                if ( getQueryVariable( "type" ) === "business" ) {
1050                    jQuery( "#productSearchCustomerTypeBUSINESS" ).trigger( "click" );
1051                } else {
1052                    jQuery( "#productSearchCustomerTypePRIVATE" ).trigger( "click" );
1053                }
1054                if (getQueryVariable( "consumptionPowerHt" ) && (data.power > 0 || data.powerNt > 0)) {
1055                    jQuery( "#productSearchMediaTextPOWER" ).trigger( "click" );
1056                }
1057                if ( getQueryVariable( "consumptionGas" ) && (data.gas > 0) ) {
1058                    jQuery( "#productSearchMediaTextGAS" ).trigger( "click" );
1059                }
1060                cleanUrl();
1061                Cookies.set("OSPproductSearchData", JSON.stringify(data));
1062                jQuery( "#loginWidget, #userRegistrationWidget, #meterReadingWidget" ).css( "opacity", "0.2" );
1063                jQuery( "#productSearchButton" ).trigger( "click" );
1064            }
1065        } )();
1066    </script>
1066
1067
1068<div id="widgetInfoLinkTemplate" class="hide">
1069    <a tabindex="0" class="osp-link-info" role="button" data-bs-toggle="popover" data-bs-trigger="focus">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <svg class="osp-icon info osp-icon--medium " aria-hidden="true" role="presentation">
1070            <use xlink:href="/powercommerce/ivu/fo/portal/resources/images/i18n/iconsprite.svg?v=2#info" />
1071        </svg>
1072    </a>
1073</div>
1074
1075
1076                    </div>
1077                            
1078                                </main>
1079
1080        <footer class="osp-footer">
1081        <div class="addressbox">
1082            <div class="container">
1083                <div class="row form-row">
1084                    <div class="col-md-4">
1085                        <div class="footercontact">
1086                            <h2 class="addresstitel">Stadtwerke Schwentinental</h2>
1087                            <p class="address">Seebrooksberg 1</p>
1088                            <p class="address2">24222 Schwentinental</p>
1089                            <h3 class="fonhead">Telefon</h3>
1090                            <p class="fon"><a href="tel:+4943122082410">0431-220 8241-0</a></p>
1091                            <h3 class="fonhead">Telefax</h3>
1092                            <p class="fon">0431-220 8241-157</p>
1093                            <h3 class="e-mail">E-Mail</h3>
1094                            <p class="link-mail">[email protected]</p>
1095                        </div>
1096                    </div>
1097                    <div class="col-md-8">
1098                    </div>
1099                </div>
1100            </div>
1101        </div>
1102        <div class="linkbox">
1103            <div class="container">
1104                <div class="row form-row">
1105                    <div class="col-md-12">
1106                        <h3 class="linktitel">Das Wichtigste auf einen Blick</h3>
1107                    </div>
1108                </div>
1109                <div class="row form-row">
1110                    <div class="col-md-4">
1111                        <h3 class="stoerunghead">Störungsdienst</h3>
1112                        <p class="stoerung">Strom / Wasser / Fernwärme</p>
1113                        <p class="stoerung2"><a href="tel:+494312208241140">0431-220 8241-140</a></p>
1114                        <p class="gashead">Gas</p>
1115                        <p class="gas"><a href="tel:+494312208241160">0431-220 8241-160</a></p>
1116                    </div>
1117                    <div class="col-md-4">
1118                        <nav aria-label="footer-nav" class="navbar footernavigation middle" role="navigation">
1119                            <ul class="footernav">
1120                                <li class="first page-4">
1121                                    <a href="https://www.stadtwerke-schwentinental.de//impressum" title="Impressum">Impressum</a>
1122                                </li>
1123                                <li class="page-5"><a href="https://www.stadtwerke-schwentinental.de/datenschutz" title="Datenschutz">Datenschutz</a></li>
1124                                <li class="page-6"><a href="https://www.stadtwerke-schwentinental.de//sitemap" title="Sitemap">Sitemap</a></li>
1125                                <li class="page-91"><a href="https://kunden.stadtwerke-schwentinental.de/powercommerce/ivu/fo/portal/" target="_blank" rel="noreferrer">Kundenportal</a></li>
1126                                <li class="last page-141"><a href="https://www.stadtwerke-schwentinental.de//impressum/barrierefreiheit" title="Barrierefreiheit">Barrierefreiheit</a></li></ul>
1127                        </nav>
1128                        <a class="facebook" target="_blank" href="https://www.facebook.com/Stadtwerke-Schwentinental-GmbH-191270821515656/">Facebook</a>
1129                    </div>
1130                    <div class="col-md-4"></div>
1131                </div>
1132            </div>
1133        </div>
1134        <div class="bottombox">
1135            <div class="container">
1136                <div class="row form-row">
1137                    <div class="col-12">
1138                        <div class="copyright">
1139                            <img class="footerlogo" title="Stadtwerke Schwentinental Homepage" alt="Stadtwerke Schwentinental" src="/powercommerce/ivu/fo/portal/resources/images/i18
1139n/stt/footer-logo.jpg" width="104" height="104">
1140                        </div>
1141                    </div>
1142                </div>
1143            </div>
1144        </div>
1145</footer>
1146
1147<script type="text/javascript">
1148    jQuery(".osp-enwg-contract-cancellation").click(function(ev) {
1149        ev.preventDefault();
1150        Cookies.set("OSPContractCancellationEnWG", 1);
1151        location.href = "/powercommerce/ivu/fo/portal/directCustomerRequest";
1152    });
1153    jQuery(".osp-contract-revocation").click(function(ev) {
1154        console.log("clicked");
1155        ev.preventDefault();
1156        Cookies.set("OSPContractRevocation", 1);
1157        location.href = "/powercommerce/ivu/fo/portal/directCustomerRequest";
1158    });
1159</script>
1159
1160
1161
1162        
1162<script type="text/javascript">
1163            
1164        </script>
1164
1165        <noscript>
1166            <p id="noScriptInfo">Bitte aktivieren Sie JavaScript, um das Online-Portal nutzen zu können.</p>
1167        </noscript>
1168
1169    </body>
1170</html>
1171

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.