/**
 * Exibir opções submenu de um menu
 *
 * @param String idMenu
 * @param String modo 1)abrir 0)fechar
 */
function showSubMenu(idMenu,modo) {
	var subMenu = "#subMenu_"+idMenu;	
	if (modo==1) {
		$(subMenu).show('slow');
	} else {
		$(subMenu).hide('slow');
	}
}


/**
 * Validando o form
 *
 * @author Marcello Pedrosa
 * @param Object FORM
 * @param String destino - file.php
 */
function validaMenu(form,destino) {
      	
   var msg = "";
   var campo = "";
   var vazio = false;
   
   for(var i=0; i<form.length; i++) {

    //verifica se eh opcional o campo
    var dados = form[i].id.split("#");
    
		//validando campos obrigatorios=1 que não sejam botões, radios e ocultos 
	   	if(dados[0]=="1" && (form[i].type!="button" || form[i].type!="radio" || form[i].type!="hidden") ) {
		    if ($.trim(form[i].value)=="") {		      		    
		  	  msg = "Por favor, preencha o campo: " + dados[1];
			  //metodo em menu.js
			  notificaPosiciona(0,msg,form[i]);
			  vazio = true;
			  break;
			}
		}
	}

   //se não houver campo obrigatorio vazio 
   if (!vazio) {
	       	   
	    //informa processamento
	    $(".carregandoOperacao").show();
	       	       	   
   	   //envia dados
	   $.post(destino, {	   
		   
		       //dados a serem enviados
		   	    id: form.id.value,
           edtNome: form.edtNome.value,
        edtPosicao: form.edtPosicao.value

	   }, function(retorno) {
	   		$(".carregandoOperacao").hide();
	   		if (retorno==1) {
			  //metodo em menu.js
			  notificaPosiciona(1,"Operação realizada com sucesso!","");
			} else {
			  //metodo em menu.js
			  notificaPosiciona(0,retorno,"");
			} 	   
	   	  }
	   );	       
	}
     
 //tem que ter isso por conta do upload
 return false;  
}


/**
 * Excluir
 * 
 * @param string id
 */
function excluirMenu(id) {

	if (window.confirm('Deseja prosseguir com esta operação?')) {
	
		//informa processamento
		$("#carregando").show();
		
		//exclusão
		$.post("tec-exc-menu.php",{
			id: id
		},function(retorno) {
			$("#carregando").hide();
			if (retorno==1) {
	  	 		window.alert("Operação realizada com sucesso!");
	  	 		$("#gridView").flexReload();
	  	 	} else {
	  	 		window.alert(retorno);	  	 	
	  	 	}
		  }
		);
	}
}



/**
 * Reativar registro inativo
 * 
 * @param string id
 */
function ativarMenu(id) {

	if (window.confirm('Deseja prosseguir com esta operação?')) {
	
		//informa processamento
		$("#carregando").show();
		
		//exclusão
		$.post("tec-atv-menu.php",{
			id: id
		},function(retorno) {
			$("#carregando").hide();
			if (retorno==1) {
	  	 		window.alert("Operação realizada com sucesso!");
	  	 		$("#gridView").flexReload();
	  	 	} else {
	  	 		window.alert(retorno);	  	 	
	  	 	}
		  }
		);
	}
}


//-------------------------- funcoes globais --------------------------//


/**
 * Metodo que acessa formulario de alteracao de dados de uma entidade via post
 *
 * @param String id
 * @param String destino [script]
 */
function editarDados(id,destino) {

	//criar elemento para inserir form nele
	var divForm = document.createElement('div');
	
	//adiciona um atributo para identificarmos a div
	divForm.setAttribute('id', 'formularioTemporario');
	
	//criando um form temporario
	var form  = '<form name="frmAcessoAlteracao" method="post" action="'+destino+'">';
	    form += '<input type="hidden" name="id" value="'+id+'">';
	    form += '</form>';
 
 	//colocando essa div no elemento pai - documento/body
 	var pagina = document.getElementsByTagName("body")[0];
 	    pagina.appendChild(divForm);
 	            
    //colocando o form dentro da div
    document.getElementById('formularioTemporario').innerHTML = form;
    
    //dar o submit no form
    document.frmAcessoAlteracao.submit();
}


/**
 * Ocultar formulario
 */
function ocultaFormulario() {
	$("#formulario").hide('slow');
}


/**
 * Abrir popup
 *
 * @param String url
 * @param String h - altura
 * @param String w - largura
 */
function popUp(url,h,w){
	window.open(url,'Popup','height='+h+',width='+w+',menu=1,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,left=0,top=0');
}



/**
 * Marcar todos os checkbox
 *
 * @param Object form
 * @param Object chkObjeto
 */
function marcaCheckbox(f,chkObjeto){

  var selecionado = chkObjeto.checked;

  if (selecionado) {
  
	for (var i=0; i<f.length; i++){	
			if(f[i].type == "checkbox" && f[i].name != chkObjeto.name ){
			   f[i].checked=true;
			}
	}
  } else if (!selecionado) {
	for (var i=0; i<f.length; i++){
			if(f[i].type == "checkbox" && f[i].name != chkObjeto.name && !f[i].disabled){
			   f[i].checked=false;
			}
	}
  }
}



/**
 * Exibe total de caracteres em um campo
 *
 * @param String campo
 */
function contaCaracteres(campo) {
	$("#totalCaracteres").addClass("totalCaracteres").html("["+campo.value.length+"]");
}


/**
 * Mostra o total de caracteres de um campo
 *
 * @param Object object
 * @param Int limite - total de caracteres no campo
 */
function limiteCaracteres(object,limite) {
	if (object.value.length>limite) {
		object.value = object.value.substring(0,limite);
	}
}


/**
 * Colocar cor nas linhas das tabelas
 *
 * @param object tableElement - table
 * @param string valorMouse 1)setColor 0)defaultColor - alterar cores aqui de acordo com a aplicação
 */
 function onMouse(tableElement,valorMouse) { 
 	if (valorMouse==1) {
		tableElement.style.background='#D0E9FA';
 	} else {
		tableElement.style.background='#F7FCFF';
 	}
 }
 
 
 /**
  * Enviar upload de imagens referente a uma entidade - exemplo: viabilidade_imagens
  *
  * @param Object form
  * @param Script destino 
  */
function enviaImagens(form,destino) {
 
   var msg = "";
   var campo = "";
   var vazio = false;
   
   for(var i=0; i<form.length; i++) {

    	//verifica se eh opcional o campo
    	var dados = form[i].id.split("#");
    
		//validando campos obrigatorios=1 que não sejam botões, radios e ocultos 
	   	if(dados[0]=="1" && form[i].type=="file" && form[i].value=="") {
		   window.alert("Por favor, preencha o campo: " + dados[1]);
		   form[i].focus();
		   vazio = true;
		   break;
		}
	}

   //se não houver campo obrigatorio vazio 
   if (!vazio) {
    	form.action = destino;
		form.submit();       
   } else {
   		return false;
   }
}


/**
 * Atualiza a descricao da imagem
 *
 * @param String idImagem
 * @param String destino - script que atualiza a imagem de um album especifico
 */
function atualizaDescricaoImagem(idImagem,destino) {
	
	//pegar a identificacao do campo
	var campo = '#edtDescricaoImagem'+idImagem;
		
	$.post(destino,{
		 idImagem: idImagem,
	 edtDescricao: $(campo).val()
	},function(retorno) {	
		 if (retorno==1) {
		 	window.alert('Operação realizada com sucesso!');
		 	window.location.reload();
		 } else {
		 	window.alert(retorno);
		 }
	  }
	);
}


/**
 * Excluir imagem
 *
 * @param String idImagem
 * @param String destino - script que exclui a imagem de um album especifico
 */
function excluirImagem(idImagem,destino) {
	
	if (window.confirm('Deseja prosseguir com esta exclusão?')) {
				
		$.post(destino,{
			 idImagem: idImagem
		},function(retorno) {	
			 if (retorno==1) {
			 	window.alert('Operação realizada com sucesso!');
			 	window.location.reload();
			 } else {
			 	window.alert(retorno);
			 }
		  }
		);
	}
}


/**
 * Seta a mensagem no <div id="mensagem"></div> e foca no objeto do form
 *  
 * @param String tipo - 1)Mensagem sucesso 0) Falha
 * @param String mensagem
 * @param Object objetoForm
 */
function notificaPosiciona(tipo, mensagem, objetoForm) {

	//seta a classe CSS padrão
	var addClassCss;
	var removeClassCss;
		
	//verifica conteudo da msg - sucesso
	if ( tipo==1 ) {
		
		addClassCss = "mensagemSucesso";
		removeClassCss = "mensagemFalha";
		
	//falha	
	} else if ( tipo==0 ) {
	 	removeClassCss = "mensagemSucesso";
		addClassCss = "mensagemFalha";
	}

	//seta a mensagem em jQuery
	$("#mensagem").hide().html(mensagem).removeClass(removeClassCss).addClass(addClassCss).fadeIn('slow');
	
	//posiciona documento no topo - no safary nao usa documentElement
	document.body.scrollTop = document.documentElement.scrollTop = document.getElementsByTagName('body')[0].offsetTop;
	
	//só foca se tiver objeto
	if ( objetoForm!="" ) { 
		//foca na mensagem durante 3 segundos
		setTimeout(function() { objetoForm.focus(); }, 3000);		
	}
	
	//depois de uns 60 segundos retirar mensagem da tela
	setTimeout(function() { $("#mensagem").hide('slow'); }, 60000);	 
}



/**
 * Abre ou Fecha uma DIV
 *
 * @param String opcao
 * @param String identificacaoCampo
 */
 function abreFecha(opcao,identificacaoCampo) {
  	var elemento = "#"+identificacaoCampo; 
 	if (opcao==1) {
 		$(elemento).slideDown('slow');
 	} else {
 		$(elemento).slideUp('slow');
 	} 
 }

 
 /**
  * Apenas para exibir os dados coletados de um form
  *
  * @param OBJECT formObject
  */
 var dadosTempForm = "";
 function degubForm(formObject) {
	if (formObject.type!="button") {
		dadosTempForm +='\n '+form.name+': form.'+form.name+'.value,';
	} else if (formObject.type=="button" || formObject.type=="reset") {
		window.alert(dadosTempForm);
		//reseta para a proxima exibição
		dadosTempForm = "";
	}
 }
 
 
 
/**
 * Definir dimensao de um elemento
 *
 * @param String elemento
 * @param String h
 * @param String w
 */
 function tamanhoElemento(elemento,h,w) {
 	document.getElementById(elemento).style.height = h+'px'; 
 	document.getElementById(elemento).style.width = w+'px';
 }
 