
/******************************************************************************
This JS file contains functions that format and verify input fields for:
						Social Security Numbers,
						Telephone Numbers,
						Zip Numbers

Use this reference in the <INPUT> tag:
						onKeyPress="formatSSN(this)"
						onChange="checkSSN(this)" (optional -- can use variation in form_check_class.js)
						onKeyPress="formatPhoneNumber(this)"
						onKeyPress="formatZip(this)"

******************************************************************************/


	var g_strSSN = '';		//Globally defined SSN
	var g_strPhone = '';	//Globally defined phone number
	var g_strZip = ''; //Globally defined zip number

	function formatSSN(object)	{
		var str = object.value;
		var len = str.length;

		if(len < 1)
			return;

		if(len > 10)	{
			object.value = g_strSSN;
			return;
		}

		str = getNumber(object.value);
		g_strSSN = '';
		var x = 0;

		while(x < len)	{
			y = g_strSSN.length;

			if((y == 3) || (y == 6))	{
				g_strSSN += '-';
			} else {
				var z = str.charCodeAt(x);

				if ((z > 47) && (z < 58))	{
					g_strSSN += str.charAt(x);
				}

				x += 1;
			}
		}

		object.value = g_strSSN;
	}

	function checkSSN(object)	{
		var strSSN = object.value;
		var errFlag = false;
		var isNum = true;
		var errMsg = '';

		if(strSSN.length > 11)	{
			errFlag = true;
			errMsg += "     Too many characters\n";
		}

		if(strSSN.length < 11)	{
			errFlag = true;
			errMsg += "     Not enough characters\n";
		}

		for(x = 0; x < strSSN.length; x++)	{
			var goodChar = false;

			if(x == 3 && strSSN.charAt(x) == '-')
				goodChar = true;
			if(x == 6 && strSSN.charAt(x) == '-')
				goodChar = true;

			if(isNaN(parseInt(strSSN.charAt(x))))	{
				if(!goodChar)	{
					errFlag = true;
					isNum = false;
				}
			}
		}
		
		if(!isNum)
			errMsg += "     Characters must be numeric and contain two dashes\n";

		if(errFlag)
			alert("There are errors with the Social Social Security number:\n\n" + errMsg);
		
		return errFlag;
	}


	function formatPhoneNumber(object)	{
		var str = object.value;
		var len = str.length;

		if(len < 1)
			return;

		if(len > 13)	{
			object.value = g_strPhone;
			return;
		}

		str = getNumber(object.value);
		g_strPhone = '(';
		var x = 0;

		while(x < len)	{
			y = g_strPhone.length;
			
			if(y == 4)	{
				g_strPhone += ') ';
			} else if(y == 9)	{
				g_strPhone += '-';
			} else {
				var z = str.charCodeAt(x);

				if ((z > 47) && (z < 58))	{
					g_strPhone += str.charAt(x);
				}

				x += 1;
			}
		}

		object.value = g_strPhone;
	}

	function formatZip(object)	{
		var str = object.value;
		var len = str.length;

		if(len < 1)
			return;

		if(len > 9)	{
			object.value = g_strZip;
			return;
		}

		str = getNumber(object.value);
		g_strZip = '';
		var x = 0;

		while(x < len)	{
			y = g_strZip.length;

			if((y == 5))	{
				g_strZip += '-';
			} else {
				var z = str.charCodeAt(x);

				if ((z > 47) && (z < 58))	{
					g_strZip += str.charAt(x);
				}

				x += 1;
			}
		}

		object.value = g_strZip;
	}


	function getNumber(str)	{
		var x = str.length;
		var str2 = "";

		for(y=0; y < x; y++)	{
			var z = str.charCodeAt(y);

			if ((z > 47) && (z < 58))
				str2 += str.charAt(y);
		}
		return str2;
	}


