The solution is to assign the cookie value to an object rather than a variable:
displayWelcomeMessage = function(idElement)
{
var cookieName = 'username',
defaultName = "SweetAnon",
daysToExpire = 1;
/* assign username as a property of the current function */
this.username = docCookies.getItem(cookieName);
alert(docCookies.getItem(cookieName)); // NULL when cookie not set
// Check if cookie was already set (user "logged")
if (this.username != null && this.username.trim() != "")
{
displayUsername(idElement, this.username);
}
else
{
this.username = prompt("If you enter your name\nI'll try to remember you :)");
if (this.username != null && this.username.trim() != "")
{
docCookies.setItem(cookieName, this.username, daysToExpire);
displayUsername(idElement, username);
}
else
{
displayUsername(idElement, defaultName);
}
}
alert(docCookies.getItem(cookieName)); // Username or 'SweetAnon'
};
References