var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function Formato_Data(input) {
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strBarra = "/"; 
var strTraco = "-"; 
if (keyCode != 8 ){ 
	if(input.value.length == 2){input.value = input.value+strBarra}
	else if(input.value.length == 5){input.value = input.value+strBarra}
	if(input.value.length >= 10 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 10);
	//input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}
}

function Formato_CPF(input)
{
	var keyCode = (isNN) ? event.which : event.keyCode;
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	var strPonto = "."; 
	var strTraco = "-";
	
	if (input.value.length >=14)
	{
	//	input.form[(getIndex(input)+1) % input.form.length].focus();
	}
	else if (keyCode != 8)
	{ 
		if(input.value.length == 3)
		{
			input.value = input.value+strPonto
		}
		else if(input.value.length == 7)
		{
			input.value = input.value+strPonto
		}
		else if(input.value.length == 11)
		{
			input.value = input.value+strTraco
		}
		else if(input.value.length == 14)
		{
			input.value = input.value+strPonto
		}
	
		if(input.value.length >= 14 && !containsElement(filter,keyCode))
		{
			input.value = input.value.slice(0, 14);
			//input.form[(getIndex(input)+1) % input.form.length].focus();
		}
	}
}

function Formato_CGC(input) {
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
var keyCode = (isNN) ? event.which : event.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
var strPonto = "."; 
var strBarra = "/"; 
var strTraco = "-"; 
if (keyCode != 8 ){
	if(input.value.length == 2){input.value = input.value+strPonto}
	else if(input.value.length == 6){input.value = input.value+strPonto}
	else if(input.value.length == 10){input.value = input.value+strBarra}
	else if(input.value.length == 15){input.value = input.value+strTraco}
	if(input.value.length >= 18 && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, 18);
	//input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}
}

function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}

function autoTab(input,len,e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
}

function onlynumber(myfield, e,tolerado)
{
	if (myfield.length ==0)
		myfield.value=0;  
	
	var key;
	var keychar;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
	
	keychar = String.fromCharCode(key);
	
	if ((key==null) || (key==0) || (key==8) || (key==9)|| (key==13)|| (key==27) )
		return true;
	else if ((("0123456789"+tolerado).indexOf(keychar) > -1)){
		if (((myfield.value).indexOf(tolerado) > -1)&&(keychar==tolerado))
			return false;
		else if ((myfield.value.length==0)&&(keychar==tolerado))
		{
			myfield.value = "0";
			return true;	
		}
		else
			return true;
	}
	else
		return false;	
}

function Formato_Hora(input)
{
	var keyCode = (isNN) ? event.which : event.keyCode;
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];

	if (keyCode != 8 )
	{ 
		if(input.value.length == 2)
		{
			input.value = input.value + ":";
		}
	}
}

function Upper(Campo)
{
	if(Campo.value.length != -1)
	{
		if (window.event)
		{
			var key = window.event.keyCode;
			
			if((key > 96 && key < 123) || (key > 223 && key < 254))
			{
				key = key - 32;
				window.event.keyCode = key;
			}	
		}
	}
}

function Formatar_Numero(Valor)
{
	Valor = Valor.toString();	

	if(Valor.indexOf(",",0) >= 0 && Valor.indexOf(".",0) >= 0)
		Valor = Valor.replace(".","").replace(",",".");
	else if(Valor.indexOf(",",0) >= 0)
		Valor = Valor.replace(",",".");

	var Numero = parseFloat(Valor);

	
	
	if(Numero)
	{
		var Formatado = Math.round(Numero * 100).toString();
		var Qtd = Formatado.length - 2;
		
		if(Qtd == -1)
			Formatado = "0,0" + Formatado
		else
			Formatado = Formatado.substring(0,Qtd) + "," + Formatado.substring(Qtd,Formatado.length)
		
		if(Qtd > 3)
		{
			Final = Formatado.substring(Qtd,Qtd + 3)
			
			for(var i=3; i < Qtd ; i=i+3)
				Final = "." + Formatado.substring(Qtd - i,(Qtd - i) + 3) + Final
			
			Final = Formatado.substring(0,Qtd - (i-3)) + Final;
		}
		else if(Qtd == 0)
			Final = "0" + Formatado;
		else
			Final = Formatado;

		return Final;
	}
	else
		return "0,00"
}

function formataValorMonetario(campooriginal,decimais)
{
  var posicaoPontoDecimal;
  var campo = '';
  var resultado = '';
  var pos,sep,dec;

//Retira possiveis separadores de milhar
  for (pos=0; pos < campooriginal.value.length; pos ++)
  {
    if (campooriginal.value.charAt(pos)!='.')
        campo = campo + campooriginal.value.charAt(pos);
  }     

//Formata valor monetário com decimais
  posicaoPontoDecimal = campo.indexOf(',');
  if (posicaoPontoDecimal != -1)
   {
      sep = 0;
      for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }

        resultado = campo.charAt(pos) + resultado;   
      }

      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
      
         pos=posicaoPontoDecimal+1;
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
           if (pos < campo.length)
           {
              resultado = resultado + campo.charAt(pos);
              pos++;
           }
           else
              resultado = resultado + '0';   
         }

      } // trata decimais
   }
   // Trata valor monetário sem decimais
   else
   {
      sep = 0;
      for (pos=campo.length-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }
        resultado = campo.charAt(pos) + resultado;   
      }
      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
              resultado = resultado + '0';   
         }
      } // trata decimais
   }
   campooriginal.value = resultado;
}



function fmtMoney(n, c, d, t){
    var m = (c = Math.abs(c) + 1 ? c : 2, d = d || ",", t = t || ".",/(\d+)(?:(\.\d+)|)/.exec(n + "")), x = m[1].length > 3 ? m[1].length % 3 : 0;
    return (x ? m[1].substr(0, x) + t : "") + m[1].substr(x).replace(/(\d{3})(?=\d)/g,"$1" + t) + (c ? d + (+m[2] || 0).toFixed(c).substr(2) : "");
} 

// esta função formata o campos para valor númerico // ---------------------------------
function formatCurrency(o, n, dig, dec){
	o.c = !isNaN(n) ? Math.abs(n) : 2;
	o.dec = typeof dec != "string" ? "," : dec, o.dig = typeof dig != "string" ? "." : dig;
	addEvent(o, "keypress", function(e){
		if(e.key > 47 && e.key < 58){
			var o, s, l = (s = ((o = this).value.replace(/^0+/g, "") + String.fromCharCode(e.key)).replace(/\D/g, "")).length, n;
			if(o.maxLength + 1 && l >= o.maxLength) return false;
			l <= (n = o.c) && (s = new Array(n - l + 2).join("0") + s);
			for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += o.dig);
			n && n < l && (s[l - ++n] += o.dec);
			o.value = s.join("");
		}
		e.key > 30 && e.preventDefault();
	});
}

addEvent = function(o, e, f, s){
	var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;
	r[r.length] = [f, s || o], o[e] = function(e){
		try{
			(e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
			e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
			e.target || (e.target = e.srcElement || null);
			e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
		}catch(f){}
		for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
		return e = null, !!d;
    }
};

removeEvent = function(o, e, f, s){
	for(var i = (e = o["_on" + e] || []).length; i;)
		if(e[--i] && e[i][0] == f && (s || o) == e[i][1])
			return delete e[i];
	return false;
};