
function ivSetCookie(name, value, days) {
  var expires = ""; // session
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	document.cookie = name+"="+value + expires + "; path=/";
}
function ivGetCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function ivUnsetCookie(name) {
  ivSetCookie(name, '', -1);
}

function ivCookieListFind(name, value) {
  var v = ivGetCookie(name);
  if (v) {
    var t = v.split(',');
    for (var i=0; i<t.length; i++) {
      if (t[i] == value) return true;
    }
  }
  return false;
}
function ivCookieListAdd(name, value) {
  if (ivCookieListFind(name, value)) return;
  var v = ivGetCookie(name);
  var t = v ? v.split(',') : new Array();
  t.push(value);
  ivSetCookie(name, t.join(','), 0);
}
function ivCookieListDel(name, value) {
  // TODO: use splice
  if (!ivCookieListFind(name, value)) return;
  var v = ivGetCookie(name);
  if (v) {
    var t = v.split(',');
    var r = new Array();
    for (var i=0; i<t.length; i++) {
      if (t[i] == value) {
      } else {
        r.push(t[i]);
      }
    }
    ivSetCookie(name, r.join(','), 0);
  }
}
