// JavaScript Document

//..............................................................................................
//Função que só permite a digitação de números
function v_NR(tecla){
  if(typeof(tecla) == 'undefined')
  var tecla = window.event;
  var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);

// permite números, 8=backspace, 46=del e 9=tab

  if ( (codigo >= 48 && codigo <= 57) || (codigo >= 96 && codigo <= 105) || codigo == 8 || codigo == 46 || codigo == 9 ){
    return true; }
  else{
    return false;
  } 
}
//Exemplo de uso no campo form
//onKeyPress="return v_NR(event)" onKeyDown="return v_NR(event)"
//.............................................................................................

//.............................................................................................
//Função que valida moedas com casas decimais
function Moeda(thisone){    
  var wd
  wd="w"
  var tempnum=thisone.value
  for (i=0;i<tempnum.length;i++){
    if (tempnum.charAt(i)==","){
      wd="d"
      break
    }
  }
  if (wd=="w")
   thisone.value=tempnum+",00"
  else{
    if (tempnum.charAt(tempnum.length-2)==","){
      thisone.value=tempnum+"0"
    }
    else if (tempnum.charAt(tempnum.length-1)==","){
      thisone.value=tempnum+"00"
    }
  }
}
//Exemplos no campo de formulário
//onBlur="Moeda(this)"
//...............................................................................................

//...............................................................................................
//Função que formata os campos de quantidade de caracteres fixos
function FormataCampo(Campo,teclapres,mascara){ 
  //pegando o tamanho do texto da caixa de texto com delay de -1 no event 
  //ou seja o caractere que foi digitado não será contado. 
  strtext = Campo.value 
  tamtext = strtext.length 
  //pegando o tamanho da mascara 
  tammask = mascara.length 
  //criando um array para guardar cada caractere da máscara 
  arrmask = new Array(tammask) 
  //jogando os caracteres para o vetor 
  for (var i = 0 ; i < tammask; i++){ 
    arrmask[i] = mascara.slice(i,i+1) 
  } 
  //alert (teclapres.keyCode) 
  //começando o trabalho sujo 
  if (((((arrmask[tamtext] == "#") || (arrmask[tamtext] == "9"))) || (((arrmask[tamtext+1] != "#") || (arrmask[tamtext+1] != "9"))))){ 
    if ((teclapres.keyCode >= 37 && teclapres.keyCode <= 40)||(teclapres.keyCode >= 49 && teclapres.keyCode <= 56)||(teclapres.keyCode >= 96 && teclapres.keyCode <= 105)||(teclapres.keyCode == 8)||(teclapres.keyCode == 9) ||(teclapres.keyCode == 46) || (teclapres.keyCode == 13)){ 
      Organiza_Casa(Campo,arrmask[tamtext],teclapres.keyCode,strtext) 
    } 
    else{ 
      Detona_Event(Campo,strtext) 
    } 
  } 
  else{//Aqui funcionaria a mascara para números mas eu ainda não implementei 
    if ((arrmask[tamtext] == "A")) { 
      charupper = event.valueOf() 
      //charupper = charupper.toUpperCase() 
      Detona_Event(Campo,strtext) 
      masktext = strtext + charupper 
      Campo.value = masktext 
    } 
  } 
} 

function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){ 
  //Aqui define os caracteres que podem ser digitados no campo
  if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos == ":") || (arrpos == " ") || (arrpos == "(") || (arrpos == ")") || (arrpos == "-")) && !(teclapres_key == 8)){ 
    separador = arrpos 
    masktext = strtext + separador 
    Campo.value = masktext 
  } 
} 

function Detona_Event(Campo,strtext){ 
  event.returnValue = false 
  if (strtext != "") { 
    Campo.value = strtext 
  } 
}
//Exemplo de uso no campo do formulário
//onkeyDown="FormataCampo(this,event,'(##)####-####')"
//...............................................................................................
/*=====================================================*/
/*  Funcao para mascara e validacao de data    */
/*=====================================================*/
function validDate(obj){
	date=obj.value
	if (/[^\d/]|(\/\/)/g.test(date))  {obj.value=obj.value.replace(/[^\d/]/g,'');obj.value=obj.value.replace(/\/{2}/g,'/'); return }
	if (/^\d{2}$/.test(date)){obj.value=obj.value+'/'; return }
	if (/^\d{2}\/\d{2}$/.test(date)){obj.value=obj.value+'/'; return }
	if (!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(date)) return
	
	 test1=(/^\d{1,2}\/?\d{1,2}\/\d{4}$/.test(date));
	 date=date.split('/');
	 d=new Date(date[2],date[1]-1,date[0]);
	 test2=(1*date[0]==d.getDate() && 1*date[1]==(d.getMonth()+1) && 1*date[2]==d.getFullYear());
	 if (test1 && test2){ return true};
	 alert("Data inválida !!!");
	 obj.select();
	 obj.focus();
	 return false
}

function CheckEmail(obj) {
	email = obj;
	AtPos = email.indexOf("@");
	StopPos = email.lastIndexOf(".");
	volta = true;
	
	if (email == "") {
		volta = false;
	}
	
	if (AtPos == -1 || StopPos == -1) {
		volta = false;
	}
	
	if (StopPos < AtPos) {
		volta = false;
	}
	
	if (StopPos - AtPos == 1) {
		volta = false;
	} 
	if (!volta) {
		alert("Endereço de Email inválido" + "\n" + obj);
	}
	return volta
}

function ValidarCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
    var dig1= new Number;
    var dig2= new Number;
    
    exp = /\.|\-|\//g
    cnpj = cnpj.toString().replace( exp, "" ); 
    var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
        
    for(i = 0; i<valida.length; i++){
        dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);    
        dig2 += cnpj.charAt(i)*valida[i];    
    }
    dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
    dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
    if(((dig1*10)+dig2) != digito)   { 
        alert('CNPJ Inválido!');
		ObjCnpj.focus();
		}
}

/*=======================================================*/
/*
	Data:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '99/99/9999', event);">
	RG:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '99.999.999-9', event);">
	Telefone:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '(99)9999-9999', event);">
	Código:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '99-999', event);">
*/
function txtBoxFormat(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
/*=======================================================*/

if(document.all) { // Internet Explorer
    nTecla = evtKeyPress.keyCode;
} else if(document.layers) { // Nestcape
    nTecla = evtKeyPress.which;
} else {
    nTecla = evtKeyPress.which;
    if (nTecla == 8) {
        return true;
    }
}

    sValue = objeto.value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; }
      else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }

      i++;
    }

    objeto.value = sCod;

    if (nTecla != 8) { // backspace
      if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); } 
      else { // qualquer caracter...
        return true;
      } 
    }
    else {
      return true;
    }
  } 

