function resetvalues() {
    toggleguid(document.getElementById("newguid"));
    document.getElementById("numfiles").value = 1;
    document.getElementById("file0numpaths").value = 1;
    document.getElementById("file1numpaths").value = 1;
    document.getElementById("numdependencies").value = 1;
}

function toggleguid(checkbox) {
  var g = document.getElementById("guid");
  if(checkbox.checked)
   g.setAttribute("disabled", true);
  else
   g.removeAttribute("disabled");
}

function addcontributor() {
  var tbl = document.getElementById("contributors");
  var tr = tbl.firstChild.cloneNode(true);
  tr.removeAttribute("style");
/*
  var input = document.createElement("input");
  input.setAttribute("type","text");
  input.setAttribute("name","contributor");
  var td = document.createElement("td");
  var tr = document.createElement("tr");
  td.appendChild(input);
  tr.appendChild(td);
*/
  tbl.appendChild(tr);
  checkbuttonenabled("remcontributor", "contributors", 1);
}

function removecontributor(btn) {
 var tbl = document.getElementById("contributors");
 tbl.removeChild(tbl.lastChild);
 checkbuttonenabled("remcontributor", "contributors", 1);
}

function checkbuttonenabled(btn, tbl, min) {
  tbl = document.getElementById(tbl);
  if(tbl.hasChildNodes()  && tbl.childNodes.length > min) {
    document.getElementById(btn).removeAttribute("disabled");
  }
  else {
    document.getElementById(btn).setAttribute("disabled", true);
  }
}

function doforallchildren(node, f, data) {
 f(node,data);
 if(node.hasChildNodes()) {
  for(var i=0; i<node.childNodes.length; i++) {
    doforallchildren(node.childNodes[i], f, data);
  }
 }
}

function replacefilezero(node, num) {
  if(node.id != null && node.id != "") {
   node.id = node.id.replace(/file0/, "file" + num);
  }
  if("name" in node && node.getAttribute("name") != null) {
   var n = node.getAttribute("name");
   node.setAttribute("name", n.replace(/file0/, "file" + num));
  }
}

function addfile() {
  var tbl = document.getElementById("tbl-files");
  var numfiles = document.getElementById("numfiles");
  numfiles.value++;
  var tr = tbl.firstChild.cloneNode(true);
  tr.removeAttribute("style");
  doforallchildren(tr, replacefilezero, numfiles.value);
  tbl.appendChild(tr);
  checkbuttonenabled("remfile", "tbl-files", 2);
}

function removefile(btn) {
  var tbl = document.getElementById("tbl-files");
  var numfiles = document.getElementById("numfiles");
  numfiles.value--;
  tbl.removeChild(tbl.lastChild);
  checkbuttonenabled("remfile", "tbl-files", 2);
}

function replacepathzero(node, num) {
  if(node.id != null && node.id != "") {
   node.id = node.id.replace(/path0/, "path" + num);
  }
  if("name" in node && node.getAttribute("name") != null) {
   var n = node.getAttribute("name");
   node.setAttribute("name", n.replace(/path0/, "path" + num));
  }
}

function addpath(btn) {
  var arr = btn.id.match(/file\d+/);
  var f = arr[0];
  var tbl = document.getElementById(f + "-paths");  
  var numpaths = document.getElementById(f + "numpaths");
  numpaths.value++;
  var tr = tbl.firstChild.cloneNode(true);
  tr.removeAttribute("style");
  doforallchildren(tr, replacepathzero, numpaths.value);
  tbl.appendChild(tr);
  checkbuttonenabled("rem-" + f, f + "-paths", 2);
}

function removepath(btn) {
  var arr = btn.id.match(/file\d+/);
  var f = arr[0];
  var tbl = document.getElementById(f + "-paths");  
  var numpaths = document.getElementById(f + "numpaths");
  numpaths.value--;
  tbl.removeChild(tbl.lastChild);
  checkbuttonenabled("rem-" + f, f + "-paths", 2);
}

function replacedepzero(node, num) {
  if(node.id != null && node.id != "") {
   node.id = node.id.replace(/dep0/, "dep" + num);
  }
  if("name" in node && node.getAttribute("name") != null) {
   var n = node.getAttribute("name");
   node.setAttribute("name", n.replace(/dep0/, "dep" + num));
  }
}

function adddependency() {
  var tbl = document.getElementById("tbl-dependencies");
  var numdeps = document.getElementById("numdependencies");
  numdeps.value++;
  var tr = tbl.firstChild.cloneNode(true);
  tr.removeAttribute("style");
  doforallchildren(tr, replacedepzero, numdeps.value);
  tbl.appendChild(tr);
  checkbuttonenabled("remdependency", "tbl-dependencies", 1);
}

function removedependency() {
  var tbl = document.getElementById("tbl-dependencies");
  var numdeps = document.getElementById("numdependencies");
  numdeps.value--;
  tbl.removeChild(tbl.lastChild);
  checkbuttonenabled("remdependency", "tbl-dependencies", 1);
}
