function cloneNode( nodeTitle, cloneNodeUrl )
{
  var newname = prompt("Cloning node '"+nodeTitle+"'\nEnter a new name:", "");

  if(newname)
  {
    var url = cloneNodeUrl;
    
    url = url.replace(/NEWNAME/, newname);
    url = url.replace(/ /g, "%20");
    parent.location = url;
  }
}
function confirmDelete(nodeTitle,deleteURL)
{
  if(confirm("Delete '"+nodeTitle+"'?"))
      parent.location = deleteURL;
}
function findFormObject(name, doc)
{
  if(!doc) doc = document;
  var flen = doc.forms.length;
  for(var i = 0; i < flen; i++)
  {
    var f = doc.forms[i];
    var ilen = f.elements.length;
    for(var j = 0; j < ilen; j++)
    {
      var o = f.elements[j];
      if(o.name == name)
        return o;
    }
  }

  alert("Could not find form object '" + name + "'!");
  return null;
}

function moveSelectItem(name, op)
{
  var group = findFormObject(name);
  if(!group) return;
  var sel = group.selectedIndex;
  if((sel < 0) || (sel >= group.length)) return;
  var tmp;

  if(op)
  {
    if(group.length < 2 || (sel+op < 0) || (sel+op >= group.length)) return;
    var tmpval = group.options[sel+op].value;
    var tmptext = group.options[sel+op].text;

    group.options[sel+op].value = group.options[sel].value;
    group.options[sel+op].text = group.options[sel].text;
    group.options[sel+op].selected = 1;

    group.options[sel].value = tmpval;
    group.options[sel].text = tmptext;
    group.options[sel].selected = 0;

    group.selectedIndex = sel+op;
  }
  else if(op == 0)
  {
    if(len < 1) return;
    var len = group.length;
    for(var i = sel; i < len-1; i++)
    {
      group.options[i].value = group.options[i+1].value;
      group.options[i].text = group.options[i+1].text;
    }
    group.options[len-1] = null;
  }
  maintainValues(name);
}

function maintainValues(name)
{
  var group = findFormObject(name);
  if(!group) return;

  var valname = name + '_values';
  var values = findFormObject(valname);
  if(!values) return;
  var grouplist = "";

  for(var i = 0; i < group.length; i++)
  {
    if(grouplist != "") grouplist += ",";
    grouplist += group.options[i].value;
  } 

  values.value = grouplist;
}
function selectItem(srcname, destname, add)
{
  var src;
  var dest;
  if(add == null) add = 1;

  if(add)
  {
    src = findFormObject(srcname);
    dest = findFormObject(destname);
  }
  else
  {
    src = findFormObject(destname);
    dest = findFormObject(srcname);
  }

  if(!src || !dest) return;
  var sel = src.selectedIndex;
  if(sel < 0 || sel >= src.length) return;

  var opt = new Option(src.options[sel].text, src.options[sel].value);
  var len = src.length;
  for(var i = sel; i < len-1; i++)
  {
    src.options[i].value = src.options[i+1].value;
    src.options[i].text = src.options[i+1].text;
  }

  src.selectedIndex = src.selectedIndex - 1;
  if(src.selectedIndex < 0) src.selectedIndex = 0;
  src.options[len-1] = null;

  var ins = dest.length;
  dest.options[ins] = opt;
  dest.selectedIndex = ins;

  maintainValues(destname);
}

