<?php

function Validate($input, $type, $required)
{
	switch ($type)
	{
	case 'int':			$pattern = '/[^0-9]/';
						break;
						
	case 'alpha':		$pattern = '/[^a-zA-Z\.\s]/';
						break;
						
	case 'numeric':		$pattern = '/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/';			// NOTE: for numeric, returns false if correct
						break;
						
	case 'email':		$pattern = '/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/';		// NOTE: for email, returns false if correct
						break;
						
	case 'phone':		$pattern = '/[^0-9\s]/';
						break;
						
	case 'date':		return ValidateDate($input);
						break;
	default:
	case 'alphanumeric':$pattern = '/[^a-zA-Z0-9\.\s]/';
						break;
						
	}

	// remove whitespaces from beginning and end of $input
	$input = trim($input);

	// check if its required
	if ($required && !$input)
		return false;
	else if (!$input)
		return true;

	// do reg exp check
	if (preg_match($pattern, $input))
		return false;
	else return true;
}

function ValidateDate($input)
{	
	$date = $input;
	$regs = array();
	preg_match('/(^[0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4}$|[0-9]{2}$)/', $date, $regs);

	if (count($regs) == 4)
	{
		if (checkdate($regs[2], $regs[1], $regs[3]))
			return true;
		else
			return false;
	}	
	else
	{
		return true;
	}	
}

function ValidateNotEmpty($input)
{
	$input = trim($input);
	if (!$input)
		return false;
	else return true;
}

function ValidatePassword($pw1, $pw2)
{
	$min_length = 6;

	if ($pw1 == '' || $pw2 == '')
		return false;

	if (strlen($pw1) < $min_length)
		return false;

	if ($pw1 != $pw2)
		return false;

	return true;
}
?>