Guest User

Portent, Inc. UK Cookie Law Solution: cookieConsent.js

a guest
Jun 21st, 2012
1,197
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Script by Portent, an internet marketing agency. www.portent.com
  3. */
  4.  
  5. // change this variable to match your domain
  6. var sitesubdomain = "www";
  7. var sitedomain = "example-domain.com";
  8.  
  9. function cookieConsent(sGeobytesInternet,sGeobytesMapReference) {
  10.     if (! Get_Cookie( 'cookieConsent' ) == true ) {
  11.         if (typeof(sGeobytesInternet) == "undefined") {
  12.            // Something has gone wrong with the variables, so set them to some default value,
  13.            // maybe set a error flag to check for later on.
  14.            var sGeobytesInternet = "unknown";
  15.         }
  16.         if (typeof(sGeobytesMapReference) == "undefined") {
  17.             var sGeobytesMapReference = "unknown";
  18.         }
  19.         sGeobytesMapReference = sGeobytesMapReference.replace(/^ */g, '').replace(/ *$/g, '');
  20.         if (sGeobytesMapReference == "Europe") {
  21.             if (confirm("We need your consent to set browser cookies we use on this site. Press 'OK' to give your consent. For more information, please read our privacy policy.")) {
  22.                 // parameters for Set_Cookie: name, value, expires, path, domain, secure
  23.                 Set_Cookie( 'cookieConsent', true, '90', '/', sitedomain, '' );
  24.             } else {
  25.                 // parameters for Delete_Cookie: name, path, domain
  26.                 Delete_Cookie('cookieConsent', '/', sitedomain);
  27.                 window.location = "http://" + sitesubdomain + "." + sitedomain + "/cookie-consent.htm";
  28.             }
  29.         }
  30.     } else if ( Get_Cookie( 'cookieConsent') == false ) {
  31.         Delete_Cookie('cookieConsent', '/', sitedomain);
  32.         window.location = "http://" + sitesubdomain + "." + sitedomain + "/cookie-consent.htm";
  33.     }
  34. }
  35.  
  36. function acceptCookies() {
  37.     // parameters for Set_Cookie: name, value, expires, path, domain, secure
  38.     Set_Cookie( 'cookieConsent', true, '90', '/', sitedomain, '' );
  39.     alert("You have consented to allowing cookies. Click 'OK' to continue to the homepage.");
  40.     window.location = "http://" + sitesubdomain + "." + sitedomain + "/";
  41. }
  42.  
  43. function denyCookies() {
  44.     // parameters for Delete_Cookie: name, path, domain
  45.     Delete_Cookie('cookieConsent', '/', sitedomain);
  46.     alert("You have choosen to NOT consent to allowing cookies.");
  47.     window.location = "http://" + sitesubdomain + "." + sitedomain + "/cookie-consent.htm";
  48. }
  49.  
  50. function Set_Cookie( name, value, expires, path, domain, secure ) {
  51.     // set time, it's in milliseconds
  52.     var today = new Date();
  53.     today.setTime( today.getTime() );
  54.  
  55.     /*
  56.     if the expires variable is set, make the correct
  57.     expires time, the current script below will set
  58.     it for x number of days, to make it for hours,
  59.     delete * 24, for minutes, delete * 60 * 24
  60.     */
  61.     if ( expires )  {
  62.         expires = expires * 1000 * 60 * 60 * 24;
  63.     }
  64.     var expires_date = new Date( today.getTime() + (expires) );
  65.  
  66.     document.cookie = name + "=" +escape( value ) +
  67.     ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
  68.     ( ( path ) ? ";path=" + path : "" ) +
  69.     ( ( domain ) ? ";domain=" + domain : "" ) +
  70.     ( ( secure ) ? ";secure" : "" );
  71. }
  72.  
  73. function Get_Cookie( check_name ) {
  74.     // first we'll split this cookie up into name/value pairs
  75.     // note: document.cookie only returns name=value, not the other components
  76.     var a_all_cookies = document.cookie.split( ';' );
  77.     var a_temp_cookie = '';
  78.     var cookie_name = '';
  79.     var cookie_value = '';
  80.     var b_cookie_found = false; // set boolean t/f default f
  81.  
  82.     for ( i = 0; i < a_all_cookies.length; i++ ) {
  83.         // now we'll split apart each name=value pair
  84.         a_temp_cookie = a_all_cookies[i].split( '=' );
  85.  
  86.         // and trim left/right whitespace while we're at it
  87.         cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
  88.  
  89.         // if the extracted name matches passed check_name
  90.         if ( cookie_name == check_name ) {
  91.             b_cookie_found = true;
  92.             // we need to handle case where cookie has no value but exists (no = sign, that is):
  93.             if ( a_temp_cookie.length > 1 ) {
  94.                 cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
  95.             }
  96.             // note that in cases where cookie is initialized but no value, null is returned
  97.             return cookie_value;
  98.             break;
  99.         }
  100.         a_temp_cookie = null;
  101.         cookie_name = '';
  102.     }
  103.     if ( !b_cookie_found )  {
  104.         return null;
  105.     }
  106. }
  107.  
  108. // this deletes the cookie when called
  109. function Delete_Cookie( name, path, domain ) {
  110. if ( Get_Cookie( name ) ) document.cookie = name + "=" +
  111. ( ( path ) ? ";path=" + path : "") +
  112. ( ( domain ) ? ";domain=" + domain : "" ) +
  113. ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
  114. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×