﻿ documentall = document.all;  
 /* 
 * função para formatação de valores monetários retirada de 
 */  
 function formatamoney(c) {  
     var t = this; if(c == undefined) c = 2;        
     var p, d = (t=t.split("."))[1].substr(0, c);  
     for(p = (t=t[0]).length; (p-=3) >= 1;) {  
            t = t.substr(0,p) + "." + t.substr(p);  
     }  
     return t+","+d+Array(c+1-d.length).join(0);  
 }  
   
 String.prototype.formatCurrency=formatamoney  
   
 function demaskvalue(valor, currency){  
 /* 
 * Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as  
 * casas decimais 
 */  
 var val2 = '';  
 var strCheck = '0123456789';  
 var len = valor.length;  
    if (len== 0){  
       return 0.00;  
    }  
   
    if (currency ==true){     
       /* Elimina os zeros à esquerda  
       * a variável  <i> passa a ser a localização do primeiro caractere após os zeros e  
       * val2 contém os caracteres (descontando os zeros à esquerda) 
       */  
         
       for(var i = 0; i < len; i++)  
          if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;  
         
       for(; i < len; i++){  
          if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);  
       }  
   
       if(val2.length==0) return "0.00";  
       if (val2.length==1)return "0.0" + val2;  
       if (val2.length==2)return "0." + val2;  
         
       var parte1 = val2.substring(0,val2.length-2);  
       var parte2 = val2.substring(val2.length-2);  
       var returnvalue = parte1 + "." + parte2;  
       return returnvalue;  
         
    }  
    else{  
          /* currency é false: retornamos os valores COM os zeros à esquerda,  
          * sem considerar os últimos 2 algarismos como casas decimais  
          */  
          val3 ="";  
          for(var k=0; k < len; k++){  
             if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);  
          }           
    return val3;  
    }  
 }
   
 function reais(obj,event){  
   
 var whichCode = (window.Event) ? event.which : event.keyCode;  
 /* 
 Executa a formatação após o backspace nos navegadores !document.all 
 */  
 if (whichCode == 8 && !documentall) {     
 /* 
 Previne a ação padrão nos navegadores 
 */  
    if (event.preventDefault){ //standart browsers  
          event.preventDefault();  
       }else{ // internet explorer  
          event.returnValue = false;  
    }  
    var valor = obj.value;  
    var x = valor.substring(0,valor.length-1);  
    obj.value= demaskvalue(x,true).formatCurrency();  
    return false;  
 }  
 /* 
 Executa o Formata Reais e faz o format currency novamente após o backspace 
 */  
 FormataReais(obj,'.',',',event);  
 } // end reais  
   
   
 function backspace(obj,event){  
 /* 
 Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera. 
 O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown. 
 Como o opera suporta o infame document.all, tratamos dele na mesma parte do código. 
 */  
   
 var whichCode = (window.Event) ? event.which : event.keyCode;  
 if (whichCode == 8 && documentall) {     
    var valor = obj.value;  
    var x = valor.substring(0,valor.length-1);  
    var y = demaskvalue(x,true).formatCurrency();  
   
    obj.value =""; //necessário para o opera  
    obj.value += y;  
      
    if (event.preventDefault){ //standart browsers  
          event.preventDefault();  
       }else{ // internet explorer  
          event.returnValue = false;  
    }  
    return false;  
   
    }// end if        
 }// end backspace  
   
 function FormataReais(fld, milSep, decSep, e) {  
 var sep = 0;  
 var key = '';  
 var i = j = 0;  
 var len = len2 = 0;  
 var strCheck = '0123456789';  
 var aux = aux2 = '';  
 var whichCode = (window.Event) ? e.which : e.keyCode;  
   
 //if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown  
 if (whichCode == 0 ) return true;  
 if (whichCode == 9 ) return true; //tecla tab  
 if (whichCode == 13) return true; //tecla enter  
 if (whichCode == 16) return true; //shift internet explorer  
 if (whichCode == 17) return true; //control no internet explorer  
 if (whichCode == 27 ) return true; //tecla esc  
 if (whichCode == 34 ) return true; //tecla end  
 if (whichCode == 35 ) return true;//tecla end  
 if (whichCode == 36 ) return true; //tecla home  
   
 /* 
 O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script 
 */  
   
 if (e.preventDefault){ //standart browsers  
       e.preventDefault()  
    }else{ // internet explorer  
       e.returnValue = false  
 }  
   
 var key = String.fromCharCode(whichCode);  // Valor para o código da Chave  
 if (strCheck.indexOf(key) == -1) return false;  // Chave inválida  
   
 /* 
 Concatenamos ao value o keycode de key, se esse for um número 
 */  
 fld.value += key;  
   
 var len = fld.value.length;  
 var bodeaux = demaskvalue(fld.value,true).formatCurrency();  
 fld.value=bodeaux;  
   
 /* 
 Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror. 
 */  
   if (fld.createTextRange) {  
     var range = fld.createTextRange();  
     range.collapse(false);  
     range.select();  
   }  
   else if (fld.setSelectionRange) {  
     fld.focus();  
     var length = fld.value.length;  
     fld.setSelectionRange(length, length);  
   }  
   return false;  
   
 }  
 
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MostraRegulamento()
{
    var divRegulamento = document.getElementById("divRegulamento");
    if(divRegulamento!=null)
    {
        if (divRegulamento.style.display=="none")
        {
            divRegulamento.style.display="block";
        }else{
            divRegulamento.style.display="none";
        }
    }
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode; 
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
  }
  return true;
}


var r={
  'special':/[\W]/g,
  'quotes':/['\''&'\"']/g,
  'notnumbers':/[^\d]/g
}

function valid(o,w){
  o.value = o.value.replace(r[w],'');
}

//MÁSCARA DE VALORES

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;
    }
  }
  
  function ControlaTextoExtra(select)
  {
    var lblTexto = document.getElementById("lblTexto");
    var txtComoSoubeTxto  = document.getElementById("txtComoSoubeTxto");
    if (select.value==4)
    {
        lblTexto.style.display="";
        txtComoSoubeTxto.style.display="";
    }
    else{
        lblTexto.style.display="none";
        txtComoSoubeTxto.style.display="none";
    }
  }