// --- Funções gerais
// 	funcoes a fazer de edições
//		datas
//		retirar zeros não validos (a esquerda)
//		retirar brancos do inicio
//		colocar zeros a esquerda
//function imprimir()
//{
//	if (window.print) 
//	{
//	 confirma = confirm('Deseja imprimir o relatório?');
//		if (confirma) window.print();    
//	}
//}
function beginDownload(arquivo) {
   marq = arquivo;
   mUrl = 'http://200.252.242.24/csc/tmp/'+marq;
   window.location = mUrl;
}
function mascaraDECampo(campo, mascara, event) {
   tamc = campo.value.length;
   tamm = mascara.length;
   if (tamc >= tamm)     return campo;
   var m=(tamm-1);
   var n=(tamc-1);
   var resp="";
   for ( i=n ; i >= 0 ; i-- )
   {
      caracter = campo.value.substr(i,1);
      masctipo = mascara.substr(m,1);
      if (masctipo == '9') { resp = caracter+resp; }
	  else
	  { 
          if (masctipo == 'A') { resp = caracter+resp; }
		  else
		  {
		      resp = caracter+masctipo+resp;
			  m--;
		  }
	  }
	  m--;
   }
//      alert( 'resp: ' + resp );
   return campo.value = resp;
}
function mascaraEDCampo(campo, mascara, event) {
   tamc = campo.value.length;
   tamm = mascara.length;
   if (tamc >= tamm)     return campo;
   var m=0;
   var resp="";
   for ( i=0 ; i <= tamc ; i++)
   {
      caracter = campo.value.substr(i,1);
      masctipo = mascara.substr(m,1);
      if (masctipo == '9') { resp = resp+caracter; }
	  else
	  { 
          if (masctipo == 'A') { resp = resp+caracter; }
		  else
		  {
		      resp = resp+masctipo+caracter;
			  m++;
		  }
	  }
	  m++;
   }
//      alert( 'resp: ' + resp );
   return campo.value = resp;
}
function mascaraVideoCampo(campo, mascara, event) {
//   
//   esta com problema, porque a tecla lida nao corresponde ao caracter
//   exemplo = numeral 1 tem em dois lugares um funciona no outro nao
//				tem que mexer mais, outra o campo contera aquela informações
//				não ficando somente imaginario
//
   var naveTipo = (navigator.appName.indexOf("Netscape")!=-1);
   var tecla    = (naveTipo) ? event.which : event.keyCode; 
// --- é aqui
   key = String.fromCharCode(tecla);
// 
   tamc = campo.value.length;
   tamm = mascara.length;
   masctipo = mascara.substr(tamc,1);
   vlr  = campo.value; 
//   alert( 'tecla: ' + tecla + ' valor: ' + campo.value + ' Key ' + key + 
//          '  -> mascara: ' + masctipo + ' A ' + tamc + ' B ' + tamm); 
   if (tamc >= tamm)     return true;
   if (masctipo == '9')  return true; 
   if (masctipo == 'A')  return true;
   campo.value = campo.value+masctipo+key;
//   alert( 'pass: ' + campo.value); 
   return true;
}
function autoTab(campo, tam, event) {
   var naveTipo = (navigator.appName.indexOf("Netscape")!=-1);
   var keyCode  = (naveTipo) ? event.which : event.keyCode; 
   var filter   = (naveTipo) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
   if (campo.value.length >= tam && !contemDigito(filter,keyCode)) 
   {
      campo.value = campo.value.slice(0, tam);
      campo.form[(getPosicao(campo)+1) % campo.form.length].focus();
   }
}
function getPosicao(campo) {
   var ind = -1, i = 0, found = false;
   while (i < campo.form.length && ind == -1)
      if (campo.form[i] == campo)
	     ind = i;
      else 
	     i++;
   return ind;
}
function contemDigito(filtro, ele) {
   var found = false, ind = 0;
   while(!found && ind < filtro.length)
      if(filtro[ind] == ele)
         found = true;
      else
         ind++;
   return found;
}
function verificaDigito(tipo, caractere ) 
{ 
   var strValidos = "" 
   if (tipo == 'A') var strValidos = "ABCDEFGHIJKLMNOPQRSTUVXYWZabcdefghijklmnopqrstuvxywz _"; 
   if (tipo == 'B') var strValidos = "ABCDEFGHIJKLMNOPQRSTUVXYWZabcdefghijklmnopqrstuvxywz _áàãÁÀÃéÉíÍóÓõÕúÚüÜ";
   if (tipo == 'C') var strValidos = "ABCDEFGHIJKLMNOPQRSTUVXYWZabcdefghijklmnopqrstuvxywz _0123456789";
   if (tipo == 'N') var strValidos = "0123456789";
   if ( strValidos.indexOf( caractere ) == -1 ) 
      return false; 
   return true; 
} 
function validaDigito(tipo, campo, event) 
{ 
   var BACKSPACE=  8; 
   var key; 
   var naveTipo = (navigator.appName.indexOf("Netscape")!=-1);
   var tecla    = (naveTipo) ? event.which : event.keyCode; 
   key = String.fromCharCode( tecla); 
//   alert( 'key: ' + tecla + ' letra: ' + key + '  -> campo: ' + campo.value); 
   if ( tecla == 13 )         return false; 
   if ( tecla == BACKSPACE )  return true; 
   return ( verificaDigito(tipo, key)); 
} 
function alinhaCampo(tam, alinha, campo, event) 
{ 
   return true; 
} 
function FormataCNPJ( el ) 
{ 
   vlr  = el.value; 
   tam  = vlr.length; 
   if ( vlr.indexOf(".") == -1 ) 
   { 
      if ( tam <= 2)                  el.value = vlr; 
      if ((tam > 2)   && (tam <= 6) ) el.value = vlr.substr(0,2)+'.'+vlr.substr(2,tam); 
      if ((tam >= 7)  && (tam <= 10)) el.value = vlr.substr(0,2)+'.'+vlr.substr(2,3)+'.'+vlr.substr(5,3)+'/'; 
      if ((tam >= 11) && (tam <= 18)) el.value = vlr.substr(0,2)+'.'+vlr.substr(2,3)+'.'+vlr.substr(5,3)+'/'
	                                           + vlr.substr(8,4)+'-'+vlr.substr(12,2) ; 
   } 
   return true; 
} 
function browser() {
   nome   = navigator.appName
   versao = navigator.appVersion
}
function dataHoje() {
   var data       = new Date();
   var mesN       = data.getMonth() + 1;
   var diaNSemana = data.getDay() + 1;
   var diaN       = data.getDate();
   var anoN       = data.getYear();
   diaSemana = new Array('','Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado');
   mesAno    = new Array("","Janeiro","Fevereiro","Março","Abril","Maio","Junho",
                "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
   var dataHoje =(" " + diaSemana[diaNSemana] + ", " + diaN + "/" + mesN + "/" + anoN );
   return dataHoje;
}
function horaHoje() {
   var hora       = new Date();
   var horaHora   = hora.getHours();
   var horaMinuto = hora.getMinutes();
   var horaHoje =("Hora:" + horaHora + ":" + horaMinuto );
   return horaHoje;
}
function extenso(xvalor, xmoeda, xtami, xtamm) {
// ---
   valor = xvalor.value;
   moeda = xmoeda.value;
   tami  = xtami.value;
   tamm  = xtamm.value;
// --- sem separação silabica
   unidade       = new Array('','UM','DOIS','TRES','QUATRO','CINCO','SEIS','SETE','OITO','NOVE');
   unidadeesp    = new Array('','ONZE','DOZE','TREZE','QUATORZE',
                             'QUINZE','DEZESEIS','DEZESETE','DEZOITO','DEZENOVE');
   dezena        = new Array('','DEZ','VINTE','TRINTA','QUARENTA',
                             'CINQUENTA','SESSENTA','SETENTA','OITENTA','NOVENTA');
   centena       = new Array('','CENTO','DUZENTOS','TREZENTOS','QUATROCENTOS',
		                     'QUINHENTOS','SEISCENTOS','SETECENTOS','OITOCENTOS','NOVECENTOS');
// --- moedas
   moeda         = new Array('REAL','REAIS','CENTAVO','CENTAVOS');
// --- com separação silabica
   divunidade    = new Array('','3UM','4DOIS','4TRES','3QUA3TRO','3CIN2CO','4SEIS','2SE2TE','2OI2TO','2NO2VE');
   divunidadeesp = new Array('','2ON2ZE','2DO2ZE','3TRE2ZE','3QUA3TOR2ZE',
                             '4QUIN2ZE','2DE2ZE4SEIS','2DE2ZE2SE2TE','2DE3ZOI2TO','2DE2ZE2NO2VE');
   divdezena     = new Array('','3DEZ','3VIN2TE','4TRIN2TA','3QUA3REN2TA',
                             '3CIN4QUEN2TA','3SES3SEN2TA','2SE3TEN2TA','2OI3TEN2TA','2NO3VEN2TA');
   divcentena    = new Array('','3CEN2TO','2DU3ZEN3TOS','3TRE3ZEN3TOS','3QUA3TRO3CEN3TOS',
		                     '3QUI4NHEN3TOS','4SEIS3CEN3TOS','2SE2TE3CEN3TOS','2OI2TO3CEN3TOS','2NO2VE3CEN3TOS');
// --- medidas de unidades
   medidaunidade = new Array ('TRILHAO','BILHAO','MILHAO','MIL','');   
   medidasunidade= new Array ('TRILHOES','BILHOES','MILHOES','MIL','');
// --- juncoes
   juncaoe = 'E ';
// ---  prepara valor (0bs. o valor tem que vir com as duas casas decimais)
   vlrfixo = strzeroVlr(valor, 18);
// ---
   vlrextenso = "";
   for (i=0; i<=4; i++)
   {
      ind        = (i * 3);
      vlrunid    = vlrfixo.substr(ind, 3);
	  if (i < 4) vlrpunid    = vlrfixo.substr((ind+3), 3);
	  if (vlrunid > 0)
	  { 
	     vlrcentena = vlrunid.substr(0,1);
         vlrdezena  = vlrunid.substr(1,1);
	     vlrunidade = vlrunid.substr(2,1);
	     medunid    = medidaunidade[i];
	     medsunid   = medidasunidade[i];
	  	 if (vlrcentena > 0)  vlrextenso = vlrextenso+centena[vlrcentena]+' ';
	  	 if (vlrcentena > 0 && ((vlrdezena > 0)||(vlrunid > 0)))  vlrextenso = vlrextenso+juncaoe;
		 if (vlrdezena > 1)   vlrextenso = vlrextenso+dezena[vlrdezena]+' ';
		 if (vlrdezena == 1)
		 {   
		    if (vlrunid == 0) vlrextenso = vlrextenso+dezena[vlrdezena]+' ';
			if (vlrunid > 0)  vlrextenso = vlrextenso+unidadeesp[vlrunidade]+' ';
		 }
		 else
		 {
	  	    if (vlrdezena > 0 && (vlrunid > 0))  vlrextenso = vlrextenso+juncaoe;
		    if (vlrunidade > 0)  vlrextenso = vlrextenso+unidade[vlrunidade]+' ';
		 }
		 if (vlrunid > 1)     vlrextenso = vlrextenso+medsunid+' ';
		 if (vlrunid == 1)    vlrextenso = vlrextenso+medunid+' ';
      }
	  if (i < 4 && vlrpunid > 0) vlrextenso = vlrextenso+juncaoe;
   }
   if (vlrfixo > 1)      vlrextenso = vlrextenso+moeda[1]+' ';
   if (!(vlrfixo > 1))   vlrextenso = vlrextenso+moeda[0]+' ';
   vlrunid    = vlrfixo.substr(16, 2);
   if (vlrunid > 0)
   {
      vlrextenso = vlrextenso+juncaoe; 
      vlrdezena  = vlrunid.substr(0,1);
      vlrunidade = vlrunid.substr(1,1);
      if (vlrdezena > 1)   vlrextenso = vlrextenso+dezena[vlrdezena]+' ';
      if (vlrdezena == 1)
      {   
          if (vlrunid == 0) vlrextenso = vlrextenso+dezena[vlrdezena]+' ';
	      if (vlrunid > 0)  vlrextenso = vlrextenso+unidadeesp[vlrunidade]+' ';
      }
      else
      {
	  	 if (vlrdezena > 0 && (vlrunid > 0))  vlrextenso = vlrextenso+juncaoe;
	     if (vlrunidade > 0)  vlrextenso = vlrextenso+unidade[vlrunidade]+' ';
      }
      if (vlrunid.substr(1,2) > 1)      vlrextenso = vlrextenso+moeda[3]+' ';
      if (!(vlrunid.substr(1,2) > 1))   vlrextenso = vlrextenso+moeda[2]+' ';
   }
// ---
   document.write('Valor: ' + vlrfixo +'<br>'+ ' Extenso: ' + vlrextenso);
// ---
}
function strzeroVlr(Val, Qtd)
{
   Zeros      = "000000000000000000000000000000";
   QtdDigitos = Val.length;
   QtdZeros   = Qtd - QtdDigitos;
   xis = Val;  
   if (QtdZeros > 0) xis = Zeros.substr(0, QtdZeros)+Val;
   return xis;
}

