/*cc:CT added CC comment to this file*/
//cc:

//cc:  Cookie Functions -- "Night of the Living Cookie" Version (25-Jul-96)

//cc:



//cc:******************************************************************

//cc:

//cc: "Internal" function to return the decoded value of a cookie

//cc:

function getCookieVal (offset) {

  var endstr = document.cookie.indexOf (";", offset);

  if (endstr == -1)

    endstr = document.cookie.length;

  return unescape(document.cookie.substring(offset, endstr));

}

//cc:

//cc:  Function to correct for 2.x Mac date bug.  Call this function to

//cc:  fix a date object prior to passing it to SetCookie.

//cc:  IMPORTANT:  This function should only be called *once* for

//cc:  any given date object!  See example at the end of this document.

//cc:

function FixCookieDate (date) {

  var base = new Date(0);

  var skew = base.getTime(); //cc: dawn of (Unix) time - should be 0

  if (skew > 0)  //cc: Except on the Mac - ahead of its time

    date.setTime (date.getTime() - skew);

}

//cc:

//cc:  Function to return the value of the cookie specified by "name".

//cc:    name - String object containing the cookie name.

//cc:    returns - String object containing the cookie value, or null if

//cc:      the cookie does not exist.

//cc:

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;

}

//cc: returns the length of a cookie, including name CT 20020328 
function GetCookieLength (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)
    {
        var endstr = document.cookie.indexOf (";", j);
        if (endstr == -1)
          endstr = document.cookie.length;
        return endstr - i;
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return 0;
}

//cc:

//cc:  Function to create or update a cookie.

//cc:    name - String object containing the cookie name.

//cc:    value - String object containing the cookie value.  May contain

//cc:      any valid string characters.

//cc:    [expires] - Date object containing the expiration data of the cookie.  If

//cc:      omitted or null, expires the cookie at the end of the current session.

//cc:    [path] - String object indicating the path for which the cookie is valid.

//cc:      If omitted or null, uses the path of the calling document.

//cc:    [domain] - String object indicating the domain for which the cookie is

//cc:      valid.  If omitted or null, uses the domain of the calling document.

//cc:    [secure] - Boolean (true/false) value indicating whether cookie transmission

//cc:      requires a secure channel (HTTPS).  

//cc:

//cc:  The first two parameters are required.  The others, if supplied, must

//cc:  be passed in the order listed above.  To omit an unused optional field,

//cc:  use null as a place holder.  For example, to call SetCookie using name,

//cc:  value and path, you would code:

//cc:

//cc:      SetCookie ("myCookieName", "myCookieValue", null, "/");

//cc:

//cc:  Note that trailing omitted parameters do not require a placeholder.

//cc:

//cc:  To set a secure cookie for path "/myPath", that expires after the

//cc:  current session, you might code:

//cc:

//cc:      SetCookie (myCookieVar, cookieValueVar, null, "/myPath", null, true);

//cc:

function SetCookie (name,value,expires,path,domain,secure) {

  var newCookie = name + "=" + escape (value) +

    ((expires) ? "; expires=" + expires.toGMTString() : "") +

    ((path) ? "; path=" + path : "") +

    ((domain) ? "; domain=" + domain : "") +

    ((secure) ? "; secure" : "");
  var newLength = (name + '=' + escape(value)).length;
  var oldLength = GetCookieLength(name);
  var chtml_urllength = GetCookieLength('chtml_url');
  var predictedmaxsize = document.cookie.length + (newLength - oldLength) + (512 - chtml_urllength);
  if (predictedmaxsize >= 4096)
    return 0;
  document.cookie = newCookie;
  /*
  name + "=" + escape (value) +

    ((expires) ? "; expires=" + expires.toGMTString() : "") +

    ((path) ? "; path=" + path : "") +

    ((domain) ? "; domain=" + domain : "") +

    ((secure) ? "; secure" : "");
  */
  return 1;
}



//cc:  Function to delete a cookie. (Sets expiration date to start of epoch)

//cc:    name -   String object containing the cookie name

//cc:    path -   String object containing the path of the cookie to delete.  This MUST

//cc:             be the same as the path used to create the cookie, or null/omitted if

//cc:             no path was specified when creating the cookie.

//cc:    domain - String object containing the domain of the cookie to delete.  This MUST

//cc:             be the same as the domain used to create the cookie, or null/omitted if

//cc:             no domain was specified when creating the cookie.

//cc:

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 initialize () {

   getCookieData();

   printForm(); 

}



function getSelectValue(selectObject) {

	return selectObject.options[selectObject.selectedIndex].value

}
