/* Zeros a esquerda - StrZero(valor,zeros) */
function StrZero(Numero,Qtde){
	var nCod = ''
	for(i=1;i<=Qtde;i++){
		nCod = nCod + '0';
	}
	var nRetorno = nCod + Numero;
	nRetorno = nRetorno.substr(nRetorno.length - Qtde,Qtde);
    return nRetorno;
}

/* Funcao Valida Data no evento onBlur */
function ValidaData(field) {

	if (field==''){
		return '';
	}
	var checkstr = '0123456789';
	var DateField = field;
	var DateValue = '';
	var DateTemp = '';
	var seperator = '/';
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	DateValue = DateField.value;
	
	/* Deletando todos os caracteres exceto o 0..9 */
	for ( i = 0; i < DateValue.length; i++ ) {
		if ( checkstr.indexOf(DateValue.substr(i,1)) >= 0 ) {
			DateTemp = DateTemp + DateValue.substr(i,1);
		} //if
	} //Fim do for
	DateValue = DateTemp;
	/* Exectutando a data para 8 digitos - string*/
	/* if entrada do ano com 2-digitos / exemplo 20xx */
	if ( DateValue.length == 6 ) {
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	} //if
	if ( DateValue.length != 8 ) {
		err = 19;
	} //if
	/* Se o ano for errado = 0000 */
	year = DateValue.substr(4,4);
	if ( year == 0 ) {
		err = 20;
	}
	month = DateValue.substr(2,2);
	if ( ( month < 1 ) || ( month > 12 ) ) {
		err = 21;
	} //if
	/* Validando o dia*/
	day = DateValue.substr(0,2);
	if ( day < 1 ) {
		err = 22;
	} //if
	/* Validando ano Bissexto / fevereiro / dia */
	if ( ( ( year % 4 ) == 0 ) || ( ( year % 100 ) == 0 ) || ( ( year % 400 ) == 0 ) ) {
		leap = 1;
	} //if
	if ( ( month == 2 ) && ( leap == 1 ) && ( day > 29 ) ) {
		err = 23;
	} //if
	if ( ( month == 2 ) && ( leap != 1 ) && ( day > 28 ) ) {
		err = 24;
	} //if
	/* Validando o mês */
	if ( ( day > 31 ) && ( ( month == "01" ) || ( month == "03" ) || ( month == "05" ) || ( month == "07" ) || ( month == "08" ) || ( month == "10" ) || ( month == "12" ) ) ) {
		err = 25;
	} //if
	if ( ( day > 30 ) && ( ( month == "04" ) || ( month == "06" ) || ( month == "09" ) || ( month == "11" ) ) ) {
		err = 26;
	} //if
	/* if 00 houvendo entrada, sem erros */
	if ( ( day == 0 ) && ( month == 0 ) && ( year == 00 ) ) {
		err = 0;
		day = '';
		month = '';
		year = '';
		seperator = '';
	} //if
	/* if sem erros, escrevo a data completa no Input-Field (e.x. 13/12/2001) */
	if ( err == 0 ) {
		DateField.value = day + seperator + month + seperator + year;
	} //if
	/* Mensagem de erro if err != 0 */
	else {
		alert('Atenção, a data está incorreta!');
		DateField.select();
		DateField.focus();
	} //Fim do else
}

// Funcao Máscara
function Mascara(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
}

// Para formatar campos numericos 
// incluir no HTML da pagina a TAG (logo apos a ultima tag <LINK>): <script src="Scripts/MaskCurrency.js"></script> 
// incluir nas textbox o seguinte: onkeypress="return(currencyFormat(this,'',',',event));" 
// parametros passados: fld= é o campo / milSep=separador de milhar / decSep=separador decimal, e é o codigo de evendo do JavaScript (é uma constante)

function FormataDecimais(fld, milSep, decSep, casas, 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; // Entra
	key = String.fromCharCode(whichCode); // Comece o valor chave do codigo chave
	if (strCheck.indexOf(key) == -1) return false; // Chave invalida
	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 = '';

	// Suporte a número de casas decimais dinamico. 
	if (len <= casas && len != 0){	
		
		var r = casas - len;
		var k = 0;
		var d = '';
		for(k = 0; k < r;k++){
			d = d + '0';
		}
		fld.value = '0'+ decSep + d + aux;
	}
	if (len > casas) {
		aux2 = '';
		for (j = 0, i = len - casas - 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);

		if(casas!=0)
			fld.value += decSep + aux.substr(len - casas, len);
	}
	return false;
}

function FormatoDataSAP(Data){
	if (Data.trim!=''){
        strData = Data.split("/");
        FormatoDataSAP = strData[2];
        if (parseInt(strData[1])< 10){
			FormatoDataSAP = FormatoDataSAP + '0' + strData[1];
        }
        else{
			FormatoDataSAP = FormatoDataSAP + strData[1];
        }
        if (parseInt(strData[0])< 10){
			FormatoDataSAP = FormatoDataSAP + '0' + strData[0];
        }
        else{
			FormatoDataSAP = FormatoDataSAP + strData[0];
        }
    }
    else{
		FormatoDataSAP = '';   
    }
	return false;
}

function Trim(texto) {
	var tmp = "";
	var item_length = texto.length;
	var item_length_minus_1 = texto.length - 1;
	for (index = 0; index < item_length; index++){
		if (texto.charAt(index) != ' ') {
			tmp += texto.charAt(index);
		} 
		else{
			if (tmp.length > 0){
				if (texto.charAt(index+1) != ' ' && index != item_length_minus_1){
					tmp += texto.charAt(index);
				}
			}
		}
	}
	texto = tmp;
	return texto;
}

function ComparaData(pdata1, pdata2){
	dia = pdata1.substr(0,2);
	mes = pdata1.substr(3,2);
	ano = pdata1.substr(6,4);
	pdata1 = Date.UTC(ano,mes,dia);
  
	dia = pdata2.substr(0,2);
	mes = pdata2.substr(3,2);
	ano = pdata2.substr(6,4);
	pdata2 = Date.UTC(ano,mes,dia);
   
	if (pdata1 > pdata2){
		return false;
	}
	else{
		return true;
	}
}

function ValidaFormatoDataDetalhado(campo){
	var anobisexto = false;
	var arrDiaMes = new Array();
	if (campo.length == 10 && campo.indexOf('/') == 2 && campo.indexOf('/',3) == 5){
	   if (campo.substr(0,2) < 10){
		dia = campo.substr(1,1);
	   }
	   else{
		dia = campo.substr(0,2);
	   }
	   mes = campo.substr(3,2);
	   ano = campo.substr(6,4);
	   if (!isNaN(dia) && dia > 0 && dia <= 31 && !isNaN(mes) && mes > 0 && mes <= 12 && !isNaN(ano) && ano > 0){
	       arrDiaMes[0] = '';
	       arrDiaMes[1] = 31;
	       if (ano % 4 == 0){
			   arrDiaMes[2] = 29;     
	       }
	       else{
			   arrDiaMes[2] = 28;     
	       }
	       arrDiaMes[3] = 31;
	       arrDiaMes[4] = 30;
	       arrDiaMes[5] = 31;
	       arrDiaMes[6] = 30;
	       arrDiaMes[7] = 31;
	       arrDiaMes[8] = 31;
	       arrDiaMes[9] = 30;
	       arrDiaMes[10] = 31;
	       arrDiaMes[11] = 30;
	       arrDiaMes[12] = 31;
	       if (dia > arrDiaMes[mes]){
			   return false;
	       }else{
			   return true;
	       }
	   }
	   else{
		return false;
	   }
	}
	else{
	    return false;
	}
}

function ValidaCPF(CPF){
	var cpf_alfa;
	var fator;
	var i;
	var x;
	var x1;
	var y1;
	var ctr1_cpf;
	var ctr2_cpf;
	
	try {
		if ( CPF.length > 11 ){
			return false;
		}

		cpf_alfa = CPF;
		x = 0;
		x1 = 0;
		y1 = 0;
		fator = 11;

		for (i=0;i<9;i++){
			x = cpf_alfa.substr(i, 1);
			fator = fator - 1;
			x1 = x1 + (x * fator);
		}

		i = parseInt(x1 / 11);
		i = x1 - (11 * i);
		ctr1_cpf = 11 - i;

		if (ctr1_cpf > 9){
			ctr1_cpf = 0;
		}

		fator = 12;
		for (i=0;i<10;i++){
			x = cpf_alfa.substr(i, 1);
			fator = fator - 1;
			y1 = y1 + (x * fator);
		}

		i = parseInt(y1 / 11);
		i = y1 - (11 * i);
		ctr2_cpf = 11 - i;

		if (ctr2_cpf > 9){
			ctr2_cpf = 0;
		}

		x1 = cpf_alfa.substr(9, 1);
		y1 = cpf_alfa.substr(10, 1);

		if (x1!=ctr1_cpf || y1 != ctr2_cpf){
			alert('CPF Invalido!');
			return false;
		}
		else{
		// antes de retornar verificar se o numero não é todo igual ( ABSURDO )
			var tudoigual;
			var primeiroCaracter;
			tudoigual = 1;	//0=false - 1=true  - pessimista
			primeiroCaracter = CPF.substr(0, 1);
			for (i=1;i<9;i++)
			{
				if( primeiroCaracter != CPF.substr(i, 1) )
				{
					tudoigual = 0;	//0=false - 1=true
				}
			}
			if (tudoigual == 1 )
			{
				alert('CPF Invalido!');
				return false;
			}
			else
			{
				return true;
			}
		}
	}
	catch(err){
		return false
	}
}

function ValidaCnpj(Cnpj){

	if (Cnpj==''){
		return false;
	}
	
	var Cnpj_Alfa;
	var i;
	var x;
	var x1;
	var x2;
	var y1;
	var y2;
	var ctr1_Cnpj;
	var ctr2_Cnpj;
	try{
		if (Cnpj.length > 14 || Cnpj.length < 1){
			alert('Cnpj Invalido!');
			return false;
		}
		x1 = 0;
		x2 = 0;
		y1 = 0;
		y2 = 0;
		
		Cnpj_Alfa = Cnpj;

		for (i=0;i<12;i++){
			x = Cnpj_Alfa.substr(i, 1);
			if (i < 4){
				x1 = x1 + (x * (5 - i));
			}
			else{
				x2 = x2 + (x * (13 - i));
			}
		}

		for (i=0;i<13;i++){
			x = Cnpj_Alfa.substr(i, 1)
			if (i < 5){
				y1 = y1 + (x * (6 - i));
			}
			else{
				y2 = y2 + (x * (14 - i));
			}
		}
		
		i = parseInt((x1 + x2) / 11);
		ctr1_Cnpj = x1 + x2 - (i * 11);
		
		i = parseInt((y1 + y2) / 11);
		ctr2_Cnpj = y1 + y2 - (i * 11);
		
		ctr1_Cnpj = 11 - ctr1_Cnpj;
		
		if (ctr1_Cnpj > 9){
			ctr1_Cnpj = 0;
		}
		ctr2_Cnpj = 11 - ctr2_Cnpj;
		
		if (ctr2_Cnpj > 9){
			ctr2_Cnpj = 0;
		}
		
		x1 = Cnpj_Alfa.substr(12, 1);
		x2 = Cnpj_Alfa.substr(13, 1);
		
		if (x1 != ctr1_Cnpj || x2 != ctr2_Cnpj){
			alert('Cnpj Invalido!');
			return false;
		}
		else{
			return true;
		}
	}
	catch(err){
		alert('Cnpj Invalido!');
		return false;
	}
}

function ValidaEmail(campo){
	var email = campo.value;
	if (isNaN(email.substr(0,1)) && email.indexOf('@') > 0){
		if (email.indexOf('@',(email.indexOf('@')+1))==-1){
			PosicaoArroba = email.indexOf('@');
				if (email.indexOf('.',PosicaoArroba) > -1 && (email.indexOf('.',PosicaoArroba) < (email.length-1))){
					return true;
				}else{
					return false;
				}
		}
		else{
			return false;
		}
	}
	else{
		return false;
	}
}

//  Função abreeCPF - usado na home como ícone do eCPF
function abreeCPF(){
	var strEndereco;
	var strPaginaAtual;
	
	strEndereco = document.location.href;
	strEndereco = strEndereco.replace('.br', '');
	intPosicaoCaracter = strEndereco.indexOf('/');
	
	if (strEndereco.substr(strEndereco.length-1,1) == '/'){
		strEndereco = strEndereco +	'Certificacao/Validaecpf.aspx';
	}
	else{
		while(intPosicaoCaracter!=-1){
			if (strEndereco.indexOf('/',intPosicaoCaracter+1) != -1){
				intPosicaoCaracter = strEndereco.indexOf('/',intPosicaoCaracter+1);
			}
			else{
				break;
			}
		}
		strPaginaAtual = document.location.href.substr(intPosicaoCaracter+1,document.location.href.length);
		strEndereco = strEndereco.replace(strPaginaAtual,'Certificacao/Validaecpf.aspx');
	}
	if (strEndereco.indexOf('https') == -1){
		strEndereco = strEndereco.replace('http','https');
	}
	
	window.location.href = strEndereco;
	
}

function ValidaPlaca(Placa){
	strPlaca = Placa.value.toUpperCase();
	strLetras = "ABCDEFGHIJKLMNOPQRSTUWVXYZ";
	strNumeros = "1234567890"
	
	if (strPlaca.length<7){
		return false;
	}	
	try{
		for(i=0;i<=strPlaca.length;i++){
			if (i<3){
				if(strLetras.indexOf(strPlaca.charAt(i))==-1){
					alert('Placa Inválida');
					Placa.select();
					Placa.focus();
				}
			}
			else{
				if(strNumeros.indexOf(strPlaca.charAt(i))==-1){
					alert('Placa Inválida');
					Placa.select();
					Placa.focus();
				}
			}
		}
	}
	catch(err){
		alert('Placa Inválida');
		Placa.select();
		Placa.focus();
	}
}

function MarcaDesmarca(Grid, CheckBox, Filho, IDPagina){

//<INPUT class="text" id="cbxNaoPosicionados" onclick="MarcaDesmarca('dtgNaoPosicionados',this,'cbxItensNaoPosicionados','SOLIC_POSIC')" type="checkbox">
//<INPUT class="text" id="cbxPosicionados" onclick="MarcaDesmarca('dtgPosicionados',this,'cbxItensPosicionados','SOLIC_POSIC')" type="checkbox">
	var alias = 'document.Form1'+IDPagina+'_';
	var Estado = CheckBox.checked;
	var DataGrid = document.getElementById(IDPagina+'_'+Grid);
			
/*	Contador=1;
	if (Estado==true){
		for (i=0; i<alias+Filho.length; i++){
			alias+Filho[i].checked=true;
		}
	}
	else{
		for (i=0; i<alias+Filho.length; i++){
			alias+Filho[i].checked=false;
		}
	} */
}

