
	function IsEmail(Email){
		var blnInvalidos = false;
		var cp = "";
		var invalidos = "ÁÀÃÂÄÇÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜáàãâäçéèêëíìîïóòõôöúùûü`´^~¨'\"#$%¨&*()-_+={}[]<>:;?!,/|";
		var obrigatorios = "@."

		tam = Email.length;

		for (i = 0; i < tam ; i++) {  
			if(invalidos.indexOf(Email.substring(i,i + 1))!=-1){
				blnInvalidos = true;
			}
		}

		if(blnInvalidos)
			return false;

		if(Email.indexOf("@")==-1)
			return false;

		if(Email.indexOf(".")==-1)
			return false;

		return true;
	}
	
	function IsNumber(Number){
		var validos = "0123456789";
		tam = Number.length;

		if(Number=="")
			return false;

		for (i = 0; i < tam ; i++) {  
			if(validos.indexOf(Number.substring(i,i + 1))==-1){
			 	return false;}
		}

		return(true)
	}
	
	function IsMoney(Number){
		var validos = "0123456789";
		num = FilterValue(Number);
		tamNumber = Number.length
		tam = num.length;

		if(Number.charAt(tamNumber-3)=='.'){
			for (i = 0; i < tam ; i++) {
				if(validos.indexOf(num.substring(i,i + 1))==-1){
			 		return false;}
			}
		}
		else{
			return(false);
		}

		return(true)
	}

	function IsDate(Date){
		Dia = Date.substring(0,2);
		Mes = Date.substring(3,5);
		Ano = Date.substring(6,10);
		UltDia = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	
		/* Se o primeiro é numero */
		if(IsNumber(Dia))
			if(IsNumber(Mes))
				if(Date.charAt(2)=="/")
					if(parseFloat(Mes) > 0 && parseFloat(Mes) < 13)
						if(parseFloat(Dia) > 0 && parseFloat(Dia) <= UltDia[parseFloat(Mes)-1])
							if(Date.charAt(5)=="/")
								if(parseFloat(Ano) >= 0)
									return(true);
								else
									return(false);
							else
								return(false);
						else
							return(false);
					else
						return(false);
				else
					return(false);
		else
			return(false);
	}
	
	function IsTime(Time){
		Hora = Time.substring(0,2);
		Minuto = Time.substring(3,5);
	
		if(IsNumber(Hora) && parseInt(Hora) >= 0 && parseInt(Hora) < 24)
			if(IsNumber(Minuto) && parseInt(Minuto) >= 0 && parseInt(Minuto) < 60)
				return(true);
			else
				return(false);
		else
			return(false);
	}
	
	function IsTimeComplete(Time){
		Hora = Time.substring(0,2);
		Minuto = Time.substring(3,5);
		Segundo = Time.substring(6,8);
	
		if(IsNumber(Hora) && parseInt(Hora) >= 0 && parseInt(Hora) < 24)
			if(IsNumber(Minuto) && parseInt(Minuto) >= 0 && parseInt(Minuto) < 60)
				if(IsNumber(Segundo) && parseInt(Segundo) >= 0 && parseInt(Segundo) < 60)
					return(true);
				else
					return(false);
			else
				return(false);
		else
			return(false);
	}
	
	function IsCPF(CPF){
		var varCPF="";
		var indSoma, varSoma, varDigito1, varvarDigito2;
		
		varCPF = FilterValue(CPF);
		
		if(varCPF.length != 11)
			return(false);
      
		/* Evitar que o 00000000000 passe pelo teste */
		if(CPF == "00000000000")
			return(false);

		/* Verificar o primeiro digito */
		varSoma = 0;
  
		for(indSoma=0; indSoma<=8; indSoma++){varSoma = varSoma + (parseInt(varCPF.charAt(indSoma))*(indSoma+1));}
  
		/* Obter o resto da divisao da soma com 11 */
		varDigito1 = varSoma % 11;
  
		/* Caso seja 10, deve-se transformar para 0 */
		if(varDigito1 == 10) 
			varDigito1 = 0;

		/* Verificar o segundo digito */
		varSoma = 0;
  
		for(indSoma=0; indSoma<=7; indSoma++){varSoma = varSoma + (parseInt(varCPF.charAt(indSoma+1))*(indSoma+1));}

		varSoma = varSoma + (varDigito1*9);

		/* Obter o resto da divisao da soma com 11 */
		varDigito2 = varSoma % 11;

		/* Caso seja 10, deve-se transformar para 0 */
		if(varDigito2 == 10){varDigito2 = 0;}
		
		/* Fazer a validacao dos digitos com os digitos verificadores do CPF */
		if(varDigito1 == parseInt(varCPF.charAt(9)) && varDigito2 == parseInt(varCPF.charAt(10))){return(true);}
	
		return(false);
	}
	
	function IsCNPJ(CNPJ){
		var varCNPJ="";
		var indSoma, varSoma, varDigito1, varDigito2;

		varCNPJ = FilterValue(CNPJ);
   
		/* Validar o tamanho */
		if(varCNPJ.length != 14)
			return(false);  
  
		/* Verificar o primeiro digito */
		varSoma = 0;
		varMult = 5;

		for(indSoma=0; indSoma<12; indSoma++){
			if(varMult==1){varMult=9};
			varSoma += parseInt(varCNPJ.charAt(indSoma))*varMult;
			varMult -= 1;
		}	
		 
		varDigito1 = varSoma % 11;
  
		if(varDigito1 <= 1){varDigito1 = 0;}else{varDigito1 = 11 - varDigito1;}

		/* Verificar o segundo digito */
		varSoma = 0;
		varMult = 6;

		for(indSoma=0; indSoma<12; indSoma++){
			if(varMult==1){varMult=9};
			varSoma += parseInt(varCNPJ.charAt(indSoma))*varMult;
			varMult -= 1;
		}	

		varSoma += varDigito1*2;
		varDigito2 = varSoma % 11;

		if(varDigito2 <= 1){varDigito2 = 0;}else{varDigito2 = 11 - varDigito2;}

		/* Fazer a validacao dos digitos com os digitos verificadores do CNPJ */
		if(parseInt(varCNPJ.charAt(12)) == varDigito1 && parseInt(varCNPJ.charAt(13)) == varDigito2){return(true)};

		return(false);
	}
	
	function IsCEPUf(varUf, varCep){
		varCepFiltrado = FilterValue(varCep);

		var varCepParc = varCepFiltrado.substring(0, 3);


		if( varUf.length == 0 || varCepParc == 0 )
			return false;

		switch ( varUf ){
			case 'AC':
				if( varCepParc == 699 ) bOk = true; else bOk = false;
				break;

			case 'AL':
				if( varCepParc >= 570 && varCepParc <= 579 ) bOk = true; else bOk = false;
				break;

			case 'AM':
				if( (varCepParc >= 690 && varCepParc <= 692) || (varCepParc >= 694 && varCepParc <= 698) ) bOk = true; else bOk = false;
				break;

			case 'AP':
				if( varCepParc == 689 ) bOk = true; else bOk = false;
				break;

			case 'BA':
				if( varCepParc >= 400 && varCepParc <= 489 ) bOk = true; else bOk = false;
				break;

			case 'CE':
				if( varCepParc >= 600 && varCepParc <= 639 ) bOk = true; else bOk = false;
				break;

			case 'DF':
				if( (varCepParc >= 700 && varCepParc <= 727) || (varCepParc >= 730 && varCepParc <= 736) ) bOk = true; else bOk = false;
				break;

			case 'ES':
				if( varCepParc >= 290 && varCepParc <= 299 ) bOk = true; else bOk = false;
				break;

			case 'GO':
				if( (varCepParc >= 728 && varCepParc <= 729) || (varCepParc >= 737 && varCepParc <= 769) ) bOk = true; else bOk = false;
				break;

			case 'MA':
				if( varCepParc >= 650 && varCepParc <= 659 ) bOk = true; else bOk = false;
				break;

			case 'MG':
				if( varCepParc >= 300 && varCepParc <= 399 ) bOk = true; else bOk = false;
				break;

			case 'MS':
				if( varCepParc >= 790 && varCepParc <= 799 ) bOk = true; else bOk = false;
				break;

			case 'MT':
				if( varCepParc >= 780 && varCepParc <= 788 ) bOk = true; else bOk = false;
				break;

			case 'PA':
				if( varCepParc >= 660 && varCepParc <= 688 ) bOk = true; else bOk = false;
				break;

			case 'PB':
				if( varCepParc >= 580 && varCepParc <= 589 ) bOk = true; else bOk = false;
				break;

			case 'PE':
				if( varCepParc >= 500 && varCepParc <= 569 ) bOk = true; else bOk = false;
				break;

			case 'PI':
				if( varCepParc >= 640 && varCepParc <= 649 ) bOk = true; else bOk = false;
				break;

			case 'PR':
				if( varCepParc >= 800 && varCepParc <= 879 ) bOk = true; else bOk = false;
				break;

			case 'RJ':
				if( varCepParc >= 200 && varCepParc <= 289 ) bOk = true; else bOk = false;
				break;

			case 'RN':
				if( varCepParc >= 590 && varCepParc <= 599 ) bOk = true; else bOk = false;
				break;

			case 'RO':
				if( varCepParc == 789 ) bOk = true; else bOk = false;
				break;

			case 'RR':
				if( varCepParc == 693 ) bOk = true; else bOk = false;
				break;

			case 'RS':
				if( varCepParc >= 900 && varCepParc <= 999 ) bOk = true; else bOk = false;
				break;

			case 'SC':
				if( varCepParc >= 880 && varCepParc <= 899 ) bOk = true; else bOk = false;
				break;

			case 'SE':
				if( varCepParc >= 490 && varCepParc <= 499 ) bOk = true; else bOk = false;
				break;

			case 'SP':
				if( varCepParc >= 10 && varCepParc <= 199 ) bOk = true; else bOk = false;
				break;

			case 'TO':
				if( varCepParc >= 770 && varCepParc <= 779 ) bOk = true; else bOk = false;
				break;
		}

		if( bOk == false )
			return false;

		return true;
	}

	function CheckFieldSize(field, quantidade){
		if(parseInt(field.value.length) > parseInt(quantidade)){
			//window.alert("Este field deve conter até " + quantidade + " caracteres!");
			field.value = field.value.substring(0, parseInt(quantidade)-1);
			field.focus();
		}
	}

	function FilterFieldValue(field){
		var s = "";
		var cp = "";
		var invalidos = "AÁÀÃÂÄBCÇDEÉÈÊËFGHIÍÌÎÏJKLMNOÓÒÕÔÖPQRSTUÚÙÛÜVWXYZaáàãâäbcçdeéèêëfghiíìîïjklmnoóòõôöpqrstuúùûüvwxyz`´^~¨'\"@#$%¨&*()-_+={}[]<>:;?,./| ";

		vr = field.value;
		tam = vr.length;
		for (i = 0; i < tam ; i++) {  
			if(invalidos.indexOf(vr.substring(i,i + 1))==-1){
			 	s = s + vr.substring(i,i + 1);}
		}
		field.value = s;
		return cp = field.value
	}
	
    function FilterPhoneValue(value)
    {
		var s = "";
		var cp = "";
		var invalidos = "AÁÀÃÂÄBCÇDEÉÈÊËFGHIÍÌÎÏJKLMNOÓÒÕÔÖPQRSTUÚÙÛÜVWXYZaáàãâäbcçdeéèêëfghiíìîïjklmnoóòõôöpqrstuúùûüvwxyz`´^~¨'\"@#$%¨&*()-_={}[]<>:;?,./|";

		vr = value;
		tam = vr.length;
		for (i = 0; i < tam ; i++) {  
			if(invalidos.indexOf(vr.substring(i,i + 1))==-1){
			 	s = s + vr.substring(i,i + 1);}
		}
		return s;
    }

	function FilterPassword(field){
		var s = "";
		var cp = "";
		var invalidos = "ÁÀÃÂÄÇÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜáàãâäçéèêëíìîïóòõôöúùûü`´^~¨'\"@#$%¨&*()-_+={}[]<>:;?,./|";

		vr = field.value;
		tam = vr.length;
		for (i = 0; i < tam ; i++) {  
			if(invalidos.indexOf(vr.substring(i,i + 1))==-1){
			 	s = s + vr.substring(i,i + 1);}
		}
		field.value = s;
		return cp = field.value
	}
	
	function FilterValue(Valor){
		var s = "";
		var cp = "";
		var invalidos = "AÁÀÃÂÄBCÇDEÉÈÊËFGHIÍÌÎÏJKLMNOÓÒÕÔÖPQRSTUÚÙÛÜVWXYZaáàãâäbcçdeéèêëfghiíìîïjklmnoóòõôöpqrstuúùûüvwxyz`´^~¨'\"@#$%¨&*()-_+={}[]<>:;?,./|";

		vr = Valor;
		tam = vr.length;
		for (i = 0; i < tam ; i++) {  
			if(invalidos.indexOf(vr.substring(i,i + 1))==-1){
			 	s = s + vr.substring(i,i + 1);}
		}

		return s
	}
	
	function FormatValue(field, decimais, decimalformat,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		FilterFieldValue(field);

		field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		switch(decimalformat){
			case "BR":
				if(decimais > 0){decimal = ","}else{decimal = "";};
				milhar  = ".";
				break;

			case "US":
				if(decimais > 0){decimal = "."}else{decimal = "";};
				milhar  = ",";
				break;
		}

		if( tam <= decimais ){ 
	 		field.value = vr ; }
	 	if( (tam > decimais) && (tam <= decimais+3) ){
	 		field.value = vr.substr( 0, tam - decimais ) + decimal + vr.substr( tam - decimais, tam ) ; }
	 	if( (tam >= decimais+4) && (tam <= decimais+6) ){
	 		field.value = vr.substr( 0, tam - decimais - 3 ) + milhar + vr.substr( tam - decimais - 3, 3 ) + decimal + vr.substr( tam - decimais, tam ) ; }
	 	if( (tam >= decimais+7) && (tam <= decimais+9) ){
	 		field.value = vr.substr( 0, tam - decimais - 6  ) + milhar + vr.substr( tam - decimais - 6, 3 ) + milhar + vr.substr( tam - decimais - 3, 3 ) + decimal + vr.substr( tam - decimais, tam ) ; }
	 	if( (tam >= decimais+10) && (tam <= decimais+12) ){
	 		field.value = vr.substr( 0, tam - decimais - 9 ) + milhar + vr.substr( tam - decimais - 9, 3 ) + milhar + vr.substr( tam - decimais - 6, 3 ) + milhar + vr.substr( tam - decimais - 3, 3 ) + decimal + vr.substr( tam - decimais, tam ) ; }
	 	if( (tam >= decimais+13) && (tam <= decimais+15) ){
	 		field.value = vr.substr( 0, tam - decimais - 12 ) + milhar + vr.substr( tam - decimais - 12, 3 ) + milhar + vr.substr( tam - decimais - 9, 3 ) + milhar + vr.substr( tam - decimais - 6, 3 ) + milhar + vr.substr( tam - decimais - 3, 3 ) + decimal + vr.substr( tam - decimais, tam ) ; }
		return;
	}

	function FormatDate(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		if( tam > 2 && tam < 5 )
			field.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if( tam >= 5 && tam <= 10 ) 
			field.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}
	
	function FormatHour(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		if( tam > 2 && tam < 5 )
			field.value = vr.substr( 0, tam - 2  ) + ':' + vr.substr( tam - 2, tam );
	}
	
	function FormatFullHour(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		if( tam > 2 && tam < 5 )
			field.value = vr.substr( 0, tam - 2  ) + ':' + vr.substr( tam - 2, tam );
		if( tam >= 5 && tam <= 8 ) 
			field.value = vr.substr( 0, 2 ) + ':' + vr.substr( 2, 2 ) + ':' + vr.substr( 4, 2 ); 
	}
	
	function FormatZipCode(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		if( tam <= 5 )
			field.value = vr;
		if( tam > 5 && tam <= 8 ) 
			field.value = vr.substr( 0, 2 ) + vr.substr( 2, 3 ) + '-' + vr.substr( 5, 3 ); 
	}
	
	function FormatCNPJ(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;

		if( vr.length >= 2 && vr.length < 5 )
			field.value = vr.substr( 0, 2  ) + '.' + vr.substr( 2, vr.length-2 );
		if( vr.length >= 5 && vr.length < 8 )
			field.value = vr.substr( 0, 2  ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, vr.length-5 );
		if( vr.length >= 9 && vr.length < 12 )
			field.value = vr.substr( 0, 2  ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, vr.length-8 );
		if( vr.length > 12 )
			field.value = vr.substr( 0, 2  ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr( 12, vr.length-2 );
	}
	
	function FormatCPF(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}

		field.value = FilterFieldValue(field);
		vr = field.value;

		if( vr.length >=3 && vr.length < 6 )
			field.value = vr.substr( 0, 3  ) + '.' + vr.substr( 3, vr.length-3 );
		if( vr.length >=6 && vr.length < 9 )
			field.value = vr.substr( 0, 3  ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, vr.length-6 );
		if( vr.length > 9 )
			field.value = vr.substr( 0, 3  ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, vr.length-9 );
	}
	
	function FormatTelephone(field,e) {
	    var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}
        var plus = (field.value.charAt(0) == '+');

		if(plus)
		{
		    field.value = FilterPhoneValue(field.value);
		}
		else
		{
		    field.value = FilterFieldValue(field);
		    vr = field.value;
		    tam = vr.length;

		    if( tam > 2 && tam <= 5 && vr.substr( 0, 1 ) != '0')
			    field.value = '(' + vr.substr( 0, tam - 2  ) + ')' + vr.substr( tam - 2, tam );
		    if( tam >= 6 && tam <= 9 && vr.substr( 0, 1 ) != '0') 
			    field.value = '(' + vr.substr( 0, 2 ) + ')' + vr.substr( 2, 3 ) + '-' + vr.substr( 5, 4 ); 
		    if( tam == 10 && vr.substr( 0, 1 ) != '0')
			    field.value = '(' + vr.substr( 0, 2 ) + ')' + vr.substr( 2, 4 ) + '-' + vr.substr( 6, 4 ); 
		    if( tam == 10 && vr.substr( 0, 1 ) == '0')
			    field.value = vr.substr( 0, 4 ) + ' ' + vr.substr( 4, 2 ) + ' ' + vr.substr( 6, 2 ) + ' ' + vr.substr( 8, 2 ); 
		    if( tam == 11 && vr.substr( 0, 1 ) == '0' && vr.charAt(2) != '0')
			    field.value = '(' + vr.substr( 0, 3 ) + ')' + vr.substr( 3, 4 ) + '-' + vr.substr( 7, 4 ); 
		    if( tam == 11 && vr.substr( 0, 1 ) == '0' && vr.charAt(2) == '0')
			    field.value = vr.substr( 0, 4 ) + ' ' + vr.substr( 4, 3 ) + ' ' + vr.substr( 7, 2 ) + ' ' + vr.substr( 9, 2 ); 
		}
	}

	/* formatador de String */
	function RemoveBlankSpace(varString){
		i = 0;

		//Realizar um LeftTrim
		while(varString.charAt(i)==" "){
			i = i + 1;
		}
		varNewString = varString.substring(i,varString.length);
		
		i = varNewString.length;
		
		//Realizar um RightTrim
		while(varNewString.charAt(i-1)==" "){
			i = i - 1;
		}

		return(varNewString.substring(0,i));
	}

	function ReturnDateDifference(Date1, Date2){
		varDate1 = Date1.substring(6,10) + Date1.substring(3,5) + Date1.substring(0,2);
		varDate2 = Date2.substring(6,10) + Date2.substring(3,5) + Date2.substring(0,2);

		if(parseFloat(varDate1) < parseFloat(varDate2))
			return(true);
		else
			return(false);
	}