  //***************************************************************************
  // WebTool 3.0 é um produto desenvolvido pelo GrupoGS3 e os direitos 
  // autorais sobre este arquivo estao garantidos aos mesmos
  // GrupoGS3 http://www.grupogs3.com.br
  //***************************************************************************\
  
//-----------------------------------------------------------------------------  
function mostrarNome(){
  window.status = event.srcElement.name;
}    
//-----------------------------------------------------------------------------  
function debugNomeComponente(){
  for (i=0;i<document.all.length;i++) {
    document.all[i].onmousemove=mostrarNome;
  }  
}
  
//-----------------------------------------------------------------------------
function pesquisaTabelaPopup(){
  paginaLink = this.paginaPesquisa.toString() + '?tabela=' + this.tabelaReferencia.toString();
  window.open(paginaLink,'PESQUISA_TABELA',"height=300,width=500,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes");
}  
  
//-----------------------------------------------------------------------------
function executaAcao(iframe,pagina,acao,tabela,campos,valores) {
  linkPagina = pagina.toString() + '?acao=' + acao.toString() + '&tab=' + tabela.toString() + '&campos=' + campos.toString() + '&valores=' + valores.toString();
  iframe.src = linkPagina;
}

//-----------------------------------------------------------------------------
function reverso(texto) {
  i=0;
  resultado = '';
  for (i=texto.length;i>=0;i--) {
    resultado += texto.substr(i,1);
  }
  return resultado;
}

//-----------------------------------------------------------------------------
function existeElementoNoDocumento(eleNome) {
  var i=0;  
  //try {
    for (i=0;i<document.all.length;i++)
    {
      if (document.all[i].name==eleNome.toString()) { return true; }
    }
  //}
  //catch(e) {
  //  alert('WebTool 3.0\nHouve um erro de script na aplicação na função "existeElemento".\n\nErro : ' + e.description);
  //  return false;
  //}
  return false;
}

//-----------------------------------------------------------------------------
function existeElementoNoFormulario(formulario,eleNome) {
  var i=0;  
  //try {
    for (i=0;i<formulario.all.length;i++)
    {
      if (formulario.all[i].name==eleNome.toString()) { return true; }
    }
  //}
  //catch(e) {
  //  alert('WebTool 3.0\nHouve um erro de script na aplicação na função "existeElemento".\n\nErro : ' + e.description);
  //  return false;
  //}
  return false;
}

//-----------------------------------------------------------------------------
function colocaValorNoCampo(formulario,nome,valor){
  var i=0;  
  if (!existeElementoNoFormulario(formulario,nome))
  {
     alert('O campo "'+nome+'" nao foi lozalizado no FORM. Verifique os dicionários!'); 
     return false;
  }
  //try {
    if (formulario[nome].nodeName.toUpperCase()=='SELECT')
    {
      for (i=0;i<formulario[nome].length;i++)
      {
        if (formulario[nome].options[i].value==valor)
        {
          formulario[nome].selectedIndex = i.toString();
        }
      }
    }
    
    if (formulario[nome].nodeName.toUpperCase()=='INPUT')
    {
      if ((formulario[nome].getAttribute('TYPE').toUpperCase()=='TEXT')||
          (formulario[nome].getAttribute('TYPE').toUpperCase()=='PASSWORD')||
          (formulario[nome].getAttribute('TYPE').toUpperCase()=='HIDDEN'))
      {
        formulario[nome].value=valor;
      }
    }
    
    if (formulario[nome].nodeName.toUpperCase()=='TEXTAREA')
    {
      formulario[nome].value=valor;
    }    
  //}
  //catch(e) {
  //  alert('WebTool 3.0\nHouve um erro de script na aplicação na função "colocaValorNoCampo".\n\nErro : ' + e.description);
  //  return false;
  //}
}

//-----------------------------------------------------------------------------
function trim(texto) {
  MAX_LOOP = 1000;
  resultado = texto.toString();
  i=0;
  while (resultado.lastIndexOf(' ')==(resultado.length-1))
  {
      resultado = resultado.substr(0,resultado.length-1);
      if (resultado=='') { return ''; }
      i++;
      if (i>MAX_LOOP) { return ''; }
  }
  i=0;
  while (resultado.substr(0,1)==' ')
  {
      resultado = resultado.substr(1,resultado.length-1);
      if (resultado=='') { return ''; }
      // PROGRAMACAO DEFENSIVA
      i++;
      if (i>MAX_LOOP) { return ''; }
  }
  return resultado;
}

//-----------------------------------------------------------------------------
function wt3_validar_todos_campos(objCtrl){
  var i=0;
  for (i=0;i<objCtrl.contador;i++) {
    if (! objCtrl.campos[i].validar() ) { return false; }
  } 
  return true; 
}

//-----------------------------------------------------------------------------
function wt3_enviarFormulario(page,obj,act,wc,objCtrl,k) {
  if (obj.form.getAttribute('wt3_action')==null){ return false; }
  if (act!=3) {
    if (!wt3_validar_todos_campos(objCtrl)) {
      obj.form.wt3_action=-2; 
      return false;
    }  
  }  
  obj.form.wt3_action=act;  
  obj.form.action = page.toString() + '?wtact=' + act.toString() + '&wc=' + escape(wc.toString()) + '&k=' + k.toString();
}

//-----------------------------------------------------------------------------
function wt3_validar_formulario(formulario){
  if (formulario.getAttribute('wt3_action')!=null){
    
    //retorno de erro de validacao de campo
    if (formulario.wt3_action==-2) { 
      formulario.wt3_action=-1;
      return false;
    }
   
    if (formulario.wt3_action!=-1) {
      return true;
    }
    
    alert('A ação do formulario(wt3_action) não foi definida');
    return false;
  }
  else { 
    alert('O formulario especificado com a funcao wt3_validar_formulario nao possui o atributo wt3_action para a definicao da acao'); 
    return false;
  }
    
    
  
}

//-----------------------------------------------------------------------------
function isnumeric(x) {
	return (!isNaN(x));
}

//-----------------------------------------------------------------------------
function cstr(x) {
	return x.toString();
}

//-----------------------------------------------------------------------------
function len(x) {
	var x = cstr(x);
	return x.length;
}

//-----------------------------------------------------------------------------
function validaFaixaDatas(ano,mes,dia) {
  if (mes==2) {
    if ((ano%4)==0) {
      if (dia>29) { return false; }
    }
    else {
      if (dia>28) { return false; }
    }
  }
  if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
	  if (dia > 30) { return (false); }
	}  
	else {
     if (dia > 31) { return (false); }	
	}
	return true;
}

//-----------------------------------------------------------------------------
function validarData(data) {
  var dataExpr     =/(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[12][0-9]{3}$/;
  if (!data.match(dataExpr)) { return false; }
  //valida ano bissexto
  ano = parseInt(data.substr(6,4));
  mes = parseInt(data.substr(3,2));
  dia = parseInt(data.substr(0,2));
  return validaFaixaDatas(ano,mes,dia);
}

//-----------------------------------------------------------------------------
function validarDataHora(data) {
  var datahoraExpr     =/(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/[12][0-9]{3}[ ]([01][0-9]|2[0-3])(\:[0-5][0-9]){2}$/;
  if (!data.match(datahoraExpr)) { return false; }
  ano = parseInt(data.substr(6,4));
  mes = parseInt(data.substr(3,2));
  dia = parseInt(data.substr(0,2));
  return validaFaixaDatas(ano,mes,dia);  
}

//-----------------------------------------------------------------------------
function validarEmail(email) {
  var emailExpr     =/[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,4}/;
  return email.match(emailExpr);
}

//-----------------------------------------------------------------------------
// (XX) XXXX-XXXX
function validarTelefone(tel) {
  var telExpr     =/(\([0-9]{2}\) ?)[ ]([0-9]{4}|[0-9]{3})[- ][0-9]{4}/;
  return tel.match(telExpr);
}

//-----------------------------------------------------------------------------
// XXXXX-XXX
function validarCEP(cep) {
  var cepExpr     =/[0-9]{5}-[0-9]{3}/;
  return cep.match(cepExpr);
}

//-----------------------------------------------------------------------------
/*  versao antiga do validar data. feita por gustavo gatto
function validarData(x) {
	if (len(x) == 10) {
		var dt = x.split("/");
		var d = dt[0];
		var m = dt[1];
		var a = dt[2];
		if (isnumeric(d) == false || isnumeric(m) == false || isnumeric(a) == false) {
			return (false);
		}
		if ((m >12) || (m<1)) { return false; }
		if (m == 4 || m == 6 || m == 9 || m == 11) {
			if (d > 30) { return (false); }
		} else {
		        
			if (m == 2) {
				if (a%4 == 0) {
					if (d > 29) {
						return (false);
					}
				} else {
					if (d > 28) {
						return (false);
					}
				}
			}
			else {
                          if (d > 31) { return (false); }
			}
		}
		return (true);
	} else {
		return (false);
	}
}
*/


//-----------------------------------------------------------------------------
//                 FUNCOES DE CALENDARIO
function onSelect(calendar, date) {
  var input_field = calendar.sel;
  //caso seja de tamanho 19 o campo eh DATETIME
  //nesta caso adicionamos o time final
  if (input_field.maxLength==19) {
    date += ' 00:00:00';  
  }  
  input_field.value = date;
  if (calendar.dateClicked) {
    calendar.callCloseHandler(); // this calls "onClose" (see above)
  }
};

//-----------------------------------------------------------------------------
function onClose(calendar) {
  calendar.hide();
};

//-----------------------------------------------------------------------------
function mostraCalendario(objNome) {
  var el = document.getElementById(objNome);
  if (calendar!=null) {
    calendar.hide();
  }
  else  {
    var cal = new Calendar(true, null, onSelect, onClose);
    cal.setRange(1900, 2070); 
    cal.create();   
    calendar = cal; 
  }  
  //var el = els.item(0);

  calendar.setDateFormat("dd/mm/y");
  calendar.parseDate(el.value);
  calendar.sel = el;
  calendar.showAtElement(el);
} 

function mostraCalendarioCampo(){
  mostraCalendario(this.nomeElemento)
}
  
//FIM DAS FUNCOES DE CALENDARIO
//-----------------------------------------------------------------------------

 
