/*==========================================================================================
Permite que seje digitado somente números.
Esse função deve ser chamada no evento OnKeyPress do objeto TEXT do HTML
Ex: <Input Type="Text" name="txtNumero" OnKeyPress="Numero()">
==========================================================================================*/
function Numero()
{
	if(event.keyCode == 45 || event.keyCode == 43){return false;}

	if (event.keyCode < 48 || event.keyCode > 57) event.keyCode = 0;
}

//==========================================================================================
//Retorna Data e Hora do sistema, separados por virgula.
//Obs: A data retornada estará no formato "dd/mm/aaaa" 
//     e a Hora no formato "hh:mm:ss"
//==========================================================================================

function Hoje() 
{ 
   var Hr;
   var dd,mm,aa;
   var hh,min,seg;
    
Hr = new Date() 
dd = Hr.getDate() 
mm = Hr.getMonth() + 1 
aa = Hr.getYear() 

hh  = Hr.getHours() 
min = Hr.getMinutes() 
seg = Hr.getSeconds() 

DataAtual = ((dd < 10) ? "0" + dd + "/" : dd + "/") 
DataAtual += ((mm < 10) ? "0" + mm + "/" + aa : mm + "/" + aa) 


HoraAtual = ((hh < 10) ? "0" + hh + ":" : hh + ":") 
HoraAtual += ((min < 10) ? "0" + min + ":" : min + ":") 
HoraAtual += ((seg < 10) ? "0" + seg : seg) 

return DataAtual + "," + HoraAtual;

}

//==========================================================================================
//Verifica se a hora informada é valida.
//Retorna FALSE caso hora não válida.
//Retorna TRUE caso hora válida.
//Obs: A hora informada deverá ser passada no formato "hh:mm" 
//==========================================================================================

function ValidaHora(Data,Obrigatorio)
{
	var strHora  = new String();
	var strSplit = Array();
		  strHora = Data.value;
	var hora;
	var minuto;	
	
	hora = "";
	minuto = "";
	
	
	//Permite que seja digitado somente os o valor da hora sem : e os minutos
	
	vntHora = strHora.split(":");
	strSplit= strHora.split(":");
	
	if(String(strSplit[1]) == "undefined")
	{
	  strHora = strSplit[0] + ":00";
	  vntHora = strHora.split(":");
	  strSplit= strHora.split(":");
	}  
	
	
	if (Vazio(strHora)) 
	   {if (Obrigatorio) {return true;}}
	else 
		{
				if (Vazio(String(strSplit[0])) || Vazio(String(strSplit[1]))) 
				{
					if (Obrigatorio) {return true;}
				}
               hora = parseInt(vntHora[0]);
    			 if (hora == 0)
					{   
					  hora = 1;
					}

                if (!hora)
                {
                  return false;
                }  
				
				if	(((hora > 23) && (hora != 99))  || (String(vntHora[0]) == "undefined"))
						{return false;}
				else 
						{
						 minuto = parseInt(vntHora[1]);
						 
						 if (minuto == 0)
						 {   
						   minuto = 1;
						 }
						 if (!minuto)
						  {
						     return false;
						  }  
						if( ((minuto > 59) && (minuto != 99)) || (String(vntHora[1]) == "undefined") )
							{return false;}
						else
							{return true;} 
				    }
		}	    
}

/*==========================================================================
Compara duas datas, retornando true, caso o primerio parametro seja o maior
e false caso contrário, as datas devem estar no formato dd/mm/aaaa.
===========================================================================*/

function ComparaDatas(pdata1, pdata2)
{
 var dtini, dtfim;
 
   pdata1 = pdata1;
   pdata2 = pdata2;
  // alert('Data1:' + pdata1 + '\n' + 'Data2:' + pdata2);
   pdtini = pdata1.substring(6,10) + pdata1.substring(3,5) + pdata1.substring(0,2) ;
   pdtfim = pdata2.substring(6,10) + pdata2.substring(3,5) + pdata2.substring(0,2) ;
        
  // alert(pdtini>pdtfim)  
   if (pdtini > pdtfim) 
    {
     return true; 
    } 
   return false;
}

/*==========================================================================
Compara duas datas, retornando true, caso o primerio parametro seja o maior ou 
iqual ou false caso contrário, as datas devem estar no formato dd/mm/aaaa.
===========================================================================*/
function ComparaDatasMaiorIgual(pdata1, pdata2)
{
 var dtini, dtfim;
 
   pdata1 = pdata1;
   pdata2 = pdata2;
  // alert('Data1:' + pdata1 + '\n' + 'Data2:' + pdata2);
   pdtini = pdata1.substring(6,10) + pdata1.substring(3,5) + pdata1.substring(0,2) ;
   pdtfim = pdata2.substring(6,10) + pdata2.substring(3,5) + pdata2.substring(0,2) ;
        
  // alert(pdtini>pdtfim)  
   if (pdtini >= pdtfim) 
    {
     return true; 
    } 
   return false;
}


/*==========================================================================
Formata hora para HH:MM, utilizado no evento OnBlur do campo do 
formulário
===========================================================================*/

function FormataHora(Hora,Posicao)
{
	var strHora  = new String();
	var strSplit = Array();
		strHora = Hora.value;
	var hora;
	var minuto;	
	
	hora = "";
	minuto = "";
	
	
	//Permite que seja digitado somente os o valor da hora sem : e os minutos
	//Parametro Posição, especifica se o campo é De ou Até 0 ou 1 respectivamente 
	
	vntHora = strHora.split(":");
	strSplit= strHora.split(":");
	
	if(Vazio0(Hora.value))
	{
	  switch (Posicao)
	   {
	    case 0:
	    {  
	     Hora.value = "00:00";
	     break;
  	     }
  	    
  	    case 1:
	     {
	     Hora.value = "23:59";
	     break;
	     }
  	    
  	    default:
  	     {
  	      return true;
  	     }
  	    
  	    }
	  
	  strHora = Hora.value;

	  vntHora = strHora.split(":");
	  strSplit= strHora.split(":");
	  
	}  
	var aux;
	var aux2;
			aux = strSplit[0];
			aux2= strSplit[1]; 
			
	if (aux.length<=1) {strSplit[0]="0" + aux;}
	
	
	if(String(strSplit[1]) == "undefined")
	{
	  
	  strHora = strSplit[0] + ":00";
	  vntHora = strHora.split(":");
	  strSplit= strHora.split(":");
	  Hora.value = strHora;
	}  
  else
  {
		if (aux2.length<=1) {strSplit[1]=aux2 + "0";}
		strHora = strSplit[0] + ":" + strSplit[1];
		Hora.value = strHora;
  }

}


/*=======================================================================
Substitui o sinal de + pelo trema, nas telas modais
========================================================================*/

function Trema(itens)
{

		var tam=itens.length
		var i;
		var StrChar;
		var itens1 = "";
		for (i=0;i<tam;i++)
			{
			 StrChar = itens.substring(i,i+1);
				 if(StrChar=="+") 
						{
							itens1 = itens1 + '¨';
						}
				 else	
						{
							itens1 = itens1 + StrChar;
						}
			}

		return itens1;

}

/*==========================================================================================
Verifica se a data informada é valida.
Retorna FALSE caso data não válida.
Retorna TRUE caso data válida.
Obs: A data informada deverá ser passada no formato "D/M/AAAA" ou "DD/M/AAAA" ou "D/MM/AAAA"
ou "DD/MM/AAAA".
==========================================================================================*/
function ValidaData(Data)
{
	var strData = new String();
	strData = Data;
	if(strData.length < 10)
	{
		return false;
	}
	vntData = strData.split("/");
		
	if(vntData[2].length < 4 || parseInt(vntData[2]) < 1900)
	{
		return false;
	}
	if(parseInt(vntData[1]) > 12)
	{
		return false;
	}
	if(parseInt(vntData[1]) == 1 ||	parseInt(vntData[1]) == 3 || parseInt(vntData[1]) == 5 || parseInt(vntData[1]) == 7 || parseInt(vntData[1]) == 8 || parseInt(vntData[1]) == 10 || parseInt(vntData[1]) == 12)
	{
		if(parseInt(vntData[0]) > 31)
		{
			return false;
		}
	}
	if(parseInt(vntData[1]) == 4 || parseInt(vntData[1]) == 6 || parseInt(vntData[1]) == 9 || parseInt(vntData[1]) == 11)
	{
		if(parseInt(vntData[0]) > 30)
		{
			return false;
		}
	}
			
	if(parseInt(vntData[1]) == 2)
	{
		if(parseInt(vntData[2]) % 4 == 0)
		{
			if(parseInt(vntData[0]) > 29)
			{
				return false;
			}
		}
		else
		{
			if(parseInt(vntData[0]) > 28)
			{
				return false;
			}
		}
	}
	return true;
}
	
/*==========================================================================================
Tem	quase a mesma funcionalidade da função TRIM do ASP, porém só tem a funcionalidade de 
verificar se texto informado é composto de somente espaços ou é vazio ...
Retorna TRUE caso o texto informado seja diferente de	VAZIO (TEXTO != "")
Retorna FALSE caso o texto informado seja VAZIO (TEXTO = "")
==========================================================================================*/
function Trim(Texto)
{
	var strTexto = Texto;
	if(strTexto.length == 0)
	{
		return false;
	}
	else
	{
		for(var i = 0; i < strTexto.length; i++)
		{
			if(strTexto.charAt(i) != " ")
			{
				return true;
			}
		}
	}
	return false;
}

/*==========================================================================================
Função utilizada para formatação de moeda
Ex: <INPUT type="text" name="txtValor" onkeyup="txt_onkeyup(this)" onkeypress="txt_OnKeyPress(this)" onblur="txt_OnBlur(this)" style="text-align: right">
==========================================================================================*/
function txt_OnKeyPress(objeto)
{
	if(event.keyCode == 44)
	{
		VerificaVirgula(objeto);
	}	
	else
	{
		if(event.keyCode < 48 || event.keyCode > 57) 
		{
			event.keyCode = 0;
		}
	}
}

/*==========================================================================================
Função utilizada para formatação de moeda
Ex: <INPUT type="text" name="txtValor" onkeyup="txt_onkeyup(this)" onkeypress="txt_OnKeyPress(this)" onblur="txt_OnBlur(this)" style="text-align: right">
==========================================================================================*/
function txt_OnBlur(objeto)
{
	var sTexto = objeto.value;
	
	if(sTexto != "")
	{
		virgula = false;
		for(var i = 0; i < sTexto.length; i++)
		{
			if(sTexto.substring(i, i+1) == ",")
			{
				virgula = true;
			}
		} 
		if(virgula == false)
		{
			objeto.value = sTexto + ",00";
		}
		else
		{
			if (sTexto.substring((sTexto.length - 1), sTexto.length) == ",")
			{
				objeto.value = sTexto + "00";		
			}
		}
	}
}

/*==========================================================================================
Função auxiliar utilizada para formatação de moeda
Ex: <INPUT type="text" name="txtValor" onkeyup="txt_onkeyup(this)" onkeypress="txt_OnKeyPress(this)" onblur="txt_OnBlur(this)" style="text-align: right">
==========================================================================================*/
function VerificaVirgula(objeto)
{
	var sTexto = objeto.value;
	
	for(var i = 0; i < sTexto.length; i++)
	{
		if (sTexto.substring(i, i+1) == ",")
		{
			event.keyCode = 0;
		}
	} 
}

/*==========================================================================================
Função utilizada para formatação de moeda
Ex: <INPUT type="text" name="txtValor" onkeyup="txt_onkeyup(this)" onkeypress="txt_OnKeyPress(this)" onblur="txt_OnBlur(this)" style="text-align: right">
==========================================================================================*/
function txt_onkeyup(objeto)
{
	var sTexto = objeto.value;
	var sValor = "";
	var vVirgula = "";
		
	for(var i = 0; i < sTexto.length; i++)
	{
		if (sTexto.substring(i, i+1) == ",")
		{
			vVirgula = sTexto.substring(i, sTexto.length);
			break;
		}
		if (sTexto.substring(i, i+1) != ".")
		{
			sValor = sValor + sTexto.substring(i, i+1);
		}
	} 
	
	sTexto = "";
	vPonto = false;
	if (sValor.length > 3)
	{
		if((sValor.length % 3) == 0)
		{
			for(var i = 0; i < sValor.length; i = i + 3)
			{
				if (vPonto == false)
				{
					sTexto = sTexto + sValor.substring(i, i +3);
					vPonto = true;
				}
				else
				{
					sTexto = sTexto + "." + sValor.substring(i, i +3);
				}
			}
		}
		else
		{
			for(var i = sValor.length; i > 0; i = i - 3)
			{
				if (vPonto == false)
				{
					sTexto = sValor.substring(i, i - 3) + sTexto;
					vPonto = true;
				}
				else
				{
					sTexto =  sValor.substring(i, i - 3) + "." + sTexto;
				}
			}
		}
		objeto.value = sTexto + vVirgula;	
	}
	else
	{
		objeto.value = sValor + vVirgula;
	}
}

/*==========================================================================================
Efeito de botão nas imagens
==========================================================================================*/
function ItemClicked(item)
{
	if(this.sliding)
		return;
	item.style.border="2 inset #ffffff";
}

/*==========================================================================================
Efeito de botão nas imagens
==========================================================================================*/
function OverItems(item)
{
	if(this.sliding)
		return;
	item.style.border="2 outset #ffffff";
}

/*==========================================================================================
Efeito de botão nas imagens
==========================================================================================*/
function OutItems(item)
{
	if(this.sliding)
		return;
	item.style.border="0 none black";
}

/*==========================================================================================
Efeito de botão nas imagens
==========================================================================================*/
function ItemSelected(item)
{
	if(this.sliding)
		return;		
	item.style.border="1 outset #ffffff";
}

/*==========================================================================================
Coloca todo o texto digitado em "maiúsculo".
Ex:
<input type="text" name="txtNome" onkeypress="UCase()">
==========================================================================================*/
function UCase()
{
	var x = new String();
	
	x = String.fromCharCode(event.keyCode)
	x = x.toUpperCase();
	event.keyCode = x.charCodeAt(0);
}

/*==========================================================================================
Coloca todo o texto digitado em "minúsculo"
Ex:
<input type="text" name="txtNome" onkeypress="LCase()">
==========================================================================================*/
function LCase()
{
	var x = new String();
	
	x = String.fromCharCode(event.keyCode)
	x = x.toLowerCase();
	event.keyCode = x.charCodeAt(0);
}

function validadata(dateString, flagObrigatorio, Campo)
{
var strData = new String();
		strData = dateString;
    vntData = strData.split("/");
        
        erro=0
        
        if (flagObrigatorio) {
            if (dateString.length==0) {
                alert('O campo "' + Campo + '" é obrigatório.');
                return false;
                }
        }        
        else {
           if (dateString.length==0) {
               return true;
               }
        }

        if (vntData[2] < 4) {
           // if (!mask(dateString,"##/##/##")) {erro=2}
		   alert('No campo "' + Campo + '" informar ano com quatro dígitos.');
           return (false);
           }
        else {
           if ( !(mask(dateString,"##/##/####") || mask(dateString,"#/#/####") || mask(dateString,"##/#/####") || mask(dateString,"#/##/####") )  ) {erro=3}
           }
           
        
        if (erro!=0) 
           {
             alert('O campo "' + Campo + '" não está no formato data.');
             return (false);
           }
                
                
        Ano=vntData[2];
        
        Mes=vntData[1];
        
        Dia=vntData[0];
        
        
        var dateVar = new Date(vntData[2], vntData[1]-1,vntData[0]);
        
        if (Dia!=dateVar.getDate()) {erro=4};
        if (Mes!=dateVar.getMonth()+1) {erro=5};

        
        if ((dateVar.getYear()!= Ano) && (Ano!="1900"))
        {
           {
					 if (Ano > 100) // 4 digitos
					 	{
					 	 if ((dateVar.getYear()<10))
                {if (Ano-2000!=dateVar.getYear()) {erro=6}}
             else
                {if (Ano-1900!=dateVar.getYear()) {erro=7}}
             }
           }  
        } 
        if (erro!=0) {
                alert('O campo "' + Campo + '" não está no formato data.');
                return false;
                };
        return true;
}


function mask (InString, Mask)
{
  LenStr = InString.length;
  LenMsk = Mask.length;
        if ((LenStr==0) || (LenMsk==0))
                return(false);
        if (LenStr!=LenMsk)
                return(false);
        TempString=""
        for (Count=0; Count<=InString.length; Count++) {
                StrChar = InString.substring(Count, Count+1);
                MskChar = Mask.substring(Count, Count+1);
                if (MskChar=='#') {
                        if(!isNumberChar(StrChar))
                                return(false);
                }
                else if (MskChar=='?') {
                        if(!isAlphabeticChar(StrChar))
                                return(false);
                }
                else if (MskChar=='!') {
                        if(!isNumOrChar(StrChar))
                                return(false);
                }
                else if (MskChar=='*') {
                }
                else {
                        if (MskChar!=StrChar)
                                return(false);
                }
        }
        return (true);
}

function isAlphabeticChar (InString) {

        if (InString.length!=1)
                return (false);
        InString=InString.toLowerCase();
        RefString="abcdefghijklmnopqrstuvwxyz";
        if (RefString.indexOf (InString.toLowerCase(), 0)==-1)
                return (false);
        return (true);
}

function isNumberChar (InString) {

        if (InString.length!=1)
                return (false);
        RefString="1234567890,";
        if (RefString.indexOf (InString, 0)==-1)
                return (false);
        return (true);
}

function isNumOrChar (InString) {

        if (InString.length!=1) 
				return (false);
        InString=InString.toLowerCase();
        RefString="1234567890abcdefghijklmnopqrstuvwxyz";
        if (RefString.indexOf (InString, 0)==-1)
                return (false);
        return (true);
}


function Vazio0(v)
{
	if (v.length == 0) return true;
	
	for (i=0; i<v.length; i++) if ((v.charAt(i) != ' ') && (v.charAt(i) != '0')) return false;
	return true;
}

function Vazio(v)
{
	if (v.length == 0) return true;
	
	for (i=0; i<v.length; i++) if ((v.charAt(i) != ' ')) return false;
	return true;
}

/************************************************
* function verificaCPF
* Verifica se um CPF é válido
* Input: cpf a ser verificado
************************************************/
function verificaCPF(cpf)
{
	if(cpf == "") {
		return true;
	}
	var dac = "", inicio = 2, fim = 10, soma, digito, i, j
	for (j=1;j<=2;j++) {
		soma = 0
		for (i=inicio;i<=fim;i++) {
			soma += parseInt(cpf.substring(i-j-1,i-j))*(fim+1+j-i)
		}
		if (j == 2) { soma += 2*digito }
		digito = (10*soma) % 11
		if (digito == 10) { digito = 0 }
		dac += digito
		inicio = 3
		fim = 11
	}
	return (dac == cpf.substring(cpf.length-2,cpf.length))
}

function mascData(obj,evento) {
	if((evento.keyCode > 95 && evento.keyCode < 106) || (evento.keyCode > 47 && evento.keyCode < 58)) {
		if( (evento.keyCode != 193) && (evento.keyCode != 111) && (evento.keyCode != 191)) {
			var strObj = new String(obj.value)
			var tamanho = strObj.length
			if(evento.keyCode != 37 && evento.keyCode !=8 ) {
				if (tamanho==2) strObj = strObj + "/"
				if (tamanho==5) strObj = strObj + "/"
				obj.value = strObj
				return(true)
			}
		} else return(false)
	} else if(evento.keyCode==8 || evento.keyCode==46) { 
		return(true) 
	} else return(false)
}



function validanumero(InString, flObrigatorio, Tamanho, Campo) {
	if (Vazio0(InString)) {
	   if (flObrigatorio) {	
		   alert('O campo "' + Campo + '" é obrigatório.');
		   return false;
		   }
	   else
	       {return true}
	   }
	StrMask = "";
	if (Tamanho==0) {
		for (Count=1; Count<=InString.length; Count++)
			{ StrMask = StrMask + "#"; }
		}
	else
		{
		for (Count=1; Count<=Tamanho; Count++)
			{ StrMask = StrMask + "#"; }
		}
	if (!mask(InString, StrMask)) {
		if (Tamanho==0) 
			alert('O campo "' + Campo + '" deve ser numérico e inteiro.');
		else
			alert('O campo "' + Campo + '" deve ser numérico, inteiro e ter até ' + Tamanho + ' caracteres.');
		return false;
		}
	return true;
}


function ContaItem(Item,Tamanho)
{
var x;

  Tamanho = Tamanho + 1;
  
 	x=Item.value;
 	if (x.length>Tamanho-1) 
	{
	Item.value = Item.value.substring(0,Item.value.length-1);
	}
}

/*==========================================================================================*/
function Imprimir()
{ 
	var x;
	var win;
			x = window.ToPrint.innerHTML;
			win = window.open('Print.asp','Print','directories=no,fullscreen=no,top=1,left=1,height=0,width=0,location=no,menubar=no,resizable=yes,scrollbars=no,border=no,status=no,titlebar=no,toolbar=no', false);
			//document.focus()
}

function Voltar()
{
	history.go(-1)
}

function HabilitaLyr(ExprValue,ExprComp,LyrName)
{
 if (ExprValue == ExprComp)
 {
  window.execScript("window." + LyrName + ".style.visibility='visible'");
  window.execScript("window." + LyrName + ".style.display   =''"); 
 }
 else
 {
	window.execScript("window." + LyrName + ".style.visibility='hidden'");
  window.execScript("window." + LyrName + ".style.display   ='none'");
 }
}


function ValidaEmail(emailString, flagObrigatorio) {
if (emailString.length==0) {
   if (flagObrigatorio) { 
   		alert('O campo "e-mail" deve ser informado.')
   		return false; 
		}
   else { return true; }
   }
tmpContaArroba=0
tmpContaPonto=0
for (Count=0; Count<=emailString.length; Count++) {
	StrChar = emailString.substring(Count, Count+1);
	if (StrChar=="@") { tmpContaArroba++; }
	if (StrChar==".") { tmpContaPonto++; }
    }
tmpErro=false;
if (tmpContaArroba!=1) tmpErro=true;
if (tmpContaPonto==0) tmpErro=true;
if (tmpErro) {
   alert('O e-mail digitado não é válido.')
   return false
   }
return true;
}
