<!--
//////////////////////////////////////////////////////////////////////////////////////////
// Formata uma data em MM/DD/YYYY (ou MM/DD/YY)
// a data recebida deve estar em DD/MM/YYYY ou DD/MM/YY
//////////////////////////////////////////////////////////////////////////////////////////
function formatarDataJS(ls_data) {
var ls_dia;
var ls_mes;
var ls_ano;
var li_barra1;
var li_barra2;
var ls_retorno;

	ls_retorno = "";

	if (ls_data != "") {
		li_barra1 = 3;
		li_barra2 = 6;
		ls_dia = ls_data.substr(0, li_barra1-1);
		ls_mes = ls_data.substr(li_barra1, 2);
		if (ls_data.length==8) {
			ls_ano = ls_data.substr(li_barra2, 2);
		} else {
			ls_ano = ls_data.substr(li_barra2, 4);
		}
		ls_retorno = ls_mes+"/"+ls_dia+"/"+ls_ano
	}
	return(ls_retorno);
}

//////////////////////////////////////////////////////////////////////////////////////////
// Formata um número em formato moeda.
//////////////////////////////////////////////////////////////////////////////////////////
function formatarMoeda(ad_numero) {
var ls_numero;
var li_posDecimal;
var ls_parteDecimal;
var ls_parteInteira;
var ls_parteInteiraNova;
var li_qtdeSepMilhar;
var i;

	ls_numero = "";
	if (ad_numero != "") {
		ad_numero = Math.round(100 * ad_numero)/100;
		ls_numero = ad_numero.toString().replace(".", ",");
		li_posDecimal = ls_numero.indexOf(",");
		if (li_posDecimal>0) {
			ls_parteDecimal = ls_numero.substr(li_posDecimal+1, ls_numero.length);
			ls_parteInteira = ls_numero.substr(0, li_posDecimal);
			//complementa a parte decimal com zeros, se necessário
			while (ls_parteDecimal.length<2) {
				ls_parteDecimal = ls_parteDecimal + "0";
			}
		} else {
			ls_parteDecimal = "00";
			ls_parteInteira = ls_numero;
		}

		//agora insere os separadores de milhar na parte inteira
		li_qtdeSepMilhar = parseInt((ls_parteInteira.length-1)/3)
		i = 1;
		ls_parteInteiraNova = "";
		while (i <= li_qtdeSepMilhar) {
			ls_parteInteiraNova = "." + ls_parteInteira.substr((ls_parteInteira.length-i*3), 3) + ls_parteInteiraNova;
			i++;
		}
		if (li_qtdeSepMilhar == 0) {
			ls_parteInteiraNova = ls_parteInteira;
		} else {
			ls_parteInteiraNova = ls_parteInteira.substr(0, ls_parteInteira.length-li_qtdeSepMilhar*3) + ls_parteInteiraNova;
		}
		
		//monta o resultado final
		ls_numero = ls_parteInteiraNova + "," + ls_parteDecimal;	
	}
	return(ls_numero);
}	

//////////////////////////////////////////////////////////////////////////////////////////
// Formata um número em formato JavaScript (sem separador de milhar e com "." como 
// separador decimal.
//////////////////////////////////////////////////////////////////////////////////////////
function formatarNumeroJS(ad_numero) {
var ls_numero;

	ls_numero = "";
	
	if (ad_numero != "") {
		ls_numero = ad_numero.toString();
		while (ls_numero.indexOf(".")>0) {
			ls_numero = ls_numero.replace(".", "");
		}
		ls_numero = ls_numero.replace(",", ".");
	}
	if (ls_numero == "") {
		return(ls_numero);
	} else {
		return(parseFloat(ls_numero));
	}
}	
////////////////////////////////////////////////////////////////////////
function obrigatorio(campo, nome) {
var lb_OK = true;

	switch(campo.tagName.toUpperCase()) {
		case "INPUT":
			if (campo.value=="") {
				window.alert("Por favor, preencha o campo " + nome);
				campo.focus();
				lb_OK = false;
			}
			break;
		case "SELECT":
			if (campo.selectedIndex<=0) {
				window.alert("Por favor, selecione o campo " + nome);
				campo.focus();
				lb_OK = false;
			}
			break;
	}
	
	return(lb_OK);
}	

//////////////////////////////////////////////////////////////////////////////////////////
// Para SELECTs, onde a primeira linha é válida
//////////////////////////////////////////////////////////////////////////////////////////
function obrigatorio2(campo, nome) {
var lb_OK = true;
var ls_string = campo.value.replace(" ","");

	switch(campo.tagName.toUpperCase()) {
		case "SELECT":
			if (campo.selectedIndex<0) {
				window.alert("Por favor, selecione o campo " + nome);
				campo.focus();
				lb_OK = false;
			}
			break;
		default:
			window.alert("A função obrigatorio2 só pode ser usada para SELECT.");
			lb_OK = false;
			break;
	}
	
	return(lb_OK);
}
////////////////////////////////////////////////////////////////////////
function fncValidar(objeto,nome,tipo){
	if (objeto.value.length > 0){
		tipo = tipo.toUpperCase();
		switch (tipo){
			case "CNPJ":
				if (fncCNPJ(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.\nPor favor, utilize somente números.");
					objeto.select();
					return false;
				}
				break;
			case "CPF":
				if (fncCPF(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.\nPor favor, utilize somente números.");
					objeto.select();
					return false;
				}
				break;
			case "DATA":
				if (fncData(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.\nPor favor, utilize o formato 'DD/MM/AA' ou 'DD/MM/AAAA'.");
					objeto.select();
					return false;
				}
				break;
			case "EMAIL":
				if (fncEmail(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.");
					objeto.select();
					return false;
				}
				break;
			case "MOEDA":
				if (fncMoeda(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.");
					objeto.select();
					return false;
				}
				break;
			case "NUMERO":
				if (fncNumero(objeto.value)){
					return true;
				}
				else{
					window.alert("Campo " + nome + ": preenchimento inválido.\nPor favor, utilize somente números.");
					objeto.select();
					return false;
				}
				break;
			default:
				return true;
				break;
		}
  }  
}//end fncNulo
////////////////////////////////////////////////////////////////////////
//função responsável pela validação da Moeda
////////////////////////////////////////////////////////////////////////
function fncMoeda(moeda){
var i = 0;
var prtMoeda1 = 0;

	prtMoeda1 = moeda.split(",");
	//window.alert(prtMoeda1.length);
	if (prtMoeda1.length == 2) {
		if (prtMoeda1[1].length > 0){
			if (!(fncNumero(prtMoeda1[1]))){
				return false;
			}
		}
		else{
			return false;
		}
	}
	else{ 
		if (prtMoeda1.length > 2) {
				return false;
		}
	}
	
	var prtMoeda2 = 0;
	prtMoeda2 = prtMoeda1[0].split(".");
	//window.alert(prtMoeda2.length);
	if ((prtMoeda1.length == 1) && (prtMoeda2.length == 2) && (prtMoeda2[0].length == 0)){
		
	}
	else{
		if ((prtMoeda2.length > 1) && ((prtMoeda2[0].length < 1) || (prtMoeda2[0].length > 3))){
			return false;
		}
	}
	//window.alert(fncNumero(prtMoeda2[0]));
	if (!(fncNumero(prtMoeda2[0]))){
		return false;
	}
	
	for (i=1;i<prtMoeda2.length;i++){
		//window.alert(prtMoeda2.length);
		if (prtMoeda2[i].length == 3){
			if (!(fncNumero(prtMoeda2[i]))){
				return false;
			}
		}
		else{
			if ((prtMoeda1.length == 1) && (prtMoeda2.length == 2)){
				if (prtMoeda2[i].length > 0){
					if (!(fncNumero(prtMoeda2[i]))){
						return false;
					} 
				}
				else{
					return false;
				}
			}
			else{
				return false;
			}
		}
	}

return true;
}//end fncMoeda

//função responsável pela validação do Número
function fncNumero(numero){   
var i = 0;

  for (i=0;i<numero.length;i++){
		if (!((numero.charAt(i) >= "0") && (numero.charAt(i) <= "9"))){
			return false;
		}
  }
  return true;
}//end fncNumero  

////////////////////////////////////////////////////////////////////////
/////////função responsável pela máscara da Data
////////////////////////////////////////////////////////////////////////
function fncMskData(objeto){ 
var data = ""; 
var tecla = window.event.keyCode;
var seta = "37,38,39,40";if (seta.indexOf(tecla) == -1){
	for (i=0;i<objeto.value.length;i++){
		if (fncNumero(objeto.value.substring(i,i+1))){
			data = data + objeto.value.substring(i,i+1)
				if (data.length == 2){
				   data = data + '/'; 
				}
				if  (data.length == 5){ 
				   data = data + '/';
				}
		}
	}		objeto.value = data;
	}
}
////////////////////////////////////////////////////////////////////////
/////////função responsável pela validação da Data
////////////////////////////////////////////////////////////////////////
function fncData(data) { 
	var prtData = 0;	
	prtData = data.split("/");
	if (prtData.length != 3){	return false;}
	var dia = prtData[0]; 
	var mes = prtData[1];
	var ano = prtData[2];
//verifica se só foi digitado caracter númerico - dia
	if ((dia.length == 1) || (dia.length == 2)){
		if (!(fncNumero(dia))){
			return false;
		}
	}
	else{
		return false;
	}
//verifica se só foi digitado caracter númerico - mes
	if ((mes.length == 1) || (mes.length == 2)){
		if (!(fncNumero(mes))){
			return false;
		}
	}
	else{
		return false;
	}
//verifica se só foi digitado caracter númerico - ano
	if ((ano.length == 2) || (ano.length == 4)){
		if (!(fncNumero(ano))){
			return false;
		}
	}
	else{
		return false;
	}
// verifica o dia valido para cada mes 
	if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
		return false;
  } 
// verifica se o mes e valido 
	if (mes < 01 || mes > 12 ) { 
		return false;
	} 
// verifica se e ano bissexto 
	if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
		return false;
	}
	return true;
}
////////////////////////////////////////////////////////////////////////
////////////função responsável pela validação do CPF
////////////////////////////////////////////////////////////////////////
function fncCPF (cpf) {
if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false;

soma = 0;
for (i=0; i < 9; i ++)
	soma += parseInt(cpf.charAt(i)) * (10 - i);
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11) resto = 0;
	if (resto != parseInt(cpf.charAt(9))) return false;

soma = 0;
for (i = 0; i < 10; i ++)
	soma += parseInt(cpf.charAt(i)) * (11 - i);
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11) resto = 0;
	if (resto != parseInt(cpf.charAt(10))) return false;

return true;
}
////////////////////////////////////////////////////////////////////////
///////////função responsável pela validação do CNPJ
////////////////////////////////////////////////////////////////////////
function fncCNPJ (cnpj) {
if (cnpj.length != 14 || cnpj == "00000000000" || cnpj == "11111111111" || cnpj == "22222222222" || cnpj == "33333333333" || cnpj == "44444444444" || cnpj == "55555555555" || cnpj == "66666666666" || cnpj == "77777777777" || cnpj == "88888888888" || cnpj == "99999999999") return false;

soma = 0;
	soma = parseInt(cnpj.charAt(0)) * 5 + parseInt(cnpj.charAt(1)) * 4 + parseInt(cnpj.charAt(2)) * 3 + parseInt(cnpj.charAt(3)) * 2 + parseInt(cnpj.charAt(4)) * 9 + parseInt(cnpj.charAt(5)) * 8 + parseInt(cnpj.charAt(6)) * 7 + parseInt(cnpj.charAt(7)) * 6 + parseInt(cnpj.charAt(8)) * 5 + parseInt(cnpj.charAt(9)) * 4 + parseInt(cnpj.charAt(10)) * 3 + parseInt(cnpj.charAt(11)) * 2;
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11) resto = 0;
	if (resto != parseInt(cnpj.charAt(12))) return false;

soma = 0;
	soma = parseInt(cnpj.charAt(0)) * 6 + parseInt(cnpj.charAt(1)) * 5 + parseInt(cnpj.charAt(2)) * 4 + parseInt(cnpj.charAt(3)) * 3 + parseInt(cnpj.charAt(4)) * 2 + parseInt(cnpj.charAt(5)) * 9 + parseInt(cnpj.charAt(6)) * 8 + parseInt(cnpj.charAt(7)) * 7 + parseInt(cnpj.charAt(8)) * 6 + parseInt(cnpj.charAt(9)) * 5 + parseInt(cnpj.charAt(10)) * 4 + parseInt(cnpj.charAt(11)) * 3 + parseInt(cnpj.charAt(12)) * 2;
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11) resto = 0;
	if (resto != parseInt(cnpj.charAt(13))) return false;

return true;
}
///////////////////////////////////////////////////////////////////////////////////////
//função responsável pela validação do E-mail
///////////////////////////////////////////////////////////////////////////////////////
function fncEmail(email) {
	if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)){
		return true
	}
return (false)
}//end fncEmail

///////////////////////////////////////////////////////////////////////////////////////
function popup(as_url, as_janela, as_propriedades) {
	window.open(as_url, as_janela, as_propriedades);
	window.event.returnValue = false;
}

///////////////////////////////////////////////////////////////////////////////////////
function selectAdd(ao_select, as_value, as_text) {
	var lo_option = document.createElement("OPTION");
	lo_option.value = as_value;
	lo_option.text = as_text;
	ao_select.options.add(lo_option);
	ao_select.selectedIndex = ao_select.length -1;
}

///////////////////////////////////////////////////////////////////////////////////////
function selectClear(ao_select) {
var i;
	for (i=ao_select.options.length-1; i>=0; i=i-1) {
		ao_select.options.remove(i);
	}
}

///////////////////////////////////////////////////////////////////////////////////////
function selectExists(ao_select, as_value, as_separador, as_colunas) {
var i;
var j;
var lb_achou;
var la_coluna = new Array();
var li_qtdeColunas;
var la_valueProcurado = new Array();
var la_value = new Array();

	la_valueProcurado = as_value.split(gs_separador_JS);
	la_coluna = as_colunas.split("|");
	li_qtdeColuna = la_coluna.length-1;

	i=0;
	lb_achou=false;
	while ((i<=ao_select.options.length-1) && (!lb_achou)) {
		la_value = ao_select.options[i].value.split(gs_separador_JS)
		lb_achou=true;
		for (j=0; j<=li_qtdeColuna; j++) {
			if (la_value[la_coluna[j]]!=la_valueProcurado[la_coluna[j]]) {
				lb_achou=false;
			}
		}
		i++;
	}
	if (lb_achou) {

		window.alert("O item informado já existe na lista.");
		ao_select.focus();
	}
	return(lb_achou);
}

///////////////////////////////////////////////////////////////////////////////////////
// para selects onde a primeira linha seja obrigatória
///////////////////////////////////////////////////////////////////////////////////////
function selectRemove(ao_select, as_nome) {

	if (obrigatorio(ao_select, as_nome)) {
		ao_select.options.remove(ao_select.selectedIndex);
	}
}

///////////////////////////////////////////////////////////////////////////////////////
// para selects onde a primeira linha NÃO seja obrigatória
///////////////////////////////////////////////////////////////////////////////////////
function selectRemove2(ao_select, as_nome) {

	if (obrigatorio2(ao_select, as_nome)) {
		ao_select.options.remove(ao_select.selectedIndex);
	}
}
///////////////////////////////////////////////////////////////////////////////////////
// o mes inicia-se por 0 -> janeiro
///////////////////////////////////////////////////////////////////////////////////////
function dias_no_mes (year, month) {
  return 32 - new Date(year, month, 32).getDate();
}
///////////////////////////////////////////////////////////////////////////////////////
// verifica se é somente número
///////////////////////////////////////////////////////////////////////////////////////
function CheckInteiro(intNumero) {
  var checkOK = "0123456789";
  var checkStr = intNumero;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
	return(allValid);
}
///////////////////////////////////////////////////////////////////////////////////////
// verifica se é moeda
///////////////////////////////////////////////////////////////////////////////////////
function CheckMoeda(intNumero) {
  var checkOK = "0123456789,.";
  var checkStr = intNumero;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
	return(allValid);
}
///////////////////////////////////////////////////////////////////////////////////////
// verfiica se é digital
///////////////////////////////////////////////////////////////////////////////////////
function CheckDecimal(intNumero) {
  var checkOK = "0123456789,";
  var checkStr = intNumero;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
	return(allValid);
}
///////////////////////////////////////////////////////////////////////////////////////
// verifica cep
///////////////////////////////////////////////////////////////////////////////////////
function CheckNumCep(intNumero) {
  var checkOK = "0123456789-";
  var checkStr = intNumero;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
	return(allValid);
}
///////////////////////////////////////////////////////////////////////////////////////
// verifica espaço em branco
///////////////////////////////////////////////////////////////////////////////////////
function trim(sString)
{
   sTrimmedString = "";
   if (sString != "")
   {

      var iStart = 0;
      var iEnd = sString.length - 1;
      var sWhitespace = " \t\f\n\r\v";
      
      while (sWhitespace.indexOf(sString.charAt(iStart)) != -1)
      {
         iStart++;
         if (iStart > iEnd)
            break;
      }
      
      // If the string not just whitespace
      if (iStart <= iEnd)
      {
         while (sWhitespace.indexOf(sString.charAt(iEnd)) != -1)
            iEnd--;
         sTrimmedString = sString.substring(iStart,++iEnd);
      }
   }
   return sTrimmedString;
}

///////////////////////////////////////////////////////////////////////////////////////
// valida tipos de dados
///////////////////////////////////////////////////////////////////////////////////////
function validarCaracter(event, txValidos) {
	var key, txTemp;
	if(txValidos == "STRING"){
		txTemp = "'"
		key = String.fromCharCode(event.keyCode);
		return (txTemp.indexOf(key) == -1);
	} else {
		key = String.fromCharCode(event.keyCode);
		return (txValidos.indexOf(key) != -1);
	}
}
//-->