var INFRA_IE = infraVersaoIE();
var INFRA_FF = infraVersaoFirefox();
var INFRA_XHTML = infraVersaoXHTML();

var infraJanelaModal = null;
var infraIntervaloModal = null;

function infraAdicionarEvento(obj, evento, funcao){
    if( obj.attachEvent ){
      obj.attachEvent("on"+evento, funcao);
    }
    else if( obj.addEventListener ){
         obj.addEventListener(evento, funcao, false);
    }
}

function infraRemoverEvento(obj, evento, funcao) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+evento, funcao );
  } else {
    obj.removeEventListener( evento, funcao, false ); 
  }
} 

function infraProcessarResize() {
  infraResize();
	infraAdicionarEvento(window,'resize',infraResize);
}

function infraResize(){
  
  /*
  var teste = false;
  if (document.getElementById('hdnInfraPrefixoCookie')!=null && document.getElementById('hdnInfraPrefixoCookie').value=='TRF4_SEI-TST_mga'){
    teste = true;
  }
  */
  
  var divAreaTela = document.getElementById('divInfraAreaTela');
  var divAreaE = document.getElementById('divInfraAreaTelaE');
  var divAreaD = document.getElementById('divInfraAreaTelaD');
  
  
  if (divAreaTela != null){
  
    var hTotalTela = infraClientHeight();

    if (hTotalTela > 115){
      hTotalTela -= 115;
    }

    if (divAreaE != null && divAreaD!=null){

      var el = divAreaTela;
    	var y = 0;
    	while (el.offsetParent && el.tagName.toUpperCase() != 'BODY'){
    		y += el.offsetTop;
    		el = el.offsetParent;
    	}
    	y += el.offsetTop;
      
    	var hTotalE = (y + divAreaE.offsetHeight);
    	var hTotalD = (y + divAreaD.offsetHeight);
    	
    	if (hTotalTela < hTotalE){
    	  hTotalTela = hTotalE;
    	}
    	
    	if (hTotalTela < hTotalD){
    	  hTotalTela = hTotalD;
    	}
    	
    	//div global menor que o tamanho disponivel ou ocupando mais espaço do que devia
    	if (divAreaTela.offsetHeight < hTotalTela || (hTotalE < hTotalTela && hTotalD < hTotalTela)){
      	divAreaTela.style.height = hTotalTela + 'px';
    	}
    	
    }else if (divAreaTela.offsetHeight < hTotalTela){
      divAreaTela.style.height = hTotalTela + 'px';
    }
  }
}

function infraDesabilitarCamposDiv(div){
  var el;
  var els;
  var e;
  
  e = 0;
  els = div.getElementsByTagName('input');
  while (el = els.item(e++)){
    if (el.type != 'hidden'){
      if (INFRA_IE > 0){
        el.disabled=true;
      }else{
        if (el.type == 'checkbox'){
          el.disabled=true;
        }else{        
          el.readOnly = true;
        }
      }
    }
  }
  
  e = 0;
  els = div.getElementsByTagName('select');
  while (el = els.item(e++)){
    if (!el.multiple){
      el.disabled=true;
    }
  }
  
  e = 0;
  els = div.getElementsByTagName('textarea');
  while (el = els.item(e++)){
    //No IE a barra de rolagem fica bloqueada se usando disabled
    if (INFRA_IE > 0){
      el.readOnly = true;
    }else{
      el.disabled = true;
    }
  }

  e = 0;
  els = div.getElementsByTagName('img');
  while (el = els.item(e++)){
    el.style.visibility='hidden';
  }
}

function infraHabilitarCamposDiv(div){
 var el;
 var els;
 var e;
 
 e = 0;
 els = div.getElementsByTagName('input');
 while (el = els.item(e++)){
   if (INFRA_IE > 0){
     el.disabled = false;
   }else{
     el.readOnly = false;
   }
 }
 
 e = 0;
 els = div.getElementsByTagName('select');
 while (el = els.item(e++)){
   if (!el.multiple){
     el.disabled=false;
   }
 }
 
 e = 0;
 els = div.getElementsByTagName('textarea');
 while (el = els.item(e++)){
   //No IE a barra de rolagem fica bloqueada se usando disabled
   if (INFRA_IE > 0){
     el.readOnly = false;
   }else{
     el.disabled=false;
   }
 }

 e = 0;
 els = div.getElementsByTagName('img');
 while (el = els.item(e++)){
   el.style.visibility='visible';
 }
}

function infraDesabilitarCamposAreaDados(){
  var arr = null;

  arr = document.getElementsByTagName('div');
  
  for(var i=0;i<arr.length;i++){
    if (arr[i].className == 'infraAreaDados'){
      infraDesabilitarCamposDiv(arr[i]);
    }
  }
}

function infraDesabilitarAutoCompleteTxt(objInputText) {
  if (objInputText.type == 'text') {
    objInputText.setAttribute("autocomplete","off");
  }
}

function infraDesabilitarAutoCompleteFrm(objFrm) {
  var arrInputs = objFrm.getElementsByTagName('input');
  for(i=0;i < arrInputs.length;i++) {
    infraDesabilitarAutoCompleteTxt(arrInputs[i]);
  }
}

function infraSelecionarCampo(obj){
  selStart = 0;
  selEnd = obj.value.length;
  
 if (obj.setSelectionRange) { 
  obj.focus(); 
  obj.setSelectionRange(selStart, selEnd); 
 } else if (obj.createTextRange) { 
  var range = obj.createTextRange(); 
  range.collapse(true); 
  range.moveEnd('character', selEnd); 
  range.moveStart('character', selStart); 
  range.select(); 
 } 
 obj.focus();
}


function infraNroItensSelecionados() {
  var infraNroItens = document.getElementById('hdnInfraNroItens');
  var n = 0;
  var i;
  for (i=0; i<infraNroItens.value; i++) {
    box = document.getElementById('chkInfraItem'+i);
    if (box!=null && box.checked && !box.disabled) {
      n++;
    }
  }
  return n;
}

function infraDetalhesExcecao(){
  var infraBotaoDetalhes = document.getElementById('btnInfraDetalhesExcecao');
  if(infraBotaoDetalhes.value=='Exibir Detalhes'){
    document.getElementById('divInfraDetalhesExcecao').style.visibility='visible';
    infraBotaoDetalhes.value='Ocultar Detalhes';
  }
  else {
    document.getElementById('divInfraDetalhesExcecao').style.visibility='hidden';
    infraBotaoDetalhes.value='Exibir Detalhes';
  }
}

function infraRTrim(String){
  if (String!=null && String.length>0){
    while(String.charAt((String.length -1))==' '){
      String = String.substring(0,String.length-1);
    }
  }
  return String;
}

function infraLTrim(String){
  if (String!=null && String.length>0){
    while(String.charAt(0)==' '){
      String = String.replace(String.charAt(0),'');
    }
  }
  return String;
}

function infraTrim(String){
  String = infraLTrim(String);
  return infraRTrim(String);
}

function infraLPad(str, tam, car){
	var dif = tam - str.length;
	var ch = String(car).charAt(0);
	for (; dif>0; dif--) str = ch.concat(str);
	return str;
}

function infraRPad(str, tam, car){
	var dif = tam - str.length;
	var ch = String(car).charAt(0);
	for (; dif>0; dif--) str = str.concat(ch);
	return str;
}

function infraIsNumber(str) {
  var i;
  var c;
  for(i=0;i<str.length;i++){
    c = str.charAt(i);
    if (c != '0' && c != '1' && c != '2' && c != '3' &&	c != '4' && c != '5' && c != '6' && c != '7' && c != '8' && c != '9') {
      return false;
    }
  }
  return true;
}

function infraGetElementById(element){
  
  var e = element;
  
  if (typeof(e)=='string'){
    e = document.getElementById(e);
  }
  
  if (e==null || typeof(e)!='object'){
    alert('Elemento \''+element+'\' não encontrado na página.');
    return false;
  }
  
  return e;
}
/*
function infraTrimValue(element){
  element = infraGetElementById(element);
  return infraTrim(element.value);
}
*/

function infraSelectLimpar(select){
  var select = infraGetElementById(select);
  select.length = 0;
}

function infraSelectSelecionado(select){
  
  var select = infraGetElementById(select);
  
  if (select.length==0 || select.value=='null'){
    return false;
  }
  return true;
}

function infraSelectSelecionarItem(select,valor){
  
  var select = infraGetElementById(select);
  for (var i=0; i<select.length; i++) {
    if (select.options[i].value == valor) {
      select.options[i].selected = true;
      return;
    }
  }
}

function infraSelectToTable(idSelect) {
  
  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  
  var obj = new Object(window.opener.document.getElementById(idSelect));
  var tamanho = obj.length;
  
  var objInfraNroItens = document.getElementById('hdnInfraNroItens');
  if (objInfraNroItens!=null){
    var infraNroItens = objInfraNroItens.value;
    for (var j=0; j < tamanho; j++) {
      opt = obj.options[j];
      for (var i=0; i < infraNroItens; i++) {
        box = document.getElementById('chkInfraItem'+i);
        if ( box!=null && box.value == opt.value  ) {
          
          box.checked=true;
          
          infraFormatarTrMarcada(box.parentNode.parentNode);
          
          if (box.type=="checkbox"){        
            box.disabled=true;
          }
          
          //novo
          opt.text = box.title;
          
          var acao = document.getElementById('lnkInfraT-'+box.value);
          if (acao!=null){
            acao.style.visibility = 'hidden';
          }
        }
      }
    }
    infraSelecionarItens();
  }
}

function infraHiddenTextToTable(idHidden,idText) {

  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  var objHidden = new Object(window.opener.document.getElementById(idHidden));
  var objText = new Object(window.opener.document.getElementById(idText));

  //alert(objHidden.value);
  var objInfraNroItens = document.getElementById('hdnInfraNroItens');
  if (objInfraNroItens!=null){
    var infraNroItens = objInfraNroItens.value;
    for (var i=0; i < infraNroItens; i++) {
      box = document.getElementById('chkInfraItem'+i);
      if ( box!=null && box.value == objHidden.value ) {
        box.checked=true;
        box.parentNode.parentNode.className='inrfraTrMarcada';
        
        //novo
        objText.value = box.title;
        
        var acao = document.getElementById('lnkInfraT-'+box.value);
        if (acao!=null){
          acao.style.visibility = 'hidden';
        }
        
        infraSelecionarItens();
        return;
      }
    }
  }
}

function infraTableToSelect(idSelect,item){
  
  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  var obj = new Object(window.opener.document.getElementById(idSelect));

  //obj.options.length=0;
  var n = 0;
  var opt = null;
  var i,j;

  for(i=0; i<obj.length; i++){
    obj.options[i].selected=false;
  }
  
  //Se é transporte individual
  if (item!=undefined){
    
    for(i=0; i <obj.length; i++){
      opt = obj.options[i];
      if (item.value==opt.value){
        break;
      }
    }
    if (i==obj.length){
      opt = window.opener.infraSelectAdicionarOption(obj,item.title,item.value);
      opt.selected = true;
      n++;
    }
  }else{
    
    var infraNroItens = document.getElementById('hdnInfraNroItens').value;
    for (var i=0; i < infraNroItens; i++) {
      box = document.getElementById('chkInfraItem'+i);
      
      if (box!=null && box.checked && !box.disabled) {
        //Somente se o item não esta no select adiciona
        for(var j=0; j <obj.length; j++){
          opt = obj.options[j];
          if (box.value==opt.value){
            break;
          }
        }
        if (j==obj.length){
          opt = window.opener.infraSelectAdicionarOption(obj,box.title,box.value);
          opt.selected = true;
          if (box.type=="checkbox"){
            box.disabled=true;
          }
          n++;
        }
      }
    }
  }
  return n;
}

function infraTableToHiddenText(idHidden,idText,item){
  
  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  var objHidden = new Object(window.opener.document.getElementById(idHidden));
  var objText = new Object(window.opener.document.getElementById(idText));

  objHidden.value = '';
  objText.value = '';  

  //Se é transporte individual
  if (item!=undefined){
    objHidden.value = item.value;
    objText.value = objText.value + item.title;
    return true;
  }else{    
    var infraNroItens = document.getElementById('hdnInfraNroItens').value;
    for (var i=0; i < infraNroItens; i++) {
      var box = document.getElementById('chkInfraItem'+i);
      if ( box!=null && box.checked ) {
        //Retorna o primeiro que encontrar
        objHidden.value = box.value;
        objText.value = box.title;
        return true;
      }
    }
  }
  return false;
}

function infraTableToTextArea(idTextArea,item){
  
  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  var objTextArea = new Object(window.opener.document.getElementById(idTextArea));
  
  //Se é transporte individual
  if (item!=undefined){
    //objTextArea.value = objTextArea.value + item.title;
    infraInserirCursor(objTextArea,item.title);
    return true;
  }else{    
    var infraNroItens = document.getElementById('hdnInfraNroItens').value;
    for (var i=0; i < infraNroItens; i++) {
      var box = document.getElementById('chkInfraItem'+i);
      if ( box!=null && box.checked ) {
        //objTextArea.value = objTextArea.value + box.title;
        infraInserirCursor(objTextArea,box.title);
        return true;
      }
    }
  }
  return false;
}

function infraRemoverFormatacaoXML(str){
  var temp = str;
  temp = temp.infraReplaceAll('&quot;','"');
  temp = temp.infraReplaceAll('&lt;','<');
  temp = temp.infraReplaceAll('&gt;','>');
  temp = temp.infraReplaceAll('&amp;','&');
  
  return temp;
}

function infraInserirCursor(objTextArea,texto){

  texto = infraRemoverFormatacaoXML(texto);
  
  if(document.all){ 
    if (objTextArea.createTextRange && objTextArea.caretPos) {
      objTextArea.caretPos.text = ' ' + texto + ' ';
    }else{
      if (objTextArea.value != ''){
        objTextArea.value = ' ' + objTextArea.value;
      }
      objTextArea.value = texto + objTextArea.value;
    }
  }else{
    if(objTextArea.setSelectionRange){
      var rangeStart = objTextArea.selectionStart;
      var rangeEnd = objTextArea.selectionEnd;
      var tempStr1 = objTextArea.value.substring(0,rangeStart);
      var tempStr2 = objTextArea.value.substring(rangeEnd);
      
      if (tempStr1!=''){
        tempStr1 = tempStr1 + ' ';
      }
      
      if (tempStr2!=''){
        tempStr2 = ' ' + tempStr2;
      }
      
      objTextArea.value = tempStr1 + texto + tempStr2;
      
      var pos = tempStr1.length + texto.length;
      
      objTextArea.setSelectionRange(pos, pos); 
    }else{
      alert("Este navegador não suporta esta operação.");
    }
  }
  objTextArea.focus();
}

function infraPosicionarCursor(txa) {
  if (txa.createTextRange) {
    txa.caretPos = document.selection.createRange().duplicate();
  }
}


function infraSelectRemoverItensSelecionados(idSelect,idHidden){
  var obj = new Object(document.getElementById(idSelect));
  var i;
  
  if (obj.length==0){
    alert('Não existem itens para esta ação.');
    return;
  }
  
  for (i=0; i<obj.length; i++) {
    if (obj.options[i].selected){
      break;
    }
  }
  
  if (i==obj.length){
    alert('Nenhum item selecionado.');
    return;
  }
  
  var flagRemoveuItem;
  do{
    flagRemoveuItem=false;

    var i = 0;
    while(i<obj.length && !flagRemoveuItem){
      if (obj.options[i].selected){
        obj.options[i]=null;
        flagRemoveuItem = true;
      }
      i++;
    }

    /*
    for (i=0; i<obj.length; i++) {
      if (obj.options[i].selected){
        obj.options[i]=null;
        flagRemoveuItem = true;
        break;
      }
    }
    */
  }while(flagRemoveuItem);
  
  if (idHidden!=undefined){
    var objHidden = new Object(document.getElementById(idHidden));
    infraSelectConcatenarItens(obj,objHidden); 
  }
}

function infraSelectAdicionarOption(obj,texto,valor){
  var opt = new Option(texto, valor);
  var indice = 0;
  if (obj.options!=null){
    indice = obj.options.length;
  }
  obj.options[indice] = opt;
  return opt;
}

/*
function infraBrowserIE(){
  var agt=navigator.userAgent.toLowerCase();
  if (agt.indexOf('msie')!=-1){
    return true;
  }
  return false;
}
*/

function infraVersaoIE() {
  
  var ua = navigator.userAgent.toLowerCase();
  var MSIEOffset = ua.indexOf("msie ");
  
  if (MSIEOffset == -1) {
      return 0;
  } else {
      return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
  }
}

function infraVersaoFirefox() {
  var ua = navigator.userAgent.toLowerCase();
  var FFOffset = ua.indexOf("firefox/");
  if (FFOffset == -1) {
    return 0;
  } else {
    return parseFloat(ua.substring(FFOffset + 8, ua.indexOf(".", FFOffset)));
  }
}

function infraVersaoXHTML() {
  
  if (document.xmlVersion==undefined){
    return 0;
  }
  
  if (document.xmlVersion==null){
    return 0;
  }
  
  return document.xmlVersion
}

function infraSelectInicializarHidden(select, hidden){
  objSelect = infraGetElementById(select);
  objHidden = infraGetElementById(hidden);
  infraSelectConcatenarItens(objSelect,objHidden);
}


function infraSelectConcatenarItens(objSelect, objCampo){
  objCampo.value = '';
  for (var i=0; i<objSelect.length; i++) {
    if ( objCampo.value != '' ){
      objCampo.value = objCampo.value + ',';
    }
    objCampo.value = objCampo.value + objSelect.options[i].value;
  }
}

function infraSelectConcatenarItensComTexto(objSelect, objCampo){
  objCampo.value = '';
  for (var i=0; i<objSelect.length; i++) {
    if ( objCampo.value != '' ){
      objCampo.value = objCampo.value + ',';
    }
    objCampo.value = objCampo.value + objSelect.options[i].value + '#' + objSelect.options[i].text;
  }
}

function infraAcaoOrdenar(strCampoOrd, strTipoOrd){
  var objInfraCampoOrd = document.getElementById('hdnInfraCampoOrd');

  var ret = true;
  
  if(typeof(objInfraCampoOrd.form.onsubmit)=='function'){
    ret = objInfraCampoOrd.form.onsubmit();
  }
  
  if (ret){
    document.getElementById('hdnInfraCampoOrd').value=strCampoOrd;
    document.getElementById('hdnInfraTipoOrd').value=strTipoOrd;
    
    //Reseta paginação, se existir
    if (document.getElementById('hdnInfraPaginaAtual')!=null){
      document.getElementById('hdnInfraPaginaAtual').value = 0;
    }
    
    document.getElementById('hdnInfraCampoOrd').form.submit();
  }
}

function infraAcaoPaginar(tipo,pag){
  var objInfraPaginaAtual = document.getElementById('hdnInfraPaginaAtual');
  
  var ret = true;
  
  if(typeof(objInfraPaginaAtual.form.onsubmit)=='function'){
    ret = objInfraPaginaAtual.form.onsubmit();
  }
  
  if (ret){
    var paginaAtual = objInfraPaginaAtual.value;
    var idText = document.getElementById('hdnInfraSelecaoIdText');
    
    if (tipo=='-'){
      paginaAtual--;
    }else if (tipo=='+'){
      paginaAtual++;    
    }else if (tipo == '='){
      paginaAtual = pag;  
    }
    
    if (idText==null || idText.value==''){
      if (document.getElementById('hdnInfraPaginaSelecao')!=null){
        var nroSelecionados = infraNroItensSelecionados();
        
        if (nroSelecionados>0){
          var msg = '';
          if (nroSelecionados==1){
            msg = 'Existe um item selecionado que não foi transportado.';
          }else{
            msg = 'Existem '+nroSelecionados+' itens selecionados que não foram transportados.';
          }
          msg += '\nSe você continuar a seleção será perdida.\n\nDeseja continuar?'
          if (!confirm(msg)){
            return;
          } 
        }
      }
    }
  
    objInfraPaginaAtual.value = paginaAtual;         
    objInfraPaginaAtual.form.submit();
    
  }else{
    //volta o combo de página para o item anterior
    var objSelInfraPaginacao = document.getElementById('selInfraPaginacao');
    if (objSelInfraPaginacao!=null){
      infraSelectSelecionarItem(objSelInfraPaginacao,objInfraPaginaAtual.value);
    }
  }
}

function infraValidarEmail(email){
  reEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,4})$/;
  return reEmail.test(email);
}

function infraValidarCaracter(carac,tipo){
  var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÁÃÀÄÂÉÈËÊÍÏÓÕÔÚÜÇ';
  var LetrasL = 'abcdefghijklmnopqrstuvwxyzáãàäâéèëêíïóõôúüç';
  var Letras  = LetrasU+LetrasL;
  var Numeros = '0123456789';
  
  if(tipo=="#"){
    if(Numeros.indexOf(carac)==-1){
      return false;
    }
  }else if(tipo=="A"){
    if(LetrasU.indexOf(carac)==-1){
      return false;
    }
  }else if(tipo=="a"){
    if(LetrasL.indexOf(carac)==-1){
      return false;
    }
  }else if(tipo=="L"){
    if(Letras.indexOf(carac)==-1){
      return false;
    }
  }
  return true;
}

function infraMascaraExcecao(evt){
  
    var ntecla = infraGetCodigoTecla(evt);
    
    //alert(ntecla);
    
    if (ntecla == 37 || //seta esquerda
        ntecla == 39 || //seta direita
        ntecla == 36 || //home
        ntecla == 35 || //end
        ntecla == 33 || //page up
        ntecla == 34 || //page down
        ntecla == 45 || //insert
        ntecla == 46 || //delete
        ntecla == 8  || //backspace
        ntecla == 9  || //tab
        ntecla == 27 || //esc
        ntecla == 0  || //controle
        ntecla == 13 || //enter
        evt.ctrlKey){
          
      return true; 
    }
  
    return false;
}

function infraMascaraTexto(objeto,evt, qtd){
  
  if (infraMascaraExcecao(evt)){
    return true;
  }
  
  if (qtd != undefined){
    if (!infraLimitarTexto(objeto,evt,qtd)){
      return false;
    }
  }
  
  var ntecla = infraGetCodigoTecla(evt);
  
  //Não aceita aspas
  if (ntecla==34){
    return false;
  }
  return true;
}


function infraMascaraData(objeto, evt) {
  return infraMascara(objeto, evt, '##/##/####');
}

function infraMascaraDataHora(objeto, evt) {
  return infraMascara(objeto, evt, '##/##/#### ##:##:##');
}

function infraMascaraHora(objeto, evt) {
  return infraMascara(objeto, evt, '##:##');
}

function infraMascaraCEP(objeto, evt) {
  return infraMascara(objeto, evt, '##.###-###');
}

function infraMascaraTelefone(objeto, evt) {
  return infraMascara(objeto, evt, '(##)####-####');
}

function infraMascaraDinheiro(objeto, evt, numDec, numTotal) {
  return infraMascaraDecimais(objeto, '.', ',', evt, numDec, numTotal);
}

function infraMascaraCPF(objeto, evt) {
  return infraMascara(objeto, evt, '###.###.###-##');
}

function infraMascaraPlacaCarro(objeto, evt) {
  return infraMascara(objeto, evt, 'AAA-####');
}

function infraMascaraCnpj(objeto,evt){
  return infraMascara(objeto, evt, '##.###.###/####-##');
}

function infraMascaraCpf(objeto,evt){
  return infraMascara(objeto, evt, '###.###.###-##');
}


function infraMascaraNumero(objeto, evt, qtd, exc){
  
  if (infraMascaraExcecao(evt)){
    return true;
  }
  
  if (qtd != undefined && qtd != null){
    if (!infraLimitarTexto(objeto,evt,qtd)){
      return false;
    }
  }
  
  if (exc==undefined){
    exc = '';
  }
  
  var key = infraGetCodigoTecla(evt);
  
  if ((key < 48 || key > 57) && exc.indexOf(String.fromCharCode(key))==-1){
    return false
  }
}

function infraMascara(objeto, evt, mask) {
  var Separadores = ' "|/?!@$%¨&*(),.;<>:~^_-=+[{]}';

  if (infraMascaraExcecao(evt)){
    return true;
  }
  
  
  var ntecla = infraGetCodigoTecla(evt);

  var tempObj = objeto.value;
  var tempObjSize = tempObj.length;
  var objRetorno = "";
  var i;
  
  ntecla = String.fromCharCode(ntecla);
  var selected_text = "";
  if(document.selection){selected_text = document.selection.createRange().text;}
  else{selected_text = objeto.value.substring(objeto.selectionStart, objeto.selectionEnd);}

  var tempObjSize = tempObj.length;

  if(selected_text.length>0){
    tempObjSize = mask.length - selected_text.length;
  }

  if(tempObjSize<mask.length){
    for(i=0;i<mask.length;i++){
      if(i<tempObjSize){
        if(Separadores.indexOf(mask.substr(i,1))!=-1){
          objRetorno = objRetorno+mask.charAt(i);
          objRetorno = objRetorno+tempObj.charAt(i);
        }else{
          objRetorno = objRetorno+tempObj.charAt(i);
        }
      }
    }

    if(Separadores.indexOf(mask.substr(tempObjSize,1))!=-1){
      objeto.value = tempObj+mask.substr(tempObjSize,1);
      tempObj = objeto.value;
      tempObjSize = tempObj.length;
    }

    if(infraValidarCaracter(ntecla,mask.substr(tempObjSize,1))){
      return true;
    }else{
      return false;
    }
  }else{
    return false;
  }

  return true;
}

function infraMascaraNumeroSeparador(objeto, evt, sep){
  
  if (infraMascaraExcecao(evt)){
    return true;
  }
    
  var key = infraGetCodigoTecla(evt);
  
  if ((key < 48 || key > 57) && (objeto.value.indexOf(sep)!=-1 || String.fromCharCode(key)!=sep)){
    return false
  }
  
  return true;
}


function infraMascaraDecimais(fld, milSep, decSep, e, numDec, numTotal) {
  var sep = 0;
  var key = '';
  var i = j = 0;
  var len = len2 = 0;
  var strCheck = '0123456789';
  var aux = aux2 = '';
  
  if (infraMascaraExcecao(e)){
    return true;
  }
  
  if (numDec == undefined) numDec = 2;
  
  var charCode = String.fromCharCode(infraGetCodigoTecla(e));
  
  if (strCheck.indexOf(charCode) == -1) return false; // Chave inválida

  len = fld.value.length;
  
  for(i = 0; i < len; i++)
    if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) 
      break;
      
  aux = '';
  for(; i < len; i++)
    if (strCheck.indexOf(fld.value.charAt(i))!=-1) 
      aux += fld.value.charAt(i);
      
  aux += charCode;
  
  len = aux.length;
  
  if (len == 0) fld.value = '';

  if (numTotal != undefined && (len > numTotal)) {
    return false;
  }
  
  if (len <= numDec){
    
    fld.value = '0'+ decSep + infraLPad(aux, numDec, '0');
  
  }else{
    aux2 = '';
    for (j = 0, i = len - (numDec + 1); i >= 0; i--) {
      if (j == 3) {
        aux2 += milSep;
        j = 0;
      }
      aux2 += aux.charAt(i);
      j++;
    }
    fld.value = '';
    len2 = aux2.length;
    for (i = len2 - 1; i >= 0; i--)
      fld.value += aux2.charAt(i);
      
    fld.value += decSep + aux.substr(len - numDec, len);
  }
  return false;
}

function infraValidaDataHora(objeto){
  return infraValidarDataHora(objeto);
}

function infraValidarDataHora(objeto){
  var temp = objeto.value.split(" ");

  var data = document.createElement("input");
  data.type='text';
  data.value=temp[0]

  var hora = document.createElement("input");
  hora.type='text';
  hora.value = temp[1];

  if(infraValidarData(data)&&infraValidarHora(hora)){
    return true;
  }else{
    return false;
  }
}

function infraValidaHora(objeto){
  return infraValidarHora(objeto);
}

function infraValidarHora(objeto){
  var temp = objeto.value.split(":");

  var hora = temp[0];
  var min = temp[1];
  var sec = temp[2];

  if(hora>23||hora<0){
    alert("Hora "+hora+" inválida, tempo correto é de 0 a 23");
    return false;
  }

  if(min>59||min<0){
    alert("Minutos "+min+" inválidos,o tempo correto é de 0 a 59");
    return false;
  }

  if(sec>59||sec<0){
    alert("Segundos "+sec+" inválidos,o tempo correto é de 0 a 59");
    return false;
  }
  return true;
}

function infraValidaData(objeto){
  return infraValidarData(objeto);
}

function infraValidarData(objeto){

  if (objeto==null){
    return true;
  }

  var strdata = objeto.value;
  if(strdata != ''){
    //Verifica a quantidade de digitos informada esta correta.
    if (strdata.length != 10){
      alert('Formato de data inválido.');
      objeto.focus();
      return false
    }
    //Verifica máscara da data
    if ('/' != strdata.substr(2,1) || '/' != strdata.substr(5,1)){
      alert('Formato de data inválido.');
      objeto.focus();
      return false
    }

    var dia = strdata.substr(0,2)
    var mes = strdata.substr(3,2);
    var ano = strdata.substr(6,4);

    //Verifica o dia
    if (isNaN(dia) || dia > 31 || dia < 1){
      alert('Formato do dia inválido.');
      objeto.focus();
      return false
    }

    if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
      if (dia == '31'){
        alert('O mês informado não possui 31 dias.');
        objeto.focus();
        return false
      }
    }

    if (mes == '02'){
      var bissexto = 0;
      
			if (ano % 400 == 0){
			  bissexto = 1;
			}else if (ano % 100 == 0){
			  bissexto = 0;
			}else if (ano % 4 == 0){
			  bissexto = 1;
			}else {
			  bissexto = 0;
			}
      
      if (bissexto == 1){
        if (dia > 29){
          alert('O mês informado possui somente 29 dias.');
          objeto.focus();
          return false
        }
      }else{
        if (dia > 28){
          alert('O mês informado possui somente 28 dias.');
          objeto.focus();
          return false
        }
      }
    }

    //Verifica o mês
    if (isNaN(mes) || mes > 12 || mes < 1){
      alert('Formato do mês inválido.');
      objeto.focus();
      return false
    }

    //Verifica o ano
    if (isNaN(ano)){
      alert('Formato do ano inválido.');
      objeto.focus();
      return false
    }

    if (ano<1900 || ano>3000){
      alert('Ano inválido.');
      objeto.focus();
      return false
    }
  }
  return true;
}

function infraCompararDatas(strDataIni, strDataFim){

  if (infraTrim(strDataIni)=='' || infraTrim(strDataFim)==''){
    return null;
  }

  if (strDataIni.length != 10 || strDataFim.length != 10){
    return null;
  }

  var date1 = strDataIni.split('/');
  var date2 = strDataFim.split('/');
  var iniDate = new Date(date1[1]+'/'+date1[0]+'/'+date1[2]);
  var fimDate = new Date(date2[1]+'/'+date2[0]+'/'+date2[2]);

  return Math.round((fimDate-iniDate)/86400000);
}

function infraCompararDataHora(strDataHoraIni, strDataHoraFim){

  strDataHoraIni = infraTrim(strDataHoraIni);
  strDataHoraFim = infraTrim(strDataHoraFim);
  
  if ((strDataHoraIni.length != 10 && strDataHoraIni.length != 19) || (strDataHoraFim.length != 10 && strDataHoraFim.length != 19)){
    return null;
  }

  var dataIni = strDataHoraIni.split('/');
  var dataFim = strDataHoraFim.split('/');
  
  var horaIni = null;
  if (dataIni[2].length == 13){
    horaIni = dataIni[2].substr(5).split(':');
    dataIni[2] = dataIni[2].substr(0,4);
  }else{
    horaIni = Array(0,0,0);
  }
  
  var horaFim = null;
  if (dataFim[2].length == 13){
    var horaFim = dataFim[2].substr(5).split(':');
    dataFim[2] = dataFim[2].substr(0,4);
  }else{
    horaFim = Array(0,0,0);
  }
  
  
  //mês começa em zero
  dataIni[1]--;
  dataFim[1]--;
  
  var iniDate = new Date(dataIni[2],dataIni[1],dataIni[0],horaIni[0],horaIni[1],horaIni[2]);
  var fimDate = new Date(dataFim[2],dataFim[1],dataFim[0],horaFim[0],horaFim[1],horaFim[2]);

  return (fimDate-iniDate)/1000;
}

function infraDataAtual(){
  var d = new Date();
  var dia = (d.getDate()<10)?'0'+d.getDate():d.getDate();
  var mes = ((d.getMonth()+1)<10)?'0'+(d.getMonth()+1):(d.getMonth()+1);
  return  dia+'/'+mes+'/'+d.getFullYear();
}

function infraDataHoraAtual(){
  var d = new Date();
  var dia = (d.getDate()<10)?'0'+d.getDate():d.getDate();
  var mes = ((d.getMonth()+1)<10)?'0'+(d.getMonth()+1):(d.getMonth()+1);
  var hor = (d.getHours()<10)?'0'+d.getHours():d.getHours();
  var min = (d.getMinutes()<10)?'0'+d.getMinutes():d.getMinutes();
  var seg = (d.getSeconds()<10)?'0'+d.getSeconds():d.getSeconds();
  
  return  dia+'/'+mes+'/'+d.getFullYear()+' '+hor+':'+min+':'+seg;
}


function infraGerarArrayItensSelecionados(){
  var vetOptions = Array();
  infraNroItens = document.getElementById('hdnInfraNroItens').value;
  var i;
  var j = 0;
  for (i=0; i < infraNroItens; i++) {
    box = document.getElementById('chkInfraItem'+i);
    if ( box!=null && box.checked ) {
      vetOptions[j++]=new Option(box.title, box.value);
    }
  }
  return vetOptions;
}

function infraSimularModal(){
 try {
    
    var div = document.getElementById('divInfraModalFundo');

    if (infraJanelaModal.closed){
        window.clearInterval(infraIntervaloModal);
        div.style.visibility = 'hidden';
        return;
    }

    if (div==null){
      div = document.createElement('div');
      div.id = 'divInfraModalFundo';
      div.className = 'infraFundoTransparente';
      
      if (INFRA_IE>0 && INFRA_IE<7){
        ifr = document.createElement('iframe');
        ifr.className =  'infraFundoIE';
        /*
        ifr.onclick = function(){
          alert('ifr');
        }
        div.onclick = function(){
          alert('div');
        }
        */
        div.appendChild(ifr);  
      }else{
        div.onclick = function(){
          try{
            infraJanelaModal.focus();
          }catch(exc){ }
        }
      }
      document.body.appendChild(div);  
    }
    
    if (INFRA_IE==0 || INFRA_IE>=7){
      div.style.position = 'fixed';
    }
    div.style.width = (screen.width - 21) + 'px';
    div.style.height = screen.height + 'px';
    div.style.visibility = 'visible';
    
  }
  catch (everything) {  }
}

function infraAbrirJanela(url,nome,largura,altura,opcoes,modal){

  if (opcoes===undefined){
    opcoes="";
  }

  if (modal===undefined){
    modal=true;
  }

  if (largura<100){
    largura = 100;
  }

  if (altura<100){
    altura = 100;
  }

  if (opcoes!=""){
    opcoes = opcoes + ",";
  }
  opcoes = opcoes + "width="+largura;
  opcoes = opcoes + ",height="+altura;
  
  /*
  var janela = null;
  
  if (modal===true){
    if (INFRA_IE > 0){
      janela = window.showModalDialog(url,window,opcoes);
    }else{
      try{
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
        if (opcoes!=""){
          opcoes = opcoes + ",";
        }
        opcoes = opcoes+"modal=yes";
        alert(opcoes);
        janela = window.open(url,nome,opcoes,true);
      }catch (e) {
  			//alert("Script não confiável, não é possível abrir janela modal.");
  			//return null;
  			janela = window.open(url,nome,opcoes);
  		}
    }
  }else{
    janela = window.open(url,nome,opcoes);
  }
  */
  
  janela = window.open(url,nome,opcoes);
  janela.moveTo(((screen.availWidth/2) - (largura/2)),((screen.availHeight/2) - (altura/2)));
  janela.focus();
  
  if (modal==true){
    infraJanelaModal = janela;
    infraIntervaloModal = window.setInterval("infraSimularModal()",100);
  }
  
  return janela;

}


function infraTransportarItem(n){
  var box = document.getElementById('chkInfraItem'+n);
  if (box==null){
    alert('Item não encontrado.');
    return;
  }
  infraTransportarSelecao(box);
}

function infraTransportarSelecao(item){
  
  if (window.dialogArguments) {
    window.opener = window.dialogArguments;
  }
  
  var infraNroItens = document.getElementById('hdnInfraNroItens');
  
  if (infraNroItens==null){
    alert('Não existem itens para executar a ação.');
    return;
  }
  
  if (item==undefined && infraNroItens.value==0){
    alert('Nenhum item novo foi selecionado.');
    return;
  }

  var idObject = document.getElementById('hdnInfraSelecaoIdObject');
  
  if ((idObject!=null && idObject.value!='')){
    
    var obj = eval('window.opener.'+idObject.value);
    
    if (obj.Type == 'infraLupaText'){
      
      var temp = null;
      if (item!=undefined){
        temp = item;
      }else{    
        var infraNroItens = document.getElementById('hdnInfraNroItens').value;
        for (var i=0; i < infraNroItens; i++) {
          var box = document.getElementById('chkInfraItem'+i);
          if ( box!=null && box.checked ) {
            temp = box;
            break;
          }
        }
      }
      
      if (obj.processarSelecao(temp)){
        infraTableToHiddenText(obj.hdn.id,obj.txt.id, item);
        window.close();
        obj.finalizarSelecao();
      }
      
      window.focus();
      
    }else{
      
      var temp = null;
      if (item!=undefined){
        temp = new Array(item);
      }else{
        temp = new Array();
        var j = 0;
        var infraNroItens = document.getElementById('hdnInfraNroItens').value;
        for (var i=0; i < infraNroItens; i++) {
          box = document.getElementById('chkInfraItem'+i);
          if (box!=null && box.checked && !box.disabled) {
            temp[j++] = box;
          }
        }
      }
      
      if (obj.processarSelecao(temp)){
        var n = infraTableToSelect(obj.sel.id, item);
        obj.atualizar();
        
        if (n==0){
          alert('Nenhum item foi transportado.');
        }
  
        if (item!=undefined){
          obj.finalizarSelecao();
          window.close();
        }
      }
    }
  }  
  
  var idSelect = document.getElementById('hdnInfraSelecaoIdSelect');
  
  if (idSelect!=null && idSelect.value!=''){
    
    var n = infraTableToSelect(idSelect.value, item);
    if (idHidden!=null && idHidden.value!=''){
       var objSelect = new Object(window.opener.document.getElementById(idSelect.value));
       var objHidden = new Object(window.opener.document.getElementById(idHidden.value));
       infraSelectConcatenarItens(objSelect,objHidden); 
    }
    
    if (n==0){
      alert('Nenhum item foi transportado.');
    }
    
    if (item!=undefined){
      window.close();
    }
    
    return;
  }  
  
  var idHidden = document.getElementById('hdnInfraSelecaoIdHidden');
  var idText = document.getElementById('hdnInfraSelecaoIdText');
  
  if (idHidden!=null && idHidden.value!='' && idText!=null && idText.value!=''){
    infraTableToHiddenText(idHidden.value,idText.value, item);
    window.close();
    return;
  }
  
  var idTextArea = document.getElementById('hdnInfraSelecaoIdTextArea');

  if (idTextArea!=null && idTextArea.value!=''){
    infraTableToTextArea(idTextArea.value, item);
    window.close();
    return;
  }
}

function infraReceberSelecao(){
  var idObject = document.getElementById('hdnInfraSelecaoIdObject');
  if (idObject!=null && idObject.value!=''){
    var obj = eval('window.opener.'+idObject.value);
    
    if (obj.Type=='infraLupaText'){
      infraHiddenTextToTable(obj.hdn.id,obj.txt.id);
    }else{
      infraSelectToTable(obj.sel.id);
      
    }
    return;
  }
    
  var idSelect = document.getElementById('hdnInfraSelecaoIdSelect');
  
  if (idSelect!=null && idSelect.value!=''){
    infraSelectToTable(idSelect.value);
    return;
  }
    
  var idHidden = document.getElementById('hdnInfraSelecaoIdHidden');
  var idText = document.getElementById('hdnInfraSelecaoIdText');

	if (idHidden!=null && idHidden.value!='' && idText!=null && idText.value!=''){
    infraHiddenTextToTable(idHidden.value,idText.value);
    return;
  }
}

function infraEfeitoImagens(){
  var imagens = document.images;
  for(i=0;i<imagens.length;i++){
    if (imagens[i].className=='infraImgNormal'){
      imagens[i].onmouseover=function(){this.className='infraImgOpaca';};
      imagens[i].onmouseout=function(){this.className='infraImgNormal';};
      //imagens[i].onfocus=function(){this.className='infraImgOpaca'};
    }
  }
}

function infraGetAnchor(){
  var strAnchor = null;
  var url = document.location;
  var arrUrl = url.toString().split('#');
  if(arrUrl.length > 1){
    strAnchor = arrUrl[1];
  }
  return strAnchor;  
}

function infraPosicionarTrAcessada(tr){
  
  if (tr!=null){
    
    var arr = tr.getElementsByTagName('input');
    
    if (arr.length>0){
      if (arr[0].type=='checkbox'){
        if (arr[0].id!=''){
          
          var el = arr[0];
        	var y = 0;
        	while (el.offsetParent && el.tagName.toUpperCase() != 'BODY'){
        		y += el.offsetTop;
        		el = el.offsetParent;
        	}
        	y += el.offsetTop; 
        	
        	var tamanhoTela = infraClientHeight();
        	
        	//se o elemento esta fora da área de tela
        	if ((y+50) > tamanhoTela){
        	  if (INFRA_IE == 0){
        	    window.scrollTo(0,(y - (tamanhoTela/3)));  
        	  }else{
        	    self.setTimeout('window.scrollTo(0,'+(y - (tamanhoTela/3))+');',100);  
        	  }
        	}
        	
        	if (!arr[0].disabled && arr[0].style.display!='none' && arr[0].style.visibility!='hidden'){
          	if (INFRA_IE==0){
          	  document.getElementById(arr[0].id).focus();
          	}else{
          	  self.setTimeout('document.getElementById(\''+arr[0].id+'\').focus();',200);
          	}
        	}
        }
      }
    }
  }
}

function infraFormatarTrAcessada(tr){
  
  var css = tr.className;
  
  if (css.indexOf('infraTrClara')>-1){
    tr.className = 'infraTrClara';
  }else if(css.indexOf('infraTrEscura')>-1){
    tr.className = 'infraTrEscura';
  }
  
  tr.className += ' infraTrAcessada';
  
  if (typeof(tr.onacessada)=='function'){
    tr.onacessada();
  }
}

function infraFormatarTrMarcada(tr){
  var css = tr.className;
  if (css.indexOf('infraTrClara')>-1){
    tr.className = 'infraTrClara';
  }else if(css.indexOf('infraTrEscura')>-1){
    tr.className = 'infraTrEscura';
  }
  
  tr.className += ' infraTrMarcada';  
  
  if (typeof(tr.onmarcada)=='function'){
    tr.onmarcada();
  }
}

function infraFormatarTrDesmarcada(tr){
  if (tr.className == 'infraTrMarcada') {
    tr.className = ''  ;
  }else{
    tr.className = tr.className.split(' ')[0];   
  }
  
  if (typeof(tr.ondesmarcada)=='function'){
    tr.ondesmarcada();
  }
}

function infraEfeitoTabelas(){
  
  var i,j;
  var tabs = document.getElementsByTagName("table");
  
  for(i=0;i<tabs.length;i++){
    
    //Adiciona eventos para modificar a linha com o passar do mouse
    var trs = tabs[i].getElementsByTagName("tr");
      
    for(j=0;j<trs.length;j++){

      if (tabs[i].className.indexOf('infraTable') > -1){
        
        if (trs[j].className=='infraTrClara' || trs[j].className=='infraTrEscura'){
          trs[j].onmouseover=function(){
            if (this.className.indexOf('infraTrSelecionada')==-1){
              this.className = 'infraTrSelecionada '+this.className;
            }
          };
        }
        
        if (trs[j].className=='infraTrClara'){
          trs[j].onmouseout=function(){
            var c = this.className;
            
            this.className = 'infraTrClara';
            
            if (c.indexOf('infraTrAcessada')>-1){
              this.className += ' infraTrAcessada';
            }

            if (c.indexOf('infraTrMarcada')>-1){
              this.className += ' infraTrMarcada';
            }
          };
        }else if (trs[j].className=='infraTrEscura'){
          trs[j].onmouseout=function(){
            var c = this.className;
            
            this.className = 'infraTrEscura';
            
            if (c.indexOf('infraTrAcessada')>-1){
              this.className += ' infraTrAcessada';
            }
            
            if (c.indexOf('infraTrMarcada')>-1){
              this.className += ' infraTrMarcada';
            }
          };
        }
      }
        
      var arr = trs[j].getElementsByTagName('input');
      if (arr.length>0 && arr[0].type=='checkbox' && arr[0].checked){
        if (trs[j].className.indexOf('infraTrMarcada')==-1){
          trs[j].className += ' infraTrMarcada';
        }
      }
    }
  }

  var ancora = infraGetAnchor();

  var selecoes = '';
  if (document.getElementById('hdnInfraSelecoes')!=null){
    selecoes = document.getElementById('hdnInfraSelecoes').value;
  }
  
  if (selecoes != ''){
    var arrSelecoes = selecoes.split(',');
  
    //Se tem ancora, muda classe CSS da linha correspondente
    if (ancora!=null){
      ancora = ancora.replace('ID-','');
      
      var arr = ancora.split(',');
      
      if (arr.length>1){
        
        //Procura em todas as seleções da página
      	for(var i=0;i<arrSelecoes.length;i++){
      	  for (var j=0; j<arr.length;j++){
            var infraAncora = document.getElementById('lnk' + arrSelecoes[i] + 'ID-' + arr[j]);
            if(infraAncora!=null){
              if (infraAncora.parentNode!=null){
                var tr = infraAncora.parentNode.parentNode;
                if (tr!=null){
                  infraFormatarTrAcessada(tr);
                }
              }
            }
          }
      	}
      }
      
      //Procura em todas as seleções da página
    	for(var i=0;i<arrSelecoes.length;i++){
        var infraAncora = document.getElementById('lnk' + arrSelecoes[i] + 'ID-' + arr[0]);
        if(infraAncora!=null){
          if (infraAncora.parentNode!=null){
            var tr = infraAncora.parentNode.parentNode;
            if (tr!=null){
              infraFormatarTrAcessada(tr);
              infraPosicionarTrAcessada(tr);
              break;
            }
          }
        }
    	}
      
    }else{
      
      for(var i=0;i<arrSelecoes.length;i++){
        
    
        var nroItensSelecao = 0;
        if (document.getElementById('hdn'+arrSelecoes[i]+'NroItens')!=null){
          nroItensSelecao = document.getElementById('hdn'+arrSelecoes[i]+'NroItens').value;
        }
        
        if (nroItensSelecao > 0){
          var itemId = '';
          
          if (document.getElementById('hdn'+arrSelecoes[i]+'ItemId')!=null){
            itemId = document.getElementById('hdn'+arrSelecoes[i]+'ItemId').value;
          }

          //se alguma seleção possui valor no campo de ID individual
          if (itemId != ''){
            for (var j=0; j<nroItensSelecao; j++) {
              box = document.getElementById('chk'+arrSelecoes[i]+'Item'+j);
              if (box!=null && !box.disabled && itemId==box.value){
                var tr = box.parentNode.parentNode;
                infraFormatarTrAcessada(tr);
                infraPosicionarTrAcessada(tr);
                break;
              }
            }
          //posiciona no primeiro check marcado que encontrar
          }else {
            //marca todos os itens 
            for (var j=0; j<nroItensSelecao; j++) {
              box = document.getElementById('chk'+arrSelecoes[i]+'Item'+j);
              if (box!=null && box.checked){
                //alert(arrSelecoes[i]);
                infraFormatarTrMarcada(box.parentNode.parentNode);
              }
            }
            for (var j=0; j<nroItensSelecao; j++) {
              box = document.getElementById('chk'+arrSelecoes[i]+'Item'+j);
              if (box!=null && !box.disabled && box.checked){
                infraPosicionarTrAcessada(box.parentNode.parentNode);
                break;
              }
            }
          }
        }
      }
    }
  }
}


//Utilizar no onkeydown
function infraLimitarCaracteres(evt,obj,max) {
  var mensagem = obj;

  if (infraMascaraExcecao(evt)){
    return true;
  }
  
  var iTotal;
  var iAux;
  var qtdeChar = 0;

  qtdeChar = max;

  var key = infraGetCodigoTecla(evt);
  
  iTotal = mensagem.value.length;
  if (key == 8) {
    iAux = iTotal - 1;
  } else {
    iAux = iTotal + 1;
  }

  if(iTotal > (qtdeChar-1) && key != 8 && key != 46) { return false; }
  
  if (iAux >= 0) return true;
}


function infraSelecaoMultipla(nomeSelecao) {
  if (nomeSelecao==undefined){
    nomeSelecao='Infra';
  }
  
  var nomeHdnNroItens = 'hdn'+nomeSelecao+'NroItens';
  var nomeImg = 'img'+nomeSelecao+'Check';
  var nomeChk = 'chk'+nomeSelecao+'Item';
  
  infraNroItens = document.getElementById(nomeHdnNroItens);
  infraCheck = document.getElementById(nomeImg);
  
  if (infraCheck.title == 'Selecionar Tudo') {
    
    for (var i=0; i<infraNroItens.value; i++) {
      box = document.getElementById(nomeChk+i);
      if (box!=null && !box.disabled){
        box.checked = true;
        infraFormatarTrMarcada(box.parentNode.parentNode);
      }
    }
    infraCheck.title = 'Remover Seleção';
    infraCheck.alt = 'Remover Seleção';
  }else{
    infraSelecaoLimpar(nomeSelecao);
    infraCheck.title = 'Selecionar Tudo';
    infraCheck.alt = 'Selecionar Tudo';
  }

  infraSelecionarItens(null,nomeSelecao);
}


function infraSelecaoLimpar(nomeSelecao) {
  if (nomeSelecao==undefined){
    nomeSelecao='Infra';
  }
  
  var nomeHdnNroItens = 'hdn'+nomeSelecao+'NroItens';
  var nomeChk = 'chk'+nomeSelecao+'Item';
  
  infraNroItens = document.getElementById(nomeHdnNroItens);
  for (var i=0; i<infraNroItens.value; i++) {
    box = document.getElementById(nomeChk+i);
    if (box!=null && !box.disabled){
      box.checked = false;
      infraFormatarTrDesmarcada(box.parentNode.parentNode);
      
      //box.parentNode.parentNode.className = box.parentNode.parentNode.className.split(' ')[0];
    }
  }
  infraSelecionarItens(null,nomeSelecao);
}


function infraSelecionarItens(objCheck,nomeSelecao) {
  
  if (objCheck==undefined){
    objCheck=null;
  }
  
  if (nomeSelecao==undefined){
    nomeSelecao='Infra';
  }
  
  nomeHdnSelecionados = 'hdn'+nomeSelecao+'ItensSelecionados';
  nomeHdnNroItens = 'hdn'+nomeSelecao+'NroItens';
  nomeImg = 'img'+nomeSelecao+'Check';
  nomeChk = 'chk'+nomeSelecao+'Item';
  
  infraNroItens = document.getElementById(nomeHdnNroItens);
  infraItensSelecionados = document.getElementById(nomeHdnSelecionados);

  if(objCheck==null){
    temp = '';
    for (var i=0; i<infraNroItens.value; i++) {
      objCheck = document.getElementById(nomeChk+i);
      if(objCheck!=null && objCheck.checked){
        if ( temp != '') {
          temp = temp.concat(',');
        }
        temp = temp.concat(objCheck.value);
      }
    }
  }else{
    
    if (objCheck.type=='radio'){
      //tira marcação das linhas
      for (var i=0; i<infraNroItens.value; i++) {
        box = document.getElementById(nomeChk+i);
        if(box!=null && !box.checked){
          infraFormatarTrDesmarcada(box.parentNode.parentNode);
          //box.parentNode.parentNode.className = box.parentNode.parentNode.className.split(' ')[0];          
        }
      }
    }
    
    var temp = infraItensSelecionados.value;
    
    if(objCheck.checked){
      infraFormatarTrMarcada(objCheck.parentNode.parentNode);
      
      if(temp!=""){
        temp = temp.concat(',');
      }
      temp = temp.concat(objCheck.value);
      
    }else{

      if (objCheck.type='checkbox'){
        infraFormatarTrDesmarcada(objCheck.parentNode.parentNode);
        //objCheck.parentNode.parentNode.className = objCheck.parentNode.parentNode.className.split(' ')[0];          
      }
      
      var sel = temp.split(",");
      temp="";

      for(var i=0;i<sel.length;i++){
        if(sel[i]!=objCheck.value){
          if(temp != ""){
            temp = temp.concat(',');
          }
          temp = temp.concat(sel[i]);
        }
      }
    }
    
  }
  infraItensSelecionados.value=temp.toString();
}



function infraGetCodigoTecla(ev){
  if (window.event){
    return window.event.keyCode;    
  } else if (ev) {
    return (ev.which) ? ev.which : ev.keyCode;  
  }
};

function infraGetFonteEvento(ev)
{
	if(ev){
		return ev.target;
	}

	if(window.event){
		return window.event.srcElement;
	}
};

function infraCancelarEvento(ev)
{
	if(ev)			//Moz
	{
		ev.preventDefault();
		ev.stopPropagation();
	}
	if(window.event)	//IE
	{
		window.event.returnValue = false;
	}
}

function infraFormatarProcessoTrf4(pProcesso){
	var processo = infraRetirarFormatacao(pProcesso);
	
	if (processo.length==0){
	  return '';
	}
	
	if (processo.length==10){
  	reProc  = /(\d{2})(\d{2})(\d{5})(\d{1})$/;
  	processo = processo.replace(reProc, "$1.$2.$3-$4");
	}else{
  	processo = infraLPad(processo, 15, '0');
  	reProc  = /(\d{4})(\d{2})(\d{2})(\d{6})(\d{1})$/;
  	processo = processo.replace(reProc, "$1.$2.$3.$4-$5");
	}
	return processo;
} 

function infraFormatarCpf(pCpf){
	var numero = infraRetirarFormatacao(pCpf);
	numero = infraLPad(numero, 11, '0');
	reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
	numero = numero.replace(reCpf, "$1.$2.$3-$4");
	return numero;
} 


function infraFormatarCnpj(pCnpj){
  var numero = infraRetirarFormatacao(pCnpj);
	numero = infraLPad(numero, 14, '0');
	reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
	numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	return numero;
} 

function infraValidarCpf(pCpf){
  
  var numero = infraRetirarFormatacao(pCpf);
	
  if (numero.length > 11) return false; 

  //if (!infraIsNumber(numero)) return false;
  
	var base = numero.substring(0, numero.length - 2);
	var algUnico;
	var i, j, k, soma, dv;
	var calculado = infraLPad(base, 11, '0');
	calculado = calculado.substring(2, 11);
	var digitos = '';
	for (j = 1; j <= 2; j++){
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)	{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % 11 + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		digitos += dv
	}
	
	// Valida dígitos verificadores
	if (numero != base + digitos) return false;

	// Não serão considerados válidos os seguintes CPF:
	// 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
	// 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
	
	algUnico = true;
	for (i=1; i<11; i++){
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	return (!algUnico);
} 


function infraValidarCnpj(pCnpj){
	
  var numero = infraRetirarFormatacao(pCnpj);
  
  if (numero.length > 14) return false;
   
  //if (!infraIsNumber(numero)) return false;  
  
	var base = numero.substring(0, 8);
	var ordem = numero.substring(8, 12);
	var i, j, k, soma, dv;
	var calculado = infraLPad(base+ordem, 14, '0');
	calculado = calculado.substring(2, 14);
	var digitos = '';

	for (j = 1; j <= 2; j++){
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)	{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % 8 + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		digitos += dv
	}
	
	var algUnico;

	// Valida dígitos verificadores
	if (numero != base + ordem + digitos) return false;

	// Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	// 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	// 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<8; i++){
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	
	if (algUnico) return false;

	// Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	// Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	// e com as três primeiras posições do número BÁSICO com 000 (zeros).
	// Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 
	
	if (ordem == "0000") return false;
	
	return (base == "00000000" || parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} 

function infraImprimirTabela(bolOcultarColunaCheck){
  var numSelecionados = 0;
  var bolRemoverCheck = false;
  var bolRemoverAcoes = false;
  var div = document.getElementById('infraDivImpressao');
  
  
  if (document.getElementById('hdnInfraNroItens')!=null){
    numSelecionados = infraNroItensSelecionados();
    if (numSelecionados==0){
      alert('Nenhum registro selecionado.');
      return;
    }
  }

  div.innerHTML = document.getElementById('divInfraAreaTabela').innerHTML;
  
  if (numSelecionados>0){
    
    var tab = div.getElementsByTagName('table');
    
    if (tab.length>0){
      infraAtualizarCaption(tab[0],numSelecionados);
    }
  }
  
  //Pega checks da div original porque os copiados não contem informação de seleção
  boxs = document.getElementById('divInfraAreaTabela').getElementsByTagName("input");
  
  document.getElementById('divInfraAreaGlobal').style.display='none';
  
  ths = document.getElementById('infraDivImpressao').getElementsByTagName("th");
  
  if (ths.length>0){

    if (bolOcultarColunaCheck==undefined || bolOcultarColunaCheck==true){ 
      bolRemoverCheck = true;
      for(i=0;i<ths.length;i++){
        //Verifica se é o check box da infra e apaga o TH
        img = ths[i].getElementsByTagName("img");
        if (img.length>0){
          if (img[0].id=='imgInfraCheck'){
            ths[i].style.display='none';
          }
        }
      }
    }
    
    
    //Apaga todos os THs de ações
    for (i=0;i<ths.length;i++){
      //Se a ultima coluna é de ações
      if (infraTrim(ths[i].innerHTML)=='Ações'){
        bolRemoverAcoes = true;
        //Apaga coluna header
        ths[i].style.display='none';
      }
    }

    var classNameLinha = 'infraTrEscura';
    
    if (bolRemoverCheck || bolRemoverAcoes){   
      
      //Apaga ultimos tds
      trs = document.getElementById('infraDivImpressao').getElementsByTagName("tr");
      for(i=0;i<trs.length;i++){
        
        if (trs[i].className != 'infraTrOrdenacao'){
          
          //alert(trs[i].parentNode.className + ':' + trs[i].innerHTML);
          
          tds = trs[i].getElementsByTagName("td");
          if (tds.length>0){
            
            //Pega check box da primeira coluna
            box = tds[0].getElementsByTagName("input");
            if (box.length>0){
              //Verifica se o checkbox original esta marcado 
              //ja que os checboxes copiados não levam esta informacao
              for(j=0;j<boxs.length;j++){
                if (boxs[j].id==box[0].id){
                  if (!boxs[j].checked || boxs[j].disabled){
                    //se não esta marcado apaga linha
                    trs[i].style.display='none';
                  }
                  //Se ja achou o id não adianta continuar a varredura
                  break;  
                }
              }
              
              if (trs[i].style.display!='none'){
                trs[i].className = classNameLinha;
                classNameLinha = (classNameLinha=='infraTrClara')?'infraTrEscura':'infraTrClara';
              }
              
              if (bolRemoverCheck){
                //apaga coluna do checkbox
                tds[0].style.display='none';
              }
            //apaga linhas onde a primeira coluna nao tem checkbox (exceto a linha de cabecalho)  
            }else if (i > 0){
              trs[i].style.display='none';
            }
            
            if (bolRemoverAcoes){
              //apaga coluna de ações
              tds[tds.length-1].style.display='none';
            }
          }
        }else{
          var tds = trs[i].getElementsByTagName("td");
          for(k=0;k<tds.length;k++){
            if (tds[k].className=='infraTdSetaOrdenacao'){
              tds[k].style.display = 'none';
            }
          }
        }
      }
    }
  }
  
  window.print();

  //chama restauração via setTimeout para sincronizar a caixa de impressao
  //no Firefox (mostrava a caixa depois que tinha restaurado)
  self.setTimeout('infraRestaurarImpressao()', 1000);
 
}


function infraImprimirDiv(div){
  document.getElementById('infraDivImpressao').innerHTML = document.getElementById(div).innerHTML;
  document.getElementById('divInfraAreaGlobal').style.display='none';
  window.print();
  //chama restauração via setTimeout para sincronizar a caixa de impressao
  //no Firefox (mostrava a caixa depois que tinha restaurado)
  self.setTimeout('infraRestaurarImpressao()', 1000);
}

function infraRestaurarImpressao(){
  document.getElementById('infraDivImpressao').innerHTML = '';
  document.getElementById('divInfraAreaGlobal').style.display='';
}


function infraProcessarMouseDown() {
  infraConfigurarMenu();
  document.onmousedown = infraMouseDown;
}

function infraMouseDown(evt){
  
  origem = infraGetFonteEvento(evt);
  
  if (!evt){
    evt = window.event;
  }

  //se clicou fora da area util não apaga
  //assim pode acessar a barra de rolagem
  if (evt.clientX < infraClientWidth()){
    infraApagarMenu();
    infraApagarMenuAcoes(origem);
    infraApagarBotaoMenu(origem);
  }
    
  if (INFRA_IE > 0 && INFRA_IE < 7){
    infraEsconderMostrarSelect("visible");
  }
  
  return true;
}

function infraVerificarProcessoTrf4(strProcesso){
  
  var ret = infraRetirarFormatacao(strProcesso);
  
  switch (ret.length) {
    //processos com 10 dígitos
    case 10:
      var mult = 1;
      var qtd = 9;
      break;

      //processos com 15 dígitos
    case 15:
      var mult = 7;
      var qtd = 14;
      break;
      
    case 20:
      var n = ret.substr(0,7);
      var dv = ret.substr(7,2);
      var a = ret.substr(9,4);
      var jtr = ret.substr(13,3);
      var o = ret.substr(16,4);
      var calc = (98-((((n%97)+a+jtr)%97)+o+'00')%97);
      if (dv == calc) {
        return true;
      }
      return false;
      break;

    default:
      return false;
  }

  var total = 0;
  for (var i = 0;i < qtd; i++) {
    total += ret.charAt(i) * mult;
    if (ret.length == 15){
      mult = (mult == 2 ? 9 : mult - 1);
    }else{
      mult++;
    }
  }
  var mod11 = total % 11;

  var dv = (mod11 < 10 ? mod11 : 0);

  if (ret.charAt(qtd)==dv){
    return true;
  }

  return false;
}

function infraRetirarFormatacao(str) {
  var str = infraTrim(str);
  
  if (infraIsNumber(str)){
    return str;
  }

  ret = '';
  for(var i=0;i<str.length;i++){
    if (infraIsNumber(str.charAt(i))){
      ret = ret.concat(str.charAt(i));
    }
  }
  return ret;
}


function infraLimitarTexto(obj,ev,qtd) {
  var BACKSPACE = 8;
  var TAB = 9;
	var ESC = 27;
	var KEYUP = 38;
	var KEYDN = 40;
	var KEYLEFT = 37;
	var KEYRIGHT = 39;
	var END = 35;
	var HOME = 36;
	var DEL = 46;
	//var ENTER = 13;

  var key = infraGetCodigoTecla(ev);
  
	switch(key){
	  case BACKSPACE:
		case ESC:
		case KEYUP:
		case KEYDN:
		case KEYLEFT:
		case KEYRIGHT:
		case TAB:
		case END:
		case HOME:
		case DEL:
		//case ENTER:
		  
		  return true;
		  
		default:  
		  //alert(key);
		  
		  if (obj.value.length >= qtd){
		    
  		  if (ev.altKey){
  		    //alert('ALT');
  		    return true;
  		  }
  
  		  if (ev.ctrlKey) {
  		    //alert('CTRL');
  		    return true;
  		  }
  		  
  		  //if (ev.shiftKey) {
  		    //alert('SHIFT');
  		    //return false;
  		  //}
		    
		    alert('Tamanho do campo excedido (máximo '+qtd+' caracteres).');
		    return false;
		  }
		  
		  return true;
	}
}

function infraClientWidth() {
  return window.innerWidth ? window.innerWidth : 
         document.documentElement ? document.documentElement.clientWidth : 
         document.body ? document.body.clientWidth : 
         window.screen.width; 
}
   
function infraClientHeight() {
  return window.innerHeight ? window.innerHeight : 
         document.documentElement ? document.documentElement.clientHeight :  
         document.body ? document.body.clientHeight :  
         window.screen.height; 
}

/*
function infraClientWidth() {
	return infraClientScroll (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}

function infraClientHeight() {
	return infraClientScroll (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
*/

function infraScrollLeft() {
	return infraClientScroll (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function infraScrollTop() {
	return infraClientScroll (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function infraClientScroll(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

//Desabilita / abilita os botões das barras de comandos
function infraDesabilitarComandos(bolDisabled) {
  var i;
  var div;
  var arr;
  
  div = document.getElementById('divInfraBarraComandosSuperior');
  
  if (div!=null){
    arr = div.getElementsByTagName("button");
    for(i=0; i < arr.length; i++) {
     arr[i].disabled = bolDisabled;
    }
  }

  div = document.getElementById('divInfraBarraComandosInferior');
  
  if (div!=null){
    arr = div.getElementsByTagName("button");
    for(i=0; i < arr.length; i++) {
     arr[i].disabled = bolDisabled;
    }
  }
}

function infraAtualizarCaption(tab,num){
  if (tab != null){
    captions = tab.getElementsByTagName('caption');
    if (captions.length>0){
           
      if (num==undefined){
        num = tab.rows.length;
        
        //descartar TH
        //if (INFRA_XHTML == 0){
          num--;
        //}
      }
      
      str = new String(captions[0].innerHTML);

      for(i=0;i<str.length;i++){
        if (str.charAt(i)=='('){
          str = str.substr(0,i+1);
          str = str.concat(num);
          if (num==1){
            str = str.concat(' registro');
          }else{
            str = str.concat(' registros');
          }
          str = str.concat('):');
        }
      }
      captions[0].innerHTML = str;
    }
  }
}

String.prototype.infraReplaceAll = function(de, para){
    var str = this;
    var pos = str.indexOf(de);
    while (pos > -1){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
  return (str);
}

/*
function infraSelectFromInput(idSelect, idInput, numTamNumero) {
 var strCod = document.getElementById(idInput).value;
 if (strCod != '') {
   if (infraIsNumber(strCod)) {
     if (numTamNumero!=undefined){
       if (strCod.length < numTamNumero) {
         strCod = infraLPad(strCod, numTamNumero, '0');
         document.getElementById(idInput).value = strCod;
       }
     }
     infraSelectSelecionarItem(idSelect, 'null');
     infraSelectSelecionarItem(idSelect, strCod);
     if (!infraSelectSelecionado(idSelect)) {
       alert('Opção não encontrada.');
       document.getElementById(idInput).focus();
     }
   } else {
     alert('Número inválido.');
     document.getElementById(idInput).focus();
   }
 }
}
*/

function infraSelectFromText(txtCodigo,selItens,objProxTab){
	var me = this;
	this.prepararText = null;
	this.txt = infraGetElementById(txtCodigo);
	this.sel = infraGetElementById(selItens);
	this.tab = null;
	if (objProxTab!=undefined){
	  this.tab = infraGetElementById(objProxTab);;
	}
	
	
	//Keycodes que devem ser monitorados
	var TAB = 9;
	var ESC = 27;
	var KEYUP = 38;
	var KEYDN = 40;
	var KEYLEFT = 37;
	var KEYRIGHT = 39;
	var ENTER = 13;
	
	//Desabilitar autocomplete IE
	this.txt.setAttribute("autocomplete","off");
	this.txt.onkeypress = function(ev){
	  var key = infraGetCodigoTecla(ev);
	  if (key==ENTER){
  	  return false;
	  }
	}
	
	this.txt.onkeydown = function(ev) 
	{
		var key = infraGetCodigoTecla(ev);

		switch(key)
		{
		case ESC:
		case KEYUP:
		case KEYDN:
		case KEYLEFT:
		case KEYRIGHT:
		//case TAB:
			return;
			
		case ENTER:
		case TAB:
		
		  me.limpar();
		 
			if (me.txt.value.length >= 1){
			   if (me.prepararText!=null){
			     me.txt.value = me.prepararText(me.txt.value);
			   }
         var strCod = me.txt.value;
         infraSelectSelecionarItem(me.sel.id, 'null');
         infraSelectSelecionarItem(me.sel.id, strCod);
         if (!infraSelectSelecionado(me.sel.id)) {
           alert('Opção não encontrada.');
         }else{
           if (me.tab!=null){
             me.tab.focus();
           }else{
             me.sel.focus();
           }
         }
			}else{
			  if (key == TAB) return true;
			}
			
			return false;
			break;
			
		default:
		  //limpa tudo menos texto
  	  me.limpar();
	  }
	};
	
	this.limpar = function(){
	  infraSelectSelecionarItem(me.sel.id, 'null');
	}	

	this.sel.onchange = function(){
	  if (me.sel.value=='null'){
	    me.txt.value = '';
	  }else{
	    me.txt.value = me.sel.value;
	  }
	}
	
  if (window.attachEvent) { //Limpar as referências do IE
    window.attachEvent("onunload", function(){
      me.txt = null;
   	  me.sel = null;
   	  me.tab = null;
  	  me = null;
    });
  }
}

function infraAviso(bolMostrarBotaoCancelar){
  
  if (bolMostrarBotaoCancelar == undefined){
    bolMostrarBotaoCancelar = true;
  }
  
  //Cria fundo
  divFundo = document.createElement('div');
  divFundo.id = 'divInfraAvisoFundo';
  divFundo.className = 'infraFundoTransparente';
  
  var div = document.createElement('div');
  div.id = 'divInfraAviso';
  div.className = 'infraAviso';

  
  var html = '';
  html += '<table border="0" width="100%" cellspacing="4">';
  html += '<tr>';
  html += '<td><img id="imgInfraAviso" src="/infra_css/imagens/aguarde.gif" alt="..." /></td>';
  html += '<td align="left"><span>Processando...</span></td>';
  html += '</tr>';
  if (bolMostrarBotaoCancelar) {
  	html += '<tr><td colspan="2" align="center"><button type="button" value="Cancelar" class="infraButton" onclick="infraAvisoCancelar();" style="font-size:1em">Cancelar</button></td></tr>';
  }
  html += '</table>';
  
  
  div.innerHTML = html;
  
  divFundo.appendChild(div);
  
  if (INFRA_IE > 0 && INFRA_IE < 7){
    ifr = document.createElement('iframe');
    ifr.className =  'infraFundoIE';
    divFundo.appendChild(ifr);  
  }
  document.body.appendChild(divFundo);  
  
	return divFundo;
}

function infraExibirAviso(bolMostrarBotaoCancelar){
	if (bolMostrarBotaoCancelar === undefined) {
		bolMostrarBotaoCancelar = true;
	}
  var divFundo = document.getElementById('divInfraAvisoFundo');

  if (divFundo==null){
    divFundo = infraAviso(bolMostrarBotaoCancelar);
  }else{
    document.getElementById('imgInfraAviso').src='/infra_css/imagens/aguarde.gif';    
  }
  
  if (INFRA_IE==0 || INFRA_IE>=7){
    divFundo.style.position = 'fixed';
  }

  var divAviso = document.getElementById('divInfraAviso');
  divAviso.style.top = Math.floor(infraClientHeight()/3) + 'px';
  divAviso.style.left = Math.floor((infraClientWidth()-200)/2) + 'px';
  divAviso.style.width = '200px';
  
  divFundo.style.width = (screen.width - 21) + 'px';
  divFundo.style.height = screen.height + 'px';
  divFundo.style.visibility = 'visible';
}

function infraOcultarAviso(){
  document.getElementById('divInfraAvisoFundo').style.visibility = 'hidden';
  document.getElementById('imgInfraAviso').src='';
}

function infraAvisoCancelar(){
  if (INFRA_IE != 0){
   document.execCommand("Stop");
  }else{
   window.stop();
  }
  infraOcultarAviso();
}

function infraIsNumero(valor){
  validos = '0123456789.,-';
  for(var i=0;i<valor.length;i++){
    if(validos.indexOf(valor.substr(i,1))<0){
      return false;
    }
  }
  return true;
}

  
function infraValidarOAB(objeto) {
  
  var oab = infraTrim(objeto.value);
  
  if (oab != ''){
    
    oab = oab.toUpperCase();
    
    if (oab.length < 3) {
      alert("A OAB deve ser composta pela sigla da UF (Unidade Federativa) e pelo menos um número.");
      objeto.focus();
      return false;
    }else{
      var estado = oab.substring(0,2);
      var digitos = oab.substring(2,oab.length);
      var regexEstado = /^(AC|AL|AP|AM|BA|CE|DF|ES|GO|MA|MT|MS|MG|PA|PB|PR|PE|PI|RJ|RN|RS|RO|RR|SC|SP|SE|TO|UF)$/;
      var regexDigitos = /^\d+$/;
      if ((!regexEstado.test(estado)) || (!regexDigitos.test(digitos))) {
        alert("A OAB deve ser composta por duas letras e pelo menos um número.");
        objeto.focus();
        return false;
      }else{
        oab = "000000"+digitos;
        objeto.value = estado+oab.substring((oab.length-6),oab.length);
        return true;
      }
    }
  }
  return true;
}

function infraPrepararDbl(dbl){
  if (dbl != null && dbl != ''){
    dbl = new String(dbl).replace(',','.');
  }
  return dbl;
}

function infraPrepararDin(din){
  if (din != null && infraTrim(din) != ''){
    din = new String(din).replace('.','');
    din = new String(din).replace(',','.');
  }
  return din;
}

function infraFormatarDbl(dbl,dec){
  
  if (dbl!=null && infraTrim(dbl)!=''){
    
    dbl = new String(dbl).replace('.',',');
  
    if (dec != undefined){
      
      var i = dbl.indexOf(',');
      
      if (i<0){
        dbl = dbl + ',';
        for(;dec>0;dec--) dbl = dbl + '0';
      }else if ((dbl.length - i- 1) < dec){
        dbl = dbl.substr(0,i) + ',' + infraRPad(dbl.substr(i+1), dec, '0');
      }else {
        dbl = dbl.substr(0, i + 1 + dec);
      }
    }
  }  
  return dbl;
}

function infraFormatarDin(din,dec){
  if (din!=null && din!=''){

    din = infraTrim(din);

    sinal = '';
    if (din.substr(0,1)=='-'){
      sinal = '-';
      din = din.substr(1);
    }
    
    var pos = din.indexOf('.');
    
    var inteiros = '';
    var decimais = '';
    
    if (pos!=-1){
      decimais = din.substr(pos+1);
      inteiros = din.substr(0,pos);
    }else{
      inteiros = din;
    }
    
    din = '';
    
    var j = 0;
    for(var i=inteiros.length-1;i>=0;i--){
      if (j>=3 && (j%3)==0){
        din = '.' + din;
      }
      din = inteiros.charAt(i) + din;
      j++;
    }

    //Se os decimais possuirem menos de 2 casas completa com zeros
    //Se tiver mais que 2 casas deixa como esta
    var numTamDec = decimais.length;
    
    if (dec == undefined){
      if (numTamDec==0){
        decimais = '00';
      }else if(numTamDec==1){
        decimais = decimais.concat('0');
      }
    }else{

      if (numTamDec==0){
        for(;dec>0;dec--) decimais = decimais.concat('0');
      }else if (numTamDec < dec){
        decimais = infraRPad(decimais, dec, '0');
      }else {
        decimais = decimais.substr(0,dec);
      }
    }
    
    din = sinal + din + ',' + decimais;
  }
  return din;
}

function infraInArray(item, arr) {
  var key = '';
  for (key in arr) {
    if (arr[key] == item) {
        return true;
    }
  }
  return false;
}

function infraRetirarAcentos(palavra) {
  
  //return palavra;
  
  var com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
  var sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
  var nova='';
  for(var i=0;i<palavra.length;i++) {
    
    var c = palavra.substr(i,1);
    
    if ( (pos = com_acento.indexOf(c))>=0) {
      nova += sem_acento.substr(pos,1);
    }
    else {
      nova += c;
    }
  }
  return nova;
}
