function getReferrer() {
  var skipReferrer = false; // sometimes we want to skip the referrer, because onClick="document.location=" links create an empty referrer
  var allCookies = getCookies();
  for (var i in allCookies) {
    if (i == "referrerCookie") {
      if (allCookies["referrerCookie"].skipReferrer != undefined) {
        skipReferrer = true;
      }
      break;
    }
  }
  var theReferrer = "";
  var thisPageReferrer = document.referrer;
//alert("skip: "+skipReferrer);
  if ((/publicdashboards.com/i.test(thisPageReferrer)) || (skipReferrer)) {
    // previous page was visualcalc OR was told to skip logging the referrer.  so read from cookie
    for (var i in allCookies) {
      if (i == "referrerCookie") {
        theReferrer = allCookies["referrerCookie"].url;

        if (skipReferrer) {
          // clear the skip referrer tag
          var referrerCookie = new Object();
          referrerCookie.url = theReferrer;
//alert("do not override: "+referrerCookie.url);
          writeCookie("referrerCookie", referrerCookie);
        }

        break;
      }
    }
  } else {
    // previous page was not visualcalc. so remember
    theReferrer = thisPageReferrer;
    if (theReferrer == "") {
      //theReferrer = "N/A"; // in case you'd rather have a different value for empty
    }
    var referrerCookie = new Object();
    referrerCookie.url = theReferrer;
//alert("Override: "+referrerCookie.url);
    writeCookie("referrerCookie", referrerCookie);
  }
  return theReferrer;
}

function getReferrer_noOverRide() {
  var skipReferrer = false; // sometimes we want to skip the referrer, because onClick="document.location=" links create an empty referrer
  var allCookies = getCookies();
  for (var i in allCookies) {
    if (i == "referrerCookie") {
      if (allCookies["referrerCookie"].skipReferrer != undefined) {
        skipReferrer = true;
      }
      break;
    }
  }
  var theReferrer = "";
  var thisPageReferrer = document.referrer;

  for (var i in allCookies) {
    if (i == "referrerCookie") {
      theReferrer = allCookies["referrerCookie"].url;
      break;
    }
  }
  return theReferrer;
}

function skipReferrer() {
  // sometimes we want to skip the referrer, because onClick="document.location=" links create an empty referrer
  var theReferrer = getReferrer_noOverRide();
  var referrerCookie = new Object();
  referrerCookie.url = theReferrer;
  referrerCookie.skipReferrer = true;
  writeCookie("referrerCookie", referrerCookie);
}

