1function jwSstCustomConsent(level){} 2function jwSstCustomConsentInit(){} 3 4var JwTplJsLibConsent = (function () { 5 'use strict'; 6 const 7 appName = 'JwTplJsLibConsent', 8 consentCookieName = 'jwconsent', 9 expires = 30; 10 11 var 12 _api = false, 13 consentActive = true, 14 version = 3, 15 appVersion = 3, 16 cookiesDisabled = false, 17 storageDisabled = false, 18 htmlInserted = false, 19 origGet, 20 origSet, 21 origLocalStorage, 22 origSessionStorage, 23 cookies = [], 24 callbacks = [], 25 callbacks2 = [], 26 callbacks4 = [], 27 consentNotice, 28 background, 29 settingsButton, 30 settingsGroup, 31 closeButton, 32 agreeButton, 33 agreeAll, 34 rejectAll, 35 interval, 36 errorShown = false, 37 reloading = false, 38 initRun = false, 39 consentObject = { 40 ct: 0, 41 mt: 0, 42 cl:'', 43 m: mode, 44 v: version 45 }, 46 textContent = { 47 logo: 'logo.png', 48 title: 'Dürfen wir Sie um Ihre Zustimmung bitten?', 49 notice: 'Wir verwenden Cookies und andere Technologien gemäà den aufgeführten Zwecken. Darüber hinaus können Partner/Drittanbieter Cookies auf Ihrem Gerät speichern und ähnliche Technologien zur Personalisierung, Messung und Analyse verwenden. Durch Betätigen des Buttons "Akzeptieren" willigen Sie in diese Datenverarbeitung gemäà Art. 6 Abs. 1 S. 1 lit. a EU-DS-GVO, § 15 Abs. 3 TMG ein. Bitte beachten Sie, dass Ihre Einwilligung auch die Datenverarbeitung auÃerhalb der EU/des EWR betrifft, Art. 49 Abs. 1 lit. a EU-DS-GVO. So können Ihre Daten in den USA verarbeitet werden, wo derzeit das EU-Datenschutzniveau wegen des behördlichen Zugriffs, mangelnder Rechtsbehelfsmöglichkeiten sowie eingeschränkter Betroffenenrechte nicht gewährleistet werden kann. Sofern Daten technisch notwendig sind, erfolgt die Verarbeitung aufgrund unseres berechtigten Interesses, Art. 6 Abs. 1 S. 1 lit. f EU-DS-GVO. Weitere Informationen zu Ihren Rechten und zur jederzeit möglichen Ãnderung Ihrer Datenschutz-Einstellungen finden Sie in unserer Datenschutzerklärung.', 50 linktext: 'Weitere Informationen zum Datenschutz finden Sie hier', 51 durl: '#', 52 iurl: '#', 53 pessential: { 54 'title': 'Essentiell', 55 'text': '<p>Essentiell wird dazu verwendet um die Kernfunktionalitäten der Webseite zu aktivieren z.B. die Darstellung der Anzeige inkl. der notwendigen Trackings-Mechanismen.</p><strong>Betrieb/Bereitstellung: Jobware GmbH</strong><p>Beschreibung: Technische Grundlage für die Zählung und Abrechnung von Klicks auf Stellenanzeigen.</p><ul><li>jobtimize</li><li>localToken</li><li>advToken</li><li>borderToken</li><li>fipCan</li><li>fipWeb</li></ul><strong>Betrieb/Bereitstellung: Jobware GmbH</strong><p>Steuerung des Verhaltens des Stellenmarktes bezüglich der Cookie-Einstellungen des Nutzers.</p><ul><li>jwconsent</li></ul>' 56 }, 57 poptions: { 58 'title': 'Präferenzen', 59 'text': '<p>Präferenzen werden dazu verwendet die Usability und den Comfort der Website zu erhöhen z.B. die Merkliste.</p> <strong>Betrieb/Bereitstellung: Jobware GmbH</strong><p>Funktionen um die Usability und den Comfort der Website zu erhöhen.</p><ul><li>md5(host + noli-2)</li><li>jobmailcounter</li></ul>' 60 }, 61 pexternal: { 62 'title': 'Externe Inhalte', 63 'text': 'Externe Inhalte werden dazu verwendet innerhalb von Stellenanzeigen oder Firmenprofilen externe Ressourcen zu laden z.B. Videos.' 64 }, 65 decline: { 66 'title': '<h3>Information</h3>', 67 'text': 'Diese Website benötigt essentielle Cookies. Bitte bestätigen Sie diese um weiter zu kommen.' 68 }, 69 btnaccept: 'Akzeptieren', 70 btnacceptoptions: 'Einstellungen akzeptieren', 71 btnacceptall: 'Alle Akzeptieren', 72 btnrejectall: 'Alle Ablehnen', 73 btnreject: 'Ablehnen', 74 btnoptions: 'Einstellungen', 75 btncloseoptions: 'Einstellungen schliessen' 76 }; 77 78 if (typeof JwTplJsLib == "object") { 79 _api = JwTplJsLib; 80 } 81 82 if(_api !== false && _api.getAppInfo('spuch') === '' && consentActive === true && _api.getConsentStatus() !== false && _api.getConsentStatus().indexOf('true') === 0 && _api.getConsentStatus().indexOf('pcsm') == -1) { 83 var 84 hideCloseButton = _api.getConsentStatus().indexOf('pcnn') !== -1, 85 hideOptions = _api.getConsentStatus().indexOf('pcnn') !== -1, 86 mode = _api.getConsentStatus().substring(5) || 'default',
87 oldConsent = getConsentObjectFromCookie().cl; 88 89 function addKeyClick(element, fn) { 90 if (element === null || element === undefined) return; 91 element.addEventListener('keydown', function(e) { 92 if (e.key === 'Enter' || e.key === ' ') { 93 e.preventDefault(); 94 fn.call(this, e); 95 } 96 }); 97 } 98 99 function insertHtml() { 100 getCustomText(); 101 102 var 103 html = '', 104 modeClass = ' jwtpl-sysConsent-mode' + mode; 105 106 html += '<div class="jwtpl-sysConsent-block jwtpl-jmpt-cookieNotice jwtpl-jmpt-cookieNoticeHidden jwtpl-sysConsent-version3' + modeClass + '">'; 107 html += '<div class="jwtpl-sysConsent-inner">'; 108 html += '<img class="jwtpl-sysConsent-image" src="' + JwTplJsLib.getProjectPath() + 'resource/img/' + textContent.logo + '" alt="Datenschutz-Logo">'; 109 html += '<div class="jwtpl-jmpt-cookieNoticeHeadline">' + textContent.title +'</div>'; 110 html += '<div class="jwtpl-jmpt-cookieNoticeText">' + textContent.notice + '</div>'; 111 112 html += '<div class="jwtpl-sysConsent-usageBlock">'; 113 html += '<div class="jwtpl-sysConsent-usageTab">'; 114 html += '<div tabindex="0" role="button" class="jwtpl-sysConsent-usageTabTitle jwtpl-sysConsent-usageTabTitleEssential jwtpl-gc-expanded" data-jwtpl-sysConsent-tabTarget="jwtpl-sysConsent-usageText1">' + textContent.pessential.title + '</div>'; 115 html += '<div tabindex="0" role="button" class="jwtpl-sysConsent-usageTabTitle jwtpl-sysConsent-usageTabTitleOptional" data-jwtpl-sysConsent-tabTarget="jwtpl-sysConsent-usageText2">' + textContent.poptions.title + '</div>'; 116 html += '<div tabindex="0" role="button" class="jwtpl-sysConsent-usageTabTitle jwtpl-sysConsent-usageTabTitleExternal" data-jwtpl-sysConsent-tabTarget="jwtpl-sysConsent-usageText3">' + textContent.pexternal.title + '</div>'; 117 html += '</div>'; 118 html += '<div class="jwtpl-sysConsent-usageTabTarget">'; 119 html += '<div class="jwtpl-sysConsent-usageTabItem jwtpl-sysConsent-usageTabItemEssential jwtpl-sysConsent-usageText1 open">' + textContent.pessential.text + '</div>'; 120 html += '<div class="jwtpl-sysConsent-usageTabItem jwtpl-sysConsent-usageTabItemOptional jwtpl-sysConsent-usageText2 jwtpl-gc-hidden1">' + textContent.poptions.text + '</div>'; 121 html += '<div class="jwtpl-sysConsent-usageTabItem jwtpl-sysConsent-usageTabItemExternal jwtpl-sysConsent-usageText3 jwtpl-gc-hidden1">
121' + textContent.pexternal.text + '</div>'; 122 html += '</div>'; 123 html += '</div>'; 124 125 html += '<div class="jwtpl-jmpt-cookieNoticeWarning jwtpl-jmpt-cookieNoticeHidden">Für diese Funktion sind zusätzliche Berechtigungen erforderlich!</div>'; 126 html += '<div class="jwtpl-jmpt-cookieOptions jwtpl-jmpt-cookieNoticeHidden">'; 127 html += '<div class="jwtpl-jmpt-cookieOptionsGroup"><input type="checkbox" checked disabled name="essential" id="essential">'; 128 html += '<label for="essential">' + textContent.pessential.title + '</label>'; 129 html += '</div>'; 130 html += '<div class="jwtpl-jmpt-cookieOptionsGroup"><input type="checkbox" name="options" id="options"></input>'; 131 html += '<label for="options">' + textContent.poptions.title + '</label>'; 132 html += '</div>'; 133 html += '<div class="jwtpl-jmpt-cookieOptionsGroup"><input type="checkbox" name="external" id="external">'; 134 html += '<label for="external">' + textContent.pexternal.title + '</label>'; 135 html += '</div>'; 136 html += '</div>'; 137 html += '</div>'; 138 139 html += '<div class="jwtpl-sysConsent-actionGroup">'; 140 html += '<span tabindex="0" role="button" class="jwtpl-jmpt-btCookieNoticeDecline">' + textContent.btnreject + '</span>'; 141 html += '<span tabindex="0" role="button" class="jwtpl-jmpt-btCookieNoticeConfigure">' + textContent.btnoptions + '</span>'; 142 html += '<span tabindex="0" role="button" class="jwtpl-jmpt-btCookieNoticeAgree">' + textContent.btnaccept + '</span>'; 143 html += '<span tabindex="0" role="button" class="jwtpl-jmpt-btCookieNoticeRejectAll">' + textContent.btnrejectall + '</span>'; 144 html += '<span tabindex="0" role="button" class="jwtpl-jmpt-btCookieNoticeAgreeAll">' + textContent.btnacceptall + '</span>'; 145 html += '<div class="jwtpl-jmpt-cookieDeclineWarning jwtpl-jmpt-cookieNoticeHidden">' + textContent.decline.title + textContent.decline.text + '</div>'; 146 html += '</div>'; 147 148 html += '<span class="jwtpl-jmpt-cookieNoticeClose"></span>'; 149 html += '<div class="jwtpl-sysConsent-consentLinks">'; 150 html += '<a class="" href="' + textContent.durl +'" target="_blank">Datenschutz</a>'; 151 if(_api.trim(textContent.iurl) !== '#') { 152 html += '<a class="" href="' + textContent.iurl +'" target="_blank">Impressum</a>'; 153 } 154 html += '</div>'; 155 html += '</div>'; 156 html += '<div class="jwtpl-jmpt-cookieNoticeBackground jwtpl-jmpt-cookieNoticeHidden"></div>'; 157 158 var insertPosition = document.querySelector('.jwdrf-frame-inner') || document.querySelector('.jwtpl-vw-bodyWrapper') || document.querySelector('.jwtpl-jmpt-inner'); 159 if (insertPosition === null) { 160 return false; 161 } 162 insertPosition.insertAdjacentHTML('beforebegin', html); 163 htmlInserted = true; 164 165 document.getElementById('options').addEventListener('click',()=>{ 166 document.getElementsByClassName('jwtpl-jmpt-cookieNoticeWarning')[0].innerHTML=''; 167 }); 168 document.getElementById('external').addEventListener('click',()=>{ 169 document.getElementsByClassName('jwtpl-jmpt-cookieNoticeWarning')[0].innerHTML=''; 170 }); 171 172 let usageTabTitle = _api.get('.jwtpl-sysConsent-usageTabTitle'); 173 174 if(usageTabTitle.length > 0) { 175 _api.each(usageTabTitle, function(it){ 176 177 function handleTabClick(e) { 178 let 179 active, 180 currTab = this, 181 tabItems = _api.get( 182 '.jwtpl-sysConsent-usageTabTitle, .jwtpl-sysConsent-usageTabItem' 183 ); 184 185 if(tabItems.length > 0){ 186 _api.each(tabItems, function(tabItem){ 187 if(_api.hasClass(tabItem, 'jwtpl-sysConsent-usageTabTitle') === true) { 188 _api.removeClass(tabItem, 'jwtpl-gc-expanded'); 189 } 190 if(_api.hasClass(tabItem, 'jwtpl-sysConsent-usageTabItem') === true) { 191 _api.addClass(tabItem, 'jwtpl-gc-hidden1'); 192 _api.removeClass(tabItem, 'open'); 193 } 194 }); 195 } 196 197 active = currTab.getAttribute('data-jwtpl-sysConsent-tabTarget'); 198 199 if(_api.isString(active) === true) { 200 let activeTabItem = _api.get('.' + active); 201 if(activeTabItem.length > 0){ 202 _api.removeClass(activeTabItem[0], 'jwtpl-gc-hidden1'); 203 _api.addClass(activeTabItem[0], 'open'); 204 _api.addClass(currTab, 'jwtpl-gc-expanded'); 205 } 206 } 207 } 208 209 _api.event(it, 'click', function(e){
210 handleTabClick.call(this, e); 211 }); 212 addKeyClick(it, handleTabClick); 213 }); 214 } 215 } 216 217 function getCustomText(){ 218 textContent.logo = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.logo', textContent.logo); 219 textContent.title = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.title', textContent.title); 220 textContent.notice = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.notice', textContent.notice); 221 textContent.linktext = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.linktext', textContent.linktext); 222 textContent.durl = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.durl', textContent.durl); 223 textContent.iurl = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.iurl', textContent.iurl); 224 textContent.pessential = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.pessential', textContent.pessential); 225 textContent.poptions = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.poptions', textContent.poptions); 226 textContent.pexternal = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.pexternal', textContent.pexternal); 227 textContent.decline = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.decline', textContent.decline); 228 textContent.btnaccept = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btnaccept', textContent.btnaccept); 229 textContent.btnacceptoptions = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btnacceptoptions', textContent.btnacceptoptions); 230 textContent.btnreject = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btnreject', textContent.btnreject); 231 textContent.btnrejectoptions = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btnrejectoptions', textContent.btnrejectoptions); 232 textContent.btnoptions = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btnoptions', textContent.btnoptions); 233 textContent.btncloseoptions = JwTplJsLib.getBaseObject()._globalGetCfg('consent.3.gui.btncloseoptions', textContent.btncloseoptions); 234 235 if(_api.trim(textContent.durl) === '#'){ 236 JwTplJsLibConsent.printErrorMsg('.getCustomText() -> kein Link zum Datenschutz vorhanden!'); 237 } 238 } 239 240 function getConsentObjectFromCookie(){ 241 var cookie = _api.getCookie(consentCookieName); 242 var cookieObject; 243 try { 244 cookieObject = JSON.parse(cookie); 245 if (typeof cookieObject !== 'object') { 246 throw new Error('Consent format not recognized'); 247 } 248 if (cookieObject.cl.indexOf('1') === -1) { 249 throw new Error('External Opt-Out, new consent required'); 250 } 251 if (cookieObject.m !== mode) { 252 if(cookieObject.m === 'pcam') { 253 } else { 254 throw new Error('Mode has changed, new consent required'); 255 } 256 } 257 if (cookieObject.v !== version) { 258 throw new Error('Version has changed, new consent required'); 259 } 260 errorShown = false; 261 } catch (e) { 262 if (errorShown === false) { 263 _api.printInfoMsg(' getConsentObjectFromCookie - invalid cookie, reset. exception: ' + e.message); 264 if(_api.getCookie(consentCookieName) !== ''){ 265 document.cookie = consentCookieName + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 266 } 267 errorShown = true; 268 } 269 cookieObject = JSON.parse(JSON.stringify(consentObject)); 270 } 271 return cookieObject; 272 } 273 274 function saveConsentObject(consentLevel){
275 var consent = getConsentObjectFromCookie(); 276 if (checkConsent(1) === false) { 277 consent.ct = Date.now().toString(); 278 } 279 consent.mt = Date.now().toString(); 280 consent.m = _api.getConsentStatus().substring(5) || 'default'; 281 consent.cl = consentLevel; 282 _api.setCookie(consentCookieName, JSON.stringify(consent), 30); 283 if(_api.isIos() === true) { 284 location.reload(); 285 } 286 } 287 288 function displayWarning(level, text) { 289 if (htmlInserted === false) { 290 insertHtml(); 291 } 292 if (checkConsent(1) === false || text === '') { 293 return false; 294 } 295 var warning = document.querySelector('.jwtpl-jmpt-cookieNoticeWarning'); 296 warning.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 297 if (text) { 298 warning.innerText = text; 299 } 300 var levelOption = getLabelForLevel(level); 301 if (levelOption !== null) { 302 levelOption.classList.add('jwtpl-jmpt-CookieNoticeHighlight'); 303 document.querySelector('.jwtpl-jmpt-cookieOptions').scrollIntoView({ 304 behavior: 'smooth' 305 }); 306 } 307 } 308 309 function acceptAll(){ 310 if(_api.type(settingsGroup) !== undefined){ 311 var labels = settingsGroup.querySelectorAll('input[type="checkbox"]'); 312 for(var i = 0; i < labels.length; i++){ 313 labels[i].checked = true; 314 } 315 setConsent(); 316 } 317 } 318 319 function refuseAll() { 320 if (_api.type(settingsGroup) !== undefined) { 321 var labels = settingsGroup.querySelectorAll('input[type="checkbox"]'); 322 for (var i = 0; i < labels.length; i++) { 323 if (!labels[i].disabled) { 324 labels[i].checked = false; 325 } 326 } 327 setConsent(); 328 } 329 } 330 331 function toogleSettings(){ 332 if(_api.hasClass(settingsGroup, 'jwtpl-jmpt-cookieNoticeHidden') === true) { 333 settingsButton.innerText = textContent.btncloseoptions; 334 _api.addClass(rejectAll, 'jwtpl-jmpt-cookieNoticeHidden'); 335 _api.addClass(agreeAll, 'jwtpl-jmpt-cookieNoticeHidden'); 336 _api.removeClass(agreeButton, 'jwtpl-jmpt-cookieNoticeHidden'); 337 agreeButton.innerText = textContent.btnacceptoptions; 338 } else { 339 settingsButton.innerText = textContent.btnoptions; 340 _api.removeClass(rejectAll, 'jwtpl-jmpt-cookieNoticeHidden'); 341 _api.removeClass(agreeAll, 'jwtpl-jmpt-cookieNoticeHidden'); 342 _api.addClass(agreeButton, 'jwtpl-jmpt-cookieNoticeHidden'); 343 } 344 345 settingsGroup.classList.toggle('jwtpl-jmpt-cookieNoticeHidden'); 346 document.querySelector('.jwtpl-jmpt-cookieOptions').scrollIntoView({ 347 behavior: 'smooth' 348 }); 349 } 350 351 function displayNotice() { 352 if(textContent.durl === _api.getCurrentUrl()){ 353 return false; 354 } 355 if(textContent.iurl === _api.getCurrentUrl()){ 356 return false; 357 } 358 if(mode === 'pcihp' && _api.isStartPage() === true) { 359 return false; 360 } 361 362 var firstopen = !checkConsent(1); 363 if (htmlInserted === false) { 364 insertHtml(); 365 } 366 367 consentNotice = document.querySelector('.jwtpl-jmpt-cookieNotice'); 368 background = document.querySelector('.jwtpl-jmpt-cookieNoticeBackground'); 369 if (consentNotice === null || background === null) { 370 return false; 371 } 372 373 if (consentNotice.classList.contains('jwtpl-jmpt-cookieNoticeHidden') === false && consentNotice.classList.contains('jwtpl-jmpt-cookieNoticeClosed') === false) { 374 return false; 375 } 376 377 closeButton = document.querySelector('.jwtpl-jmpt-cookieNoticeClose'); 378 if (closeButton !== null) { 379 if (firstopen === true && hideCloseButton === true) { 380 closeButton.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 381 } else { 382 closeButton.addEventListener('click', hideNotice); 383 addKeyClick(closeButton, hideNotice); 384 closeButton.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 385 } 386 } 387 388 agreeButton = document.querySelector('.jwtpl-jmpt-btCookieNoticeAgree'); 389 if (agreeButton !== null) { 390 agreeButton.addEventListener('click', setConsent); 391 addKeyClick(agreeButton, setConsent); 392 } 393 394 agreeAll = document.querySelector('.jwtpl-jmpt-btCookieNoticeAgreeAll'); 395 if (agreeAll !== null) { 396 agreeAll.addEventListener('click', acceptAll); 397 addKeyClick(agreeAll, acceptAll); 398 } 399 400 rejectAll = document.querySelector('.jwtpl-jmpt-btCookieNoticeRejectAll'); 401 if (rejectAll !== null) { 402 rejectAll.addEventListener('click', refuseAll); 403 addKeyClick(rejectAll, refuseAll); 404 } 405 406 settingsButton = document.querySelector('.jwtpl-jmpt-btCookieNoticeConfigure'); 407 settingsGroup = document.querySelector('.jwtpl-jmpt-cookieOptions'); 408 if (settingsButton !== null && settingsGroup !== null) { 409 if (hideOptions === true) { 410 settingsButton.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 411 } else { 412 settingsButton.addEventListener('click', toogleSettings); 413 addKeyClick(settingsButton, toogleSettings); 414 } 415 } 416 417 consentNotice.classList.add('jwtpl-jmpt-cookieNoticeFullscreen'); 418 if (firstopen === true) { 419 settingsButton.innerText = textContent.btnoptions; 420 consentNotice.classList.add('jwtpl-jmpt-cookieNoticeFullscreen'); 421 settingsGroup.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 422 agreeButton.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 423 rejectAll.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 424 agreeAll.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 425 background.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 426 document.body.style.overflow = 'hidden'; 427 } else { 428 restoreSelection(); 429 settingsGroup.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 430 settingsButton.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 431 rejectAll.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 432 agreeAll.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 433 agreeButton.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 434 consentNotice.classList.add('jwtpl-sysConsent-restore'); 435 document.body.style.overflow = 'hidden'; 436 background.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 437 agreeButton.innerText = textContent.btnacceptoptions; 438 439 let checkedOptions = _api.get('.jwtpl-sysConsent-modepcnn.jwtpl-sysConsent-restore .jwtpl-jmpt-cookieOptionsGroup input'); 440 _api.each(checkedOptions, (option) => { 441 if(option.disabled === false) { 442 option.disabled = true; 443 } 444 }); 445 } 446 447 consentNotice.classList.remove('jwtpl-jmpt-cookieNoticeHidden'); 448 consentNotice.classList.remove('jwtpl-jmpt-cookieNoticeClosed'); 449 450 let 451 restoreModus = _api.get('.jwtpl-sysConsent-restore'), 452 declineAll = _api.get('.jwtpl-jmpt-btCookieNoticeDecline'); 453 454 if(declineAll.length > 0) { 455 let declineNotice = _api.get('.jwtpl-jmpt-cookieDeclineWarning'); 456 if(declineNotice.length > 0){ 457 if(restoreModus.length > 0){ 458 declineAll[0].innerText = 'Alle ablehnen'; 459 _api.addClass(declineNotice[0], 'jwtpl-jmpt-cookieNoticeHidden'); 460 } 461 462 if(initRun === false){ 463 initRun = true; 464 465 function declineHandler(e) { 466 let restoreModus = _api.get('.jwtpl-sysConsent-restore'); 467 if(restoreModus.length > 0){ 468 JwTplJsLibConsent.resetSstAll(); 469 } else { 470 if(_api.hasClass(declineNotice[0], 'jwtpl-jmpt-cookieNoticeHidden') === true) { 471 _api.removeClass(declineNotice[0], 'jwtpl-jmpt-cookieNoticeHidden'); 472 } else { 473 _api.addClass(declineNotice[0], 'jwtpl-jmpt-cookieNoticeHidden'); 474 } 475 } 476 } 477 478 _api.event(declineAll[0], 'click', declineHandler); 479 addKeyClick(declineAll[0], declineHandler); 480 } 481 } 482 } 483 } 484 485 function hideNotice() { 486 if (htmlInserted === false) { 487 return true; 488 } 489 490 if(_api.type(consentNotice) !== undefined) { 491 if (consentNotice.classList.contains('jwtpl-jmpt-cookieNoticeHidden') === true || consentNotice.classList.contains('jwtpl-jmpt-cookieNoticeClosed') === true) { 492 return false; 493 } 494 495 if (consentNotice.classList.contains('jwtpl-jmpt-cookieNoticeFullscreen') === false) { 496 consentNotice.classList.add('jwtpl-jmpt-cookieNoticeClosed'); 497 } else { 498 consentNotice.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 499 background.classList.add('jwtpl-jmpt-cookieNoticeHidden'); 500 document.body.style.overflow = ''; 501 } 502 } 503 504 var hightlight = document.querySelectorAll('.jwtpl-jmpt-cookieNoticeHighlight'); 505 for (var i = 0; i < hightlight.length; i++) { 506 hightlight[i].classList.remove('.jwtpl-jmpt-cookieNoticeHighlight'); 507 } 508 } 509 510 function restoreSelection() { 511 var options = document.querySelector('.jwtpl-jmpt-cookieOptions input#options'); 512 if (checkConsent(2) === true) { 513 options.checked = true; 514 } else { 515 options.checked = false; 516 } 517 518 var external = document.querySelector('.jwtpl-jmpt-cookieOptions input#external'); 519 if (checkConsent(4) === true) { 520 external.checked = true; 521 } else { 522 external.checked = false; 523 } 524 } 525 526 function setConsent() { 527 enableCookies(); 528 enableStorage(); 529 530 var consentLevel = getConsentLevel(); 531 if (consentLevel.indexOf(1) === -1) { 532 document.cookie = consentCookieName + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 533 } else { 534 saveConsentObject(consentLevel); 535 } 536 hideNotice(); 537 538 var i = oldConsent.length; 539 while (i--) { 540 if (consentLevel.indexOf(oldConsent.charAt(i)) === -1) { 541 location.reload(); 542 } 543 } 544
545 oldConsent = getConsentObjectFromCookie().cl; 546 547 if (consentLevel.indexOf(1) !== -1) { 548 for (var i = 0; i < callbacks.length; i++) { 549 callbacks[i](); 550 } 551 callbacks = []; 552 } 553 554 if (consentLevel.indexOf(2) !== -1) { 555 for (var i = 0; i < callbacks2.length; i++) { 556 callbacks2[i](); 557 } 558 callbacks2 = []; 559 } 560 561 if (consentLevel.indexOf(4) !== -1) { 562 for (var i = 0; i < callbacks4.length; i++) { 563 callbacks4[i](); 564 } 565 callbacks4 = []; 566 } 567 } 568 569 function reloadOnCookieChange(){ 570 if(reloading === true){ 571 return true; 572 } 573 var currentConsent = getConsentObjectFromCookie().cl; 574 575 var i = oldConsent.length; 576 while (i--) { 577 if (currentConsent.indexOf(oldConsent.charAt(i)) === -1) { 578 clearInterval(interval); 579 reloading = true; 580 location.reload(); 581 } 582 } 583 } 584 585 function getLabelForLevel(level) { 586 var essential = document.querySelector('.jwtpl-jmpt-cookieOptions label[for=essential]'); 587 var options = document.querySelector('.jwtpl-jmpt-cookieOptions label[for=options]'); 588 var external = document.querySelector('.jwtpl-jmpt-cookieOptions label[for=external]'); 589 590 if (level === 1) { 591 return essential; 592 } 593 if (level === 2) { 594 return options; 595 } 596 if (level === 4) { 597 return external; 598 } 599 else { 600 return null; 601 } 602 } 603 604 function getConsentLevel() { 605 var essential = document.querySelector('.jwtpl-jmpt-cookieOptions input#essential'); 606 var options = document.querySelector('.jwtpl-jmpt-cookieOptions input#options'); 607 var external = document.querySelector('.jwtpl-jmpt-cookieOptions input#external'); 608 609 var cookieText = ""; 610 611 if (essential && essential.checked) { 612 cookieText += '1'; 613 } 614 if (options && options.checked) { 615 cookieText += '2'; 616 } 617 if (external && external.checked) { 618 cookieText += '4'; 619 } 620 621 return cookieText; 622 } 623 624 function disableCookies() { 625 if (cookiesDisabled === true) { 626 return false; 627 } 628 629 var cookieProto = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie'); 630 if (cookieProto !== undefined) { 631 origGet = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie').get; 632 origSet = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie').set; 633 } else { 634 origGet = document.__lookupGetter__('cookie'); 635 origSet = document.__lookupSetter__('cookie'); 636 } 637 638 if (!origGet || !origSet) { 639 return false; 640 } 641 642 if (!document.__defineGetter__) { 643 Object.defineProperty(document, 'cookie', { 644 get: function () { return '' }, 645 set: cookieSetProxy 646 }); 647 } else { 648 document.__defineGetter__("cookie", function () { return ''; }); 649 document.__defineSetter__("cookie", cookieSetProxy); 650 } 651 cookiesDisabled = true; 652 } 653 654 function enableCookies() { 655 if (cookiesDisabled === false) { 656 return false; 657 } 658 if (!document.__defineGetter__) { 659 Object.defineProperty(document, 'cookie', { 660 get: origGet, 661 set: origSet 662 }); 663 } else { 664 document.__defineGetter__("cookie", origGet); 665 document.__defineSetter__("cookie", origSet); 666 } 667 for (var i = 0; i < cookies.length; i++) { 668 document.cookie = cookies[i]; 669 } 670 cookiesDisabled = false; 671 } 672 673 function disableStorage() { 674 if (storageDisabled === true) { 675 return false; 676 } 677 678 origLocalStorage = window.__lookupGetter__('localStorage'); 679 origSessionStorage = window.__lookupGetter__('sessionStorage'); 680 681 if (!origLocalStorage || !origSessionStorage) { 682 return false; 683 } 684 685 if (!document.__defineGetter__) { 686 Object.defineProperty(window, 'localStorage', { 687 get: function () { 688 return { 689 __proto__: { 690 length: 0, 691 setItem: function () { }, 692 getItem: function () { return null }, 693 key: function () { return null }, 694 removeItem: function () { }, 695 clear: function () { } 696 } 697 } 698 }, 699 }); 700 } else { 701 window.__defineGetter__("localStorage", function () { 702 return { 703 __proto__: { 704 length: 0, 705 setItem: function () { }, 706 getItem: function () { return null }, 707 key: function () { return null }, 708 removeItem: function () { }, 709 clear: function () { } 710 } 711 } 712 }); 713 } 714 715 if (!document.__defineGetter__) { 716 Object.defineProperty(window, 'sessionStorage', { 717 get: function () { 718 return { 719 __proto__: { 720 length: 0, 721 setItem: function () { }, 722 getItem: function () { return null }, 723 key: function () { return null }, 724 removeItem: function () { }, 725 clear: function () { } 726 } 727 } 728 }, 729 }); 730 } else { 731 window.__defineGetter__("sessionStorage", function () { 732 return { 733 __proto__: { 734 length: 0, 735 setItem: function () { }, 736 getItem: function () { return null }, 737 key: function () { return null }, 738 removeItem: function () { }, 739 clear: function () { } 740 } 741 } 742 }); 743 } 744 } 745 746 function enableStorage() { 747 if (storageDisabled === false) { 748 return false; 749 } 750 window.__defineGetter__("localStorage", origLocalStorage); 751 window.__defineGetter__("sessionStorage", origSessionStorage); 752 } 753 754 function cookieSetProxy(text) { 755 cookies.push(text); 756 return true; 757 } 758 759 function checkConsent(level, callback) {
760 var consent = getConsentObjectFromCookie().cl; 761 if (consent.indexOf(level) !== -1) { 762 if (callback) { 763 callback(); 764 } 765 return true; 766 } else { 767 return false; 768 } 769 } 770 771 function getConsent(level, callback, text) { 772 var consent = getConsentObjectFromCookie().cl; 773 if (consent.indexOf(level) === -1) { 774 displayWarning(level, text); 775 if (callback) { 776 if (level === 1) { 777 callbacks.push(callback); 778 } 779 if (level === 2) { 780 callbacks2.push(callback); 781 } 782 if (level === 4) { 783 callbacks4.push(callback); 784 } 785 if(mode === 'pcam'){ 786 jwSstCustomConsent(level); 787 } else { 788 displayNotice(); 789 } 790 } 791 } else { 792 callback(); 793 } 794 } 795 796 function checkConsentCallback(level, callback) { 797 var consent = getConsentObjectFromCookie().cl; 798 if (consent.indexOf(level) === -1) { 799 if (callback) { 800 if (level === 1) { 801 callbacks.push(callback); 802 } 803 if (level === 2) { 804 callbacks2.push(callback); 805 } 806 if (level === 4) { 807 callbacks4.push(callback); 808 } 809 if(mode === 'pcam'){ 810 jwSstCustomConsent(level); 811 } 812 } 813 } else { 814 callback(); 815 } 816 } 817 818 return { 819 setSstAll: function(){ 820 var done = this.setSstEssential() && this.setSstOptional() && this.setSstExternal(); 821 if(done === true) { 822 acceptAll(); 823 return true; 824 } else { 825 return false; 826 } 827 }, 828 829 setSstRefuseAll: function(){ 830 var done = this.setSstEssential(); 831 if(done === true) { 832 refuseAll(); 833 return true; 834 } else { 835 return false; 836 } 837 }, 838 839 getSstAll: function(){
840 return this.getSstEssential() && this.getSstOptional() && this.getSstExternal(); 841 }, 842 843 resetSstAll: function() { 844 return this.resetSstEssential(); 845 }, 846 847 setSstEssential: function(){ 848 if(this.getSstEssential() === false) { 849 saveConsentObject('1'); 850 setConsent(); 851 return true; 852 } else { 853 return true; 854 } 855 }, 856 857 getSstEssential: function() { 858 var data = _api.getCookie(consentCookieName); 859 if(_api.isString(data) === true) { 860 var value = _api.jsonParse(data); 861 if(_api.isObject(value) === true && _api.isNull(value.cl) === false) { 862 return value.cl.indexOf('1') !== -1; 863 } else { 864 return false; 865 } 866 } else { 867 return false; 868 } 869 }, 870 871 resetSstEssential: function() { 872 var data = _api.getCookie(consentCookieName); 873 if(_api.isString(data) === true) { 874 _api.setCookie(consentCookieName, 'expired', 0); 875 location.reload(); 876 return true; 877 } else { 878 return false; 879 } 880 }, 881 882 setSstOptional: function() { 883 if(this.getSstEssential() === false) { 884 return false; 885 } else { 886 var 887 data = _api.getCookie(consentCookieName), 888 value = _api.jsonParse(data); 889 890 if(_api.isNull(value.cl) === false && value.cl.indexOf("2") == -1) { 891 if(value.cl === '1') { 892 value.cl = '12'; 893 } else if(value.cl === '14'){ 894 value.cl = '124'; 895 } 896 _api.setCookie(consentCookieName, _api.jsonStringify(value), expires); 897 for (var i = 0; i < callbacks2.length; i++) { 898 callbacks2[i](); 899 } 900 return true; 901 } else { 902 return true; 903 } 904 } 905 }, 906 907 getSstOptional: function() { 908 var data = _api.getCookie(consentCookieName); 909 if(_api.isString(data) === true) { 910 var value = _api.jsonParse(data); 911 if(_api.isObject(value) === true && _api.isNull(value.cl) === false) { 912 return value.cl.indexOf('2') !== -1; 913 } else { 914 return false; 915 } 916 } else { 917 return false; 918 } 919 }, 920 921 resetSstOptional: function() { 922 var data = _api.getCookie(consentCookieName); 923 if(_api.isString(data) === true) { 924 var value = _api.jsonParse(data); 925 if(_api.isNull(value.cl) === false && value.cl.indexOf('2') !== -1) { 926 var slice = ''; 927 for(var i=0; i<value.cl.length; i++){ 928 if(value.cl[i] !== '2') { 929 slice += value.cl[i]; 930 } 931 } 932 value.cl = slice; 933 _api.setCookie(consentCookieName, _api.jsonStringify(value), expires); 934 location.reload(); 935 return true; 936 } else { 937 return true; 938 } 939 } 940 return false; 941 }, 942 943 setSstExternal: function() { 944 if(this.getSstEssential() === false){ 945 return false; 946 } else { 947 var 948 data = _api.getCookie(consentCookieName), 949 value = _api.jsonParse(data); 950 951 if(_api.isNull(value.cl) === false && value.cl.indexOf("4")
951== -1) { 952 value.cl = value.cl + '4'; 953 _api.setCookie(consentCookieName, _api.jsonStringify(value), expires); 954 for (var i = 0; i < callbacks4.length; i++) { 955 callbacks4[i](); 956 } 957 return true; 958 } else { 959 return true; 960 } 961 } 962 }, 963 964 getSstExternal: function() { 965 var data = _api.getCookie(consentCookieName); 966 if(_api.isString(data) === true) { 967 var value = _api.jsonParse(data); 968 if(_api.isObject(value) === true && _api.isNull(value.cl) === false) { 969 return value.cl.indexOf('4') !== -1; 970 } else { 971 return false; 972 } 973 } else { 974 return false; 975 } 976 }, 977 978 resetSstExternal: function() { 979 var data = _api.getCookie(consentCookieName); 980 if(_api.isString(data) === true) { 981 var value = _api.jsonParse(data); 982 if(_api.isNull(value.cl) === false && value.cl.indexOf('4') !== -1) { 983 value.cl = value.cl.substring(0, value.cl.length - 1); 984 _api.setCookie(consentCookieName, _api.jsonStringify(value), expires); 985 location.reload(); 986 return true; 987 } else { 988 return true; 989 } 990 } 991 return false; 992 }, 993 994 checkConsent: function (level, callback) { 995 var consent = getConsentObjectFromCookie().cl; 996 if (consent.indexOf(level) !== -1) { 997 if (callback) { 998 callback(); 999 } 1000 return true; 1001 } else { 1002 return false; 1003 } 1004 }, 1005 1006 getConsent: function (level, callback, text) { 1007 var consent = getConsentObjectFromCookie().cl; 1008 if (consent.indexOf(level) === -1) { 1009 displayWarning(level, text); 1010 if (callback) { 1011 if (level === 1) { 1012 callbacks.push(callback); 1013 } 1014 if (level === 2) { 1015 callbacks2.push(callback); 1016 } 1017 if (level === 4) { 1018 callbacks4.push(callback); 1019 } 1020 } 1021 if (text === '') { 1022 return; 1023 } 1024 if(mode === 'pcam'){ 1025 jwSstCustomConsent(level); 1026 } else { 1027 displayNotice(); 1028 } 1029 } else { 1030 if (callback) { 1031 callback(); 1032 } 1033 } 1034 }, 1035 1036 checkConsentCallback: function (level, callback) { 1037 var consent = getConsentObjectFromCookie().cl; 1038 if (consent.indexOf(level) === -1) { 1039 if (callback) { 1040 if (level === 1) { 1041 callbacks.push(callback); 1042 } 1043 if (level === 2) { 1044 callbacks2.push(callback); 1045 } 1046 if (level === 4) { 1047 callbacks4.push(callback); 1048 } 1049 } 1050 if(mode === 'pcam'){ 1051 jwSstCustomConsent(level); 1052 } 1053 } else { 1054 if (callback) { 1055 callback(); 1056 } 1057 } 1058 }, 1059 1060 getConsentNoWarning: function (level, callback, text) {
1061 var consent = getConsentObjectFromCookie().cl; 1062 if (consent.indexOf(level) === -1) { 1063 if (callback) { 1064 if (level === 1) { 1065 callbacks.push(callback); 1066 } 1067 if (level === 2) { 1068 callbacks2.push(callback); 1069 } 1070 if (level === 4) { 1071 callbacks4.push(callback); 1072 } 1073 } 1074 if (text === '') { 1075 return; 1076 } 1077 if(mode === 'pcam'){ 1078 jwSstCustomConsent(level); 1079 } 1080 } else { 1081 if (callback) { 1082 callback(); 1083 } 1084 } 1085 }, 1086 1087 showConsent: function(){ 1088 if(mode === 'pcam'){ 1089 jwSstCustomConsent(0); 1090 } else { 1091 displayNotice(); 1092 } 1093 var essentialBox = document.querySelector('input#essential'); 1094 if (essentialBox !== null) { 1095 //essentialBox.disabled = false; 1096 } 1097 }, 1098 1099 init: function () { 1100 interval = window.setInterval(reloadOnCookieChange, 1000); 1101 if (checkConsent(1) === true) { 1102 _api.printInfoMsg(" Message -> _globalCookieConsent - user already consented"); 1103 return false; 1104 } 1105 if(mode === 'pcam'){ 1106 jwSstCustomConsent(0); 1107 } else { 1108 displayNotice(); 1109 } 1110 }, 1111 1112 printErrorMsg: function (msg) { 1113 if (_api.isLocalHost() === true) { 1114 if (_api.type(msg) === 'String' && msg.length > 0) { 1115 console.trace("%c" + appName + msg, "color: #ce0000;"); 1116 } 1117 } 1118 }, 1119 1120 getIFrameMsg: function() { 1121 return '<!doctype html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Datenschutzhinweis</title><link rel="stylesheet" type="text/css" href="' + _api.getProjectPath() + 'api/css/font-awesome-4.5.0.css"/><style>@font-face {font-family: "Roboto Condensed"; src: url("' + _api.getProjectPath() + 'api/css/roboto-condensed-regular.woff2") format("woff"); font-style: normal; font-weight: 400;} html {height: 500px; cursor: pointer;} .jwtpl-sys-adConsent {font-family: "Roboto Condensed"; background-color: #fff; color: #000; padding: 60px 0; text-align: center; width: 400px; margin: 20px auto; font-size: 1.2em; box-sizing: border-box; position:relative; border:2px solid #000; border-radius:.3rem;} .jwtpl-sys-adConsentIcon {color: #ffc107; font-size: 50px; margin-bottom: 20px;} .jwtpl-sys-adConsentClose{position: absolute;top: 10px;right: 10px;cursor: pointer;width: 23px;height: 23px;padding: 0;background-color:#000;color: #fff;border-radius: 20px;} .jwtpl-sys-adConsentTitleMsg{font-size: 25px;padding: 20px;} .jwtpl-sys-adConsentMsg{padding: 20px 20px 0;} .jwtpl-sys-adButton{color: #000;background-color: #ffc107;text-decoration: none;transition: all 0.4s;line-height: normal;border-radius: 3px;margin: 30px 0 0px;padding: 10px 20px;min-width: 150px;border: none;cursor: pointer;} .jwtpl-sys-adConsentClose::before{font-family: FontAwesome;content: "\\f00d";} @media(max-width:600px){.jwtpl-sys-adConsent {width: 100%;}} </style></head><body><div class="jwtpl-sys-adConsent"><i class="jwtpl-sys-adConsentIcon fa fa-exclamation-triangle"></i><span class="jwtpl-sys-adConsentClose"></span><div class="jwtpl-sys-adConsentTitleMsg">Fehlende Berechtigung!</div><div class="jwtpl-sys-adConsentMsg">Um Ihnen dieses Stellenangebot anzeigen zu können, müssen Sie essentiellen Cookies zustimmen.</div><button class="jwtpl-sys-adButton">Einstellung öffnen</button></div></body></html>'; 1122 }, 1123 1124 getAppVersion: function() { 1125 return appVersion; 1126 } 1127 } 1128 } else { 1129 return { 1130 checkConsent: function (level, callback) { 1131 if (callback) { 1132 callback(); 1133 } 1134 return true; 1135 }, 1136 getConsent: function (level, callback, text) { 1137 if (callback) { 1138 callback(); 1139 } 1140 return true; 1141 }, 1142 checkConsentCallback: function (level, callback) { 1143 if (callback) { 1144 callback(); 1145 } 1146 return true; 1147 }, 1148 getConsentNoWarning: function (level, callback, text) { 1149 if (callback) { 1150 callback(); 1151 } 1152 return true; 1153 }, 1154 showConsent: function(){return false;}, 1155 init: function (){return false;}, 1156 printErrorMsg: function (){return false;}, 1157 initConsent: function (){return false;}, 1158 setSstAll: function(){return false;}, 1159 setSstRefuseAll: function(){return false;}, 1160 getSstAll: function(){return true;}, 1161 resetSstAll: function(){return false;}, 1162 setSstEssential: function(){return false;}, 1163 getSstEssential: function(){return true;}, 1164 resetSstEssential: function(){return false;}, 1165 setSstOptional: function(){return false;}, 1166 getSstOptional: function(){return true;}, 1167 resetSstOptional: function(){return false;}, 1168 setSstExternal: function(){return false;}, 1169 getSstExternal: function(){return true;}, 1170 resetSstExternal: function() {return false;}, 1171 getIFrameMsg: function() {return false;}, 1172 getAppVersion: function() {return false;} 1173 } 1174 } 1175})();
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.