// Set a cookie for all elements of class 'classname'.
// Prefix each cookie with 'cn_prefix'.
function setCookies(cn_prefix, classname) {
  // Get all the elements with a certain class
  var elementArr = getElementsByClassName(classname);
  var date = new Date();

  if (document.forms[0].cookit.checked == true) {
    date.setMonth(date.getMonth() + 12);
  }

  for (var i = 0; i < elementArr.length; i++) {
    document.cookie = cn_prefix + "_" + elementArr[i].name + "=" + elementArr[i].value + 
      ";expires=" + date.toGMTString() + "; path=/";
  }
}  //  END  setCookies()

// Get all the cookies with a prefix of 'cn_prefix' and match them up 
// with elements of class 'classname'.
function getCookies(cn_prefix, classname) {
  // Get all the elements with a certain class
  var elementArr = getElementsByClassName(classname);
  var result = null;
  // Loop through all the cookies
  for (var i = 0; i < document.cookie.split('; ').length; i++) {
    var crumb = document.cookie.split('; ')[i].split('=');
    // Loop through all the elements retrieved previously
    for (var j = 0; j < elementArr.length; j++) {
      if ((crumb[0] == (cn_prefix + "_" + elementArr[j].name)) && (crumb[1] != null)) {
          var elementObj = document.getElementById(elementArr[j].name);
          elementObj.value = crumb[1];
          document.forms[0].cookit.checked = true;
          break;
      }
    }
  }
}  //  END  getCookies()

function getElementsByClassName(classname) {
  var arrElements = document.getElementsByTagName("*");
  var arrReturnElements = new Array();
  classname = classname.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + classname + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++) {
    oElement = arrElements[i];      
    if(oRegExp.test(oElement.className)) { arrReturnElements.push(oElement); }   
  }
  return (arrReturnElements)
}  //  END  getElementsByClassName()

