function IsNum(vParam) {
	return (typeof vParam == "number");
}

function IsStr(vParam) {
	return (typeof vParam == "string");
}

// returns true if parameter points to a non-null object
function IsObj(vParam) {
	return (typeof vParam == "object") && (vParam != null);
}

// returns true if parameter points to a non-blank string
function IsNBStr(vParam) {
	return ((typeof vParam == "string") && (vParam != ""))
}

//-----------------------------------------------------------------------------------------------
// Allows objects to expose properties that get their value from a function. Usage:
//		function MyObj() {
//			this.dbgLevel = new DynamicProp(GetDbgLevel);
//			function GetDbgLevel() { return Request("dbg") }
//		}
//		oMyObj = new MyObj;
//		Response.Write( MyObj.dbgLevel );
//
// NB: if using boolean dynamic property, use "if(oMyObj.bHidden == true)" instead of "if(oMyObj.bHidden)"
//-----------------------------------------------------------------------------------------------
function DynamicProp(oFunc) {
	this.valueOf = oFunc;
	this.toString = oFunc;
}

// returns specified strings concatentated together if sText is non-blank string, else blank
function BlankIfBlank(sPrefix, sText, sSuffix) {
	// convert sText to string (blank string if undefined)
	sText = (typeof sText == "undefined") ? "" : sText + "";

	if(IsNBStr(sText))
		return sPrefix + sText + sSuffix;
	else
		return "";
}

