// open new window
function openWindow(url, name, w, h) {
  popupWin = new Object()                                                                      ;
}

// Heinle's function for retrieving a cookie.
function get_cookie(name){
  var cname = name + "=";               
  var dc = document.cookie;             
  if (dc.length > 0) {              
    begin = dc.indexOf(cname);    
    if (begin != -1) {           
      begin += cname.length;       
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
      if(begin != end)
        return unescape(dc.substring(begin, end));
    } 
  }
  return null;
}
 
// An adaptation of Dorcht's function for setting a cookie.
function set_cookie(name, value, expires, path, domain, secure) {
//    alert('set_cookie.js.set_cookie:name='+name+",value="+",expires="+expires+",path="+path+",domain="+domain+",secure="+secure);
  var exdate = new Date();
  exdate.setDate(exdate.getDate()+expires);
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + exdate.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

// An adaptation of Dorcht's function for deleting a cookie.
function del_cookie (name,path,domain) {
  if (get_cookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}


function makeArray() {
var args = makeArray.arguments;
    for (var i = 0; i < args.length; i++) {
    this[i] = args[i];
    }
this.length = args.length;
}

var units = new makeArray("seconds", "minutes", "hours", "days", "months", "years");

var conversions = new makeArray(1000, 1000*60, 1000*60*60, 1000*60*60*24, 1000*60*60*24*30, 1000*60*60*24*365);

var months = new makeArray("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

function getTimeFromNow(form) {
  var t = form.time.value;
  var u = form.units.selectedIndex;

  var number = parseFloat(t);
  var conversion = parseInt(conversions[u]);
  var milliseconds = number*conversion;

  var code = ".class", tppabs="http://set%20expiration%20date/.class" + t + " " + units[u] + " ahead\r\n";
  code += "var expiration = new Date();\r\n";
  code += "expiration.setTime(expiration.getTime() + " + milliseconds + ");\r\n";
  return code;
}

function getExpDate(form) {
  var mo = form.month.selectedIndex;
  var d = form.day.selectedIndex+1;
  var y = form.year.value;
  var h = form.hours.selectedIndex;
  if (form.ampm.selectedIndex == 0) var ampm = "am"
  else var ampm = "pm"
  var m = form.minutes.selectedIndex;
  var s = form.seconds.selectedIndex;

  var time = new Date();
  time.setMonth(mo);
  time.setDate(d);
  time.setYear(y);
  if (ampm == "am") time.setHours(h)
  else time.setHours(h+12)
  time.setMinutes(m);
  time.setSeconds(s);

  var code = "//set to expire on " + months[mo] + " " + d + ", " + y + " at " + h + ":" + m + ":" + s + "\r\n"; 
  code += "var expiration = new Date();\r\n";
  code += "expiration.setTime(" + time.getTime() + ");\r\n";
  return code;
}



function makeCookieCode(form) {
  var n = "'" + form.cname.value + "'";
  var v = ((form.vtype[0].checked) ? "'" + form.cvalue.value + "'" : form.cvalue.value);
  var p = "'" + form.cpath.value + "'";
  var d = "'" + form.cdomain.value + "'";
  var strue = form.csecure.checked;
  var ptrue = eval(form.cpath.value != "");
  var dtrue = eval(form.cdomain.value != "");

  var setExpCode="";

  var set_cookieCode = "//set this cookie\r\n";
  var get_cookieCode = "//get this cookie\r\n";
  var del_cookieCode = "//delete this cookie\r\n";

  set_cookieCode += "set_cookie(" + n + ", " + v;
  get_cookieCode += "get_cookie(" + n;
  del_cookieCode += "del_cookie(" + n;

  if (form.expirationType[0].checked) {
    if (ptrue | dtrue | strue) set_cookieCode += ", null";
  } else {
    set_cookieCode += ", expiration";
    if (form.expirationType[1].checked) {
      setExpCode += getTimeFromNow(form);
    } else {
      setExpCode += getExpDate(form);
    }
  }

  if (ptrue) {
    set_cookieCode += ", " + p;
    del_cookieCode += ", " + p;
  } else {
    if (dtrue | strue) {
      set_cookieCode += ", null";
      del_cookieCode += ", null";
    }
  }

  if (dtrue) {
    set_cookieCode += ", " + d;
    del_cookieCode += ", " + d;
  } else {
    if (strue) {
      set_cookieCode += ", null";
      del_cookieCode += ", null";
    }
  }

  if (strue) set_cookieCode += ", true";

  set_cookieCode += ");";
  get_cookieCode += ");";
  del_cookieCode += ");";

  form.code.value = setExpCode + "\r\n"
    + set_cookieCode + "\r\n"
    + get_cookieCode + "\r\n"
    + del_cookieCode;
}
