// JavaScript Document
var elements = new Array();
var form;

var validStyle;
var invalidStyle;



/**
*
*/
function formCheck()
{
	var valid = true;
	for(var i = 0 ; i < elements.length ; i++)
	{
		valid = validateElement(elements[i]) == false ? false : valid;
	}
	
	if(valid) form.submit();
}



/**
*
*/
function formReset()
{
	for(var i = 0 ; i < elements.length ; i++)
	{
		elements[i].id.className = validStyle;
	}
}



/**
*
*/
function validateElement(element)
{
	var valid;
	type = element.id.type;
	
	if(type == "text" && !element.email) valid = validateTextInput(element) == false ? false : valid;
	else if(type == "text" && element.email) valid = validateEmailInput(element) == false ? false : valid;
	
	return valid;
}



/**
*
*/
function validateTextInput(element)
{
	var valid = element.id.value != "";
	
	if(!valid) element.id.className = invalidStyle;
	else element.id.className = validStyle;
	
	return valid;
}



/**
*
*/
function validateEmailInput(element)
{
	var at = element.id.value.indexOf("@");
	var lastDot = element.id.value.lastIndexOf(".");
	valid = element.id.value != "" && at > -1 && at < lastDot;
	
	if(!valid) element.id.className = invalidStyle;
	else element.id.className = validStyle;
	
	return valid;
}



/**
*
*/
function setStyles(valid, invalid)
{
	validStyle = valid;
	invalidStyle = invalid;
}



/**
*
*/
function formValidatorInitialize(formID, elements, validStyle, invalidStyle)
{
	form = formID;
	for(var i = 0 ; i < elements.length ; i++) addElement(elements[i]);
	setStyles(validStyle, invalidStyle);
}



/**
*
*/
function addElement(element)
{
	elements.push(element);
}



/**
*
*/
function removeElement(elementID)
{
	for(var i = 0 ; i < elements.length ; i++)
	{
		if(elements[i].id == elementID) elements.splice(i, 1);
	}
}

