function GetCookie (name) {
  var currentCookie = document.cookie; 
  var cookieName = name + "=";
  var cookieLength = currentCookie.length;
  var cookieBegin = 0;
  while (cookieBegin < cookieLength) {
    var valueBegin = cookieBegin + cookieName.length;
    if (currentCookie.substring(cookieBegin, valueBegin) == cookieName) { 
      var valueEnd = currentCookie.indexOf (";", valueBegin);
      if (valueEnd == -1) valueEnd = cookieLength;
	return unescape(currentCookie.substring(valueBegin, valueEnd));
      }
    cookieBegin = currentCookie.indexOf(" ", cookieBegin) + 1;
    if (cookieBegin == 0) break;
    }
  return null;
  }

function SetCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}


function ReadCookie(cookieName) {
  if(GetCookie(cookieName) != null) 
    return unescape(GetCookie(cookieName));
  else
    return;
  }

function DeleteCookie(name, path, domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" + 
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function encode (str) {
  var dest = "";
  var len = str.length;
  var index = 0;
  var code = null;
  for (var i = 0; i < len; i++) {
    var ch = str.charAt(i);
    if      (ch == " ") code = "%20";
    else if (ch == "%") code = "%25";
    else if (ch == ",") code = "%2C";
    else if (ch == ";") code = "%3B";
    else if (ch == "\b") code = "%08";
    else if (ch == "\t") code = "%09";
    else if (ch == "\n") code = "%0A";
    else if (ch == "\f") code = "%0C";
    else if (ch == "\r") code = "%0D";
    if (code != null) {
      dest += str.substring(index,i) + code;
      index = i + 1;
      code = null;
      }
    }
  if (index < len)
    dest += str.substring(index, len);
  return dest;
  }

function decode (str) {
  var dest = "";
  var len = str.length;
  var index = 0;
  var code = null;
  var i = 0;
  while (i < len) {
    i = str.indexOf ("%", i);
    if (i == -1)
      break;
    if (index < i)
      dest += str.substring(index, i);
    code = str.substring (i+1,i+3);
    i += 3;
    index = i;
    if (code == "20") dest += " ";
    else if (code == "25") dest += "%";
    else if (code == "2C") dest += ",";
    else if (code == "3B") dest += ";";
    else if (code == "08") dest += "\b";
    else if (code == "09") dest += "\t";
    else if (code == "0A") dest += "\n";
    else if (code == "0C") dest += "\f";
    else if (code == "0D") dest += "\r";
    else {
      i -= 2;
      index -= 3;
      }
    }        
  if (index < len)
    dest += str.substring(index, len);
  return dest;
  }
