function checkToggle() {
  j = 0;
  checkall = false;
  while(document.getElementById('checkbox_' + j)) {
    if (document.getElementById('checkbox_' + j).checked == false) {
      checkall = true;
      break;
    }
    j++;
  }
  j = 0;
  while(document.getElementById('checkbox_' + j)) {
    document.getElementById('checkbox_' + j).checked = checkall;
    j++;
  }
}

/**
 *
 * @access public
 * @return void
 **/
function massOperate(url) {
  if (url == '') {
  	return;
  }
	var j = 0;
  var checkedIds = new Array();
	while(document.getElementById('checkbox_' + j)) {
    if (document.getElementById('checkbox_' + j).checked == true) {
			checkedIds.push(document.getElementById('checkbox_' + j).value);
    }
    j++;
  }
	document.location = url + '?i=' + checkedIds.join('+');
}

function moveFields(event) {
  if (!event) { event = window.event; }
  var whichKey = event.which || event.keyCode;
  var target = event.target || event.srcElement;
  var name = target.id.split('_');
  if ((whichKey == 40) && (event.ctrlKey)) {
    var nextbox = parseInt(name[1]) + 1;
    if (document.getElementById(name[0]+'_'+nextbox)) document.getElementById(name[0]+'_'+nextbox).focus();
  }
  if ((whichKey == 38) && (event.ctrlKey)) {
    var nextbox = parseInt(name[1]) - 1;
    if (document.getElementById(name[0]+'_'+nextbox)) document.getElementById(name[0]+'_'+nextbox).focus();
  }
}
function duplicateTable() {
  nodes = document.getElementsByClassName('tablemaker-dupe-node');
  var i = 0;
  while(nodes[i]) {
    nodeId = nodes[i].id;
    var j = 0;
    while(document.getElementById(nodeId + '_' + j)) {
      if (document.getElementById('checkbox_' + j).checked) {
        if ((nodes[i].tagName == 'SELECT') && (document.getElementById(nodeId).selectedIndex != 0)) {
          document.getElementById(nodeId + '_' + j).selectedIndex = document.getElementById(nodeId).selectedIndex;
        } else if ((nodes[i].tagName == 'INPUT') && (document.getElementById(nodeId).value != '')) {
          document.getElementById(nodeId + '_' + j).value = document.getElementById(nodeId).value;
        }
      }
      j++;
    }
    i++;
  }
  var i = 0;
  while(nodes[i]) {
    nodeId = nodes[i].id;
    if (nodes[i].tagName == 'SELECT') {
      document.getElementById(nodeId).selectedIndex = 0;
    } else if (nodes[i].tagName == 'INPUT') {
      document.getElementById(nodeId).value = '';
    }
    i++;
  }
}
document.onkeydown = moveFields;