function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

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 FixCookieDate (date) {
  var base = new Date(0);
  var skew = base.getTime(); 
  if (0 < skew)  
    date.setTime (date.getTime() - skew);
}


function SetCookie (name,thevalue,expires,path,domain,secure) {
  var value = new String(thevalue);
  var nv = name + "=" + escape(value);
  var ex = ((expires) ? ";EXPIRES=" + expires.toGMTString() : "");
  var pa = ((path) ? ";PATH=" + path : "");
  var dom = ((domain) ? ";DOMAIN=" + domain : "");
  var se = ((secure) ? ";SECURE" : "");
  var dc = nv + ex + dom + pa + se;

  document.cookie = dc;
}

function get_time_stamp() {
  var year, month,day,hour,minute,second;
  var time_stamp = "";

  var now_time = new Date();
  year = now_time.getYear() + 1900;
  month = now_time.getMonth() + 1;
  day = now_time.getDate();
  hours = now_time.getHours();
  minutes = now_time.getMinutes();
  seconds = now_time.getSeconds();

  time_stamp = year + "-" +fix_length(month) + "-" + fix_length(day) + "__" + fix_length(hours) + "-" + fix_length(minutes) + "-" + fix_length(seconds);

  return time_stamp;
}

function set_cookie(name,value) {
  var cookie_value = false;
  cookie_value = GetCookie(name);
  cookie_value = unescape(cookie_value);

  // Check if cookie contains url and timestamp with a separator, 'N1N'
  var valid_referrer = /https?:\/\/.+N1N.+$/.test(cookie_value);

  if ((! valid_referrer) && (value !=  "")) {
	var expdate = new Date();
	FixCookieDate (expdate);
	expdate.setTime(expdate.getTime() + (365*24*60*60*1000));
	var timestamp = get_time_stamp();
	value = value + "N1N" + timestamp;
	SetCookie (name, value, expdate, "/", "");
  }
}

function fix_length(str1) {
  var str = str1+ "";
  if (str.length < 2) {
	str = "0" + str;
  }
  return str;
}