// JavaScript Document

function validate(valid,input)
{
	if(!valid)
	{
		markIncorrect(input)
		return false;
	}
	markCorrect(input);
	return true;
}

function validateText(input)
{
	return validate((input.value.length > 0),input);
}
function validateTextByName(input)
{
	input = document.forms[0].elements[input];
	validateText(input);
}

function validateTextOption(input,option,requiredValue)
{
	selected = null;
	o = input.form.elements[option];
	for(i=0; i<o.length; i++)
	{
		if(o[i].checked == true)
		selected = o[i].value;
	}
	if(selected != null)
		if(selected == requiredValue && input.value.length == 0)
		{
			markIncorrect(input);
			return false;
		}
		else
		{
			markCorrect(input);
			return true;
		}
	else
	{
		markRadioInvalid(o[0]);
		return false;
	}
}

function validateRadioOption(input,option,requiredValue)
{
	selected = null;
	o=input.form.elements[input.name];
	op = input.form.elements[option]
	for(i=0; i<o.length; i++)
	{
		if(o[i].checked == true)
		selected = o[i].value;
	}
	if(selected != null)
		if(selected == requiredValue && op.value.length == 0)
		{
			markIncorrect(op);
			return false
		}
		else
			markCorrect(op);
	else
	{
		markRadioInvalid(input);	
		return false;
	}
	markRadioValid(input);
	return true;
}

function validateRadio(input)
{
	selected = null;
	o=input.form.elements[input.name];
	for(i=0; i<o.length; i++)
	{
		if(o[i].checked == true)
		selected = o[i].value;
	}
	if(selected == null)
	{
		markRadioInvalid(input);
		return false
	}
	markRadioValid(input);
	return true;
}

function markRadioInvalid(input)
{
	container = input.parentNode.parentNode;
	markIncorrect(container);
}

function markRadioValid(input)
{
	container = input.parentNode.parentNode;
	markCorrect(container);
}

function validateZip(input)
{
	zipRegExp = /(^\d{5}$)|(^\D{1}\d{1}\D{1}\s\d{1}\D{1}\d{1}$)/;
	return validate(zipRegExp.test(input.value),input);
}

function validateEmail(input)
{
	emailRegExp = /(^.+@[^\.].*\.[a-z]{2,}$)/;
	return validate(emailRegExp.test(input.value),input);
}

function validatePlus4(input)
{
	plus4RegExp = /(^\d{4}$)/;
	return validate((plus4RegExp.test(input.value) || input.value.length == 0),input);
}

function validatePhoneRequired(input)
{
	phoneRegex = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/
	return validate(phoneRegex.test(input.value),input);
}

function validatePhone(input)
{
	phoneRegex = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/
	return validate((phoneRegex.test(input.value) || input.value.length == 0),input);
}

function markIncorrect(input)
{
	input.style.borderColor = 'red';
	input.style.borderStyle = 'solid';
	input.style.borderWidth = '2px';
}

function markCorrect(input)
{
	input.style.borderStyle = '';
	input.style.borderColor = '';
	input.style.borderWidth = '';
}

function validatePage(button)
{
	page = button.form;
	validPage = true;
	for(z =0; z<page.elements.length; z++)
	{
		el = page.elements[z];
		if(el.onblur != null)
		{
			if(el.onblur() != true)
			{
				if(el.onblur() != false)
					alert(el.name);
				validPage = false;
			}
		}
	}
	return validPage;

}