<?php

/**
 * EmailAddressy
 *
 * @author Janusz Chodzicki <j-ch@o2.pl>
 */
/**
 * @see Zend_Validate_EmailAddress
 */

class Eppe_Validate_EmailAddress extends Zend_Validate_Abstract {

	const INVALID_EMAIL_ADDRESS = 'invalidEmailAddress';

	protected $_messageTemplates = array(
		self::INVALID_EMAIL_ADDRESS => "'%value%' is not a valid e-mail address.",
	);
	
	public function __construct($options = null) {
		if ($options instanceof Zend_Config) {
            $options = $options->toArray();
        }
		
		Eppe_Validate::setupConstructorOptions($this, $options);
	}
		
	public function isValid($value) {
		$valueString = (string) $value;
		$this->_setValue($valueString);

		if (preg_match('/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/', $value)) {
			return true;
		}
		$this->_error(self::INVALID_EMAIL_ADDRESS);
		return false;
	}

}
