function monta_validacoes(c_TheForm,c_001_URL){
/*

MUDAR O ESQUEMA DESTE SCRITP PARA VERIFICAR SOMENTE OS TIPOS DE ELEMENTOS
CRIAR UMA MATRIZ DE ELEMENTOS E INSERIR OS SCRIPTS DE VALIDAÇÃO DE ACORDO
COM ESTA MATRIZ !!!

*/


	c_formact = window.document.forms[c_TheForm];		// cria um alias para o form (c_formact)		
    c_numelts = c_formact.elements.length;				// armazena o número de elementos do formulario em c_numelts
	var c_elttype = "";
    var t_str = "";
	var c_multi = "";									// esta variavel serve para guardar o name que será dado a um multi-select
	/* BOOLEANAS QUE MONTA A MATRIZ DE VALIDACOES*/
	b_texto		= false;
	b_alfa		= false;
	b_valor		= false;
	b_numero	= false;
	b_cpf		= false;
	b_cnpj		= false;
	b_cep		= false;
	b_data		= false;
	b_hora		= false;
	b_email		= false;
	b_confsenha	= false;
	b_lista		= false;	
	b_textarea	= false;	

	
    for(j=0; j != c_numelts; j++)						// loop nos elementos do formulario
    {
        c_eltact = c_formact.elements[j];				// armazena em c_eltact o nome do elemento atual
		
		if(c_eltact.type != "button"){				// se o elemento não for um button
		
    		// quebra o nome do elemento em um array
    		var elem_properties = c_eltact.name.split("|");

			if(elem_properties[7])
				// caso elemento tem 8 propriedades
    			if(elem_properties[7].toLowerCase().substr(0,5) =="lista"){
					if(! b_lista)
						b_lista = true;
					// se a oitava propriedade indica que ele pertence a origem de uma lista
					if (c_multi != "")
						// se não é o primeiro campo origem da lista...
        				c_multi += " § " // ... adiciona um sinal de parágrafo no fim da string c_multi
					// troca o trecho "|lista" por "|banco"
					c_multi += c_eltact.name.toString().replace(/\$|\|lista/gi,'|banco');
    			}
    		if(elem_properties[1] && elem_properties[1].toLowerCase() =="txt"){
    		
				// se o tipo de elemento é um text
    			if(elem_properties[2].toLowerCase() == "texto"){
					if(! b_texto)
						b_texto = true;
    			}
    			
				if(elem_properties[2].toLowerCase() == "alfa" || elem_properties[2].toLowerCase() == "senha" || elem_properties[2].toLowerCase() == "login"){
    				if(! b_alfa)
						b_alfa = true;
    			}
				
				if(elem_properties[2].toLowerCase().substring(0,5) == "valor"){
					if(! b_valor)
						b_valor = true;
    			}
				
				if(elem_properties[2].toLowerCase() == "numero"){
					if(! b_numero)
						b_numero = true;
    			}
				
    			if(elem_properties[2].toLowerCase() == "cpf"){
					if(! b_cpf)
						b_cpf = true;
    			}
    			
    			if(elem_properties[2].toLowerCase() == "cnpj"){
					if(! b_cnpj)
						b_cnpj = true;
				}
				
				if(elem_properties[2].toLowerCase() == "cep"){
					if(! b_cep)
						b_cep = true;
    			}
				
				if(elem_properties[2].toLowerCase() == "data"){
					if(! b_data)
						b_data = true;
    			}
				
				if(elem_properties[2].toLowerCase() == "email"){
					if(! b_email)
						b_email = true;
    			}
				
				if(elem_properties[2].toLowerCase() == "hora"){
					if(! b_hora)
						b_hora = true;
    			}
				if(elem_properties[2].toLowerCase() == "confsenha"){
					if(! b_confsenha)
						b_confsenha = true;
    			}    			
			}
		}
		if(elem_properties[1] && elem_properties[1].toLowerCase().substr(0,3) =="txa"){
			if(! b_alfa)
				b_alfa = true;
			if(! b_textarea)
				b_textarea = true;
		}
		if(c_multi != ""){
			// modifica o nome do primeiro botão após os elementos lista
			if(c_eltact.type=="button" && c_eltact.value.toLowerCase()!="remover"){
				c_eltact.name = (j<10) ? "0"+ j +"btn" + c_multi : j + "btn"+ c_multi;
            }
			// modifica o nome do primeiro select multiplo após os campos lista
            if(c_eltact.type.substr(0,6)=="select" && ! elem_properties[7]){
				//c_eltact.options[0] = null;
            	c_eltact.name = c_multi;
            	c_multi = "";
            }
			
		} 
    	if(c_eltact.type=="button" && c_eltact.value.toLowerCase()=="remover")
    			c_eltact.name = (j<10) ? "0"+ j + c_eltact.name : j + c_eltact.name ;
		
	}
	if(b_texto)
        inclui_script('100_valida_texto.js',c_001_URL);
    if(b_alfa)
        inclui_script('115_valida_alfanumerico.js',c_001_URL);
    if(b_valor)
        inclui_script('105_valida_valor.js',c_001_URL);
    if(b_numero)
        inclui_script('110_valida_numero.js',c_001_URL);
    if(b_cpf)
	    inclui_script('140_valida_cpf.js',c_001_URL);
    if(b_cnpj)
    	inclui_script('145_valida_cnpj.js',c_001_URL);
    if(b_cep)
	    inclui_script('120_valida_cep.js',c_001_URL);
    if(b_data)
    	inclui_script('125_valida_data.js',c_001_URL);
    if(b_email)
	    inclui_script('130_valida_email.js',c_001_URL);
    if(b_hora)
    	inclui_script('135_valida_hora.js',c_001_URL);
    if(b_textarea)
    	inclui_script('150_valida_textarea.js',c_001_URL);
	if(b_lista){
    	inclui_script('200_adiciona_campos_multiplos_a_lista.js',c_001_URL);
		inclui_script('205_remove_itens_lista_campos_multiplos.js',c_001_URL);
	}
}
function inclui_script(c_nome_do_script,c_001_URL){
    //----------------------------------------------------------
    /* campo text - valida texto */
    //----------------------------------------------------------
    t_str = '<scr'+'ipt language="JavaScript1.3" src="'; 
    t_str += c_001_URL + 'Global/Biblioteca/' + c_nome_do_script.toString(); 
    t_str += '" type="text/javascript"><\/scr'+'ipt><br>'; 
    document.write(t_str); 
}

