
function visivel(id, v){
	return document.getElementById(id).style.display = v ? 'block' : 'none';
}


/*Validação de Campos
  -----------------------

 alerta usuário que o campo o requirido
 recebe: 
 	inteiro - myElement - indice do elemento no form
 	string - myField - nome do campo
 	myForm - myForm - indice do form
 retorno:
 	booleano -	true se alguma informação foi digitada no campo
 				false caso contrário
*/
function FieldRequired(myElement, myField, myForm){
	eval('var myText = document.forms['+ myForm + '][' + myElement + '].value;');
	if (myText == '') {
		alert('Por favor, digite a informação referente ao campo '+ myField);
		eval('document.forms['+ myForm + '][' + myElement + '].focus();');
		return false;
	}
	return true;
}

/*
alerta usuário que a seleção requirida
 recebe: 
 	inteiro - myElement - indice do elemento no form
 	string - myField - nome do campo
 	myForm - myForm - indice do form
 	validIndex - o primeiro indice válido p/ a caixa de seleção
 retorna:
 	booleano - true se a seleção do item é valida e false caso contrário
*/
function SelectedRequired(myElement, myField, myForm, validIndex){
	eval('var mySelectedValue = document.forms['+ myForm + '][' + myElement + '].selectedIndex;');
	if (mySelectedValue < validIndex) {
		alert('Por favor, selecione uma ou mais informação(ões) referente(s) ao campo '+ myField);
		eval('document.forms['+ myForm + '][' + myElement + '].focus();');
		return false;
	}
	return true;
}

/*
 faz a validação de campos em um formulário
 recebe: 
 	inteiro - iForm - indice do form
 retorno:
 	booleano -	false se algum campo entrou em conflito em sua validação
 				true se todos os campos passaram pela validação
 				
 OBS: 
 
 Para o correto funcionamento dessa rotina você 
 deverá incluir os atributos: tipovalidacao e descricao; em 
 sua tag input.
 
 Essa função geralmente é utilizada nos evento:
 onsubmit da tag <form> ou onclick de uma tag <input type=button>
 */
function FormValidation(iForm){
	var k;
	var FieldObj, FieldName, FieldDesc, FieldVld;
	var CountItens = document.forms[iForm].length;
	
	resultado = true;
	for (k=0;k<CountItens-1 && resultado == true;k++){
		FieldObj  = document.forms[iForm].elements[k];
		FieldName = FieldObj.name;
		FieldDesc = FieldObj.descricao;
		FieldVld  = FieldObj.tipovalidacao;
		if (FieldDesc!=undefined)FieldDesc = FieldDesc.replace('<br>','');
		switch (FieldVld){   
			case "obrigatorio" :{
				resultado = FieldRequired(k, FieldDesc, iForm);
				break;
			}   
			case "selecionado" :{
				resultado = SelectedRequired(k, FieldDesc, iForm, 1);
				break;
			}
			case "selecionadovazio" :{
				resultado = caixaSelecionadaPlus(FieldName,FieldDesc,0);
				break;
			}
			case "cpf"  : {
				resultado = cpfValido(FieldName, FieldDesc);
				break;
			}
			case "data"  : {
				resultado = dataValida(FieldName);
				break;
			}
			case "horario"  : {
				resultado = campoDigitado(FieldName,FieldDesc) 
				break;
			}
			case "numero"  : {
				resultado = numeroValido(FieldName,FieldDesc);
				break;
			}
			case "numeroobrigatorio"  : {
				resultado = campoDigitado(FieldName,FieldDesc) && numeroValido(FieldName,FieldDesc);
				break;
			}
			case "ddd"  : {
				resultado = numeroDDDValido(FieldName,FieldDesc);
				break;
			}
			case "senha" : {
				resultado = senhaValida(FieldName,document.forms[iForm].elements[k+1].name);
				break;
			}
			case "email" : {
				resultado = emailValido(FieldName,false);
				break;
			}
			case "emailobrigatorio" : {
				resultado = emailValido(FieldName,true);
				break;
			}
			case "float" : {
				resultado = numeroFlutuante(FieldName,FieldDesc);
				break;
			}
			case "floatobr" : {
				resultado = campoDigitado(FieldName,FieldDesc) && numeroFlutuante(FieldName,FieldDesc);
				break;
			}
		}		
	}
	return resultado;
}


// Carlos Eduardo - dg2 internet solutions - 12/09/2003
// recebe: uma string controle(nome do objeto que contem o valor 'outro'), iForm inteiro(indice do form) 
// retorno: seta propiedade tipovalidacao do objeto para "obrigatorio" se 'outro' selecionado
// senão seta propiedade tipovalidacao o valor ""
function vldOutros(controle,iForm){
	var objOutro = controle.replace('fk','Outros');
	if (eval('document.forms[' + iForm + '].' + controle + '[document.forms['+ iForm +'].' + controle + '.selectedIndex].value==' + GbintOutros))
		MudaPropertyValidacao(objOutro,iForm,"obrigatorio");
	else
		ResetValidacao(objOutro,iForm);
}
// recebe: uma string controle(nome do objeto),inteiro indiceform(indice do form),string tipovalidacao
//(qual tipo validacao ira setar para a propriedade) 
// retorno: seta propriedade tipovalidacao do objeto com o valor de tipovalidacao
function MudaPropertyValidacao(controle, indiceform, tipovalidacao){
	eval('var Obj = document.forms[' + indiceform + '].' + controle + ';');
	var Tipo = controle.substring(0,3);
	if (Tipo == 'dat')
		MudaPropertyObj(Obj[0], tipovalidacao);
	else{
		MudaPropertyObj(Obj, tipovalidacao);
	}
		
}
// recebe: um Obj(objeto do form),string ObjType(tipo do Objeto),
//string Ppr(Propriedade do Objeto), variant SetValor(valor para a propriedade)
// retorno: seta para a propriedade do objeto o valor de SetValor
function MudaPropertyObj(Obj, SetValor){
	var PprAtual;
	Obj.tipovalidacao = SetValor;
}
// recebe: uma string FieldName(nome do objeto),inteiro indiceform(indice do form)
// retorno: seta valor vazio para o campo
function ResetCampos(FieldName,iForm){  
	var Aux = FieldName.toLowerCase();
	var Tipo = Aux.substring(0,3);
	if (Tipo.substring(0,2) != 'fk')
		switch (Tipo){
			case "dat" :{
				eval('document.forms[' + iForm + '].' + FieldName + '[0].selectedIndex=0;');
				eval('document.forms[' + iForm + '].' + FieldName + '[1].selectedIndex=0;');
				eval('document.forms[' + iForm + '].' + FieldName + '[2].selectedIndex=0;');
				break;
			}
			default :{
				eval('document.forms[' + iForm + '].' + FieldName + '.value=""');
				break;
			}
		}
	else
		eval('document.forms[' + iForm + '].' + FieldName + '.selectedIndex=0;');
}
// recebe: uma string FieldName(nome do objeto),inteiro indiceform(indice do form)
// retorno: Chama MudaPropertyValidacao setando vazio para tipovalidacao e 
//			Chama ResetCampos setando vazio para o valor do objeto 
function ResetValidacao(FieldName, indiceform){  
	MudaPropertyValidacao(FieldName, indiceform, "");
	ResetCampos(FieldName, indiceform);
}
// recebe: uma string controle(nome do objeto),inteiro indiceform(indice do form)
// retorno: exibe o valor do objeto em uma window de alerta...
function AlertValor(controle,indiceform){
	alert(eval('document.forms[' + indiceform + '].' + controle + '.tipovalidacao'));
}


function getObj(id){
	if(document.getElementById){
		//NE
		return document.getElementById(id);
	}else{
		if (document.all) {
			//IE5+
			return document.all(id);	
		}else{
			//IE5-
			return document(id);	
		}
		
	}
}

function resizeWindowByImage(ImageId){
	var myImage = getObj(ImageId);
	window.resizeTo(myImage.width, myImage.height+32);
}
