/*
 * util.js
 */

function setCookie(name, value, expire) {
  document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString())) + "; path=/";
}

function getCookie(name) {
  var search = name + "=";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) {
        end = document.cookie.length;
      }
      return unescape(document.cookie.substring(offset, end));
    }
  }
}

function register(product, regid) {
  var today = new Date();
  var expires = new Date();
  expires.setTime(today.getTime() + 1000*60*60*24*365);
  setCookie(product, regid, expires);
}

function sign() {
  document.write("<hr><div align=\"right\"><i>Last updated ");
  document.write(document.lastModified);
  document.write(" by Alan Sussman</i></div>");
}

function reCapitalize(user) {
  var i = 0;
  var cap = true;
  var temp = "";

  while (i < user.length) {
    if (user[i] == " ") {
      cap = true;
    } else {
      if (cap) {
        if (i != 0)
          temp += " ";
        temp += user[i].toUpperCase();
        cap = false;
      } else {
        temp += user[i].toLowerCase();
      }
    }
    ++i;
  }
  return temp;
}

/* Modified code from the WebDevelopers Journal */
function isEmail(str) {
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}


