/******************************************************************
	TRABALHE CONOSCO
******************************************************************/

function validaTrabalhe()
{
	with (document.formulario)
	{
		if (isEmpty(nome))
		{
			abreAlerta("Preencha seu nome.");
			nome.focus();
			return;
		}
		
		if (isEmpty(email))
		{
			abreAlerta("Preencha seu e-mail.");
			email.focus();
			return;
		}
		
		if (!isEmail(email))
		{
			abreAlerta("E-mail digitado é inválido.");
			email.focus();
			return;
		}
		
		if (isEmpty(telefone))
		{
			abreAlerta("Preencha um telefone de contato.");
			telefone.focus();
			return;
		}
		
		if (isEmpty(estado))
		{
			abreAlerta("Selecione o estado onde reside.");
			estado.focus();
			return;
		}
		
		if (isEmpty(cidade))
		{
			abreAlerta("Selecione a cidade onde reside.");
			cidade.focus();
			return;
		}
		
		if (isEmpty(setor))
		{
			abreAlerta("Selecione o setor desejado.");
			setor.focus();
			return;
		}
		
		if (isEmpty(arquivo))
		{
			abreAlerta("Selecione seu currículo.");
			arquivo.focus();
			return;
		}
		
		if (!testFileType(arquivo.value, ['doc', 'docx', 'rtf', 'pdf', 'odt']))
		{
			abreAlerta("A extensão do arquivo selecionado é inválida.");
			arquivo.focus();
			return;								  
		}
				
		submit();
	}	
}


/******************************************************************
	CONTATO
******************************************************************/

function validaContato()
{
	with (document.formulario)
	{
		if (isEmpty(nome))
		{
			abreAlerta("Preencha seu nome.", 1000);
			nome.focus();
			return;
		}
		
		if (isEmpty(email))
		{
			abreAlerta("Preencha seu e-mail.", 1000);
			email.focus();
			return;
		}
		
		if (!isEmail(email))
		{
			abreAlerta("E-mail digitado é inválido.", 1000);
			email.focus();
			return;
		}
		
		if (isEmpty(telefone))
		{
			abreAlerta("Preencha um telefone de contato.", 1000);
			telefone.focus();
			return;
		}
		
		if (isEmpty(estado))
		{
			abreAlerta("Selecione o estado onde reside.", 1000);
			estado.focus();
			return;
		}
		
		if (isEmpty(cidade))
		{
			abreAlerta("Selecione a cidade onde reside.", 1000);
			cidade.focus();
			return;
		}
		
		if (isEmpty(setor))
		{
			abreAlerta("Selecione o setor desejado.", 1000);
			setor.focus();
			return;
		}
		
		if (isEmpty(mensagem))
		{
			abreAlerta("Preencha a mensagem.", 1000);
			mensagem.focus();
			return;
		}
				
		//Capta os dados do formulário
		var dados = $("#formulario").serialize();
		
		$.post("send.acoes.php?acao=contato", dados, function(msg){
	
			if (msg == "ok")
			{
				abreAlerta('Contato enviado com sucesso.<br><br>Obrigado<br>Equipe Visograf.', null);
			}
			
			if (msg == "erro")
			{
				abreAlerta('Ocorreu um erro ao enviar seu contato, tente novamete.', null);
			}
			
			clearForm("#formulario");
			
		});
	}	
}


/******************************************************************
	CADASTRO
******************************************************************/

function validaCadastro()
{
	with (document.formulario)
	{
		if (isEmpty(nome) || !isNotEqual(nome, 'Nome:'))
		{
			abreAlerta('Preencha seu nome.', 1000);
			nome.focus();
			return;
		}
		
		if (isEmpty(email) || !isNotEqual(email, 'E-mail:'))
		{
			abreAlerta('Preencha seu e-mail.', 1000);
			email.focus();
			return;
		}
		
		if (!isEmail(email))
		{
			abreAlerta('E-mail digitado é inválido.', 1000);
			email.focus();
			return;
		}
				
		//Capta os dados do formulário
		var dados = $("#formulario").serialize();
		
		$.post("send.acoes.php?acao=cadastro", dados, function(msg){
	
			if (msg == "ok")
			{
				abreAlerta('Cadastro enviado com sucesso.', 1000);
			}
			
			if (msg == "atualizado")
			{
				abreAlerta('Cadastro atualizado com sucesso.', 1000);
			}
			
			if (msg == "erro")
			{
				abreAlerta('Ocorreu um erro ao enviar seu cadastro, tente novamete.', 1000);
			}
			
			$("#nome").val("Nome:");
			$("#email").val("E-mail:");
			
		});
	}	
}


/******************************************************************
	ALERTA
******************************************************************/

function abreAlerta(msg, tempo)
{
	tm = (tempo==null || tempo=="") ? 2000 : tempo;
	
	$.blockUI({ 
		message: '<h2>'+msg+'</h2>',
		fadeIn: 400, 
        fadeOut: 200,
		timeout: 2000
	}); 	
}


/******************************************************************
	FOCUS E BLUR
******************************************************************/

function onFocus(campo, valor)
{
	if (campo.value == valor)
	{
		campo.value = "";
	}
}

function onBlur(campo, valor)
{
	if (campo.value == "")
	{
		campo.value = valor;
	}
}


/******************************************************************
	VALIDAÇÕES PADRÃO
******************************************************************/


function clearForm(form) 
{
	// iterate over all of the inputs for the form
	// element that was passed in
	$(':input', form).each(function() {
		
		var type = this.type;
		var tag = this.tagName.toLowerCase(); // normalize case
		
		// it's ok to reset the value attr of text inputs,
		// password inputs, and textareas
		if (type == 'text' || type == 'password' || tag == 'textarea')
			this.value = "";
		
		// checkboxes and radios need to have their checked state cleared
		// but should *not* have their 'value' changed
		else if (type == 'checkbox' || type == 'radio')
			this.checked = false;
		
		// select elements need to have their 'selectedIndex' property set to -1
		// (this works for both single and multiple select elements)
		else if (tag == 'select')
			this.selectedIndex = -1;
		
	});
}

function isEmpty(str)
{
	if (str.value == "" || str.value.length == 0)
	{
		return true;	
	}
	else
	{
		return false;
	}
}

function isDefValue(str, def)
{
	if (str.value == def)
	{
		return true;	
	}
	else
	{
		return false;
	}
}

function isInvalidFormat(str)
{
	var er = new RegExp(/[@!#$%&*+=?|-]/);
	
	if (typeof(str.value) == "string")
	{
        if (er.test(str.value))
		{ 
			return true; 
		}
    }
	else if (typeof(str) == "object")
	{
        if (er.test(str))
		{
           return true;
        }
    }
	else
	{
        return false;
    }
}

function isEqual(str1, str2)
{
	if (str2.value == str1.value)
	{
		return true;	
	}
	else
	{
		return false;
	}
}

function isNotEqual(str, val)
{
	if (str.value != val)
	{
		return true;	
	}
	else
	{
		return false;
	}
}

function isDate(str) 
{
	var dia = str.value.substr(0,2);
	var mes = str.value.substr(3,2);
	var ano = str.value.substr(6,4);
	
	var data = new Date();
	var intDia;
	var intMes;
	var intAno;

	data.setFullYear(ano, mes-1, dia);

	intDia = (data.getDate() == dia);
	intMes = (data.getMonth() == mes-1);
	intAno = (data.getFullYear() == ano);

	if (intDia && intMes && intAno)
	{
		return true;
	}
	else
	{
		return false;	
	}
}

function isEmail(str)
{
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
   
    if (typeof(str.value) == "string")
	{
        if (er.test(str.value))
		{ 
			return true; 
		}
    }
	else if (typeof(str) == "object")
	{
        if (er.test(str))
		{
           return true;
        }
    }
	else
	{
        return false;
    }
}

function isImage(str)
{
    var er = new RegExp(/[\w]+\.(gif|jpg|bmp|png|jpeg)$/gi);
   
    if (typeof(str.value) == "string")
	{
        if (er.test(str.value))
		{ 
			return true; 
		}
    }
	else if (typeof(str) == "object")
	{
        if (er.test(str))
		{
           return true;
        }
    }
	else
	{
        return false;
    }
}

function isDDD(str)
{
	var ddd = str.value.substr(1,2);
	
	if (ddd == "00" || str.length == 0 || str == "")
	{
		return false;
	}
	else
	{
		return true;	
	}
}

function isPhoneNumber(str)
{
	var fone   = str.value.substr(5,9);
	var digito = str.value.substr(5,1);
	var numero = fone.replace(".", "");	
	
	if (numero == "00000000" || numero == "11111111" || numero == "22222222" || numero == "33333333" || numero == "44444444" || numero == "55555555" || numero == "66666666" || numero == "77777777" || numero == "88888888" || numero == "99999999" || str.value.length < 14 || str.value == "" || digito == 0 || digito == 8 || digito == 9)
	{
		return false;
	}
	else
	{
		return true;	
	}
}

function isCelularNumber(str)
{
	var fone   = str.value.substr(5,9);
	var digito = str.value.substr(5,1);
	var numero = fone.replace(".", "");
	
	if (numero == "00000000" || numero == "11111111" || numero == "22222222" || numero == "33333333" || numero == "44444444" || numero == "55555555" || numero == "66666666" || numero == "77777777" || numero == "88888888" || numero == "99999999" || str.value.length < 14 || str.value == "" || digito < 8)
	{
		return false;
	}
	else
	{
		return true;	
	}
}

function isInteger(str)
{
	var er = new RegExp(/^[0-9]+$/);
	
	if (er.test(str.value)) 
	{
		return true;
	} 
	else 
	{
		return false;
	}
}

function testFileType(fileName, fileTypes) //['gif', 'jpg', 'png', 'jpeg']
{
	if (!fileName) return;
	
	dots = fileName.split(".");
	
	//get the part AFTER the LAST period.
	fileType = "." + dots[dots.length-1];
	
	return (fileTypes.join(".").indexOf(fileType) != -1) ? true : false;
}

function calculaIdade(d, m, y)
{
	var dia = parseInt(d);
	var mes = parseInt(m)-1;
	var ano = parseInt(y);
	
	var age;
	var now = new Date();
	
	diaAtual = now.getDate();
	mesAtual = now.getMonth();
	anoAtual = now.getFullYear();
	
	if ((mesAtual > mes)||(mesAtual == mes & diaAtual >= dia))
	{
		age = ano;
	}
	else
	{
		age = ano+1;
	}
	
	return anoAtual-age;
}
