function clearDiv(obj, initValue) {
	obj.innerHTML = initValue;
}
function clearText(obj) {
	obj.value = "";
}
function clearTextarea(obj) {
	obj.innerText = "";
}
function clearSelect(obj, doClear) {
   if (obj==null) return;
	while (doClear && obj.options.length>0) obj.removeChild(obj.options[0]);
	obj.selectedIndex = -1;
	if (obj.options.length>0) obj.selectedIndex++;
}
function clearCheck(obj) {
	obj.checked = false;
}
function clearRadio(obj) {
	obj.checked = false;
}
function clearObj( obj, param ) {
	if (!obj) return;
	if      (obj.tagName == "DIV")        clearDiv(obj, param);
	else if (obj.type    == "text")       clearText(obj);
	else if (obj.type    == "textarea")   clearTextarea(obj);
	else if (obj.type    == "select-one") clearSelect(obj, param);
	else if (obj.type    == "checkbox")   clearCheck(obj);
	else if (obj.type    == "radio")      clearRadio(obj);
	//else alert(obj.type);
}
function checkBoxToInt( obj ) {
	if (!obj) return 0;
	if (obj.type != "checkbox") return 0;
	return (obj.checked) ? 1 : 0;
}
function getObjValue( obj ) {
	if (!obj) return "";
	if (obj.length && (!obj.type || obj.type=="")) {
		var sOut = "";
		for (var i=0,iLen=obj.length,sValue; i<iLen; i++) {
			sValue = getObjValue(obj[i]);
			if (sValue!="") {
				if (sOut!="") sOut += "^";
				sOut += sValue;
			}
		}
		return sOut;
	}
	if (obj.tagName == "DIV")        return obj.innerText;
	if (obj.type    == "hidden")     return obj.value;
	if (obj.type    == "text")       return obj.value;
	if (obj.type    == "password")   return obj.value;
	if (obj.type    == "textarea")   return obj.innerText;
	if (obj.type    == "select-one") return obj.value;
	if (obj.type    == "radio")      return obj.checked ? obj.value : "";
	if (obj.type    == "checkbox")   return obj.checked ? obj.value : "";
	if (obj.type    == "file")       return obj.value;
	/*
	if (obj.type    == "select-one") {
		var iIndex = obj.selectedIndex;
		return (iIndex == -1) ? "" : obj.options[iIndex].value;
	}
	*/
   return "";
}
function getSelectText( obj ) {
	if (!obj) return "";
	if (obj.type != "select-one") return "";
	var iIndex = obj.selectedIndex;
	return (iIndex == -1) ? "" : obj.options[iIndex].text;
}
function doSelectForAction(obj, grpName) {
	if (!obj || !grpName || grpName=="") return;
	var state = obj.checked;
	var curForm = obj.form;
	if (state) for (var i=0; i<curForm.elements.length; i++) {
		var eElem = curForm.elements[i];
		if (("checkbox" == eElem.type) && (eElem.name.indexOf(grpName) == 0)) {
			if (eElem.checked) eElem.checked = false;
		}
	}
	obj.checked = state;
	obj.blur();
}

function getSelectedCheckboxes(type, oForm) {

	if (!oForm) oForm = document.forms[0];
	if (!oForm) return "";
	var sIDs = "";
	for (var i=0, oForm=document.forms[0], iLen=oForm.elements.length; i<iLen; i++) {
		var eElem = oForm.elements[i];
		if (("checkbox" == eElem.type) && (eElem.name.indexOf(type) == 0)) {
			sID = eElem.name.substring(type.length);
			if (eElem.checked && sIDs.indexOf(sID)==-1) {
				if (sIDs!="") sIDs += "^";
				sIDs += sID;
			}
		}
	}
	return sIDs;
}

function getUnselectedCheckboxes(type) {
	var sIDs = "";
	for (var i=0, oForm=document.forms[0], iLen=oForm.elements.length; i<iLen; i++) {
		var eElem = oForm.elements[i];
		if (("checkbox" == eElem.type) && (eElem.name.indexOf(type) == 0)) {
			sID = eElem.name.substring(type.length);
			if (!eElem.checked && sIDs.indexOf(sID)==-1) {
				if (sIDs!="") sIDs += "^";
				sIDs += sID;
			}
		}
	}
	return sIDs;
}

function getAllCheckboxes(type) {
	var sCheckedIDs   = getSelectedCheckboxes(type);
	var sUncheckedIDs = getUnselectedCheckboxes(type);
	//
	var sIDs = "";
	if (sCheckedIDs!="") {
		if (sIDs!="") sIDs += "^";
		sIDs += sCheckedIDs;
	}
	if (sUncheckedIDs!="") {
		if (sIDs!="") sIDs += "^";
		sIDs += sUncheckedIDs;
	}
	return sIDs;
}
function uncheckCheckboxes(type) {
	for (var i=0, oForm=document.forms[0], iLen=oForm.elements.length; i<iLen; i++) {
		var eElem = oForm.elements[i];
		if (("checkbox" == eElem.type) && (eElem.name.indexOf(type) == 0)) {
         if (eElem.checked) eElem.checked = false;
      }
   }
}
function checkCheckboxes(type) {
	for (var i=0, oForm=document.forms[0], iLen=oForm.elements.length; i<iLen; i++) {
		var eElem = oForm.elements[i];
		if (("checkbox" == eElem.type) && (eElem.name.indexOf(type) == 0)) {
         if (!eElem.checked) eElem.checked = true;
      }
   }
}

function decodeToCheckboxes(varRequest, checkBoxName) {
	var sHTML = "";
	if (varRequest && varRequest!="" && varRequest.toUpperCase().indexOf("<HTML")!=0) {
      var sRecord, sHeader, sData, sSubRecord;
		for (var i=1,iLen=getNumberOfTokens(varRequest, "\n"); i<=iLen; i++) {
			sRecord = getToken(varRequest, "\n", i);
         //
         sHeader = getToken(sRecord, "\t", 1);
         sData   = getToken(sRecord, "\t", 2);
         //
         if (sData=="" && sHeader!="") {
            sData   = sHeader;
            sHeader = "";
         }
         //
         sHTML += "<div style='width:100%'>";
         if (sHeader!="") sHTML += "<span class=required>"+sHeader+"</span><br>";
         for (var j=1,jLen=getNumberOfTokens(sData, "^"); j<=jLen; j++) {
            sSubRecord = getToken(sData, "^", j);
            if (j!=1) sHTML += "&nbsp;<wbr>";
            sHTML += "<input type=checkbox name="+checkBoxName+" value='"+getToken(sSubRecord, ",", 1)+"'>"+getToken(sSubRecord, ",", 2);
         }
         sHTML += "</div>";
      }
	}
	return sHTML;
}

