// This next little bit of code tests whether the user accepts cookies.
var acceptsCookies = false;
if(document.cookie == '') 
  {
  document.cookie = 'acceptsCookies=yes'; // Try to set a cookie.
  if(document.cookie.indexOf('acceptsCookies=yes') != -1) 
    {
  	acceptsCookies = true; 
    }
  } 
else 
  { 
  acceptsCookies = true;
  }


function setCookie (name, value, hours, path, domain, secure) 
  {
  if (acceptsCookies) 
    {
    path = "/";
    var not_NN2 = (navigator && navigator.appName && 
                   (navigator.appName == 'Netscape') && 
                   navigator.appVersion && 
                   (parseInt(navigator.appVersion) == 2)) ?    false:true;

    if(hours && not_NN2) 
      { 
      if ( (typeof(hours) == 'string') && Date.parse(hours) ) 
        var numHours = hours;
      else if (typeof(hours) == 'number') 
        var numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();
      }
  	document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set the cookie, adding any parameters that were specified.
    }
  }


function getCookie(name) 
  {
  if(document.cookie == '') 
  	return false; 
  else 
    { 
    var firstChar, lastChar;
    var theBigCookie = document.cookie;
    firstChar = theBigCookie.indexOf(name);
    var NN2Hack = firstChar + name.length;
    if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) 
      {
      firstChar += name.length + 1;
      lastChar = theBigCookie.indexOf(';', firstChar);
      if(lastChar == -1) 
        lastChar = theBigCookie.length;
      return unescape(theBigCookie.substring(firstChar, lastChar));
      } 
    else 
      return false;
    }	
  }

function deleteCookie(name, path, domain) 
  {
  var theValue = getCookie(name);
  if(theValue) 
    document.cookie = name + '=' + theValue + '; expires=Fri, 13-Apr-1970 00:00:00 GMT' + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:''); // set an already-expired cookie
  }

function addTracking(cookieName, cookieObject)
  {
  var tracked = getCookie(cookieName);
  var trackedParts = new Array();

  // if a cookie exists, remove the last tracked item and slide the new one onto
  // the front
  if (tracked)
    {
    deleteCookie(cookieName);
    trackedParts = eval(tracked);
    trackedParts.pop();
    trackedParts.unshift(cookieObject);
    }
  else 
    {
    trackedParts.push(cookieObject);
    }

  setCookie(cookieName, trackedParts.toJSONString(), 48);
  }
