var reInt=/^\d+$/;
var reChar=/^[\w\s\-\&\#]+$/;
var reEMail=/^\w[\w\-\.]+\@\w[\w\-]+(\.[\w\-]+)+$/;
var reURL=/^\w[\w\-]+(\.\w[\w\-]+)+([\/\%\?\&\+\#\.\w\-\=]+)*$/;

function nospace(field, msg) { //Check not empty
	if (field.value=="")
		{
		    alert(msg);
		    field.select();
		    field.focus();
		    return false;
		}

	return true;
}

function _checkIt(re, field, msg) {
  if (field.value=='')
  	return true;
  else
  	{
	  if (!re.test(field.value)) {
	    alert(msg);
	    field.select();
	    field.focus();
	    return false;
	  }
	  return true;
  	}
}

function goodChar(field, msg) {
  return _checkIt(reChar, field, msg);
}

function goodEMail(field, msg) {
  return _checkIt(reEMail, field, msg);
}

function confirmpass(pass1, pass2, msg) {
	if (pass1.value!=pass2.value)
		{
		    alert(msg);
		    pass2.select();
		    pass2.focus();
		    return false;
		}

	return true;
}

function rpChar(f) {
  var df=f;

  df=df.replace(/\\/g, '\\\\');
  df=df.replace(/\//g, '\\\/');
  df=df.replace(/\[/g, '\\\[');
  df=df.replace(/\]/g, '\\\]');
  df=df.replace(/\(/g, '\\\(');
  df=df.replace(/\)/g, '\\\)');
  df=df.replace(/\{/g, '\\\{');
  df=df.replace(/\}/g, '\\\}');
  df=df.replace(/\</g, '\\\<');
  df=df.replace(/\>/g, '\\\>');
  df=df.replace(/\|/g, '\\\|');
  df=df.replace(/\*/g, '\\\*');
  df=df.replace(/\?/g, '\\\?');
  df=df.replace(/\+/g, '\\\+');
  df=df.replace(/\^/g, '\\\^');
  df=df.replace(/\$/g, '\\\$');

  return df;
}

function reDate(f) {
  var df=rpChar(f);

  df=df.replace(/dd/gi, '\\d\\d');
  df=df.replace(/mm/gi, '\\d\\d');
  df=df.replace(/yyyy/gi, '\\d\\d\\d\\d');

  return new RegExp('^'+df+'$');
}

function goodDate(df, field, msg) {
  if (field.value=='')
  	return true;
  else
  	{  
	  if (_checkIt(reDate(df), field, msg)) {
		var di=field.value;
		var y4=df.search(/yyyy/i), y=di.substring(y4, y4+4)-0;
		var m2=df.search(/mm/i), m=di.substring(m2, m2+2)-1;
		var d2=df.search(/dd/i), d=di.substring(d2, d2+2)-0;
	
		var dd=new Date(y, m, d);
		if (y==dd.getFullYear() && m==dd.getMonth() && d==dd.getDate()) {
		  return true;
		}
		else {
		  alert(msg);
	
		  field.select();
		  field.focus();
		}
	  }	
	  return false;
	}
}

function goodInt(field, msg) {
  return _checkIt(reInt, field, msg);
}
