// JavaScript Document

//valida se está com poucos caracteres ou se está vazia
function vaziacurta(elem){
	if(elem.value.length == 0){
		document.registo.info.value = "Campo de preenchimento obrigatório";
		return false;
	}
	else if(elem.value.length>=1 && elem.value.length<4){
		document.registo.info.value = "Caracteres insuficientes!";
		return false;
	}
	return true;
}

function contacto(elem){
	if(elem.value.length == 0){
		document.registo.info.value = "Campo de preenchimento obrigatório";
		return false;
	}
	else if(elem.value.length<9){
		document.registo.info.value = "Caracteres insuficientes!";
		return false;
	}
	return true;
}

// só aceita numeros
function soNumero(elem){

	var numero = /^[0-9]+$/;

	if(elem.value.match(numero)){
		return true;
	}else{
		document.registo.info.value = "Dados Inválidos!";
		return false;
	}
}

// valida só o texto, năo aceita outros caracteres ou numeros
function soTexto(elem){

	var letras = /^[a-z A-Z áéíóúăőâęîôűçÇÂĘÎÔŰÁÉÍÓÚĂŐ]+$/;
	
	if(elem.value.match(letras)){
		return true;
	}else{
		document.registo.info.value = "Dados Inválidos!";
		return false;
	}
}

function valida_mail(elem)
{
	res=true;
	ver = "Foram encontrados os seguintes erros:\n";
	
	with(elem)
		{
			arroba=value.indexOf("@");
			dot=value.lastIndexOf(".");
			
			if(elem.value.length==0){
				form.email.style.background = "#B0D2E3";
				form.email.focus();
				res = false;
				ver += "\nInsira o seu email";
				document.registo.info.value = "Campo de Preenchimento Obrigatório";
			}else
				

			if(arroba<1||dot-arroba<2){
				form.email.style.background = "#B0D2E3";
				form.email.focus();
				res = false;
				ver += "\nEmail inválido!";
				document.registo.info.value = "Dados Inválidos!";
			}
		}
		return res;
}


//valida formulário de registo
function valida(form)
{
	var res = true;
	ver = "Foram encontrados os seguintes erros:\n";
	
	if( !vaziacurta(form.nome)|| !soTexto(form.nome))
	{
		form.nome.style.background = "#B0D2E3";
		form.nome.focus();
		res = false;
		ver += "\nInsira o seu nome";
	}
	else{
		if(!valida_mail(form.email)){
			res = false;
		}
		else{
			if(form.username.value.length==0){
				form.username.style.background = "#B0D2E3";
				form.username.focus();
				res = false;
				ver += "\nInsira o seu username";
				document.registo.info.value = "Campo de preenchimento obrigatório";
			}
			else if (form.username.value.length<6){
				form.username.style.background = "#B0D2E3";
				form.username.focus();
				res = false;
				ver += "\nInsira o seu username\nDeve conter entre 6 a 15 caracteres";
				document.registo.info.value = "Tem menos de 6 caracteres";
			}
			else if (form.username.value.length>15){
				form.username.style.background = "#B0D2E3";
				form.username.focus();
				res = false;
				ver += "\nInsira o seu username\nDeve conter entre 6 a 15 caracteres";
				document.registo.info.value = "Tem mais de 15 caracteres";
			}
			
			else{
				
				if(form.pass.value.length==0){
					form.pass.style.background = "#B0D2E3";
					form.pass.focus();
					res = false;
					ver += "\nInsira a sua password";
					document.registo.info.value = "Campo de preenchimento obrigatório";
				}
				else if (form.pass.value.length<8){
					form.pass.style.background = "#B0D2E3";
					form.pass.focus();
					res = false;
					ver += "\nInsira a sua password\nDeve conter no mínimo 8 caracteres";
					document.registo.info.value = "Tem menos de 8 caracteres";
				}
				
				else{
					form.pass.style.backgroundColor="#FFFFFF";
					
					if(form.confpass.value != form.pass.value){
						form.confpass.style.background = "#B0D2E3";
						form.confpass.focus();
						res = false;
						ver += "\n Passwords nao correspondem";
						document.registo.info.value = "Dados Inválidos!";
					}
					else {
						form.confpass.style.backgroundColor="#FFFFFF";
						
						if (form.telefone.value.length>0){
							if (form.telefone.value.length<9){
								form.telefone.style.background = "#B0D2E3";
								form.telefone.focus();
								res = false;
								ver += "\nInsira o seu telefone correctamente";
								document.registo.info.value = "Deve conter 9 digítos";
								}
								else if (!soNumero(form.telefone)){
									form.telefone.style.background = "#B0D2E3";
									form.telefone.focus();
									res = false;
									ver += "\nInsira o seu telefone correctamente";
									}
						}
						else{							
						form.telefone.style.backgroundColor="#FFFFFF";
						
						if (form.telemovel.value.length>0){
													
							if (form.telemovel.value.length<9){
								form.telemovel.style.background = "#B0D2E3";
								form.telemovel.focus();
								res = false;
								ver += "\nInsira o seu telemóvel correctamente";
								document.registo.info.value = "Deve conter 9 digítos";
							}
							else if (!soNumero(form.telemovel) && form.telemovel.value.length<9){
								form.telemovel.style.background = "#B0D2E3";
								form.telemovel.focus();
								res = false;
								ver += "\nInsira o seu telemóvel correctamente";
							}
						}
						}
					}
				}
			}
		}
	}
	
	if(!res) alert(ver);	
	return res;
}

function limpa(){
	document.registo.nome.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.morada.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.email.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.username.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.pass.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.confpass.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.telefone.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
	document.registo.telemovel.style.backgroundColor = "#FFFFFF";
	document.registo.info.value = "";
}
