function htmlEntityDecode(str) {
  var ta = document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function openPopup(url) {
  popupWin = window.open(url, 
    'target01_window',
    'status,scrollbars,resizable,dependent,width=500,height=600')
}

function setReload(obj) {
  var newUrl;
  newUrl = location.protocol + "//" + location.host;
  if (location.port != "") { newUrl = newURL + ":" + location.port; }
  newUrl = newUrl + location.pathname;
  if (location.hash != "") { newUrl = newURL + ":" + location.hash; }
  if (obj.value != "") { newUrl = newUrl + "?reload=" + obj.value; }
  location.replace(newUrl);
}

function pad(number, length) {
  var str = '' + number;
  while (str.length < length)
    str = '0' + str;
  return str;
}

function Comma(SS) {
    var T = "", S = String(SS), L = S.length - 1, C, j;
    for (j = 0; j <= L; j++) {
        T += (C = S.charAt(j));
        if ((j < L) && ((L - j) % 3 == 0) && (C != "-")) {
            T += ",";
        }
    }
    return T;
}

function updateGeneratorForm() {

  var myrnd = document.getElementsByName("rnd");
  if (myrnd.length != 3) { alert("Problem: myrnd.length was " + myrnd.length + ", not 3"); }
  var mydate = document.getElementById("date");
  var myid = document.getElementById("id");

  if (myrnd[0].checked) {
    mydate.disabled = true;
    myid.disabled = true;
  } else if (myrnd[1].checked) {
    mydate.disabled = false;
    myid.disabled = true;
  } else if (myrnd[2].checked) {
    mydate.disabled = true;
    myid.disabled = false;
  }
}

function submitGeneratorForm() {

  var myrnd0 = document.getElementsByName("rnd")[0];
  var myrnd1 = document.getElementsByName("rnd")[1];
  var myrnd2 = document.getElementsByName("rnd")[2];
  var mydate = document.getElementById("date");
  var myid = document.getElementById("id");

  myrnd0.value = "new";
  myrnd1.value = "date." + mydate.options[mydate.selectedIndex].value;
  myrnd2.value = "id." + myid.value;
}
