function getElementById(id)
{
	if ( document.getElementById )
	{
		return document.getElementById(id);
	}
	else if ( document.all )
	{
		return document.all[id];
	}
	else if ( document.layers )
	{
		return document.layers[id];
	}
	else
	{
		alert("object not found");
	}
}
function validate(formname)
{
	var form = getElementById(formname);
	var errors = "";
	for ( i in window.fields )
	{
		var fieldName = fields[i]['name'];
		var validation = fields[i]['validation'];
		var length = fields[i]['maxlength'];
		var required = fields[i]['required'];
		var inputElement = form[fieldName];
		var fieldWithError = '';
		if ( required == "yes" )
		{
			//check if field is not empty
			if ( inputElement.value.length == 0 && inputElement.value == "" )
			{
				inputElement.style.background = 'red';
				var fieldWithError = fieldName;
				errors += fieldName +" can not be empty\n";
			}
		}

		//check if field is too long
		if ( inputElement.value.length > length)
		{
			inputElement.style.background = 'red';
			var fieldWithError = fieldName;
			errors += fieldName +" is to long\n";
		}
		
		//if field is email valid
		if ( fieldName == 'email' )
		{
			if ( inputElement.value.length > 0 )
			{
				if ( !validateEmail(inputElement.value) )
				{
					inputElement.style.background = 'red';
					var fieldWithError = fieldName;
					errors += fieldName +" is invalid\n";
				}
			}
		}
		if ( fieldName != fieldWithError )
		{
			//field is correct
			inputElement.style.background = '';
		}
	}
	if ( errors.length != 0 )
	{
		alert("Please Correct The Following Errors:\n"+errors);
		return false;
	}
	else
	{
        	return true;
	}
}
/*
* returns true if email is not valid
*/
function validateEmail(value) 
{
	return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i.test(value);
}