/* $Id: is_domain_literal.js,v 1.1 2003/06/11 20:09:15 nstephen Exp $
 *
 * Author:  Graham Cebulskie
 *
 * Compatibility:  JavaScript 1.2+
 *
 * is_domain_literal(x)
 *
 * returns true if x is a domain literal (RFC 822)
 * returns false otherwise
 *
 */

var GLOBAL_CLOUD_IS_DOMAIN_LITERAL_RE = /^\[([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\]$/;
GLOBAL_CLOUD_IS_DOMAIN_LITERAL_RE.compile();

function is_domain_literal(x) {
  if(GLOBAL_CLOUD_IS_DOMAIN_LITERAL_RE.exec(x)) {
    if(Math.abs(RegExp.$1) > 255) return false;
    if(Math.abs(RegExp.$2) > 255) return false;
    if(Math.abs(RegExp.$3) > 255) return false;
    if(Math.abs(RegExp.$4) > 255) return false;
    return true;
  }
  return GLOBAL_CLOUD_IS_DOMAIN_LITERAL_RE.test(x);
}

