PageSourceSearch

https://fcggmbh.de/konto-erstellen.html

html fcggmbh.de collected 2026-10-07 05:14:02 UTC 60,146 bytes, 1,833 lines download raw bytes

1<!DOCTYPE html>
2<!--[if lt IE 7]>      
3<html lang="de" class="no-js lt-ie9 lt-ie8 lt-ie7">
4<![endif]-->
5<!--[if IE 7]>         
6<html lang="de" class="no-js lt-ie9 lt-ie8">
7<![endif]-->
8<!--[if IE 8]>         
9<html lang="de" class="no-js lt-ie9">
10<![endif]-->
11<!--[if gt IE 8]><!-->
12<html lang="de" class="no-js">
13<!--<![endif]-->  
14<head>
15  
16
17
18
19
20<title>Konto erstellen | FCG Immobilien GmbH</title>
21<meta charset="utf-8">
22<base href="https://fcggmbh.de/" />
23<meta http-equiv="X-UA-Compatible" content="IE=edge">
24<meta name="description" content="">
25<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
26
27<meta name="google-site-verification" content="WfR0PnMkJxxrbzgKnB4SqUw46OKHEP974MVGRRY6QSw" />
28<meta name="facebook-domain-verification" content="5g4xn0nxo1k2crdud84wrres7raw7b" />
29<meta name="twitter:url" property="og:url" content="https://fcggmbh.de/konto-erstellen.html">
30<meta name="twitter:title" property="og:title" content="Konto erstellen">
31<meta name="twitter:description" property="og:description" content="">
32
33  
34
35
36
37
38<link rel="shortcut icon" href="https://fcggmbh.de//data/logo/fcg_favicon.png">
39
40<link rel="stylesheet" type="text/css" href="/assets/components/modxminify/cache/styles-4-1587545226.min.css">
41
42
43<link rel="stylesheet" type="text/css" href="https://fcggmbh.de/assets/themes/fcg/css/toastr.min.css">
44
45
46
47<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
48<!--[if lt IE 9]>
49<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
vendor: 1 bytes, line 49
49
50<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
50
51<![endif]-->
52
53
54
55<style>
56
57  .subline {
58      content: '';
59      display: block;
60      width: 150px;
61      border-radius: 5px;
62      height: 5px;
63      background: #2b4193;
64      margin-left: 0px;
65      margin-top: 20px;
66      margin-bottom: 30px;
67  }
68
69  .error {
70    color: red;
71  }
72  .card .card-image{
73    background-color:transparent;
74  }
75  
76  
77  
78  .blend-outline-out-in{
79    width:100%;
80    height:100%;
81    position:absolute;
82    transition:all 0.3s linear;
83    pointer-events:none;
84    z-index:1;
85    opacity:0;
86    outline:10px solid #ffffff99;
87  }
88  .card:hover>.card-image .blend-outline-out-in{
89    opacity:1;
90    outline-offset:-10px;
91  }
92  .card-image img{
93    width:100%;
94    height:100%;
95  }
96  .circle-element,
97  .testimonial-carousel{
98    margin:30px auto;
99  }
100  .image-slider{
101    margin-top:0;
102    margin-bottom:60px;
103  }
104  .image-slider img{
105    object-fit:contain;
106    padding:10px;
107  }
108  .testimonial-carousel .owl-stage{
109    height:250px;
110  }
111  .testimonial-carousel .owl-item{
112    height:100%;
113    position:relative;
114  }
115  .testimonial-carousel .client-image{
116    width:100px;
117    border-radius:50%;
118    border:2px solid white;
119    height:100px;
120    overflow:hidden;
121    padding:0;
122  }
123  .testimonial-carousel .client-image img{
124    width:100%;
125    height:100%;
126    object-fit:cover;
127  }
128  .testimonial-content .font-sm{
129    font-size:1.2rem;
130    position:relative;
131  }
132  .testimonial-content .font-sm i{
133    position:absolute;
134    left:-30px;
135    top:50%;
136    transform:translate(-50%, -50%);
137  }
138  .inner-page .container .row .col-sm-4 img{
139    width:100%;
140    height:100%;
141    object-fit:contain;
142  }
143  .testimonial-content{
144    position:absolute;
145    padding:30px;
146    color:white;
147    top:50%;
148    left:50%;
149    transform: translate(-50%, -50%);
150  }
151  .testimonial-carousel .carousel-overlay{
152    background-color:#2b4193aa;
153  }
154  .half-half .card{
155    min-height:490px;
156  }
157  #footer .adress a{
158    color:#2b4193;
159  }
160  #footer .col-sm-3{
161    margin-bottom:0px;
162  }
163  #footer .col-sm-2{
164    margin-top:0px;
165  }
166  .reference{
167    padding-bottom:30px;
168    position:relative;
169  }
170  .reference-download{
171    position:absolute;
172    bottom:10px;
173    left:15px;
174  }
175  @media (max-width:1400px){
176    .testimonial-content .font-sm{
177    font-size: 1rem;
178  }
179  }
180  @media (max-width:767px){
181    .nav-background{
182      background-color:#2b4193;
183    }
184    .testimonial-carousel .owl-stage{
185    height:300px;
186    }
187    .testimonial-content .font-sm i{
188      left:-40px;
189    }
190    .nav-background a{
191      color:white !important;
192    }
193    #Navbar{
194      width:100%;
195    }
196    #footer .col-sm-3{
197      margin-bottom:20px;
198      margin-left:50px;
199    }
200    #footer .col-sm-2{
201    margin-top:20px;
202  }
203    .testimonial-carousel .client-image{
204      width:80%;
205      height:80%;
206    }
207    .testimonial-content .font-sm{
208    font-size: 0.8rem;
209  }
210  }
211  @media (max-width:450px){
212    .testimonial-carousel .owl-stage{
213    height:400px;
214    }
215    .testimonial-content{
216      padding:30px 0px;
217    }
218</style>
219</head>
220<body>
221  
222<div class="loader2">
223  <div class="loader-box">
224    <img src="assets/themes/fcg/images/fcg_logo.svg">
225  </div>
226</div>
227
228
229<style>
230.loader2{
231    z-index: 999;
232    background-color: white;
233    width:100%;
234    height:100%;
235    position: fixed;
236    top: 0;
237    left: 0;
238}
239.loader2 .loader-box{
240  transform:translate(-50%, -50%);
241  width: 50%;
242  height: 50vh;
243  position:fixed;
244  top:50%;
245  left:50%;
246}
247.loader2 img{
248  object-fit:contain;
249  width:100%;
250  animation: preload2 linear 2s infinite;
251  height:100%;
252}
253@keyframes preload2{
254    0%{transform:scale(1);}
255    50%{transform:scale(1.2);}
256    100%{transform:scale(1);}
257}
258@media(max-width:768px){
259  .loader2 .loader-box{
260  
261  }
262}
263</style>
264
265  <div class="wrapper">
266    
267<script>
268  var luxGrecaptchaSucced = '';
269</script>
269
270<style>
271  .overlay{
272    background-attachment:fixed !important;
273    background: center center / cover no-repeat;
274  }
275  @meadia(max-width:768px){
276    .navbar-header{
277      padding:0;
278    }
279  }
280</style>
281
282<header>
283	<div class="top-bar bg-light hidden-xs">
284		<div class="container">
285			<div class="row">
286				<div class="col-sm-6 list-inline list-unstyled no-margin hidden-xs">
287					<p class="no-margin">
288					  <strong><a class="luxphonelink" href="tel:02841 65 63 100">02841 65 63 100</a></strong> oder <strong><a class="luxmaillink" href="mailto:[email protected]">[email protected]</a></strong>
289					</p>
290				</div>
291				
292				<div class="xcol-sm-3 col-sm-4 col-sm-offset-2">
293					<ul class="list-inline list-unstyled pull-right">
294					  
295					  <li class="nav-background"><a href="anmelden.html">Login</a></li>
296						<li class="nav-background"><a href="konto-erstellen.html">Registrieren</a></li>
297					</ul>
298				</div>
299			</div>
300		</div>
301	</div>
302	<div id="nav-wrap">
303		<div class="nav-wrap-holder">
304			<div class="container" id="nav_wrapper">
305				<nav class="navbar navbar-static-top nav-white">
306					<div class="navbar-header">
307						<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#Navbar">
308							<span class="sr-only">
309									Toggle navigation
310								</span>
311							<span class="icon-bar">
312								</span>
313							<span class="icon-bar">
314								</span>
315							<span class="icon-bar">
316								</span>
317						</button>
318						
319						<a class="navbar-brand" id="navbar-brand-lg" href="https://fcggmbh.de/">
320							<img src="/data/logo/fcg_logo.svg" alt="logo" class="img-responsive">
321						</a>
322					</div>
323					<div class="collapse navbar-collapse" id="Navbar">
324						<ul class="nav navbar-nav navbar-right">
325              <li><a href="immobilien/">Immobilien</a></li><li><a href="referenzimmobilien/">Referenzen</a></li><li><a href="ueber-uns.html">Über uns</a></li><li><a href="teammitglieder/">Team</a></li><li><a href="finanzierungen.html">Finanzierungen</a></li><li><a href="kontakt.html">Kontakt</a></li>
326              <li class="visible-xs nav-background"><a href="anmelden.html">Login</a></li>
327						    <li class="visible-xs nav-background"><a href="konto-erstellen.html">Registrieren</a></li>             
328						</ul>
329					</div>
330				</nav>
331			</div>
332		</div>
333	</div>
334</header>
335
336    <div class="bg-color-dark">
337	<div class="bg-image overlay" data-image-src="data/header.jpg" >
338		<div class="hero-caption space-xl">
339			<div class="container">
340				<div class="row">
341					<div class="col-sm-12">
342						<h1 class="font-white" style="text-transform: uppercase; color: white;">Konto erstellen</h1>
343					</div>
344				</div>
345			</div>
346		</div>
347	</div>
348</div>
349    <div class="inner-page">
350  <div class="container half-half">
351    <div class="row">
352      <div class="col-md-6">
353        <div class="card pad-all">
354          <h3>Registrierung</h3>
355<div class="subline"></div>
356
357<p><br />Die Registrierung ist <strong>schnell, einfach und f&uuml;r Sie kostenlos</strong>.</p>
358<p>Als registrierter Nutzer haben Sie die M&ouml;glichkeit, bequem alle unsere Arbeitsschritte beim Verkauf Ihrer Immobilie einzusehen - <strong>transparent und immer aktuell</strong>.</p>
359<p>Nach Eingabe Ihrer gew&uuml;nschten Login-Daten, <strong>schalten wir Sie z&uuml;gig frei</strong> und zeigen Ihnen die ersten Schritte mit unserem System, falls n&ouml;tig.</p>
360        </div>
361      </div>
362      <div class="col-md-6">
363        <div class="card pad-all">
364          
365    
366<div class="register">
367  
368  <form class="form jqueryValidate" action="konto-erstellen.html" method="post">
369    <input type="hidden" name="nospam:blank" value="" />
370    
371    <div class="form-group ">
372      <label for="gender">Ihr Geschlecht</label>
373      <select class="form-control required" name="gender" id="gender" placeholder="Bitte auswählen" required>
374        <option value="">Bitte auswählen</option>
375        <option value="1">männlich</option>
376        <option value="2">weiblich</option>
377        <option value="3">divers</option>        
378      </select>
379      
380    </div>
381
382    <div class="form-group ">
383      <label for="fullname">Ihr Name <span class="text-danger">*</span></label>
384      <input type="text" class="form-control required" name="fullname" id="fullname" value="" placeholder="Vorname Nachname" required />
385                
386    </div>
387    
388    <div class="form-group ">
389      <label for="email">Benutzername | E-Mail Adresse <span class="text-danger">*</span></label>
390      <input type="text" class="form-control required email" name="email" id="email" value="" placeholder="[email protected]" required />
391      
392    </div>
393    
394    <div class="form-group ">
395      <label for="email">Telefonnummer <span class="text-danger">*</span></label>
396      <input type="text" class="form-control required" name="phone" id="phone" value="" placeholder="Telefonnummer" required />
397      
398    </div>
399    
400    <div class="form-group ">
401      <label for="email">Ich bin  <span class="text-danger">*</span></label>
402      <select class="form-control required" name="group" id="group" placeholder="Bitte auswählen" required>
403        <option value="">Bitte auswählen</option>
404        <option value="buyer">Kaufinteressent</option>
405        <option value="seller">Verkaufsinteressent</option>
406      </select>
407      
408    </div>
409    
410    <div class="form-group ">
411      <input type="checkbox" class="required" name="privacy_policy" id="privacy_policy" value="1" required /> 
412      <label for="privacy_policy">Ich akzeptiere die Datenschutzvereinbarung <span class="text-danger">*</span></label>
413      
414    </div>
415
416    <div class="form-group ">
417      <input type="checkbox" name="subscribe" id="subscribe" value="1" checked /> 
418      <label for="subscribe">Zum Newsletter anmelden und exklusive Immobilienangebote zuerst bekommen</label>
419      
420    </div>
421
422    
423    
424    <br class="clear" />
vendor: 70 bytes, lines 424-426
424
425    
426    <script src="https://www.google.com/recaptcha/api.js?render=
4266LctRPUUAAAAANhrU5ALYwmUHIBvKd-Zu05KVcH6
vendor: 18 bytes, line 426
426&hl=de"></script>
427<input type="hidden" name="recaptcha-token">
428<input type="hidden" name="recaptcha-action" value="kontoerstellenhtml">
429<script>
430    grecaptcha.ready(function() {
431        grecaptcha.execute('6LctRPUUAAAAANhrU5ALYwmUHIBvKd-Zu05KVcH6', {action: 'kontoerstellenhtml'}).then(function(token) {
432            document.querySelector('[name="recaptcha-token"]').value = token;
433        });
434    });
435</script>
435
436
437    
438    
439    <div class="form-buttons">
440      <button type="submit" class="btn btn-default btn-block" name="login-register-btn" value="Zugang beantragen">Zugang beantragen</button>
441    </div>
442  </form>
443</div>
444        </div>
445      </div>
446    </div>
447  </div>
448</div>
449    <style>
450.st0{fill:#D3D3D3;}
451.st1{fill:#FFFFFF;}
452
453#lux-cookie-show-modal-dialog svg{
454  height:30px;
455  width:30px;
456}
457#lux-cookie-show-modal-dialog span{
458  display:block;
459  line-height:20px;
460  font-size:10px;
461}
462dialog {
463  position: absolute;
464  left: 0; right: 0;
465  width: -moz-fit-content;
466  width: -webkit-fit-content;
467  width: fit-content;
468  height: -moz-fit-content;
469  height: -webkit-fit-content;
470  height: fit-content;
471  margin: auto;
472  border: solid;
473  padding: 1em;
474  background: white;
475  color: black;
476  display: block;
477}
478
479dialog:not([open]) {
480  display: none;
481}
482
483dialog + .backdrop {
484  position: fixed;
485  top: 0; right: 0; bottom: 0; left: 0;
486  background: rgba(0,0,0,0.1);
487}
488
489._dialog_overlay {
490  position: fixed;
491  top: 0; right: 0; bottom: 0; left: 0;
492}
493
494dialog.fixed {
495  position: fixed;
496  top: 50%;
497  transform: translate(0, -50%);
498}
499
500#lux-cookie-show-modal-dialog {
501  border-radius: 3px;
502  padding: 5px;
503  font-size: 0.95em;
504  border:3px solid #1c2225;
505  color: white;
506  position: fixed;
507  z-index: 1001;
508  bottom: -30px;
509  left: 20px;
510  font-weight: 700;
511  cursor: pointer;
512  font-family: 'Source Sans Variable', 'system-ui', sans-serif;
513  background-color: #1c2225;
514  border-top-color:  #ff6600;
515  margin:  0 10px;
516  transition: all .2s ease-in-out;
517  text-shadow: 0 1px 1px rgba(0,0,0,0.2);
518}
519#lux-cookie-show-modal-dialog:hover {
520  bottom: 0px;
521  transition: 0.5s;
522}
523#lux-cookie-dialog {
524  border-radius: 3px;
525  z-index: 1001;
526  position: fixed;
527  top: 0;
528  justify-content: center;
529  align-items: center;
530  width: 100%;
531  background-color: rgba(0, 0, 0, 0.719);
532  height: 100%;
533}
534#lux-cookie-dialog-content {
535  border-radius: 5px;
536  position: absolute;
537  top: calc(50% - 150px);
538  height: 300px;
539  display: flex;
540  justify-content: center;
541  align-items: center;
542  flex-direction: column;
543  left: calc(50% - 325px);
544  background-color: white;
545  width: 650px;
546}
547@media only screen and (max-width: 599px) {
548  #lux-cookie-dialog-content {
549    width: 95%;
550    height: auto;
551    left: 2.5%;
552  }
553  #lux-cookie-dialog {
554    width: 100%;
555    height: 100%;
556  }
557  #lux-cookie-dialog .btn {
558  white-space: unset;
559  }
560
561}
562#lux-cookie-dialog-content h2 {
563  font-family: "Lato";
564  text-align: center;
565  font-size: 2.142em;
566  font-family: "Lato", sans-serif;
567  letter-spacing: -0.13px;
568  color: #444f50;
569  font-weight: 600;
570  line-height: 1.5;
571  margin: 0 0 15px;
572  text-rendering: optimizeLegibility;  
573}
574#lux-cookie-dialog-content p {
575  font-family: "Lato";
576  padding: 10px 30px;
577  line-height: 26px;
578}
579#lux-cookie-dialog-content div {
580  font-family: "Lato";
581  display: flex;
582  flex-direction: row;
583  width: 100%;
584  justify-content: space-between;
585}
586#lux-cookie-deny-dialog {
587  border-radius: 3px;
588  padding: 0;
589  height:100%;
590  font-size: 0.95em;
591  color: black;
592  margin: 0 30px;
593  font-family: 'Source Sans Variable', 'system-ui', sans-serif;
594  cursor: pointer;
595  font-weight: 200;
596  transition: all .2s ease-in-out;
597  background-color: white;
598  outline: none;
599}
600#lux-cookie-deny-dialog:hover {
601  color: #ff6600;
602}
603#lux-cookie-accept-dialog {
604  font-family: "Lato";
605  border-radius: 3px;
606  padding: 10px 0;
607  height:100%;
608  font-size:0.95em;
609  margin: 0 30px;
610  color: white;
611  cursor: pointer;
612  font-weight: 700;
613  outline: none;
614  border:1px solid #ff6600;
615  background-color: #ff6600;
616  transition: all .2s ease-in-out;
617  letter-spacing: 1px;
618  text-transform: uppercase;
619}
620#lux-cookie-accept-dialog:hover {
621  background-color: #ca5100;
622  border:1px solid #ca5100;
623}
624
625@media(max-width:1007px) {
626  #lux-cookie-show-modal-dialog{
627    bottom: 0px;
628    border-right-color:#ff6600 ;
629    border-left-color:#ff6600 ;
630  }
631  #lux-cookie-show-modal-dialog span{
632  display:none;
633}
634  #lux-cookie-deny-dialog{
635    font-size:0.7em;
636  }
637  #lux-cookie-accept-dialog{
638    font-size:0.7em;
639  }
640}
641</style>
642<dialog id="lux-cookie-dialog">
643  <div id="lux-cookie-dialog-content">
644    <h2>Cookie Einstellungen</h2>
645    <p>Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu.</p>
646    <div>
647      <button class="btn btn-primary" id="lux-cookie-accept-dialog">alle Cookies akzeptieren</button>
648      <a id="lux-cookie-deny-dialog">nur notwendige Cookies akzeptieren</a>
649    </div>
650  </div>
651</dialog>
652<button id="lux-cookie-show-modal-dialog">
653  <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
654  	 viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
655  <style type="text/css">
656  	.st0{fill:#D3D3D3;}
657  	.st1{fill:#FFFFFF;}
658  </style>
659  <g>
660  	<path class="st0" d="M44.17,11.65c-0.03,0.03-0.04,0.06-0.07,0.09c-0.28,0.29-0.63,0.29-0.63,0.29l-0.62,0.1L42.23,12l-0.25-0.18
661  		c-0.18-0.12-0.32-0.27-0.43-0.44l-0.03-0.03c-0.01-0.03-0.03-0.04-0.04-0.07c0.56,0.27,1.24,0.43,1.96,0.43
662  		C43.69,11.71,43.94,11.69,44.17,11.65z"/>
663  	<path class="st0" d="M36.11,10.05c0,0.02-0.02,0.05-0.05,0.07c-0.28,0.3-0.67,0.3-0.67,0.3l-0.62,0.11l-0.64-0.14l-0.25-0.18
664  		c-0.18-0.11-0.32-0.28-0.44-0.46L33.4,9.73c-0.14-0.21-0.23-0.44-0.23-0.67l-0.02-0.14C33.92,9.52,34.96,9.91,36.11,10.05z"/>
665  	<path class="st1" d="M41.52,3.41C41.5,3.42,41.5,3.44,41.5,3.44s0-0.02-0.02-0.02C41.5,3.41,41.5,3.41,41.52,3.41z"/>
666  	<path class="st0" d="M46.26,11.7c-0.07,0.02-0.11,0.02-0.11,0.02l-0.32,0.07l-0.3-0.07l-0.14-0.09c-0.07-0.05-0.14-0.11-0.16-0.18
667  		C45.54,11.56,45.89,11.65,46.26,11.7z"/>
668  	<path class="st0" d="M42.45,26.77c-0.7-0.38-2.22-1.14-4.71-2.05c-3.48,0.3-5.3,1.25-11.22-3.57c-7.65,0.17-9.09-8.39-9.09-8.39
669  		c-2.92-0.17-3.87-2.56-3.87-2.56h-3.02c1.17-0.65,2.35-1.24,3.05-1.49c0.56-0.19,1.27-0.4,2.08-0.6c0.94,1.52,2.51,2.54,4.25,2.76
670  		c0.03,0.44,0.11,0.87,0.24,1.3c1.05,3.51,4.7,5.51,8.2,4.52c1.06,3.49,4.73,5.49,8.25,4.46c0.43-0.13,0.84-0.3,1.22-0.51
671  		c0.95,1.14,2.32,1.87,3.79,2.03c0.16,0.56,0.29,1.13,0.4,1.7L42.45,26.77z"/>
672  	<path class="st1" d="M42.75,28.51l-0.3-1.73c-0.7-0.38-2.22-1.14-4.71-2.05c-3.48,0.3-5.3,1.25-11.22-3.57
673  		c-7.65,0.17-9.09-8.4-9.09-8.4c-2.92-0.17-3.87-2.55-3.87-2.55h-3.02c-1.38,0.76-2.78,1.6-3.59,2.08
674  		c-0.41,0.25-0.67,0.41-0.67,0.41c-1.06,0.57-1.89,1.48-2.36,2.57l-2.14,4.84l-0.13,0.6L0,28.28l0.14,2.48l0.02,0.17
675  		c0.08,1.44,0.36,2.86,0.84,4.21c0.54,1.57,1.33,3.05,2.35,4.36l0.41,0.52c0.89,1.38,1.94,2.65,3.11,3.78
676  		c0.79,0.76,1.67,1.48,2.57,2.11l2.62,1.83c0,0,0.6,0.47,0.83,0.57c1.3,0.56,5.53,1.2,5.53,1.2c1.74,0.38,3.54,0.41,5.3,0.09
677  		l5.56-1.01c0.13,0,1.81-0.02,3.89-0.81c1.44-0.54,3.08-1.46,4.54-3.02c0.4-0.41,0.75-0.9,1.05-1.41c0.6-0.98,1.09-2.09,1.46-3.11
678  		c0-0.02,0.02-0.03,0.02-0.06c0.59-1.65,0.86-2.98,0.86-2.98s0.03-0.03,0.06-0.08c0.35-0.38,1.87-2.25,2.09-4.7
679  		C43.29,32,42.82,28.86,42.75,28.51z M10.82,16.54c0.94-0.81,2.35-0.7,3.16,0.24c0.81,0.94,0.71,2.35-0.22,3.16
680  		c-0.94,0.81-2.36,0.71-3.17-0.22C9.78,18.78,9.89,17.35,10.82,16.54z M11.71,34.79c-2.81,0.66-5.23-1.8-4.55-4.58
681  		c0.32-1.3,1.39-2.37,2.69-2.69c2.78-0.68,5.24,1.74,4.58,4.55C14.12,33.4,13.03,34.48,11.71,34.79z M17.42,44.11
682  		c-1.03,0.9-2.6,0.78-3.51-0.25c-0.89-1.03-0.78-2.6,0.25-3.51c1.05-0.89,2.62-0.78,3.51,0.25C18.58,41.65,18.46,43.22,17.42,44.11z
683  		 M23.92,28.59c-0.65,0.57-1.65,0.51-2.21-0.16c-0.57-0.65-0.51-1.65,0.16-2.21c0.65-0.57,1.63-0.51,2.21,0.16
684  		C24.65,27.03,24.57,28.03,23.92,28.59z M31.78,40.55c-1.8,1.89-4.81,1.67-6.31-0.45c-1.01-1.43-0.98-3.44,0.09-4.83
685  		c1.81-2.35,5.37-2.08,6.83,0.5C33.25,37.29,32.98,39.28,31.78,40.55z M35.01,30.16c-0.94,0.81-2.35,0.7-3.16-0.24
686  		c-0.83-0.94-0.71-2.35,0.22-3.16c0.94-0.81,2.35-0.71,3.16,0.24C36.04,27.94,35.94,29.35,35.01,30.16z"/>
687  	<path class="st1" d="M41.52,3.41C41.5,3.42,41.5,3.44,41.5,3.44s0-0.02-0.02-0.02C41.5,3.41,41.5,3.41,41.52,3.41z"/>
688  	<path class="st1" d="M41.52,3.41c-0.02,0-0.02,0-0.03,0.02c0.02,0,0.02,0.02,0.02,0.02c-0.05,0.05-0.07,0.07-0.07,0.07
689  		s-0.1,0.57-0.37,0.85c-0.27,0.3-0.59,0.39-0.77,0.4c-0.02,0.02-0.02,0.02-0.03,0c-0.37-0.02-0.72-0.08-1.06-0.2
690  		c-0.27-0.07-0.54-0.17-0.77-0.28c-0.69-0.35-1.22-0.84-1.56-1.41c0-0.02,0-0.02,0-0.02c0-0.02,0-0.02,0-0.03l-0.02-0.28V2.52
691  		l0.2-0.9l0.23-0.55c0.05-0.12,0.15-0.22,0.27-0.28c0,0,0.59-0.37,0.8-0.44c0.22-0.08,0.69-0.17,0.92-0.17c0.02,0,0.05,0,0.05,0.02
692  		c0.08,0.02,0.17,0.03,0.25,0.07c0.49,0.12,0.92,0.33,1.32,0.6C40.95,0.9,40.98,0.91,41,0.95l0.25,0.4c0.15,0.22,0.25,0.47,0.3,0.74
693  		l0.07,0.47c0.02,0.03,0.07,0.39,0.07,0.44C41.67,3.17,41.59,3.32,41.52,3.41z"/>
694  	<path class="st1" d="M36.47,9.17c-0.02,0.21-0.16,0.37-0.16,0.37s-0.05,0.32-0.21,0.51c-1.15-0.14-2.18-0.53-2.96-1.13V8.85
695  		l0.14-0.62l0.16-0.39c0.05-0.07,0.11-0.14,0.18-0.18c0,0,0.41-0.25,0.57-0.32c0.14-0.05,0.46-0.11,0.62-0.11
696  		c0.02,0,0.05,0.02,0.05,0.02c0.39,0.07,0.76,0.23,1.08,0.46c0.02,0.02,0.05,0.05,0.07,0.07l0.16,0.28
697  		c0.11,0.14,0.18,0.32,0.21,0.51l0.07,0.32C36.45,8.9,36.5,9.13,36.47,9.17z"/>
698  	<path class="st1" d="M33.72,3.62c-0.02,0.21-0.16,0.37-0.16,0.37s-0.09,0.39-0.28,0.6c-0.21,0.23-0.48,0.28-0.6,0.28
699  		c-0.41-0.02-0.83-0.11-1.19-0.25c-0.25-0.07-0.51-0.16-0.73-0.28c-0.05-0.02-0.07-0.07-0.09-0.11l-0.02-0.05
700  		c-0.14-0.18-0.23-0.41-0.25-0.67V3.3l0.14-0.62l0.16-0.37c0.05-0.09,0.09-0.16,0.18-0.21c0,0,0.41-0.25,0.55-0.3
701  		c0.16-0.07,0.48-0.14,0.64-0.11c0,0,0.02,0,0.05,0c0.39,0.09,0.76,0.25,1.08,0.46c0.02,0.02,0.05,0.05,0.07,0.07l0.11,0.21
702  		l0.05,0.07c0.09,0.16,0.16,0.32,0.21,0.51l0.05,0.32C33.69,3.34,33.72,3.59,33.72,3.62z"/>
703  	<path class="st0" d="M32.68,4.86c-0.02,0.02-0.05,0.02-0.05,0.02L32,4.99l-0.57-0.14h-0.05l-0.25-0.18
704  		c-0.14-0.11-0.28-0.21-0.37-0.34c0.23,0.11,0.48,0.21,0.73,0.28C31.86,4.74,32.27,4.83,32.68,4.86z"/>
705  	<path class="st0" d="M40.26,4.76c-0.07,0.02-0.12,0.02-0.13,0.02l-0.92,0.17l-0.3-0.07l-0.6-0.13l-0.35-0.22L37.92,4.5
706  		c-0.25-0.18-0.47-0.4-0.64-0.67l-0.05-0.05c-0.2-0.27-0.32-0.59-0.35-0.9c0.33,0.57,0.87,1.06,1.56,1.41
707  		c0.23,0.12,0.5,0.22,0.77,0.28C39.54,4.68,39.89,4.75,40.26,4.76z"/>
708  	<path class="st1" d="M41.52,3.41C41.5,3.42,41.5,3.44,41.5,3.44s0-0.02-0.02-0.02C41.5,3.41,41.5,3.41,41.52,3.41z"/>
709  	<path class="st1" d="M44.51,10.81c-0.01,0.21-0.16,0.37-0.16,0.37s-0.01,0.1-0.07,0.24c-0.03,0.07-0.06,0.16-0.1,0.24
710  		c-0.24,0.04-0.49,0.06-0.74,0.06c-0.72,0-1.4-0.16-1.96-0.43c-0.12-0.18-0.19-0.37-0.21-0.57V10.5l0.13-0.6l0.15-0.37
711  		c0.04-0.09,0.1-0.15,0.19-0.19c0,0,0.4-0.25,0.54-0.29c0.1-0.04,0.28-0.07,0.43-0.1c0.07-0.01,0.15-0.01,0.19-0.01
712  		c0,0,0.03,0,0.03,0.01c0.09,0.01,0.18,0.04,0.27,0.07c0.28,0.07,0.54,0.22,0.8,0.38c0.03,0.01,0.04,0.03,0.06,0.06l0.16,0.27
713  		c0.1,0.15,0.18,0.31,0.21,0.49l0.06,0.31C44.48,10.55,44.51,10.78,44.51,10.81z"/>
714  	<path class="st1" d="M46.67,11.13c-0.02,0.09-0.09,0.18-0.09,0.18s-0.02,0.18-0.11,0.28c-0.07,0.07-0.14,0.09-0.18,0.11h-0.02
715  		c-0.37-0.05-0.71-0.14-1.03-0.25H45.2c0,0-0.02-0.02-0.02-0.05l-0.02-0.02c-0.05-0.07-0.09-0.16-0.11-0.25v-0.07l-0.02-0.09
716  		l0.07-0.32l0.09-0.18c0.02-0.02,0.05-0.07,0.09-0.09c0,0,0.21-0.11,0.28-0.14c0.07-0.05,0.23-0.07,0.3-0.07c0.02,0,0.02,0,0.02,0
717  		c0.21,0.05,0.39,0.14,0.55,0.23c0,0.02,0,0.02,0.02,0.05l0.02,0.05l0.05,0.09c0.07,0.07,0.09,0.16,0.11,0.23l0.02,0.16
718  		C46.65,10.99,46.67,11.1,46.67,11.13z"/>
719  	<path class="st1" d="M50,5.73c-0.02,0.21-0.16,0.37-0.16,0.37s-0.05,0.16-0.11,0.32c-0.41,0-0.83-0.05-1.22-0.14V6.26
720  		c-0.67-0.09-1.29-0.32-1.84-0.62V5.41l0.14-0.64l0.16-0.37c0.05-0.09,0.09-0.16,0.18-0.21c0,0,0.41-0.25,0.55-0.3
721  		c0.16-0.05,0.48-0.11,0.64-0.11c0,0,0.02,0,0.05,0.02c0.39,0.07,0.76,0.23,1.08,0.46l0.07,0.07l0.16,0.25
722  		c0.09,0.16,0.16,0.34,0.21,0.53l0.05,0.32C49.98,5.45,50,5.68,50,5.73z"/>
723  	<path class="st0" d="M49.72,6.42c-0.05,0.09-0.09,0.18-0.16,0.25c-0.28,0.3-0.64,0.3-0.64,0.3L48.6,7.04l-0.32,0.05l-0.62-0.14
724  		l-0.28-0.18c-0.16-0.11-0.32-0.28-0.44-0.46l-0.02-0.02c-0.14-0.21-0.23-0.41-0.25-0.64c0.55,0.3,1.17,0.53,1.84,0.62v0.02
725  		C48.9,6.37,49.31,6.42,49.72,6.42z"/>
726  </g>
727  </svg>
728  <span>Cookie Einstellungen</span>
729</button>
730<script>
731(function (global, factory) {
732  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
733  typeof define === 'function' && define.amd ? define(factory) :
734  (global = global || self, global.dialogPolyfill = factory());
735}(this, function () { 'use strict';
736
737  // nb. This is for IE10 and lower _only_.
738  var supportCustomEvent = window.CustomEvent;
739  if (!supportCustomEvent || typeof supportCustomEvent === 'object') {
740    supportCustomEvent = function CustomEvent(event, x) {
741      x = x || {};
742      var ev = document.createEvent('CustomEvent');
743      ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null);
744      return ev;
745    };
746    supportCustomEvent.prototype = window.Event.prototype;
747  }
748
749  /**
750   * @param {Element} el to check for stacking context
751   * @return {boolean} whether this el or its parents creates a stacking context
752   */
753  function createsStackingContext(el) {
754    while (el && el !== document.body) {
755      var s = window.getComputedStyle(el);
756      var invalid = function(k, ok) {
757        return !(s[k] === undefined || s[k] === ok);
758      };
759      
760      if (s.opacity < 1 ||
761          invalid('zIndex', 'auto') ||
762          invalid('transform', 'none') ||
763          invalid('mixBlendMode', 'normal') ||
764          invalid('filter', 'none') ||
765          invalid('perspective', 'none') ||
766          s['isolation'] === 'isolate' ||
767          s.position === 'fixed' ||
768          s.webkitOverflowScrolling === 'touch') {
769        return true;
770      }
771      el = el.parentElement;
772    }
773    return false;
774  }
775
776  /**
777   * Finds the nearest <dialog> from the passed element.
778   *
779   * @param {Element} el to search from
780   * @return {HTMLDialogElement} dialog found
781   */
782  function findNearestDialog(el) {
783    while (el) {
784      if (el.localName === 'dialog') {
785        return /** @type {HTMLDialogElement} */ (el);
786      }
787      el = el.parentElement;
788    }
789    return null;
790  }
791
792  /**
793   * Blur the specified element, as long as it's not the HTML body element.
794   * This works around an IE9/10 bug - blurring the body causes Windows to
795   * blur the whole application.
796   *
797   * @param {Element} el to blur
798   */
799  function safeBlur(el) {
800    if (el && el.blur && el !== document.body) {
801      el.blur();
802    }
803  }
804
805  /**
806   * @param {!NodeList} nodeList to search
807   * @param {Node} node to find
808   * @return {boolean} whether node is inside nodeList
809   */
810  function inNodeList(nodeList, node) {
811    for (var i = 0; i < nodeList.length; ++i) {
812      if (nodeList[i] === node) {
813        return true;
814      }
815    }
816    return false;
817  }
818
819  /**
820   * @param {HTMLFormElement} el to check
821   * @return {boolean} whether this form has method="dialog"
822   */
823  function isFormMethodDialog(el) {
824    if (!el || !el.hasAttribute('method')) {
825      return false;
826    }
827    return el.getAttribute('method').toLowerCase() === 'dialog';
828  }
829
830  /**
831   * @param {!HTMLDialogElement} dialog to upgrade
832   * @constructor
833   */
834  function dialogPolyfillInfo(dialog) {
835    this.dialog_ = dialog;
836    this.replacedStyleTop_ = false;
837    this.openAsModal_ = false;
838
839    // Set a11y role. Browsers that support dialog implicitly know this already.
840    if (!dialog.hasAttribute('role')) {
841      dialog.setAttribute('role', 'dialog');
842    }
843
844    dialog.show = this.show.bind(this);
845    dialog.showModal = this.showModal.bind(this);
846    dialog.close = this.close.bind(this);
847
848    if (!('returnValue' in dialog)) {
849      dialog.returnValue = '';
850    }
851
852    if ('MutationObserver' in window) {
853      var mo = new MutationObserver(this.maybeHideModal.bind(this));
854      mo.observe(dialog, {attributes: true, attributeFilter: ['open']});
855    } else {
856      // IE10 and below support. Note that DOMNodeRemoved etc fire _before_ removal. They also
857      // seem to fire even if the element was removed as part of a parent removal. Use the removed
858      // events to force downgrade (useful if removed/immediately added).
859      var removed = false;
860      var cb = function() {
861        removed ? this.downgradeModal() : this.maybeHideModal();
862        removed = false;
863      }.bind(this);
864      var timeout;
865      var delayModel = function(ev) {
866        if (ev.target !== dialog) { return; }  // not for a child element
867        var cand = 'DOMNodeRemoved';
868        removed |= (ev.type.substr(0, cand.length) === cand);
869        window.clearTimeout(timeout);
870        timeout = window.setTimeout(cb, 0);
871      };
872      ['DOMAttrModified', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument'].forEach(function(name) {
873        dialog.addEventListener(name, delayModel);
874      });
875    }
876    // Note that the DOM is observed inside DialogManager while any dialog
877    // is being displayed as a modal, to catch modal removal from the DOM.
878
879    Object.defineProperty(dialog, 'open', {
880      set: this.setOpen.bind(this),
881      get: dialog.hasAttribute.bind(dialog, 'open')
882    });
883
884    this.backdrop_ = document.createElement('div');
885    this.backdrop_.className = 'backdrop';
886    this.backdrop_.addEventListener('click', this.backdropClick_.bind(this));
887  }
888
889  dialogPolyfillInfo.prototype = {
890
891    get dialog() {
892      return this.dialog_;
893    },
894
895    /**
896     * Maybe remove this dialog from the modal top layer. This is called when
897     * a modal dialog may no longer be tenable, e.g., when the dialog is no
898     * longer open or is no longer part of the DOM.
899     */
900    maybeHideModal: function() {
901      if (this.dialog_.hasAttribute('open') && document.body.contains(this.dialog_)) { return; }
902      this.downgradeModal();
903    },
904
905    /**
906     * Remove this dialog from the modal top layer, leaving it as a non-modal.
907     */
908    downgradeModal: function() {
909      if (!this.openAsModal_) { return; }
910      this.openAsModal_ = false;
911      this.dialog_.style.zIndex = '';
912
913      // This won't match the native <dialog> exactly because if the user set top on a centered
914      // polyfill dialog, that top gets thrown away when the dialog is closed. Not sure it's
915      // possible to polyfill this perfectly.
916      if (this.replacedStyleTop_) {
917        this.dialog_.style.top = '';
918        this.replacedStyleTop_ = false;
919      }
920
921      // Clear the backdrop and remove from the manager.
922      this.backdrop_.parentNode && this.backdrop_.parentNode.removeChild(this.backdrop_);
923      dialogPolyfill.dm.removeDialog(this);
924    },
925
926    /**
927     * @param {boolean} value whether to open or close this dialog
928     */
929    setOpen: function(value) {
930      if (value) {
931        this.dialog_.hasAttribute('open') || this.dialog_.setAttribute('open', '');
932      } else {
933        this.dialog_.removeAttribute('open');
934        this.maybeHideModal();  // nb. redundant with MutationObserver
935      }
936    },
937
938    /**
939     * Handles clicks on the fake .backdrop element, redirecting them as if
940     * they were on the dialog itself.
941     *
942     * @param {!Event} e to redirect
943     */
944    backdropClick_: function(e) {
945      if (!this.dialog_.hasAttribute('tabindex')) {
946        // Clicking on the backdrop should move the implicit cursor, even if dialog cannot be
947        // focused. Create a fake thing to focus on. If the backdrop was _before_ the dialog, this
948        // would not be needed - clicks would move the implicit cursor there.
949        var fake = document.createElement('div');
950        this.dialog_.insertBefore(fake, this.dialog_.firstChild);
951        fake.tabIndex = -1;
952        fake.focus();
953        this.dialog_.removeChild(fake);
954      } else {
955        this.dialog_.focus();
956      }
957
958      var redirectedEvent = document.createEvent('MouseEvents');
959      redirectedEvent.initMouseEvent(e.type, e.bubbles, e.cancelable, window,
960          e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey,
961          e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
962      this.dialog_.dispatchEvent(redirectedEvent);
963      e.stopPropagation();
964    },
965
966    /**
967     * Focuses on the first focusable element within the dialog. This will always blur the current
968     * focus, even if nothing within the dialog is found.
969     */
970    focus_: function() {
971      // Find element with `autofocus` attribute, or fall back to the first form/tabindex control.
972      var target = this.dialog_.querySelector('[autofocus]:not([disabled])');
973      if (!target && this.dialog_.tabIndex >= 0) {
974        target = this.dialog_;
975      }
976      if (!target) {
977        // Note that this is 'any focusable area'. This list is probably not exhaustive, but the
978        // alternative involves stepping through and trying to focus everything.
979        var opts = ['button', 'input', 'keygen', 'select', 'textarea'];
980        var query = opts.map(function(el) {
981          return el + ':not([disabled])';
982        });
983        // TODO(samthor): tabindex values that are not numeric are not focusable.
984        query.push('[tabindex]:not([disabled]):not([tabindex=""])');  // tabindex != "", not disabled
985        target = this.dialog_.querySelector(query.join(', '));
986      }
987      safeBlur(document.activeElement);
988      target && target.focus();
989    },
990
991    /**
992     * Sets the zIndex for the backdrop and dialog.
993     *
994     * @param {number} dialogZ
995     * @param {number} backdropZ
996     */
997    updateZIndex: function(dialogZ, backdropZ) {
998      if (dialogZ < backdropZ) {
999        throw new Error('dialogZ should never be < backdropZ');
1000      }
1001      this.dialog_.style.zIndex = dialogZ;
1002      this.backdrop_.style.zIndex = backdropZ;
1003    },
1004
1005    /**
1006     * Shows the dialog. If the dialog is already open, this does nothing.
1007     */
1008    show: function() {
1009      if (!this.dialog_.open) {
1010        this.setOpen(true);
1011        this.focus_();
1012      }
1013    },
1014
1015    /**
1016     * Show this dialog modally.
1017     */
1018    showModal: function() {
1019      if (this.dialog_.hasAttribute('open')) {
1020        throw new Error('Failed to execute \'showModal\' on dialog: The element is already open, and therefore cannot be opened modally.');
1021      }
1022      if (!document.body.contains(this.dialog_)) {
1023        throw new Error('Failed to execute \'showModal\' on dialog: The element is not in a Document.');
1024      }
1025      if (!dialogPolyfill.dm.pushDialog(this)) {
1026        throw new Error('Failed to execute \'showModal\' on dialog: There are too many open modal dialogs.');
1027      }
1028
1029      if (createsStackingContext(this.dialog_.parentElement)) {
1030        console.warn('A dialog is being shown inside a stacking context. ' +
1031            'This may cause it to be unusable. For more information, see this link: ' +
1032            'https://github.com/GoogleChrome/dialog-polyfill/#stacking-context');
1033      }
1034
1035      this.setOpen(true);
1036      this.openAsModal_ = true;
1037
1038      // Optionally center vertically, relative to the current viewport.
1039      if (dialogPolyfill.needsCentering(this.dialog_)) {
1040        dialogPolyfill.reposition(this.dialog_);
1041        this.replacedStyleTop_ = true;
1042      } else {
1043        this.replacedStyleTop_ = false;
1044      }
1045
1046      // Insert backdrop.
1047      this.dialog_.parentNode.insertBefore(this.backdrop_, this.dialog_.nextSibling);
1048
1049      // Focus on whatever inside the dialog.
1050      this.focus_();
1051    },
1052
1053    /**
1054     * Closes this HTMLDialogElement. This is optional vs clearing the open
1055     * attribute, however this fires a 'close' event.
1056     *
1057     * @param {string=} opt_returnValue to use as the returnValue
1058     */
1059    close: function(opt_returnValue) {
1060      if (!this.dialog_.hasAttribute('open')) {
1061        throw new Error('Failed to execute \'close\' on dialog: The element does not have an \'open\' attribute, and therefore cannot be closed.');
1062      }
1063      this.setOpen(false);
1064
1065      // Leave returnValue untouched in case it was set directly on the element
1066      if (opt_returnValue !== undefined) {
1067        this.dialog_.returnValue = opt_returnValue;
1068      }
1069
1070      // Triggering "close" event for any attached listeners on the <dialog>.
1071      var closeEvent = new supportCustomEvent('close', {
1072        bubbles: false,
1073        cancelable: false
1074      });
1075    
1076      // If we have an onclose handler assigned and it's a function, call it
1077      if(this.dialog_.onclose instanceof Function) {
1078        this.dialog_.onclose(closeEvent);
1079      }
1080
1081      // Dispatch the event as normal
1082      this.dialog_.dispatchEvent(closeEvent);
1083
1084    }
1085
1086  };
1087
1088  var dialogPolyfill = {};
1089
1090  dialogPolyfill.reposition = function(element) {
1091    var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
1092    var topValue = scrollTop + (window.innerHeight - element.offsetHeight) / 2;
1093    element.style.top = Math.max(scrollTop, topValue) + 'px';
1094  };
1095
1096  dialogPolyfill.isInlinePositionSetByStylesheet = function(element) {
1097    for (var i = 0; i < document.styleSheets.length; ++i) {
1098      var styleSheet = document.styleSheets[i];
1099      var cssRules = null;
1100      // Some browsers throw on cssRules.
1101      try {
1102        cssRules = styleSheet.cssRules;
1103      } catch (e) {}
1104      if (!cssRules) { continue; }
1105      for (var j = 0; j < cssRules.length; ++j) {
1106        var rule = cssRules[j];
1107        var selectedNodes = null;
vendor: 10,770 bytes, lines 1108-1418
1108        // Ignore errors on invalid selector texts.
1109        try {
1110          selectedNodes = document.querySelectorAll(rule.selectorText);
1111        } catch(e) {}
1112        if (!selectedNodes || !inNodeList(selectedNodes, element)) {
1113          continue;
1114        }
1115        var cssTop = rule.style.getPropertyValue('top');
1116        var cssBottom = rule.style.getPropertyValue('bottom');
1117        if ((cssTop && cssTop !== 'auto') || (cssBottom && cssBottom !== 'auto')) {
1118          return true;
1119        }
1120      }
1121    }
1122    return false;
1123  };
1124
1125  dialogPolyfill.needsCentering = function(dialog) {
1126    var computedStyle = window.getComputedStyle(dialog);
1127    if (computedStyle.position !== 'absolute') {
1128      return false;
1129    }
1130
1131    // We must determine whether the top/bottom specified value is non-auto.  In
1132    // WebKit/Blink, checking computedStyle.top == 'auto' is sufficient, but
1133    // Firefox returns the used value. So we do this crazy thing instead: check
1134    // the inline style and then go through CSS rules.
1135    if ((dialog.style.top !== 'auto' && dialog.style.top !== '') ||
1136        (dialog.style.bottom !== 'auto' && dialog.style.bottom !== '')) {
1137      return false;
1138    }
1139    return !dialogPolyfill.isInlinePositionSetByStylesheet(dialog);
1140  };
1141
1142  /**
1143   * @param {!Element} element to force upgrade
1144   */
1145  dialogPolyfill.forceRegisterDialog = function(element) {
1146    if (window.HTMLDialogElement || element.showModal) {
1147      console.warn('This browser already supports <dialog>, the polyfill ' +
1148          'may not work correctly', element);
1149    }
1150    if (element.localName !== 'dialog') {
1151      throw new Error('Failed to register dialog: The element is not a dialog.');
1152    }
1153    new dialogPolyfillInfo(/** @type {!HTMLDialogElement} */ (element));
1154  };
1155
1156  /**
1157   * @param {!Element} element to upgrade, if necessary
1158   */
1159  dialogPolyfill.registerDialog = function(element) {
1160    if (!element.showModal) {
1161      dialogPolyfill.forceRegisterDialog(element);
1162    }
1163  };
1164
1165  /**
1166   * @constructor
1167   */
1168  dialogPolyfill.DialogManager = function() {
1169    /** @type {!Array<!dialogPolyfillInfo>} */
1170    this.pendingDialogStack = [];
1171
1172    var checkDOM = this.checkDOM_.bind(this);
1173
1174    // The overlay is used to simulate how a modal dialog blocks the document.
1175    // The blocking dialog is positioned on top of the overlay, and the rest of
1176    // the dialogs on the pending dialog stack are positioned below it. In the
1177    // actual implementation, the modal dialog stacking is controlled by the
1178    // top layer, where z-index has no effect.
1179    this.overlay = document.createElement('div');
1180    this.overlay.className = '_dialog_overlay';
1181    this.overlay.addEventListener('click', function(e) {
1182      this.forwardTab_ = undefined;
1183      e.stopPropagation();
1184      checkDOM([]);  // sanity-check DOM
1185    }.bind(this));
1186
1187    this.handleKey_ = this.handleKey_.bind(this);
1188    this.handleFocus_ = this.handleFocus_.bind(this);
1189
1190    this.zIndexLow_ = 100000;
1191    this.zIndexHigh_ = 100000 + 150;
1192
1193    this.forwardTab_ = undefined;
1194
1195    if ('MutationObserver' in window) {
1196      this.mo_ = new MutationObserver(function(records) {
1197        var removed = [];
1198        records.forEach(function(rec) {
1199          for (var i = 0, c; c = rec.removedNodes[i]; ++i) {
1200            if (!(c instanceof Element)) {
1201              continue;
1202            } else if (c.localName === 'dialog') {
1203              removed.push(c);
1204            }
1205            removed = removed.concat(c.querySelectorAll('dialog'));
1206          }
1207        });
1208        removed.length && checkDOM(removed);
1209      });
1210    }
1211  };
1212
1213  /**
1214   * Called on the first modal dialog being shown. Adds the overlay and related
1215   * handlers.
1216   */
1217  dialogPolyfill.DialogManager.prototype.blockDocument = function() {
1218    document.documentElement.addEventListener('focus', this.handleFocus_, true);
1219    document.addEventListener('keydown', this.handleKey_);
1220    this.mo_ && this.mo_.observe(document, {childList: true, subtree: true});
1221  };
1222
1223  /**
1224   * Called on the first modal dialog being removed, i.e., when no more modal
1225   * dialogs are visible.
1226   */
1227  dialogPolyfill.DialogManager.prototype.unblockDocument = function() {
1228    document.documentElement.removeEventListener('focus', this.handleFocus_, true);
1229    document.removeEventListener('keydown', this.handleKey_);
1230    this.mo_ && this.mo_.disconnect();
1231  };
1232
1233  /**
1234   * Updates the stacking of all known dialogs.
1235   */
1236  dialogPolyfill.DialogManager.prototype.updateStacking = function() {
1237    var zIndex = this.zIndexHigh_;
1238
1239    for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {
1240      dpi.updateZIndex(--zIndex, --zIndex);
1241      if (i === 0) {
1242        this.overlay.style.zIndex = --zIndex;
1243      }
1244    }
1245
1246    // Make the overlay a sibling of the dialog itself.
1247    var last = this.pendingDialogStack[0];
1248    if (last) {
1249      var p = last.dialog.parentNode || document.body;
1250      p.appendChild(this.overlay);
1251    } else if (this.overlay.parentNode) {
1252      this.overlay.parentNode.removeChild(this.overlay);
1253    }
1254  };
1255
1256  /**
1257   * @param {Element} candidate to check if contained or is the top-most modal dialog
1258   * @return {boolean} whether candidate is contained in top dialog
1259   */
1260  dialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function(candidate) {
1261    while (candidate = findNearestDialog(candidate)) {
1262      for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {
1263        if (dpi.dialog === candidate) {
1264          return i === 0;  // only valid if top-most
1265        }
1266      }
1267      candidate = candidate.parentElement;
1268    }
1269    return false;
1270  };
1271
1272  dialogPolyfill.DialogManager.prototype.handleFocus_ = function(event) {
1273    if (this.containedByTopDialog_(event.target)) { return; }
1274
1275    if (document.activeElement === document.documentElement) { return; }
1276
1277    event.preventDefault();
1278    event.stopPropagation();
1279    safeBlur(/** @type {Element} */ (event.target));
1280
1281    if (this.forwardTab_ === undefined) { return; }  // move focus only from a tab key
1282
1283    var dpi = this.pendingDialogStack[0];
1284    var dialog = dpi.dialog;
1285    var position = dialog.compareDocumentPosition(event.target);
1286    if (position & Node.DOCUMENT_POSITION_PRECEDING) {
1287      if (this.forwardTab_) {
1288        // forward
1289        dpi.focus_();
1290      } else if (event.target !== document.documentElement) {
1291        // backwards if we're not already focused on <html>
1292        document.documentElement.focus();
1293      }
1294    }
1295
1296    return false;
1297  };
1298
1299  dialogPolyfill.DialogManager.prototype.handleKey_ = function(event) {
1300    this.forwardTab_ = undefined;
1301    if (event.keyCode === 27) {
1302      event.preventDefault();
1303      event.stopPropagation();
1304      var cancelEvent = new supportCustomEvent('cancel', {
1305        bubbles: false,
1306        cancelable: true
1307      });
1308      var dpi = this.pendingDialogStack[0];
1309      if (dpi && dpi.dialog.dispatchEvent(cancelEvent)) {
1310        dpi.dialog.close();
1311      }
1312    } else if (event.keyCode === 9) {
1313      this.forwardTab_ = !event.shiftKey;
1314    }
1315  };
1316
1317  /**
1318   * Finds and downgrades any known modal dialogs that are no longer displayed. Dialogs that are
1319   * removed and immediately readded don't stay modal, they become normal.
1320   *
1321   * @param {!Array<!HTMLDialogElement>} removed that have definitely been removed
1322   */
1323  dialogPolyfill.DialogManager.prototype.checkDOM_ = function(removed) {
1324    // This operates on a clone because it may cause it to change. Each change also calls
1325    // updateStacking, which only actually needs to happen once. But who removes many modal dialogs
1326    // at a time?!
1327    var clone = this.pendingDialogStack.slice();
1328    clone.forEach(function(dpi) {
1329      if (removed.indexOf(dpi.dialog) !== -1) {
1330        dpi.downgradeModal();
1331      } else {
1332        dpi.maybeHideModal();
1333      }
1334    });
1335  };
1336
1337  /**
1338   * @param {!dialogPolyfillInfo} dpi
1339   * @return {boolean} whether the dialog was allowed
1340   */
1341  dialogPolyfill.DialogManager.prototype.pushDialog = function(dpi) {
1342    var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1;
1343    if (this.pendingDialogStack.length >= allowed) {
1344      return false;
1345    }
1346    if (this.pendingDialogStack.unshift(dpi) === 1) {
1347      this.blockDocument();
1348    }
1349    this.updateStacking();
1350    return true;
1351  };
1352
1353  /**
1354   * @param {!dialogPolyfillInfo} dpi
1355   */
1356  dialogPolyfill.DialogManager.prototype.removeDialog = function(dpi) {
1357    var index = this.pendingDialogStack.indexOf(dpi);
1358    if (index === -1) { return; }
1359
1360    this.pendingDialogStack.splice(index, 1);
1361    if (this.pendingDialogStack.length === 0) {
1362      this.unblockDocument();
1363    }
1364    this.updateStacking();
1365  };
1366
1367  dialogPolyfill.dm = new dialogPolyfill.DialogManager();
1368  dialogPolyfill.formSubmitter = null;
1369  dialogPolyfill.useValue = null;
1370
1371  /**
1372   * Installs global handlers, such as click listers and native method overrides. These are needed
1373   * even if a no dialog is registered, as they deal with <form method="dialog">.
1374   */
1375  if (window.HTMLDialogElement === undefined) {
1376
1377    /**
1378     * If HTMLFormElement translates method="DIALOG" into 'get', then replace the descriptor with
1379     * one that returns the correct value.
1380     */
1381    var testForm = document.createElement('form');
1382    testForm.setAttribute('method', 'dialog');
1383    if (testForm.method !== 'dialog') {
1384      var methodDescriptor = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'method');
1385      if (methodDescriptor) {
1386        // nb. Some older iOS and older PhantomJS fail to return the descriptor. Don't do anything
1387        // and don't bother to update the element.
1388        var realGet = methodDescriptor.get;
1389        methodDescriptor.get = function() {
1390          if (isFormMethodDialog(this)) {
1391            return 'dialog';
1392          }
1393          return realGet.call(this);
1394        };
1395        var realSet = methodDescriptor.set;
1396        methodDescriptor.set = function(v) {
1397          if (typeof v === 'string' && v.toLowerCase() === 'dialog') {
1398            return this.setAttribute('method', v);
1399          }
1400          return realSet.call(this, v);
1401        };
1402        Object.defineProperty(HTMLFormElement.prototype, 'method', methodDescriptor);
1403      }
1404    }
1405
1406    /**
1407     * Global 'click' handler, to capture the <input type="submit"> or <button> element which has
1408     * submitted a <form method="dialog">. Needed as Safari and others don't report this inside
1409     * document.activeElement.
1410     */
1411    document.addEventListener('click', function(ev) {
1412      dialogPolyfill.formSubmitter = null;
1413      dialogPolyfill.useValue = null;
1414      if (ev.defaultPrevented) { return; }  // e.g. a submit which prevents default submission
1415
1416      var target = /** @type {Element} */ (ev.target);
1417      if (!target || !isFormMethodDialog(target.form)) { return; }
1418
1419      var valid = (target.type === 'submit' && ['button', 'input'].indexOf(target.localName) > -1);
1420      if (!valid) {
1421        if (!(target.localName === 'input' && target.type === 'image')) { return; }
1422        // this is a <input type="image">, which can submit forms
1423        dialogPolyfill.useValue = ev.offsetX + ',' + ev.offsetY;
1424      }
1425
1426      var dialog = findNearestDialog(target);
1427      if (!dialog) { return; }
1428
1429      dialogPolyfill.formSubmitter = target;
1430
1431    }, false);
1432
1433    /**
1434     * Replace the native HTMLFormElement.submit() method, as it won't fire the
1435     * submit event and give us a chance to respond.
1436     */
1437    var nativeFormSubmit = HTMLFormElement.prototype.submit;
1438    var replacementFormSubmit = function () {
1439      if (!isFormMethodDialog(this)) {
1440        return nativeFormSubmit.call(this);
1441      }
1442      var dialog = findNearestDialog(this);
1443      dialog && dialog.close();
1444    };
1445    HTMLFormElement.prototype.submit = replacementFormSubmit;
1446
1447    /**
1448     * Global form 'dialog' method handler. Closes a dialog correctly on submit
1449     * and possibly sets its return value.
1450     */
1451    document.addEventListener('submit', function(ev) {
1452      if (ev.defaultPrevented) { return; }  // e.g. a submit which prevents default submission
1453
1454      var form = /** @type {HTMLFormElement} */ (ev.target);
1455      if (!isFormMethodDialog(form)) { return; }
1456      ev.preventDefault();
1457
1458      var dialog = findNearestDialog(form);
1459      if (!dialog) { return; }
1460
1461      // Forms can only be submitted via .submit() or a click (?), but anyway: sanity-check that
1462      // the submitter is correct before using its value as .returnValue.
1463      var s = dialogPolyfill.formSubmitter;
1464      if (s && s.form === form) {
1465        dialog.close(dialogPolyfill.useValue || s.value);
1466      } else {
1467        dialog.close();
1468      }
1469      dialogPolyfill.formSubmitter = null;
1470
1471    }, false);
1472  }
1473
1474  return dialogPolyfill;
1475
1476}));
1477</script>
vendor: 1 bytes, line 1477
1477
1478<script>
1479(function() {
1480  function getCookie(name) {
1481    var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
1482    return v ? v[2] : null;
1483  }
1484  
1485  function setCookie(name, value, days) {
1486    var d = new Date;
1487    d.setTime(d.getTime() + 24*60*60*1000*days);
1488    document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
1489  }
1490  
1491  function deleteCookie(name) { setCookie(name, '', -1); }
1492
1493  const lux_cookie_consent_status = getCookie('lux_cookie_consent_status');
1494  var lux_cookie_dialog = document.getElementById("lux-cookie-dialog");
1495  
1496  dialogPolyfill.registerDialog(lux_cookie_dialog);
1497
1498  if ( lux_cookie_consent_status === null || lux_cookie_consent_status === 'unset') {
1499    if ( lux_cookie_consent_status === null ) {
1500      setCookie('lux_cookie_consent_status', 'unset', 365);
1501    }
1502    lux_cookie_dialog.showModal();
1503  }
1504
1505  lux_cookie_dialog.addEventListener('cancel', function(ev) {
1506    ev.preventDefault();
1507  });
1508
1509	document.getElementById("lux-cookie-show-modal-dialog").addEventListener("click", () => {
1510    lux_cookie_dialog.showModal();
1511	});
1512	document.getElementById("lux-cookie-accept-dialog").addEventListener("click", () => {
1513	  setCookie('lux_cookie_consent_status', 'accept', 365);
1514		lux_cookie_dialog.close();
1515		location.reload();
1516	});
1517	document.getElementById("lux-cookie-deny-dialog").addEventListener("click", () => {
1518	  setCookie('lux_cookie_consent_status', 'deny', 365);
1519		lux_cookie_dialog.close();
1520		location.reload();
1521	});
1522
1523})();
1524</script>
1524
1525
1526<footer id="footer">
1527	<div class="container">
1528	  <div class="row">
1529  		<div class="col-sm-3 adress">
1530        FCG Immobilien GmbH<br>
1531        Elenastraße 11<br>
1532        47441 Moers<br>
1533        Tel: <a class="luxphonelink" href="tel:02841 65 63 100">02841 65 63 100</a><br>
1534        Fax: <a href="fax:02841 65 63 111">02841 65 63 111</a><br>
1535        E-Mail: <a class="luxmaillink" href="mailto:[email protected]">[email protected]</a>
1536  		</div>
1537  		
1538  		
1539  		<div class="col-sm-3">
1540  			<ul class="list-unstyled">
1541          <li><a href="lp/immobilien-duesseldorf.html">Immobilien Düsseldorf</a></li>
1542<li><a href="lp/immobilien-moers.html">Immobilien Moers</a></li>
1543<li><a href="lp/immobilien-neukirchen-vluyn.html">Immobilien Neukirchen-Vluyn</a></li>
1544<li><a href="lp/immobilien-niederrhein.html">Immobilien Niederrhein</a></li>
1545<li><a href="lp/immobilien-in-kempen.html">Immobilien in Kempen</a></li>
1546  			</ul>
1547  		</div>
1548
1549  		<div class="col-sm-3">
1550  			<ul class="list-unstyled">
1551          <li><a href="lp/immobilienbewertung.html">Immobilienbewertung</a></li>
1552<li><a href="lp/immobilienangebote.html">Immobilienangebote</a></li>
1553<li><a href="lp/wohnung-guenstig-erwerben.html">Günstige Wohnung</a></li>
1554<li><a href="lp/haus-verkaufen.html">Haus verkaufen</a></li>
1555<li><a href="lp/bauernhof-kaufen.html">Bauernhof kaufen</a></li>
1556  			</ul>
1557  		</div>
1558
1559  		<div class="col-sm-3">
1560  			<ul class="list-unstyled">
1561          <li><a href="lp/anwesen-finden.html">Anwesen finden</a></li>
1562<li><a href="lp/haussuche.html">Haussuche</a></li>
1563<li><a href="lp/maklervertrag.html">Maklervertrag</a></li>
1564<li><a href="lp/wohngemeinschaften.html">Wohngemeinschaften</a></li>
1565<li><a href="lp/gewerbeimmobilien.html">Gewerbeimmobilien</a></li>
1566  			</ul>
1567  		</div>
1568
1569		</div>
1570		
1571		<div class="row ma-top">
1572		  <div class="col-sm-12">
1573
1574		  </div>
1575		</div>
1576	</div>
1577	<div class="btmFooter" style="color: #fff; background-color: #2b4193 !important; border: 0px">
1578		<div class="container">
1579			<div class="col-sm-10">
1580				<p style="color: #fff;">
1581					&copy; 2026 <strong><a class="white" href="https://fcggmbh.de/">FCG Immobilien GmbH</a></strong> | <a style="color: #fff;" href="impressum.html">Impressum</a> | <a style="color: #fff;" href="datenschutzerklaerung.html">Datenschutzerklärung</a> | <a style="color: #fff;" href="agb.html">AGB</a> | <a style="color: #fff;" href="kontakt.html">Kontakt</a>
1582				</p>
1583			</div>
1584			<div class="col-sm-2 text-center">
1585			  <a class="col-sm-6" href="https://www.facebook.com/pages/FCG-Finanz-Home-Consulting-GmbH/294947387201545" target="_blank"><i class="fa fa-facebook fa-2x"></i></a>
1586			  <a class="col-sm-6" href="https://twitter.com/FCGImmobilien" target="_blank"><i class="fa fa-twitter fa-2x"></i></a>
1587			  
1588			</div>
1589		</div>
1590	</div>
1591</footer>
1592        
1593  </div>
1594  
1595
1596<script type="text/javascript" src="assets/themes/fcg/js/jquery.js"></script>
vendor: 1 bytes, line 1596
1596
1597<script src="assets/themes/fcg/js/jquery.matchHeight.js"></script>
1597
1598
1599
1600
1601<script src="assets/themes/fcg/js/lozad.min.js"></script>
1601
1602
1603<script>
1604  var luxlozad;
1605  const observer = lozad('.lozad', {
1606    loaded: function(el) {
1607      el.classList.add('loaded');
1608      if (typeof callbackLozad !== 'undefined' && typeof callbackLozad === 'function') {
1609        clearTimeout(luxlozad);
1610        luxlozad = setTimeout(function(){ 
1611          callbackLozad(); 
1612        }, 500);
1613      }
1614    }
1615  });
1616  observer.observe();
1617</script>
1617
1618
1619
1620<script src="assets/themes/fcg/js/owl.carousel.min.js"></script>
vendor: 1 bytes, line 1620
1620
1621<script src="assets/themes/fcg/js/owl.carousel2.thumbs.min.js"></script>
vendor: 1 bytes, line 1621
1621
1622<script src="assets/themes/fcg/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 1622
1622
1623<script src="assets/themes/fcg/js/scripts.js"></script>
vendor: 1 bytes, line 1623
1623
1624<script src="assets/themes/fcg/js/init.js"></script>
1624
1625
1626<script type="text/javascript" src="assets/themes/fcg/js/jquery-validation/jquery.validate.min.js"></script>
vendor: 1 bytes, line 1626
1626
1627<script type="text/javascript" src="assets/themes/fcg/js/jquery-validation/additional-methods.min.js"></script>
vendor: 1 bytes, line 1627
1627
1628<script type="text/javascript" src="assets/themes/fcg/js/jquery-validation/localization/messages_de.min.js"></script>
1628
1629
1630<script src="assets/themes/fcg/js/toastr.min.js"></script>
1630
1631
1632<script>
1633toastr.options = {
1634  "closeButton": false,
1635  "debug": false,
1636  "newestOnTop": true,
1637  "progressBar": false,
1638  "positionClass": "toast-top-right",
1639  "preventDuplicates": true,
1640  "onclick": null,
1641  "timeOut": "0",
1642  "extendedTimeOut": "0",
1643  "showEasing": "swing",
1644  "hideEasing": "linear",
1645  "tapToDismiss": true,
1646  "hideDuration": 50, 
1647  "showDuration": 50, 
1648  "closeDuration": 50
1649};
1650
1651function luxGrecaptcha(form) {
1652  grecaptcha.ready(function() {
1653    grecaptcha.execute("6LctRPUUAAAAANhrU5ALYwmUHIBvKd-Zu05KVcH6", {action: "directMessage"}).then(function (token) {
1654      document.getElementById("recaptcha-token").value = token;
1655      console.log('grecaptcha.execute has succeded');
1656      window[luxGrecaptchaSucced](form);
1657    }, function (reason) {
1658      /* error */
1659      console.log('grecaptcha.execute has failed');            
1660      console.log(reason);
1661    });
1662  });
1663}
1664
1665$(function() {
1666  
1667  
1668
1669  $('#welcome-carousel').owlCarousel({
1670    loop : true,
1671    dots : false,
1672    nav : true,
1673    smartSpeed : 400,
1674    autoplaySpeed : 3500,
1675    autoplay : true,
1676    navText : ["<i class='fa fa-angle-left'></i>","<i class='fa fa-angle-right'></i>"],
1677    responsiveRefreshRate : 10,
1678    items:1,
1679    thumbs: false,
1680    thumbImage: true,
1681    thumbContainerClass: 'owl-thumbs',
1682    thumbItemClass: 'owl-thumb-item'
1683  });
1684  
1685  $('.property-carousel').owlCarousel({
1686    items: 1,
1687    thumbs: true,
1688    thumbImage: false,
1689    thumbsPrerendered: true,
1690    thumbContainerClass: 'owl-thumbs',
1691    thumbItemClass: 'owl-thumb-item',
1692    animateOut: 'fadeOut',
1693    animateIn: 'fadeIn',
1694  });
1695  
1696  $(".testimonial-carousel").owlCarousel({
1697    loop : true,
1698    dots: false,
1699    smartSpeed : 200,
1700    autoplayTimeout : 8000,
1701    autoplaySpeed : 2000,
1702    autoplay : true,
1703    autoplayHoverPause: true, 
1704    responsiveRefreshRate : 5,
1705    responsive:{
1706      0:{
1707          items:1
1708      },
1709      400:{
1710          items:1
1711      },
1712      1000:{
1713          items:1
1714      }
1715    }
1716  });
1717  
1718  $(".image-slider").owlCarousel({
1719    loop : true,
1720    dots: false,
1721    smartSpeed : 200,
1722    autoplayTimeout : 4000,
1723    autoplaySpeed : 2000,
1724    autoplay : true,
1725    autoplayHoverPause: true, 
1726    responsiveRefreshRate : 5,
1727    responsive:{
1728      0:{
1729          items:1
1730      },
1731      400:{
1732          items:3
1733      },
1734      1000:{
1735          items:5
1736      }
1737    }
1738  });
1739
1740  $(".partner").owlCarousel({
1741    loop : true,
1742    dots: false,
1743    smartSpeed : 400,
1744    autoplaySpeed : 3500,
1745    autoplay : true,
1746    responsiveRefreshRate : 10,
1747    responsive:{
1748      0:{
1749          items:1
1750      },
1751      400:{
1752          items:3
1753      },
1754      1000:{
1755          items:5
1756      }
1757    }
1758  });
1759  
1760  owl = $(".image-slider,.partner,.testimonial-carousel,.property-carousel,#welcome-carousel");
1761  owl.on('changed.owl.carousel', function(event) {
1762    owl.find('.cloned img.lozad').each(function( index ) {
1763      if ( $(this).data('src') ) {
1764        $(this).attr('src', $(this).data('src'));
1765        $(this).data('src', '');
1766      }
1767    });
1768  });
1769
1770  
1771  $('form.jqueryValidate').each(function () {    
1772    $(this).validate({
1773      
1774      submitHandler: function(form) {
1775        if ( $(form).data('fkt') && $(form).data('fkt') !== '' ) {
1776          var fkt = $(form).data('fkt');
1777          window[fkt](form);
1778        }
1779        else {
1780          form.submit();  
1781        }
1782      },
1783      
1784      onkeyup: function (element, event) { if (event.which === 9 && this.elementValue(element) === "") { return; } else { this.element(element); } },
1785      onfocusout: function (element, event) { if (event.which === 9 && this.elementValue(element) === "") { return; } else { this.element(element); } },
1786      focusInvalid: true,
1787      focusCleanup: false,
1788      errorClass: "has-error help-block",
1789      validClass: "valid",
1790  		errorElement: "span",
1791  		errorPlacement: function(error, element) {
1792  		  
1793  		  
1794  		  if ( $( '#' + error[0].id ).length != 0 ) {
1795  		    $( '#' + error[0].id).remove();
1796  		  }
1797		    element.parents('.form-group').append(error);  
1798  			element.parents('.form-group').removeClass("has-success").addClass("has-error");
1799  		},
1800  		success: function (element) {
1801  			$(element).parents('.form-group').removeClass("has-error").addClass("has-success");
1802  			$(element).remove();
1803  		},
1804      
1805      highlight: function(element) {
1806        $(element).css('background', '#ffdddd');
1807      },
1808      
1809      unhighlight: function(element) {
1810        $(element).css('background', '#ffffff');
1811      }  		
1812    });
1813  });
1814});
1815</script>
1815
1816
1817
1818
1819
1820
1821
1822<!-- Tracking disabled due to user preference. -->
1823<script>
1824function ga() {
1825  console.log('ga disabled due to cookie consent disabled');
1826}
1827
1828function gtag() {
1829  console.log('gtag disabled due to cookie consent disabled');
1830}
1831</script>
1831
1832</body>
1833</html>

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.