// COLLECTION FORM VALIDATION
function validate_collection() 
{
	
	// Respostas
	if (!($("#resposta-01").hasClass("tick")) && !($("#resposta-02").hasClass("tick")) && !($("#resposta-03").hasClass("tick"))) {
		window.alert('Por favor, selecione uma resposta');
		return false;
	}
		
	// Name
	if (!isNull($("#name").val())) {
		window.alert('Por favor, preencha seu nome corretamente');
		return false;					  
	}
	
	if (!isDDD($("#ddd").val())) {
		window.alert('Por favor, preencha seu DDD corretamente');
		return false;					  
	} 
	
	if (!isMobile($("#phone").val())) {
		window.alert('Por favor, preencha seu celular corretamente');
		return false;					  
	}
	
	if (!isEmail($("#email").val())) {
		window.alert('Por favor, preencha seu e-mail corretamente');
		return false;					  
	} 
	
	return true;
}

// CONTACT FALE CONOSCO
function validate_contact() 
{
		
	// Name
	if (!isNull($("#name").val())) {
		window.alert('Por favor, preencha seu nome corretamente');
		return false;					  
	}

	if (!isEmail($("#email").val())) {
		window.alert('Por favor, preencha seu e-mail corretamente');
		return false;					  
	} 
	
	if (!isNull($("#message").val())) {
		window.alert('Por favor, preencha a mensagem corretamente');
		return false;					  
	}
	
	return true;
}

// CONTACT CADASTRE-SE
function validate_signup() 
{
		
	// Name
	if (!isNull($("#name").val())) {
		window.alert('Por favor, preencha seu nome corretamente');
		return false;					  
	}

	if (!isEmail($("#email").val())) {
		window.alert('Por favor, preencha seu e-mail corretamente');
		return false;					  
	} 
	
	if (!isDDD($("#ddd").val())) {
		window.alert('Por favor, preencha seu DDD corretamente');
		return false;					  
	} 
	
	if (!isTelephone($("#phone").val())) {
		window.alert('Por favor, preencha seu telefone corretamente');
		return false;					  
	}
	
	if (!birthDate($("#birth-day").val(), $("#birth-month").val(), $("#birth-year").val())) {
		window.alert('Por favor, preencha a data de nascimento corretamente');
		return false;					  
	}
	
	if (!isNull($("#sexo").val())) {
		window.alert('Por favor, selecione o seu sexo');
		return false;					  
	}
	
	return true;
}

// CONTACT WORK
function validate_work() 
{
	// Name
	if (!isNull($("#name").val())) {
		window.alert('Por favor, preencha seu nome corretamente');
		return false;					  
	}

	if (!isEmail($("#email").val())) {
		window.alert('Por favor, preencha seu e-mail corretamente');
		return false;					  
	} 
	
	if (!isDDD($("#ddd").val())) {
		window.alert('Por favor, preencha seu DDD corretamente');
		return false;					  
	} 
	
	if (!isTelephone($("#phone").val())) {
		window.alert('Por favor, preencha seu telefone corretamente');
		return false;					  
	}
	
	if (!isNull($("#position").val())) {
		window.alert('Por favor, preencha o cargo corretamente');
		return false;					  
	}
	
	return true;
}

// FRANCHISE
function validate_franchise() 
{
	// Name
	if (!isNull($("#name").val())) {
		window.alert('Por favor, preencha seu nome corretamente');
		return false;					  
	}
	
	// Data de Nascimento
	if (!birthDate($("#birth-day").val(), $("#birth-month").val(), $("#birth-year").val())) {
		window.alert('Por favor, preencha a data de nascimento corretamente');
		return false;					  
	}
	
	if (!isNull($("#marital-status").val())) {
		window.alert('Por favor, preencha seu estado civil corretamente');
		return false;					  
	}
	
	if (!isNull($("#rg").val())) {
		window.alert('Por favor, preencha seu R.G. corretamente');
		return false;					  
	}
	
	if (!isCPF($("#cpf").val())) {
		window.alert('Por favor, preencha seu CPF corretamente');
		return false;					  
	}
	
	if (!isNull($("#neighborhood").val())) {
		window.alert('Por favor, preencha seu bairro corretamente');
		return false;					  
	}
	
	if (!isNull($("#city").val())) {
		window.alert('Por favor, preencha sua cidade corretamente');
		return false;					  
	}
	
	if (!isNull($("#state").val())) {
		window.alert('Por favor, preencha seu estado corretamente');
		return false;					  
	}
	
	if (!isNull($("#country").val())) {
		window.alert('Por favor, preencha seu país corretamente');
		return false;					  
	}
	
	if (!isCEP($("#cep").val())) {
		window.alert('Por favor, preencha seu CEP corretamente');
		return false;					  
	}
	
	if (!isFullPhone($("#phone").val())) {
		window.alert('Por favor, preencha seu telefone corretamente');
		return false;					  
	}
	
	if (!isFullPhone($("#mobile").val())) {
		window.alert('Por favor, preencha seu celular corretamente');
		return false;					  
	}
	
	if (!isEmail($("#email").val())) {
		window.alert('Por favor, preencha seu e-mail corretamente');
		return false;					  
	}
	
	if (!isNull($("#occupation").val())) {
		window.alert('Por favor, preencha sua profissão corretamente');
		return false;					  
	}
	
	if (!isNull($("#instruction").val())) {
		window.alert('Por favor, preencha sua escolaridade corretamente');
		return false;					  
	}
	
	if (!isNull($("#franchise-city").val())) {
		window.alert('Por favor, preencha a cidade de interesse da franquia corretamente');
		return false;					  
	}
	
	if (!isNull($("#franchise-state").val())) {
		window.alert('Por favor, preencha o estado de interesse da franquia corretamente');
		return false;					  
	}
	
	if (!isNull($("#franchise-country").val())) {
		window.alert('Por favor, preencha o país de interesse da franquia corretamente');
		return false;					  
	}
	
	if (!birthDate($("#franchise-day").val(), $("#franchise-month").val(), $("#franchise-year").val())) {
		window.alert('Por favor, preencha a data de cadastro da franquia corretamente');
		return false;					  
	}
	
	if (!isNull($("#question1").val()) || !isNull($("#question2").val()) || !isNull($("#question3").val())) {
		window.alert('Por favor, responda todas as questões');
		return false;					  
	}
	
	return true;
}


// FIELD VALIDATION
function isNull(value) {
	if (value.length == 0) return false;
	return true;
}

function isEmail(value) 
{
	var emailExpression = new RegExp(/^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i);
	return emailExpression.exec(value);
}

function isDDD(value)
{
	if(!isNull(value)) return false;
	if(value.length < 2) return false;
	if(value == "00") return false;
	return true;
}

function isMobile(value)
{
	if(!isNull(value)) return false;
	if(!isInteger(value)) return false;
	if(value.length < 8) return false;
	if(value.substring(0, 1) < 7) return false;
	return true;
}

function isTelephone(value)
{
	if(!isNull(value)) return false;
	if(value.length < 8) return false;
	return true;
}

function birthDate(day, month, year) 
{
	if (year == "" || year.length < 4) {
		return false;
	}
	if (day == "" || day.length < 2 || parseInt(day) > daysPerMonth(parseInt(month), parseInt(year)) || parseInt(day) < 1) {
		return false;
	}
	if (month == "" || month.length < 2 || parseInt(month) > 12 || parseInt(month) < 1) {
		return false;
	}
	return true;
}
		
function daysPerMonth(month, year) 
{
	if (month == 2)	{
		if (((year % 4) != 0) || (((year % 100) == 0) && ((year % 400) != 0))) return 28;
		else return 29;
	} else {
		if (month < 8) return (30 + (month % 2));
		else return (31 - (month % 2));
	}
}


function isCPF(cpf) 
{
	var i;  
	s = cpf;  
	var c = s.substr(0,9);  
	var dv = s.substr(9,2);  
	var d1 = 0;  
	  
	for (i = 0; i < 9; i++) {  
	   d1 += c.charAt(i)*(10-i);  
	}  
	  
	if (d1 == 0)  return false;  
	  
	d1 = 11 - (d1 % 11);  
	if (d1 > 9) d1 = 0;  
	if (dv.charAt(0) != d1) return false;  
	  
	d1 *= 2;  
	for (i = 0; i < 9; i++) {  
	  d1 += c.charAt(i)*(11-i);  
	}  
	  
	d1 = 11 - (d1 % 11);  
	if (d1 > 9) d1 = 0;  
	if (dv.charAt(1) != d1) {  
	   return false;  
	}  
	return true;  
}  

function isCEP(cep)
{
	var cepExpression = new RegExp(/^[0-9]{5}-[0-9]{3}$/);
	return cepExpression.exec(cep);
}

function isFullPhone(phone)
{
	var cepExpression = new RegExp(/^[0-9]{2} [0-9]{4}-[0-9]{4}$/);
	return cepExpression.exec(phone);
}

function isInteger(value) 
{
	var integerExpression = new RegExp(/^\d+$/);
	return integerExpression.exec(value);
}