var CHAR_ESPECIAIS	= "'|?#"
var CHAR_SUBSTITUICAO = "	"

var MOUSEOVER_COR = "#B8E895"

function ola()
{
	alert('teste');
}

function SelectChange(tipo, chkB, nomeControle, conteudoCod, controleCod)
{
	var ID = chkB.id;
	var count = document.getElementById(nomeControle).rows.length;
	var i;
	var todos;
    if (tipo == 'rad')
	{
	    for (i = 3; i <= count; i++)
	    {
	        var id;
            if (i < 10)
                id = nomeControle + "_ctl0" + i + "_radSelect";
            else
                id = nomeControle + "_ctl" + i + "_radSelect";
            //id = nomeControle + "__ctl" + i + "_radSelect";
            var elem= document.getElementById(id);
            elem.checked = false ;
        }
    	document.getElementById(ID).checked = true;
	    controleCod.value = conteudoCod;
	}
	else
	{
	    var tira = true;
    	if (document.getElementById(ID).checked)
    	{
    	    tira = false; 
    	}
    	var todos = controleCod.value.split(':');
	    controleCod.value = '';
    	if (!tira)
    	{
    	    controleCod.value = conteudoCod + ':';
    	}
        for (i = 0; i < todos.length; i++)
        {
            if (todos[i] != "")
            {
    	        if (todos[i] != conteudoCod)
    	        {
    	            controleCod.value += todos[i] + ':';
    	        }
    	    }
        }    
        //alert(controleCod.value);
	}
}

function SelectChangeLK(chkB, nomeControle, conteudoCod, controleCod)
{
	var ID = chkB.id;
	var count = document.getElementById(nomeControle).rows.length;
	var i;
	var todos;
    for (i = 3; i <= count; i++)
    {
        var id;
        if (i < 10)
            id = nomeControle + "_ctl0" + i + "_radSelect";
        else
            id = nomeControle + "_ctl" + i + "_radSelect";
        //id = nomeControle + "__ctl" + i + "_radSelect";
        var elem= document.getElementById(id);
        elem.checked = false ;
    }
	document.getElementById(ID).checked = true;
    controleCod.value = conteudoCod;
    //alert(controleCod.value);
}

function SelectItem(nomeControle, acao, nomeObj)
{
	var count = document.getElementById(nomeControle).rows.length;
	var i;
	var selecionado = false;
	for (i = 3; i <= count; i++)
	{
        var id;
        if (i < 10)
            id = nomeControle + "_ctl0" + i + "_" + nomeObj;
        else
            id = nomeControle + "_ctl" + i + "_" + nomeObj;
        //id = nomeControle + "__ctl" + i + "_" + nomeObj;
       	//alert(id);
        var elem= document.getElementById(id);
        if (elem.checked)
        {
			selecionado = true;
			break;
		}
	}
	if (! selecionado)
	{
		alert('Nenhum registro foi selecionado');
	}
	else
	{
		if (acao == 'E')
		{
  			if (! confirm('Deseja realmente excluir o item selecionado?'))
  				selecionado = false;
  		}
	}
	
	return selecionado;
}

function marcaTodos(nomeControle, controleTodos, controleChave)
{
    //alert(nomeControle);
	var count = document.getElementById(nomeControle).rows.length;
	var i = 3;
	var selecionado = true;
	for (i = 3; i <= count; i++)
	{
        var id;
        if (i < 10)
            id = nomeControle + "_ctl0" + i + "_chkSelect";
        else
            id = nomeControle + "_ctl" + i + "_chkSelect";
        //id = nomeControle + "__ctl" + i + "_chkSelect";
        var elem= document.getElementById(id);
        if ((i==3) && (elem.checked))
        {
			selecionado = false;
		}
		elem.checked = selecionado;
    }
    if (selecionado)
    {
        controleChave.value = controleTodos.value;
    }
    else
    {
        controleChave.value = '';
    }
    //alert(controleChave.value);
    	
//	var count = document.getElementById(nomeControle).rows.length;
//	var i;
//	var selecionado = true;
//	for (i = 3; i <= count; i++)
//	{
//        var id;
//        if (i < 10)
//            id = nomeControle + "_ctl0" + i + "_chkSelect";
//        else
//            id = nomeControle + "_ctl" + i + "_chkSelect";
//        //id = nomeControle + "__ctl" + i + "_chkSelect";
//        var elem= document.getElementById(id);
//        if ((i==3) && (elem.checked))
//        {
//			selecionado = false;
//		}
//		elem.checked = selecionado;
//	}
}

function verCampoObrigatorio(form)
{
	var mensObrig = '';
	
	for(var i = 0; i < form.length; i++)
	{
		if ((form.elements[i].type == "text" || 
			form.elements[i].type == "textarea" || 
    			form.elements[i].type == "select-one" || 
	    			form.elements[i].type == "checkbox"))
		{ 
			if (form.elements[i].className == 'editCadastroObrig') 
			{
				if (form.elements[i].value == '')
				{
					mensObrig += 'Campo ' + form.elements[i].name.substring(3,form.elements[i].name.length) + ' deve ser preenchido.' + '\n';
				}
			}
		}	
	}
	
	if (mensObrig.length > 0)
	{
		alert(mensObrig);
		return false;
	}
	return true;
}

function verCampoObrig(form)
{
	var mensObrig = '';
	
	for(var i = 0; i < form.length; i++)
	{
		if ((form.elements[i].type == "text" || 
			form.elements[i].type == "textarea" || 
				form.elements[i].type == "checkbox" || 
        			form.elements[i].type == "select-one" || 
	    			    form.elements[i].type == "password"))
		{ 
			if ((form.elements[i].className == 'editCadastroObrig') || (form.elements[i].className == 'somenteLeituraObrig'))
			{
				if ((form.elements[i].value == '') || ((form.elements[i].type == "select-one") && (form.elements[i].value == '0')))
				{
					var nomecampo = form.elements[i].name.split(":");
					if (nomecampo.length == 1)
					    nomecampo = form.elements[i].name.split("$");
					if (nomecampo.length > 1)
					{
                        //alert(nomecampo[0] + "_lbl" + nomecampo[1]);
						mensObrig += 'Campo ' + document.getElementById(nomecampo[0] + "_lbl" + nomecampo[1]).value + ' deve ser preenchido.' + '\n';
					}
				}
			}
		}	
	}
	
	if (mensObrig.length > 0)
	{
		alert(mensObrig);
		return false;
	}
	return true;
}

function basicLookup(objText, objCod, numeroLookup, arrNomePai, arrComando)
{
	var montaFiltro;
	montaFiltro = '';
	if (arrNomePai != undefined)
	{
		if (arrNomePai.length > 0)
		{
			for(var i=0;i<arrComando.length;i++)
			{
				if (document.getElementById(arrComando[i]).value.length == 0)
				{
					alert('Selecione um(a) ' + arrNomePai[i]);
					return;					
				}
				else
				{
					montaFiltro += arrNomePai[i] + '|' + document.getElementById(arrComando[i]).value + ';';
				}
			}
		}
	}
	//window.open('components/lookupPage.aspx?lookup=' + numeroLookup + '&txt=' + objText + '&cod=' + objCod + '&filt=' + montaFiltro, 'Selecione','toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,fullscreen=no,resizable=no,menubar=no,width=500,height=500');
	window.open('components/lookupPage.aspx?lookup=' + numeroLookup + '&txt=' + objText + '&cod=' + objCod + '&filt=' + montaFiltro, 'Selecione', 'scrollbars=yes,width=500,height=500');
	//window.open('components/lookupForm.aspx?lookup=' + numeroLookup + '&txt=' + objText + '&cod=' + objCod + '&filt=' + montaFiltro, 'Selecione', 'scrollbars=yes,width=500,height=500');
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: criaMascara(_RefObjeto,_Modelo)
// Descricao......: Função para criar qualquer tipo de máscara
// Atualizações...: [00] - 05/08/2004 - Versão inicial - Autor: Eduardo D'avo
//-----------------------------------------------------------------------------------------

function ExcluiItens()
{			
	var form  = document.Form1;
	if (form.chk_excluir == undefined)
	{
		alert("Nenhum registro selecionado para excluir."); 
		return;
	}
	var itens = form.chk_excluir.length;
	var flg_itens=false;
	var sCodigos= '|';

	if (itens==null)
	{
		if (form.chk_excluir.checked==true)
		{	
			flg_itens=true;
			sCodigos=sCodigos +	form.chk_excluir.value;
		}
	}
	else
		{	
			for(var i=0;i<itens;i++){
			if (form.chk_excluir[i].checked==true)
			{
				flg_itens=true;
				sCodigos = sCodigos + form.chk_excluir[i].value + '|';
			}
		}	
	}	

	if(flg_itens==false)	
	{
		alert("Selecione pelo menos um registro da lista para poder excluir.");
	}
	else
	{
  		if (confirm('Deseja realmente excluir?'))
  		{
  			form.hdnRegsExc.value = sCodigos;
			form.submit();
		}	
	}
}

function DesmarcaEng()
{			
   var form  = document.Form1;
   for(var i = 0; i < form.length; i++){
      //alert(form.elements[i].name.substring(0,7));
      if (form.elements[i].name.substring(0,7) == 'chk_eng')
      {
         form.elements[i].checked = false;
      }   
   } 
   return true;
}

function ValoresItens()
{			
	var form  = document.Form1;
	if (form.txtValor == undefined)
	{
		alert("Não existe registro para ser atualizado."); 
		return;
	}
	var itens = form.txtValor.length;
	var sValores= '';

	if (itens==null)
	{
		sValores=sValores +	form.txtValor.value + '|';
	}
	else
	{	
		for(var i=0;i<itens;i++){
			sValores = sValores + form.txtValor[i].value + '|';
		}
	}	

  	if (confirm('Deseja atualizar os valores informados?'))
  	{
  		form.hdnRegsVal.value = sValores;
  		//alert(sValores);
		form.submit();
	}	
}

function apresentaMensagem(mens)
{
	if (mens.length > 0)
		alert(mens);
	mens.value = '';
}

function criaMascara(_RefObjeto,_Modelo){
    var valorAtual = _RefObjeto.value;
    var valorNumerico = '';
    var nIndexModelo = 0;
    var nIndexString = 0;
    var valorFinal = '';
    var adicionarValor = true;
    for (i=0;i<_Modelo.length;i++){
      if (_Modelo.substr(i,1) != '#'){
          valorAtual = valorAtual.replace(_Modelo.substr(i,1),'');
      }
	}
    for (i=0;i<valorAtual.length;i++){
      if (!isNaN(parseFloat(valorAtual.substr(i,1)))){
          valorNumerico = valorNumerico + valorAtual.substr(i,1);
      }
	}
    for (i=0;i<_Modelo.length;i++){
      if (_Modelo.substr(i,1) == '#'){
        if (valorNumerico.substr(nIndexModelo,1) != ''){
          valorFinal = valorFinal + valorNumerico.substr(nIndexModelo,1);
          nIndexModelo++;nIndexString++;
        }
        else {
          adicionarValor = false;
        }
      }
      else {
        if (adicionarValor && valorNumerico.substr(nIndexModelo,1) != ''){
           valorFinal = valorFinal + _Modelo.substr(nIndexString,1)
           nIndexString++;
        }
	  }
    }
      _RefObjeto.value = valorFinal
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: SoLetra(obj)
// Descricao......: O campo só aceita letras
// Atualizações...: [00] - 04/08/2004 - Versão inicial - Autor: Thiago Medeiro
//-----------------------------------------------------------------------------------------

function SoLetra(objCampo)
{
	if (!((event.keyCode > 64 && event.keyCode < 91) || (event.keyCode > 96 && event.keyCode < 123 )))
	{
		event.keyCode = 0 
	}
	return true;
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: Trim(string)
// Descricao......: Função que realiza a eliminação de espaõs em branco em uma string
// Atualizações...: [00] - 02/08/2004 - Versão inicial - Autor: Softtek
//-----------------------------------------------------------------------------------------

function Trim(s) {
    return s.replace (/\s+/g,'');
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: validEmail(email)
// Descricao......: Função que faz a validação do endereço de e-mail
// Atualizações...: [00] - 02/08/2004 - Versão inicial - Autor: Eduardo D'avo
//-----------------------------------------------------------------------------------------
function validEmail(email) {
	invalidChars = " /:,;"
	if (email == "") {
		return false;
	}
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) != -1) {
			return false;
		}
	}
	atPos = email.indexOf("@",1)
	if (atPos == -1) {
		return false;
	}
	if (email.indexOf("@",atPos+1) != -1) {
		return false;
	}
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) {
		return false;
	}
	if (periodPos+3 > email.length)	{
		return false;
	}
	return true;
}

function checkMail(mail){
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(mail) == "string"){
        if(er.test(mail)){ return true; }
    }else if(typeof(mail) == "object"){
        if(er.test(mail.value)){
                    return true;
                }
    }else{
        return false;
        }
}


//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: f_PintaLinha(objLinha)
// Descricao......: Pinta a linha que o mouse passar por cima
// Atualizações...: [00] - 28/06/2002 - Versão inicial - Autor: Fabio Falci
//-----------------------------------------------------------------------------------------
function f_PintaLinha()
{
	if (window.event.srcElement.id == 'btnNEW')
		obj = "";
	else
	{
		//Ser for "checkbox" ou "radio" o objeto a ser pintado é diferente.
		if (( eval(window.event.srcElement).type != 'checkbox') && ( eval(window.event.srcElement).type != 'radio'))
		{
			obj = eval(window.event.srcElement.parentElement);
		}
		else
		{
			obj = eval(window.event.srcElement.parentElement.parentElement);
		}
	}
	
	if (typeof(obj) == 'object')
	{
		if (window.event.type == "mouseover")
		{
			//Pinta a nova
			obj.style.backgroundColor = MOUSEOVER_COR;
		}
		else if (window.event.type == "mouseout")
		{
			//Limpa a antiga linha pintada se nao for onMouseOut depois click
			//alert
			//if (obj.style.backgroundColor == "#B9DEF9")
			//{
				obj.style.backgroundColor = "";
			//}
		}
	}
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Nome...........: f_PintaLinha(objLinha)
// Descricao......: Pinta a linha que o mouse passar por cima
// Atualizações...: [00] - 28/06/2002 - Versão inicial - Autor: Fabio Falci
//-----------------------------------------------------------------------------------------
function f_PintaColuna()
{
	if (window.event.srcElement.id == 'btnNEW')
      obj = "";
  else
      obj = eval(window.event.srcElement);
  if (typeof(obj) == 'object')
  {
		if (window.event.type == "mouseover")
		{
			//Pinta a nova
			obj.style.backgroundColor = MOUSEOVER_COR;
		}
		else if (window.event.type == "mouseout")
		{
			//Limpa a antiga linha pintada se nao for onMouseOut depois click
			//alert
			//if (obj.style.backgroundColor == "#99ffcc")
			//{
				obj.style.backgroundColor = "";
			//}
		}
	}
}

//------------------------------------------------------------------------------
// Criador: Andre Bernucci - 28/11/2003
// Objetivo: Funcao generica para controlar exclusão de registros
// Observacao: Recebe o Form, o array check para controle de selecionados
//				e o campo hidden para controlar a ação EXCLUIR

function Excluir_Registros(form, arrcheck, hdnaction)
{
	msg="Selecione pelo menos um registro para excluir.";
	var itens = arrcheck.length;
	var flg_itens=false;
	if (itens==null)
	{
		if (arrcheck.checked==true)
		{	
			flg_itens=true
		}
	}
	else
	{	
		for(var i=0;i<itens;i++)
		{
			if (arrcheck[i].checked==true)
			{
				flg_itens=true;
				break;				
			}
		}	
	}	
	if(flg_itens==false)	
	{
		alert(msg);
	}
	else
	{
		if (confirm('Confirma a exclusão?'))
		{
			window.status = "Aguarde processamento...";
			hdnaction.value = "Excluir";
			form.submit();
			window.status="";
		}	
	}
}


//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 27/02/2002
// Objetivo: Formatar o Campo para entrada de hora
// Exemplo: 	onKeyPress = "LimitaTamanhoTexto(this,30)"

function LimitaTamanhoTexto(objCampo, tamcampo)
{
	if (objCampo.value.length >= tamcampo)
	{
		event.keyCode = 0;
	}
	return (true);
}


//------------------------------------------------------------------------------
//Funções para desabilitar o menu ativado com o botão direito do mouse para IE
//Colocar na página a seguinte instrução: window.onload = trap_page_mouse_key_events();

function disable_right_click()
{
    var event_number = 0;
    event_number = event.button;

    if ( event_number==2 || event_number==3 )
        {
        alert ("As opções de navegação permitidas resumem-se aos botões da tela!");
        return (false);
        }

    return (true);
}

function check_mousekey ()
{
    var mouse_key = 93;
    var keycode = event.keyCode;

    if ( keycode == mouse_key )
        alert ( "As opções de navegação permitidas resumem-se aos botões da tela!" );
}

function trap_page_mouse_key_events ()
{
    document.onmousedown = disable_right_click;
    document.onkeydown = check_mousekey;
}


//------------------------------------------------------------------------------
//Função para checagem de campos da páginas
function hasField(nome, form){
 
   for(var i = 0; i < form.length; i++){
      if(form.elements[i].name == nome && 
        (form.elements[i].type == "text" || form.elements[i].type == "textarea" || form.elements[i].type == "checkbox")){
         return true;
      }   
   } 
   return false;
}

//------------------------------------------------------------------------------
//Função equivalente ao Trim

function trimString (campo) {
  str = campo.value;
  while (str.charAt(0) == ' ')
    str = str.substring(1);
  while (str.charAt(str.length - 1) == ' ')
    str = str.substring(0, str.length - 1);
  campo.value = str;  
}

//------------------------------------------------------------------------------
//Função para o título das páginas
function f_MudaTitulo(titulo)
{
  parent.frames[0].document.all('titulo').innerHTML = titulo;
}

//------------------------------------------------------------------------------
//Função para tratamento de timeout
function f_Timeout()
{
	if (window.name=='main' || window.name=='left' || window.name=='contents')
	{
		window.parent.location = 'login.asp';
	}
	else
	{
		window.close();
	}

}
//------------------------------------------------------------------------------
//Exibe caixa de diálogo com os parâmetros enviadaos
function f_exibe_lov(param1,param2,pagina,filtro)
{
	if (!VerificaCharEspeciais(param1)) return(false);
	if (!VerificaCharEspeciais(param2)) return(false);
	
	window.status = "Aguarde processamento...";
	var Codigo = param1.value;
	var Descricao = param2.value;
	var sLink = pagina + "?param1=" + Codigo + "&param2=" + Descricao;
	if (filtro!=null && filtro!="")
	{
		sLink = sLink + "&filtro=" + filtro;
	}
	var retorno = window.showModalDialog(sLink,1,"Dialogwidth:30;Dialogheight:18;Center:1;help:0");
	
	if (retorno != null && retorno[0] != "")
	{
	 param1.value	= retorno[0];
	 param2.value = retorno[1];
	}
	else
	{
	 param1.value	= "";
	 param2.value = "";
	}
	window.status="";
}

//------------------------------------------------------------------------------
//Exibe caixa de diálogo com os dados de sugestão do valor do campo
function f_exibe_lov_sugestao(pagina, param)
{
	
	window.status = "Aguarde processamento...";
	var retorno = window.showModalDialog(pagina,1,"Dialogwidth:27;Dialogheight:18;Center:1;help:0");
	
	if (retorno != null && retorno != "")
	{
	 param.value	= retorno;
	}
	window.status="";
}

//------------------------------------------------------------------------------
//Verifica se o campo é numérico e manda mensagem em caso negativo

function f_valida_numerico(obj, sMensagem)
{
	if (obj.value != "")
	{
	  if (!IsNumeric(obj.value))
	  {
		 alert (sMensagem);
		 obj.focus(obj);
		 return (false);
	  }
	  else
		 return (true);
	}
	else
	  return (true);
}

//------------------------------------------------------------------------------
function f_valida_valor(obj, sMensagem)
{
	if (obj.value != "")
	{
	  if (!ValidaValor(obj.value))
	  {
		 alert (sMensagem);
		 obj.focus(obj);
		 return (false);
	  }
	  else
		 return (true);
	}
	else
	  return (true);
}

//------------------------------------------------------------------------------
function VerificaCharEspeciais(obj)
{
	var MSG_0001 = "Não é permitido digitar caracteres especiais ou aspas."
	var sExpressao = obj.value
	var i = 0
	var sCharEspecial = ""	

	if (sExpressao.indexOf('"')!=-1)
	{
		alert(MSG_0001)
		obj.focus()
		obj.select()
		return false
	}
	else
	{
		for (i = 0; i < CHAR_ESPECIAIS.length; i++)
		{
			sCharEspecial = CHAR_ESPECIAIS.substring(i, i+1)
			if (sExpressao.indexOf(sCharEspecial)!=-1)
			{
				alert(MSG_0001)
				obj.focus()
				obj.select()
				return false
			}
		}
	}
	return true
}

//------------------------------------------------------------------------------
function IsNumeric(Valor)
{
	var i

	for (i = 0; i < Valor.length; i++)
	{
	  if (Valor.charAt(i) < "0" || Valor.charAt(i) > "9")
	  {
		 return false
	  }
	}
	return true
}

//------------------------------------------------------------------------------
function IsEmpty(Conteudo)
{
	var i
	var sBrancos = ""

	for (i = 0; i < Conteudo.length; i++)
	{
	 sBrancos = sBrancos + " "
	}

	if (sBrancos == Conteudo)
	 return true
	else
	 return false
}

//------------------------------------------------------------------------------
function isBissexto(iAno)
{
	var bRet
	bRet = false
	if (iAno % 4 == 0 && (iAno % 100 !=0 || iAno % 400 ==0 ))
		bRet = true
	return bRet
}


//------------------------------------------------------------------------------
//Retorna True ou False se for uma data válida
function isDate(sData)
{
	var bRet
	var i
	bRet = true

	if (sData.length != 10)
		bRet = false
	
	if (bRet)
	{
		i = 0
		while (i < sData.length && bRet)
		{
			if (i == 2 || i == 5)
			{
				if (sData.charAt(i) != "/")
					bRet = false
			}
			else
			{
				if (!IsNumeric(sData.charAt(i), 0))
					bRet = false
			}
			i++
		}
		}
	if (bRet)
	{
		iDia = parseInt(sData.substring(0, 2), 10)
		iMes = parseInt(sData.substring(3, 5), 10)
		iAno = parseInt(sData.substring(6, 10), 10) 
		
		if (iMes < 1 || iMes > 12)
			bRet = false
		if (iAno < 1)
			bRet = false
	}
	if (bRet)
	{
		if (iMes == 1 || iMes == 3 || iMes == 5 || iMes == 7 || iMes == 8 || iMes == 10 || iMes == 12)
		{
			if (iDia < 1 || iDia > 31)
				bRet = false
		}
		if (iMes == 2)
		{
			if (isBissexto(iAno))
			{
				if (iDia < 1 || iDia > 29)
					bRet = false
			}
			else
			{
				if (iDia < 1 || iDia > 28)
					bRet = false
			}
		}
		if (iMes == 4 || iMes == 6 || iMes == 9 || iMes == 11)
		{
			if (iDia < 1 || iDia > 30)
				bRet = false
		}
	}
	return bRet;
}


//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 27/02/2002
// Objetivo: Formatar o Campo para entrada de hora
// Exemplo: 	onKeyPress = "CampoHora(this)"
// Alterado por Pontual para validar a hora digitada 10/09/2004

function CampoHora(objCampo)
{
	var number
	number =""
	
	// Não aceita letras e mais que 10 caracteres
	if (event.keyCode < 48 || event.keyCode > 57 || objCampo.value.length == 5)
	{
		event.keyCode = 0 
	}
	else
	{
		// 1o. numero
		if (objCampo.value.length == 0)
		{
			if (event.keyCode > 50)  // se for dif de 0,1 ou 2
				event.keyCode = 0;
		}
		
		// 2o. numero
		if (objCampo.value.length == 1)
		{
			if (objCampo.value.substring(0,1) == "2" && event.keyCode > 51)  // se 1o. digito for 2 e digitou num maior q 3
				event.keyCode = 0;
		}
		
		if (objCampo.value.length == 2 | objCampo.value.length == 3)
		{
			if (event.keyCode > 53) // se digitou num. maior q 5
			{
				event.keyCode = 0;
			}
		}
		
		//Adiciona a barra de separação
		if (objCampo.value.length == 2)
		{
			objCampo.value = objCampo.value + ":" ;
		}
	}
	return true
}
/*
function CampoHora(objCampo)
{
var number
number =""

	// Não aceita letras e mais que 10 caracteres
	if (event.keyCode < 48 || event.keyCode > 57 || objCampo.value.length == 5)
	{
		event.keyCode = 0 
	}
	else
	{
		//Adiciona a barra de separação
		if (objCampo.value.length == 2)
		{
			objCampo.value = objCampo.value + ":" ;
		}
	}
	return true
}
*/

//------------------------------------------------------------------------------
// Criador: Fabio Brunetti Falci - 15/01/2002
// Objetivo: Formatar o Campo para entrada de data
// Exemplo: 	onKeyPress = "CampoData(this)"

function CampoData(objCampo)
{
var number
number =""

	// Não aceita letras e mais que 10 caracteres
	if (event.keyCode < 48 || event.keyCode > 57 || objCampo.value.length == 10)
	{
		event.keyCode = 0 
	}
	else
	{
		//Adiciona a barra de separação
		if (objCampo.value.length == 2 || objCampo.value.length == 5)
		{
			objCampo.value = objCampo.value + "/" ;
		}
	}
	return true
}

//------------------------------------------------------------------------------
// Criador: Fabio Brunetti Falci - 15/01/2002
// Objetivo: Retornar um Alert utilizando a função ja existente "isDate"
// Exemplo: onBlur = "isDateAlert(this)"

function isDateAlert(objCampo)
{
	//Checa se é data válida após blur do campo
	if (objCampo.value != '')
	{
		if (!(isDate(objCampo.value)))
		{
			alert("Data Inválida!");
			objCampo.value="";
			objCampo.focus();
		}
	}
}

//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 27/02/2002
// Objetivo: Retornar um Alert utilizando a função ja existente "isTime"
// Exemplo: onBlur = "isTimeAlert(this)"

function isTimeAlert(objCampo)
{
	//Checa se é hora válida após blur do campo
	if (objCampo.value != '')
	{
		if (!(isTime(objCampo.value)))
		{
			alert("Hora Inválida!");
			objCampo.value="";
			objCampo.focus();
		}
	}
}


//------------------------------------------------------------------------------
/* Compara datas no formato dd/mm/aaaa
  -1 - Uma das datas esta com o formato invalido
	0  - As duas datas são iguais
	1  - A 1ª data é a mais recente
	2  - A 2ª data é a mais recente */
function ComparaDatas(sData1, sData2)
{
	if ( (!isDate(sData1)) || (!isDate(sData2)) )
		return (-1);
	else if (sData1 == sData2)
		return (0);
	else
	{
		var lData1 = parseFloat(sData1.substring(6, 10) + sData1.substring(3, 5) + sData1.substring(0, 2))
		var lData2 = parseFloat(sData2.substring(6, 10) + sData2.substring(3, 5) + sData2.substring(0, 2))
		if (lData1>lData2)
			return(1);
		else
			return(2);
	}
}

function ComparaHorarios(sHora1, sHora2)
{
	if ( (!isTime(sHora1)) || (!isTime(sHora2)) )
		return (-1);
	else if (sHora1 == sHora2)
		return (0);
	else
	{
		var lHora1 = parseFloat(sHora1.substring(0, 2) + sHora1.substring(3, 5))
		var lHora2 = parseFloat(sHora2.substring(0, 2) + sHora2.substring(3, 5))
		if (lHora1>lHora2)
			return(1);
		else
			return(2);
	}
}




//------------------------------------------------------------------------------
// Criador: Fabio Brunetti Falci - 31/01/2002
// Objetivo: Comparar se uma data é maior que a outra para executar a consulta no banco

function Compara2Datas(DataMenor,DataMaior)
{
	var Menor=DataMenor.value;
	var Maior=DataMaior.value;
	var auxMenor = Menor.split("/");
	var auxMaior = Maior.split("/");

	dMenor = auxMenor[0];
	mMenor = auxMenor[1];
	yMenor = auxMenor[2];

	dMaior = auxMaior[0];
	mMaior = auxMaior[1];
	yMaior = auxMaior[2];

	var numMenor = eval(yMenor) * 10000 + eval(mMenor)* 100 + eval(dMenor);
	var numMaior = eval(yMaior) * 10000 + eval(mMaior)* 100 + eval(dMaior);

	if (numMaior < numMenor) 
	{
		alert('A data ' + Maior + ' é inferior a data ' + Menor + '.\n\nFavor Redigitar a segunda Data')
		DataMaior.value = "";
		return (false);
	}
	else
	{	
		return (true);
	}
		
}

//------------------------------------------------------------------------------
function ValidaValor(Expressao)
{
	var sExpressao = Expressao;
	var nPosi	  = 0;

	sExpressao = Replace(sExpressao , ".", "")
	sExpressao = Replace(sExpressao , ",", "")

	nPosi	  = sExpressao.indexOf("-");
	
	if (nPosi != -1)
	{
		
		if (nPosi > 0)
	    {
		  return false;
		}
		
	  var vContador		= 0;
	  var vContadorAux	 = 0;
	  var vSomaTracos	  = 0;

	  for (vContador = 0; vContador <= sExpressao.length; vContador++)
	  {
		 vContadorAux = vContador;
		 if (sExpressao.substring(vContador,vContadorAux+1) == "-")
		 {
			vSomaTracos = vSomaTracos + 1;
		 }
	  }
		 
	  if (vSomaTracos > 1)
	  {
		 return false;
	  }
	  else
	  {
		 sExpressao = Replace(sExpressao , "-", "");
	  }
	}
	
	if (!IsNumeric(sExpressao )) 
	{
	  return false;
	}
	  
	return true;
}

//------------------------------------------------------------------------------
function ValidaValor1(Expressao)
{
	var sExpressao = Expressao
	var sSepDecimal = sExpressao.substring(sExpressao.length-3,sExpressao.length-2)
	var sInteiro	= sExpressao.substring(0,sExpressao.length-3)
	var sDecimal	= sExpressao.substring(sExpressao.length-2,sExpressao.length)
	if ((sSepDecimal=="." || sSepDecimal==",") && (IsNumeric(sInteiro) && IsNumeric(sDecimal)) && sDecimal.length==2 && sInteiro.length>0)
		return true
	else
		return false
}

//------------------------------------------------------------------------------
// Criador: Fabio Brunetti Falci - 28/01/2002
// Objetivo: O campo só aceita numeros e UMA virgula
// Exemplo: 	onKeyPress = "SoDecimal(this)"

function SoDecimal(objCampo)
{
var number
var PegaVirgula
number = ""
number = objCampo.value

//Pesquisa se ja foi digitada a virgula alguma vez
var expReg = /,/;
PegaVirgula = expReg.exec(number);

	if (event.keyCode == 44 || event.keyCode == 46)
	{
		if (PegaVirgula == ",")
		{
			event.keyCode = 0;
		}
		else
		{
			event.keyCode = 44;
		}
	}
	// Não aceita letras e mais que 1 virgula
	else if (event.keyCode < 48 || event.keyCode > 57 )
	{
		event.keyCode = 0 
	}
	return true;
	
}

//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 26/02/2002
// Objetivo: O campo só aceita numeros
// Exemplo: 	onKeyPress = "SoNumero(this)"

function SoNumero(objCampo)
{
   var ie = (typeof window.ActiveXObject != 'undefined');  
      
   if (ie)  
   {
      code = event.keyCode;  
      if (code < 48 || code > 57 )
        event.keyCode = 0;  
   }
   
   return true;
}

//-------------------------------------    SOFTTEK BRASIL    ------------------------------
// Criador: Bruno Toledo - 08/12/2004
// Objetivo: O campo só aceita numeros e Letras
// Exemplo: 	onKeyPress = "SoNumLetra(this)"
//-----------------------------------------------------------------------------------------

function SoNumLetra(objCampo)
{
	if(event.keyCode < 97 || event.keyCode > 122)
	{
		if(event.keyCode < 65 || event.keyCode > 90)
		{
			if(event.keyCode < 48 || event.keyCode > 57)			
				event.keyCode = 0 
			else
				return true;
		}
		else
			return true;
	}
	else
		return true;
}

//------------------------------------------------------------------------------
function CriaArray(vQuantidade)
{
	this.length = vQuantidade
	for (vCounter = 1; vCounter <= vQuantidade; vCounter++)
	{
	  this[vCounter] = ""
	}
}

//------------------------------------------------------------------------------
function Replace(Expressao, StringProcurada, NovaString)
{
	var sStringRet = ""
	var iTamExpressao = 0
	var i = 0
	if (Expressao!="") 
	{
	  sStringRet = Expressao
	  while ( i < sStringRet.length)
	  {
		if (sStringRet.charAt(i)==StringProcurada)
		{
			sStringRet = sStringRet.substring(0,i) + NovaString + sStringRet.substring(i+1,sStringRet.length)
			if ( StringProcurada != "" )					
				i = i - 1
		}
		i = i + 1
	  }	
	}
	return (sStringRet)
}

//------------------------------------------------------------------------------
function String(Numero, Caracter)
{
	var sStringRet =  ""
	var iNumero  = Numero
	var sCaracter = Caracter

	if (!IsNumeric(iNumero) || sCaracter=="") iNumero=0

	for (i = 0; i < iNumero; i++)
		sStringRet = sStringRet + sCaracter

	return(sStringRet)
}

var SimboloCurrency = "R$ ";

//------------------------------------------------------------------------------
function FormataNumero(Expressao,SepMilhar,SepDecimal,NumCasasDecimais,bCurrency)
{

	var sStringRet = ""
	var sExpressao = Expressao;
	var sSepMilhar = SepMilhar;
	var sSepDecimal = SepDecimal;
	var iNumCasasDecimais = parseFloat(NumCasasDecimais);
	var iTamExpressao = 0;
	var sInteiro;
	var sDecimais;
	var bNumNegativo = false;
	var iPosUltimoSepString = 0;
	var iPosPenultimoSepString = 0;
	var iPosUltimoPtoString = 0;
	var iPosPenultimoPtoString = 0;
	var iPosUltimoVirgString = 0;
	var iPosPenultimoVirgString = 0;
	var iPosCorretaSepDecimal = 0;
	var bMsgTrace = false

	var sMsg = "Argumentos de entrada:\n"
	sMsg = sMsg + "\nsExpressao = ["+ sExpressao +"]" 
	sMsg = sMsg + "\nsSepMilhar = ["+ sSepMilhar +"]" 
	sMsg = sMsg + "\nsSepDecimal = ["+ sSepDecimal +"]" 
	sMsg = sMsg + "\niNumCasasDecimais = ["+ iNumCasasDecimais +"]" 
	if (bMsgTrace) alert(sMsg)
	//Verifica se a expressao informada representa um numero negativo.
	if (sExpressao.indexOf("-") != -1)
	{
		bNumNegativo = true
		sExpressao = Replace(sExpressao,"-","")
	}
	if (bMsgTrace) alert("bNumNegativo = " + bNumNegativo + " sExpressao = " + sExpressao)
	//Consistencias para tornar coerente os argumentos de entrada.
	if (sSepDecimal=="" || iNumCasasDecimais==0)
	{
		sSepDecimal=""
		iNumCasasDecimais=0
	}
	if (sSepDecimal==sSepMilhar && sSepDecimal==".")
		sSepMilhar = ","
	else if (sSepDecimal==sSepMilhar && sSepDecimal==",")
		sSepMilhar = "."

	if (sExpressao!="") iTamExpressao = sExpressao.length
	if (bMsgTrace) alert("iTamExpressao = " + iTamExpressao)

	//Verifica o possivel separador decimal da string passada como argumento.
	iPosUltimoPtoString = sExpressao.lastIndexOf(".")
	iPosPenultimoPtoString = sExpressao.lastIndexOf(".", iPosUltimoPtoString - 1)
	iPosUltimoVirgString = sExpressao.lastIndexOf(",")
	iPosPenultimoVirgString = sExpressao.lastIndexOf(",", iPosUltimoVirgString - 1)
	if (bMsgTrace) alert("iPosUltimoPtoString pto= " + iPosUltimoPtoString)
	if (bMsgTrace) alert("iPosPenultimoPtoString pto= " + iPosPenultimoPtoString)
	if (bMsgTrace) alert("iPosUltimoVirgString pto= " + iPosUltimoVirgString)
	if (bMsgTrace) alert("iPosPenultimoVirgString pto= " + iPosPenultimoVirgString)
	if (iPosUltimoPtoString>=iPosUltimoVirgString)
	{
		iPosUltimoSepString = iPosUltimoPtoString
		iPosPenultimoSepString = iPosPenultimoPtoString
	}
	else
	{
		iPosUltimoSepString = iPosUltimoVirgString
		iPosPenultimoSepString = iPosPenultimoVirgString
	}
	iPosCorretaSepDecimal = iTamExpressao - (iNumCasasDecimais + 1)
	if (bMsgTrace) alert("iPosUltimoSepString pto= " + iPosUltimoSepString)
	if (bMsgTrace) alert("iPosPenultimoSepString pto= " + iPosPenultimoSepString)
	if (bMsgTrace) alert("iPosCorretaSepDecimal = " + iPosCorretaSepDecimal)
	if (iPosUltimoSepString==-1 && iPosPenultimoSepString== -1)
	{
	if (bMsgTrace) alert("ajuste 0")
		sExpressao = sExpressao + String(iNumCasasDecimais,"0")
	}
	
	else if (iPosUltimoSepString>=iPosCorretaSepDecimal && iPosPenultimoSepString== -1)
	{
	if (bMsgTrace) alert("ajuste 1")
		sExpressao = sExpressao + String(iPosUltimoSepString-iPosCorretaSepDecimal,"0")
	}
	else if(iPosUltimoSepString<iPosCorretaSepDecimal && iPosPenultimoSepString== -1)
	{
	if (bMsgTrace) alert("ajuste 2")
		sExpressao = sExpressao.substring(0,iPosUltimoSepString + iNumCasasDecimais + 1)
	}
	else
	{
	if (bMsgTrace) alert("ajuste 3")
		sExpressao = sExpressao + String(iNumCasasDecimais,"0")
	}

	if (bMsgTrace) alert("sExpressao apos ajuste dos decimais = " + sExpressao)

	//Retira qualquer tipo de formatacao da string passada como argumento.
	sExpressao = Replace(sExpressao,".","")
	sExpressao = Replace(sExpressao,",","")
	iTamExpressao = sExpressao.length
	if (bMsgTrace) alert("sExpressao apos retirada da formatacao = " + sExpressao + " iTamExpressao = " + iTamExpressao)
	sInteiro = sExpressao.substring(0,iTamExpressao-iNumCasasDecimais)
	if (bMsgTrace) alert("sInteiro = " + sInteiro)
	sDecimais = sExpressao.substring(iTamExpressao-iNumCasasDecimais,iTamExpressao)
	if (bMsgTrace) alert("sDecimais = " + sDecimais)

	//Formata a parte inteira com o separador de milhar selecionado.
	sInteiroFormatado = '';
	j = 0;
	for (i = sInteiro.length; i > 0; i--)
	{
		j = j + 1;
		if (j == 4)
		{
			sInteiroFormatado = sInteiro.substring(i,i-1) + sSepMilhar + sInteiroFormatado;
			j = 1;
		}
		else
		{
			sInteiroFormatado = sInteiro.substring(i,i-1) + sInteiroFormatado;
		}
	}

	if (bMsgTrace) alert("sInteiroFormatado = " + sInteiroFormatado)
	//Formatacao da string de retorno
	if (bNumNegativo)
		sStringRet = "-" + sInteiroFormatado + sSepDecimal + sDecimais
	else
		sStringRet = sInteiroFormatado + sSepDecimal + sDecimais

	if (bCurrency)
		sStringRet = SimboloCurrency + sStringRet;
	return(sStringRet)
}

//------------------------------------------------------------------------------
function Obtem(sExpressao, sItem)
{
	var PosIni, PosFim, Result;
	PosIni = sExpressao.indexOf(sItem,0);
	if (PosIni > -1)
	{
	  PosIni += sItem.length + 1;
	  PosFim = sExpressao.indexOf("&",PosIni);
	  if (PosFim == -1 )
		 PosFim = sExpressao.length;
	  Result = sExpressao.substring(PosIni,PosFim);
	}
	else
	  Result = "";
	return (Result);
}

//------------------------------------------------------------------------------
function ConcatenaLista(Lista)
	{
	var Result="";
	var i;
	
	for (i=0; i<Lista.options.length; i++)
		{
		if (Result != "") Result = Result + "||";
		Result = Result + Lista.options[i].value;
		}
	return Result;
	}

//------------------------------------------------------------------------------
function AlinhaColunaHTML(ConteudoColuna,TamColuna,Alinhamento)	
{
	var i,spaces = "";
	
	
	//ConteudoColuna = Trim(ConteudoColuna);
 
	if (TamColuna <= ConteudoColuna.length)
	{	  
	  ConteudoColuna = ConteudoColuna.substring(0,TamColuna);	 
	}	  
	else
	{
	 
	  TamColuna -= ConteudoColuna.length;
	  if (Alinhamento == "C") 
		 TamColuna /= 2;
	  for(i=0;i<TamColuna;i++)
	  {
		 spaces += " ";
	  }
			
	  switch (Alinhamento)
	  {
		 case ("E"):
		 {
			ConteudoColuna = ConteudoColuna + spaces;
			break;
		 }
		 case ("D"):
		 {			
			
			ConteudoColuna = spaces + ConteudoColuna;
			break;
		 }
		 case ("C"):
		 {
			ConteudoColuna = spaces + ConteudoColuna + spaces;
			break;
		 }
	  }
	}
  return ConteudoColuna;  
}

//------------------------------------------------------------------------------
function RetiraChar(sItem)
{
	var i,charret,sRetorno;
	sRetorno = "";
	for (i=0;i<sItem.length;i++)
	{
	  charret = sItem.substring(i,i+1);
	  if (!(charret == " " || charret == unescape("%0D") || charret == unescape("%0A")))
		 sRetorno += charret;
	}
	return (sRetorno);
}

//------------------------------------------------------------------------------
function TrataNull(Valor, bNumerico)
{
	if (Valor == "")
	  return ("Null");
	else
	{
	  if (bNumerico)
		 return (Valor);
	  else
		 return ("'" + Valor + "'");
	}
		 
}

//------------------------------------------------------------------------------
function LimitaTamanho(objTexto, iTamMax)
{
	if (objTexto.value.length >= iTamMax)
	  objTexto.value = objTexto.value.substring(0,iTamMax-1);
}

//------------------------------------------------------------------------------
function Valida_Valor(obj,NumeroDecimais)
{
	var ValTemp = obj.value;
	var ValTemp1 = obj.value;	
	if (ValTemp != "")
	{	 
		ValTemp1 = FormataNumero(ValTemp1,'','.',NumeroDecimais);
		if ( ValTemp1 == 0 ){
			obj.value = FormataNumero('0','.',',',NumeroDecimais);
			//obj.value = "0,00";
			return (true);
		}				
					
  		ValTemp = FormataNumero(ValTemp,'.',',',NumeroDecimais);				
		if (!ValidaValor(ValTemp))		{
			window.alert ("Valor inválido !!!");
			obj.focus();
			return (false);
		}
		else
		{
			obj.value = ValTemp;
			return (true);
		}
	}
	else
	{
		//obj.value = "0,00";
		return (true);
	}
}

//------------------------------------------------------------------------------
function Valida_Percentual(obj,NumeroDecimais)
{
	var ValTemp = obj.value;
	var ValTemp1 = obj.value;
	if (ValTemp != "")
	{	
		ValTemp = FormataNumero(ValTemp,'','.',NumeroDecimais);
		if ( ValTemp > 100 ){
			window.alert ("Valor percentual deve ser igual ou menor que 100  !!!");
			ValTemp = FormataNumero(ValTemp,'.',',',NumeroDecimais);
			obj.value = ValTemp;
			obj.focus();
			return (false);		
		}
		
		ValTemp1 = FormataNumero(ValTemp1,'','.',NumeroDecimais);
		if ( ValTemp1 == 0 ){
			obj.value = FormataNumero('0','.',',',NumeroDecimais);
			//obj.value = "0,00";
			return (true);
		}				
		
		if ( ValTemp == 100 ){
			return (true);
		}	 
		ValTemp = FormataNumero(ValTemp,'.',',',NumeroDecimais);
		if (!ValidaValor(ValTemp))		{
			window.alert ("Valor inválido !!!");
			obj.focus();
			return (false);
		}
		else
		{
			obj.value = ValTemp;
			return (true);
		}
	}
	else
	{
		//obj.value = "0,00";
		return (true);
	}
}

//------------------------------------------------------------------------------
function Valida_Numero(obj)
{

	var ValTemp = obj.value;
	var ValTemp1 = obj.value;	
	if (ValTemp != "")
	{		
		ValTemp1 = FormataNumero(ValTemp1,'','.',0);
		if ( ValTemp1 == 0 ){
			obj.value = FormataNumero('0','.',',',0);
			//obj.value = "0,00";
			return (true);
		}				
	
		if (!IsNumeric(ValTemp)){
			window.alert ("Digite apenas numeros inteiros e positivo !!!");
			obj.focus();
			return (false);
		}
		else
		{
			obj.value = ValTemp;
			return (true);
		}
	}		
}

//------------------------------------------------------------------------------
function f_Seta_Data(obj)
{
  hoje = new Date();
  ano = hoje.getYear()
  if ( ano < 2000 )
	ano = "19" + ano ;

  dia  = hoje.getDate(); 
  if(dia<10)
	dia = "0" + dia;
  mes  = hoje.getMonth()+1; 
  if(mes<10)
	mes = "0" + mes;
  if (obj.value == "" ){
	  obj.value = dia + "/" + mes + "/" +  ano ;
	}
}

function getDataDeHoje()
{
  var objDataHoje = new Date();
  var strDataHoje;
  var strDia;
  var strMes;
  var strAno
  
  strAno = objDataHoje.getYear()
  if ( strAno < 2000 )
	strAno = "19" + strAno ;

  strDia  = objDataHoje.getDate(); 
  if(strDia < 10)
	strDia = "0" + strDia;
	
  strMes = objDataHoje.getMonth() + 1; 
  if(strMes < 10)
	strMes = "0" + strMes;
	
  strDataHoje = strDia + "/" + strMes + "/" +  strAno ;
  
  return strDataHoje;

}

//------------------------------------------------------------------------------
function Trim(sExpressao)
{
	var i;
	for (i=0;i<sExpressao.length;i++)
	  if (sExpressao.charAt(i) != " ")
		 break;
	sExpressao = sExpressao.substring(i,sExpressao.length);

	for (i=sExpressao.length-1;i>0;i--)
	  if (sExpressao.charAt(i) != " ")
		 break;
	sExpressao = sExpressao.substring(0,i+1) + sExpressao.charAt(sExpressao.length);	

	return (sExpressao);
}

//------------------------------------------------------------------------------
function IsMoney(Valor)
{
	var i;

	for (i = 0; i < Valor.length; i++)
	{
	  if ((Valor.charAt(i) < "0" || Valor.charAt(i) > "9") && (Valor.charAt(i) != "," && Valor.charAt(i) != "."))
	  {
		 return (false);
	  }
	}
	return (true);
}

//------------------------------------------------------------------------------
function IsNumero(Valor)
{
	var i;

	for (i = 0; i < Valor.length; i++)
	{
	  if ((Valor.charAt(i) < "0" || Valor.charAt(i) > "9") )
	  {
		 return (false);
	  }
	}
	return (true);
}

//------------------------------------------------------------------------------
function ValidaCharMonetario(CampoTexto)
{
	var i,texto,result;
	
	texto = CampoTexto.value;
	result = "";
	for (i=0;i<texto.length;i++)
	{
	  if ((texto.charAt(i) >= "0" && texto.charAt(i) <= "9") || texto.charAt(i) == "," || texto.charAt(i) == ".")
		 result += texto.charAt(i);
	}
	CampoTexto.value = result;
}

//------------------------------------------------------------------------------
function ValidaCharNumero(CampoTexto)
{
	var i,texto,result;
	
	texto = CampoTexto.value;
	result = "";
	for (i=0;i<texto.length;i++)
	{
	  if ((texto.charAt(i) >= "0" && texto.charAt(i) <= "9"))
		 result += texto.charAt(i);
	}
	CampoTexto.value = result;
}

//------------------------------------------------------------------------------
function ValidaCharData(CampoTexto)
{
	var i,texto,result;
	
	texto = CampoTexto.value;
	result = "";
 
	for (i=0;i<texto.length;i++)
	{
	  if (!((texto.charAt(i) >= "0" && texto.charAt(i) <= "9") || texto.charAt(i) == "/"))
		  CampoTexto.blur(); 
	  //	result += texto.charAt(i);
	}
	//CampoTexto.value = result;
}

//------------------------------------------------------------------------------
function StrSemAcento(str)
{
	var i;

	for (i = 0; i < str.length; i++)
	{
	  if ((str.charAt(i) >= "A" && str.charAt(i) <= "Z") || (str.charAt(i) >= "a" && str.charAt(i) <= "z"))
	  {
		 return (true);
	  }
	}
	return (false);	
}

//------------------------------------------------------------------------------
function BloqueiaAcento(campo)
{
	var i,result,aux;
	
	result = "";
	aux = campo.value;
	for (i = 0; i < aux.length; i++)
	  if (aux.charAt(i) >= " " && aux.charAt(i) <= "}")
		 result += aux.charAt(i);
	campo.value = result;
}

//------------------------------------------------------------------------------
//Retorna "dd/mm/aaaa","hh:mm:ss","dd/mm/aaaa hh:mm" ou "hh:mm dd/mm/aaaa"
function DataHora(sTipo)
{
	var objDate = new Date();
	var sRet = ""
	var Dia  = objDate.getDate()	  + "";
	var Mes  = (objDate.getMonth()+1) + "";
	var Ano  = objDate.getYear()	  + "";
	if (Dia.length < 2) Dia = "0" + Dia;
	if (Mes.length < 2) Mes = "0" + Mes;
	//if (Ano.length < 2) Ano = "0" + Ano;
	
	var Hor = objDate.getHours()	+ "";
	var Min = objDate.getMinutes() + "";
	var Seg = objDate.getSeconds() + "";
	if (Hor.length < 2) Hor = "0" + Hor;
	if (Min.length < 2) Min = "0" + Min;
	if (Seg.length < 2) Seg = "0" + Seg;
	
	if (sTipo == 'data')
	  sRet = Dia + "/" + Mes + "/" + Ano;
	else if (sTipo == 'hora')
	  sRet = Hor + ":" + Min;
	else if (sTipo == 'datahora')
	  sRet = Dia + "/" + Mes + "/" + Ano + " " + Hor + ":" + Min;
	else if (sTipo == 'horadata')
	  sRet = Hor + ":" + Min + " " + Dia + "/" + Mes + "/" + Ano;
	
	return(sRet);
}

//------------------------------------------------------------------------------
//-- Valida Data Hora no formato "dd/mm/aaaa hh:mm" --
function f_valida_datahora(oObj)
{
	var bRet = true;
	var sVal = "" + oObj.value + "";
	
	var iPos = sVal.indexOf(" ");
	if (iPos < 0)
	{
	  alert("Utilize o formato \"dd/mm/aaaa hh:mm\".");
	  oObj.focus();
	  oObj.select();
	  return(false);
	}
	
	var sData = sVal.substring(0,iPos);
	if (!isDate(sData))
	{
	  alert("Data Invalida.");
	  oObj.focus();
	  oObj.select();
	  return(false);
	}
	
	var sTime = sVal.substring(iPos+1,16);
	if (!isTime(sTime))
	{
	  alert("Hora Invalida.");
	  oObj.focus();
	  oObj.select();
	  return(false);
	}
	return (bRet);
}

//------------------------------------------------------------------------------
//Exemplo: OnKeyUp="criaMascara(this, '##/##/####');"
function criaMascara(_RefObjeto,_Modelo)
{
	var valorAtual = _RefObjeto.value;
	var valorNumerico = '';
	var nIndexModelo = 0;
	var nIndexString = 0;
	var valorFinal = '';
	var adicionarValor = true;
	for (i=0;i<_Modelo.length;i++)
	{
		if (_Modelo.substr(i,1) != '#')
		{
			valorAtual = valorAtual.replace(_Modelo.substr(i,1),'');
		}
	}
	for (i=0;i<valorAtual.length;i++)
	{
		if (!isNaN(parseFloat(valorAtual.substr(i,1))))
		{
			valorNumerico = valorNumerico + valorAtual.substr(i,1);
		}
	}
	for (i=0;i<_Modelo.length;i++)
	{
		if (_Modelo.substr(i,1) == '#')
		{
			if (valorNumerico.substr(nIndexModelo,1) != '')
			{
				valorFinal = valorFinal + valorNumerico.substr(nIndexModelo,1);
				nIndexModelo++;nIndexString++;
			}
			else
			{
				adicionarValor = false;
			}
		}
		else
		{
			if (adicionarValor && valorNumerico.substr(nIndexModelo,1) != '')
			{
				valorFinal = valorFinal + _Modelo.substr(nIndexString,1)
				nIndexString++;
			}
		}
	}
	_RefObjeto.value = valorFinal 
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------
//-- Valida Hora no formato "hh:mm" formato 24:00 --
function isTime(sData)
{
	var bRet;
	var i;
	bRet = true;
	
	if (sData.length != 5) bRet = false;
	
	if (bRet)
	{
	  i = 0;
	  while (i < sData.length && bRet)
	  {
		 if (i==2)
		 {
			if (sData.charAt(i)!=":") bRet = false;
		 }
		 else
		 {
			if (!IsNumeric(sData.charAt(i),0)) bRet = false;
		 }
		 i++;
	  }
	}
	
	if (bRet)
	{
	  var iHora = parseInt(sData.substring(0, 2), 10)
	  var iMinu = parseInt(sData.substring(3, 5), 10)
	  if (iHora < 0 || iHora > 23) bRet = false;
	  if (iMinu < 0 || iMinu > 59) bRet = false;
	}
	return bRet
}


//---------------------------------------
//Aplicável para listas
//Conta quantos elementos estão selecionados

function f_conta_options (sCampo)
{
	var iTotal = 0;
	for (var i = sCampo.options.length; i > 0; i--)
	{
	  if (sCampo.options[i-1].selected)
	  {
		 if (sCampo.options[i-1].value != "") iTotal++;
	  }
	}
	return (iTotal);
}

//------------------------------------------------------------------------------
function CriaArray (n) { 
			  this.length = n 
			  for (var i = 1 ; i <= n ; i++) 
					{ this[i] = "" }	}


//------------------------------------------------------------------------------
// Criador: Fabio Brunetti Falci - 15/01/2002
// Objetivo: Retirar a formatação do CNPGJ para poder utilizar a função ja existente "cgc"
// Exemplo: onBlur = "VerificaCNPJ(this)"
// verifica se o CGC/CNPJ é válido. 
// Para isso, o CGC/CNPJ deve ter apenas números

function VerificaCNPJ(ObjCampo)
{
	//Não verifica se estiver em branco

	var strCNPJ
	var vCNPJ
	var ponto = "."
	var barra = "/"
	var traco = "-"

	if (ObjCampo.value != "")
	{
		//Recebe o CNPJ com separações
		strCNPJ = ObjCampo.value;

		//Retira os pontos, barra e traço
		strCNPJ = RetiraNaoNumericosString(strCNPJ);
	
		vCNPJ = RetiraNaoNumericos(strCNPJ);
		if ((vCNPJ==0) || (vCNPJ.length>14))
		{
			alert('CNPJ inválido!');
			ObjCampo.focus();
			return false;
		}		
	
		//Verifica se é válido
		if (!cgc(strCNPJ))
		{
			alert('CNPJ inválido!');
			ObjCampo.focus();
			return false;
		}
	}
}


//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 11/03/2002
// Objetivo: Retirar a formatação do CPF para poder utilizar a função ja existente "cpf"
// Exemplo: onBlur = "VerificaCPF(this)"
// verifica se o CPF é válido. 
// Para isso, o CPF deve ter apenas números

function VerificaCPF(ObjCampo)
{
	//Não verifica se estiver em branco

	var strCPF
	var ponto = "."
	var traco = "-"

	if (ObjCampo.value != "")
	{
		//Recebe o CPF com separações
		strCPF = ObjCampo.value;

		//Retira os pontos, barra e traço
		strCPF = RetiraNaoNumericosString(strCPF);
	
		//Verifica se é válido
		if (!cpf(strCPF))
		{
			alert('CPF invalido!');
			ObjCampo.focus();
			return false;
		}
	}
}



//------------------------------------------------------------------------------
// verifica se o CNPJ e valido
 
 function cgc(pcgc)
 {
 
 // verifica o tamanho
 if (pcgc.length > 15) {
  sim=false
  }
 else {sim=true}

  if (sim )  // verifica se e numero
  {
  for (i=0;((i<=(pcgc.length-1))&& sim); i++)
  {
	val = pcgc.charAt(i)
		// alert (val)
	if ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4") && (val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) 
	{sim=false}
  }

	if (sim)  // se for numero continua
	{
	m2 = 2
	soma1 = 0
	soma2 = 0
	for (i=11;i>=0;i--)
	{
	 val = eval(pcgc.charAt(i))
		// alert ("Valor do Val: "+val)
	 m1 = m2
  if (m2<9) { m2 = m2+1}
  else {m2 = 2}
  soma1 = soma1 + (val * m1)
  soma2 = soma2 + (val * m2)
	}  // fim do for de soma

  soma1 = soma1 % 11
  if (soma1 < 2) {  d1 = 0}
	else { d1 = 11- soma1}

	 soma2 = (soma2 + (2 * d1)) % 11
  if (soma2 < 2)
   { d2 = 0}
	else 
   { d2 = 11- soma2}
	
		if ((d1==pcgc.charAt(12)) && (d2==pcgc.charAt(13)))
		{ 
			return (true);
		}	
		else 
		{	
			return (false);
		}
	}
 }

 }


//------------------------------------------------------------------------------
 function cpf(pcpf)
 {

 if (pcpf.length != 11) {sim=false}
 else {sim=true}

  if (sim )  // valida o primeiro digito
  {
  for (i=0;((i<=(pcpf.length-1))&& sim); i++)
  {
	val = pcpf.charAt(i)
	if

 ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")

 &&	(val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) {sim=false}
	}

	if (sim)
  {
	soma = 0
	for (i=0;i<=8;i++)
	{
	 val = eval(pcpf.charAt(i))
	 soma = soma + (val*(i+1))
	}

	resto = soma % 11
	if (resto>9) dig = resto -10
	else  dig = resto
	if (dig != eval(pcpf.charAt(9))) { sim=false }
	else	// valida o segundo digito
	{

	 soma = 0
	for (i=0;i<=7;i++)
	 {
	 val = eval(pcpf.charAt(i+1))
	  soma = soma + (val*(i+1))
	}

	 soma = soma + (dig * 9)
	resto = soma % 11
	 if (resto>9) dig = resto -10
	 else  dig = resto
	if (dig != eval(pcpf.charAt(10))) { sim = false }
	else sim = true
	}
	}
  }

  if (sim) { return (true); }
  else
	return (false);
 }

//-------------------------------------------------------------
function MascaraCNPJ(objCampo)
{
	var valor = objCampo.value;
	
	if (valor.length < 2)
		{
			if (event.keyCode < 48 || event.keyCode > 57 )
			{
				event.keyCode = 0; 
			}
		}	
	else if (valor.length==2)
		{
			if (valor.indexOf('.')>0)
			{
				if (event.keyCode < 48 || event.keyCode > 57 || event.keyCode==46)
				{
				event.keyCode = 0; 
				}
				else
				{
					codigo = event.keyCode;
					objCampo.value = objCampo.value;
					event.keycode = codigo;
				}
			}
			else
			{
				if (event.keyCode < 48 || event.keyCode > 57 )
				{
					if (event.keyCode !=46)
					{
					event.keyCode = 0; 
					}
				}
				else
				{
					codigo = event.keyCode;
					objCampo.value = objCampo.value + '.';
					event.keycode = codigo;
				}
			
			}
			
		}	
	 else if ((valor.length >= 3 && valor.length <= 5) || (valor.length >= 7 && valor.length <= 9) || (valor.length >= 11 && valor.length <= 14) || (valor.length >= 16 && valor.length <= 17))
		{
	 		if (event.keyCode < 48 || event.keyCode > 57 )
			{
				event.keyCode = 0; 
			}
		}
	else if (valor.length == 6)
		{
			if (event.keyCode < 48 || event.keyCode > 57 )
			{
				if (event.keyCode !=46)
				{
				event.keyCode = 0; 
				}
			}
			else
			{
				codigo = event.keyCode;
				objCampo.value = objCampo.value + '.';
				event.keyCode = codigo;
			}
		}
	else if (valor.length == 10)
		{
			if (event.keyCode < 48 || event.keyCode > 57 )
			{
				if (event.keyCode !=47)
				{
				event.keyCode = 0; 
				}
			}
			else
			{
				codigo = event.keyCode;
				objCampo.value = objCampo.value + '/';
				event.keyCode = codigo;
			}
		}
	else if (valor.length == 15)
		{
			if (event.keyCode < 48 || event.keyCode > 57 )
			{
				if (event.keyCode !=45)
				{
				event.keyCode = 0; 
				}
			}
			else
			{
				codigo = event.keyCode;
				objCampo.value = objCampo.value + '-';
				event.keyCode = codigo;
			}
		}
	else
		{
		event.keyCode = 0; 
		}		
		
	return true;
}

//-------------------------------------------------------------
//---- Retira caracteres não numéricos
function RetiraNaoNumericos(valor)
{
	var novovalor ='';
	var numero = new Number();
	
	if (valor.length > 0)
		{
			for(var i=0;i<valor.length;i++)
			{
				if (!(valor.charCodeAt(i) < 48 || valor.charCodeAt(i) > 57))
				{
					novovalor = novovalor + valor.charAt(i);		
				}
			}
	
			if (novovalor.length>0)
			{
				numero = parseFloat(novovalor,10);
			}
	
			novovalor = numero.toString(10);
		}
	else
		{
			novovalor = '';
		}
	
	return(novovalor);
}


//-------------------------------------------------------------
//---- Retira caracteres não numéricos permanecendo o zero a esquerda
function RetiraNaoNumericosString(valor)
{
	var novovalor ='';
	var numero = new Number();
	
	if (valor.length > 0)
		{
			for(var i=0;i<valor.length;i++)
			{
				if (!(valor.charCodeAt(i) < 48 || valor.charCodeAt(i) > 57))
				{
					novovalor = novovalor + valor.charAt(i);		
				}
			}
	
		}
	else
		{
			novovalor = '';
		}
	
	return(novovalor);
}

//------------------------------------------------------------------------------
//Verifica CEP válido

function ValidaCEP(obj)
{
	var valido = "0123456789-";
	var hifencount = 0;
	
	if (obj.value != "")
	{
	  if (obj.value.length != 9) 
	  {
		 alert("O campo de CEP deve ter 8 números (formato 00000-000).");
		 obj.focus(obj);
		 return (false);
	  }
	  for (var i=0; i < obj.value.length; i++) {
		temp = "" + obj.value.substring(i, i+1);
		if (temp == "-") hifencount++;
		if (valido.indexOf(temp) == "-1") {
			alert("Caracter inválido no campo de CEP (formato 00000-000).");	
			obj.focus(obj);		
			return (false);
		}
		if ((hifencount > 1) || ((obj.value.length==9) && ""+obj.value.charAt(5)!="-")) {
			alert("Formato de CEP inválido (formato 00000-000).");
			obj.focus(obj);	
			return (false);
		}
	  }
	}
	return true;
}

//------------------------------------------------------------------------------
function Substitui_e_comercial(vStr, bColoca)
{
	if (bColoca)
	{
		var c_Busca = "|";
		var c_Inclui = "&";
	}
	else
	{
		var c_Busca = "&";
		var c_Inclui = "|";
	}

	var iPos = vStr.indexOf(c_Busca);
	while (iPos!=-1)
	{
		vStr = vStr.substring(0, iPos) + c_Inclui + vStr.substring(iPos+1, vStr.length);
		iPos = vStr.indexOf(c_Busca);
	}
	
	return vStr;
}

// Função que cria uma máscara monetária para o campo de texto
function FormataValor(campo,tammax,teclapres) {

	var tecla = teclapres.keyCode;
	var vr = campo.value;
	var vrAux = vr.substr(0, (vr.length-1))
	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 >= tammax){campo.value = vrAux;	return;	}
	
	if (tam < tammax && 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 ; }
	 	tam = tam - 1;
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + 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 SomenteNumeros(input)
{
	if ((event.keyCode<48)||(event.keyCode>57))
		event.returnValue = false;
}


//
//Programado por  :Denilson Barbosa
//Data            :14/08/2004
//Descrição       :Exibe calendário e preenche o campo informado no parâmetro 'nmCampo'
//Observação      :é necessário que exista uma 'div' na página que receberá o calendário, com o id='popFrame'.
// ==================================================================
// ALTERADO EM : 10/11/2004 POR LUIS RODRIGUES
// MOTIVO : NAO FUNCIONA.. NAO ACHA OS INDICES CORRETAMENTE
// SOLICITANTE : MAURO CANDIDO
function ChamaCalendario(vIndice,vNomeDoCampo)
{
	var TotalDeCampos	=	'' ;
	var Indice			=	'' ;
	var NomeDoCampo		=	'' ;
	var Passou			=   false ;
	
	Indice				=	vIndice ;
	NomeDoCampo			=	vNomeDoCampo ;
	TotalDeCampos		=	document.all[NomeDoCampo].length ;

	if ((Indice == "") && (TotalDeCampos == undefined))
		popFrame.fPopCalendar(document.all[NomeDoCampo],document.all[NomeDoCampo],popCal);
	
	if ((Indice == "") && (TotalDeCampos > 0)){
		Passou = true;
		Indice = TotalDeCampos - 1;
		popFrame.fPopCalendar(document.all[NomeDoCampo][Indice],document.all[NomeDoCampo][Indice],popCal);
	}
	
	if (!Passou){
		if (Indice != "")
			popFrame.fPopCalendar(document.all[NomeDoCampo][Indice],document.all[NomeDoCampo][Indice],popCal);
	}

}


//Ortega 17/12/2004 Validar Tamanho dos campos obs com 200 posições Inicio
	function ValidaTamanho(obj, vTam)
	{
		if (obj.value.length > vTam)
			obj.value = obj.value.substr(0, vTam);
	}
//Ortega 17/12/2004 Validar Tamanho dos campos obs com 200 posições Fim


//------------------------------------------------------------------------------
// Criador: Carlos Salvador - 23/11/2004
// Objetivo: Retorna o número de dias comparando duas datas
// Para isso, as datas devem ser passadas no formato dd/mm/yyyy
/*function DiferencaDias(data1, data2)
{
	dataA= new Date(data1.substring(6),(data1.substring(3,5)-1),data1.substring(0,2));
	dataB= new Date(data2.substring(6),(data2.substring(3,5)-1),data2.substring(0,2));
	dataA= dataA.getTime();
	dataB= dataB.getTime();
	var diferencaDias;
	diferencaDias = Math.abs((dataB-dataA)/1000/60/60/24)+1;
	return diferencaDias;
}*/
/*
//Programado por  :Denilson Barbosa
//Data            :14/08/2004
//Descrição       :Exibe calendário e preenche o campo informado no parâmetro 'nmCampo'
//Observação      :é necessário que exista uma 'div' na página que receberá o calendário, com o id='popFrame'.
function NAO_FUNCIONA_ChamaCalendario(iReg,nmCampo)
{			
	alert('Indice : ' + iReg);
	alert('totais : ' + document.all[nmCampo].length);
	
	if(iReg == "")
	{
		if (document.all[nmCampo].length == undefined)
			popFrame.fPopCalendar(document.all[nmCampo],document.all[nmCampo],popCal);
		else
			popFrame.fPopCalendar(document.all[nmCampo][0],document.all[nmCampo][0],popCal);
	}
	else
	{
		popFrame.fPopCalendar(document.all[nmCampo][iReg],document.all[nmCampo][iReg],popCal);
	}

}
*/

