var _campoError = null;

var _errores    = "";



function appendErrorMessage(msgError) {

    _errores += ((_errores != "") ? "\n":"") + "        " + msgError

}



function rtrim(cadena) {

    cadena += "";

    for (var i = cadena.length -1; (i >= 0) && ((cadena.charAt(i) == ' ')); i--)

        ;

    return cadena.substring(0, i+1);

}



function ltrim(cadena) {

    cadena += "";

    for (var i = 0; (i < cadena.length) && ((cadena.charAt(i) == ' ')); i++)

        ;

    if (i == cadena.length) {

        return "";

    }

    return cadena.substring(i);

}



function trim(cadena) {

    return ltrim(rtrim(cadena));

}



function validarLista(lista, msgError, indiceInicial) {

    if (!indiceInicial) {

        indiceInicial = 1;

    }

    if (lista.selectedIndex < indiceInicial) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            _campoError = lista;

        }

        return false;

    }

    return true;

}



function validarSeleccion(campo, msgError) {

    if (!isChecked(campo)) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            if (campo.length) {

                _campoError = campo[0]

            } else {

                _campoError = campo;

            }

        }

        return false;

    }

    return true;

}



function validarCampo(campo, msgError, longitudMinima, longitudMaxima, funcion) {

    if (!longitudMinima) {

        longitudMinima = 1

    }

    if (!longitudMaxima ) {

		longitudMaxima = Number.MAX_VALUE

    }

    var value = trim(campo.value)

    if (value.length < longitudMinima || value.length > longitudMaxima ||

        (funcion ? !eval("funcion(campo.value)") : false)) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            _campoError = campo;

        }

        return false;

    }

    return true;

}





function validarFecha(dia, mes, ano, msgError) {

    if (mes.selectedIndex < 1 ||

    		!isDateDMY(dia.value + "/" + mes.options[mes.selectedIndex].value + "/" + ano.value)) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            _campoError = dia;

        }

        return false;

    }

    return true;

}



function validarEntero(campo, msgError, limiteInferior, limiteSuperior) {

	if (!limiteInferior) {

		limiteInferior = Number.NEGATIVE_INFINITY

		limiteSuperior = Number.MAX_VALUE

	}

	if (!isIntRange(campo.value, limiteInferior, limiteSuperior)) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            _campoError = campo;

        }

        return false;

	}

	return true;

}





function validarEnteroM2(campo, msgError, limiteInferior, limiteSuperior) {

	campo.value = campo.value.split('.').join(',');

	validarEntero(campo, msgError, limiteInferior, limiteSuperior)

}



function validarFloat(campo, msgError, limiteInferior, limiteSuperior) {

	if (!limiteInferior) {

		limiteInferior = Number.NEGATIVE_INFINITY

		limiteSuperior = Number.MAX_VALUE

	}

	if (!isFloatRange(campo.value, limiteInferior, limiteSuperior)) {

        appendErrorMessage(msgError)

        if (_campoError == null) {

            _campoError = campo;

        }

        return false;

	}

	return true;

}


