function northAmericanPhone(baseName)
{
	if (!document.getElementById)
		return;
	getFormElement(baseName).style.visibility = 'hidden';
	getFormElement(baseName+'1').style.visibility = 'visible';
	getFormElement(baseName+'2').style.visibility = 'visible';
	getFormElement(baseName+'3').style.visibility = 'visible';
	getFormElement(baseName+'ext').style.visibility = 'visible';
	getFormElement(baseName+'x').style.visibility = 'visible';
}

function internationalPhone(baseName)
{
	if (!document.getElementById)
		return;
	getFormElement(baseName).style.visibility = 'visible';
	getFormElement(baseName+'1').style.visibility = 'hidden';
	getFormElement(baseName+'2').style.visibility = 'hidden';
	getFormElement(baseName+'3').style.visibility = 'hidden';
	getFormElement(baseName+'ext').style.visibility = 'hidden';
	getFormElement(baseName+'x').style.visibility = 'hidden';
}

function splitPhone(baseName)
{
	if (!document.getElementById)
		return;
	whole = getFormElement(baseName).value;
	getFormElement(baseName+'1').value = whole.substring(0,3);
	getFormElement(baseName+'2').value = whole.substring(3,6);
	getFormElement(baseName+'3').value = whole.substring(6,10);
	getFormElement(baseName+'x').value = whole.substring(11);
}

function unsplitPhone(baseName)
{
	if (!document.getElementById)
		return;
	whole = getFormElement(baseName+'1').value +
		getFormElement(baseName+'2').value +
		getFormElement(baseName+'3').value;
	ext = getFormElement(baseName+'x').value;
	if (ext.length > 0)
		whole += ('x' + ext);
	getFormElement(baseName).value = whole;
}

function fixupPhone(baseName)
{
	removeBlanks(baseName);
	if (!document.getElementById)
		return;
	removeBlanks(baseName+'1');
	removeBlanks(baseName+'2');
	removeBlanks(baseName+'3');
	removeBlanks(baseName+'x');
}

function validInternationalPhone(baseName)
{
	return true;
}

function validNorthAmericanPhone(baseName)
{
	if (!document.getElementById)
		return validInternationalPhone(baseName);

	areaCode = getFormElement(baseName+'1').value;
	officeCode = getFormElement(baseName+'2').value;
	stationNum = getFormElement(baseName+'3').value;
	extension = getFormElement(baseName+'x').value;
	if (isBlank(areaCode) && isBlank(officeCode) && isBlank(stationNum) && isBlank(extension))
		return true;
	if (!allDigits(areaCode,3))
		getFormElement(baseName+'1').select();
	else if (!allDigits(officeCode,3))
		getFormElement(baseName+'2').select();
	else if (!allDigits(stationNum,4))
		getFormElement(baseName+'3').select();
	else if (isNaN(extension))
	{
		getFormElement(baseName+'x').select();
		alert('extension must contain only digits');
		return false;
	}
	else
		return true;
	alert('phone number must have format ###-###-####');
	return false;
}

function writePhoneFields(label, baseName, required)
{
	document.write("<tr><td class='field-label'>");
	if (required)
		document.write("<span class='required'>*</span>");
	document.write(label);
	document.write("</td>");

	if (document.getElementById)
	{
		document.write("<td style='position:relative'>");
		document.write("<input id='"+baseName+"' name='"+baseName+"' size='20' style='position:absolute'>");
		document.write("<input id='"+baseName+"1' name='"+baseName+"1' size='3' style='position:relative'>");
		document.write(" <input id='"+baseName+"2' name='"+baseName+"2' size='3'>");
		document.write(" <input id='"+baseName+"3' name='"+baseName+"3' size='4'>");
		document.write(" <span id='"+baseName+"ext' name='"+baseName+"ext'>ext</span>");
		document.write(" <input id='"+baseName+"x' name='"+baseName+"x' size='4'>");
	}
	else
	{
		document.write("<td>");
		document.write("<input id='"+baseName+"' name='"+baseName+"' size='20'>");
	}
	document.write("</td></tr>");
}
