var nbsp = 160;
var node_text = 3;
var emptyString = /^\s*$/ ;
var global_valfield;

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '');
}
function setFocusDelayed() {
  global_valfield.focus();
}
function setfocus(valfield) {
  global_valfield = valfield;  
  setTimeout( 'setFocusDelayed()', 100 );  
}
function msg(fld,
             msgtype,
             message) {
  var dispmessage;
  if (emptyString.test(message)) 
    dispmessage = String.fromCharCode(nbsp);    
  else  
    dispmessage = message;
  var elem = document.getElementById(fld);
  elem.firstChild.nodeValue = dispmessage;   
  elem.className = msgtype;
}

var proceed = 2;  
function commonCheck (valfield,
                      infofield,
                      required) {
	
  if ( !document.getElementById ) {
  	return true;
  }
  var elem = document.getElementById(infofield);
  if (!elem.firstChild) { return true; }  
  if (elem.firstChild.nodeType != node_text) { return true; }  
  if ( emptyString.test( valfield.value ) ) {	
	if ( required ) {
      msg ( infofield, "error", "Required" );
	  return false;  
	} else {
		msg (infofield, "warn", "");
	  return true;
	}
  }
  return proceed;
}


function validatePresent( valfield,
                         infofield )
{
  var stat = commonCheck ( valfield, infofield, true ); 
  if ( stat != proceed ) {	  
	document.getElementById( valfield.id ).className = 'form_error';	
	return stat; 	
  }; 
  document.getElementById( valfield.id ).className = 'form_corrected';  
  msg (infofield, "warn", "" );   
  return true;
}


function validateEmail  (valfield,
                         infofield,
                         required)
{ 
  var stat = commonCheck (valfield, infofield, required);  
  if (stat != proceed) {	  
	  document.getElementById( valfield.id ).className = 'form_error';
	  return stat;	  
  };
  var tfld = trim(valfield.value);
  var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/  ;  
  if (!email.test(tfld)) {
    msg (infofield, "error", "Please enter a valid e-mail address");	
	document.getElementById('email').className = 'form_error';   
	// setfocus(valfield);   
	return false;
  }
  var email2 = /^[A-Za-z][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/  ;
  if (!email2.test(tfld))  
    msg (infofield, "warn", "Unusual e-mail address - check if correct");	
  else  
    msg (infofield, "warn", "");	
	document.getElementById('email').className = 'form_corrected'; 
  return true;  
}
