function submeter(acao) {
		document.forms[0].acao.value = acao;
		sendActionForm(document.forms[0]);
		return true;
}

function formatar(src, mask){
	
	if (event.keyCode != 0){
		var i = src.value.length;
		var saida = mask.substring(0,1);
		var texto = mask.substring(i)
		if (texto.substring(0,1) != saida){
			src.value += texto.substring(0,1);
		}
	}
}

function getNomeServidor() {
	return document.location.protocol + '//' + document.location.host;
}

function trim(pTexto) {
   while (pTexto.charAt(0) == ' ') {
      pTexto = pTexto.slice(1);
   }

   while (pTexto.charAt(pTexto.length-1) == ' ') {
      pTexto = pTexto.slice(0,-1);
   }

   return(pTexto);
}

function zerarCampoPoder(){
		document.forms[0].poder.value = "";
	}

function changePage(value,totalPaginas) {
	var valueBox = parseInt(document.forms[0].pagina.value);
	totalPaginas = parseInt(totalPaginas);
	if(value=='next') {
		if(valueBox < totalPaginas)
			document.forms[0].pagina.value=valueBox+1;
		else
			document.forms[0].pagina.value=valueBox;
	} else if(value=='prev') {
		if(valueBox > 1 )
			document.forms[0].pagina.value=valueBox-1;
		else
			document.forms[0].pagina.value=1;
	}

}

function redirecionar(caminho, url){
	self.location.href=caminho + "/"+ url;
}

function fuSoNumero(input, e) {
	var keyCode = e.keyCode; 
	
	if(keyCode < 48 || keyCode > 57) {
		e.keyCode = 0;
	}
}

function fuSemAspas(input, e) {
	var keyCode = e.keyCode; 
	if(keyCode == 39 || keyCode == 34) {
		e.keyCode = 0;
	}
}

function validarCaracteresEspeciais(input, e) {
	var keyCode = e.keyCode; 
	
	if( (keyCode > 32 && keyCode < 40) || 
	    (keyCode >41 && keyCode<45) || 
	    keyCode==63 || keyCode==64 || 
	    (keyCode >93 && keyCode<97)|| 
	    keyCode==126 || keyCode==47 || keyCode==63 || keyCode==91 || keyCode==93) {
	   
		e.keyCode = 0;
	}
}

function validarCaracteresEspeciaisDeclaracao(input, e) {
	var keyCode = e.keyCode; 
	
	if(keyCode == 34 || keyCode == 39 || keyCode == 42 || 
	    keyCode == 47 || keyCode == 58 || keyCode == 60 || keyCode == 62 ||
	    keyCode == 63 || keyCode == 92 || keyCode == 96 || keyCode == 124) {
		e.keyCode = 0;
	}
}

function formatarCNPJ(campo) { 
    var tecla = event.keyCode; 
    var vr; 
    var tam; 
    var TamanhoMaximo = 14; 
  	
    vr = campo.value; 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace(",", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    tam = vr.length; 
	
    if (tam < TamanhoMaximo && tecla != 8) 
    { 
      tam = vr.length + 1; 
    } 

    if (tecla == 8) 
    { 
      tam = tam - 1; 
    } 

    if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) 
    { 
      if (tam <= 2) 
      { 
        campo.value = vr; 
      } 
       if ((tam > 2) && (tam <= 6)) 
       { 
         campo.value = vr.substr(0, tam - 2) + '-' + vr.substr(tam - 2, tam); 
       } 
       if ((tam >= 7) && (tam <= 9)) 
       { 
         campo.value = vr.substr(0, tam - 6) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 10) && (tam <= 12)) 
       { 
         campo.value = vr.substr(0, tam - 9) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 13) && (tam <= 14)) 
       { 
         campo.value = vr.substr(0, tam - 12) + '.' + vr.substr(tam - 12, 3) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 15) && (tam <= 17)) 
       { 
         campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + '-' + vr.substr(tam - 2, tam); 
      } 
    } 
} 

function comboText(nomeCampo) {
	var obj =  document.all(nomeCampo);

	if (obj == null || isNaN(parseInt(obj.selectedIndex)))return("");
	
	var texto = obj.options[obj.selectedIndex].text;
	return texto;
}

function obterTextoSelecionado(nomeCampoCodigo, nomeCampoDescricao){
	var cdCodigo = document.forms[0].elements[nomeCampoCodigo];	

	if (cdCodigo.value == '') {
		document.all(nomeCampoDescricao).value = '';
	}
	else {
		document.all(nomeCampoDescricao).value = cdCodigo.options[cdCodigo.selectedIndex].text;
	}
}

function validarDigitoData(obj) {
//modo de usar:   onKeyPress="javascript:validaDigito(this)"
	if ((event.keyCode < 48) ||(event.keyCode > 57))
		event.returnValue = false
	else {
	if(obj.value.length== 2 || obj.value.length== 5) 
		obj.value += "/"
	}
}

function validarData(strData){
    dia = strData.substr(0,2)
    mes = strData.substr(3,2)
    ano = strData.substr(6,4)
	
	 //Valida se a data possui 10 caracteres
	 if(strData.length > 0 ){
	 
		if(strData.length < 10 ){
			    return 1;
		}
	}
		//Valida se a data é válida (números e barras no lugar certo)
    
 
	    if(isNaN(dia) || isNaN(mes) || isNaN(ano) ||
        	strData.charAt(2) != "/" || strData.charAt(5) != "/") {
	    	return 2;
    	}


    //Checa se o dia existe
    maxDias = 0;   //Variável para controlar o maior número possivel para o dia
    switch(parseFloat(mes)){
	case 4:
	case 6:
	case 9:
	case 11:
	    maxDias = 30;
        break;
	case 2:
        if(ano%4==0){
		    maxDias = 29;
	    }else{
		    maxDias = 28;
	    }
	    break;
	default:
	    maxDias = 31;
	    break;
    }

    if(dia>maxDias || dia<1){
	    return 4;
    }

    //Valida se o mes está correto
    if(mes<1 || mes>12){
	    return 3;
    }

    
    if(ano < 1500){
        return 5;
    }	

    return 0;

}

function Periodo(Data1,Data2){

    //Verifica se data fim é menor que data de início

    var vData1 = Data1.substr(6,4) + Data1.substr(3,2) + Data1.substr(0,2);
    var vData2 = Data2.substr(6,4) + Data2.substr(3,2) + Data2.substr(0,2);
    if (vData2 < vData1) {
        return false;
        }
    else {   
        return true;
    }
}

function verificaData(valor,campo){
//modo de usar:   onBlur="javascript:verifica(this.value,this.name,'nomeFormulario')"
	if (valor != "") {
	
		if(validarData(valor) == 1){
			alert('Data inválida, Coloque no formato dd/mm/aaaa');
			document.forms[0].elements[campo].focus();
			return false;
		}
		
		if(validarData(valor) == 2){
			alert('Data inválida, Coloque no formato dd/mm/aaaa');
			document.forms[0].elements[campo].focus();
			return false;
		}
		
		if(validarData(valor) == 3){
			alert('Mês inválido');
			document.forms[0].elements[campo].focus();
			return false;
		}
		
		if(validarData(valor) == 4){
			alert('Dia inválido');
			document.forms[0].elements[campo].focus();
			return false;
		}
		
		if(validarData(valor) == 5){
			alert('Ano Inválido');
			document.forms[0].elements[campo].focus();
			return false;
		}
			
	}
	
}

function verificarData(valor,campo){
//modo de usar:   onBlur="javascript:verifica(this.value,this)"
var numerico = "1234567890";

	if(valor.length == 1 ){
		if(numerico.indexOf(valor) < 0) {
			return false;
		}
	}
	
	if (trim(valor) != "") {

		if(validarData(valor) == 1){
			exibeMensagemErro(campo, "Data inválida");
		}
		
		if(validarData(valor) == 2){
			exibeMensagemErro(campo, "Data inválida");
		}
		
		if(validarData(valor) == 3){
			exibeMensagemErro(campo, "Mês inválido");
		}
		
		if(validarData(valor) == 4){
			exibeMensagemErro(campo, "Dia inválido");
		}
		
		if(validarData(valor) == 5){
			exibeMensagemErro(campo, "Ano Inválido");
		}
	}
}

function exibeMensagemErro(campo, mensagem) {
	
	alert(mensagem);
	campo.focus();
	return false;
}
	
function changeNumeroItensPorPagina(value) {
	document.forms[0].numeroItensPagina.value=value;
	submeter('pesquisar');
}

function changeNumeroItens(value) {
	document.forms[0].numeroItensPagina.value=value;
	submeter('pesquisar');
}

// Exibe os próximos registros
function mostrarRegistrosAFrente(campoPaginaAtual, nomeAcao) {
	campoPaginaAtual.value = parseInt(campoPaginaAtual.value) + 1;
	document.forms[0].acao.value = nomeAcao;
	sendActionForm(document.forms[0]);
}

// Exibe os registros anteriores
function mostrarRegistrosAnteriores(campoPaginaAtual, nomeAcao) {
	campoPaginaAtual.value = parseInt(campoPaginaAtual.value) - 1;
	document.forms[0].acao.value = nomeAcao;
	sendActionForm(document.forms[0]);
}

function enableFields(form) {
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].disabled != undefined && form.elements[i].disabled) {
			form.elements[i].disabled = false;
		}
	}
}

function submitForm(form, enableDisabledFields) {
	if (enableDisabledFields) {
		enableFields(form);
	}
	
	sendActionForm(form);
}

function setRadio(radio, valor) {
	for (var i = 0; i < radio.length; i++) {
		if (radio[i].value == valor) {
			radio[i].checked = true;
			return true;
		}
	}
}

function getValorRadio(radio) {
	var retorno = "";
	for (var i = 0; i < radio.length; i++) {
		if (radio[i].checked) {
			retorno = radio[i].value;
			break;
		}
	}
	
	return retorno;
}


function transformToHiddenField(originalField) {
	if (originalField.tagName == "INPUT" || originalField.tagName == "SELECT") {
		var hiddenField = document.createElement("INPUT");
		hiddenField.type = "hidden";
		hiddenField.name = originalField.name;
		hiddenField.value = originalField.value;
		return hiddenField;
	}
	
	return;
}

/*
 *	Desabilita um determinado campo. 
 *  Quando for definido TRUE para o paramentro createHiddenField, cria-se um campo hidden no form.
 */
function disableField(field, createHiddenField) {
	field.disabled = true;
	if (createHiddenField) {
		field.form.appendChild(transformToHiddenField(field));
	}
}

/*
 *  Adiciona a quebra de linha a uma determinada string
 */
function insertLineFeed(str) {
	var newStr = "";
	var initialIndex = 0;
	while (str.indexOf("\\/n") > -1) {
		var lastIndex = str.indexOf("\\/n");
		newStr += str.substring(0, lastIndex);
		newStr += "\r\n";
		str = str.substring(lastIndex + 3, str.length);
	}
	return newStr + str;
}

var formSubmited = false;
/*
 * Envia requisição HTML para o servlet, efetuando o bloqueio para que novas requisições não possam
 * ser enviadas enquanto não houver uma resposta da anterior.
 */
function sendActionForm(form) {
	sendActionFormPrivate(form, true);
}

/*
 * Envia requisição HTML para o servlet, efetuando o bloqueio para que novas requisições não possam
 * ser enviadas enquanto não houver uma resposta da anterior.
 * Quando definido FALSE para o parametro bloquear não efetua bloqueio.
 */
function sendActionFormPrivate(form, bloquear) {
	if (formSubmited) {
		return;
	} else {
	    browser = new Browser();
	    if(browser.isIE){
			form.fireEvent("onsubmit");
		}
		form.submit();
		if (bloquear) {
			formSubmited = true;
			document.body.style.cursor = "wait";
		}
	}
}

function msgNaoVinculado() {
	alert('Usuário não vinculado a Unidade.');
}

function tratarCaracteres(campo){
var str = campo;
var caracteres = "' ";
caracteres = caracteres + '"';
var result = true;

	for (i = 0;i<caracteres.length;i++){
		if(str.indexOf(caracteres.charAt(i)) != -1){
			var strerror = caracteres.substring(i,i+1);
			var result = false;
			alert("Você digitou o seguinte caracter inválido:" + " " + strerror + " ");
			//break;
			return false;
		}
	}
	return true;
}

function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isOP    = false;  // Opera
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "Opera";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isOP = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as Netscape 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }

  s = "MSIE";
  if ((i = ua.indexOf(s))) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
}

