function highlight(id,focusClass,blurClass)
{
	id.value='';
	id.onfocus = function () {this.className = focusClass;}
	id.onblur = function () {this.className = blurClass;}
	id.focus();
}
function jump(text1,text2,n) 
{
	if (text1.value.length >= n )
	{text2.focus();}    
}
function lenCheck(value, field, category) 
{
	// Requires at least 2 characters to be entered.
	if (value < 2)
		{
			alert('Please enter at least 2 characters in the ' + category + ' field.');
			field.value='';
			field.focus();
			return false;
		}
		// Requires at most 29 characters to be entered.
	if (value > 29)
		{
			alert('Please enter no more than 29 characters in the ' + category + ' field.');
			field.value='';
			field.focus();
			return false;
		}
	return true;
}
function concatPhone()
{
	var f = document.forms["theForm"].elements;				// Grab your form.
	var s = "";												// Initialize variable s.
	for (var i = 0; i < f.length; i++) 						// While 'i' is less than the length of all form elements...
	{
		if (f[i].getAttribute("id") == "phn") 				// If the current 'i' form element has the class name equal to "xxx"
		{
			s += "".concat(f[i].value);						// Add and set equal to the value with "" to 's'.
		}					
	}						
	document.getElementById("phone").value = s;
	//alert(document.getElementById("phone").value);			// Set concatentated string to the hidden phone input field.
}
function vladTheValidator(theForm)
{
	var A1ID = theForm.A1;							// Area of Interest
	var selectID = theForm.select;					// Degree Program
	var ageID = theForm.age;
	var zipID = theForm.zip;
	var emailID = theForm.email;
	var phone_area_codeID = theForm.textfield2;
	var phone_prefixID = theForm.textfield22;
	var phone_exchangeID = theForm.textfield23;
	
	var alphaRegxp = /^([a-zA-Z\s\-]+)$/;			// Letters, whitespace, and hyphen.
	var alphaNumRegxp = /^([0-9A-Za-z\s\-]+)$/;		// Letters, numbers, whitespace, and hyphen.
	var NumRegxp = /^([0-9]+)$/;					// Numbers only -- Any Length.
	var emailRegxp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	// Area of Interest Check
		if (A1ID.selectedIndex == '')
			{
				alert('Please select your Area of Interest.');
				highlight(A1ID,'highlightActiveFieldDD','form_dropdown-2');
				return false;
			}		
	// Degree Program Check
		if (selectID.selectedIndex == '')
			{
				alert('Please select your Degree Program.');
				highlight(selectID,'highlightActiveFieldDD','form_dropdown-2');
				return false;
			}		
	// Age Check
		var age_len = ageID.value.length;
		if (!ageID.value)
			{
				alert('You must fill in the Age Field.');
				highlight(ageID,'highlightActiveField','form_fields');
				return false;
			}
		if (NumRegxp.test(ageID.value) != true)
			{
				alert('Please enter only numbers for your Age.');
				highlight(ageID,'highlightActiveField','form_fields');
				return false;
				}
		if (age_len != 2)
			{
				alert('Please enter exactly two (2) digits for your Age.');
				highlight(ageID,'highlightActiveField','form_fields');
				return false;
			}
		if (ageID.value < 18)
			{
				alert('You must be eighteen (18) years or older to register.');
				highlight(ageID,'highlightActiveField','form_fields');
				return false;
			}
	// Zip Code Check
		var zip_len = zipID.value.length;
		var zip_1st = zipID.value.charAt(0);
		if (!zipID.value)
			{
				alert('You must fill in the Zip Code Field.');
				highlight(zipID,'highlightActiveField','form_fields');
				return false;
			}
		if (NumRegxp.test(zip_1st) != true)
			{
				if(zip_len != 6)
				{
					alert('Please enter six (6) characters for your Canadian Zip Code.');
					highlight(zipID,'highlightActiveField','form_fields');
					return false;
				}
			}
			if (NumRegxp.test(zip_1st) != false)
			{	
				if(zip_len != 5)
				{
					alert('Please enter five (5) characters for your Zip Code.');
					highlight(zipID,'highlightActiveField','form_fields');
					return false;
				}
				
			}
			/* Commented out for Canada */
			/*if (NumRegxp.test(zipID.value) != true)
					{
						alert('Please enter only numbers for your Zip Code.');
						zipID.value='';
						zipID.focus();
						return false;
					} */
	// Phone Area Code Check
		var pac_len = phone_area_codeID.value.length;
		if (!phone_area_codeID.value)
		{
				alert('You must fill in the Area Code Field.');
				highlight(phone_area_codeID,'highlightActiveField','form_fields');
				return false;
		}
		
		if (pac_len != 3)
		{
				alert('Please enter exactly three (3) digits for your Area Code.');
				highlight(phone_area_codeID,'highlightActiveField','form_fields');
				return false;
		}
		
		if (NumRegxp.test(phone_area_codeID.value) != true)
		{
				alert('Please enter only numbers for your Area Code.');
				highlight(phone_area_codeID,'highlightActiveField','form_fields');
				return false;
		}
	// Phone Prefix Check
		var pre_len = phone_prefixID.value.length;
		if (!phone_prefixID.value)
			{
				alert('You must fill in the Phone Prefix field.');
				highlight(phone_prefixID,'highlightActiveField','form_fields');
				return false;
			}
		if (pre_len != 3)
			{
				alert('Please enter exactly three (3) digits for your Phone Prefix.');
				highlight(phone_prefixID,'highlightActiveField','form_fields');
				return false;
			}
		if (NumRegxp.test(phone_prefixID.value) != true)
			{
				alert('Please enter only numbers for your Phone Prefix.');
				highlight(phone_prefixID,'highlightActiveField','form_fields');
				return false;
			}
	// Phone Exchange Check
		var ex_len = phone_exchangeID.value.length;
		if (!phone_exchangeID.value)
			{
				alert('You must fill in the Phone Exchange field.');
				highlight(phone_exchangeID,'highlightActiveField','form_fields');
				return false;
			}
		
		if (ex_len != 4)
			{
				alert('Please enter exactly four (4) digits for your Phone Exchange.');
				highlight(phone_exchangeID,'highlightActiveField','form_fields');
				return false;
			}
		
		if (NumRegxp.test(phone_exchangeID.value) != true)
			{
				alert('Please enter only numbers for your Phone Exchange.');
				highlight(phone_exchangeID,'highlightActiveField','form_fields');
				return false;
			}		
	else	// All good, son!
	{
		concatPhone();
		return true;
	}
} // End of Script