function trimString (value)
{
	testValue = new String(value);
	testValue = testValue.replace (/^ */g, "");
	testValue = testValue.replace (/ *$/g, "");
	return testValue;
}
function isEmptyString(value)
{
	value = trimString(value);
	if (value.length == 0)
		return true;
	else
		return false;
}

	/**
	 * Checks whether a string of digits is a valid credit card number according
	 * to the Luhn algorithm.
	 *
	 * 1. Starting with the second to last digit and moving left, double the
	 *    value of all the alternating digits. For any digits that thus become
	 *    10 or more, add their digits together. For example, 1111 becomes 2121,
	 *    while 8763 becomes 7733 (from (1+6)7(1+2)3).
	 *
	 * 2. Add all these digits together. For example, 1111 becomes 2121, then
	 *    2+1+2+1 is 6; while 8763 becomes 7733, then 7+7+3+3 is 20.
	 *
	 * 3. If the total ends in 0 (put another way, if the total modulus 10 is
	 *    0), then the number is valid according to the Luhn formula, else it is
	 *    not valid. So, 1111 is not valid (as shown above, it comes out to 6),
	 *    while 8763 is valid (as shown above, it comes out to 20).
	 *
	 * @param number the credit card number to validate.
	 * @return true if the number is valid, false otherwise.
	 */

function isValidLuhn( number ) 
{ 
		sum = 0;
		n = 0;
		alternate = false;
		for (i = number.length - 1; i >= 0; i--) {
			n = parseInt (number.charAt(i));
			if (alternate) {
				n *= 2;
				if (n > 9) {
					n = (n % 10) + 1;
				}
			}
			sum += n;
			alternate = !alternate;
		}

		return (sum % 10 == 0);
	 
}