// ========================================================================== // Project: SproutCore - JavaScript Application Framework // Copyright: ©2006-2011 Strobe Inc. and contributors. // Portions ©2008-2011 Apple Inc. All rights reserved. // License: Licensed under MIT license (see license.js) // ==========================================================================

sc_require('validators/validator') ;

/**

Requires a valid email format.

@class
@extends SC.Validator
@version 1.0

*/ SC.Validator.Email = SC.Validator.extend( /** @scope SC.Validator.Email.prototype */ {

validate: function(form, field) { 
  return (field.get('fieldValue') || '').match(/.+@.+\...+/) ; 
},

validateError: function(form, field) {
  var label = field.get('errorLabel') || 'Field' ;
  return SC.$error(SC.String.loc("Invalid.Email(%@)", label), label) ;
}

}) ;

/**

This variant allows an empty field as well as an email address.

@class
@extends SC.Validator.Email
@author Charles Jolley
@version 1.0

*/ SC.Validator.EmailOrEmpty = SC.Validator.Email.extend( /** @scope SC.Validator.EmailOrEmpty.prototype */ {

validate: function(form, field) {
  var value = field.get('fieldValue') ; 
  return (value && value.length > 0) ? value.match(/.+@.+\...+/) : true ;
}

}) ;