// JavaScript Document

function testa_apoio(ff){
	// config
	valido = true;
	
	// faz validacao dos campos
	if(isEmpty(ff.apoio_url)) {
		valido = false;
	}
	if (ff.apoio_url.value == 'Cole aqui o link da página com seu conteúdo') {
		valido = false;
	}
	if (ff.apoio_url.value.indexOf('http:\/\/') == -1 && ff.apoio_url.value.indexOf('https:\/\/') == -1) {
		valido = false;	
	}

	// final

	if (valido) {
		return true;
	} else {
		alert('Oops, não foi possível enviar seu link. Tem certeza de que está correto?');
	}
	
	return false;
}

function testa_voto(ff){
	// config
	valido = true;
	
	var erroNome 		= document.getElementById('erroNome');
	var erroSobrenome 	= document.getElementById('erroSobrenome');
	var erroEmail 		= document.getElementById('erroEmail');
	var erroNasc		= document.getElementById('erroNasc');
	var erroPossuiNokia	= document.getElementById('erroPossuiNokia');
	var erroOptin		= document.getElementById('erroOptin');
	var erroCaptcha		= document.getElementById('erroCaptcha');
	
	// limpa tudo
	erroNome.innerHTML = '';	
	erroSobrenome.innerHTML = '';	
	erroEmail.innerHTML = '';	
	erroNasc.innerHTML = '';	
	erroPossuiNokia.innerHTML = '';	
	erroOptin.innerHTML = '';	
	erroCaptcha.innerHTML = '';	
	
	// faz validacao dos campos
	if(isEmpty(ff.nmfirst)) {
		valido = false;
		erroNome.innerHTML = "Preencha o nome corretamente.";
	}
	if(isEmpty(ff.nmlast)) {
		valido = false;
		erroSobrenome.innerHTML = "Preencha o sobrenome corretamente.";
	}
	if(isEmpty(ff.dsemail)) {
		valido = false;
		erroEmail.innerHTML = "Preencha seu e-mail.";
	} else if (!isEmail(ff.dsemail)) {
		valido = false;
		erroEmail.innerHTML = "E-mail inválido.";
	}
	if(isEmpty(ff.captcha)) {
		valido = false;
		erroCaptcha.innerHTML = "Digite o texto da imagem.";
	}

	
	// radios
	if(!isChecked(ff.flnokiaowner)) {
		valido = false;
		erroPossuiNokia.innerHTML = "Informe se você possui um Nokia.";
	}
	if(!isChecked(ff.floptin)) {
		valido = false;
		erroOptin.innerHTML = "Informe se deseja mais informações.";
	}
	
	// nascimento
	var nascimento = ff.nasc_dia.value + '/' +ff.nasc_mes.value+ '/' +ff.nasc_ano.value;
	if(isEmpty(ff.nasc_dia) || isEmpty(ff.nasc_mes) || isEmpty(ff.nasc_ano)) {
		valido = false;
		erroNasc.innerHTML = "Preencha a data de nascimento.";
	} else if (!isDate(nascimento)) {
		valido = false;
		erroNasc.innerHTML = "Data inválida.";
	}
	
	
	// final

	if (valido) {
		return true;
	} else {
		alert('Oops, não foi possível enviar seu voto. Veja os erros indicados na página.');
	}
	
	return false;
}

function testa_envio(ff){
	// config
	var valido = true;
	
	var erroNome1 = document.getElementById('erroNome1');
	var erroEmail1 = document.getElementById('erroEmail1');
	
	// limpa tudo
	erroNome1.innerHTML = '';	erroEmail1.innerHTML = '';	
	
	// faz validacao dos campos
	if(isEmpty(ff.nome1)) {
		valido = false;
		erroNome1.innerHTML = "Preencha o nome corretamente.";
	}
	if(isEmpty(ff.email1)) {
		valido = false;
		erroEmail1.innerHTML = "Preencha seu e-mail.";
	} else if (!isEmail(ff.email1)) {
		valido = false;
		erroEmail1.innerHTML = "E-mail inválido.";
	}
	
	// amigos
	incluirAmigo(true);
	if(isEmpty(ff.listaEmails)) {
		valido = false;
	}

	if (valido) {
		return true;
		//alert('tudo lindo!');	
	} else {
		alert('Oops, não foi possível enviar para seu amigo. Veja os erros indicados na página.');
	}
	
	return false;
}

function incluirAmigo(silencioso) {
	var valido = true;

	// config
	var listaNomes = document.getElementById('listaNomes');
	var listaEmails = document.getElementById('listaEmails');
	var nome2 = document.getElementById('nome2');
	var email2 = document.getElementById('email2');
	var erroNome2 = document.getElementById('erroNome2');
	var erroEmail2 = document.getElementById('erroEmail2');
	var amigo_list = document.getElementById('amigo_list');
	
	// limpa erros
	erroNome2.innerHTML = '';	erroEmail2.innerHTML = '';
	
	if(isEmpty(nome2)) {
		valido = false;
		erroNome2.innerHTML = "Preencha o nome corretamente.";
	}
	if(isEmpty(email2)) {
		valido = false;
		erroEmail2.innerHTML = "Preencha o e-mail.";
	} else if (!isEmail(email2)) {
		valido = false;
		erroEmail2.innerHTML = "E-mail inválido.";
	}
	
	if (valido) {
		listaNomes.value = listaNomes.value + nome2.value + ',';
		listaEmails.value = listaEmails.value + email2.value + ',';
		amigo_list.innerHTML = amigo_list.innerHTML + '\r' + nome2.value + " [" + email2.value + "]";
		nome2.value = email2.value = '';
	} else {
		if(!silencioso) {
			alert('Oops, não foi possível incluir seu amigo na lista. Veja os erros indicados na página.');
		}
	}
}


// --------------------------
// FUNÇÕES DE TEXTO

function replace( texto, procurar, novo ){
   len = procurar.length;
   pos = texto.indexOf(procurar);
   while (pos > -1){
      parte1 = texto.substring(0, pos);
      parte2 = texto.substring(pos + len , texto.length);
      texto = parte1 + novo + parte2;
      pos = texto.indexOf(procurar);
   }
   return texto;
}

function Trim(s){
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')){
		s = s.substring(1,s.length);
	}
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')){
		s = s.substring(0,s.length-1);
	}
	return s;
}




// ---------------------------
// FUNÇÕES DE VALIDAÇÃO DE FORMULÁRIO

function isEmpty(campo){
	if(Trim(campo.value) == ""){
		return true;
	}
	return false;
}

function isFile(campo, extensao){
	if(extensao.indexOf("#") != -1){
		if(!isEmpty(campo,"Selecione um arquivo com as extensões "+ replace(extensao,"#",", ") +"!")){
			return false;
		}
		var ext = extensao.split("#");
		var y = 0;
		for(var i=0;i<ext.length;i++){
			if(campo.value.indexOf(ext[i]) != -1){
				y = 1;
			}
		}
		if(y == 0){
			alert("A extensão do arquivo deve ser "+ replace(extensao,"#",", ") +"!");
			return false;
		}
		return true;
	}else{
		if(!isEmpty(campo,"Selecione um arquivo com a extensão "+extensao+"!")){
			return false;
		}
		if(campo.value.indexOf("."+extensao) != -1){
			return true;
		}else{
			alert("A extensão do arquivo deve ser "+ extensao +"!");
			return false;
		}
		return true;
	}
}


function isCEP(cep1, cep2, fl){
	if(fl == 1){
		if(cep1.value.length != 5){alert("Prefixo do CEP é inválido!");cep1.focus();return false;}
		if(cep2.value.length != 3){alert("Sufixo do CEP é inválido!");cep2.focus();return false;}
		if(cep1.value.length == 5 && cep2.value.length == 3)
			return true;
	}else{
		if(!isEmpty(cep1,"Preencha o CEP!")){return false;}
		if(!isEmpty(cep2,"Preencha o CEP!")){return false;}
		if(cep1.value.length != 5){alert("Prefixo do CEP é inválido!");cep1.focus();return false;}
		if(cep2.value.length != 3){alert("Sufixo do CEP é inválido!");cep2.focus();return false;}
		if(cep1.value.length == 5 && cep2.value.length == 3)
			return true;
	}
}


function isEmail(email){
	if(Trim(email.value) == ""){
		return false;
	}
	var goodEmail = email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
	if (!goodEmail){
		return false;
	}
	return true;
}


function isDate(dateStr){
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
//		alert("Preencha a data no formato dd/mm/aaaa!");
//		dateStr.select();
		return false;
	}

	month = matchArray[3]; // p@rse date into variables
	day = matchArray[1];
	year = matchArray[5];
	

	if (month < 1 || month > 12) { // check month range
//		alert("O mês precisa ser entre 1 e 12!");
//		dateStr.select();
		return false;
	}

	if (day < 1 || day > 31) {
//		alert("O dia precisa ser entre 1 e 31!");
//		dateStr.select();
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
//		alert("O mês "+month+" não tem 31 dias!");
//		dateStr.select();
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
//			alert("Fevereiro de " + year + " não tem " + day + " dias!");
//			dateStr.select();
			return false;
		}
	}
return true; // date is valid
}

function fmonth(m,a)
	{
	if(m == 4 || m == 6 || m == 9 || m == 11)
	return 30;
	else if(m == 2 && a/4 == Math.round(a/4))
		return 29;
	else if(m == 2)
		return 28;
	else
	return 31;
	}



function isChecked(checkbox){
	if(checkbox.value){
		if(!checkbox.checked){
			return false;
		}
	}else{
		var flag = 0;
		for(var i=0;i<checkbox.length;i++){
			if(checkbox[i].checked){
				flag = 1;
				i=checkbox.length;
			}
		}
		if(flag == 0){
			return false;
		}
	}
	return true;
}