function nothing(){}
function $() {
  var results = [], element;
  for (var i = 0; i < arguments.length; i++) {
    element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    results.push(element);
  }
  return results.length < 2 ? results[0] : results;
}
function fix(str) {
	return str.replace(/[\~\!\@\#\$%\^\&\*\(\)\-\+\{\}\|\:\"\<\>\?\`\=\[\]\\\;\'\,\.\/ ]/g,'_');
}
function checkforother(obj, placeholdername, currentvalue) {
	var i=0, el;
	if(currentvalue==null) currentvalue='';
	while(el=obj.getElementsByTagName('option').item(i++)) {
		if(obj.value==el.value&&el.innerHTML=='Other') {
			$(placeholdername).innerHTML = '<input type="text" name="'+placeholdername+'Other" id="'+placeholdername+'Other" value="'+currentvalue+'" />';
			break;
		}
		else $(placeholdername).innerHTML = '';
	}
}
function myDateFormat(date,blank) {
	if(blank==null) blank='';
	if(date != null && date != '' && date.getFullYear && date.getFullYear() > 1900)
		return (date.getMonth()+1)+'/'+date.getDate()+'/'+date.getFullYear();
	else return blank;
}
function myTimeFormat(time,blank) {
	if(blank==null) blank='';
	if(time != null && time != '' && time.getHours) {
		return ((time.getHours()%12==0)?12:time.getHours()%12)+':'+
				(time.getMinutes()<10?'0'+time.getMinutes():time.getMinutes())+' '+
				(time.getHours()<12?'AM':'PM');
	}
	else return '&nbsp;'
}
function ListAppend(list, value, delimiter) {
	var newlist;
	if(list==null) return null;
	if(delimiter==null) delimiter = ',';
	if(value==null) newlist = list;
	else {
		if(list=='') newlist = value;
		else newlist = list+delimiter+value;
	}
	return newlist;
}
function ListPrepend(list, value, delimiter) {
	var newlist;
	if(list==null) return null;
	if(delimiter==null) delimiter = ',';
	if(value==null) newlist = list;
	else {
		if(list=='') newlist = value;
		else newlist = value+delimiter+list;
	}
	return newlist;
}
function ListContains(list, value, delimiter) {
	if(list==null || value==null) return false;
	if(delimiter == null) delimiter = ',';
	list = list.split(delimiter);
	for(i=0;i<list.length;++i) {
		if(list[i]==value) return true;
	}
	return false;
}
function ListDelete(list, value, delimiter) {
	var newlist='';
	if(list==null) return null;
	if(delimiter==null) delimiter = ',';
	list = list.split(delimiter);
	for(i=0;i<list.length;++i) {
		if(list[i]!=value) {
			if(newlist!='') newlist+=delimiter;
			newlist+=list[i];
		}
	}
	return newlist;
}
function ListCrop(list, fromstart, fromend, delimiter) {
	var newlist='';
	if(list==null) return null;
	if(delimiter==null) delimiter = ',';
	list = list.split(delimiter);
	for(i=fromstart;i<list.length-fromend;++i) {
		if(i==fromstart) newlist=list[i];
		else newlist+=delimiter+list[i];
	}
	return newlist;
}
function ListGetAt(list, position, delimiter)
{
	if(list==null) return null;
	if(delimiter==null) delimiter = ',';
	list = list.split(delimiter);
	if(list.length > position)
		return list[position];
	else
		return 'undefined';
}
function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function