/***********************************
Função montaSubmit( "formulario" ) 
Descrição: Monta Submit de acordo com o form clicado para criação da url para busca, inserção ou atualização via AJAX

Funções Agregadas:
	campoSubmit("conteudo já escrito do link", "nome do campo", "valor do campo");
***********************************/
function montaSubmit(formulario) {
	output = '';
	for (i=0;i<formulario.length;i++)		//if ((c[i].type == 'text') && (c[i].name != 'valor'))
		switch (formulario[i].type) {//"Type: " + forme[i].type + "\t Name: " + forme[i].name + "\t Valor: " + forme[i].value + "\r\n";
			case "hidden":
			case "text":
			case "password":
			case "textarea":
				output += campoSubmit(output, formulario[i].name, formulario[i].value);
				break;
			case "select-one": 
				output += campoSubmit(output, formulario[i].name, formulario[i].value);
				break;
			case "radio":
			case "checkbox":
				if (formulario[i].checked)
					output += campoSubmit(output, formulario[i].name, formulario[i].value);
				break;
		}	
	return output;
}
function campoSubmit(t, nome, valor) {
	output = '';
	if (t != '')
		output = "&";
	else
		output = "?";
	return output + nome + "=" + escape(valor);//+"\r\n";
}
/***********************************
Fim Funções montaSubmit();
***********************************/


/***********************************
Função fmt(campo, evento, mascara)
Tipo: onKeyDown="return funcao;"
Descrição: Formata um campo de acordo com a mascara informada

Funções Agregadas:
	setaMask(campo, evento, mascara)
	valorCampo(valor, mascara)
	aplicaMascara(mascara, valor)
***********************************/
function fmt(campo, evento, mascara, orientacao) {
	if (evento.keyCode == 9) return;
	if (evento.keyCode == 46) evento.keyCode = 8;
	valor = campo.value;
	if ( ( ( (evento.keyCode >= 96) && (evento.keyCode <= 105) ) || ( (evento.keyCode >= 48) && (evento.keyCode <= 57) ) ) || (evento.keyCode == 8) )
		setaMask(campo, evento, mascara, orientacao); //Se for Pressionada alguma tecla numérica ou DELETE aplica Mascara.
	return false;
}
function setaMask(campo, evento, mascara, orientacao) {
	valor = campo.value;
	if (evento != null) {
		if ( (evento.keyCode >= 96) && (evento.keyCode <= 105) ) valor = valor+String.fromCharCode(evento.keyCode-48);
		if ( (evento.keyCode >= 47) && (evento.keyCode <= 57) ) valor = valor+String.fromCharCode(evento.keyCode);
		//if ( (valor.length > 0) && (evento.keyCode == 96) ) valor = valor + 0; //Verifica se já foi inserido valor e insere 0 caso tenham pressionado.
	}
	campo.value = aplicaMascara(mascara, valor, evento, orientacao);
}
function valorCampo(valor, mascara) {
	valor = valor+'';
	var i = 0;
	for(i=0;i<mascara.length;i++) {
		caracter = mascara.substr(i,1);
		if (caracter != "#") 
			valor = valor.replace(caracter, ""); //Remove outros caracteres Mascara
		else
			valor = valor.replace(" ", ""); //Remove Espaços
	}
	return valor;
}
function aplicaMascara(mascara, valor, evento, orientacao) {
	valor = valorCampo(valor, mascara);
	if (evento.keyCode == 8) valor = valor.substr(0, valor.length-1);
	//Remove Zeros da frente do valor
	/*
	tmp = valor;
	for (i=0;i<valor.length;i++) {
		if (valor.substr(i, 1) == 0)
			tmp = valor.substr(i+1, valor.length);
		else
			break;
	}
	valor = tmp;
	*/
	if ( (valor.length < 3) && ( 
									(mascara == '##.###,##') || 
									(mascara == '#.###,##') ||
									(mascara == '###,##') || 
									(mascara == '##,##') ) ) { //Organiza 0 Antes da virgula no Formato "0,00"
		tmp = valor;
		for (i=3; i>valor.length; i--)
			tmp = 0+tmp;
		valor = tmp;
	}
	retorno = "";
	if (orientacao == 'e') {
		contador = 0;
		//alert(contador);
		for (i=0;i<mascara.length;i++) {
			if (contador == valor.length) break;
			caracter = mascara.substr(i,1);
			if (caracter == "#") {
				retorno = retorno + valor.substr(contador,1);
				contador++;
			} else
				retorno = retorno + caracter;
		}
		dif_retorno = mascara.length-retorno.length;
		retorno2 = mascara.substr(mascara.length-dif_retorno, 99);
//		alert('retorno: |'+retorno+'|retornomask: |'+retorno2+'|');
		retorno2 = retorno+retorno2.replace(/#/g, " ");
	} else {
		contador = valor.length-1;
		for (i=mascara.length-1;i>=0;i--) {
			if (contador < 0) break;
				caracter = mascara.substr(i,1);
				if (caracter == "#") {
					retorno = valor.substr(contador,1) + retorno;
					contador--;
				} else
					retorno = caracter + retorno;
		}
		dif_retorno = mascara.length-retorno.length;
		retorno2 = mascara.substr(0, dif_retorno);
		retorno2 = retorno2.replace(/#/g, " ")+retorno;
	}
	return retorno2;
}
function fmtReal(campo, evento) {
	mascara = '##.###,##';
	return fmt(campo, evento, mascara);
}
function fmtRealConsulta(campo, evento) {
	mascara = '###,##';
	return fmt(campo, evento, mascara);
}
function fmtCPF(campo, evento) {
	mascara = '###.###.###-##';
	return fmt(campo, evento, mascara, 'e');
}
function fmtCNPJ(campo, evento) {
	mascara = '##.###.###/####-##';
	return fmt(campo, evento, mascara, 'e');
}
function fmtCEP(campo, evento) {
	mascara = '##.###-###';
	return fmt(campo, evento, mascara, 'e');
}
function fmtTelefone(campo, evento) {
	mascara = '(##) ####-####';
	return fmt(campo, evento, mascara, 'e');
}
function fmtData(campo, evento) {
	mascara = '##/##/####';
	return fmt(campo, evento, mascara, 'e');
}
function fmtQuantidade(campo, evento) {
	mascara = '##';
	return fmt(campo, evento, mascara, 'e');
}
/*
* Função que arruma o texto deixando a primeira em maiúscula e removendo caracteres inválidos
* Campo = objeto que enviou o comando ou seja, objeto que vai ser acertado o texto
* espacos =	 1 para no mínimo (2 palavras) 
* 			-1 para somente 1 palavras
* Tipo:
* 			"A" = Alfanumérico
* 			"AN" = Alfanumérico e Numérico
*/

function AcertaTexto(campo,espacos,tipo) {
	var valor=campo.value.toLowerCase();
	var aux="", letra="";
	if ( campo.value.length > 0 ) {
		if ( tipo == "AN" ) 
			for (var i=0;i<=valor.length-1;i++)
				if ( 
					( valor.charCodeAt(i) == 32 ) || //se o campo é igual a espaço
					( valor.charCodeAt(i) == 39 ) || //ou se o campo é igual a aspa simples '
					( valor.charCodeAt(i) == 45 ) || //ou se o campo é igual a aspa simples -
					( valor.charCodeAt(i) > 96 && valor.charCodeAt(i) <123 ) ||  //ou se o campo for de a-z
					( valor.charCodeAt(i) > 64 && valor.charCodeAt(i) < 91 ) || //ou se o campo for de A-Z
					( valor.charCodeAt(i) >191 && valor.charCodeAt(i) <256 ) || //ou se o campo for de algum c/ acento
					( valor.charCodeAt(i) > 47 && valor.charCodeAt(i) < 58 ) //ou se o campo for numérico
					)
					aux=aux+valor.charAt(i);
		if ( tipo == "A" )
			for (var i=0;i<=valor.length-1;i++)
				if ( 
					( valor.charCodeAt(i) == 32 ) || //se o campo é igual a espaço
					( valor.charCodeAt(i) == 39 ) || //ou se o campo é igual a aspa simples '
					( valor.charCodeAt(i) > 96 && valor.charCodeAt(i) < 123 ) || //ou se o campo for de a-z
					( valor.charCodeAt(i) > 64 && valor.charCodeAt(i) < 91  ) || //ou se o campo for de A-Z
					( valor.charCodeAt(i) >191 && valor.charCodeAt(i) < 256 ) //ou se o campo for de algum caracter c/ acento
					)
					aux=aux+valor.charAt(i);
		if ( tipo == "N" )
			for (var i=0;i<=valor.length-1;i++)
				if ( 
					( valor.charCodeAt(i) == 44 ) || //ou se o campo é igual a virgula
					( valor.charCodeAt(i) == 46 ) || //ou se o campo é igual a ponto
					( valor.charCodeAt(i) > 47 && valor.charCodeAt(i) < 58 ) //se o campo for numérico						
					)
					aux=aux+valor.charAt(i);
		if ( tipo == "I" )
			for (var i=0;i<=valor.length-1;i++)
				if ( 
					( valor.charCodeAt(i) > 47 && valor.charCodeAt(i) < 58 ) //se o campo for numérico						
					)
					aux=aux+valor.charAt(i);
		valor=aux;
		aux="";
		for (var i=0;i<=valor.length-1;i++)
			if (valor.charAt(i) != " ")
				if ( i==0 || valor.charAt(i-1) == " " || ( valor.charAt(i-1) == "'" ) )
					if ( 
						(	valor.substr(i-1,4) != " da " && //verifica auxiliares de sobrenome
							valor.substr(i-1,4) != " de " &&  
							valor.substr(i-1,7) != " xxiii " && 
							valor.substr(i-1,4) != " di " && 
							valor.substr(i-1,4) != " do "  &&  
							valor.substr(i-1,5) != " dos " && 
							valor.substr(i-1,5) != " das " )  || 
							( valor.charAt(i-1) == "'" ) 
						)
						aux=aux+valor.charAt(i).toUpperCase(); //caso nao seja, deixa maiúscula
					else
						aux=aux+valor.charAt(i); //senão deixa como tá
				else
					aux=aux+valor.charAt(i);
			else
				if (valor.charAt(i+1) != " ") aux=aux+valor.charAt(i);
		valor=aux;
		aux="";
		if ( valor.charAt(0) == " " ) {
			aux=valor.substr(1,valor.length);
			valor=aux;
		}
		if ( valor.charAt(valor.length-1) == " " ) {
			aux=valor.substr(0,valor.length-1);
			valor=aux;
		}
		//verifica se tem pelo menos 1 espaço (2 nomes). caso nao tenha, solicita
		if ( valor.indexOf(" ") < espacos ) {
			alert("O "+ campo.name + " deve ter no mínimo 2 palavras.");
			//campo.focus();
			//campo.select();
		} else
			campo.value=valor;
	}
}





