//------------------------------------------------------------------------------
//Funções de documentomostraAviso
//------------------------------------------------------------------------------
document.onclick = function(event) { 
  if(!event){event=window.event;}
  if(event.shiftKey){
    if (window.Event){ event.stopPropagation(); event.preventDefault();
    }else{ event.cancelBubble = true;event.returnValue = false;}
	}
}

function queryString(variable){
  var query = window.location.search.substring(1);
  if(!variable){return query;}
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0].toLowerCase() == variable.toLowerCase()) {
      return pair[1];
    }
  } 
}

function getseltext(){
  var txt;
  try{txt = window.getSelection();
  }catch(e){try{txt = document.getSelection();
  }catch(e1){txt = document.selection.createRange().text;}}
  return txt;
}

document.onmousedown = function(event){
  if(!event){event=window.event;}
  var src  = (window.Event) ? event.target : event.srcElement;
  if(src){focoCampo(src,isSelect(src));}//Retirei o type do if, porque estava travando o botão de upload no IE.
}

document.onkeydown = function(event) { 
  if(!event){event=window.event;}
  var key  = (window.Event) ? event.which : event.keyCode;
  var src  = (window.Event) ? event.target : event.srcElement;
  var evt1 = (key>111 && key<124);
  var evt2 = (key==67 || key==86 || key==88);
  var cancel;
  if(evt1||(event.altKey&&evt1)){cancel = true;
  } else if(event.keyCode==8&&!isField(src)){cancel = true;
  }
   if(cancel){
    if (window.Event){ event.stopPropagation(); event.preventDefault();
    }else{ event.cancelBubble = true;event.returnValue = false;}
  }
}

//onkeyup="area_onkeyup(this,100)"
function area_onkeyup(fld,intLim){
	if(!intLim){intLim=255}
	intLng=fld.value.length;
	if(intLng>intLim){
		fld.value=fld.value.substring(0,intLim);
	}
}

function focoCampo(src,nofocus){
  function isParentHidden(el){
    var pEl;
    if(pEl = el.parentElement){
      if(pEl.style.visibility == 'hidden'){
        return true;
      }else if(pEl = pEl.parentElement){
        return isParentHidden(pEl);
      }
    }
    return false
  }
  
  if(!src){
    for (var x=0; x<document.forms.length; x++){
      for (var y=0; y<document.forms[x].length; y++){
        el = document.forms[x][y];
        if(!isParentHidden(el) && el.type!='hidden' && el.disabled!=true){
            src=el;break;
        }
      }
    }
    if(!src){return false;}
  }

  if(src.disabled!=true){
    if(isField(src)){
      src.setAttribute("autocomplete","off");
      src.style.backgroundColor = '#ffc';
      if(!src.onblur){
        src.onblur = function(){ blurCampo(this); }
      }
    }
    if(!nofocus){try{src.focus();}catch(e1){};}
  }
}

function blurCampo(src){
  if (isField(src)){
    src.style.backgroundColor = '#fff';
  }
}

function movecursor(form,event){
  var src = (window.Event) ? event.target: event.srcElement;
  var keystroke = (window.Event) ? event.which : event.keyCode;
  if (keystroke == 13 || keystroke == 9){
    if(isButton(src) || src.type == "textarea"){return true;}
    var checkpoint, i;
    var el = form.elements;
    if(event.shiftKey){ 
      for(i=el.length-1; i>=0; i--){ 
        if (src == el[i]){ checkpoint = i; }
	        if (checkpoint > i){
	          if(el[i].disabled!=true && el[i].type!="hidden"){
	            src = el[i]; break;
	      	  }
	        }
     	}
    }else{
      for(i=0; i<el.length; i++){ 
        if (src == el[i]){ checkpoint = i; }
        if (checkpoint < i){
          if(el[i].disabled!=true && el[i].type!="hidden"){
            src = el[i]; break;
      }}}
    }
    focoCampo(src);
    if(isButton(src) || keystroke == 9){
      if (window.Event){ event.stopPropagation(); event.preventDefault();
      }else{ event.cancelBubble = true;event.returnValue = false; }
    }
  }
}

function isText(src){
  return (src.type=="text" || src.type=="textarea" || src.type=="password");
}

function isSelect(src){
  return (src.type=="select-one" || src.type=="select-multiple");
}

function isField(src){
  return (isText(src) || src.type=="radio" || src.type=="checkbox"  || isSelect(src));
}

function isButton(src){
  return (src.type=="button" || src.type=="submit" || src.type=="reset");
}
//------------------------------------------------------------------------------
//Script loader
//------------------------------------------------------------------------------
function loadScript(url){
  var sc = document.createElement("script");
  sc.type="text/javascript";
  sc.src = url;
  document.getElementsByTagName("head")[0].appendChild(sc);
}

//------------------------------------------------------------------------------
//Masks
//------------------------------------------------------------------------------
//Ex: onkeypress=return mask(this,event,'999.999/99');
function mask(objForm, event, sMask, zFill) {
  var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;
  //nTecla = (window.Event) ? event.which : event.keyCode;
  	var browserName = navigator.appName;
	//IE
	if (browserName == "Microsoft Internet Explorer"){nTecla = event.keyCode;}
	else{nTecla = event.which;}// Netscape/Firefox/Opera 
  
  sValue = objForm.value;
  sValue = unmask(sValue);
  mskLen = sMask.length;

/*
  mValue = unmask(sMask.replace("!","9"));
  if(zFill){
    while(sValue.length<mValue.length){sValue = "0"+sValue;}
  }
*/
  fldLen = sValue.length;
  i = 0;
  nCount = 0;
  sCod = '';
  mskLen = fldLen;

  if (nTecla != 8) {
    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
      bolMask = bolMask || (sMask.charAt(i) == ",")

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; 
      } else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }
      i++;
    }
    objForm.value = sCod;
    if (sMask.charAt(i-1) == "9")
      return (nTecla > 47 && nTecla < 58);
    if (sMask.charAt(i-1) == "!")
      return ((nTecla > 47 && nTecla < 58) || (nTecla > 64 && nTecla < 91) || (nTecla > 96 && nTecla < 123));
    else
      return false;
  } else {
    return true;
  }
}

function padStr(str, strpad, len, pad){
  pad = (pad) ? pad : 0;
  var x = str.length;
  for(x = x; x<len; x++){
    switch (pad){
      case 1:     //center
        str = (x%2==0) ? strpad+''+str : str+''+strpad;
        break
      case 2:     //pad right
        str += ''+strpad;
        break
      default:  //pad left
        str = strpad+''+str;
        break
    }
  }
  return str;
}

//Ex: onkeyup=return num_mask(this,2);
function num_mask(elForm, event, dec, usa){ 
  keystroke = (window.Event) ? event.which : event.keyCode;
  if (keystroke != 9 && keystroke != 16 && keystroke != 36 && keystroke != 37 && keystroke != 39){
    if(!dec||isNaN(dec)){dec=0}
    if(!usa){sp1=".";sp2=",";}
    else{sp1=",";sp2=".";}
    val=elForm.value.replace(sp1,"").replace(sp2,"");
    chrs=/^0+|\D+/g;res="";
    if (val.length>0){
      val=val.replace(chrs,"");
      for(x=val.length;x<=dec;x++){val="0"+val;}
    }
    for(tam=(val.length);tam>0;tam--){
      if(res.length==dec){
        if(dec==0){x=3;}else{res=sp2+res;x=dec+4;}
      }
      if(res.length==x){res=sp1+res;x=x+4;}
      res = val.substring((tam-1),tam)+""+res;
    }
    elForm.value = res;
  }
  return false;
}

var global_uf = null;

function ie_mask(elForm, event, uf) {
  keystroke = (window.Event) ? event.which : event.keyCode;

  var arr = new Array("AC","99,99,9999-9","AL","999999999","AM","99,999,999-9","AP","999999999",
  "BA","999999-99","CE","99999999-9","DF","999,99999,999-99","ES","999999999",
  "GO","99,999,999-9","MA","999999999","MT","9999999999-9","MS","999999999",
  "MG","999,999,999/9999","PA","99-999999-9","PB","99,999,999-9","PE","99,9,999,9999999-9",
  "PI","999999999","PR","999,99999-99","RJ","99,999,99-9","RN","99,999,999-9",
  "RO","999999999","RR","99999999-9","RS","999/999999-9","SC","999,999,999",
  "SE","99999999-9","SP","999,999,999,999","TO","99,99,999999-9");
  
  if (uf){
    for (var i=0;i<arr.length;i++){
      if (uf == arr[i]){
        if (uf == "SP" && (keystroke == 80 || elForm.value.charAt(0) == "P"))
          return mask(elForm, event, '!-99999999,9/999');
        else
          return mask(elForm, event, arr[i+1]);
      }
    }
  }else
    return mask(elForm, event, '99999999999999');
}

function unmask(str){
  var rep = /[^A-Za-z0-9]/g;
  return str.replace(rep,"");
}

function arredondaValor(num,dec){
  var arr = num.toString().split('.');
  var res = arr[0];
  if(arr.length > 1){
    res += '.'+arr[1].substring(0, dec);
  }
  return res;
}

function calculaParcela(oVlr, oPar, oDiv){
  var el = document.getElementById(oDiv);
  var vlr = document.getElementById(oVlr).value;
  var prc = document.getElementById(oPar).value;
  vlr = (vlr) ? parseFloat(vlr.replace('.','').replace(',','.')) : 0;
  prc = (prc) ? parseInt(prc) : 0;
  el.innerHTML = (vlr && prc) ? arredondaValor((vlr/prc),2).replace('.',',') : '';
}

function calcula_valor_guia(oVlr, oPar, oDiv){
  var el = document.getElementById(oDiv);
  var vlr = document.getElementById(oVlr).value;
  var prc = document.getElementById(oPar).value;
  vlr = (vlr) ? parseFloat(vlr.replace('.','').replace(',','.')) : 0;
  prc = (prc) ? parseInt(prc) : 0;
  el.innerHTML = (vlr && prc) ? arredondaValor((vlr*prc),2).replace('.',',') : '';
}            

function calculaCampos(oVlr1, oVlr2, oVlr3, oVlr4, oDiv) {

  var vlr1 = document.getElementById(oVlr1).value;
  var vlr2 = document.getElementById(oVlr2).value;
  var vlr3 = document.getElementById(oVlr3).value;
  var vlr4 = document.getElementById(oVlr4).value;
  
  vlr1 = (vlr1) ? parseFloat(vlr1.replace('.','').replace(',','.')) : 0;
  vlr2 = (vlr2) ? parseFloat(vlr2.replace('.','').replace(',','.')) : 0;
  vlr3 = (vlr3) ? parseFloat(vlr3.replace('.','').replace(',','.')) : 0;
  vlr4 = (vlr4) ? parseFloat(vlr4.replace('.','').replace(',','.')) : 0;
  
  el.innerHTML = (vlr1 && vlr2 && vlr3 && vlr4) ? arredondaValor((vlr1 + vlr2 + vlr3 + vlr4),2).replace('.',',') : '';
}


function limitacampo(campotexto, campolimitador, limitador) {
    if (campotexto.value.length > limitador) // Se for maior que o campo
    campotexto.value = campotexto.value.substring(0, limitador);
    else 
    campolimitador.value = limitador - campotexto.value.length;
}

/***********************************************************************
Funções para calculo do DV de benefício
************************************************************************/

function truncate(number,n){ 
  n = (n) ? n : 0;
  if (isNaN(number)){ return NaN; }
  var arr = number.toString().split(".");
  number = arr[0];
  number += (n) ? (arr[1]) ? "."+arr[1].substring(0,n) : "" : "";
  return number;
} 

function verificaBeneficio(pField,n,pShowConfirm, pMsgConfirm){
  var num, i, base, dv, dvCalc, peso, soma;
  n = (n) ? n : 10;
  peso = 2; 
  soma = 0;
  num = pField.value;
  if (isNaN(num)){ return false; }
  pMsgConfirm = (pMsgConfirm) ? pMsgConfirm : 'Digito verificador inválido!\nDeseja corrigir o número?';
  pShowConfirm = (pShowConfirm) ? true : false;
  vFill = '0';
  for (i=0; i<=n; i++) {
    vFill = vFill + '0';
  }
  num = vFill + num;
  num = num.substr(num.length-n,n);
  n -= 1; 
  base = num.substr(0,n);
  if (parseFloat(base)==parseFloat(0)) {return false;}
  dv = num.charAt(n);
	for (i = 0; i <= n; i++){
		soma += base.charAt(i) * peso;
		if(peso<=2){ peso = 10; }
    peso -= 1;
	}
	dvCalc = truncate((soma * 10 % 11),0);
  dvCalc = (dvCalc == 10) ? 0 : dvCalc;
  if (dv != dvCalc){
    if (pShowConfirm) {
        if(confirm(pMsgConfirm)){
              pField.value="";
              pField.focus();
        }
    }
    return false;
  }
    if (pShowConfirm) {
	    blurCampo(pField);
    }
  return true;
}
//------------------------------------------------------------------------------
//Validation
//------------------------------------------------------------------------------
function doDigits(pField){
  var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isDigits(pStr)){
			pField.value = '';
			alert(pStr+' Não é um dígito válido.');
			pField.focus();
      return false;
		}
	}
	blurCampo(pField);
	return true;
}

function isDigits(pStr){
  var reDigits = /^\d+$/;
  if (pStr != null && pStr != "")
		return reDigits.test(pStr);		
	return true;
}


function doDecimal(pField){
  var pStr = pField.value;
  if (pStr != null && pStr != "") {
		if (!isDecimal(pStr)){
			pField.value = '';
			alert(pStr+' Não é um decimal válido.');
			pField.focus();
		  return false;
    }
	}
	blurCampo(pField);
	return true;
}

function isDecimal(pStr, pLang){
  var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
  var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
	if (pLang != "En"){pLang = "Pt";}
	eval("reDecimal = reDecimal" + pLang);
	if (pStr != null && pStr != "") {
		return reDecimal.test(pStr)
	}
	return true;
}


function doCurrency(pField){
  var pStr = pField.value;
  if (pStr != null && pStr != "") {
		if (!isCurrency(pStr)){
			pField.value = '';
			alert(pStr+' Não é um valor monetário válido.');
			pField.focus();
		  return false;
    }
	}
	blurCampo(pField);
	return true;
}

function isCurrency(pStr){
var reCurrency = /^\d{1,3}(\.\d{3})*\,\d{2}$/;
	if (pStr != null && pStr != "")
		return reCurrency.test(pStr);		
	return true;
}

function calendario(field,trigger){
    if (!document.getElementById(field).disabled) {
        Calendar.setup({inputField : field, ifFormat : '%d/%m/%Y', showsTime : false, button : trigger, singleClick : true, step : 1});
    }
}

function doDate(pField){
  var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isDate(pStr)){
			pField.value = '';
			alert(pStr+' Não é uma data válida.');
			pField.focus();
      return false;
		}
	}
	blurCampo(pField);
	return true;
}

function isDate(pStr){
  var reDate = /^((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 (pStr != null && pStr != "")
    return reDate.test(pStr);
	return true;
}


function doEmail(pField){
var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isEmail(pStr)){
			pField.value = '';
			alert(pStr+' Não é um E-mail válido.');
			pField.focus();
		  return false;
    }
	}
	blurCampo(pField);
	return true;
}

function isEmail(pStr){
  var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
  var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
  var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	if (pStr != null && pStr != "") {
		return (reEmail1.test(pStr) || reEmail2.test(pStr) || reEmail3.test(pStr));
	}
	return true;
}

String.prototype.lpad = function(pSize, pCharPad){
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
}

String.prototype.trim = function(){
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function unformatNumber(pNum){
	return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
}

function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj){
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? 14: 11;
	var numero = unformatNumber(pCpfCnpj);
	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;
	if (pIsCnpj){
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}else{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
}


function dvCpfCnpj(pEfetivo, pIsCnpj){
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? 8: 11;
	var maxDigitos = pIsCnpj? 14: 11;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";
	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) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}
	return result;
}


function doCpf(pField){
var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isCpf(pStr)){
			pField.value = '';
			alert(pStr+' Não é um CPF válido.');
			pField.focus();
		}
	}
	return true;
}

function isCpf(pCpf){
	var numero = formatCpfCnpj(pCpf, false, false);
	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	if (numero != base + digitos) return false;
	algUnico = true;
	for (i=1; i<11; i++)
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	return (!algUnico);
}


function doCnpj(pField){
var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isCnpj(pStr)){
			pField.value = '';
			alert(pStr+' Não é um CNPJ válido.');
			pField.focus();
		  return false;
    }
	}
	blurCampo(pField);
	return true;
}

function isCnpj(pCnpj){
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, 8);
	var ordem = numero.substring(8, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;
	if (numero != base + ordem + digitos) return false;
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<8; i++)
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	if (algUnico) return false;
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
}

function doCpfCnpj(pField){
var pStr = pField.value;
	if (pStr != null && pStr != "") {
		if (!isCpfCnpj(pStr)){
			pField.value = '';
			alert(pStr+' Não é um CPF/CNPJ válido.');
			pField.focus();
		  return false;
    }
	}
	blurCampo(pField);
	return true;
}

function isCpfCnpj(pCpfCnpj){
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (numero.length > 11)
		return isCnpj(pCpfCnpj)
	else
		return isCpf(pCpfCnpj);
}

//------------------------------------------------------------------------------
//Form Submit
//------------------------------------------------------------------------------
function obrigatorio(form,el,aviso){
  var oField = document[form][el];
  if(oField.value == ''){
    alert(aviso);
    focoCampo(oField);
    return false;
  }
  return true;
}


function transfereLista(fbox, tbox, remove) {
  var exists, i, j;
  for (i = 0; i < fbox.options.length; i++) {
    if (fbox.options[i].selected == true){
      for (j = 0; j < tbox.options.length; j++){
        exists = false;
        if (fbox.options[i].value == tbox.options[j].value){
          exists = true;
          break;
        }
      }
      if (!exists){tbox[j] = new Option(fbox.options[i].text,fbox.options[i].value);}
      if (remove){fbox.options[i] = null; i-=1;}
    }
  }
}

function desabilita(form,val){
  form = document.getElementById(form);
  var el = form.elements;
  val = (val)?true:false;
  for(var i=0; i<el.length; i++){ 
    if (isButton(el[i])) { el[i].disabled = val; }
  }
}

//------------------------------------------------------------------------------
//TaskBar, Menus & Messages
//------------------------------------------------------------------------------
function setButton(el){
  el.className="over";
  el.onmouseover = function(){el.className="over";};
  el.onmouseout  = function(){el.className="normal";};
  el.onmousedown = function(){el.className="down";};
  el.onmouseup   = function(){el.className="over";};
}

function setLista(el){
  var cls = el.className;
  el.className="sl";
  el.onmouseover = function(){el.className="sl";};
  el.onmouseout  = function(){el.className=cls;};
  el.onclick     = function(){
    el.className="sl";
    el.onmouseover = function(){};
    el.onmouseout  = function(){setLista(el);};
  };
}

function menu(el, childel) {
  el.className = "cssmenuhover";
  var ref = document.getElementById(childel);
  var frm = document.getElementById("divmask");
	el.onclick     = function(){el.className = "cssmenuhover";exibeItem(childel,true);};
  el.onmouseover = function(){el.className = "cssmenuhover";};
	el.onmouseout  = function(){el.className = "cssmenu"; escondeItem(childel);};
  ref.onmouseover = function(){el.className = "cssmenuhover";ref.style.visibility="visible";frm.style.visibility="visible";exibeItem(childel);};
	ref.onmouseout  = function(){el.className = "cssmenu";ref.style.visibility="visible";frm.style.visibility="visible";escondeItem(childel);};
}

function menuItem(el, url) {
  el.className   = "cssitemlinkhover";
  el.onmouseover = function(){el.className = "cssitemlinkhover";};
  el.onmouseout  = function(){el.className = "cssitemlink";};
  if(url)
    el.onclick     = function(){window.location = url;};
}

function menuItemOpen(el, url) {
  el.className   = "cssitemlinkhover";
  el.onmouseover = function(){el.className = "cssitemlinkhover";};
  el.onmouseout  = function(){el.className = "cssitemlink";};
  if(url)
    el.onclick     = function(){window.open(url);};
}


function popupMenuItem(el, func) {
  el.className   = "cssitemlinkhover";
  el.onmouseover = function(){el.className = "cssitemlinkhover";};
  el.onmouseout  = function(){el.className = "cssitemlink";};
  if(func)
    el.onclick     = function(){func();};
}

function mostraAviso(txt) {
  centralizaItem('aviso');
  var el = document.getElementById("txt_aviso");
  el.innerHTML = txt;
  exibeItem('aviso',true);
  setTimeout("escondeItem('aviso')",4000);
}

function mostraCarregar(){
  centralizaItem('carregando');
  exibeItem('carregando',true);
}

function escondeCarregar(){
  centralizaItem('carregando');
  escondeItem('carregando');
}

function exibeItem(id,effects){
  var el = document.getElementById(id);
  el.style.zIndex=1000;
  var oIframe = document.getElementById("divmask");
  oIframe.style.visibility="visible";
  oIframe.style.width  = el.offsetWidth+"px";
	oIframe.style.height = el.offsetHeight+"px";
	oIframe.style.left   = el.offsetLeft+"px";
	oIframe.style.top    = el.offsetTop+"px";
  oIframe.style.zIndex = (el.style.zIndex-1);
  if(effects){
    if (window.event){
      var sFilter = "progid:DXImageTransform.Microsoft.Fade(duration=.4)";
      sFilter += " progid:DXImageTransform.Microsoft.Pixelate(maxsquaresize=15, duration=.4)";
      sFilter += " progid:DXImageTransform.Microsoft.Shadow(color='#666666', Direction=135, Strength=4)";
      el.style.filter = sFilter;
      //Retirando algumas animações - Érico Gustave
	  if(document.all){
		  el.filters[0].Apply();
		  el.filters[0].Play();
		  el.filters[1].Apply();
		  el.filters[1].Play();
		  el.filters[2].Apply();
		  el.filters[2].Play();
	  }
    }
  }
  el.style.visibility="visible";
}

function escondeItem(id){
  var el = document.getElementById(id);
  var oIframe = document.getElementById("divmask");
  el.style.visibility="hidden";
  oIframe.style.visibility="hidden";
}

function centralizaItem(item){
  var el;
  try{ el = document.getElementById(item);
  }catch(e){el = item;}
  var pw, ph;
  if(window.Event){pw = window.innerWidth; ph = window.innerHeight;
  }else{pw = document.documentElement.clientWidth; ph = document.documentElement.clientHeight;}
  
  var w = el.offsetWidth;
  var h = el.offsetHeight;
  var l=((pw-w)>=0)?(pw-w)/2:0;
  var t=((ph-h)>=0)?(ph-h)/2:0;
  el.style.left=(l+'px');
  el.style.top=(t+'px');
}

function posicionaItem(item,event) {
  if(!event){event=window.event;}
  var el;var px = 0;var py = 0;
  try{ el = document.getElementById(item);
  }catch(e){el = item;}
  var sl = document.body.scrollLeft	+ document.documentElement.scrollLeft;
  var st = document.body.scrollTop + document.documentElement.scrollTop;
	if(window.event){px = event.clientX + sl; py = event.clientY + st;
  }else{px = event.pageX;	py = event.pageY;}
  var re = document.body.clientWidth-px;
  var be = document.body.clientHeight-py;
  if (re < el.offsetWidth){el.style.left = ((px-el.offsetWidth)+'px');
  }else{el.style.left = (px+'px');}
  if (be < el.offsetHeight){el.style.top = ((py-el.offsetHeight)+'px');
  }else{el.style.top = (py+'px');}
  return false;
}

function popup(urlLoc,w ,h, opt) {
	l = (screen.availWidth - w)/2; 
	t = (screen.availHeight - h)/2; 
	features  = "toolbar=no";		// yes|no 
	features += ",location=no";		// yes|no 
	features += ",directories=no";	// yes|no 
	features += ",status=no";		// yes|no 
	features += ",menubar=no";		// yes|no 
	features += (!opt) ? ",scrollbars=yes" : ",scrollbars=" + opt;// auto|yes|no 
	features += ",resizable=yes";	// yes|no 
	features += ",dependent";		// close the parent, close the popup, omit if you want otherwise 
	features += ",height=" + h;		
	features += ",width=" + w;		
	features += ",left=" + l;		
	features += ",top=" + t;		
	var Wnd = window.open(urlLoc,'',features); 
	Wnd.focus();
	return Wnd;
}

function carregaEntidadeCombo(pSrc, pName, pLabel, pUsaEntidade, pDiv, pMultiple, pOptional, pSize, pWhere, pInst){
  pMultiple = (!pMultiple) ? 0 : 1;
  var oCombo = document.getElementById(pDiv);
  if (oCombo && pSrc) {
      var oAjax = new ajax();
      oAjax.iniciar();
      oAjax.parametro('modo','html-cmb');
      oAjax.parametro('cmb_name', pName);
      oAjax.parametro('cmb_label', pLabel);
      oAjax.parametro('cmb_usa_entidade', pUsaEntidade);
      oAjax.parametro('cmb_uf',(pSrc.value) ? pSrc.value : "-1");
      oAjax.parametro('cmb_multiple', pMultiple);
      oAjax.parametro('cmb_optional', pOptional);
      oAjax.parametro('cmb_size', pSize);
      oAjax.parametro('cmb_where', pWhere);
      oAjax.parametro('cmb_mostra_instituicoes', pInst);
      oAjax.enviar('entidade.combo.php','POST');
      if (oAjax.processa()) {
        oCombo.innerHTML = oAjax.receber();
        pId = fPegaValor(oAjax.receber(), 'id=','"');
        pObj=null;
        for (f=0; f<oCombo.childNodes.length; f++) {
        	if (oCombo.childNodes[f].id==pId){
        		pObj=oCombo.childNodes[f];
        	}
        }   
        pExec = fPegaValor(oAjax.receber(), 'onchange=','"');
        if (pExec!="") {
	        pExec = Replace(pExec,'this','pObj');
	        eval(pExec);
        } 
      }
  }
}

function fPegaValor(pTxt, pItem, pSep) {
	var pPos=0;
    var tam=0;
	var pVolta="";
    
    tam = pTxt.length;     //Verifica qual o tamanho da string.
    //pPos = InStr(pTxt,pItem);         //essa função InStr só existe se for implementada... 
    pPos = pTxt.indexOf(pItem);
    if (pPos>0) {
    	//pVolta = Mid(pTxt,pPos,500);   //essa função só existe no ASP
        pVolta = pTxt.substring(pPos,tam)
    	//pPos = InStr(pVolta,pSep);       // essa função InStr só existe se for implementada... 
        pPos = pVolta.indexOf(pSep);
    	if (pPos>0) {
    		//pVolta = Mid(pVolta,pPos+1,500);    //essa função só existe no ASP  
            pVolta = pVolta.substring(pPos+1,tam);
	    	//pPos = InStr(pVolta,pSep);    // essa função InStr só existe se for implementada...    
            pPos = pVolta.indexOf(pSep);  
	    	if (pPos>0) {
	    		//pVolta = Left(pVolta,pPos-1);  //varre uma string da esquerda para direita.
                pVolta = pVolta.substring(0,pPos); 
	    	}else{
	    		pVolta="";
	    	}
    	}else{
    		pVolta="";
    	}
    }
    return pVolta;
}



function InStr(texto,c,posInicial)
{
    alert(texto);
    alert(c);
    alert(posInicial);
    if (posInicial<0) posInicial=0;

    for(var i=posInicial; i<texto.length;i++)
    {
        if(texto.charAt(i)==c) return i;
    }
    return -1;
}

function carregaMunicipioCombo(pSrc, pName, pLabel, pUsaEntidade, pDiv, pMultiple, pOptional, pSize){
  pMultiple = (!pMultiple) ? 0 : 1;
  var oCombo = document.getElementById(pDiv);
  if (oCombo && pSrc) {
      var oAjax = new ajax();
      oAjax.iniciar();
      oAjax.parametro('modo','html-cmb');
      oAjax.parametro('cmb_name', pName);
      oAjax.parametro('cmb_label', pLabel);
      oAjax.parametro('cmb_usa_entidade', pUsaEntidade);
      oAjax.parametro('cmb_uf',(pSrc.value) ? pSrc.value : "-1");
      oAjax.parametro('cmb_multiple', pMultiple);
      oAjax.parametro('cmb_optional', pOptional);
      oAjax.parametro('cmb_size', pSize);
      oAjax.enviar('municipio.combo.php','POST');
      if (oAjax.processa()) {
        oCombo.innerHTML = oAjax.receber();
      }
  }
}

function carregaMunicipioCombosemlogin(pSrc, pName, pLabel, pUsaEntidade, pDiv, pMultiple, pOptional, pSize){
  pMultiple = (!pMultiple) ? 0 : 1;
  var oCombo = document.getElementById(pDiv);
  if (oCombo && pSrc) {
      var oAjax = new ajax();
      oAjax.iniciar();
      oAjax.parametro('modo','html-cmb');
      oAjax.parametro('cmb_name', pName);
      oAjax.parametro('cmb_label', pLabel);
      oAjax.parametro('cmb_usa_entidade', pUsaEntidade);
      oAjax.parametro('cmb_uf',(pSrc.value) ? pSrc.value : "-1");
      oAjax.parametro('cmb_multiple', pMultiple);
      oAjax.parametro('cmb_optional', pOptional);
      oAjax.parametro('cmb_size', pSize);
      oAjax.enviar('municipio_sem_login.combo.php','POST');
      if (oAjax.processa()) {
        oCombo.innerHTML = oAjax.receber();
      }
  }
}

/*
 Habilita um campo e muda CLASS do texto para que fique com 'lable'
*/
function fHabilField(pForm,pId) {
    vForm = document.getElementById(pForm);
    vObj = document[pForm][pId];
    vObj.disabled=false;
    vdivs = vForm.getElementsByTagName('DIV');
    for (i=0; i<vdivs.length; i++) {
        if (vdivs[i].id=='div_lbl_'+pId) {
            vdivs[i].className='lable';
            break;
        }
    }
}        


/*
 Desabilita um campo e muda CLASS do texto para que fique com 'labledisabled'
*/
function fDesabilField(pForm,pId) {
    vForm = document.getElementById(pForm);
    vObj = document[pForm][pId];
    vObj.disabled=true;
    vdivs = vForm.getElementsByTagName('DIV');
    for (i=0; i<vdivs.length; i++) {
        if (vdivs[i].id=='div_lbl_'+pId) {
            vdivs[i].className='labledisabled';
            break;
        }
    }
}        


/*
 Habilita um Botão e muda CLASS do para que fique com 'button'
*/
function fHabilButton(pForm,pId) {
    vForm = document.getElementById(pForm);
    vObj = document[pForm][pId];
    vObj.disabled=false;
    vObj.className='button';
}        


/*
 Desabilita um Botão e muda CLASS do para que fique com 'buttondisabled'
*/
function fDesabilButton(pForm,pId) {
    vForm = document.getElementById(pForm);
    vObj = document[pForm][pId];
    vObj.disabled=true;
    vObj.className='buttondisabled';
}        


/*
 Seleciona o item da COMBO correspondente ao valor desejado
*/
function fCmbSelValor(pCmb,pVlr) {
    if (pCmb) {
        for (var f=0; f<pCmb.options.length; f++){
            if (pCmb.options[f].value==pVlr) {
                pCmb.selectedIndex=f;
                break;
            }
        }
    }
}

function fSelEspecie(pObjCmb, pObjTxt, e) {
    var vEvent = e;
    if (window.event) {
        vEvent = window.event;
    }
    if (vEvent.keyCode==9 || vEvent.keyCode==13){return;}
    if (pObjCmb) {
        if (pObjTxt) {
            //pObjTxt.value = pObjTxt.value.replace(/[^0-9]/gi,'');
            fKeyUpClean(pObjTxt, 'num', vEvent);
            fCmbSelValor2(pObjCmb, pObjTxt.value);
        }
    }
}


function AllowRegExp(RegExp,e)
{
	var ie;
	if (window.event) { ie=true;}
    
    RegExp = (RegExp=='num') ? /[0-9]/gi : RegExp;
    RegExp = (RegExp=='alf') ? /[a-z ]/gi : RegExp;
    RegExp = (RegExp=='alfnum') ? /[0-9a-z ]/gi : RegExp;
    RegExp = (RegExp=='ace') ? /[a-z áéíóúàâêîôûãõç]/gi : RegExp;
    RegExp = (RegExp=='acenum') ? /[0-9a-z áéíóúàâêîôûãõç]/gi : RegExp;
    
	if (ie) {
		var key = window.event.keyCode;
		var ch = String.fromCharCode(window.event.keyCode);
        if (key==13 || key==9 || key==0){return;}
        if (ch.replace(RegExp,'')!='') {
            window.event.keyCode=0;
        }
	}else{
		var key = e.keyCode;
		var wkey = e.which;
		var ch = String.fromCharCode(wkey);
        if ((key==8 || key==13) || (wkey==0 && (key==9 || key==46 || (key>=35 && key<=40)))){return;}
        if (ch.replace(RegExp,'')!='') {
            e.preventDefault? e.preventDefault() : e.returnValue = false;
        }
	}
}

function fKeyUpClean(pObj, pRegExClean, e) {
    var vEvent = e;
    if (window.event) {
        vEvent = window.event;
    }
    if (vEvent.keyCode==9 || vEvent.keyCode==13 || vEvent.keyCode==0){return;}
    pRegExClean = (pRegExClean=='num') ? /[^0-9]/gi : pRegExClean;
    pRegExClean = (pRegExClean=='alf') ? /[^a-z ]/gi : pRegExClean;
    pRegExClean = (pRegExClean=='alfnum') ? /[^a-z 0-9]/gi : pRegExClean;
    pRegExClean = (pRegExClean=='ace') ? /[^a-z áéíóúàãõâêîôûç]/gi : pRegExClean;
    pRegExClean = (pRegExClean=='acenum') ? /[^a-z áéíóúàãõâêîôûç0-9]/gi : pRegExClean;
    if (pObj) {
        pObj.value = pObj.value.replace(pRegExClean,'');
    }
}



function fCmbSelValor2(pCmb,pVlr) {
    if (pCmb) {
    	pCmb.selectedIndex=-1;
        for (var f=0; f<pCmb.options.length; f++){
            if (pCmb.options[f].value==pVlr) {
                pCmb.selectedIndex=f;
                break;
            }
        }
    }
}


function Replace(Expression, Find, Replace)
{
	var temp = Expression;
	var a = 0;

	for (var i = 0; i < Expression.length; i++)
	{
		a = temp.indexOf(Find);
		if (a == -1)
		{
			break;
		}
		else
		{
			temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
		}
	}
	return temp;
}


function AllowOnly(Expression,e)
{
	var ie;
	if (window.event) { ie=true;}
	Expression = Expression.toLowerCase();
	Expression = Replace(Expression, 'a..z', 'abcdefghijklmnopqrstuvwxyz');
	Expression = Replace(Expression, '0..9', '0123456789');
	Expression = Replace(Expression, '|', '');
	if (ie) {
		var key = window.event.keyCode;
		var wkey = null;
		var ch = String.fromCharCode(window.event.keyCode);
	}else{
		var key = e.keyCode;
		var wkey = e.which;
		var ch = String.fromCharCode(wkey);
	}
	ch = ch.toLowerCase();
	if (wkey) {
		var teclas=wkey;	
	}else{
		var teclas=key;
	}
	if (!(teclas==8 || teclas==46 || ((teclas>=35 && teclas<=40) || teclas==45 &&(!ie && wkey==0)))) {
		Expression = Expression.toLowerCase();
		var a = Expression.indexOf(ch);
		if (a == -1)
		{
			if (ie){
				window.event.keyCode = 0;
			}else{
				e.preventDefault? e.preventDefault() : e.returnValue = false;
			}
		}
	}
}




//Carrega Imagens para Sinal de abrir DIV
var imgOpen = new Image();
var imgClose = new Image();
imgOpen.src = './images/opendiv.png';
imgClose.src = './images/closediv.png';


/***********************************************************************
Função para Mostrar/Esconder uma DIV
************************************************************************/
function showHide(divtag)
{
 if (document.getElementById(divtag).style.display=='')
 {
  document.getElementById(divtag).style.display='none';
  document.getElementById('fig' + divtag).src = imgOpen.src;
 }
 else
 {
  document.getElementById(divtag).style.display='';
  document.getElementById('fig' + divtag).src = imgClose.src;
 }
}


/***********************************************************************
Função para Controlar/Mostrar limite de TEXTAREA
************************************************************************/
function textarealimit(campotexto,limitador) {
    var id;
    if (!campotexto) {
        return;
    }
    id = campotexto.id+'_limite';
    if (campotexto.value.length > limitador) // Se for maior que o campo
    campotexto.value = campotexto.value.substring(0, limitador);
    else 
    document.getElementById(id).innerHTML = limitador - campotexto.value.length;
}

