/**
 * (25/02/2005) - Pedro Ivo P. Gomes
 * Usado no evento <code>onkeydown</code> de elementos de entrada, para fazer a mascara
 * da data ('__/__/____') enquanto ela é digitada.
 * @param text o elemento de entrada da data
 * @param keyPress o <code>event</code> do elemento
 * @return retorna sempre <code>false</code> para o elemento ignorar os digitos
 */
function mascaraData(text, keyPress) {
	var tecla = keyPress.keyCode;
	var vr = text.value.replace("/","").replace("/","");
	var tam;

	if (tecla == 9) return true;

	if ((text.readOnly==true) || (text.disabled==true)) return false;

	while (vr.substr(0, 1) == "_" && vr.length > 0)
		vr = vr.substr(1, vr.length-1);

	tam = vr.length;
	if (tam >= 8 && tecla != 8)
		return false;

	if (tecla == 8)
		vr = vr.substr(0, tam-1);
	else if (tecla >= 48 && tecla <= 57)
		vr = vr + (tecla - 48);
	else if (tecla >= 96 && tecla <= 105)
		vr = vr + (tecla - 96);
	else
		return false;

	while (vr.length < 8)
		vr = "_" + vr;

	vr = vr.substr(0, 2) + "/" +
	     vr.substr(2, 2) + "/" +
	     vr.substr(4, 4);

	text.value = vr;
	return false;
}

/**
 * (25/02/2005) - Pedro Ivo P. Gomes
 * Usado no evento <code>onblur</code> de elementos de entrada, para verificar a
 * validade da data.
 * @param text o elemento de entrada da data
 * @return
 * true - data e valida
 * false - data nao e valida
 */
function verificaData(text) {
	var data = text.value;
	var dia = parseInt(parseFloat(data.substr(0, 2)));
	var mes = parseInt(parseFloat(data.substr(3, 2)));
	var ano = parseInt(parseFloat(data.substr(6, 4)));
	var res = true;

	if (text.value == "__/__/____" || text.value == "")
		return false;

	if (isNaN(dia) || isNaN(mes) || isNaN(ano))
		res = false;
	else if ((dia < 1)||(dia < 1 || dia > 30) && ( mes == 4 || mes == 6 || mes == 9 || mes == 11 ) || dia > 31)
		res = false;
	else if (mes < 1 || mes > 12)
		res = false;
	else if (mes == 2 && ( dia < 1 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4))))
		res = false;

	if (!res) {
		alert("Data inválida! Corrija ou deixe o campo em branco.");
		text.focus();
		text.select();
		return false;
	}
	return true;
}



function dataAtualFormatada() {
    var data = new Date();
    var dia = data.getDate();
    var mes = data.getMonth()+1;
    var ano = data.getYear();

    return dia + "/" + ((mes<9)?"0":"") + mes + "/" + ano;
}



function redimensionarImagem(imagemId, wMax, hMax) {
	var doc = window.document;

	var imagem = doc.getElementById(imagemId);
	if (imagem == null) return;

	var h = imagem.height;
	var w = imagem.width;
	//alert("h" + h + "\n" + "w" + w + "\n" + "p" + p);

	// se nao restringe o tamanho maximo eh o proprio tamanho
	if (hMax <= 0) hMax = h;
	if (wMax <= 0) wMax = w;

	var ph, pw = 1;

	if (h > hMax) ph = hMax / h;
	if (w > wMax) pw = wMax / w;
	var p = (ph <= pw)? ph : pw;

	h = h * p;
	w = w * p;
	//alert("h" + h + "\n" + "w" + w + "\n" + "p" + p);

	imagem.height = h;
	imagem.width = w;
	imagem.style.visibility = 'visible';
}


// --- rotinas de validacao (String)

function validarNomeCompleto(s) {
	if (s.length == 0) return false;
	if (s.indexOf(" ") < 0) return false;
	var regExp = new RegExp("^[a-záéíóú. '-]+$", "i");
	return regExp.test(s);
}

function validarCPF(s) {
	var i;
 	s = limpa_string(s);
 	var c = s.substr(0,9);
 	var dv = s.substr(9,2);
 	var d1 = 0;
        //verificando se 3333333333333
        var res="f";
        for(i = 0;i<s.length;i++){
           if(s.charAt(i)==s.charAt(0)){
              res="s";
           }
           else{
            res="f";
            break;
           }
        }
        if(res=="s"){
          return false;
        }

        //fim verificacao
 	for (i = 0; i < 9; i++)
 	{
  		d1 += c.charAt(i)*(10-i);
 	}
        if (d1 == 0) return false;
 	d1 = 11 - (d1 % 11);
 	if (d1 > 9) d1 = 0;
 	if (dv.charAt(0) != d1)
 	{
  		return false;
 	}

 	d1 *= 2;
 	for (i = 0; i < 9; i++)
 	{
  		d1 += c.charAt(i)*(11-i);
 	}
 	d1 = 11 - (d1 % 11);
 	if (d1 > 9) d1 = 0;
 	if (dv.charAt(1) != d1)
 	{
  		return false;
 	}
        return true;
}

function validarCNPJ(s) {
 	var i;
	s = limpa_string(s);
 	var c = s.substr(0,12);
 	var dv = s.substr(12,2);
 	var d1 = 0;
 	for (i = 0; i < 12; i++){
	     	d1 += c.charAt(11-i)*(2+(i % 8));
 	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
 	if (d1 > 9) d1 = 0;
 	if (dv.charAt(0) != d1){
  		return false;
 	}

 	d1 *= 2;
 	for (i = 0; i < 12; i++)
 	{
  		d1 += c.charAt(11-i)*(2+((i+1) % 8));
 	}
 	d1 = 11 - (d1 % 11);
 	if (d1 > 9) d1 = 0;
 	if (dv.charAt(1) != d1)
 	{
  		return false;
 	}
 	return true;
}
function limpa_string(S){
 	// Deixa so' os digitos no numero
 	var Digitos = "0123456789";
 	var temp = "";
 	var digito = "";

 	for (var i=0; i<S.length; i++) {
  		digito = S.charAt(i);
  		if (Digitos.indexOf(digito)>=0) {
   			temp=temp+digito }
        } //for

 	return temp
}
// fim da funcao
function validarEmail(s) {
	if (s.indexOf("..") > -1) return false;
	var regExp = new RegExp("^[a-z]+[a-z0-9._-]*@[a-z]+[a-z0-9._-]*(\.[a-z]{2,3})+$", "i");
	return regExp.test(s);
}

  function validarSenha(s) {
    senha = senha.toString();
    var contNum = 0;
    var contNNum = 0;
    for (var i=0; i<senha.length; i++) {
      var car = senha.substr(i,1);
        if ((car >= "0") && (car <= "9"))
          contNum++;
        else
          contNNum++;
      }
      if ((contNum+contNNum >= 6) &&
          (contNum >= 2) &&
          (contNNum >= 2))
        return true;
      return false;
  }

function validarConfirmacaoSenha(s1, s2) {
	if (s1.length == 0 || s2.length == 0) return false;
	if (s1 != s2) return false;
	return true;
}

function validarTelefone(s) {
	var regExp = new RegExp("^\\([0-9]{2}\\) [0-9]{3,4}\\-[0-9]{4}$", "i");
	return regExp.test(s);
}

function validarTexto(s) {
	return true;
}

var MSG_ERRO_CPF_CNPJ = "Por favor, informe corretamente seu CPF ou CNPJ";
var MSG_ERRO_EMAIL = "Por favor, informe corretamente seu endereço de correio eletrônico";
var MSG_ERRO_NOME_COMPLETO = "Por favor, informe corretamente seu nome completo";
var MSG_ERRO_SENHA = "Por favor, preencha corretamente o campo 'senha'.\n Este deve conter no mínimo 6 caracteres sendo \n pelo menos dois caracteres numéricos e dois não numéricos";
var MSG_ERRO_SENHA_CONFIRMACAO = "Por favor, preencha corretamente o campo 'confirmação de senha' exatamente igual ao campo 'senha'";
var MSG_ERRO_TELEFONE = "Por favor, informe corretamente seu telefone\n"+
						"Formato esperado: (xx) XXX-XXXX";
