/* FUNCOES PARA TRATAR O PREENCHIMENTO OBRIGATORIO DE CAMPOS NOS FORMULARIOS */

var m_cValuePadraoLinhaExtraCombo = "##!##L-I-N-H-A-E-X-T-R-A##!##"

/* FUNCAO PARA VERIFICAR PREENCHIMENTO OBRIGATORIO */
function VerificarPreenchimentoObrigatorio() {
	if (ObjExist(document.forms[0].hdnCamposObrigatorios)) {
		return VerificarPreenchimentoObrigatorioCampo();
	}
	else {
		return VerificarPreenchimentoObrigatorioTag();
	}
}

/* FUNÇÃO QUE VERIFICA O PREENCHIMENTO OBRIGATÓRIO DOS CAMPOS QUE POSSUEM A TAG: "TagMensagemObrigatorio" */
function VerificarPreenchimentoObrigatorioTag() {
	var v_oForm = document.forms[0];
	var v_oCampoFoco;

	try {
		for (i = 0; i < v_oForm.elements.length; i++) {
			/* VERIFICAR SE O OBJETO POSSUI A TAG PARA DIZER SE É OBRIGATÓRIO */
			if (ObjExist(v_oForm.elements[i].TagMensagemObrigatorio)) {
				/* SE EXISTIR O ATRIBUTO TagCampoFoco É PORQUE O FOCO NÃO É O PRÓPRIO CAMPO */
				if (v_oForm.elements[i].TagCampoFoco) {
					v_oCampoFoco = document.getElementById(v_oForm.elements[i].TagCampoFoco);
				}
				else {
					v_oCampoFoco = v_oForm.elements[i];
				}

				/* SE FOR OBRIGATÓRIO, ENTÃO VERIFICAR TIPO DO OBJETO E FAZER A VALIDAÇÃO */
				if ((v_oForm.elements[i].type == "text") || (v_oForm.elements[i].type == "textarea") || (v_oForm.elements[i].type == "file")) {
					if (Trim(v_oForm.elements[i].value) == "") {
						try {
							v_oCampoFoco.focus();
							alert("O campo -" + v_oForm.elements[i].TagMensagemObrigatorio + "- é de preenchimento obrigatório.");
							return false;
						}
						catch(e) {}
					}
				}

				if (v_oForm.elements[i].type == "select-one") {
					if (Trim(v_oForm.elements[i].value) == m_cValuePadraoLinhaExtraCombo) {
						try {
							v_oCampoFoco.focus();
							alert("O campo -" + v_oForm.elements[i].TagMensagemObrigatorio + "- é de preenchimento obrigatório.");
							return false;
						}
						catch(e) {}
					}
				}

				if(v_oForm.elements[i].type == "hidden") {
					if (Trim(v_oForm.elements[i].value) == "") {
						try {
							v_oCampoFoco.focus();
							alert("O campo -" + v_oForm.elements[i].TagMensagemObrigatorio + "- é de preenchimento obrigatório.");
							return false;
						}
						catch(e) {}
					}
				}
			}
		}

		return true;
	}
	catch(e) {
		alert("Problemas na verificação dos campos obrigatórios!\nEntre em contato com o administrador do sistema.\n\n" + e.message);
		return false;
	}
}

/* FUNCAO QUE VERIFICA O PREENCHIMENTO OBRIGATORIO DOS CAMPOS QUE ESTAO NO CAMPO hdnCamposObrigatorios
   O value DO CAMPO DEVERA SER PREENCHIDO DA SEGUINTE FORMA: 
   "NomeDoCampo1||Descrição do Erro1#..#NomeDoCampo2||Descrição do Erro2" */
function VerificarPreenchimentoObrigatorioCampo() {
	alert("Problemas na verificação dos campos obrigatórios!\nEntre em contato com o administrador do sistema.")
	return false;
}

/* FUNCAO PARA OBRIGAR A SELECAO DE PELO MENOS UM OBJETO
   v_sTipoObjeto = "checkbox" ou "radio"
   v_sMensagem = MENSAGEM QUE SERA EXIBIDA
*/
function VerificarObjetoSelecionado(v_sTipoObjeto, v_sNomeObjeto, v_sMensagem) {
	var v_oForm = document.forms[0];

	for (v_iCount = 0; v_iCount < v_oForm.elements.length; v_iCount++) {
		if (v_oForm.elements[v_iCount].type == v_sTipoObjeto) {
			if (v_sNomeObjeto == null) {
				if(v_oForm.elements[v_iCount].checked == true) return true;
			}
			else {
				if (v_oForm.elements[v_iCount].name == v_sNomeObjeto) {
					if(v_oForm.elements[v_iCount].checked == true) return true;
				}
			}
		}
	}

	alert(v_sMensagem);
	return false;
}

