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 != ""){
				/* Effect.Appear($(idFormulario + "_testigoEnviandoMensaje"), {duration:1, from:0, to:0.7}); */
				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, "normal"]);
					} else if (campo.type == "password"){
						arrCamposText.push([campo, "normal"]);
					}
					break;
				case "textarea":
					if (campo.hasClassName('editor')) {
						arrCamposText.push([campo, "editor"]);
					} else {
						arrCamposText.push([campo, "normal"]);
					}
					break;
				case "select":
					arrCamposText.push([campo, "normal"]);
					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++){
			if (arrCamposText[i][1] == "normal") {
				var campo = $(arrCamposText[i][0]);
				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);
				}
			} else {
				var campo = $(arrCamposText[i][0]);
				Element.removeClassName(campo, 'campoConErrores');
				if (campo.hasClassName('isEmail')) {
					contenidoEditor = tinyMCE.get(campo.id).getContent();
					boolVerificacion = isEmail(contenidoEditor);
				} else if (campo.hasClassName('isNotEmpty')) {
					contenidoEditor = tinyMCE.get(campo.id).getContent();
					boolVerificacion = isNotEmpty(contenidoEditor, true);
				} else if (campo.hasClassName('isURL')) {
					contenidoEditor = tinyMCE.get(campo.id).getContent();
					boolVerificacion = isURL(contenidoEditor);
				} else if (campo.hasClassName('isDate')) {
					contenidoEditor = tinyMCE.get(campo.id).getContent();
					boolVerificacion = isDate(contenidoEditor);
				} else if (campo.hasClassName('isNotDefault')) {
					contenidoEditor = tinyMCE.get(campo.id).getContent();
					boolVerificacion = isNotDefault(contenidoEditor);
				} 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 {
		mostrarCorrectos(arrCamposCorrectos);
		mostrarError(arrCamposError);
	}
}
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(campoMensajeError, 'mensajeErrorCampos');
		if (campo.type != "select-one") {
			Element.addClassName(campo, 'campoConErrores');
		} else {
			Element.addClassName(campo, 'comboConErrores');
		}
	}
	alert("Por favor llene todos los campos marcados con *");
	// 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');
		if (campo.type != "select-one") {
			Element.removeClassName(campo, 'campoConErrores');
		} else {
			Element.removeClassName(campo, 'comboConErrores');
		}
	}
}