
// "Internal" function to return the decoded value of a cookie
function getCookieVal (offset)
{
    var endstr = document.cookie.indexOf (";", offset);
    if(endstr == -1)
        endstr = document.cookie.length;
      return unescape(document.cookie.substring(offset, endstr));
}


//  Function to return the value of the cookie specified by "name".
//    name - String object containing the cookie name.
//    returns - String object containing the cookie value, or null if
//      the cookie does not exist.
function GetCookie(name)
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while(i < clen)
    {
        var j = i + alen;
        if(document.cookie.substring(i, j) == arg)
            return getCookieVal (j);

        i = document.cookie.indexOf(" ",i) + 1;
        if(i == 0) break; 
    }
      return null;
}

function setCookie(name,value)
{
    var expires = new Date();
    expires.setFullYear(expires.getFullYear() + 2);
    var path = "/";
    var cookieStr = name +"="
        + escape(value)
        + "; expires=" + expires.toGMTString()
        + "; path=" + path;
        document.cookie = cookieStr;
    }

//  Function to delete a cookie. (Sets expiration date to current date/time)
//    name - String object containing the cookie name
function DeleteCookie (name)
{
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);  // This cookie is history
    var cval = GetCookie (name);
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}