//Funções globais
function mascara(formato, keypress, objeto){
formato = toUpperCase(formato);
campo = eval (objeto);
// CEP
if (formato=='CEP'){
separador = '-'; 
conjunto1 = 5;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador;
}
}

// DATA
if (formato=='DATA'){
separador = '/'; 
conjunto1 = 2;
conjunto2 = 5;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador;
}
if (campo.value.length == conjunto2){
campo.value = campo.value + separador;
}
}

// HORA
if (formato=='HORA'){
separador = ':'; 
conjunto1 = 2;
conjunto2 = 2;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador;
}
if (campo.value.length == conjunto2){
campo.value = campo.value + separador;
}
}

// TELEFONE
if (formato=='TELEFONE'){
separador = '-'; 
conjunto1 = 4;
if (campo.value.length == conjunto1){
campo.value = campo.value + separador;
}
}
}

//Tranforma o que esta sendo digitado em minusculo. usar no evento onKeyUp
function minusculo(str)
{
	return eval("document.all." + str +".value.toLowerCase()");
}

//Tranforma o que esta sendo digitado em maiusculo. usar no evento onKeyUp
function maiusculo(str)
{
	return eval("document.all." + str +".value.toUpperCase()");
}

//Remove espaços da esquerda e direita de uma string
function alltrim(InString)
{ 
   var LoopCtrl=true;
   while (LoopCtrl) {
	if (InString.indexOf("  ") != -1)
	{
		Temp = InString.substring(0, InString.indexOf("  "))
		InString = Temp + InString.substring(InString.indexOf("  ")+1,InString.length)
	} else
		LoopCtrl = false;
   }
   if (InString.substring(0, 1) == " ")
	{InString = InString.substring(1, InString.length)}
   if (InString.substring (InString.length-1) == " ")
	{InString = InString.substring(0, InString.length-1)}
   return (InString)
}
void

function validar_campos(form1)
{
	//var strDigito = eval("document.all." + verifica +".value"); //Recebe o valor do campo
	//array=["nome","endereco","cidade","E-mail","telefone","mensagem"];
	//var requerido = "document.all."+form1+".elements[x].requerido";	
	var cont = "document.all."+form1+".elements.length";
	var tipo_input = "document.all."+form1+".elements[x].type";
	var valor = "document.all."+form1+".elements[x].value";
	var foco = "document.all."+form1+".elements[x].focus()";
	var nome = "document.all."+form1+".elements[x].nome";
	var tipo = "document.all."+form1+".elements[x].tipo";	
	var name = "document.all."+form1+".elements[x].name";
	var tamanho = "document.all."+form1+".elements[x].value.length";
	var numero;
	var texto;
	var moeda;
	var flutuante;
	var inteiro;
	var hora;
	var data;
	var login;
	var email;
	var result_valida;
	var result_validata;
	var result_valihora;
	var retorno = true;
	//alert(false && false);
	for(x=0;x<eval(cont); x++)
	{
		//alert("tipo: "+eval(tipo)+" Campo : "+x+" tamanho: "+eval(tamanho));
		if(eval(tipo)!=null && alltrim(eval(valor))=="" || eval(tipo)!=null && eval(tamanho)<=0)
		{
			alert("A informação do campo (" + eval(nome) + ") é indispensável.");
			eval(foco);
			retorno = false;
			break;
		}
		if(eval(tipo)=="alfa" || eval(tipo)=="sql" || eval(tipo)=="")
		{	
			if(valida(eval(name), 'alfa') == false)
			{
				eval(foco);
				retorno = false;
				break;				
			}
		}
		else if(eval(tipo)=="data")
		{
			data = eval(name);
			result_valida = valida(data, 'data');
			result_validata = validata(data);
			if(result_valida==false || result_validata==false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="hora")
		{
			hora = eval(name);
			result_valida = valida(hora, 'hora');
			result_valihora = valihora(hora);
			if(result_valida==false || result_valihora==false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="numero")
		{
			numero = eval(name);
			result_valida = valida(numero, 'numero');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="moeda")
		{
			moeda = eval(name);
			result_valida = valida(moeda, 'moeda');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="flutuante")
		{
			flutuante = eval(name);
			result_valida = valida(flutuante, 'flutuante');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="inteiro")
		{
			inteiro = eval(name);
			result_valida = valida(inteiro, 'inteiro');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="texto")
		{
			texto = eval(name);
			result_valida = valida(texto, 'texto');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="login" || eval(tipo)=="senha")
		{
			login = eval(name);
			result_valida = valida(login, 'login');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
		else if(eval(tipo)=="email")
		{
			email = eval(name);
			result_valida = valida(email, 'email');
			if(result_valida == false)
			{
				eval(foco);
				retorno = false;
				break;
			}
		}
	}
	return retorno;
}

/*Funcao javascript que verifica o uso de caracters invalidos num determinado campo de texto
No formulario HTML é necessário colocar o evento keyPress chamando a funcao
assim ele verificará os caracters digitados.
Concatena numa variavel um string contendo todos os caracters nao permitidos
Funcao que faz a verificacao do campo*/
function valida(verifica, tipo)
{
	var strDigito = eval("document.all." + verifica +".value"); //Recebe o valor do campo
	var caracteres = caracteres_invalidos(tipo); //recebe a string com caracters invalidos
	var result = true;
	
	if(event.keyCode == 13 || event.keyCode == 0)
	{
		if(tipo == "email" && ((strDigito.indexOf("@") == -1) || (strDigito.indexOf(".") == -1)))
		{
			window.alert("Endereço eletrônico inválido.");
			eval("document.all." + verifica +".focus()");
			result = false;		
		}
	}

	for (i = 0; i < caracteres.length; i++) //loop executado de 0 ao numero total de caracters invalidos
	{
		if(strDigito.indexOf(caracteres.charAt(i)) != -1) //verifica se o value do campo strDigito contem alguma caracter invalido
		{
			var strerror = caracteres.substring(i,i+1); //recebe o caracter errado
			result = false;
			if (strerror == " "){ strerror = "Espaço" }
			window.alert("Você digitou o seguinte caracter invalido:" + "  " + strerror + "  "); //alerta mostrando o caracter digitado errado
			tirar = eval("document.all." + verifica +".value");
			while(tirar.search(strerror)!=-1)
			{
				if(tipo == "flutuante")
				{
					tirar = tirar.toString().replace(strerror,"");
				}
				else
				{
					tirar = tirar.replace(strerror,"");
				}
				break;
			}
			eval("document.all." + verifica +".value = tirar");
			eval("document.all." + verifica +".focus()");
			break; //interrompe o loop
		}
	}
	return result;
}
//Pega caracteres invalidos pelo tipo. Agregada a valida(a,b)
function caracteres_invalidos(tipo)
{  
	var strinvalido
	var acentos = 'àèìòùâêîôûäëïöüáéíóúãõçÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÁÉÍÓÚÃÕ'
	var minusculas = 'abcdefghijklmnopqrstuvwxyz'
	var maiusculas = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	var outras = '[\]^_`{|}~'
		
	if (tipo == "numero")
		{
		strinvalido = ' !"#$%&\'()*+-/:;<=>?@'			
		strinvalido+= acentos+minusculas+maiusculas+outras
		}
	else if(tipo == "moeda")
		{
		strinvalido = '!"#%&\'()*+-/:;<=>?@'			
		strinvalido+= acentos+'abcdefghijklmnopqstvwxyz'+'ABCDEFGHIJKLMNOPQSTVWXYZ'+outras
		}
	else if(tipo == "flutuante")
		{
		strinvalido = ' .!"#%&\'()*+-/:;<=>?@'			
		strinvalido+= acentos+'abcdefghijklmnopqstvwxyz'+'ABCDEFGHIJKLMNOPQSTVWXYZ'+outras
		}		
	else if(tipo == "inteiro")
		{
		strinvalido = ' ,.!"#%&\'()*+-/:;<=>?@'			
		strinvalido+= acentos+'abcdefghijklmnopqstvwxyz'+'ABCDEFGHIJKLMNOPQSTVWXYZ'+outras
		}		
	else if(tipo == "login" || tipo == "senha")
		{
		strinvalido = ' !"#$%&\'()*+,-./:;<=>?@'
		strinvalido+= acentos+maiusculas+outras
		}
	else if (tipo == "data")
		{
		strinvalido = ' !"#$%&\'()*+-:;<=>?@'			
		strinvalido+= acentos+minusculas+maiusculas+outras
		}
	else if (tipo == "hora")
		{
		strinvalido = ' !"#$%&\'()/*+-;<=>?@'			
		strinvalido+= acentos+minusculas+maiusculas+outras
		}
	else if (tipo == "email")
		{
		strinvalido = ' "/\:*,'
		strinvalido+= "'"
		strinvalido+= acentos
		}
	else if (tipo == "texto")
		{
		strinvalido = '1234567890"'
		strinvalido+= "'"
		}
	else if (tipo == "alfa" || tipo == "sql" || tipo == "")
		{
		strinvalido = '"'
		strinvalido+= "'"
		}
	return strinvalido;	
}

function valihora(Hora, HoraIni, HoraFim)
{
	var a = eval("document.all." + Hora +".value");
	var chk = 0;
	var HH = a.slice(0,2);
	var MM = a.slice(3,5);
	var result = true;
	
	if((HH <= 0) || (HH > 23) || HH.indexOf(":")!=-1)
	{ chk = 1;}
	else if((MM < 0) || (MM > 59) || MM.indexOf(":")!=-1)
	{ chk = 1;}
	if(chk == 1)
	{ 
		alert('Hora Inválida! Digite novamente. Ex.: HH:MM');
		eval("document.all." + Hora +".focus()");
		result = false;
	}
	else
	{
		if (HoraIni != null)
		{
			var b=eval("document.all." + HoraIni +".value");
			var c=eval("document.all." + HoraFim +".value");
			if ((b > c) && c != "")
			{
				alert("A hora inicial não pode ser maior do que a final.");
				eval("document.all." + HoraIni +".focus()");
				result = false;
			}
		}
	}
	//alert("resultado da hora "+result);	
	return result;
}

//Script para validar uma data enviada por um parâmetro, validando inclusive se o ano é bisexto
//Parametros Data = data para validar, opcional {DataIni = Data Inicial, DataFim = Data Final} para validar inicial e final
function validata(Data, DataIni, DataFim)
{
	var a = eval("document.all." + Data +".value");
	var chk = 0;
	var maxDay = 0;
	var dd = a.slice(0,2);
	var mm = a.slice(3,5);
	var yyyy = a.slice(6,10);
	var result = true;
	
	maxDay = max_day(mm, yyyy);  
	if((dd <= 0) || (dd > maxDay))
	{ chk = 1;}
	else if((mm <= 0) || (mm > 12))
	{ chk = 1;}
	else if((yyyy <= 0 || yyyy < 1000))
	{ chk = 1;} 

	if(chk == 1)
	{ 
		alert('Data Inválida! Digite novamente. Ex.: dd/mm/aaaa');
		eval("document.all." + Data +".focus()");
		result = false;
	}
	else
	{ 
		if (DataIni != null)
		{
			var b=eval("document.all." + DataIni +".value");
			var c=eval("document.all." + DataFim +".value");
			if ((b > c) && c != "")
			{
				alert("A data inicial não pode ser maior do que a final.");
				eval("document.all." + DataIni +".focus()");
				result = false;
			}
		}
	}
	//alert("resultado da validata "+result);
	return result;
}

//Funcao agregada a validata para ver numero de dias do mes
function max_day(mn, yr)
{
   var mDay;
if((mn == 4) || (mn == 6) || (mn == 9) || (mn == 11))
{ 
mDay = 30;
}
else if(mn == 2)
{
mDay = isLeapYear(yr) ? 29 : 28;    
}
else
{
mDay = 31;
}
return mDay; 

}
//Funcao agregada a validata para ver se o ano é bixesto
function isLeapYear(yr)
{
	if (yr % 2 == 0) 
	return true;
	return false;
}

//Definir mascara
function formatar(src, mask)
{	
	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);
	}
}

// Função para trocar icone em tempo de execução
function EC(TheTR, NomeImagem)
{
var DataTR = eval('document.all.' + TheTR);
var ImgT = eval('document.all.' + NomeImagem);

if (DataTR.style.display=="block" || DataTR.style.display=="" )
{
DataTR.style.display="none";
ImgT.src = "http://www.olinet.com.br/imagens/down.gif";
}
else
{
DataTR.style.display="block";
ImgT.src = "http://www.olinet.com.br/imagens/up.gif";
}
}

//Define a barra de status
function barratatus(msg)
{ 
self.status = msg;
} 
/*
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,ponto,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); ponto=val.indexOf('.');
        if (p<1 || p==(val.length-1) || ponto<1 || ponto==(val.length-1) || valida(nm, "email")) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
*/
/*
function ver_email(str)
{
var teste = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
alert(teste.test(str));
return teste.test(str);
}
*/



/*
Falam q valida numero
function isNumeric(str) { 

 var objRegExp  = /^[0-9]*$/;
 return objRegExp.test(str);

}

Falam q valida se e dinheiro
function isMoney(str) {

 var objRegExp  = /^[0-9]*,\d{2}$/;
 return objRegExp.test(str);

}
*/



/* falam que fotmara hora
function FormataHora(campo,tammax, teclapres) {

 

numHora = 24;

var tecla = teclapres.keyCode;

vr = document.frm.hora.value;

vr = vr.replace( ":", "" );

 

tam = vr.length ;

 

if (tecla == 8 ) {

 tam = tam - 1 ;

}

 

alert(tam);

if (tam == 2) {

    document.frm.hora.value = vr.substr( 0, 2 ) + ':' +  vr.substr( 2, tam );

}

 

if (vr.substr( 0, 2 ) > 24 ) { 

            alert('O limite de horas é 24.');

            document.frm.hora.value = "";

            document.frm.hora.focus();        

}

 

if (vr.substr( 2, 4 ) > 60 ) { 

            alert('O limite de minutos é 60.');

            document.frm.hora.value = "";

            document.frm.hora.focus();

}

 

 

}
*/
/* como chamar a formarahora
<body>

<form name="frm">

            <input type="text" name="hora" onKeyUp="FormataHora(this,4,event);" maxlength="5">

            <input type="text" name="aqualque">

</form>
*/

/*
<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
//******************************************************************************************
//Development by Julio Cezar da Silva (julio_cs@terra.com.br/julio@southern.com.br)
//http://planeta.terra.com.br/informatica/iportal
//******************************************************************************************
//Explicacao do Script
//******************************************************************************************

/* como chamar a verifica char invalido
<body>
<form name="verifica" id="verifica" method="post" action="teste2.htm">
  <p>
    <input type="text" name="login" id="login" onKeyUp="javascript:this.value=this.value.toLowerCase();">
  </p>
  <p>
    <input type="button" name="button" value="OK" onClick="verifica_login(this.form);">
  </p>
</form>
</body>
</html>
*/

/* aceita apenas numeros
function apenasnumericos(caracter) {

 if(document.all) { // Internet Explorer
  var tecla = event.keyCode;
 }
 else {
  if(document.layers) { // Nestcape
   var tecla = caracter.which;
  }
 }

 if(tecla > 47 && tecla < 58) { // numeros de 0 a 9
  return true;
 }
 else {
  if (tecla != 8) { // backspace
   return false;
  }
  else {
   return true;
  }
 }

}
*/

/* como chama apenas numericos
<BODY ONLOAD=javascript:document.form1.xxx.focus();>
<form name="form1">
Apenas Numeros: <input type="text" name="xxx" onKeyPress="return apenasnumericos(event);">
</FORM>
*/


