// Copyright 2006.  All rights reserved.  Jason Stevens.  http://www.jstevens.net.

function stripText(phoneText)
{
	var retval = phoneText;
	for (var i = 0; i < retval.length; i++)
	{
		if (retval.substr(i, 1) > 0)
		{
			//do nothing
		}
		else
		{
			if (retval.substr(i,1) == "0")
			{
				//do nothing
			}
			else
			{
				retval = retval.substr(0, i) + retval.substr(i + 1);
				i--;
			}
		}
	}
	return retval;
}

function internalPrettyPhone(StandPhoneNumber)
{
	var s = StandPhoneNumber;
	if (s == 0)
		return "none";
	if (s.length < 15)
		return "invalid number";

	var s1 = s.substr(0, s.length - 8);
	var s2 = s.substr(s.length - 8);
	if (s2 > 0)
	{
		//extension
		var retval;
		retval = "(" + s.substr(0, 3) + ") " + s.substr(3, 3) + "-" + s.substr(6, 4) + " x";

		var j = s2.substr(0,1) - '0';
		for (var i = 1; i <= 7; i++)
		{
			j +=1;
			if (j > 7)
			{
				retval += s2.substr(i,1);
			}
		}
		return retval;
	}
	else
	{
		//no extension
		if (s1 > 9999999)
			return "(" + s.substr(0,3) + ") " + s.substr(3,3) + "-" + s.substr(6,4);
		if (s1 > 999999)
			return "(???) "+ s.substr(0,3) + "-" + s.substr(3,4);

		return "invalid number";
	}
}

function jPrettyPhone(phoneText)
{
	//check for NULL phone number
	if (phoneText.length == 0)
		return phoneText;
	if (phoneText == "9999999999x99")
		return "S.T-:L N";

	//check for obvious issues
	var retval = stripText(phoneText);
	if (retval.length != 10)
	{
		if ((retval.length < 10) || (retval.length > 17))
		{
			alert('The phone number you just provided is invalid.  Phone numbers consist of an area code, prefix, and line number and may optionally contain an extension number.  Examples of valid phone numbers: 208-777-7777, (208) 777-7777, 2087777777, 208 777-7777 x100, 2087777777ext100, 2087777777100');
			return retval;
		}
		if (retval.length == 11)
			if (retval.substr(0, 1) == '1')
				alert('There may be a problem with the phone number you just provided.  Please check the phone number to see if the system has interpreted it correctly.  Note that phone numbers consist of an area code, prefix, and line number and may optionally contain an extension number.  Examples of valid phone numbers: 208-777-7777, (208) 777-7777, 2087777777, 208 777-7777 x100, 2087777777ext100, 2087777777100');
	}

	
	//get standPhone
	if (retval.length == 10)
	{
		retval = retval + "00000000";
	}
	else
	{
		var rretval = retval.substr(0, 10) + (retval.length - 10);
		for (var i = retval.length - 10; i <=6; i++)
		{
			rretval = rretval + "0";
		}
		rretval = rretval + retval.substr(10);
		retval = rretval;
	}

	//prettyPhone
	retval = internalPrettyPhone(retval);
	if (retval.substr(0,3) == "inv")
		alert('The phone number you just provided is invalid.  Phone numbers consist of an area code, prefix, and line number and may optionally contain an extension number.  Examples of valid phone numbers: 208-777-7777, (208) 777-7777, 2087777777, 208 777-7777 x100, 2087777777ext100, 2087777777100');

	return retval;
}

function jPrettySSN(SSNText)
{
	if (SSNText.length == 0)
		return SSNText;

	var retval = stripText(SSNText);
	if (retval.length > 9)
	{
		alert('The SSN you just provided is invalid.  SSNs contain 9 numbers (XXX-XX-XXXX)');
		return SSNText;
	}
	if (retval < 1000000)
	{
		alert('The SSN you just provided is invalid.  SSNs contain 9 numbers (XXX-XX-XXXX)');
		return SSNText;
	}


	while (retval.length < 9)
	{
		retval = "0" + retval;
	}

	return retval.substr(0,3) + "-" + retval.substr(3,2) + "-" + retval.substr(5,4);
}

function jPrettyEIN(EINText)
{
	if (EINText.length == 0)
		return EINText;

	var retval = stripText(EINText);
	if (retval.length > 9)
	{
		alert('The EIN you just provided is invalid.  EINs contain 9 numbers (XX-XXXXXXX)');
		return EINText;
	}
	if (retval < 10000000)
	{
		alert('The EIN you just provided is invalid.  EINs contain 9 numbers (XX-XXXXXXX)');
		return EINText;
	}


	while (retval.length < 9)
	{
		retval = "0" + retval;
	}

	return retval.substr(0,2) + "-" + retval.substr(2);
}

function jPrettySID(SIDText)
{
	if (SIDText.length == 0)
		return SIDText;

	var retval = stripText(SIDText);
	if (retval.length > 8)
	{
		alert('The student ID you just provided is invalid.  Student IDs contain 8 numbers (XXX-XXXXX)');
		return SIDText;
	}
	if (retval < 100000)
	{
		alert('The student ID you just provided is invalid.  Student IDs contain 8 numbers (XXX-XXXXX)');
		return SIDText;
	}


	while (retval.length < 8)
	{
		retval = "0" + retval;
	}

	return retval.substr(0,3) + "-" + retval.substr(3);
}