var elems = new Array();
var turingStr = "";

function addElement (elem, valType)
{
	var object = new Array(elem, valType);
	elems.push(object);
}

function addElement(elem, valType, str)
{
	var object = new Array(elem, valType);
	elems.push(object);
	turingStr = str;
}

function validateForm(frm)
{
	var valForm = frm;
	var result = new Array();
	for (var i = 0; i < elems.length; i++)
	{
		if (elems[i][1] == "email")
			result[i] = checkEmail(i);

		if (elems[i][1] == "text")
			result[i] = checkText(i);

		if (elems[i][1] == "required")
			result[i] = checkRequired(i);
		
		if (elems[i][1] == "valtest")
			result[i] = checkTuring(i);
			
		if (elems[i][1] == "date")
			result[i] = checkDate(i);
	}

	var doSubmit = true;
	for (var i = 0; i < result.length; i++)
	{
		if (!result[i])
		{
			doSubmit = false;
			break;
		}
	}
	
	if (doSubmit)
		frm.submit();
}

function checkEmail(e)
{
	var regExp = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;
  	if (regExp.test(elems[e][0].value))
  	{
  		elems[e][0].style.background="#CAFFCB";
  		return true;
  	}
  	else
  	{
  		elems[e][0].style.background="#FF8A8A";
  		return false;
  	}
}

function checkText(e)
{
	var regExp = /^[a-zA-Z ]*$/;

	if ((elems[e][0].value.length > 0) && regExp.test(elems[e][0].value))
  	{
  		elems[e][0].style.background="#CAFFCB";
  		return true;
  	}
  	else
  	{
  		elems[e][0].style.background="#FF8A8A";
  		return false;
  	}
}

function checkRequired(e)
{
	if (elems[e][0].value.length > 0)
	{
		elems[e][0].style.background="#CAFFCB";
  		return true;
	}
	else
	{
		elems[e][0].style.background="#FF8A8A";
  		return false;
	}
}

function checkTuring(e)
{
	if ((elems[e][0].value.length > 0) && ((elems[e][0].value).toUpperCase() == turingStr))
  	{
  		elems[e][0].style.background="#CAFFCB";
  		return true;
  	}
  	else
  	{
  		elems[e][0].style.background="#FF8A8A";
  		alert("Please enter the correct letters as shown in the image'");
  		return false;
  	}
}

function checkDate(e)
{

	var today = new Date();
	
	var day = (elems[e][0].value).substring(8);
	var month = (elems[e][0].value).substring(5,7);
	var year = (elems[e][0].value).substring(0,4);
	var date = new Date(month+"/"+day+"/"+year);

	if ((date - today) > 0)
  	{
  		elems[e][0].style.background="#CAFFCB";
  		return true;
  	}
  	else
  	{
  		elems[e][0].style.background="#FF8A8A";
  		return false;
  	}
}

