//essa função retorna Vazio "" se tudo estiver OK!! caso contrário ela retorna um exemplo 
//de como seria certo a digitação
function fnValidaFloat(nValor,nTamanho,nPrecisao,sCaracterePrecisao){

var bRetorno = true;

/*
var sVerifica
	
if (sCaracterePrecisao == ","){
   sVerifica = "."}
else{
   sVerifica = ","}

var sVerificaCaractere = nValor.substr(nValor.indexOf(sVerifica),1)
	
if (sVerificaCaractere == sVerifica){
   bRetorno = false;}

*/

if (nValor.indexOf(sCaracterePrecisao) == -1){

	if (isNaN(nValor) || (nValor.length > (nTamanho - nPrecisao)) || (nValor.length == 0)){
		bRetorno = false;}

}
else{

	var nInteiro
	var nDecimal

	nInteiro = nValor.substr(0,nValor.indexOf(sCaracterePrecisao))
	nDecimal = nValor.substr(nValor.indexOf(sCaracterePrecisao) + 1,nValor.length)

	if (isNaN(nInteiro) || (nInteiro.length > (nTamanho - nPrecisao)) || (nInteiro.length == 0)){
		bRetorno = false;}

	if (isNaN(nDecimal) || (nDecimal.length > (nPrecisao)) || (nDecimal.length == 0)){
		bRetorno = false;}

}


//se chegou aqui
var sRetorno = ""
if (bRetorno == false){
	for (i = 1;i <= (nTamanho - nPrecisao);i++)
		sRetorno = sRetorno + "9"
		
	sRetorno = sRetorno + sCaracterePrecisao
		
	for (i = 1;i <= (nPrecisao);i++)
		sRetorno = sRetorno + "9"
	
	return sRetorno;	
}
else{
	sRetorno = ""
	return sRetorno;
}

}



function fnReplace(sStringAtual,sCaractere,sNovoValor)
{

var sRetorno = ""

for (i = 0;i < sStringAtual.length;i++)
	{
		if (sStringAtual.charAt(i) == sCaractere)
			{
				sRetorno = sRetorno + sNovoValor
			}
		else
			{
				sRetorno = sRetorno + sStringAtual.charAt(i)
			}
	}

return sRetorno;

}



//Limpa uma caixa combo, basta apenas passar 
//o nome do campo
//esta função limpa todos os itens menos o primeiro
function fnLimpaCaixa(sNomeCampo)
{

var obj = document.form
var nCont = 1 //contador
var nTamanho  

nTamanho = obj[sNomeCampo].options.length

for (nCont = nTamanho -1 ;nCont >= 1;nCont--){
    obj[sNomeCampo].options[nCont] = null;
    }

}


/*function fnProcessa(sNomeArqProcessamento,sNomeCampoAtual,sNomeCampoLimpa,sNomeFrame,sParam)
{

var obj = document.form

if ((obj[sNomeCampoAtual].selectedIndex > 0)){
   fnLimpaCaixa(sNomeCampoLimpa)
   parent[sNomeFrame].location.target="_top" href= sNomeArqProcessamento + "?" + sParam
   }

}*/


function fnCadastraOption(sNomeCampo,sValor,sValorTexto)
{

var obj = document.form
var oOption = document.createElement("OPTION")
oOption.text = sValorTexto
oOption.value = sValor
obj[sNomeCampo].add(oOption)

}



function fnCadOption(sNomeForm,sNomeCampo,sValor,sValorTexto)
{

var obj = document[sNomeForm]
var oOption = document.createElement("OPTION")
oOption.text = sValorTexto
oOption.value = sValor
obj[sNomeCampo].add(oOption)

}

function fnAbreJanela(sURL,sNomeJanela,sParametros)
{

window.open(sURL,sNomeJanela,sParametros);

}


function fnAbreAjuda(sURL,sNomeJanela,sParametros)
{

window.open(sURL,sNomeJanela,sParametros);

}

function fnTestaValor(e){
   chars= "0123456789/";
   e    = window.event;
   if(chars.indexOf(String.fromCharCode(e.keyCode))==-1) window.event.keyCode=0;
 };


function fnVerData(data)
{
   var meses = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
   var hoje = new Date();
   var ano = hoje.getYear();
   if(ano >= 50 && ano <= 99)
      ano = 1900 + ano
   else
      ano = 2000 + ano;
   var dt = new String(data);
   var pos1 = dt.indexOf("/",0)
   if(pos1 < 0) 
   {
      return false;
   }
   var dd = dt.substring(0,pos1)
   pos2 = dt.indexOf("/", pos1 + 1)
   if(pos2 < 0)
   {
      return false;
   }
   var mm = dt.substring(pos1 + 1,pos2)
   var aa = dt.substring(pos2 + 1,dt.length)
   var resto = parseInt(aa,10) % 4
   if(!resto)
   {
      meses[1] = 29;
   }
   if(mm > 12 || mm < 1)
   {
      return false;
   }
   if(dd > meses[mm - 1] || dd < 1)
   {
      return false;
   }
   if(aa.length < 4)
      return false;
   if(aa < 1900 || aa > ano)
   {
      alert("Ano inválido " + aa);
	return false;
   }
   if(mm.length < 2)
      mmstr = "0" + mm
   else
 	mmstr = mm;
   if(dd.length < 2)
	ddstr = "0" + dd
   else
 	ddstr = dd;
   dataconv = ddstr + "/" + mmstr + "/" + aa;
   return true;
}

function fnRetiraEspaco(cadeia)
{
	existe_caractere = false;
	nova_cadeia = cadeia;
	if(cadeia.length > 0)
	{
		caractere = "";
		for(i = 0;i < cadeia.length;i++)
		{
			caractere = cadeia.substr(i,1);
			pos_caractere = (cadeia.substr(i+1) == null)?"":cadeia.substr(i+1);
			if(!existe_caractere)
			{
				if(caractere == " ")
				{
					nova_cadeia = pos_caractere;
				}else
					{
						existe_caractere = true;
					}
			}else
				{
					break;
				}
		}
		cadeia = nova_cadeia;
		existe_caractere = false;
		caractere = ""
		for(i = cadeia.length - 1;i >= 0;i--)
		{
			caractere = cadeia.substr(i,1);
			ant_caractere = (cadeia.substr(0,i) == null)?"":cadeia.substr(0,i);
			if(!existe_caractere)
			{
				if(caractere == " ")
				{
					nova_cadeia = ant_caractere;
				}else
					{
						existe_caractere = true;
					}
			}else
				{
					break;
				}
		}
		cadeia = nova_cadeia;
	}else
		{
			cadeia = "";//Vazia
		}
	return cadeia;
}

function fnValidaHora(sHora){

var sHH
var sMM

//nenhuma data foi informada
if (sHora.length == 0){
	return false;}

sHH = sHora.substr(0,2)
sMM = sHora.substr(3,2)	

if ((sHH.length != 2) || (isNaN(sHH) == true)){
	return false;}
	
if ((sMM.length != 2) || (isNaN(sMM) == true)){
	return false;}	

if ((sHH > 23)){
	return false;}
	
if ((sMM > 59)){
	return false;}	

if (sHora.substr(2,1) != ":"){

	return false;}	

//se tudo ocorreu bem
return true;	


}



function fnComparaData(Dataini,Datafim)
{
    //Extração do dia, mês e ano da data inicial
    PosBarra = Dataini.indexOf("/");
    DiaI = Dataini.substring(0,PosBarra);
    Dataini = Dataini.substring(PosBarra+1,Dataini.length);
    PosBarra = Dataini.indexOf("/");
    MesI = Dataini.substring(0,PosBarra);
    AnoI = Dataini.substring(PosBarra+1,Dataini.length);
    
    //Extração do dia, mês e ano da data final
    PosBarra = Datafim.indexOf("/");
    DiaF = Datafim.substring(0,PosBarra);
    Datafim = Datafim.substring(PosBarra+1,Datafim.length);
    PosBarra = Datafim.indexOf("/");
    MesF = Datafim.substring(0,PosBarra);
    AnoF = Datafim.substring(PosBarra+1,Datafim.length);
    if (AnoI > AnoF)
    {
         return false;
    }else if (AnoI == AnoF)
	    {
	        if (MesI > MesF)
		  {
		      return false;
		  }else if (MesI == MesF) 
			  {	
			      if(DiaI > DiaF)
				{	
				    return false;
				}else
				    {
					  return true;
				    }
			  }else
		            {
				    return true;
				}
          }else
		  {
			return true;
		  }
}

// verifica se e-mail é válido
function ValidaEmail(valemail)
{	
     //verifica se tem @
     if (valemail.indexOf("@")== -1)
	   {
	     return false;
	  }
	 //verifica se tem ponto       
      if (valemail.indexOf(".")== -1)
      {
		return false;
      }  
      //verifica se começa por @
      if  (valemail.indexOf("@")== 0)
      {
 			return false;
      }
      //verifica se termina com @
      if  (valemail.substr(valemail.length-1,1)=="@")
      {
           return false;
      }
      return true;
    }

function formata_valor(Svalor) {

var valor   = "";
var inicio  = "";
var tam_str = Svalor.length;
var final   = "";
var ponto   = Svalor.indexOf(".");
var virgula = Svalor.indexOf(",");  

  if (ponto != -1) {
     final  = Svalor.substring((ponto+1),(ponto+3));
     inicio = Svalor.substring(0,ponto);
     valor  = inicio + "," + final;
  } else if (virgula != -1) {
     final  = Svalor.substring((virgula+1),(virgula+3));
     inicio = Svalor.substring(0,virgula);
     valor  = inicio + "," + final;
  } else {
     final  = "00";
     inicio = Svalor;
     valor  = inicio + "," + final;  
  }
  
  document.write(FormataPreco(valor,final));

}

function FormataPreco(preco,final) {

	var st = new String(parseFloat(preco));
	ponto = st.lastIndexOf(".");
	
	if(ponto == -1){
		st += ("." + final);
		ponto = st.lastIndexOf(".");
	}

	int = new String(st.substr(0, ponto));
	dec = st.substr(ponto + 1, 2);
	
	if(dec < 10)
		dec = new String("0" + parseInt(dec));

	tam = int.length;
	nst = new String();

	while(tam > 3){
		tam -= 3;
		nst = "." + int.substr(tam, 3) + nst;
	}
	
	if(tam > 0) 
		nst = int.substr(0, tam) + nst;

        return nst + "," + dec;

}

/* Retorna FALSE se a palavra tiver algum caracter diferente dos seguintes:
	-> letras minúsculas: abcdefghijklmnopqrstuvxzyw
	-> letras maiúsculas: ABCDEFGHIJKLMNOPQRSTUVXZYW
	-> números: 1234567890
	-> aspa simples: '
	-> espaço: 
	-> underline: _
	-> hiffen: -
*/
function verificaPalavraAcento(lstrPalavra)
{		
	// Armazena caracteres válidos
	// ============================================================
	var lstrCaracteresPermitidos = " '_-abcdefghijklmnopqrstuvxzywABCDEFGHIJKLMNOPQRSTUVXZYW1234567890";
		
	// Utilizada para percorrer palavra
	// ===================================================
	var lintContador = 0;
		
	// Armazena caracter que será analisado quando estiver percorrendo palavra
	// ============================================================================================
	var lstrCaracterAtual;						
	
	// Verifica se a palavra contém caracteres não permitidos
	// ==========================================================
	while (lintContador <= lstrPalavra.length)
	{
		lstrCaracterAtual=lstrPalavra.slice(lintContador, lintContador + 1)
		if (lstrCaracteresPermitidos.indexOf(lstrCaracterAtual) == -1)
		{
			return false;					
		} 
		lintContador = lintContador + 1;
	}
	return true;		
}

