function abrirJanelaComMenu(arquivo, largura, altura) {
  novaJanela = window.open(arquivo,'novaJanela','location=0,status=0,resizable=1,scrollbars=1,menubar=1,width='+largura+',height='+altura);
	novaJanela.focus();
  centralizarJanela(largura, altura);
}
function abrirJanelaComControles(arquivo, largura, altura) {
  novaJanela = window.open(arquivo,'novaJanela','location=0,status=0,resizable=1,scrollbars=1,toolbar=1,width='+largura+',height='+altura);
	novaJanela.focus();
  centralizarJanela(largura, altura);
}
function abrirJanelaSemScroll(arquivo, largura, altura) {
  novaJanela = window.open(arquivo,'novaJanela','location=0,status=0,resizable=0,scrollbars=0,width='+largura+',height='+altura);
	novaJanela.focus();
  centralizarJanela(largura, altura);
}
function abrirJanela(arquivo, largura, altura) {
  novaJanela = window.open(arquivo,'novaJanela','location=0,status=0,resizable=1,scrollbars=1,width='+largura+',height='+altura);
	novaJanela.focus();
  centralizarJanela(largura, altura);
}
function centralizarJanela(largura, altura){
  esquerda = (screen.availWidth/2) - (largura/2);
  topo = (screen.availHeight/2) - (altura/2);
  novaJanela.moveTo(esquerda-10, topo-10);
}
function mostrarAviso(aviso) {
	alert(aviso);
}
function ajustarEventListener(eventListener) {
	tirarBordasCheckboxes();
  document.onmouseover = eventListener;
}
function esconderMostrarSelect(acao) {
	var sel=document.getElementsByTagName("SELECT");
	for(i=0; i<sel.length; i++) {
		sel[i].style.visibility = acao;
	}
}
function avaliarObjeto(event) {
	objeto = window.event.srcElement;
	strObjeto = objeto.toString();
	if (strObjeto.substr(0,4) == "http") {
		esconderMostrarSelect("hidden");
	} else {
		esconderMostrarSelect("visible");
	}
}
function tirarBordasCheckboxes() {
	var sel=document.getElementsByTagName("INPUT");
	for(i=0; i<sel.length; i++) {		
		if ((sel[i].type == "checkbox")||(sel[i].type == "radio")) {
  		sel[i].style.border = "none";
		}
	}
}
function imprimirDIV(strIdDiv) {
	abrirJanela('http://www.trf4.gov.br/trf4/infra/imprimir_div.php?div='+strIdDiv,750,500);
}
function validarData(data) {
	var strExReg = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
	if (!strExReg.test(data)) {
		return false;
	} else {
		return true;
	}
}
function infraMascaraData(objeto, evt) {
  return infraMascara(objeto, evt, '##/##/####');
}
function infraMascara(objeto, evt, mask) {
  var Separadores = ' "|/?!@$%¨&*(),.;<>:~^_-=+[{]}';

  var ntecla = (window.Event) ? evt.which : evt.keyCode;

  var tempObj = objeto.value;
  var tempObjSize = tempObj.length;
  var objRetorno = "";
  var i;
  
  if (ntecla == 0) return true;//esquerda, direita, ...
  if (ntecla == 8) return true;//bckspace
  if (ntecla == 13) return true;//enter

  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 validarCPF(objCPF) {
	var i;  
  var c = objCPF.substr(0,9);
  var dv = objCPF.substr(9,2);
  var d1 = 0;
  for (i = 0; i < 9; i++) {
    d1 += c.charAt(i)*(10-i);
  }
  if (d1 == 0) {    
    return false;
  }
  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;
  if (dv.charAt(0) != d1) {    
    return false;
  }
  d1 *= 2;
  for (i = 0; i < 9; i++) {
    d1 += c.charAt(i)*(11-i);
  }
  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;
  if (dv.charAt(1) != d1) {    
    return false;
  }
  return true;
}
var tamanhos = new Array('10px','11px','12px','13px','14px','15px','16px','17px');
if (isNaN(contador)) {
  var contador = 0;
}
function alterarTamanhoFonte(zoom) {
	var bolAlterar = 0;
	if (zoom == "+") {
		if (contador < tamanhos.length - 1){
			contador++;
			bolAlterar = 1;
		}
	}
	if (zoom == "-") {
		if (contador > 0) {	
			contador--;
			bolAlterar = 1;
		}
	}
	if (zoom == "p") {
		contador = 0;
		bolAlterar = 1;
	}
  if (bolAlterar == 1) {
  	document.getElementById("areaGlobal").style.fontSize = tamanhos[contador];
		ajustarSessaoTamanhoFonte(contador);
	}
}
var xmlHttp;
function ajustarSessaoTamanhoFonte(intTamanho) {
  xmlHttp = GetXmlHttpObject();
  if (xmlHttp == null) {
    alert ("Este browser não suporta HTTPRequest");
		return;
  }
  xmlHttp.onreadystatechange = stateChanged;
  xmlHttp.open("GET", "http://www.trf4.gov.br/trf4/infra/InfraAJAX.php?acao=alterarTamanhoFonte&tamanho="+intTamanho, true);
  xmlHttp.send(null);
} 
function stateChanged() { 
  if ((xmlHttp.readyState == 4) || (xmlHttp.readyState == "complete")) {
    //alert(xmlHttp.responseText);
    /*try {
      if(xmlHttp.status == 200) {
        alert(xmlHttp.responseText);
      }
    } catch(componentfailure) {}*/
  }
}
function GetXmlHttpObject() { 
  var objXMLHttp = null;
  if (window.XMLHttpRequest) {
    objXMLHttp = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  return objXMLHttp;
}
function aplicarEstiloName(strUrl, strName) {
	/* funcão para ser chamada no método onclick dentro de um elemento a href,
	cujo objetivo é carregar a página passada e aplicar estilo subtitulo no elemento indicado pelo atributo name
	*/	
	var intPosPhp = strUrl.indexOf('.php');	
	var intPosCerca = strUrl.indexOf('#');
	if (intPosPhp >= 0) {		
		// chama página destino, a fim de que ela chame de volta esta função, para se aplicar o estilo no elemento pedido (restriçao de segurança do javascript)
		window.location.href = strUrl.substring(0, intPosPhp+5) + 'style=' +strName +'&' + strUrl.substring(intPosPhp+5, strUrl.length); // +5 para pegar até o .php?;
	}
	else if (intPosCerca == 0) {		
		// cai aqui quando institucional.php chama esta função (com '#' no parametro strUrl), ou quando o marcador (destino) está na mesma página do link origem
		// aplica estilo subtitulo no elemento recebido como parametro		
		var arrElemNames = document.getElementsByName(strName);
		for (var i=0; i<arrElemNames.length; i++) {
			arrElemNames[i].innerHTML = '<span class="subtitulo">' +arrElemNames[i].innerHTML +'</span>';
		}		
		if (strUrl != '#') {
		// apenas posiciona a página atual no marcador presente na própria página
			window.location.href = strUrl;
		}
	}
	else {
		alert('Tipo de página não suportada pela função aplicadora de estilo.');
	}
}
function validarForm(oForm) {
	var strMsgErro = '';
	for(var i = 0; i < oForm.elements.length; i++) {
		if (((oForm.elements[i].type == 'text') && (!oForm.elements[i].value)) || ((oForm.elements[i].type == 'file') && (!oForm.elements[i].value))) {
			// analisa campos text e file
			if (oForm.elements[i].getAttribute('obrig') == 's') {
				strMsgErro += 'É necessário preencher o campo "' +oForm.elements[i].getAttribute('desc') +'".\n';
			}
		}
		if ((oForm.elements[i].tagName.toLowerCase() == 'select') && (!oForm.elements[i].value)) {
			// analisa campos select
			if (oForm.elements[i].getAttribute('obrig') == 's') {
				strMsgErro += 'É necessário selecionar o campo "' +oForm.elements[i].getAttribute('desc') +'".\n';
			}
		}
		if ((oForm.elements[i].tagName.toLowerCase() == 'textarea') && (!oForm.elements[i].value)) {
			// analisa campos textarea
			if (oForm.elements[i].getAttribute('obrig') == 's') {
				strMsgErro += 'É necessário preencher o campo "' +oForm.elements[i].getAttribute('desc') +'".\n';
			}
		}
		if ((oForm.elements[i].type == 'radio') && (oForm.elements[i].getAttribute('obrig') == 's')) {			
				// analisa campos radio				
				var bolMarcou = false; 						
				for(var j=i; j<i+document.getElementsByName(oForm.elements[i].name).length; j++)
				{					
					if(oForm.elements[j].checked){
						bolMarcou = true;						
					}				
				}
				if (!bolMarcou) {
					strMsgErro += 'É necessário escolher uma opção do campo "' +oForm.elements[i].getAttribute('desc') +'".\n';
				}				
		}
	}
	if (strMsgErro) {
		alert(strMsgErro);
		return false;
	}
	return true;
}
var INFRA_IE = infraVersaoIE();

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 infraVersaoXHTML() {
  
  if (document.xmlVersion==undefined){
    return 0;
  }
  
  if (document.xmlVersion==null){
    return 0;
  }
  
  return document.xmlVersion
}

function infraAviso() {
	
  //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="../imagens/aguarde.gif" alt="..." /></td>';
  html += '<td align="left"><span>Processando...</span></td>';
  html += '</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(){
  var divFundo = document.getElementById('divInfraAvisoFundo');

  if (divFundo==null){
    divFundo = infraAviso();
  }else{
    document.getElementById('imgInfraAviso').src='../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 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; 
}