<!--

// ####### STRING FUNCTIONS #######

	function StringClean(strString, strPattern) {
		var myRegExp = new RegExp("[" + strPattern + "]", "g");
		return strString.replace(myRegExp, "");
	}
	
	function StringSpace(sIn, numChunkSize) {
		var arrTemp = sIn.split(""), i, lim = arrTemp.length - 1;
		for (i=numChunkSize-1; i < lim; i+=numChunkSize) { arrTemp[i] += " "; }
		return arrTemp.join("");
	}
	
	function StringDupe(sIn, i) {
		var sOut = ""; for (i; i > 0; i--) { sOut += sIn; }
		return sOut;
	}
	
	function StringTrim(sIn) {
		if (/^\s/.test(sIn)) { sIn = sIn.replace(/^\s{1,}/, ""); }
		if (/\s$/.test(sIn)) { sIn = sIn.replace(/\s{1,}$/, ""); }
		return strIn;
	}

// ####### NUMERIC FUNCTIONS #######
	
	function RoundFloat(n, nAccuracy) {
		return Math.round(n * Math.pow(10, nAccuracy)) / Math.pow(10, nAccuracy);
	}

	// Very simple function, no error-checking. Expects strings in this format: "1234 5/6"
	function FracToDec(n) {
		if (/ /.test(n)) { n = n.replace(/ /, "+"); }
		return eval(n);
	}

// ####### BASE CONVERSION FUNCTIONS #######

	function HexWordToCharCode(strHexWord) {
		return (HexByteToDecValue(strHexWord.charAt(0)) * 16) + HexByteToDecValue(strHexWord.charAt(1));
	}
	
	function HexByteToDecValue(strHexByte) {
		if (!isNaN(strHexByte)) { return Number(strHexByte) }
		return strHexByte.charCodeAt(0) - 55;
	}
	
	function CharCodeToBinary(varCharCode) {
		var i, numChar = Number(varCharCode), strOut = "";
		for (i=7; i >= 0; i--) { strOut += (numChar & Math.pow(2, i)) ? "1" : "0"; }
		return strOut;
	}
	
	function BinaryToCharCode(strBinary) {
		var i, numTemp = 0;
		for (i=0; i < 8; i++) { if (strBinary.charAt(i) == "1") { numTemp += Math.pow(2, 7-i); } }
		return numTemp;
	}
	
	function CharCodeToHexWord(numCharCode) {
		return DecToHexByte(Math.floor(numCharCode / 16)) + DecToHexByte(numCharCode % 16);
	}
	
	function DecToHexByte(numDecValue) {
		return (numDecValue >= 10) ? String.fromCharCode(numDecValue + 55) : String(numDecValue);
	}

// -->
