/* Last Modified: 07/17/2000 05:30pm - mft */
/* Last Modified: 01/05/2000 10:30am - mft */
/* Last Modified: 12/13/1999 05:00pm - mft */

/* ============================================================= */

//Purpose: Check if a string is all alpha-numeric
//Input: vstrTest: Any string
//Output: false if not alpha-numeric, true if it is alpha-numeric

function isAlphaNum(vstrTest) {
	var i;
	var blnValid = true;
	
	var strValidCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
	}

/* // OLD METHOD
	for (i = 0; i < vstrTest.length; i++) {
		if (!(((vstrTest.charAt(i) >= "a") && (vstrTest.charAt(i) <= "z")) || ((vstrTest.charAt(i) >= "A") && (vstrTest.charAt(i) <= "Z")) || ((vstrTest.charAt(i) >= 0) && (vstrTest.charAt(i) <= 9))))
			{ blnValid = false; }
	}
*/

	return blnValid;
}

/* ============================================================= */

//Purpose: Check if a string is all alphabet characters
//Input: vstrTest: Any string
//Output: false if not alpha-characters, true if it is alpha-characters

function isAlpha(vstrTest) {
	var i;
	var blnValid = true;

	var strValidCharacters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
	}

/* // OLD METHOD
	for (i = 0; i < vstrTest.length; i++) {
		if (!(((vstrTest.charAt(i) >= "a") && (vstrTest.charAt(i) <= "z")) || ((vstrTest.charAt(i) >= "A") && (vstrTest.charAt(i) <= "Z"))))
			{ blnValid = false; }
	}
*/

	return blnValid;
}

/* ============================================================= */

//Purpose: Check if a string is all digits
//Input: vstrTest: Any string
//Output: false if not digits, true if it is digits

function isInteger(vstrTest) {
	var i;
	var blnValid = true;
	var strValidCharacters = '0123456789';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
	}

/* // OLD METHOD
	for (i = 0; i < vstrTest.length; i++) {
		if (!((vstrTest.charAt(i) >= '0') && (vstrTest.charAt(i) <= '9')))
			{ blnValid = false; }
	}
*/

	return blnValid;
}

/* ============================================================= */

//Purpose: Check if a string is all digits
//Input: vstrTest: Any string
//Output: false if not digits, true if it is digits

function isAnyInteger(vstrTest) {
	var i;
	var blnValid = true;
	var blnIsNegative = false;

	if (vstrTest.charAt(0) == '-') {
		vstrTest = vstrTest.substring(1,vstrTest.length);
		blnIsNegative = true;
	}

	var strValidCharacters = '0123456789';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
	}

	return blnValid;
}

/* ============================================================= */

//Purpose: Check if a string is all digits (and possibly a decimal point)
//Input: vstrTest: Any string
//Output: false if not a number, true if it is a number

function isNumber(vstrTest) {
	var i;
	var blnValid = true;
	var intNumDecimals = 0;

	var strValidCharacters = '0123456789.';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
		if (vstrTest.charAt(i) == '.')
			{ intNumDecimals++; }
	}

	if (intNumDecimals > 1)
		{ blnValid = false; }

/* // OLD METHOD
	for (i = 0; i < vstrTest.length; i++) {
		if (!(((vstrTest.charAt(i) >= '0') && (vstrTest.charAt(i) <= '9')) || (vstrTest.charAt(i) == '.')))
			{ blnValid = false; }
		if (vstrTest.charAt(i) == '.')
			{ intNumDecimals++; }
	}

	if (intNumDecimals > 1)
		{ blnValid = false; }
*/

	return blnValid;
}

/* ============================================================= */

//Purpose: Check if a string is all digits (and possibly a decimal point)
//Input: vstrTest: Any string
//Output: false if not a number, true if it is a number

function isAnyNumber(vstrTest) {
	var i;
	var blnValid = true;
	var intNumDecimals = 0;
	var blnIsNegative = false;

	if (vstrTest.charAt(0) == '-') {
		vstrTest = vstrTest.substring(1,vstrTest.length);
		blnIsNegative = true;
	}

	var strValidCharacters = '0123456789.';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1)
			{ blnValid = false; }
		if (vstrTest.charAt(i) == '.')
			{ intNumDecimals++; }
	}

	if (intNumDecimals > 1)
		{ blnValid = false; }

	return blnValid;
}

/* ============================================================= */

//Purpose: Force a string to only digits
//Input: robjField: Object where value is located
//Output: none

//function ForceNumeric(robjField) {
//	if (isNumber(robjField.value)) {
//		//alert(robjField.value);
//	} else {
//		robjField.value = robjField.value.substring(0,robjField.value.length-1);
//	}
//}

function ForceNumeric() {
	if (window.event.keyCode - 48 < 0 || window.event.keyCode - 48 > 9) {
		return false;
	} else {
		return true;
	}
}

/* ============================================================= */

//Purpose: Force a string to only digits
//Input: robjField: Object where value is located
//Output: none

function ForceInteger(robjField) {
	if (isInteger(robjField.value)) {
//		alert(robjField.value);
	} else {
		robjField.value = robjField.value.substring(0,robjField.value.length-1);
	}
}

/* ============================================================= */

//Purpose: strip all commas from numeric fields
//Input: robjForm: Object where fields are located
//Output: none

function doStripCommas(robjForm) {
	for (var intLoopValidate = 0; intLoopValidate < robjForm.length; intLoopValidate++) {
		var strType = robjForm[intLoopValidate].name.substring(robjForm[intLoopValidate].name.length-4,robjForm[intLoopValidate].name.length);
		if ((strType == "_num") && (robjForm[intLoopValidate].value.length > 0)) {
			robjForm[intLoopValidate].value = doRemoveCommas(robjForm[intLoopValidate].value);
		}
	}
}

/* ============================================================= */

//Purpose: strip all commas from the given string
//Input: vstrTest: the current number that needs commas removed
//Output: the string with commas removed

function doRemoveCommas(vstrTest) {
	var blnIsNegative = false;
	if (vstrTest - 0 < 0) { blnIsNegative = true; }
	var strTempValue = '';

	var strValidCharacters = '0123456789.';
	for (var i=0; i<vstrTest.length; i++) {
		if (strValidCharacters.indexOf(vstrTest.substring(i,i+1)) == -1) {
			strTempValue += vstrTest.charAt(i);
		}
	}

/* // OLD METHOD
	for (var i = 0; i < vstrTest.length; i++) {
		if (((vstrTest.charAt(i) >= '0') && (vstrTest.charAt(i) <= '9')) || (vstrTest.charAt(i) == '.')) {
			strTempValue += vstrTest.charAt(i);
		}
	}
*/

	if (blnIsNegative) {
	//	alert('it is negative');
		return '-' + strTempValue;
	} else {
		return strTempValue;
	}
}

/* ============================================================= */

//Purpose: insert proper commas into numeric fields
//Input: vstrTest: the current number that needs commas
//Output: the string with commas added properly

function doInsertCommas(vstrTest) {
	var blnIsNegative = false;
	if (vstrTest - 0 < 0) { blnIsNegative = true; }
	var strNumber = '';
	if (vstrTest != '') {
		var intDigitCount = vstrTest.indexOf('.');
		if (intDigitCount == -1) {
			intDigitCount = vstrTest.length;
		}
		var blnBeforeDecimal = true;
		for (var i = 0; i < vstrTest.length; i++) {
			if (vstrTest.charAt(i) == '.') {
				blnBeforeDecimal = false;
			}
			if (((vstrTest.charAt(i) >= '0') && (vstrTest.charAt(i) <= '9')) || (vstrTest.charAt(i) == '.')) {
				if (blnBeforeDecimal == true) {
					strNumber += vstrTest.charAt(i);
					if ((((intDigitCount - i) - 1)%3 == 0) && (intDigitCount != i + 1)) {
						strNumber += ',';
					}
				} else {
					strNumber += vstrTest.charAt(i);
				}
			}
		}
	}
	if (blnIsNegative) {
	//	alert('it is negative');
		return '-' + strNumber;
	} else {
		return strNumber;
	}
}

/* ============================================================= */

