	var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');

	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";
		var 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";
		var num = FilterValue(Number);
		var tamNumber = Number.length
		var 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){
		var Dia = Date.substring(0,2);
		var Mes = Date.substring(3,5);
		var 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){
		var Hora = Time.substring(0,2);
		var 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){
		var Hora = Time.substring(0,2);
		var Minuto = Time.substring(3,5);
		var 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){
		var 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 ForceSubmit(objControlToSubmit, e)
	{
	    var key = window.event ? event.keyCode : e.which;

	    if(key==13)
	    {
	        if(window.event)
	        {
	            window.event.keyCode = 0;
	            window.event.returnValue = 0;
	            objControlToSubmit.click();
	        }
	        else
	        {
	            objControlToSubmit.click();
	        }
	    }
	}
	
	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);
		var vr = field.value;
		var 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);
		var vr = field.value;
		var 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 FormatDateHour(field,e)
	{
        var key = window.event ? event.keyCode : e.which; if(key==32 || key==46){}

		field.value = FilterFieldValue(field);
		var vr = field.value;
		var tam = vr.length;

		if( tam > 2 && tam < 5 )
			field.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		else if( tam >= 5 && tam <= 8 ) 
			field.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
		else if( tam > 8 && tam <= 10 ) 
			field.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ) + ' ' + vr.substr( 8, 2  );
	    else if( tam > 10)
			field.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ) + ' ' + vr.substr( 8, 2  ) + ':' + vr.substr( 10, 2 );
	}

    function LZ(x) {return(x<0||x>9?"":"0")+x}
	
    function FormatDateValue(date,format) {
	    format=format+"";
	    var result="";
	    var i_format=0;
	    var c="";
	    var token="";
	    var y=date.getYear()+"";
	    var M=date.getMonth()+1;
	    var d=date.getDate();
	    var E=date.getDay();
	    var H=date.getHours();
	    var m=date.getMinutes();
	    var s=date.getSeconds();
	    var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	    // Convert real date parts into formatted versions
	    var value=new Object();
	    if (y.length < 4) {y=""+(y-0+1900);}
	    value["y"]=""+y;
	    value["yyyy"]=y;
	    value["yy"]=y.substring(2,4);
	    value["M"]=M;
	    value["MM"]=LZ(M);
	    value["MMM"]=MONTH_NAMES[M-1];
	    value["NNN"]=MONTH_NAMES[M+11];
	    value["d"]=d;
	    value["dd"]=LZ(d);
	    value["E"]=DAY_NAMES[E+7];
	    value["EE"]=DAY_NAMES[E];
	    value["H"]=H;
	    value["HH"]=LZ(H);
	    if (H==0){value["h"]=12;}
	    else if (H>12){value["h"]=H-12;}
	    else {value["h"]=H;}
	    value["hh"]=LZ(value["h"]);
	    if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	    value["k"]=H+1;
	    value["KK"]=LZ(value["K"]);
	    value["kk"]=LZ(value["k"]);
	    if (H > 11) { value["a"]="PM"; }
	    else { value["a"]="AM"; }
	    value["m"]=m;
	    value["mm"]=LZ(m);
	    value["s"]=s;
	    value["ss"]=LZ(s);
	    while (i_format < format.length) {
		    c=format.charAt(i_format);
		    token="";
		    while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			    token += format.charAt(i_format++);
			    }
		    if (value[token] != null) { result=result + value[token]; }
		    else { result=result + token; }
		    }
	    return result;
	}
	
	function FormatDocument(field){
	    if(field.value.length <= 14)
		    FormatCPF(field);
	    else
		    FormatCNPJ(field);
    }

	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);
		var vr = field.value;
		var 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);
		var vr = field.value;
		var 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);
		var vr = field.value;
		var 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);
		var 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);
		var 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){
		var 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){
		var varDate1 = Date1.substring(6,10) + Date1.substring(3,5) + Date1.substring(0,2);
		var varDate2 = Date2.substring(6,10) + Date2.substring(3,5) + Date2.substring(0,2);

		if(parseFloat(varDate1) < parseFloat(varDate2))
			return(true);
		else
			return(false);
	}
	
	function SuggestDateHour(field,e)
	{
        var key = window.event ? event.keyCode : e.which; if(key==8 || key==37 || key==39 || key==46){return false;}
	    var now = new Date();
	    var strDateReference = FormatDateValue(now, 'dd/MM/yyyy HH:mm');
	    var strDateSuggested = "";
    
        field.value = FilterFieldValue(field);
		vr = field.value;
		tam = vr.length;

		switch(parseInt(tam))
		{
		    case 1: case 2:
		        if(parseFloat(vr) == 0)
		        {
		            strDateSuggested = vr + strDateReference.substring(tam,16);
		        }
		        else if(parseFloat(vr) > 0 && parseFloat(vr) < 10)
		        {
		            strDateSuggested = "0" + parseFloat(vr).toString() + strDateReference.substring(2,16);
		        }
		        else 
		        {
		            strDateSuggested = parseFloat(vr).toString() + strDateReference.substring(2,16);
		            
		            if(!IsDate(strDateSuggested))
		            {
		                field.value = strDateReference;
		            }
		            else
		            {
		                field.value = strDateSuggested;
		            }
		        }
		        break;

		    case 3: case 4:
		        Dia = vr.substring(0,2);
		        Mes = vr.substring(2,4);

		        if(parseFloat(Mes) == 0)
		        {
		            strDateSuggested = Dia + strDateReference.substring(2,16);
		        }
		        else if(parseFloat(Mes) > 0 && parseFloat(Mes) < 10)
		        {
		            strDateSuggested = Dia + "/0" + parseFloat(Mes) + strDateReference.substring(5,16);
		        }
		        else 
		        {
		            strDateSuggested = Dia + '/' + parseFloat(Mes) + strDateReference.substring(5,16);
		            
		            if(!IsDate(strDateSuggested))
		            {
		                field.value = strDateReference;
		            }
		            else
		            {
		                field.value = strDateSuggested;
		            }
		        }
		        break;
		     
		     case 5: case 6: case 7: case 8:
		     	Dia = vr.substring(0,2);
		        Mes = vr.substring(2,4);
		        Ano = vr.substring(4,8);

		        if(parseFloat(Ano) == 0)
		        {
		            strDateSuggested = Dia + '/' + Mes + strDateReference.substring(5,16);
		        }
		        else if(parseFloat(Ano) > 0 && parseFloat(Ano) < 10)
		        {
		            strDateSuggested = Dia + '/' + Mes + '/000' + parseFloat(Ano).toString() + strDateReference.substring(10,16);
		        }
		        else if(parseFloat(Ano) > 9 && parseFloat(Ano) < 100)
		        {
		            strDateSuggested = Dia + '/' + Mes + '/00' + parseFloat(Ano).toString() + strDateReference.substring(10,16);
		        }
		        else if(parseFloat(Ano) > 99 && parseFloat(Ano) < 1000)
		        {
		            strDateSuggested = Dia + '/' + Mes + '/0' + parseFloat(Ano).toString() + strDateReference.substring(10,16);
		        }
		        else 
		        {
		            strDateSuggested = Dia + '/' + Mes + '/' + parseFloat(Ano) + strDateReference.substring(10,16);
		        }
		        break;
		        
		     case 9: case 10:
		     	Dia = vr.substring(0,2);
		        Mes = vr.substring(2,4);
		        Ano = vr.substring(4,8);
		        Hora = vr.substring(8,10);

                if(parseInt(Hora) == 0)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' 0' + strDateReference.substring(12,16);
                }
                else
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + strDateReference.substring(13,16);
                }
                break;
                
            case 11: case 12:
		     	Dia = vr.substring(0,2);
		        Mes = vr.substring(2,4);
		        Ano = vr.substring(4,8);
		        Hora = vr.substring(8,10);
		        Minuto = vr.substring(10,12);

                if(parseInt(Minuto) == 0)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + ':00';
                }
                else if(parseInt(Minuto) > 0 && parseInt(Minuto) < 6)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + ':' + parseInt(Minuto).toString() + '0';
                }
                else if(parseInt(Minuto) > 5 && parseInt(Minuto) < 10)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + ':0' + parseInt(Minuto).toString();
                }
                else if(parseInt(Minuto) > 9 && parseInt(Minuto) < 60)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + ':' + parseInt(Minuto).toString();
                }
                else if(parseInt(Minuto) > 59)
                {
                    strDateSuggested = Dia + '/' + Mes + '/' + Ano + ' ' + Hora + strDateReference.substring(13,16);
                }
                break;

            default:
                tam = 0;
                break;
		}

        if(tam > 0)
        {
            if(!IsDate(strDateSuggested.substring(0, 10)) && !IsTime(strDateSuggested.substring(11, 16)))
            {
                field.value = strDateReference;
            }
            else if(IsDate(strDateSuggested.substring(0, 10)) && !IsTime(strDateSuggested.substring(11, 16)))
            {
                field.value = strDateSuggested.substring(0, 10) + ' ' + strDateReference.substring(11, 16);
            }
            else if(!IsDate(strDateSuggested.substring(0, 10)) && IsTime(strDateSuggested.substring(11, 16)))
            {
                field.value = strDateReference.substring(0, 10) + ' ' + strDateSuggested.substring(11, 16);
            }
            else
            {
                field.value = strDateSuggested;
            }
        }
        else
        {
            field.value = "";
        }
	}
	
    function ValidateFloat(field, decimalFormat)
    {
	    var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
	    var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;

	    var Valor = field.value;
    	
	    if(Valor != '')
	    {
		    if(decimalFormat == 'BR')
		    {
    		
			    if(!reDecimalPt.test(Valor))
			    {
				    alert('O valor deve ser um número decimal válido !');
				    field.value = '';
				    field.focus();
			    }
		    }
		    else
		    {
			    if(!reDecimalEn.test(Valor))
			    {
				    alert('O valor deve ser um número decimal válido !');
				    field.value = '';
				    field.focus();
			    }
		    }
	    }
    }
    
    function ValidateValue(field, decimais, decimalformat) {
	    switch(decimalformat){
		    case "BR":
			    if(decimais > 0){decimal = ","}else{decimal = "";};
			    milhar  = ".";
			    //return /(^\d{1,3}(.\d{3})*|\d{1,3}),(\d{4})$/.test( field.value )
			    alert( /(\d{1,3}(\.\d{3})*|\d{1,3}),(\d{4})$/.test( "1111,0000" ) );
			    returnValue = false;
			    break;

		    case "US":
			    if(decimais > 0){decimal = "."}else{decimal = "";};
			    milhar  = ",";
			    break;
	    }
    }