function elementHasClassName(objElement, strClass) {
  if ( objElement.className ) {
    var arrList = objElement.className.split(' ');
    var strClassUpper = strClass.toUpperCase();
    for ( var i = 0; i < arrList.length; i++ ) {
      if ( arrList[i].toUpperCase() == strClassUpper ) {
	return true;
      }
    }
  }
  
  return false;
}


function bulkCheck (container, trueorfalse) {
  if (typeof(container) == 'string') {
    container = document.getElementById(container);
  }
  
  for ( var i=0; i < container.getElementsByTagName('input').length; i++ ) { 
    box = container.getElementsByTagName('input')[i];
    if (box.type == 'checkbox') { box.checked = trueorfalse; }
  }
}

function allGroupsShow(trueorfalse, container) {
  var displayVal = (trueorfalse) ? '' : 'none';
  if (typeof(container) == "string") {
    container = document.getElementById(container);
  } else if ((typeof(container) == 'undefined') ||  (! container.getElementsByTagName)) {
    container = document
  }
  var divs =  container.getElementsByTagName('div');
  for (i = 0; i < divs.length; i++) { 
    if (divs[i].id.match(/^divforgroup/)) { 
      divs[i].style.display = displayVal; 
    } 
  }
}

function showProgramGoals(which) {
  var displayVal;
  var showTop3 = false;
  switch (which) {
  case 'all':  
    displayVal = '';
    break;
  case 'none':
    displayVal = 'none';
    break;
  case 'top3':
    showTop3 = true;
  }
  var divs =  document.getElementsByTagName('div');
  for (i = 0; i < divs.length; i++) { 
    if (divs[i].id.match(/^divforgroup/)) { 
      var rows = divs[i].getElementsByTagName('tr');
      if (showTop3) {
	var showed1 = false;
	for (var j=0; j< rows.length; j++) { 
	  var row = rows[j]; 
	  if (elementHasClassName(row, 'top3goal')) {
	    showed1 = true;
	    row.style.display = ''; 
	  } else {
	    row.style.display = 'none'; 
	  }
	}	
	if (showed1) {
	  rows[0].style.display = ''; 
	  divs[i].style.display = ''; 
	} else {
	  divs[i].style.display = 'none'; 
	}
      } else {
	divs[i].style.display = displayVal; 
	for (var j=0; j< rows.length; j++) { 
	  var row = rows[j]; 
	  row.style.display = ''; 
	}
      }
    } 
  }
}


function stripeGoalTables(matcher) {
  if (typeof(matcher) != 'string') {
    matcher = 'tableforgroup';
  }
  var re = new RegExp(matcher);
  var tables =  document.getElementsByTagName('table');
  for (i = 0; i < tables.length; i++) { 
    if (tables[i].id.match(re)) { 
      stripe(tables[i]);	
    } 
  }
}

function calculateFullyImplementedPercentage() {
  var inputs = document.getElementsByTagName('input');
  var numerator = 0;
  var denominator = 0;
  for (var i = 0; i < inputs.length; i++ ) {
    var checkbox = inputs[i];
    if (checkbox.type != 'checkbox') { continue; }
    denominator += 1;
    if (checkbox.checked) { numerator += 1; }
  }
  var percent = Math.round(100 * numerator / denominator);
  document.getElementById('fully-implemented-percentage').innerHTML = percent.toString();
}

function setWhyOrWhyNotQuestion(sentgid) {
  var gid = sentgid.toString();
  if (! /^\d+$/.test(gid)) { return; }
  var radioYes = document.getElementById('yes-metgoal' + gid);
  var questionYes = document.getElementById('p-why-question' + gid);
  var radioNo = document.getElementById('no-metgoal' + gid);
  var questionNo = document.getElementById('p-whynot-question' + gid);
		 
  if ((radioNo.checked) || (radioYes.checked)) {
    var textWhy = document.getElementById('textarea-whyorwhynot' + gid);
    textWhy.disabled = false;
    questionYes.className = '';
  }

  if (radioNo.checked) {
    questionYes.style.display = 'none';
    questionNo.style.display = '';
  } else {
    questionYes.style.display = '';
    questionNo.style.display = 'none';
  }
}
