1// ************************************************************************* 2// * CookieGuard v1.1 * 3// * * 4// * (c) 2012 Ultimateweb LTD <[email protected]> * 5// * All Rights Reserved. * 6// * * 7// * This program is free software: you can redistribute it and/or modify * 8// * it under the terms of the GNU General Public License as published by * 9// * the Free Software Foundation, either version 3 of the License, or * 10// * (at your option) any later version. * 11// * * 12// * This program is distributed in the hope that it will be useful, * 13// * but WITHOUT ANY WARRANTY; without even the implied warranty of * 14// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 15// * GNU General Public License for more details. * 16// * * 17// * GNU General Public License <http://www.gnu.org/licenses/>. * 18// * * 19// ************************************************************************* 20// CHANGELOG 21// 22// 1.1.0 23// - Multilanguage (spanish and german translations included). 24// - Responsive (CSS based in percentages) 25// - Script Cookies with 2 expiration days 26// 27(function ($) { 28 if (typeof $.cookieguard === 'undefined') { 29 $.cookieguard = function (options) { 30 31 // Defaults 32 var defaults = { 33 cookieDeleteDelay: 100, 34 messageShowDelay: 1500, 35 messageHideDelay: null, 36 answeredHideDelay: 2000, 37 slideSpeed: 500, 38 cookieExpirationDays: 2, 39 cookiePrefix: 'cookieguard_', 40 alertOfUnknown: false 41 }; 42 43 // Language detection 44 var userLang = navigator.language || navigator.userLanguage; 45 userLang=userLang.split('-')[0]; 46 if (options!=null) { if (options.userLang!=null) userLang = options.userLang; } 47 48 49 50 51 // Default Messages (English) 52 var messages = { 53 bannerTitle: ' This website uses cookies to track usage and preferences.', 54 bannerDescription: 'You may choose to block non-essential and unknown cookies.', 55 cookiesEssential: 'Essential Cookies <span>- The site owner has indicated that these are essential to the running of the site.</span>', 56 cookiesNonEssential: 'Non-Essential Cookies <span>- The site owner has approved these cookies but you may turn them off.</span>', 57 cookiesUnknown: 'Unknown Cookies <span>- The site owner has not approved these cookies.</span>', 58 cookiesNewTitle: 'Cookie Guard has found new cookies.', 59 cookiesNewDescription: 'You may choose to block these cookies.', 60 cookiesBlocked: 'Non-essential and unknown cookies have now been blocked on this site.', 61 cookiesAllowed: 'The listed cookies have now been allowed on this site.', 62 buttonShow: 'Show', 63 buttonHide: 'Hide', 64 buttonBlock: 'Block', 65 buttonAllow: 'Allow', 66 buttonOK: 'Okay', 67 cookieGuardName: 'Cookie Guard', 68 cookieGuardDescription: 'This cookie is essential for storing the status of your cookie choices whilst using this site.' 69 }; 70 71 // German Messages 72 if (userLang === "de") { 73 delete messages; 74 var messages = { 75 bannerTitle: 'Wir verwenden Cookies zur Üwachung von Benutzung und Präferenzen.', 76 bannerDescription: 'Die unwesentlichen oder unbekannten Cookies können Sie blockieren.', 77 cookiesEssential: 'Wesentliche Cookies <span>- Diese sind von entscheidender Bedeutung für die volle Funktionsfähigkeit von der Webseite.</span>', 78 cookiesNonEssential: 'Unwesentliche Cookies <span>
78- Unser Webmaster hat diese Cookies zugelassen, aber Sie könen diese ausschalten.</span>', 79 cookiesUnknown: 'Unbekannte Cookies <span>- unser Webmaster hat diese nicht genehmigt.</span>', 80 cookiesNewTitle: 'Cookie Guard hat neue Cookies entdeckt.', 81 cookiesNewDescription: 'Sie könen diese ausschalten.', 82 cookiesBlocked: 'Unwesentliche und unbekannten Cookies Jetzt auf dieser Seite blockiert werde.', 83 cookiesAllowed: 'Die aufgeführten Cookies sind nun auf dieser Webseite erlaubt ist.', 84 buttonShow: 'Show', 85 buttonHide: 'Hide', 86 buttonBlock: 'Block', 87 buttonAllow: 'Erlauben', 88 buttonOK: 'Okay', 89 cookieGuardName: 'Cookie Guard', 90 cookieGuardDescription: 'Diese Cookie speichert Ihre Auswahl verschiedener Cookies (blockiert/erlaubt) während des Surfens von der Webseite.' 91 }; 92 } 93 94 // Spanish Messages 95 if (userLang === "es") { 96 delete messages; 97 var messages = { 98 bannerTitle: 'Esta web emplea cookies para el seguimiento de uso y preferencias.', 99 bannerDescription: 'Escoja entre bloquear o permitir las cookies no esenciales y las desconocidas.', 100 cookiesEssential: 'Cookies Esenciales <span>- nuestro webmaster ha indicado que las siguientes cookies son esenciales para el funcionamiento de la web.</span>', 101 cookiesNonEssential: 'Cookies No Esenciales <span>- nuestro webmaster ha aprobado las siguientes cookies, pero usted puede bloquearlas.</span>', 102 cookiesUnknown: 'Cookies Desconocidas <span>- nuestro webmaster no ha aprobado las siguientes cookies.</span>', 103 cookiesNewTitle: 'Cookie Guard ha encontrado nuevas cookies.', 104 cookiesNewDescription: 'Usted puede bloquear estas nuevas cookies.', 105 cookiesBlocked: 'Cookies no esenciales y desconocidas ahora van a ser bloquedas en nuestra web.', 106 cookiesAllowed: 'Cookies no esenciales y desconocidas han sido permitirdas por usted.', 107 buttonShow: 'Mostrar', 108 buttonHide: 'Ocultar', 109 buttonBlock: 'Bloquear', 110 buttonAllow: 'Permitir', 111 buttonOK: 'Okay', 112 cookieGuardName: 'Cookie Guard', 113 cookieGuardDescription: 'Esta cookie guarda sus preferencias respecto a las distintas cookies (bloqueada/permitida) durante su navegación por nuestra web.' 114 }; 115 } 116 117 if (userLang === "it") { 118 delete messages; 119 var messages = { 120 bannerTitle: 'Utilizzando www.patenteonline.it acconsenti all' utilizzo dei cookie come descritto nella nostra <a href="http://www.patenteonline.it/privacy_www.html"><b style="color:#ffffff">informativa sulla privacy</b></a>.', 121 bannerDescription: '', 122 cookiesEssential: 'Cookies essenziali <span> - Il proprietario del sito ha indicato che questi sono essenziali per il funzionamento del sito.</ span>', 123 cookiesNonEssential: 'Cookies non essenziali <span> - Il proprietario del sito ha approvato questi cookie ma è possibile disattivarli.</ span>', 124 cookiesUnknown: 'Unknown Cookies <span> - Il proprietario del sito non ha approvato questi cookie.</ span>', 125 cookiesNewTitle: 'Cookie Guard ha trovato nuovi cookies.', 126 cookiesNewDescription: 'Si può scegliere di bloccare questi cookies.', 127 cookiesBlocked: 'Non essenziale e cookies sconosciuti sono stati bloccati sul sito.', 128 cookiesAllowed: 'I cookies sono stati autorizzati in questo sito.', 129 buttonShow: 'Vedi', 130 buttonHide: 'Nascondi', 131 buttonBlock: 'Blocca', 132 buttonAllow: 'Consenti', 133 buttonOK: 'Ok', 134 cookieGuardName: 'Cookie Guard', 135 cookieGuardDescription: 'Questo cookie è essenziale per la memorizzazione dello stato delle vostre scelte di cookie durante l\'utilizzo di questo sito.' 136 }; 137 } 138 139 var buttons = { 140 //buttonsConfigDefault: '<div id="cookieButtons"><a href="#" id="showCookies">' + messages.buttonShow + '</a>' + '<a href="#" id="authoriseCookies">' + messages.buttonAllow + '</a>' + '<a href="#" id="denyCookies">' + messages.buttonBlock + '</a></div>', 141 buttonsConfigDefault: '<span id="cookieButtons"><a href="#" id="cookieGuardOkay">'+messages.buttonOK+'</a></span>', 142 buttonsOK: '<div id="cookieButtons"><a href="#" id="showCookies">'+messages.buttonShow+'</a><a href="#" id="cookieGuardOkay">'+messages.buttonOK+'</a></div>' 143 }; 144 145 $.cookieguard.settings = $.extend(defaults, messages, buttons, options, { 'cookiesUsed': new Array(), 'messageHideTimeout': null });
146 }; 147 } 148 149 if (typeof $.cookieguard.cookies === 'undefined') { 150 $.cookieguard.cookies = function () { }; 151 } 152 153 if (typeof $.cookieguard.cookies.read === 'undefined') { 154 $.cookieguard.cookies.read = function (name) { 155 var nameEQ = name + "="; 156 var ca = document.cookie.split(';'); 157 for (var i = 0; i < ca.length; i++) { 158 var c = ca[i]; 159 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 160 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 161 } 162 return null; 163 }; 164 } 165 166 if (typeof $.cookieguard.cookies.create === 'undefined') { 167 $.cookieguard.cookies.create = function (name, value, days, domain, path) { 168 if (domain == undefined || domain == null) 169 domain = document.domain; 170 if (path == undefined || path == null) 171 path = "/"; 172 if (days) { 173 var date = new Date(); 174 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 175 var expires = "; expires=" + date.toGMTString(); 176 } 177 else var expires = ""; 178 179 document.cookie = name + "=" + value + expires + "; domain=" + domain + "; path=" + path; 180 }; 181 } 182 183 if (typeof $.cookieguard.cookies.erase === 'undefined') { 184 $.cookieguard.cookies.erase = function (name) { 185 $.cookieguard.cookies.create(name, "", -1, "", ""); 186 $.cookieguard.cookies.create(name, "", -1, ""); 187 $.cookieguard.cookies.create(name, "", -1); 188 $.cookieguard.cookies.create(name, "", -1, "." + document.domain); 189 if (document.domain.substr(0, 4) == '.www.') 190 $.cookieguard.cookies.create(name, "", -1, document.domain.substr(1)); 191 if (document.domain.substr(0, 4) == 'www.') 192 $.cookieguard.cookies.create(name, "", -1, "." + document.domain.substr(4)); 193 }; 194 } 195 196 if (typeof $.cookieguard.cookies.add === 'undefined') { 197 $.cookieguard.cookies.add = function (name, cookie, description, essential) { 198 var cookies = cookie.split(","); 199 200 for (var i = 0; i < cookies.length; i++) { 201 $.cookieguard.settings.cookiesUsed.push({ 'name': name, 'cookie': cookies[i], 'description': description, 'essential': essential }); 202 203 if (essential) 204 $.cookieguard.cookies.storeAllowedCookie(cookies[i]); 205 } 206 }; 207 } 208 209 if (typeof $.cookieguard.cookies.findUnknownCookies === 'undefined') { 210 $.cookieguard.cookies.findUnknownCookies = function () { 211 var allowedCookies = $.cookieguard.cookies.getAllowedCookies(); 212 var disallowedCookies = $.cookieguard.cookies.getDisallowedCookies(); 213 var definedCookies = $.cookieguard.settings.cookiesUsed; 214 var allCookies = new Array(); 215 var unknownCookies = new Array(); 216 217 if (document.cookie && document.cookie != '') { 218 var split = document.cookie.split(';'); 219 for (var i = 0; i < split.length; i++) { 220 var name_value = split[i].split("="); 221 name_value[0] = name_value[0].replace(/^ /, ''); 222 allCookies.push(decodeURIComponent(name_value[0])); 223 } 224 } 225 226 for (var i = 0; i < allCookies.length; i++) { 227 var cookieFound = false; 228 229 if (allowedCookies != null) { 230 for (var j = 0; j < allowedCookies.length; j++) { 231 if (allowedCookies[j].indexOf('*') === 0 && allowedCookies[j].match("\\*$") == '*') { 232 if (allCookies[i].indexOf(allowedCookies[j].replace('*', '')) > -1) { 233 cookieFound = true; 234 break; 235 } 236 } 237 else if (allowedCookies[j].indexOf('*') === 0) { 238 if (allCookies[i].match(allowedCookies[j].replace('*', '') + '$') == allowedCookies[j].replace('*', '')) { 239 cookieFound = true; 240 break; 241 } 242 } 243 else if (allowedCookies[j].match("\\*$") == "*") { 244 if (allCookies[i].indexOf(allowedCookies[j].replace('*', '')) === 0) { 245 cookieFound = true; 246 break; 247 } 248 } 249 else if (allowedCookies[j] == allCookies[i]) { 250 cookieFound = true; 251 break; 252 } 253 } 254 } 255 256 if (!cookieFound) { 257 if (disallowedCookies != null) { 258 for (var j = 0; j < disallowedCookies.length; j++) { 259 if (disallowedCookies[j].indexOf('*') === 0 && disallowedCookies[j].match("\\*$") == '*') { 260 if (allCookies[i].indexOf(disallowedCookies[j].replace('*', '')) > -1) { 261 cookieFound = true; 262 break; 263 } 264 } 265 else if (disallowedCookies[j].indexOf('*') === 0) { 266 if (allCookies[i].match(disallowedCookies[j].replace('*', '') + '$') == disallowedCookies[j].replace('*', '')) { 267 cookieFound = true; 268 break; 269 } 270 } 271 else if (disallowedCookies[j].match("\\*$") == "*") { 272 if (allCookies[i].indexOf(disallowedCookies[j].replace('*', '')) === 0) { 273 cookieFound = true; 274 break; 275 } 276 } 277 else if (disallowedCookies[j] == allCookies[i]) { 278 cookieFound = true; 279 break; 280 } 281 } 282 } 283 } 284 285 if (!cookieFound) { 286 if (definedCookies.length > 0) { 287 for (var j = 0; j < definedCookies.length; j++) { 288 if (definedCookies[j].cookie.indexOf('*') === 0 && definedCookies[j].cookie.match("\\*$") == '*') { 289 if (allCookies[i].indexOf(definedCookies[j].cookie.replace(/\*/g, '')) > -1) { 290 cookieFound = true; 291 break; 292 } 293 } 294 else if (definedCookies[j].cookie.indexOf('*') === 0) { 295 if (allCookies[i].match(definedCookies[j].cookie.replace(/\*/g, '') + '$') == definedCookies[j].cookie.replace(/\*/g, '')) { 296 cookieFound = true; 297 break; 298 } 299 } 300 else if (definedCookies[j].cookie.match("\\*$") == "*") { 301 if (allCookies[i].indexOf(definedCookies[j].cookie.replace(/\*/g, '')) === 0) { 302 cookieFound = true; 303 break; 304 } 305 } 306 else if (definedCookies[j].cookie == allCookies[i]) { 307 cookieFound = true; 308 break; 309 } 310 } 311 } 312 } 313 314 if (!cookieFound) 315 if (allCookies[i].indexOf($.cookieguard.settings.cookiePrefix) === 0) 316 cookieFound = true; 317 318 if (!cookieFound) { 319 unknownCookies.push(allCookies[i]); 320 } 321 } 322 323 return unknownCookies; 324 }; 325 } 326 327 if (typeof $.cookieguard.cookies.storeAllowedCookie === 'undefined') { 328 $.cookieguard.cookies.storeAllowedCookie = function (cookie) { 329 var allowedCookies = $.cookieguard.cookies.getAllowedCookies(); 330 var allowedCookiesStr; 331 332 if (allowedCookies == null) 333 allowedCookiesStr = cookie; 334 else { 335 allowedCookiesStr = allowedCookies.join(','); 336 if ($.inArray(cookie, allowedCookies) == -1) 337 allowedCookiesStr = allowedCookiesStr + ',' + cookie; 338 } 339 340 $.cookieguard.cookies.create($.cookieguard.settings.cookiePrefix + 'allowedCookies', allowedCookiesStr, $.cookieguard.settings.cookieExpirationDays); 341 }; 342 } 343 344 if (typeof $.cookieguard.cookies.getAllowedCookies === 'undefined') { 345 $.cookieguard.cookies.getAllowedCookies = function () { 346 var allowedCookies = $.cookieguard.cookies.read($.cookieguard.settings.cookiePrefix + 'allowedCookies'); 347 348 if (allowedCookies != null) 349 return allowedCookies.split(','); 350 351 return null; 352 }; 353 } 354 355 if (typeof $.cookieguard.cookies.storeDisallowedCookie === 'undefined') { 356 $.cookieguard.cookies.storeDisallowedCookie = function (cookie) { 357 var disallowedCookies = $.cookieguard.cookies.getDisallowedCookies(); 358 var disallowedCookiesStr; 359 360 if (disallowedCookies == null) 361 disallowedCookiesStr = cookie; 362 else { 363 disallowedCookiesStr = disallowedCookies.join(','); 364 if ($.inArray(cookie, disallowedCookies) == -1) 365 disallowedCookiesStr = disallowedCookiesStr + ',' + cookie; 366 } 367 368 $.cookieguard.cookies.create($.cookieguard.settings.cookiePrefix + 'disallowedCookies', disallowedCookiesStr, $.cookieguard.settings.cookieExpirationDays); 369 }; 370 } 371 372 if (typeof $.cookieguard.cookies.getDisallowedCookies === 'undefined') { 373 $.cookieguard.cookies.getDisallowedCookies = function () { 374 var disallowedCookies = $.cookieguard.cookies.read($.cookieguard.settings.cookiePrefix + 'disallowedCookies') 375 376 if (disallowedCookies != null) 377 return disallowedCookies.split(','); 378 379 return null; 380 }; 381 } 382 383 if (typeof $.cookieguard.eradicateCookies === 'undefined') { 384 $.cookieguard.eradicateCookies = function () { 385 var cookiesToDestroy = $.cookieguard.cookies.getDisallowedCookies(); 386 var cookiesToAllow = $.cookieguard.cookies.getAllowedCookies(); 387 var allCookies = new Array(); 388 389 if (document.cookie && document.cookie != '') { 390 var split = document.cookie.split(';'); 391 for (var i = 0; i < split.length; i++) { 392 var name_value = split[i].split("="); 393 name_value[0] = name_value[0].replace(/^ /, ''); 394 allCookies.push(decodeURIComponent(name_value[0])); 395 } 396 } 397 398 for (var i = 0; i < allCookies.length; i++) { 399 var cookieFound = false; 400 401 if (allCookies[i].indexOf($.cookieguard.settings.cookiePrefix) === 0) 402 cookieFound = true; 403 404 if (!cookieFound) {
405 if (cookiesToAllow != null) { 406 for (var j = 0; j < cookiesToAllow.length; j++) { 407 if (cookiesToAllow[j].indexOf('*') === 0 && cookiesToAllow[j].match("\\*$") == '*') { 408 if (allCookies[i].indexOf(cookiesToAllow[j].replace('*', '')) > -1) { 409 cookieFound = true; 410 break; 411 } 412 } 413 else if (cookiesToAllow[j].indexOf('*') === 0) { 414 if (allCookies[i].match(cookiesToAllow[j].replace('*', '') + '$') == cookiesToAllow[j].replace('*', '')) { 415 cookieFound = true; 416 break; 417 } 418 } 419 else if (cookiesToAllow[j].match("\\*$") == "*") { 420 if (allCookies[i].indexOf(cookiesToAllow[j].replace('*', '')) === 0) { 421 cookieFound = true; 422 break; 423 } 424 } 425 else if (cookiesToAllow[j] == allCookies[i]) { 426 cookieFound = true; 427 break; 428 } 429 } 430 } 431 432 if (!cookieFound) { 433 if (cookiesToDestroy != null) { 434 for (var j = 0; j < cookiesToDestroy.length; j++) { 435 if (cookiesToDestroy[j].indexOf('*') === 0 && cookiesToDestroy[j].match("\\*$") == '*') { 436 if (allCookies[i].indexOf(cookiesToDestroy[j].replace('*', '')) > -1) { 437 $.cookieguard.cookies.erase(allCookies[i]); 438 cookieFound = true; 439 break; 440 } 441 } 442 else if (cookiesToDestroy[j].indexOf('*') === 0) { 443 if (allCookies[i].match(cookiesToDestroy[j].replace('*', '') + '$') == cookiesToDestroy[j].replace('*', '')) { 444 $.cookieguard.cookies.erase(allCookies[i]); 445 cookieFound = true; 446 break; 447 } 448 } 449 else if (cookiesToDestroy[j].match("\\*$") == "*") { 450 if (allCookies[i].indexOf(cookiesToDestroy[j].replace('*', '')) === 0) { 451 $.cookieguard.cookies.erase(allCookies[i]); 452 cookieFound = true; 453 break; 454 } 455 } 456 else if (cookiesToDestroy[j] == allCookies[i]) { 457 $.cookieguard.cookies.erase(allCookies[i]); 458 cookieFound = true; 459 break; 460 } 461 } 462 } 463 } 464 } 465 } 466 } 467 } 468 469 if (typeof $.cookieguard.run === 'undefined') { 470 $.cookieguard.run = function () { 471 setTimeout(function () { 472 var unknownCookies; 473 474 if ($.cookieguard.settings.alertOfUnknown) 475 unknownCookies = $.cookieguard.cookies.findUnknownCookies(); 476 else 477 unknownCookies = new Array(); 478 479 if (!$.cookieguard.hasAnswered()) { 480 $.cookieguard.buildMessage(true, $.cookieguard.settings.cookiesUsed, unknownCookies); 481 $.cookieguard.displayMessage($.cookieguard.settings.messageShowDelay, $.cookieguard.settings.messageHideDelay); 482 } 483 else { 484 $.cookieguard.eradicateCookies(); 485 486 if (unknownCookies.length > 0) { 487 $.cookieguard.buildMessage(false, null, unknownCookies); 488 $.cookieguard.displayMessage($.cookieguard.settings.messageShowDelay, $.cookieguard.settings.messageHideDelay); 489 } 490 } 491 }, $.cookieguard.settings.cookieDeleteDelay); 492 }; 493 } 494 495 if (typeof $.cookieguard.hasAnswered === 'undefined') { 496 $.cookieguard.hasAnswered = function () { 497 if ($.cookieguard.cookies.read($.cookieguard.settings.cookiePrefix + "initialised") != null) 498 return true; 499 else 500 return false; 501 }; 502 } 503 504 if (typeof $.cookieguard.buildMessage === 'undefined') { 505 $.cookieguard.buildMessage = function (init, knownCookies, unknownCookies) { 506 $('body').prepend('<div id="cookieGuardMsg"><div id="cookieGuardMsgInner"></div>'); 507 508 if (init) { 509 $('#cookieGuardMsgInner').append('<strong>' + $.cookieguard.settings.bannerTitle + '</strong>'); 510 if (unknownCookies.length == 0 && $.cookieguard.hasOnlyEssential()) 511 $('#cookieGuardMsgInner').addClass('onlyEssential').append($.cookieguard.settings.buttonsOk); 512 else 513 $('#cookieGuardMsgInner').append( $.cookieguard.settings.bannerDescription + $.cookieguard.settings.buttonsConfigDefault); 514 } 515 else { 516 $('#cookieGuardMsgInner').append($.cookieguard.settings.cookieNewTitle + '<br/>'); 517 $('#cookieGuardMsgInner').append($.cookieguard.settings.cookieNewDescription + $.cookieguard.settings.buttonsConfigDefault); 518 } 519
520 $.cookieguard.buildCookieList(init, knownCookies, unknownCookies); 521 522 $('#cookieGuardOkay').click(function () { 523 clearTimeout($.cookieguard.settings.messageHideTimeout); 524 $.cookieguard.hideMessage(0); 525 $.cookieguard.cookies.create($.cookieguard.settings.cookiePrefix + 'initialised', '1', $.cookieguard.settings.cookieExpirationDays); 526 return false; 527 }); 528 529 $('#showCookies').click(function () { 530 if ($(this).text() == $.cookieguard.settings.buttonShow) { 531 clearTimeout($.cookieguard.settings.messageHideTimeout); 532 $('#cookieList').show(); 533 $(this).text($.cookieguard.settings.buttonHide); 534 var h = $('#cookieList').outerHeight(); 535 $('#cookieList').css({ 'overflow': 'hidden', 'height': 0 }).animate({ 536 'height': h 537 }, $.cookieguard.settings.slideTimer); 538 } 539 else if ($(this).text() == $.cookieguard.settings.buttonHide) { 540 $(this).text($.cookieguard.settings.buttonShow); 541 $('#cookieList').animate({ 542 'height': 0 543 }, $.cookieguard.settings.slideTimer, null, function () { 544 $('#cookieList').hide().attr('style', '').removeAttr('style'); 545 }); 546 } 547 548 return false; 549 }); 550 551 $('#authoriseCookies').click(function () { 552 clearTimeout($.cookieguard.settings.messageHideTimeout); 553 $('#cookieGuardMsgInner').empty().addClass('msgAllowed').html($.cookieguard.settings.cookiesAllowed); 554 $.cookieguard.hideMessage($.cookieguard.settings.answeredHideDelay); 555 556 if (knownCookies != null) { 557 for (var i = 0; i < knownCookies.length; i++) 558 $.cookieguard.cookies.storeAllowedCookie(knownCookies[i].cookie); 559 } 560 if (unknownCookies != null) { 561 for (var i = 0; i < unknownCookies.length; i++) 562 $.cookieguard.cookies.storeAllowedCookie(unknownCookies[i]); 563 } 564 565 $.cookieguard.cookies.create($.cookieguard.settings.cookiePrefix + 'initialised', '1', $.cookieguard.settings.cookieExpirationDays); 566 return false; 567 }); 568 569 $('#denyCookies').click(function () { 570 clearTimeout($.cookieguard.settings.messageHideTimeout); 571 $('#cookieGuardMsgInner').empty().addClass('msgDenied').html($.cookieguard.settings.cookiesBlocked); 572 $.cookieguard.hideMessage($.cookieguard.settings.answeredHideDelay); 573 574 if (knownCookies != null) { 575 for (var i = 0; i < knownCookies.length; i++) 576 if (knownCookies[i].essential == false) 577 $.cookieguard.cookies.storeDisallowedCookie(knownCookies[i].cookie); 578 } 579 if (unknownCookies != null) { 580 for (var i = 0; i < unknownCookies.length; i++) 581 $.cookieguard.cookies.storeDisallowedCookie(unknownCookies[i]); 582 } 583 584 $.cookieguard.cookies.create($.cookieguard.settings.cookiePrefix + 'initialised', '1', $.cookieguard.settings.cookieExpirationDays); 585 $.cookieguard.eradicateCookies(); 586 return false; 587 }); 588 }; 589 } 590 591 if (typeof $.cookieguard.buildCookieList === 'undefined') { 592 $.cookieguard.buildCookieList = function (init, knownCookies, unknownCookies) { 593 var essentialCookies = new Array(); 594 var unessentialCookies = new Array(); 595 var knownNames = new Array(); 596 597 if (knownCookies != null) { 598 for (var i = 0; i < knownCookies.length; i++) { 599 if ($.inArray(knownCookies[i].name, knownNames) == -1) { 600 knownNames.push(knownCookies[i].name); 601 if (knownCookies[i].essential) 602 essentialCookies.push(knownCookies[i]); 603 else 604 unessentialCookies.push(knownCookies[i]); 605 } 606 } 607 } 608 609 $('#cookieGuardMsgInner').append('<div id="cookieList"/>'); 610 611 if (init) { 612 $('#cookieList').append('<div class="cookiesHeader">'+$.cookieguard.settings.cookiesEssential+ 613 '</div>'); 614 $('#cookieList').append('<ul class="essentialCookies"/>'); 615 $('#cookieList > ul.essentialCookies').append('<li><div class="cookieName">'+$.cookieguard.settings.cookieGuardName+'</div><div class="cookieDescription"> - '+$.cookieguard.settings.cookieGuardDescription+'</div></li>'); 616 for (var i = 0; i < essentialCookies.length; i++) { 617 $('#cookieList > ul.essentialCookies').append('<li><div class="cookieName">' + essentialCookies[i].name + '</div><div class="cookieDescription"> - ' + essentialCookies[i].description + '</div></li>'); 618 } 619 } 620 621 if (unessentialCookies.length > 0) { 622 $('#cookieList').append('<div class="cookiesHeader">'+$.cookieguard.settings.cookiesNonEssential+'</div>'); 623 $('#cookieList').append('<ul class="knownCookies" />'); 624 for (var i = 0; i < unessentialCookies.length; i++) { 625 $('#cookieList > ul.knownCookies').append('<li><div class="cookieName">' + unessentialCookies[i].name + '</div><div class="cookieDescription"> - ' + unessentialCookies[i].description + '</div></li>'); 626 } 627 } 628 629 if (unknownCookies != null && unknownCookies.length > 0) { 630 $('#cookieList').append('<div class="cookiesHeader">'+$.cookieguard.settings.cookiesUnknown+'</div>'); 631 $('#cookieList').append('<ul class="unknownCookies" />'); 632 for (var i = 0; i < unknownCookies.length; i++) { 633 $('#cookieList > ul.unknownCookies').append('<li><div class="cookieName">' + unknownCookies[i] + '</div></li>'); 634 } 635 } 636 }; 637 } 638 639 if (typeof $.cookieguard.displayMessage === 'undefined') { 640 $.cookieguard.displayMessage = function (showDelay, hideDelay) { 641 $.cookieguard.createCSS(); 642 643 $('#copyright').delay(showDelay).animate({ 644 'margin-bottom': $('#cookieGuardMsg').outerHeight() 645 }, $.cookieguard.settings.slideSpeed); 646 647 $('#scrollup').delay(showDelay).animate({ 648 'margin-bottom': $('#cookieGuardMsg').outerHeight() 649 }, $.cookieguard.settings.slideSpeed); 650 651 $('#cookieGuardMsg').css('bottom', -$('#cookieGuardMsg').outerHeight()); 652 $('#cookieGuardMsg').delay(showDelay).addClass('visible').show().animate({ 653 'bottom': 0 654 }, $.cookieguard.settings.slideSpeed); 655 656 if ($.cookieguard.settings.messageHideDelay != null) { 657 $.cookieguard.settings.messageHideTimeout = setTimeout(function () { 658 $.cookieguard.hideMessage(0); 659 }, hideDelay); 660 } 661 }; 662 } 663 664 if (typeof $.cookieguard.hideMessage === 'undefined') { 665 $.cookieguard.hideMessage = function (hideDelay) { 666 667 $('#copyright').delay(hideDelay).animate({ 668 'margin-bottom': 0 669 }, $.cookieguard.settings.slideSpeed); 670 671 $('#scrollup').delay(hideDelay).animate({ 672 'margin-bottom': 0 673 }, $.cookieguard.settings.slideSpeed); 674 675 $('#cookieGuardMsg').delay(hideDelay).animate({ 676 'bottom': -$('#cookieGuardMsg').height() 677 }, $.cookieguard.settings.slideSpeed, null, function () { 678 $('#cookieGuardMsg').remove(); 679 }); 680 } 681 } 682 683 if (typeof $.cookieguard.hasOnlyEssential === 'undefined') { 684 $.cookieguard.hasOnlyEssential = function () { 685 var knownCookies = $.cookieguard.settings.cookiesUsed; 686 687 for (var i = 0; i < knownCookies.length; i++) { 688 if (!knownCookies[i].essential) 689 return false; 690 } 691 return true; 692 } 693 } 694 695 if (typeof $.cookieguard.createCSS == 'undefined') { 696 $.cookieguard.createCSS = function () { 697 var style = '<style id="cookieGuardStyles" type="text/css">'; 698 style += '#cookieGuardMsg { position: fixed; text-transform:uppercase; text-align: left; bottom: 0; left: 0; width: 100%; display: none; font-size: 0.65em; color: #F2F2F2; background-origin: content-box; background: rgba(142, 142, 142, 0.90); min-height: 20px; z-index:99999; }'; 699 style += "#cookieGuardMsgInner { padding: 5px 5px 5px 30px; text-align: center; }"; 700 style += "#cookieGuardMsg a { text-decoration: none; font-style: normal; }"; 701 style += "#cookieButtons { text-align: right;}"; 702 style += "#showCookies {background: #f4f4f4; color: #5b5858; padding: 5px 10px; margin: 0 1%; -moz-border-radius: 3px; font-weight:bold}"; 703 style += "#showCookies:hover { border-color: #666; }"; 704 style += "#authoriseCookies, #cookieGuardOkay {background: #B0E4B1; color: #384c2a; padding: 5px 10px; margin: 0 1%; -moz-border-radius: 3px; font-weight:bold}"; 705 style += "#authoriseCookies:hover { border-color: #6f8f59; }"; 706 style += "#denyCookies {background: #ecc1c1; color: #384c2a; padding: 5px 10px; margin: 0 1%; -moz-border-radius: 3px; font-size: 0.80em; letter-spacing: 3px; }"; 707 style += "#denyCookies:hover { border-color: #9e6a6a;}"; 708 style += "#cookieList { display: none; padding: 10px 60px 0 0; }"; 709 style += "#cookieList ul { list-style: none; padding-left: 20px; }"; 710 style += "#cookieGuardMsg.visible { display: block; };#cookieList li { padding: 5px 0; }"; 711 style += ".cookieName { font-weight: bold; display: inline; }"; 712 style += ".cookieDescription { display: inline; }"; 713 style += ".cookiesHeader { font-weight: bold; border-bottom: 1px solid #222; color: #eee; margin-bottom: 3px; padding-top: 10px; }"; 714 style += ".cookiesHeader span { font-weight: normal; }"; 715 style += "#cookieGuardMsgInner.msgAllowed, #cookieGuardMsgInner.msgDenied, #cookieGuardMsgInner.onlyEssential { padding-top: 18px; }"; 716 style += ".essentialCookies li { border-top: 1px solid gray }"; 717 style += "#cookieList { font-size:0.7em }"; 718 style += "</style>"; 719 $('head').append(style); 720 } 721 } 722})(jQuery);
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.