I currently have a module on http://hitechwolf.com that creates a welcome overlay upon a user's first visit, This should work by utilizing a jquery created cookie and showing the overlay based on its existence. The jquery works, the cookie is created, but for anonymous users the cookie is ignored and the overlay shows on every page. I've implemented jquery.cookie but it still completely ignores the cookie for anonymous users. I'm at the end of my rope, any help or alternatives would really be appreciated.
welcome-overlay.js
/**
* @file
* Toggles Welcome Overlay, upon first button
* clicks toggles different content, second toggles overlay
*/
(function ($, Drupal) {
Drupal.behaviors.welcomeOverlay = {
attach: function () {
var cookieName = 'firstWelcome';
cookieValue = 'returning';
cookieDays = 60;
/** Create Cookie Creation Function **/
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
var expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
/** Check for Specfic Cookie **/
function readCookie(name) {
var nameEQ = name + "=";
ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') { c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) {
return c.substring(nameEQ.length, c.length);
}
}
}
return null;
}
/** Sets value corresponding to cookie existance **/
var visited = readCookie(cookieName);
visited2 = document.cookie.search(cookieName);
/** If Non-existant Create Cookie and Show Content **/
if (visited === null || visited2 < 0) {
// $(document).ready(function () {
// Seconds Before Overlay Slides Over Content
setTimeout(function () {
overlay.slideToggle('800', 'linear', function () {
appearFirst.fadeTo('800', 1, 'linear');
});
}, 1500);
createCookie(cookieName, cookieValue, cookieDays);
}
}
}
})(jQuery, Drupal);
welcome-overlay.module
function welcome_overlay_preprocess_page(&$variables) {
/** Include the jquery.cookie plugin **/
drupal_add_library('system', 'jquery.cookie');
/** Attach jquery/css to module **/
$path = drupal_get_path('module', 'welcome_overlay');
drupal_add_css($path . '/welcome_overlay.css');
drupal_add_js($path . '/welcome_overlay.js');
}