// filter: filter input parameters
// $name:   the name of the variable, as a string
// $type:   the type of the variable (email, number, integer, text)
// $strict: don't allow massaging of data

function filter(value, type, strict)
{
	var newValue = '';
	var error = '';

	switch(type.toLowerCase())
	{
	case 'email':
		var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (value.match(pattern)) {
			newValue = value;
		} else {
			error = 'invalid email address\n';
		}
		break;
	case 'number':
		newValue = Number(value);
		break;
	case 'integer':
		newValue = Math.round(Number(value));
		break;
	case 'text':
	default:
		newValue = String(value);
		break;
	}

	// decide if we want to pass through the value
	if (newValue == value || (!strict && newValue != ''))
	{
		return '';
	}
	else
	{
		return error;
	}
} // filter
