	function validate( form, fields )
	{
		for( var i=0; i<fields.length; i++ )
		{
			var strElement = fields[i];
			var arrElement = strElement.split( ":" );
			var intElement = arrElement[0];
			switch( arrElement[1] )
			{
				case "email":
					var strEmail = new String(form.elements[intElement].value )
					var index = strEmail.indexOf("@");
					if (index > 0)
					{
						var pindex = strEmail.indexOf(".",index);
						if( ( pindex > index+1 ) && ( strEmail.length > pindex+1 ) )
						{
							break;
						}
						else
						{
							alert( "Invalid email address." );
							form.elements[intElement].style.backgroundColor = "#FFFF00";
							form.elements[intElement].focus();
							form.elements[intElement].select();	
							return false;
						}
					}
					else
					{
						alert( "Please enter a valid email address." );
						form.elements[intElement].style.backgroundColor = "#FFFF00";
						form.elements[intElement].focus();
						form.elements[intElement].select();	
						return false;
					}
					break;

				case "required":
					if( !form.elements[intElement].value )
					{
						var strValue = form.elements[intElement].name.substring( 6, form.elements[intElement].name.length-1 );
						alert( "Missing field '"+strValue+"' required." );
						form.elements[intElement].style.backgroundColor = "#FFFF00";
						form.elements[intElement].focus();
						form.elements[intElement].select();
						return false;
					}
					break;

				case "password":	
					var arrPassword = arrElement[0].split( ";" );
					var strPassword = form.elements[arrPassword[0]].value;
					var strPasswordConfirm = form.elements[arrPassword[1]].value;
					if( strPassword.length > 0 )
					{
						if( strPassword != strPasswordConfirm )
						{

							alert( "Passwords do not match!" );
							form.elements[arrPassword[0]].style.backgroundColor = "#FFFF00";
							form.elements[arrPassword[0]].focus();
							form.elements[arrPassword[0]].select();
							form.elements[arrPassword[1]].style.backgroundColor = "#FFFF00";
							return false;
						}
					}
					break;
				case "requireonlyone":
					var arrFields = arrElement[0].split( ";" );
					var bolTrip = false;
					var strAlertFields = "";
					for( var j=0; j<arrFields.length; j++ )
					{
						var intField = arrFields[j];
						var strValue = form.elements[intField].name.substring( 6, form.elements[intField].name.length-1 );
						strAlertFields = strAlertFields + ", " + strValue;	
				
						if( form.elements[intField].value )
						{
							bolTrip = true;
						}
					}

					if( bolTrip == false )
					{
						var strAlertMessage = "You must fill in at least one of these fields." + strAlertFields;


						for( var j=0; j<arrFields.length; j++ )
						{
							var intField = arrFields[j];
							form.elements[intField].style.backgroundColor = "#FFFF00";
						}
		
						alert( strAlertMessage );
						return false;
					}
					else
					{
						break;
					}
					break;
				default:
			}
			
			switch( arrElement[1] )
			{
				case "password":	
					var arrPassword = arrElement[0].split( ";" );
					form.elements[arrPassword[0]].style.backgroundColor = "#FFFFFF";
					form.elements[arrPassword[1]].style.backgroundColor = "#FFFFFF";
					break;
				case "requireonlyone":
					var arrFields = arrElement[0].split( ";" );
					for( var j=0; j<arrFields.length; j++ )
					{
						var intField = arrFields[j];
						form.elements[intField].style.backgroundColor = "#FFFFFF";
					}
					break;
				default:
					form.elements[intElement].style.backgroundColor = "#FFFFFF";
				
			}
		}
		return( true );
	}
