function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function formataCpfCnpj(campo, teclapres, tipoCad) {
		if (tipoCad == "J")
			FormataCgc(campo,18,teclapres);
		else
			FormataCpf(campo,14,teclapres);
}

// Pula de uma Campo a Outro Automático
function JumpField(fields) {
 if (fields.value.length == fields.maxLength) {
  for (var i = 0; i < fields.form.length; i++) {
   if (fields.form[i] == fields && fields.form[(i + 1)] && fields.form[(i + 1)].type != "hidden") {
		fields.form[(i + 1)].focus();
		break;
   }
  }
 }
}						


//******************************************************************************************
//**** FUNCAO QUE FORMATA OS CAMPOS DE VALORES											    ****
//**** Variáveis: 								                                        ****
//**** CAMPO -> qual o campo do formulario												****
//**** teclapres -> qual a tecla prescionada											****
//******************************************************************************************

function FormataValor(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '' + vr.substr( tam - 8, 3 ) + '' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '' + vr.substr( tam - 11, 3 ) + '' + vr.substr( tam - 8, 3 ) + '' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '' + vr.substr( tam - 14, 3 ) + '' + vr.substr( tam - 11, 3 ) + '' + vr.substr( tam - 8, 3 ) + '' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}
		
}

function VerificaCampo(Campo, Nome) {
	if (trim(Campo.value)=="") {
		alert("O campo \""+Nome+"\" não pode estar em branco!");
		Campo.value="";
		Campo.focus();
		return false;
	}
	else
		return true;	
}

function VerificaEMail(Campo) {
	if (trim(Campo.value)=="" || Campo.value.indexOf('@', 0) == -1 || Campo.value.indexOf('.', 0) == -1) {
		alert("E-Mail invalido!");
		Campo.focus();
		Campo.select();
		return false;
	}
	else
		return true;	
}

function VerificaCPF(campo) {
	
	var s = campo.value;
	var varFirstChr = s.charAt(0);
	var vaCharCPF = false;

	for ( var i=0; i<=10; i++ ) { 
		var c = s.charAt(i)
         if (s.charAt(i) < "0" || s.charAt(i) > "9")
		 { 
		alert("CPF inválido! Preencha o CPF utilizando apenas os números." );
		campo.value="";
		campo.focus();
		return false;
	     } 
             if( c!=varFirstChr ) vaCharCPF = true; 
	} 

        if( !vaCharCPF ) { 
		alert("CPF inválido!");
		campo.value="";
		campo.focus();
		return false;
        } 	

	soma=0;
	for ( i=0; i<9; i++ ) { 
		soma += (10-i) * ( eval(s.charAt(i)) );	
	} 
	digito_verificador = 11-(soma % 11);
	if ( (soma % 11) < 2 ) digito_verificador = 0;
	if ( eval(s.charAt(9)) != digito_verificador ) {
		alert("CPF inválido!" );
		campo.value="";
		campo.focus();
		return false;
	} 
	soma=0;
	for ( i=0; i<9; i++ ) {
		soma += (11-i) * ( eval(s.charAt(i)) ); 
	}
	soma += 2 * ( eval(s.charAt(9)) );
	digito_verificador = 11-(soma % 11);
	if ( (soma % 11) < 2 ) digito_verificador = 0;
	if ( eval(s.charAt(10)) != digito_verificador ) { 
		alert("CPF inválido!" ); 
		campo.value="";
		campo.focus();
		return false; 
	} 
	
	return true;

}

function FormataData(e,campo) {
	var CodCaracter = (window.Event) ? e.which : e.keyCode;
	var Caracter = String.fromCharCode(CodCaracter);
	var tamanho = campo.value.length;
	var Numeros = "0123456789";
	var AchouNumero = true;
	
	for (i=0;i<Numeros.length;i++)
		if (Caracter!=Numeros.charAt(i)) {
			AchouNumero = false;
			break;
		}
	
	if (trim(Caracter)=="")
		return false;
	
	if (tamanho==2)
		if (!AchouNumero) campo.value = campo.value.substr(0, 2)+"/";
	
	if (tamanho==5)
		if (!AchouNumero) campo.value = campo.value.substr(0, 5)+"/";
	
	if (!isNaN(Caracter))
		return true;
	else
		return false;
}

function VerificaData(data) {
	var tamanho = data.value.length;
	
	if (trim(data.value)=="") {
		alert("Você deve digitar uma data!")
		data.value = "";
		data.focus();
		return false;
	}
	
	if (tamanho<10) {
		alert("Data Incompleta!");
		data.select();
		data.focus();
		return false;
	}
		
	var dia = parseFloat(data.value.substr(0,2));
	var mes = parseFloat(data.value.substr(3,2));
	var ano = parseFloat(data.value.substr(6,4));
		
	if ((mes>12 || mes<1) || (dia>31 || dia<1)) {
		alert("Data Inválida!");
		data.select();
		data.focus();
		return false;
	}
	
	if (ano%4==0)
		dfev = 29;
	else
		dfev = 28;
		
	switch(mes) {
		case 1:
			dias = 31;
			break;
		case 2:
			dias = dfev;
			break;
		case 3:
			dias = 31;
			break;
		case 4:
			dias = 30;
			break;
		case 5:
			dias = 31;
			break;
		case 6:
			dias = 30;
			break;
		case 7:
			dias = 31;
			break;
		case 8:
			dias = 31;
			break;
		case 9:
			dias = 30;
			break;
		case 10:
			dias = 31;
			break;
		case 11:
			dias = 30;
			break;
		case 12:
			dias = 31;
			break;
	}
	
	if (dia>dias) {
		alert("Data Inválida!");
		data.select();
		data.focus();
		return false;
	}
	
	return true;
}

function trim(string) {
	var str = string.replace(/^\s*/, "");
	str = str.replace(/\s*$/, "");
	return str;
}

function FormataNumero(e,campo) {
	 var CodCaracter = (window.Event) ? e.which : e.keyCode;
	 var Caracter = String.fromCharCode(CodCaracter);
	 var tamanho = campo.value.length;
	 var Numeros = "0123456789,";
	 var AchouNumero = true;
	 
	 for (i=0;i<Numeros.length;i++)
	  if (Caracter!=Numeros.charAt(i)) {
	   AchouNumero = false;
	   break;
	  }
	 
	 if (trim(Caracter)=="")
	  return false;
	  
	 if (!isNaN(Caracter))
	  return true;
	 else
	  return false;
}



//******************************************************************************************
//**** FUNCAO QUE FORMATA CPF														    ****
//**** Variáveis: 								                                        ****
//**** CAMPO -> qual o campo do formulario												****
//**** TAMMAX -> qual o TAMANHO MÁXIMO DO CAMPO											****
//**** teclapres -> qual a tecla prescionada											****
//******************************************************************************************
function FormataCpf(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "-", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){	tam = tam - 1 ; }
		
	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
		if ( tam <= 2 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + '-' + vr.substr( tam - 2, tam ) ;}
	}		
}

//******************************************************************************************
//**** FUNCAO QUE VERIFICA SE CPF É VALIDO											    ****
//**** Variáveis: 								                                        ****
//**** CPF -> qual o CPF a ser verificado												****
//******************************************************************************************
function Verifica_CPF(cpf) {
	s = cpf;
	if (s == "") {

		alert("Por favor, forneça o seu cpf.");
		document.login.login.focus();
		return false;

	}

	var varFirstChr = s.charAt(0);
	var vaCharCPF = false;

	for ( var i=0; i<=10; i++ ) { 
		var c = s.charAt(i)
         if (s.charAt(i) < "0" || s.charAt(i) > "9")
		 { 
		alert("CPF inválido! Preencha o CPF utilizando apenas os números." );
		document.login.login.value="";
		document.login.login.focus();
		return false;
	     } 
             if( c!=varFirstChr ) vaCharCPF = true; 
	} 

        if( !vaCharCPF ) { 
		alert("CPF inválido!");
		document.login.login.value="";
		document.login.login.focus();
		return false;
        } 	

	soma=0;
	for ( i=0; i<9; i++ ) { 
		soma += (10-i) * ( eval(s.charAt(i)) );	
	} 
	digito_verificador = 11-(soma % 11);
	if ( (soma % 11) < 2 ) digito_verificador = 0;
	if ( eval(s.charAt(9)) != digito_verificador ) {
		alert("CPF inválido!" );
		document.login.login.value="";
		document.login.login.focus();
		return false;
	} 
	soma=0;
	for ( i=0; i<9; i++ ) {
		soma += (11-i) * ( eval(s.charAt(i)) ); 
	}
	soma += 2 * ( eval(s.charAt(9)) );
	digito_verificador = 11-(soma % 11);
	if ( (soma % 11) < 2 ) digito_verificador = 0;
	if ( eval(s.charAt(10)) != digito_verificador ) { 
		alert("CPF inválido!" ); 
		document.login.login.value="";
		document.login.login.focus();
		return false; 
	} 
	
	return true;

}

function formataCNPJ(campo, teclapres) {

	var tecla = teclapres.keyCode;
	var vr = new String(campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace("/", "");
	vr = vr.replace("-", "");
	tam = vr.length + 1;
	if (tecla != 14)
	{
		if (tam == 3)
			campo.value = vr.substr(0, 2) + '.';
		if (tam == 6)
			campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 5) + '.';
		if (tam == 10)
			campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/';
		if (tam == 15)
			campo.value = vr.substr(0, 2) + '.' + vr.substr(2, 3) + '.' + vr.substr(6, 3) + '/' + vr.substr(9, 4) + '-' + vr.substr(13, 2);
	}
}



//******************************************************************************************
//**** FUNCAO QUE LIMPA OS PONTOS E TRACOS DO CPF/CNPJ								    ****
//**** Variáveis: 								                                        ****
//**** VAL -> qual o CNPJ/CPF a ser verificado											****
//**** TIPOCAD -> qual o tipo a ser verificado											****
//******************************************************************************************
function limpaCpfCnpj(val, tipoCad) {
	var s = val;
	var meuVal = "";
	var tamanho = s.length;
	
	if (tipoCad=="J"){
		if (tamanho != 18) {
			alert("CNPJ errado!");
			document.login.login.value="";
			document.login.login.focus();
			return false;
		}
	}
	else {
		//alert(tamanho);
		if (tamanho != 14) {
			alert("CPF errado!");
			document.login.login.value="";
			document.login.login.focus();
			return false;
		}
	}	
	for ( var i=0; i<=tamanho; i++ ) { 
		 var c = s.charAt(i);
         if (s.charAt(i) >= "0" && s.charAt(i) <= "9")
			meuVal +=  s.charAt(i);           
	} 

	if (tipoCad=="J")
		if (Verifica_CNPJ(meuVal))
			return true;
		else
			return false;
	else
		if (Verifica_CPF(meuVal))
			return true;
		else
			return false;
}

function CheckString(Item, StringOK, StringMust, Nome)
{
  var CheckStr = Item.value;
  var StrValid = true;
  
  // Testa StringOK
  for (i = 0;  i < CheckStr.length;  ++i) {
    for (j = 0;  j < StringOK.length;  ++j)
      if (CheckStr.charAt(i) == StringOK.charAt(j))
        break;
    if (j == StringOK.length) {
      StrValid = false;
      break;
    }
  }
 
  if (!StrValid) {
    alert("O campo \"" + Nome + "\" contém caracteres inválidos.");
    Item.focus();
    return(true);
  }
 
  // Testa StringMust
  for (i = 0; i < StringMust.length; ++i) {
    for (j = 0; j < CheckStr.length; ++j)
      if (StringMust.charAt(i) == CheckStr.charAt(j))
        break;
    if (j == CheckStr.length) {
      StrValid = false;
      break;
    }
  }
  
  if (!StrValid) {
    alert("O campo \"" + Nome + "\" não é válido.");
    Item.focus();
    return(true);
  }

} // end CheckString

function CheckLen(Item, Menor, Maior, Nome)
{
  if (Item.value.length < Menor) {
    alert("O campo \"" + Nome + "\" deve ter no mínimo " + Menor + " caracteres.");
    Item.focus();
    return(true);
  }

  if (Item.value.length > Maior) {
    alert("O campo \"" + Nome + "\" deve ter no máximo " + Maior + " caracteres.");
    Item.focus();
    return(true);
  }
} // end CheckLen

//******************************************************************
//**** FUNCAO QUE MUDA O VALOR PARA FORMATO DE MOEDA BRASILEIRA ****
//**** Variáveis: sNumero (Valor a ser modificado)              ****
//******************************************************************
function BrazilianFloatNumber(sNumero)
{
	if (sNumero != "")
	{
		var ponto = /\./;
		var virgula = /\,/;
		sNumero = sNumero.replace(ponto, "");
		sNumero = sNumero.replace(virgula, ".");
		return parseFloat(sNumero);
	}
	else
		return "";
}

//******************************************************************
//**** FUNCAO QUE MUDA O VALOR DE "FLOAT" PARA TEXTO (FORMATA)  ****
//**** Variáveis: fNumero (Valor a ser modificado)              ****
//******************************************************************
function FloatToString(fNumber)
{
	var ponto = /\./;
	var sFinal = new String(fNumber.toString());
	var pontoPos = sFinal.search(ponto);
	if (pontoPos != -1) {
		sFinal = sFinal.substr(0, pontoPos + 5);
	}
	sFinal = sFinal.replace(ponto, ",");
	sFinal = casaDecimal(sFinal);
	return sFinal;
}

//******************************************************************
//**** FUNCAO QUE COLOCA 4 ZEROS APÓS A VIRGULA                 ****
//**** Variáveis: fNumero (Valor a ser modificado)              ****
//******************************************************************
function casaDecimal(fNumber)
{
	var virgula = /\,/;
	var sFinal = new String(fNumber.toString());
	var Pos = sFinal.search(virgula);
	var i = 0;
	if (Pos != -1) {
		sTamFinal = sFinal.length;
		sTamanho = sFinal.substr(Pos, sTamFinal - Pos);
		tamanho = sTamanho.length;
		//alert(sTamanho);
		//if (tamanho == 2)
		for (i = tamanho; i < 3; i++)
			fNumber = fNumber + '0';
	}
	else {
		if (fNumber != "")
			fNumber = fNumber + ',00';
		
	}

	return fNumber;
}
