function LostDate(){}
function ChangeDate(){}

var tipo_impressao;
var VarWindowAguarde = null;

function Valida_Fone(campo)
{
	var aux = new String(campo.value);
	campo.value = "";

	for (i = 0; i < aux.length; i++)
	{
		if (aux.charCodeAt(i) >= 48 && aux.charCodeAt(i) <= 57)
			campo.value = campo.value + aux.charAt(i);
	}
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789,";	//Considerando "," para decimal - ignorando "."
   var IsNumber=true;
   var Char, count = 0;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (Char == ",")
		count += 1;
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
   }
   if (count > 1)
	IsNumber = false;
   return IsNumber;
}

function IsInteger(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
   }
   return IsNumber;
}

function IsMoney(sText)
{
   var ValidChars = "0123456789,.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
   }
   return IsNumber;
}

function IsAlfabeto(sText)
{
   var ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";	//.
   var IsOK=true;
   var Char;

   sText = sText.toUpperCase();
   for (i = 0; i < sText.length && IsOK == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsOK = false;
   }
   return IsOK;
   
}

function IsAlphaNumber(sText)
{
   var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var IsOK=true;
   var Char;

   sText = sText.toUpperCase();
   for (i = 0; i < sText.length && IsOK == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsOK = false;
   }
   return IsOK;
}

	function ValidaEmail(email) 
	{
		var posicao_antes = email.indexOf("@")
		var posicao_depois = email.charAt(posicao_antes+1)
		if ((posicao_antes <= 0) || (posicao_depois == "")) {
			return false;
		}
		posicao_antes = email.indexOf(".")
		posicao_depois = email.charAt(posicao_antes+1)
		if ((posicao_antes <= 0) || (posicao_depois == "")) {
			return false;
		}
		return true
	}

	function ValidaHora(form,campo)
	{		
		var hr = document.forms[form].elements[campo].value;						
		hr = hr.replace('-','');
		
		if (!IsNumeric(form,campo))
		{
			return false;		
		}		
		else if (hr.length < 3)
		{
			return false;			
		} 
		else if (hr.indexOf(':') == -1)
		{
			return false
		}
		else
		{
			var hora    = hr.substring( 0 , hr.indexOf(':') );
			var minu    = hr.substring( hr.indexOf(':') +1 , hr.length );
			hora		= '0' + hora;
			minu		= '0' + minu;
			hora		= hora.substring( hora.length - 2, hora.length);
			minu		= minu.substring( minu.length - 2, minu.length);					
			
			if ( hora > 24 )
			{
				return false;	
			}
			
			if ( hora + minu > 2400 )
			{
				return false;	
			}
			else
			{
				if (hora + minu == 2400)
				{
					document.forms[form].elements[campo].value = '00:00';				
				}	
				else				
				{
					document.forms[form].elements[campo].value = hora + ':' + minu;			
				}	
				return true;		
			}			
		}
	}
	
	function Trim( str ) 
	{
		var resultStr = "";	
		resultStr = TrimLeft(str);
		resultStr = TrimRight(resultStr);	
		return resultStr;
	} 

	function TrimLeft( str ) 
	{
		var resultStr = "";
		var i = len = 0;

		if (str+"" == "undefined" || str == null)	
			return null;

		str += "";

		if (str.length == 0) 
			resultStr = "";
		else 
		{	
			len = str.length;					
	  		while ((i <= len) && (str.charAt(i) == " "))
				i++;
	  		resultStr = str.substring(i, len);
	  	}
				
	  	return resultStr;
	} 
		

	function TrimRight( str ) {
		var resultStr = "";
		var i = 0;

		if (str+"" == "undefined" || str == null)	
			return null;
		str += "";
			
		if (str.length == 0) 
			resultStr = "";
		else 
		{
	  		i = str.length - 1;
	  		while ((i >= 0) && (str.charAt(i) == " "))
	 			i--;			 		
		  		resultStr = str.substring(0, i + 1);
	 	} 	
	 	return resultStr;  	
	} 	
	
	function AbreWin(url, w, h) 
	{
		x = eval((screen.width - w)/2);
		y = eval((screen.height - h)/2);
		window.open (url, "msg", "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,marginwidth=" + x + ",marginheight=" + y + ",resizable=no,left=" + x + ",top=" + y + ",width=" + w + ",height=" + h);
	}

	
	function SaltaCampo(campo,prox,tammax,teclapres,form)
	{
		var tecla = teclapres.keyCode;
		vr = document.forms[form].elements[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( ".", "" );		 	
		tam = vr.length;	
					
		if (tecla != 0 && tecla != 9 && tecla != 16 )
			if ( tam == tammax )	
				document.forms[form].elements[prox].focus();	
	}	

	function RetiraZeroDireita(valor)
	{		
		for (i=0; i < valor.length; i++)
		{
			if (String(valor.substring(0,1)) == '0')
			{					
				valor = valor.substring(1,valor.length);
			} 
			else
			{
				break;
			}
		}		
		return valor;		
	}

function chkdate(objName) 
{
	var strDatestyle = "BR"; //United States date style
	//var strDatestyle = "BR"; //European date style
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	//var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	//strDate = datefield.value;
	strDate = objName;
	if (strDate.length <1) {
	return true;
	}
	for (intElementNr = 0; intElementNr <strSeparatorArray.length;
	intElementNr++) {
	if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
	strDateArray = strDate.split(strSeparatorArray[intElementNr]);
	if (strDateArray.length != 3) {
	err = 1;
	return false;
	}
	else {
	strDay = strDateArray[0];
	strMonth = strDateArray[1];
	strYear = strDateArray[2];
	}
	booFound = true;
	}
	}
	if (booFound == false) {
	if (strDate.length>5) {
	strDay = strDate.substr(2);
	strMonth = strDate.substr(2);
	strYear = strDate.substr(4);
	}
	}
	if (strYear.length == 2) {
	strYear = '20' + strYear;
	}
	// US style
	if (strDatestyle == "BR") {
	strTemp = strDay;
	strDay = strDay;
	strMonth = strMonth;

	}
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
	err = 2;
	return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
	for (i = 0;i<12;i++) {
	if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
	intMonth = i+1;
	strMonth = strMonthArray[i];
	i = 12;
	}
	}
	if (isNaN(intMonth)) {
	err = 3;
	return false;
	}
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
	err = 4;
	return false;
	}
	if (intMonth>12 || intMonth<1) {
	err = 5;
	return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 ||
	intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday
	<1)) {
	err = 6;
	return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) &&
	(intday > 30 || intday <1)) {
	err = 7;
	return false;
	}
	if (intMonth == 2) {
	if (intday <1) {
	err = 8;
	return false;
	}
	if (LeapYear(intYear) == true) {
	if (intday > 29) {
	err = 9;
	return false;
	}
	}
	else {
	if (intday > 28) {
	err = 10;
	return false;
	}
	}
	}
	if (strDatestyle == "BR") {
	//datefield.value = Strday + "/ " + StrMonth + "/" + strYear;
	strDate = strDay + "/ " + strMonth + "/" + strYear;
	}
	else {
	//datefield.value = Strday + "/ " + StrMonth + "/" + strYear;
	strDate = strDay + "/ " + StrMonth + "/" + strYear;
	}
	return true;
	}
	function LeapYear(intYear) {
	if (intYear % 100 == 0) {
	if (intYear % 400 == 0) { return true; }
	}
	else {
	if ((intYear % 4) == 0) { return true; }
	}
	return false;
	}
	function doDateCheck(from, to) {
	if (Date.parse(from.value) <= Date.parse(to.value)) {
	alert("The dates are valid.");
	}
	else {
	if (from.value == "" || to.value == "") 
	alert("Both dates must be entered.");
	else 
	alert("To date must occur after the from date.");
	}
}

function Verifica_Marquina_Login(informar)
{
	try
	{
		var obj_file = new ActiveXObject("Scripting.FileSystemObject");
		var Pasta_win
	
		Pasta_win = obj_file.GetSpecialFolder(1); //System Folder
	
		if (obj_file.FileExists(Pasta_win + "\\MPC32.DLL"))
			return true;
		else
		{
			if (informar)
				alert("Esse computador não é válido para bater o ponto!");
			return false;
		}
	}
	catch(e)
	{
		if (informar)
			alert("Esse computador não é válido para bater o ponto!");
		return false;
	}
}

function Verifica_Aguarde()
{
	if (VarWindowAguarde == "[object]")
		return true
	else
		return false
}
function Fechar_Aguarde()
{
	VarWindowAguarde.window.close();
	VarWindowAguarde = null;
}
function Abrir_Aguarde()
{
	if (parent.Verifica_Aguarde())
		Fechar_Aguarde();

	v_params = 'dialogWidth:150px;dialogHeight:100px;';
	pai = self;
	VarWindowAguarde = window.showModelessDialog('aguarde.asp', pai, v_params+'center:yes;status:no;scroll:no;help:no;resizable:yes')
}


function limpa_string(S)
{
	// Deixa so' os digitos no numero
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)
	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0) 
			temp=temp + digito
	}
	return temp
}

function valida_CPF(s) {
	var i;

	if (!IsInteger(s))
		return false;

	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
		d1 += c.charAt(i)*(10-i);

    if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
		return false;

	d1 *= 2;
	for (i = 0; i < 9; i++)
		d1 += c.charAt(i)*(11-i);
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
		return false;

	var caracteres_iguais = true;
	var inicial = s.substr(0,1);
	for (i = 1; i < 11; i++)
	{
		if (inicial != s.substr(i, 1))
			caracteres_iguais = false;
	}

    if (!caracteres_iguais)
		return true;
	else
		return false;
}

function valida_CNPJ(s)
{
	var i;

	if (!IsInteger(s))
		return false;

	s = limpa_string(s);

	//Para Internacional
	if (s == "00000000000000")
		return true;
	
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
		d1 += c.charAt(11-i)*(2+(i % 8));

    if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
		return false;
 
	d1 *= 2;
	for (i = 0; i < 12; i++)
		d1 += c.charAt(11-i)*(2+((i+1) % 8));

	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
		return false;

	return true;
}

function Formata_CNPJ_CPF(valor)
{
	var aux_valor = new String(valor);
	var valor_final = "";
	if (aux_valor.length == 11)
	{
		valor_final = aux_valor.substr(0, 3) + ".";
		valor_final += aux_valor.substr(3, 3) + ".";
		valor_final += aux_valor.substr(6, 3) + "-";
		valor_final += aux_valor.substr(9, 2);
	}
	else
	{
		valor_final = aux_valor.substr(0, 2) + ".";
		valor_final += aux_valor.substr(2, 3) + ".";
		valor_final += aux_valor.substr(5, 3) + "/";
		valor_final += aux_valor.substr(8, 4) + "-";
		valor_final += aux_valor.substr(12, 2);
	}
	return valor_final;
}

function Atualiza_Tam(CampoTam, CampoTeste, DivExibe)
{
	document.getElementById(DivExibe).innerHTML = document.forms[0].item(CampoTam).value - document.forms[0].item(CampoTeste).value.length
}

function ColocaPontos(Num)
{
	var i = 0; j = 0;
	var Num_Aux = new Array();
	var Num_Aux2 = new Array();

	Num = Num.toString();
	if (Num != "")
	{
		for (i=Num.length-1;i>=0;i--)
			Num_Aux2[j++] = Num.substr(i,1);

		j = 0;
		for (i=0;i<=(Num_Aux2.length);i++)
		{
			if ((i%3)==0 && i > 0 && i < Num_Aux2.length)
			{
				Num_Aux[j] = ".";
				Num_Aux[j+1] = Num_Aux2[i];
				j++;
			}
			else
				Num_Aux[j] = Num_Aux2[i];
			j++;
		}
		Num_Aux = Num_Aux.reverse();
		Num = Num_Aux.toString();
		Num = Num.replace(/,/g,"");
	}
	return (Num);
}

function FormataNumero(Num, Tam, Pontos)
{
	var Inteiro, Decimal, Casas1, Casas2, Mudou;
		
	if (Tam == 3)
	{
		Casas1 = "00";
		Casas2 = "000";
	}
	else
	{
		if (Tam == 2)
		{
			Casas1 = "0";
			Casas2 = "00";
		}
		else
		{
			Casas1 = "";
			Casas2 = "0";
		}
	}

	if (Num != "")
	{
		Num += "";
		if (Num.indexOf(".") != -1)
		{
			Inteiro = Num.substring(0,Num.indexOf("."));
			Decimal = Num.substring((Num.indexOf(".")+1));
			if (Inteiro != "" && Decimal != "")
				if (Decimal.length > 1)
				{
					if (Tam == 3 && Decimal.length == 2)
					{
						if (Pontos)
							Num = ColocaPontos(Inteiro) + "," + Decimal.substring(0,Tam) + "0";
						else
							Num = Inteiro + "," + Decimal.substring(0,Tam) + "0";
					}
					else
					{
						if (Decimal.length > Tam)
						{
							Decimal = Round_Decimal(Decimal, Tam);
							if (parseFloat(Decimal) < 0)
							{
								Inteiro = parseFloat(Inteiro) + 1
								if (Tam == 2)
									Decimal = "00";//Math.abs(Decimal).toString();
								else
									Decimal = "0";
							}
						}
						if (Pontos)
							Num = ColocaPontos(Inteiro) + "," + Decimal.substring(0,Tam);
						else
							Num = Inteiro + "," + Decimal.substring(0,Tam);
					}
				}
				else
					if (Pontos)
						Num = ColocaPontos(Inteiro) + "," + Decimal + Casas1;
					else
						Num = Inteiro + "," + Decimal + Casas1;
			else
				if (Inteiro != "")
					if (Pontos)
						Num = ColocaPontos(Inteiro) + "," + Casas2;
					else
						Num = Inteiro + "," + Casas2;
				else
					if (Decimal.length > 1)
						if (Tam == 3 && Decimal.length == 2)
							Num = "0," + Decimal.substring(0,Tam) + "0";
						else
							Num = "0," + Decimal.substring(0,Tam);
					else
						Num = "0," + Decimal + Casas1;
		}
		else
		{
			if (Num.length > 1)
			{
				if (Pontos)
					Num = ColocaPontos(Num) + "," + Casas2;
				else
					Num = Num + "," + Casas2;
			}
			else
				Num = Num + "," + Casas2;
		}
		return (Num);
	}
	else
		return "0," + Casas2;
}

function Round_Decimal(Num, Casas)
{
 var verificar = false;
 var aux = "";
 Num = Num.substring(0,Casas) + "." + Num.substring(Casas,Num.length);
 //Para verificar se deverá somar + 1 ao inteiro -> 64.999
 aux_inteiro = parseFloat(Num.substring(0,Casas));

 if (Num.substring(0, Casas - 1) == "0")
  verificar = true;
 aux = Num.substring(1, Casas);
 Num = Math.round(parseFloat(Num));
 Num = Num.toString();
 if (verificar)
 {
  if (Num.substring(0, Casas - 1) != "1" || aux == "1")
   Num = "0" + Num;
  else
   if (Num.substring(0, Casas - 1) == "1" && aux == "0")
    Num = "0" + Num;
 }

 if (aux_inteiro > parseFloat(Num.substring(0,Casas)))
 {
	aux_Num = parseFloat(Num) * (-1);
	Num = aux_Num.toString();
 }
 return Num;
}


/****** INICIO Formatar Número (DIGITAÇÃO) *************/

var vlrOriginal = new String();
var vlrAlterado = new String();
var temSinalNegativo = false;
var regexp_virgula = new RegExp(/,/g);
var regexp_ponto = new RegExp(/\./g);

//Casas -> Somente 2, 3 ou 0 casas
//PermiteNegativo -> Se aceita número negativo (-)
//vl_Default -> Valor Default, para 0 casas (Ex. Se deixa 0 ou vazio)
function Mask(Casas, PermiteNegativo, ColocaPonto, vl_Default)
{
	//Se tem maxLength
	if (window.event.keyCode != 8)
	{
		if (window.event.srcElement.maxLength != '2147483647')
		{
			if (window.event.srcElement.maxLength == window.event.srcElement.value.length)
			{
				window.event.returnValue = 0;
				return false;
			}
		}
	}
	temSinalNegativo = false;
	switch(window.event.keyCode)
	{
		case 9: break;
		case 46:    //Delete
			window.event.returnValue = 0;
			break;
		case 37: case 39: //Seta direita e Seta esquerda
			window.event.returnValue = 0;
			break;
			
		case 8: //backspace
			vlrOriginal = window.event.srcElement.value
			if (vlrOriginal.substr(0, 1) == "-")
				temSinalNegativo = true;
			vlrOriginal = vlrOriginal.replace("-", "");
			if (Casas == 2)
			{
				switch(vlrOriginal.length)
				{
					case 4:
						vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
						vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
						if (parseFloat(vlrOriginal.substr(0,1)) != 0)
						{
							vlrOriginal = "0," + vlrOriginal.substr(0,1) + vlrOriginal.substr(2,1);
							if (temSinalNegativo)
								vlrOriginal = "-" + vlrOriginal;
							window.event.srcElement.value = vlrOriginal;
						}
						else
						{
							if (parseFloat(vlrOriginal.substr(0,3)) != 0)
							{
								vlrOriginal = "0,0" + vlrOriginal.substr(2,1);
								if (temSinalNegativo)
									vlrOriginal = "-" + vlrOriginal;
								window.event.srcElement.value = vlrOriginal;
							}
							else
								window.event.srcElement.value = "0,00";
						}
						window.event.returnValue = 0;
						break;
					default:
						vlrOriginal = vlrOriginal.substr(0, (vlrOriginal.length - 1));
						ProcessaString(Casas, ColocaPonto);
						window.event.returnValue = 0;
						break;
				}
			}
			else
			{
				if (Casas == 3)
				{
					switch(vlrOriginal.length)
					{
						case 5:
							vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
							vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
							if (parseFloat(vlrOriginal.substr(0,1)) != 0)
							{
								vlrOriginal = "0," + vlrOriginal.substr(0,1) + vlrOriginal.substr(2,2);
								if (temSinalNegativo)
									vlrOriginal = "-" + vlrOriginal;
								window.event.srcElement.value = vlrOriginal;
							}
							else
							{
								if (parseFloat(vlrOriginal.substr(0,3)) != 0)
								{
									vlrOriginal = "0,0" + vlrOriginal.substr(2,2);
									if (temSinalNegativo)
										vlrOriginal = "-" + vlrOriginal;
									window.event.srcElement.value = vlrOriginal;
								}
								else
								{
									if (parseFloat(vlrOriginal.substr(0,4)) != 0)
									{
										vlrOriginal = "0,00" + vlrOriginal.substr(3,1);
										if (temSinalNegativo)
											vlrOriginal = "-" + vlrOriginal;
										window.event.srcElement.value = vlrOriginal;
									}
									else
										window.event.srcElement.value = "0,000";
								}
							}
							window.event.returnValue = 0;
							break;
						default:
							vlrOriginal = vlrOriginal.substr(0, (vlrOriginal.length - 1));
							ProcessaString(Casas, ColocaPonto);
							window.event.returnValue = 0;
							break;
					}
				}
				else //0 casas
				{
					if (vlrOriginal.length > 0)
					{
						vlrOriginal = vlrOriginal.substr(0, (vlrOriginal.length - 1));
						ProcessaString(Casas, ColocaPonto);
						window.event.returnValue = 0;
						break;
					}
					else
						window.event.srcElement.value = vl_Default;
				}
			}
			break;
		case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57:
			vlrOriginal = window.event.srcElement.value;
			if (vlrOriginal.substr(0, 1) == "-")
				temSinalNegativo = true;
			vlrOriginal = vlrOriginal.replace("-", "");
			DoMask(Casas, ColocaPonto);
			window.event.returnValue = 0;
			break;
		case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105:
			vlrOriginal = window.event.srcElement.value;
			if (vlrOriginal.substr(0, 1) == "-")
				temSinalNegativo = true;
			vlrOriginal = vlrOriginal.replace("-", "");
			window.event.keyCode = window.event.keyCode - 48;
			DoMask(Casas, ColocaPonto);
			window.event.returnValue = 0;
			break;
		case 109: case 189: //- sinal negativo
			if (PermiteNegativo)
			{
				vlrOriginal = window.event.srcElement.value;
				vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
				vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
				if (parseFloat(vlrOriginal) != 0)
				{
					if (vlrOriginal.substr(0,1) != "-")
					{
						vlrOriginal = "-" + vlrOriginal
						ProcessaString(Casas, ColocaPonto);
						window.event.srcElement.value = vlrOriginal;
					}
				}
			}
			window.event.returnValue = 0;
			break;
		default:
			window.event.returnValue = 0;
			break;
	}
}

function DoMask(Casas, ColocaPonto)
{
	if (Casas == 2)
	{
		switch(vlrOriginal.length)
		{
			case 4:
				vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
				vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
				if (parseFloat(vlrOriginal) == 0)
				{
					vlrOriginal = "0,0" + String.fromCharCode(window.event.keyCode);
					if (temSinalNegativo)
						vlrOriginal = "-" + vlrOriginal;
					window.event.srcElement.value = vlrOriginal;
				}
				else
				{
					if (parseFloat(vlrOriginal.substr(0,3)) == 0)
					{
						vlrOriginal = "0," + vlrOriginal.substr(vlrOriginal.length - 1, 1) + String.fromCharCode(window.event.keyCode);
						if (temSinalNegativo)
							vlrOriginal = "-" + vlrOriginal;
						window.event.srcElement.value = vlrOriginal;
					}
					else
					{
						if (parseFloat(vlrOriginal.substr(0,1)) == 0)
						{
							vlrOriginal = vlrOriginal.substr(2,1) + "," + vlrOriginal.substr(vlrOriginal.length - 1, 1) + String.fromCharCode(window.event.keyCode);
							if (temSinalNegativo)
								vlrOriginal = "-" + vlrOriginal;
							window.event.srcElement.value = vlrOriginal;
						}
						else
						{
							vlrOriginal = vlrOriginal + String.fromCharCode(window.event.keyCode);
							ProcessaString(Casas, ColocaPonto);
						}
					}
				}
				break;
			default:
				if (vlrOriginal.length <= window.event.srcElement.maxLength)
				{
					vlrOriginal = vlrOriginal + String.fromCharCode(window.event.keyCode);
					ProcessaString(Casas, ColocaPonto);
				}
				break;
		}
	}
	else
	{
		if (Casas == 0 && !ColocaPonto)
		{
			vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
			vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
			if (vlrOriginal.length <= window.event.srcElement.maxLength)
			{
				vlrOriginal = vlrOriginal + String.fromCharCode(window.event.keyCode);
				ProcessaString(Casas, ColocaPonto);
			}
		}
		else
		{
			switch(vlrOriginal.length)
			{
				case 5:
					vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
					vlrOriginal = vlrOriginal.replace(regexp_virgula, ".");
					if (parseFloat(vlrOriginal) == 0)
					{
						vlrOriginal = "0,00" + String.fromCharCode(window.event.keyCode);
						if (temSinalNegativo)
							vlrOriginal = "-" + vlrOriginal;
						window.event.srcElement.value = vlrOriginal;
					}
					else
					{
						if (parseFloat(vlrOriginal.substr(0,4)) == 0)
						{
							vlrOriginal = "0,0" + vlrOriginal.substr(vlrOriginal.length - 1, 1) + String.fromCharCode(window.event.keyCode);
							if (temSinalNegativo)
								vlrOriginal = "-" + vlrOriginal;
							window.event.srcElement.value = vlrOriginal;
						}
						else
						{
							if (parseFloat(vlrOriginal.substr(0,3)) == 0)
							{
								vlrOriginal = "0," + vlrOriginal.substr(vlrOriginal.length - 2, 2) + String.fromCharCode(window.event.keyCode);
								if (temSinalNegativo)
									vlrOriginal = "-" + vlrOriginal;
								window.event.srcElement.value = vlrOriginal;
							}
							else
							{
								if (parseFloat(vlrOriginal.substr(0,1)) == 0)
								{
									vlrOriginal = vlrOriginal.substr(2,1) + "," + vlrOriginal.substr(vlrOriginal.length - 2, 2) + String.fromCharCode(window.event.keyCode);
									if (temSinalNegativo)
										vlrOriginal = "-" + vlrOriginal;
									window.event.srcElement.value = vlrOriginal;
								}
								else
								{
									vlrOriginal = vlrOriginal + String.fromCharCode(window.event.keyCode);
									ProcessaString(Casas, ColocaPonto);
								}
							}
						}
					}
					break;
				default:
					if (vlrOriginal.length <= window.event.srcElement.maxLength)
					{
						vlrOriginal = vlrOriginal + String.fromCharCode(window.event.keyCode);
						ProcessaString(Casas, ColocaPonto);
					}
					break;
			}
		}
	}
}

function LimpaString()
{
	vlrOriginal = vlrOriginal.replace(regexp_ponto, "");
	vlrOriginal = vlrOriginal.replace(regexp_virgula, "");
}

function ProcessaString(Casas, ColocaPonto)
{
	LimpaString();
	var strOriginal = new String();
	var Parametro;
	
	if (Casas == 2)
		Parametro = 0;
	else
	{
		if (Casas == 3)
			Parametro = 1;
		else
			Parametro = -3;
	}
	tot = vlrOriginal.length;
	for (i = 0; i <= tot - 1; i++)
	{
		if (ColocaPonto)
		{
			if (((i - Casas) % 3 == 0) && i >= (5 + Parametro)) 
				strOriginal = "." + strOriginal;
		}
		if (i == Casas && Casas > 0)
			strOriginal = "," + strOriginal;
		strOriginal = vlrOriginal.substr(tot-i-1, 1) + strOriginal;
	}
	vlrOriginal = strOriginal;
	if (temSinalNegativo)
		vlrOriginal = "-" + vlrOriginal;
	window.event.srcElement.value = vlrOriginal;
}

/****** FIM Formatar Número (DIGITAÇÃO) *************/

// used by dateDiff
// note: less strict than VBScript's isDate, since JS allows invalid dates to overflow (e.g. Jan 32 transparently becomes Feb 1)
function isDate(p_Expression){
	return !isNaN(new Date(p_Expression));		// <<--- this needs checking
}
// REQUIRES: isDate()
// NOT SUPPORTED: firstdayofweek and firstweekofyear (defaults for both)
function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear){
	if(!isDate(p_Date1)){return "invalid date: '" + p_Date1 + "'";}
	if(!isDate(p_Date2)){return "invalid date: '" + p_Date2 + "'";}
	var dt1 = new Date(p_Date1);
	var dt2 = new Date(p_Date2);

	// get ms between dates (UTC) and make into "difference" date
	var iDiffMS = dt2.valueOf() - dt1.valueOf();
	var dtDiff = new Date(iDiffMS);

	// calc various diffs
	var nYears  = dt2.getUTCFullYear() - dt1.getUTCFullYear();
	var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears!=0 ? nYears*12 : 0);
	var nQuarters = parseInt(nMonths/3);	//<<-- different than VBScript, which watches rollover not completion
	
	var nMilliseconds = iDiffMS;
	var nSeconds = parseInt(iDiffMS/1000);
	var nMinutes = parseInt(nSeconds/60);
	var nHours = parseInt(nMinutes/60);
	var nDays  = parseInt(nHours/24);
	var nWeeks = parseInt(nDays/7);


	// return requested difference
	var iDiff = 0;		
	switch(p_Interval.toLowerCase()){
		case "yyyy": return nYears;
		case "q": return nQuarters;
		case "m": return nMonths;
		case "y": 		// day of year
		case "d": return nDays;
		case "w": return nDays;
		case "ww":return nWeeks;		// week of year	// <-- inaccurate, WW should count calendar weeks (# of sundays) between
		case "h": return nHours;
		case "n": return nMinutes;
		case "s": return nSeconds;
		case "ms":return nMilliseconds;	// millisecond	// <-- extension for JS, NOT available in VBScript
		default: return "invalid interval: '" + p_Interval + "'";
	}
}

function ConvertData_diff(data)
{
	var dia, mes, ano
	dia = data.substr(0, 2)
	mes = data.substr(3, 2)
	ano = data.substr(6, 4)
	return(mes + "/" + dia + "/" + ano + " 00:00:00 am");
}

function showToolTip(campo, text){
	//if(document.all)e = event;

	var obj = document.getElementById('bubble_tooltip');
	var obj2 = document.getElementById('bubble_tooltip_content');
	obj2.innerHTML = text;
	obj.style.display = 'block';

	var leftPos = campo.offsetLeft - (obj.offsetWidth) + (campo.offsetWidth/2);

	if (leftPos < 0) leftPos = 0;

	if ((campo.offsetTop - obj.offsetHeight - 2) > 0)
	{
		obj.style.top = campo.offsetTop - obj.offsetHeight - 2 + 'px';
		obj.style.left = leftPos + 'px';
	}
	else
	{
		obj.style.top = '1px';
		obj.style.left = leftPos - (campo.offsetWidth/2) - 2 + 'px';
	}
}

function hideToolTip()
{
	document.getElementById('bubble_tooltip').style.display = 'none';
}


function Filtro_multi_add_item(origem, destino, campo, pagina)
{
	var flg_ok, flg_achou = false;

	var count = origem.options.length;
	for(x = 0; x < count; x++)
	{
		flg_ok = 0;
		if (origem.selectedIndex >= 0)
		{
			flg_achou = true;
			destino.options.length +=1;
			if (destino.options.length > 1)
			{
				for(y = 0; y < destino.options.length - 1; y++)
				{
					if (origem.options[origem.selectedIndex].text < destino.options[y].text)
					{
						flg_ok = 1;
						for (k = destino.options.length - 1; k > y; k--)
						{
							destino.options[k].text = destino.options[k - 1].text;
							destino.options[k].value = destino.options[k - 1].value;
						}
						destino.options[y].text = origem.options[origem.selectedIndex].text;
						destino.options[y].value = origem.options[origem.selectedIndex].value;
						y = destino.options.length;
					}
				}
				if (flg_ok == 0)
				{
					destino.options[destino.options.length - 1].text = origem.options[origem.selectedIndex].text;
					destino.options[destino.options.length - 1].value = origem.options[origem.selectedIndex].value;
				}
			}
			else
			{
				destino.options[0].text = origem.options[origem.selectedIndex].text;
				destino.options[0].value = origem.options[origem.selectedIndex].value;
			}
			origem.options[origem.selectedIndex] = null;
		}
	}
	if (!(flg_achou))
		alert("Selecione um item!");
	else
	{
		if (pagina == "PG")
		{
			if (origem.length == 0)
			{
				document.all("div_" + campo + "_multi").style.display = "none";
				document.forms[0].item(campo).selectedIndex = 0;
			}
		}
	}
}

function Filtro_multi_add_all(original, origem, destino, campo, pagina)
{
	destino.options.length = 0;
	for(z = 0; z < original.options.length; z++)
	{
		if (Trim(original.options[z].value) != 'P' && Trim(original.options[z].value) != 'T' && Trim(original.options[z].value) != 'S' && Trim(original.options[z].value) != 'O')
		{
			destino.options.length +=1;
			destino.options[destino.options.length - 1].text = original.options[z].text;
			destino.options[destino.options.length - 1].value = original.options[z].value;
		}
	}
	origem.options.length = 0;

	if (pagina == "PG")
	{
		document.all("div_" + campo + "_multi").style.display = "none";
		document.forms[0].item(campo).selectedIndex = 0;
	}
}

function Filtro_multi(campo, info, genero)
{
	if (Trim(campo.value) == 'P')
	{
		document.all("div_" + campo.name + "_multi").style.display = "block";
		showModalDialog('../include/iframes/popup_multi.asp?frm=' + campo.form.name + '&campo=' + campo.name + '&info=' + info + '&genero=' + genero, self, 'dialogWidth:500px;dialogHeight:230px;center:yes;status:no;scroll:no;help:no;resizable:yes');
	}
	else
	{
		document.all("div_" + campo.name + "_multi").style.display = "none";
	}
}

function Selecionar_Todos(campo, opt)
{
	for (i = 0; i < campo.options.length; i++)
		campo.options[i].selected = opt;
}

