// for getting objects
function getStyleObject(objectId) {
  if (document.getElementById && document.getElementById(objectId)) {
    return document.getElementById(objectId).style;
  } else if (document.all && document.all(objectId)) {
    return document.all(objectId).style;
  } else {
    return false;
  }
}

// for hiding/displaying objects
function changeDisplay(the_div,the_change) {
  var the_style = getStyleObject(the_div);
  if (the_style != false)
  {
    the_style.display = the_change;
  }
}

// for previewing comments
function formPreview(the_form) {

  var com = the_form.parentNode;
  var comment_input = the_form.comment_input.value;
  var crlf = /\n/g;
  var comment_lines = comment_input.split(crlf);
  var name_input = the_form.name_input.value;

  // create comment node with comment input
  var newComment = document.createElement('p');
  var flag = 0;
  for (var i = 0, len = comment_lines.length; i < len; ++i) {
    if (flag) {
      var br = document.createElement('br');
      newComment.appendChild(br);
    }
    flag = 1;
    var line_node = document.createTextNode(comment_lines[i]);
    newComment.appendChild(line_node);
  }

  // create name node with name input
  var newName = document.createElement('p');
  newName.setAttribute('class', 'aside');
  var name_input_node = document.createTextNode('-- ' + name_input);
  newName.appendChild(name_input_node);

  if (com.childNodes[1].getAttribute('class') != 'alert') {
    // create "This is a preview." notice
    var prevNotice = document.createElement('p');
    prevNotice.setAttribute('class', 'alert');
    var notice_node = document.createTextNode('This is a preview.  When your comment looks just right, press the Submit button to submit it.');
    prevNotice.appendChild(notice_node);
    
    // create <p>&nbsp;</p> node
    var pSpace = document.createElement('p');
    var space_node = document.createTextNode('\u00a0');
    pSpace.appendChild(space_node);

    // insert them into the parent mode above the form
    com.replaceChild(prevNotice, com.childNodes[1]);
    com.insertBefore(newComment, the_form);
    com.insertBefore(newName, the_form);
    com.insertBefore(pSpace, the_form);
  } else {
    // replace comment and name nodes
    com.replaceChild(newComment, com.childNodes[3]);
    com.replaceChild(newName, com.childNodes[4]);
  }
}
