//Função que muda o foco de um campo para outro, independente da quantidade de "forms" !
function saltaCampoForms(ev, atualCampo, tp_atual, maxCaract, acceptButton)
{		
	var formPesq=atualCampo.form, indFormPesq=-1, indCampoPesq=-1, max=maxCaract, proximoCampo=null,
		search=(acceptButton)?(/^(text|password|select.*|radio|checkbox.*|button|textarea)$/)
							 :(/^(text|password|select.*|radio|checkbox.*|textarea)$/);
	
	var tc = brow().isNetscape()?ev.which:ev.keyCode;
	
	//Função interna para "setar" o foco...
	setFocus = function()
	{ 
		if ( (/^(neg_)?money/.test(tp_atual)) 
			&&
			 (verifyMaxValue(atualCampo.value)) )
				atualCampo.value="0,00";

		else if(/^(date|month_year|time|cpf|cnpj|cpf_cnpj|cep|account|branch|percent|ag_account|ag_savings)$/.test(tp_atual))
			max=eval("SZ_"+tp_atual.toUpperCase());

		if (String(atualCampo.value).length>=max)
		{
			proximoCampo.focus();
			return true;
		}
		else return false;
	};


	var posicionamentoElem = new Posicao_FormCampo(formPesq, atualCampo);
	
	indFormPesq  = posicionamentoElem.FormPesq;
	indCampoPesq = posicionamentoElem.CampoPesq;

	//Obtendo o próximo campo que receberá o foco...
	for (var i=indFormPesq; i<=document.forms.length-1; i++) //Varrendo os formulários atual e posteriores...
	{
		formPesq = document.forms[i]; //Formulário que está sendo pesquisado...
	
		//Caso não seja o formulário atual recebe zero, sendo... receberá o índice do atual + 1 !!!
		if (i==indFormPesq)			
			 indCampoPesq += 1;
		else indCampoPesq  = 0;
		
		for (var j=indCampoPesq; j<=formPesq.elements.length-1; j++) //Verificando o próximo campo válido do formulário selecionado!
		{
			proximoCampo = formPesq.elements[j];

			if ((tc >= 48) && search.test(proximoCampo.type) && !proximoCampo.disabled && (proximoCampo.tabIndex!=-1)) //Caso o campo seja válido !!!
				return ( setFocus() );
		}
	}//for externo...
}//saltaCampoForms

//{ CLASSE! }
/**
 * Retorna a posição dos respectivos formulário e campo informados
 *******************************************************************/
function Posicao_FormCampo (_formPesq, _atualCampo) 
{
	//Obtendo o índice do formulário atual!!!
	for (var i=0; i<=document.forms.length-1; i++)
	{
		if (document.forms[i]==_formPesq)
		{
			this.FormPesq = i;

			//Obtendo a posição do campo atual...
			for (var j=0; j<=_formPesq.elements.length-1; j++)
			{
				if (_formPesq.elements[j]==_atualCampo)
				{
					this.CampoPesq = j; //Quando for iniciar a pesquisa, pegar o índice posterior a esse...
					break;
				}
			}
		}
	}//for externo...

}//Posicao_FormCampo 

fmtMoney = function(n, c, d, t, virgToPonto)
{ 
	/*********************************
	 * n -> valor numérico           *
	 * c -> número de casas decimais *
	 * d -> separador dos decimais   *
	 * t -> separador dos milhares   *
     *                               *
	 * showZero:                     *
	 * --------                      *
	 * Caso queira mostrar {0[,.]00} *
	 * quando for vazio!             *
	 *********************************/
	
	//  alert(1 % 3); //1 ->   1
	//	alert(2 % 3); //2 ->  11
	//	alert(3 % 3); //0 -> 111

	//	alert(4 % 3); //1 ->   1.111
	//	alert(5 % 3); //2 ->  11.111
	//	alert(6 % 3); //0 -> 111.111
	
	//  alert(7 % 3); //1 -> 1.111.111
	//  alert(8 % 3); //2 -> 11.111.111
	//  alert(9 % 3); //0 -> 111.111.111
                                 

	if (n != '')
	{
		//Caso seja um número em formato "#.###,##", convertê-lo p/ o formato entendível (#,###.##) pelo "JS"!
		if (virgToPonto) n = n.replace(',','.');


		if (isNaN(n)) return "0"+d+"00";


		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) : "");
	}//if
	else return "";
};//fmtMoney

function limiteTexto(campoTexto, campoContador, tamMax)
{

	if ( campoTexto.value.length > tamMax )				
	{
		alert('O número máximo de caracteres é '+ tamMax +'!');
		campoTexto.value = campoTexto.value.substring(0,tamMax);
	}
	else campoContador.value = tamMax - campoTexto.value.length;

}//limiteTexto
