MaskInput = function(f, m){
	function mask(e){
		var patterns = {"1": /[A-Z]/i, "2": /[0-9]/, "4": /[\xC0-\xFF]/i, "8": /./ },
			rules = { "a": 3, "A": 7, "9": 2, "C":5, "c": 1, "*": 8};
		function accept(c, rule){
			for(var i = 1, r = rules[rule] || 0; i <= r; i<<=1)
				if(r & i && patterns[i].test(c))
					break;
				return i <= r || c == rule;
		}
		var k, mC, r, c = String.fromCharCode(k = e.key), l = f.value.length;
		(!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) && (r[0] = r[2].indexOf(c) + 1) + 1 ?
			r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0]
			: (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ?
			r.index : l)).length) < m.length && accept(c, m.charAt(l))) || e.preventDefault();
	}
	for(var i in !/^(.)\^(.*)$/.test(m) && (f.maxLength = m.length), {keypress: 0, keyup: 1})
		addEvent(f, i, mask);
};


function validaForm(form){

	var lista1=0,lista2=0,lista3=0,mensagemE="",mensagem=""
	for($x=0;$x<=9;$x++){
		if(form.titulo[$x].value==""){
			lista1 = parseInt(lista1) +1;
		}
	}

	for($x=11;$x<=20;$x++){
		if(form.titulo[$x].value==""){
			lista2 = parseInt(lista2) +1;
		}
	}

	for($x=20;$x<30;$x++){
		if(form.titulo[$x].value==""){
			lista3 = parseInt(lista3) +1;
		}
	}

	//alert("lista1:"+lista1+" \nlista2:"+lista2+"\nlista3:"+lista3)

	var nomes = form.nome.value.split(" ")
	if(form.nome.value==""){
		mensagemE += " - Preencha o campo Nome \n"; 
	}else if(nomes.length<2){
		mensagemE += " - Nome muito pequeno\n"; 
	}else if(nomes.length>6){
		mensagemE += " - Nome muito grande\n"; 	
	}

	if (form.cpf.value==""){
		mensagemE += " - Preencha o campo CPF. \n"
	}else if(isCPF(form.cpf)==false){
		mensagemE += " - O CPF informado é inválido. \n"
	}

	if (lista1==10){
		mensagemE += " - Preencha os 10 itens da lista 1 para continuar. \n"
		//alert(1)
	}

	if(lista2==10){
		mensagem = mensagem + " - A lista 2 não foi preenchida. \n"
		//alert(2)
	}

	if(lista3==10){
		mensagem = mensagem + " - A lista 3 não foi preenchida. \n"
		//alert(3)
	}

	if(lista1>1){
		if(form.lista1.value==""){
			mensagemE += " - Informe o nome da lista 1. \n"
		}
		if(lista1!=10){
			mensagemE += " - A lista 1 não foi preenchida corretamente. \n"
		}
	}

	if(lista2>1){
		if(lista2!=10){
			if(form.lista2.value==""){
			mensagemE += " - Informe o nome da lista 2. \n"
			}
			mensagemE += " - A lista 2 não foi preenchida corretamente. \n"
		}
	}
	
	if(lista3>1){
		if(lista3!=10){
			if(form.lista3.value==""){
			mensagemE = mensagemE + " - Informe o nome da lista 3. \n"
			}
			mensagemE = mensagemE + " - A lista 3 não foi preenchida corretamente. \n"
		}
	}
	
	if(mensagemE!=""){
		alert("Alguns erros foram encontrados: \n\n" + mensagemE + "\n")
		return false;
	}else{
			if(mensagem!=""){
				if(confirm("ATENÇÃO \n\n" + mensagem + "\nClique em OK para finalizar ou CANCELAR para continuar preechendo. \nOBS: O preenchimento acima não é obrigatório. ")){
				//alert("enviou")
					return true;
				}else{
					return false;
				}
			}else{
				return true;
			}
	}
}


function isCPF(campo){
	teste = new Array();
	obj = eval(campo).value.replace(" -",""); 
	obj = obj.replace("/","")
	var D1,D2,D1calc,D2calc,aux;
	var j = 0;
	var counter = 0;
	for(i=0;i<obj.length;i++){
	 if(!isNaN(obj.substring(i,i+1))){
	  teste[j] = obj.substring(i,i+1);
	  j++;
	 }
	}
	aux = teste[0];
	for(i=0;i<teste.length;i++){
	 if(teste[i] == aux){
	  counter++;
	 }
	}

	if(counter == teste.length){
	 return false;
	}

	D1 = teste[j-2];
	D2 = teste[j-1];
	D1calc = 0;
	D2calc = 0;
	var loop = j-2;
	for(i=0;i<loop;i++){
	 D1calc += Number(teste[i])*(10-i); 
	 D2calc += Number(teste[i])*(11-i); 
	}

	D1calc = (D1calc*10)%11;
	if(D1calc == 10){D1calc=0};
	D2calc = ((D2calc+(2*D1calc))*10)%11;
		if(D2calc == 10){D2calc=0};
	
	if(D1 == D1calc && D2 == D2calc){
	 return true;
	}
	else{
	 return false;
	}
}