  // width máximo das imagens da função de preview
var maxWidth=150;
  // height máximo das imagens
var maxHeight=150;
  // extensões de arquivo válidos
var fileTypes=["gif","jpg","jpeg"];

//var outImage="previewField";
  // imagem a mostrar quando a imagem for inválida
var defaultPic="../images/SPACER.gif";

/***** NÃO EDITAR OS ITENS ABAIXO *****/

function preview(what, where){
  local = where;
  var source=what.value;
  var ext=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
  for (var i=0; i<fileTypes.length; i++) if (fileTypes[i]==ext) break;
  globalPic=new Image();
  if (i<fileTypes.length) globalPic.src=source;
  else {
    globalPic.src=defaultPic;
    alert("Você selecionou um arquivo inválido\nPor favor carregue uma imagem com as seguinte extensões:\n"+fileTypes.join(", "));
	}
 setTimeout("applyChanges(local)",200);
}
var globalPic;
function applyChanges(where){
  //var field=document.getElementById(outImage);
  var field=document.getElementById(where);
  var x=parseInt(globalPic.width);
  var y=parseInt(globalPic.height);
  if (x>maxWidth) {
    y*=maxWidth/x;
    x=maxWidth;
  }
  if (y>maxHeight) {
    x*=maxHeight/y;
    y=maxHeight;
  }
  field.style.display=(x<1 || y<1)?"none":"";
  field.src=globalPic.src;
  field.width=x;
  field.height=y;
}
// Formata moeda
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
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 += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; 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 - 2, len);
}
return false;
}

// Máscara de CNPJ/CPF
function MascaraCPFCNPJ(t){
p = t.value
a = t.name
if (document.frm.tipo[0].checked == true){
document.frm.cpf_cnpj.maxLength = "14";
	if (p.length == 3) {
		t.value = p + "."
		}
	if (p.length == 7) {
		t.value = p + "."
		}
	if (p.length == 11) {
		t.value = p + "-"
		}
	}
if (document.frm.tipo[1].checked == true){
document.frm.cpf_cnpj.maxLength = "18";
	if (p.length == 2) {
		t.value = p + "."
		}
	if (p.length == 6) {
		t.value = p + "."
		}
	if (p.length == 10) {
		t.value = p + "/"
		}
	if (p.length == 15) {
		t.value = p + "-"
		}
	}
}

function ExibeFoto(imagen){
//alert(imagen):
	foto = "foto";
	var local=document.getElementById(foto);
	local.src = imagen;
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}


function addItem(obj,strText,strValue,blSel,intPos){ 
     var newOpt,i,ArTemp,selIndex; 
     selIndex = (blSel)?intPos:obj.selectedIndex; 
     newOpt = new Option(strText,strValue); 
     Len = obj.options.length+1 
     if (intPos > Len) return 
     obj.options.length = Len 
     if (intPos != Len) { 
          ArTemp = new Array(); 
          for(i=intPos;i<obj.options.length-1;i++) 
               ArTemp[i] = Array(obj.options[i].text,obj.options[i].value); 
          for(i=intPos+1;i<Len;i++) 
               obj.options[i] = new Option(ArTemp[i-1][0],ArTemp[i-1][1]); 
     } 
     obj.options[intPos] = newOpt; 
     if (selIndex > intPos) 
          obj.selectedIndex = selIndex+1; 
     else if (selIndex == intPos)  
          obj.selectedIndex = intPos; 
} 


function MascaraFone(t){
p = t.value
a = t.name
if (p.length == 1) {
	t.value = "(" + p
	}
if (p.length == 4) {
	t.value = p + ")"
	}
if (p.length == 9) {
	t.value = p + "-"
	}
	
}


function PlacaVeiculo(t){
p = t.value
a = t.name
if (p.length == 3) {
	t.value = p + "-"
	}
}

function ValidaFone(obj){
src = obj.value
src = src.replace("(","");
src = src.replace(")","");
src = src.replace("-","");
src = src.replace(" ","");
//alert(src);
	if (isNaN(src)==true){
		alert("Telefone incorreto. Digite-o novamente!");
		obj.value = "";
		obj.focus();
		return false;
	}
}
//Máscaras em geral
// onKeyPress="return txtBoxFormat(this, '99/99/9999', event);"
function txtBoxFormat(objeto, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if ( document.all ) { // Internet Explorer
		nTecla = evtKeyPress.keyCode;
	} //if
	else { // Nestcape
		nTecla = evtKeyPress.which;
	}

	sValue = objeto.value;

	// Limpa todos os caracteres de formatação que já estiverem no campo.
	sValue = sValue.toString().replace( ":", "" );
	sValue = sValue.toString().replace( ":", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	fldLen = sValue.length;
	mskLen = sMask.length;
	
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	
	while ( i <= mskLen ) {
		bolMask = ((sMask.charAt(i) == ":") || (sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

		if ( bolMask ) {
			sCod += sMask.charAt(i);
			mskLen++;
		} //if
		else {
			sCod += sValue.charAt(nCount);
			nCount++;
		} //Fim do else
		i++;
	} //Fim do while

	objeto.value = sCod;

	if ( nTecla != 8 ) { // backspace
		if ( sMask.charAt(i-1) == "9" ) { // apenas números...
			return ((nTecla > 47) && (nTecla < 58));
		} // números de 0 a 9
		else { // qualquer caracter...
			return true;
		} //Fim do else
	} //if
	else {
		return true;
	} //Fim do else
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
 
//---------------- Validação dos Formulários -------------------------------
function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {test=args[i+2]; val=MM_findObj(args[i]);  
	if (val) { nm=val.id; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- O campo '+nm+' deve conter um endereço de email válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- O campo '+nm+' deve conter apenas números.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- O campo '+nm+' deve conter um número entre '+min+' e '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- O campo '+nm+' é obrigatório.\n'; }
  } if (errors) alert('Ocorreu o(s) seguinte(s) erro(s):\n'+errors);
  document.MM_returnValue = (errors == '');
}

//----------------------------------------------------------------------------------------------------
//----------------------------------- Janela Pop UP --------------------------------------------------
// javascript: popUp('Cnpjreva_Solicitacao.asp',660,400)
//----------------------------------------------------------------------------------------------------
function popUp(URL,larg,alt) {
var esquerda = ((screen.width - larg)/2);
var topo = ((screen.height - alt)/2);
var day = new Date();
var id = day.getTime();
var tam1 = larg;
var ext1 = alt;

eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width="+tam1+",height="+ext1+",left ="+esquerda+",top ="+topo+"');");
}

// VALIDAÇÃO DO CNPJ / CPF // 

function TestaNI(cNI){
	var NI, iTipo
        
		if (document.frm.tipo[0].checked == true){
			if (LimpaCampo(cNI.value,10) == "00000000000" || LimpaCampo(cNI.value,10) == "11111111111" || LimpaCampo(cNI.value,10) == "22222222222" || LimpaCampo(cNI.value,10) == "33333333333" || LimpaCampo(cNI.value,10) == "44444444444" || LimpaCampo(cNI.value,10) == "55555555555" || LimpaCampo(cNI.value,10) == "66666666666" || LimpaCampo(cNI.value,10) == "77777777777" || LimpaCampo(cNI.value,10) == "88888888888" || LimpaCampo(cNI.value,10) == "99999999999"){
                 iTipo = 3;
               } else {
                iTipo = 2;
			 }
        }
		
		if (document.frm.tipo[1].checked == true){
            if (LimpaCampo(cNI.value,10) == "00000000000000" || LimpaCampo(cNI.value,10) == "11111111111111" || LimpaCampo(cNI.value,10) == "22222222222222" || LimpaCampo(cNI.value,10) == "33333333333333" || LimpaCampo(cNI.value,10) == "44444444444444" || LimpaCampo(cNI.value,10) == "55555555555555" || LimpaCampo(cNI.value,10) == "66666666666666" || LimpaCampo(cNI.value,10) == "77777777777777" || LimpaCampo(cNI.value,10) == "88888888888888" || LimpaCampo(cNI.value,10) == "99999999999999"){
                 iTipo = 3;
               } else {
				iTipo = 1;
			}
        }
	
	NI = LimpaCampo(cNI.value,10);
	
	switch (iTipo) {
		case 1:
			if (NI.length != 14){
				alert('O número do CNPJ informado está incorreto');
				//cNI.value = "";
				cNI.focus();
				return false;
			}

			if (NI.substr(12,2) != CalcularDV(NI.substr(0,12), 9)){
				alert('O número do CNPJ informado está incorreto');
				//cNI.value = "";
				cNI.focus();
				return false;
			}
			break;

		 case 2:
			if (NI.length != 11){
				alert('O número do CPF informado está incorreto');
				//cNI.value = "";
				cNI.focus();
				return false;
			}
			if (NI.substr(9,2) != CalcularDV(NI.substr(0,9), 11)){
				alert('O número do CPF informado está incorreto');
				//cNI.value = "";
				cNI.focus();
				return false;
			}
			break;
		
			case 3:
				alert('O número do CPF/CNPJ informado está incorreto');
				//cNI.value = "";
				cNI.focus();
				return false;			
			break;
			
		default:
			return false;
	}
	return true;	
}

function LimpaCampo(sValor,iBase){
	var tam = sValor.length
	var saida = new String
	for (i=0;i<tam;i++)
		if (!isNaN(parseInt(sValor.substr(i,1),iBase)))
			saida = saida + String(sValor.substr(i,1));
	return (saida);		
	}
	
function CalcularDV(sCampo, iPeso){
	
	var iTamCampo;
	var iPosicao, iDigito;
	var iSoma1 = 0;
	var iSoma2=0;
	var iDV1, iDV2;
		
	iTamCampo = sCampo.length;

	for (iPosicao=1; iPosicao<=iTamCampo; iPosicao++){
		iDigito = sCampo.substr(iPosicao-1, 1);
		iSoma1 = parseInt(iSoma1,10) + parseInt((iDigito * Calcular_Peso(iTamCampo - iPosicao, iPeso)),10);
		iSoma2 = parseInt(iSoma2,10) + parseInt((iDigito * Calcular_Peso(iTamCampo - iPosicao + 1, iPeso)),10);
		}

	iDV1 = 11 - (iSoma1 % 11);
	if (iDV1 > 9)
		iDV1 = 0;

	iSoma2 = iSoma2 + (iDV1 * 2);
	iDV2 = 11 - (iSoma2 % 11);
	if (iDV2 > 9)
		iDV2 = 0;

	Ret = (parseInt(iDV1 * 10,10) + parseInt(iDV2));

	Ret = "0" + Ret;
	Ret = Ret.substr(Ret.length - 2,Ret.length);
		
	return(Ret);
}
function Calcular_Peso(iPosicao, iPeso){

	//Pesos
	//CPF 11
	//CNPJ 9
	return (iPosicao % (iPeso - 1)) + 2;
	}
	
//----------------------------------------------------------------------------------------------------
