var mPrefix = "El campo ";
var mSuffix = " es un dato necesario. Por favor coloquelo ahora.";
var defaultEmptyOK = false;
var whitespace = " \t\n\r";
var iEmail = " debe contener una dirección de e-mail valida.\n(ejm: info@terrefinca.com).\nPor favor coloquelo ahora."
var mNumber = " debe contener números.\nPor favor coloquelos ahora."

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function isWhitespace (s) {
	var i;

    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++) {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function warnInvalid (theField, s) {
	theField.focus()
    theField.select()
    alert(mPrefix + s + iEmail)
    return false
}

function warnEmpty (theField, s) {
	theField.focus()
	theField.select()
    alert(mPrefix + s + mSuffix)
    return false
}

function warnNumber (theField, s) {
	theField.focus()
	theField.select()
    alert(mPrefix + s + mNumber)
    return false
}

function isEmail (s) {
	if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@")){
		i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != ".")){
		i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function checkString (theField, s, emptyOK){
    if (checkString.arguments.length == 2) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    if (isWhitespace(theField.value)) 
       return warnEmpty (theField, s);
    else return true;
}

function checkEmail (theField, s, emptyOK){
	if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, s);
    else return true;
}

function checkNumber (theField, s){
	if (checkNumber.arguments.length == 1) emptyOK = defaultEmptyOK;
	if (isNaN(theField.value) || isEmpty(theField.value))
		return warnNumber (theField, s);
	else
		return true;
}

function compFields (theField1, s1, theField2, s2){
	if (theField1.value == theField2.value){
		return true;
	}else{
		theField2.focus();
		theField2.select();
		alert("El campo \"" + s2 + "\" difiere del campo \"" + s1 + "\"");
	}
}
