//form check
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var whitespace = " \t\n\r";
var decimalPointDelimiter = ".";
var phoneNumberDelimiters = "()- ";
var validUSPhoneChars = digits + phoneNumberDelimiters;
var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";
var digitsInUSPhoneNumber = 10;
var ZIPCodeDelimiters = "-";
var ZIPCodeDelimeter = "-"
var validZIPCodeChars = digits + ZIPCodeDelimiters;
var digitsInZIPCode1 = 5;
var digitsInZIPCode2 = 9;
var creditCardDelimiters = " ";
var defaultEmptyOK = false;

function isEmpty(s)					{ return ((s == null) || (s.length == 0))};
function isWhitespace (s)			{ var i; if (isEmpty(s)) return true; for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (whitespace.indexOf(c) == -1) return false; } return true; };
function stripCharsInBag (s, bag)	{ var i; var returnString = ""; for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (bag.indexOf(c) == -1) returnString += c; } return returnString; };
function stripCharsNotInBag(s, bag) { var i; var returnString = ""; for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (bag.indexOf(c) != -1) returnString += c; } return returnString; };
function stripWhitespace (s)		{ return stripCharsInBag (s, whitespace)};
function isLetter (c)				{ return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )};
function isDigit (c)				{ return ((c >= "0") && (c <= "9"))};
function isLetterOrDigit (c)		{ return (isLetter(c) || isDigit(c))};
function isInteger (s)				{ var i; if (isEmpty(s)) if (isInteger.arguments.length == 1) return defaultEmptyOK; else return (isInteger.arguments[1] == true); for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (!isDigit(c)) return false; } return true; };
function isSignedInteger (s)		{ if (isEmpty(s))  if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;        else return (isSignedInteger.arguments[1] == true);     else {         var startPos = 0;         var secondArg = defaultEmptyOK;         if (isSignedInteger.arguments.length > 1)             secondArg = isSignedInteger.arguments[1];         if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )            startPos = 1;            return (isInteger(s.substring(startPos, s.length), secondArg))  } };
function isPositiveInteger (s)		{ var secondArg = defaultEmptyOK; if (isPositiveInteger.arguments.length > 1) secondArg = isPositiveInteger.arguments[1]; return (isSignedInteger(s, secondArg) && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) ); };
function isFloat (s)				{ var i; var seenDecimalPoint = false; if (isEmpty(s)) if (isFloat.arguments.length == 1) return defaultEmptyOK; else return (isFloat.arguments[1] == true); if (s == decimalPointDelimiter) return false; for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if ( ((c == decimalPointDelimiter) || (c == ",")) && !seenDecimalPoint) seenDecimalPoint = true; else if(!isDigit(c)) return false; else seenDecimalPoint=false; } return true; };
function isAlphabetic (s)			{ var i; if (isEmpty(s)) if (isAlphabetic.arguments.length == 1) return defaultEmptyOK; else return (isAlphabetic.arguments[1] == true); for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (!isLetter(c)) return false; } return true; };
function isAlphanumeric (s)			{ var i; if (isEmpty(s)) if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK; else return (isAlphanumeric.arguments[1] == true); for (i = 0; i < s.length; i++) {   var c = s.charAt(i); if (! (isLetter(c) || isDigit(c) ) ) return false; } return true; };
function isUSPhoneNumber (s)		{ if (isEmpty(s)) if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK; else return (isUSPhoneNumber.arguments[1] == true); return (isInteger(s) && s.length == digitsInUSPhoneNumber) };
function isInternationalPhoneNumber(s)	{ if (isEmpty(s)) if (isInternationalPhoneNumber.arguments.length == 1) return defaultEmptyOK; else return (isInternationalPhoneNumber.arguments[1] == true); return (isPositiveInteger(s)) };
function isZIPCode (s)				{ if (isEmpty(s)) if (isZIPCode.arguments.length == 1) return defaultEmptyOK; else return (isZIPCode.arguments[1] == true); return (isInteger(s) && ((s.length == digitsInZIPCode1) || (s.length == digitsInZIPCode2))) };
function isCanadaCode(s)			{ var str = s; re = /(\w\d\w\s*\d\w\d)/i; found = str.match(re); return(found); };
function isEmail (s)				{ if (isEmpty(s)) if (isEmail.arguments.length == 1) return defaultEmptyOK; else return (isEmail.arguments[1] == true); if (isWhitespace(s)) return false; var i = 1; var sLength = s.length; while ((i < sLength) && (s.charAt(i) != "@")) { i++ } if ((i >= sLength) || (s.charAt(i) != "@")) return false; else i += 2; while ((i < sLength) && (s.charAt(i) != ".")) { i++ } if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false; else return true; };
function isCreditCard(st)			{ if (st.length > 19) return (false); sum = 0; mul = 1; l = st.length; for (i = 0; i < l; i++) { digit = st.substring(l-i-1,l-i); tproduct = parseInt(digit ,10)*mul; if (tproduct >= 10) sum += (tproduct % 10) + 1; else sum += tproduct; if (mul == 1) mul++; else mul--; } if ((sum % 10) == 0) return (true); else return (false); };
function isVisa(cc)					{ if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4)) return isCreditCard(cc); return false; };
function isMasterCard(cc)			{ var firstdig = cc.substring(0,1); var seconddig = cc.substring(1,2); if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5))) return isCreditCard(cc); return false; };
function isAmericanExpress(cc)		{ var firstdig = cc.substring(0,1); var seconddig = cc.substring(1,2); if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7))) return isCreditCard(cc); return false; };
function jumpNext(obj,n,objnext)	{ if(obj.value.length == n) { $(objnext).focus(); } };

function CommaFormatted(amount)
{
	if (typeof(amount) != 'string'){amount = String(amount);}
	var delimiter = ","; 
	if (amount.indexOf('.') <0)	{amount += ".00";}
	var a = amount.split('.',2);
	var d = a[1];
	if (d.length == 1){ d += "0";};
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = "$" + minus + amount;
	return amount;
};
