/*** Client side validation of phone search field ***/



// Validate as phone number is typed

// Usage: input type="text" onkeypress="return validate1(event);"

function validate1(e) {

	var keynum;

	if(window.event) { // IE

		keynum = e.keyCode;

	} else if(e.which) { // Netscape/Firefox/Opera

		keynum = e.which;

	}

	if (e.ctrlKey || keynum == null || keynum < 32) {

		return true;

	}

	var validchars = /[0-9\(\)\.\+\-]/ ;

	var keychar = String.fromCharCode(keynum);

	return validchars.test(keychar);

}



// Validate on form submit (button onclick or form onsubmit)

// Usage: input type="image" ... onclick="return validate2(this.form);"

// Usage: form ... onsubmit="return validate2(this);"

// the Input type="text" id="phonenumber" is assumed to be in the form

function validate2(form) {

	var text = form['search_input'].value;

	var digits = '';

	for (var i = 0; i < text.length; i++) {

		if (/[0-9]/.test(text.substr(i, 1))) {

			digits += text.substr(i, 1);

		}

	}

	if (digits.substr(0,1) == '1') {

		digits = digits.substr(1);

	}

	if (digits.length < 10) {

		alert('Please enter a valid phone number, including area code.');

		return false;

	}	

	if (digits.length > 10) {

		alert('Please enter a valid phone number, including area code.');

		return false;

	};

	form['phonenumber'].value = digits;

	return true;

}

function validate3() {

	
	var digits = document.getElementById('phone1').value+document.getElementById('phone2').value+document.getElementById('phone3').value;


	if (digits.length < 10) {

		alert('Please enter a valid phone number, including area code.');
		
		if (document.getElementById('phone1').value.length<3)
		{
			document.f.phone1.focus();
		}else 
			if (document.getElementById('phone2').value.length<3)
			{
				document.f.phone2.focus();
			}else
			{
				document.f.phone3.focus();
			}

		return false;

	}	

	if (digits.length > 10) {

		alert('Please enter a valid phone number, including area code.');

		return false;

	};

	//document.getElementById('phonenumber').value = digits;
	document.getElementById('search_input').value = digits;
	
	document.getElementById('phonesearch').submit();

	return true;

}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
/*function autoTabNumOnly(input,len, e)
{
	
	
}*/

function init ()
{
	if ((document.getElementById('phone1').value.length==3)&&(document.getElementById('phone2').value.length==3))
	{
		document.f.phone3.focus();
	}else
	{
		if(document.getElementById('phone1').value.length==3)
		{
			document.f.phone2.focus();
		}else
		{
			document.f.phone1.focus();
		}
	}
	
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
		
	return true;
}	

function autoTab(input,len, e) 
{
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) 
	{
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}

	function containsElement(arr, ele) 
	{
		var found = false, index = 0;
		while(!found && index < arr.length)
			if(arr[index] == ele)
				found = true;
			else
				index++;
		return found;
	}

	function getIndex(input) 
	{
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1)
			if (input.form[i] == input) index = i;
			else i++;
		return index;
	}
	return true;
}
