/*
Função para autenticação de campos Versão 1.7
Versão simples, original e com erros que verificava apenas campos em branco por David Flanagan
Versão ampliada e melhorada por LEandrO Antonio(leandro@garagem.org)
Desde 18/11/2002
Última atualização: 23/11/2002
*/

<!-- TAG DE - Deve estar em todas as paginas
DEcfg ="site=par&affiliate=pargarotasdooutdoor&subchan=outros";
var DEpopcfg ="POPpargarotasdooutdoor";
Expble = 1;
DEd=document; function DEshow(ad,pos){
DErand = Math.floor(1000000*Math.random()); DEconn=DEd.body; DEconn.style.behavior='url(#default#clientCaps)'; DEconn = (DEconn.connectionType=='lan')?1:0;
DEd.write('<SCR'+'IPT LANGUAGE="JavaScript1.1" SRC="http://de.uol.com.br/js.ng/'+DEcfg+'&size='+ad+'&page='+pos+'&conntype='+DEconn+'&expble='+Expble+'&ord='+DErand+'?"></SCR'+'IPT>');
}
//-->

function abrir(pagina,largura,altura,barra){
	hora = new Date()
	milisegundo = hora.getMilliseconds()
	var tela = window.open(pagina,"pagina"+milisegundo,"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars="+barra+", resizable=yes, top=0, left=0, width="+largura+", height="+altura);
}

function tab(nome_formulario,campo1,campo2) {
	if ((document.forms[nome_formulario].elements[campo1].value.length == document.forms[nome_formulario].elements[campo1].size))
		document.forms[nome_formulario].elements[campo2].focus();
}

function verificar_numerico(){
	if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
}

function eh_branco(s) {
	for(var i=0; i<s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}

function enviar(nome_formulario,desabilitar,imagem_enviar){
	var campos_brancos = "";
	var campos_com_erro = "";
	var indice_campo_branco = 0;
	var indice_campo_erro = 0;
	var encontrou_erro = false;

	if (imagem_enviar) 
		subtrair = 0;
	else
		subtrair = 1;

	for(var i=0; i<document.forms[nome_formulario].length-subtrair; i++){
		var campo = document.forms[nome_formulario].elements[i];
		var requerido = campo.requerido;

		if (requerido=='nao' && campo.value.length > 0) requerido='';

		if (((campo.type == "text") || (campo.type == "textarea") || (campo.type == "password") || (campo.type == "file")) && requerido!='nao'){
			if ((campo.value == null) || (campo.value == "") || eh_branco(campo.value)){
				if (!campos_brancos) indice_campo_branco = i;
				campos_brancos += campo.title + "\n";
				continue;
			}

			if (campo.tipo_campo=='numerico')
				if (campo.value.search(/^\d+$/)!=0)
					campos_com_erro += "- O campo '" + campo.title + "' deve ser numérico.\n";

			if (campo.tipo_campo=='email')
				if ((campo.value.search(/^[a-zA-Z0-9]+[\w\.\_\-\w]*[\w+]@[a-zA-Z0-9]+([\w\_\-\w]*\.[\w\_\-\w]+)+[\w\_\-\w]*$/))!=0)
					campos_com_erro += "- O campo '" + campo.title + "' não está preenchido corratamente.\n";

			if (campo.tipo_campo=='data')
				if (campo.value.search(/(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/([01][0-9]|[7-9][0-9])/)!=0)
					campos_com_erro += "- O campo '"+ campo.title +"' não foi digitado corretamente!\n Use a sintaxe: dd/mm/aa, onde:\n dd: Dia - Ex.: 01\n mm: Mês - Ex.: 09\n aa: Ano - Ex.: 80\n";

			if (campo.tipo_campo=='nickname')
				if (campo.value.search(/^[a-zA-Z0-9\[-`{-~\-]+$/)!=0)
					campos_com_erro += "- O campo '"+ campo.title +"' sintaticamente não é um NickName válido.\nUtilize apenas os caracteres aceitos no IRC.\n";

			if (campo.tipo_campo=='url')
				if (campo.value.search(/^(http:\/\/)(www\.)?([a-zA-Z0-9]+([\w\_\-\w]*\.[\w\_\-\w]+)+[\w\_\-\w\/~?=]*$)/)!=0)
					campos_com_erro += "- O campo '"+ campo.title +"' não está correto.\nUtilize o formato http://www.site.dominio (o www é opcional).\n";

			if (campo.tipo_campo=='url_sem_www')
				if (campo.value.search(/^([a-zA-Z0-9]+([\w\_\-\w]*\.[\w\_\-\w]+)+[\w\_\-\w]*$)/)!=0)
					campos_com_erro += "- A sintaxe do campo '"+ campo.title +"' não está correta.\nUtilize o formato site.com.br ou qualquer outro domínio.\n";

			if (campo.tipo_campo=='imagem_jpg')
				if (campo.value.search(/^[A-Za-z]:\\.+\.(jpg|jpeg|JPEG|JPG)$/)!=0)
					campos_com_erro += "- O caminho no disco para o campo '"+ campo.title +"' não está correto ou você não selecionou uma imagem do tipo .jpg!\n";

			if (campo.tamanho_minimo!='')
				if (campo.value.length < campo.tamanho_minimo)
					campos_com_erro += "- O campo '"+ campo.title +"' deve possuir no mínimo "+ campo.tamanho_minimo +" caracteres.\n";

			if (campo.tamanho_maximo!='')
				if (campo.value.length > campo.tamanho_maximo)
					campos_com_erro += "- O campo '"+ campo.title +"' deve possuir no máximo "+ campo.tamanho_maximo +" caracteres.\n";

			if (campo.valor_minimo!='')
				if (campo.value < campo.valor_minimo)
					campos_com_erro += "- O campo '"+ campo.title +"' deve possuir o valor mínimo de "+ campo.valor_minimo +".\n";
					
			if (campo.valor_maximo!='')
				if (campo.value > campo.valor_maximo)
					campos_com_erro += "- O campo '"+ campo.title +"' deve possuir o valor máximo de "+ campo.valor_maximo +".\n";

			if (campo.confere=='sim')
				if (campo.value != document.forms[nome_formulario].elements[i+1].value)
					campos_com_erro += "- Os campos '"+ campo.title +"' e '"+ document.forms[nome_formulario].elements[i+1].title +"' devem possuir o mesmo valor.\n";

			if (campo.tipo_campo=='numero_e_letra'){
				var total_numeros = 0;
				for (contador=0;contador<campo.value.length;contador++)
				if (parseInt(campo.value.charAt(contador))) 
					total_numeros++;
				if (campo.value.length == total_numeros || total_numeros == 0)
					campos_com_erro += "- O campo '"+ campo.title +"' deve possuir letras e números.\n";
			}
		}

		if (campo.type == "select-one")
			if (campo.value=='')
				campos_com_erro += "- Faça uma escolha para o campo '"+ campo.title +"'.\n";

		
		if (campo.type == "radio"){
			var marcou = false, qtde_radios=0;
			if (!document.forms[nome_formulario].elements[document.forms[nome_formulario].elements[i].name].length)
				qtde_radios = 1;
			else
				qtde_radios = document.forms[nome_formulario].elements[document.forms[nome_formulario].elements[i].name].length;

			for (c=i;c<i+qtde_radios;c++)
				if (document.forms[nome_formulario].elements[c].checked == true)
					marcou = true;
			if (!marcou)
				campos_com_erro += "- Marque uma opção para o campo '"+ campo.title +"'.\n";
			i=c-1;
		}
				
		if (campos_com_erro && !encontrou_erro){
			encontrou_erro = true;
			indice_campo_erro = i;
		}

	}

	if (!campos_brancos && !campos_com_erro) {
		if (!desabilitar) document.forms[nome_formulario].elements[i].disabled=true;
		document.forms[nome_formulario].submit();
		return true;
	}
	if (campos_brancos){
		alert("Preencha os campos que estão em branco:\n\n"+campos_brancos);
		document.forms[nome_formulario].elements[indice_campo_branco].focus();
		return false;
	}
	if (campos_com_erro){
		alert("Ocorreram os seguintes erros:\n\n"+campos_com_erro);
		document.forms[nome_formulario].elements[indice_campo_erro].focus();
		if (document.forms[nome_formulario].elements[indice_campo_erro].type!="select-one")
			document.forms[nome_formulario].elements[indice_campo_erro].select();
		return false;
	}

}

