function set_checked(o_fld,s_dest,s_default) {
  var tBody = o_fld.parentNode.parentNode.parentNode;
  var ix = get_row(o_fld,true);
  var i_val = s_default;
  if (ix >= 0) {
    var o_dest = eval('document.f1.'+s_dest+'['+ix+']');
  } else {
    var o_dest = eval('document.f1.'+s_dest);
  }
  // Set Scope display
  var s_display = "block";
  if (o_fld.checked==true) {
    s_display = "none";
    i_val = o_fld.value;
  }
  o_dest.value = i_val;
  if (s_dest=='f6') {
    tBody.rows[2].style.display = s_display;
    var i_cells = tBody.rows[2].cells.length;
    for (var i=0;i<i_cells;i++) {
      tBody.rows[2].cells[i].style.display = s_display;
    }
  } // If Private flag is destination
  //alert(s_dest+' '+o_dest.value);
}

function show_scope(o_list) {
  var s_display = (parseInt(o_list.options[o_list.selectedIndex].value)>10) ? "block" : "none";
  document.getElementById("trScope").style.display = s_display;
  //document.f1.f<%= catScope_item_id %>.style.display = s_display;
  document.getElementById("tdScope").style.display = s_display;
}

function get_row(o_element, is_master) {
    var cur_row = (is_master!=true) ? o_element.parentNode.parentNode : o_element.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var tb_parent = cur_row.parentNode; //table including tfooter row
    //var ary_rows = tb_parent.getElementsByTagName('tr');
    var i_rows = tb_parent.rows.length;
    if (i_rows==1) {
      return -1;
    } else {
      //alert('not a single row!');
      for (var i=0;i<i_rows;i++) {
        if (tb_parent.rows[i]==cur_row) {
          return i;
        } // if matching row
      } // for each row
    } // if single row
  return -1;
}


 function add_section(img, s_fld) {
    var t_body = img.parentNode.parentNode.parentNode;
    //var tb_rows = t_body.getElementsByTagName("tr");
    
    //alert(t_body.rows.length);
    var cur_row = img.parentNode.parentNode;
    var i_index = get_row(img,false);
    //alert(i_index);
    var f_action = (i_index==-1) ? eval("document.f1." + s_fld + "_action") : eval("document.f1." + s_fld + "_action[" + i_index + "]");
    if (img.src.indexOf("_close")>=1) {
      // we want to delete the row
      if (f_action.value=="edit") {
        img.parentNode.className = "item-delete";
        f_action.value="delete";
        img.src = img.src.replace("_close", "_open");
      } else {
        t_body.removeChild(cur_row);
      }
    } else {
      var new_row = img.parentNode.parentNode.cloneNode(true);
      if (i_index == -1) {
        var o_fld = eval("document.f1." + s_fld)
      } else {
        var o_fld = eval("document.f1." + s_fld + "[" + i_index + "]")
      } // getIndex
      var is_list = (o_fld.type.indexOf("select") > 0);
      // we want to add a new item
      if (is_list) {
        if (o_fld.options[o_fld.selectedIndex].value!="@select@") {
          if (!check_dupe(o_fld)) {
            img.src = "/common/i/tree_close_lrg.gif";
            t_body.appendChild(new_row);
          } else {
            return false;
          } // check_dupe
        } else {
          alert("Please select a valid item.");
          return false;
        } // selectedIndex != 0
      } else {
        if (f_action.value=="delete") {
          img.src = "/common/i/tree_close_lrg.gif";
          f_action.value="edit";
          img.parentNode.className="item";
        } else {
          //alert(o_fld.value);
          if ((!check_dupe(o_fld))&&(o_fld.value+""!="")) {
            img.src = "/common/i/tree_close_lrg.gif";
            t_body.appendChild(new_row);
            //alert("document.f1." + s_field + "[" + tb_rows.length + "]");
            if (i_index>=0) {
               //alert("document.f1." + s_fld + "[" + (eval("document.f1." + s_fld).length - 1) + "]");
               eval("document.f1." + s_fld + "[" + (eval("document.f1." + s_fld).length - 1) + "]").value = "";
               eval("document.f1.ri3[" + (eval("document.f1." + s_fld).length - 1) + "]").value = "";
            } else {
               eval("document.f1." + s_fld + "[1]").value = "";
               eval("document.f1.ri3[1]").value = "";
            }
          } else {
            if (o_fld.value+""=="") { alert("You must enter a value before adding a new row!") }
          }
        }
      } // is _list
    } // if tree_close
    return true;
  } // function add item

  function check_dupe(o_fld) {
    // used to make sure we don't select multople identical values
    // alert(o_list.type);  Should use this to differentiate instead of is_list
    //if (!is_list) return false; // temporary fix for non-list entries
    var is_list = (o_fld.type.indexOf("select") > 0);
    var i_index = get_row(o_fld);
    if ((i_index >= 0)&&(is_duplicate(o_fld, i_index))) {
       alert("That item is already selected, please make a different selection.");
       if (is_list) { o_fld.selectedIndex = 0 } else { o_fld.value="" }
       return true;
    }    
    return false;
  }
  
  function is_duplicate(o_fld, i_index) {
    // check to see whether an item is already selected
    if (i_index < 0) return false;
    var s_val_new, i_ix;
    var s_fld = o_fld.name;
    var s_form = o_fld.form.name;
    var is_list = (o_fld.type.indexOf("select") > 0);
    var s_val = (is_list) ? o_fld.options[o_fld.selectedIndex].value: o_fld.value;
    for (var i=0;i<i_index;i++) { // check each list box
      s_val_new = (is_list) ? 
        eval("document." + s_form + "." + s_fld + "[" + i + "]").options[eval("document." + s_form + "." + s_fld + "[" + i + "]").selectedIndex].value : 
        eval("document." + s_form + "." + s_fld + "[" + i + "]").value;
      if (s_val == s_val_new) return true;
    } // for
    return false;
  }  
  

    function row_promote(o_img, to_top) {
      /* Quick hacks just for the poll */
      var o_row = o_img.parentNode.parentNode;
      var o_body = o_row.parentNode;
      //var o_rows = o_body.getElementsByTagName('tr');
      var i = row_index(o_body, o_row); 
      if (o_body.rows.length > 1) {
        if (to_top == true) {
          if (i > 0) {
            var o_row_old = o_body.removeChild(o_row);
            o_body.insertBefore(o_row_old,o_body.rows[0]);
          }
        } else {
          var o_row_old = o_body.removeChild(o_row);
          if (i==0) {
            o_body.appendChild(o_row_old);
          } else {
            o_body.insertBefore(o_row_old,o_body.rows[i-1]);
         } // i == first row
       } // if to top
     } // > 1
     list_renumber();
    }
    
    function row_demote(o_img, to_bottom) {
      var o_row = o_img.parentNode.parentNode;
      var o_body = o_row.parentNode;
      //var o_rows = o_body.getElementsByTagName('tr');
      var i = row_index(o_body, o_row); 
      //alert(i+' = '+o_body.rows.length);
      if (o_body.rows.length > 1) {
        if (to_bottom==true) {
          if (i<(o_body.rows.length)) {
            var o_row_old = o_body.removeChild(o_row);
            o_body.appendChild(o_row_old);
          }
        } else {
          var o_row_old = o_body.removeChild(o_row);
          if (i==(o_body.rows.length)) {
            o_body.insertBefore(o_row_old,o_body.rows[0]);
          } else {
            if (i==(o_body.rows.length-1)) {
              o_body.appendChild(o_row_old);
            } else {
              o_body.insertBefore(o_row_old,o_body.rows[i+1]);
            }
         } // i = last row
       } // if to bottom
     } // > 1
     list_renumber();
    }
    
  function list_renumber() {
    var t_body = document.getElementById("tbSect");
    //alert('renumber!');
    //var tb_rows = t_body.getElementsByTagName("tr");
    var ix=0;
    if (t_body.rows.length == 1) {
      document.f1.ri5.value=0;
    } else {
      for (var i=0;i<t_body.rows.length;i++) {
        //alert('Row '+i);
        if (document.f1.ri2_action[i].value!='delete') {
          document.f1.ri5[i].value=ix;
          //alert(document.f1.ri5[i].value);
          //tb_rows[i].getElementsByTagName("td")[1].innerHTML=ix+1;
          ix++;
        } else {
          document.f1.ri5[i].value='D';
          //tb_rows[i].getElementsByTagName("td")[1].innerHTML='*DEL*';
        } // if delete
      }
    }
  }
    
    function row_index(o_body, o_row) {
      for (var i=0;i<o_body.rows.length;i++) {
        if (o_row == o_body.rows[i]) { return i}
      }
      return -1;
    }    
