var idFormulario = "";
function verificarForma(nombreFormulario, accionEnviar){
	var forma = $(nombreFormulario);
	idFormulario = nombreFormulario;
	var boolExito = revisarCampos(["input", "textArea", "select"], forma);
	if (boolExito) {
		if (arguments.length > 1) {
			if(accionEnviar != ""){
				eval(accionEnviar)(forma);
			} else {
				forma.submit();
			}
		} else {
			forma.submit();
		}
	}
}
function revisarCampos(arrTipoCampos, forma){
	var intTipoCamposLen = arrTipoCampos.length;
	var l = 0;
	var arrCamposError = new Array();
	var arrCamposCorrectos = new Array();
	for (var n = 0; n < intTipoCamposLen; n++){
		var campos = forma.getElementsByTagName(arrTipoCampos[n]);
		var intCamposLen = campos.length; 
		var arrCamposText = new Array();
		for (var k = 0; k < intCamposLen; k++){
			var campo = campos[k];
			switch(arrTipoCampos[n]){
				case "input":
					if (campo.type == "text"){
						arrCamposText.push(campo);
					} else if (campo.type == "password"){
						arrCamposText.push(campo);
					}
					break;
				case "textArea":
					arrCamposText.push(campo);
					break;
				case "select":
					arrCamposText.push(campo);
					break;
				default :
					alert ("El tipo de campo no se reconoce");
				break;
			}
		}
		var j = 0;
		var m = arrCamposText.length;
		for (var i = 0; i < m; i++){
			var campo = $(arrCamposText[i]);
			Element.removeClassName(campo, 'campoConErrores');
			if (campo.hasClassName('isEmail')) {
				boolVerificacion = isEmail(campo.value);
			} else if (campo.hasClassName('isNotEmpty')) {
				boolVerificacion = isNotEmpty(campo.value, true);
			} else if (campo.hasClassName('isURL')) {
				boolVerificacion = isURL(campo.value);
			} else if (campo.hasClassName('isDate')) {
				boolVerificacion = isDate(campo.value);
			} else if (campo.hasClassName('isNotDefault')) {
				boolVerificacion = isNotDefault(campo.value);
			} else if (campo.hasClassName('noVerificar')) {
				boolVerificacion = true;
			} else {
				boolVerificacion = true;
			}
			if (boolVerificacion) {
				arrCamposCorrectos.push(campo);
				j++;
			} else {
				arrCamposError.push(campo);
			}
		}
		if (j == m) {
			l++;
		}
	}
	if (l == intTipoCamposLen){
		mostrarCorrectos(arrCamposCorrectos);
		return true;
	} else {
		mostrarError(arrCamposError);
		mostrarCorrectos(arrCamposCorrectos);
	}
}
function mostrarError(arrCamposError){
	var intInputsErrorLen = arrCamposError.length;
	for (var i = 0; i < intInputsErrorLen; i++){
		var campo = arrCamposError[i];
		var idCampoMensajeError = "label_" + campo.getAttribute('id');
		var campoMensajeError = $(idCampoMensajeError);
		Element.addClassName(campo, 'campoConErrores');
		Element.addClassName(campoMensajeError, 'mensajeErrorCampos');
	}
	alert("Por favor verifica que todos los campos est\u00E9n llenos.")
	Effect.ScrollTo($(idFormulario));
}
function mostrarCorrectos(arrCamposCorrectos){
	var intInputsCorrectosLen = arrCamposCorrectos.length;
	var intInputsCorrectosLen = arrCamposCorrectos.length;
	for (var i = 0; i < intInputsCorrectosLen; i++){
		var campo = arrCamposCorrectos[i];
		var idCampoMensajeError = "label_" + campo.getAttribute('id');
		var campoMensajeError = $(idCampoMensajeError);
		Element.removeClassName(campoMensajeError, 'mensajeErrorCampos');
		Element.removeClassName(campo, 'campoConErrores');
	}
}