//General functions
function add_error(field,error)
{
	field.style.color = "red";
	if (error == 0)
	{
		field.focus();
	}
	return error + 1;
}

function not_null(field,preset)
{
	with (field)
	{
		if(value==null||value==""||value==preset)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}

//Specific functions
function is_email(field)
{
	with (field)
	{
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		if (apos<1||dotpos-apos<2)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}
function is_date(field)
{
	exp = new RegExp(/(^\d{2}-\d{2}-\d{4}$)/);
	with (field)
	{
		if(!exp.test(value))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}
function is_zip(field)
{
	exp = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
	with (field)
	{
		if(!exp.test(value))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}
function is_phone(field,allowNull,preset)
{
	exp = new RegExp(/^(\()?([0-9]{3})(\)|-)?([0-9]{3})(-)?([0-9]{4}|[0-9]{4})$/);
	with (field)
	{
		if(allowNull == 1 && (value==null||value==""||value==preset))
		{
			return true;
		}
		else
		{
			if(!exp.test(value))
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	}
}
function is_state(field)
{
	exp = new RegExp(/([A-Z]{2})/);
	with (field)
	{
		if(!exp.test(value))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}
function is_checked(field)
{
	with (field)
	{
		if(value == 'checked')
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}
//other items

function autoMask(field, event, sMask) {
    var KeyTyped = String.fromCharCode(getKeyCode(event));
    var targ = getTarget(event);
    keyCount = targ.value.length;

    if (KeyTyped.charCodeAt(0) < 32) return true;

    if(keyCount == sMask.length){
      return false;
    }
    if ((sMask.charAt(keyCount+1) != '#') && (sMask.charAt(keyCount+1) != 'A' ) ) {
      field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
      return false;
    }

    if (sMask.charAt(keyCount) == '*')
      return true;

    if (sMask.charAt(keyCount) == KeyTyped){
      return true;
    }

    if ((sMask.charAt(keyCount) == '#') && isNumeric(KeyTyped))
      return true;

    if ((sMask.charAt(keyCount) == 'A') && isAlpha(KeyTyped))
      return true;

    if ((sMask.charAt(keyCount+1) == '?') ) {
      field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
      return true;
    }
      //if (KeyTyped.charCodeAt(0) < 46) return true;
      return false;
  }

  function getTarget(e) {
    // IE5
    if (e.srcElement) {
      return e.srcElement;
    }
    if (e.target) {
      return e.target;
    }
  }

  function getKeyCode(e) {
    //IE5
    if (e.srcElement) {
      return e.keyCode
    }
    // NC5
    if (e.target) {
      return e.which
    }
  }

  function isNumeric(c) {
    var sNumbers = "01234567890";
    if (sNumbers.indexOf(c) == -1)
      return false;
    else 
      return true;
  }

  function isAlpha(c){
    var lCode = c.charCodeAt(0);
    if (lCode >= 65 && lCode <= 122 ) {
      return true;
    }
    else
      return false;
  }

  function isPunct(c){
    var lCode = c.charCodeAt(0);
    if (lCode >= 32 && lCode <= 47 ){
      return true;
    }
    else
      return false;
  }
