var vForm;
var inputs;
var inputVal;
var inputAlert;

function validateEmail(email)
{
	apos=email.indexOf("@")
	dotpos=email.lastIndexOf(".")
	if (apos<1||dotpos-apos<2)
		return false;
	else
		return true;
}

function checkInput(e)
{
	if (!e) var e = window.event;
	if (e.target) var tg = e.target;
	else if (e.srcElement) var tg = e.srcElement;
	validateInput(tg);
}

function validateInput(curElement)
{
	if(curElement) var tg = curElement;
		
	var valid;
	inputVal = tg.value;
	inputAlert = document.getElementById(tg.getAttribute('id')+"_alert");
	
	if (tg.getAttribute('id').indexOf('req_email')==0)
	{	// do email validation
		valid = validateEmail(inputVal)?true:false;
		alertText = "This email is not valid.";
	}
	else if (tg.getAttribute('id').indexOf('req_confirm_email')==0)
	{	// confirm emails match
		var firstEmail = document.getElementById('req_email').value;
		valid = (inputVal==firstEmail || !validateEmail(firstEmail))?true:false;
		alertText = "Emails do not match.";
	}
	else
	{	// any other required field
		valid = (inputVal.length>0)?true:false;
		alertText = "This field is required.";
	}
		
	if(inputAlert)
		inputAlert.innerHTML = valid?"":alertText;
	//tg.style.border = valid?"":"1px solid grey";
	tg.style.background = (valid)?"#ffffff":"#ffff99";
	return valid;
}

function validateForm() {
	for(var i=0;i<inputs.length;i++)
	{
		var inputId = inputs[i].getAttribute('id');
		if (inputId && inputId.indexOf('req_')==0)
		{	// this input is required, validate
			var valid = validateInput(inputs[i]);
			if(!valid) return false;
		}
	}
	return true;
}
	
function listener()
{
	vForm = document.forms[0];
	inputs = vForm.elements;
	
	// event listeners for inputs, only apply to inputs with id = "req_%"
	for(var i=0;i<inputs.length;i++)
	{
		var inputId = inputs[i].getAttribute('id');
		if (inputId && inputId.indexOf('req_')==0)
		{	// this input is required, set blur listener
			inputs[i].onblur = checkInput;
			if (inputs[i].captureEvents) inputs[i].captureEvents(Event.BLUR);
		}
	}
	
	vForm.onsubmit = function() {
		if(!validateForm())
		{
			alert('One or more fields are not valid');
			return false;
		}
	};
	if (vForm.captureEvents) vForm.captureEvents(Event.SUBMIT);
}
