// Estas funções são usadas pelas pesquisas de diplomas numerados de 1ª e 2ª
// quer do portal normal quer do portal acessivel
// Evoca funções dos ficheiros comum.js e comumpb.js
function trataNumDipl1s(nCampo, anoActual)
{ // função para tratar o número de diploma e devolver o ano a que se refere no caso de ser válido
	var campo = document.getElementById(nCampo);
	var posBarra = campo.value.indexOf("/");
	var numero = '';
		numero = left(campo.value, posBarra);
	var anoValue = campo.value.substring(posBarra+1,campo.value.length)
	var letra='';
	var regiao='';

	if (posBarra==0)
	{ // no caso de começar por barra
		alert("Verifique o número de diploma introduzido.\nO formato é inválido. Em caso de dúvida consulte a página de ajuda.");
		return(false);
	}
	else {
		if (numero.indexOf("-")>0)
		{ // se existir um traço antes da primeira barra
			if (posBarra>numero.indexOf("-"))
				letra=numero.substring(numero.indexOf("-")+1,numero.length);
			/* Código omitido por causa da existência de um n.º 579-Q2/79 */
			/*if (letra=='' || !soLetras(letra))
			{ // verifica se entre o traço e a barra são só letras e existe pelo menos uma
				alert("Verifique o número de diploma introduzido!\nO formato é inválido.");
				return(false);
			}*/
			numero=left(numero,numero.indexOf("-"));
		}
		if (anoValue.indexOf("/")>0)
		{ // verifica se a seguir à primeira barra existe mais alguma
			regiao=anoValue.substring(anoValue.indexOf("/")+1,anoValue.length)
			if (regiao.length!=1 || (lCase(regiao)!="a" && lCase(regiao)!="m")) {
				alert("Verifique o número de diploma introduzido.\n\nO formato é inválido. Em caso de dúvida consulte a página de ajuda.");
				return(false);
			}
			anoValue=left(anoValue,anoValue.indexOf("/"))
		}
		if (anoValue.indexOf("-")>0)
		{ // verifica se a seguir à primeira barra existe algum traço
			regiao=trim(anoValue.substring(anoValue.indexOf("-")+1,anoValue.length));
			if ((lCase(regiao)!="a" && lCase(regiao)!="m" && lCase(regiao)!="ap") || ((regiao.length!=1) && (regiao.length!=2)))
			{
				alert("Verifique o número de diploma introduzido.\n\nO formato é inválido. Em caso de dúvida consulte a página de ajuda.");
				return(false);
			}
			if (lCase(regiao)!="ap")
			{
				campo.value=trim(left(campo.value,posBarra+1)+left(anoValue,anoValue.indexOf("-")))+"/"+regiao;
			}
			anoValue=anoValue.substr(0,anoValue.indexOf("-")-1);
		}
		if (anoValue.indexOf("(")>0)
		{ // verifica se a seguir à primeira barra existe algum (
			regiao=anoValue.substring(anoValue.indexOf("(")+1,anoValue.length)
			anoValue=anoValue.substring(0,anoValue.indexOf("("))
		}
		if (anoValue.length>0 && (anoValue.length != 2 && anoValue.length != 4)) {
			alert("Verifique o número de diploma introduzido.\nO ano deverá ter dois ou quatro algarismos. Em caso de dúvida consulte a página de ajuda.");
			return(false);
		}
		if (!((anoValue == 64) || ((anoValue >= 70) && (anoValue <= 99)) || ((anoValue >= 2000) && (anoValue <= anoActual)))) {
			alert("Verifique o número de diploma introduzido.\nO formato \"número/ano\" só está disponível no ano de 1964 e a partir de 1970. Em caso de dúvida consulte a página de ajuda.");
			return(false);
		}
		return(true);
	}

}
function trataNumDipl2s(nCampo)
{
	var campo = document.getElementById(nCampo);

	campo.value = trim(campo.value);
	var nDipl=uCase(campo.value);
	// coloca espaços no último "AP"
	if ((right(nDipl,2)=="AP") && (right(nDipl,5)!=" - AP")) {
		if (nDipl.charAt(nDipl.length-3)!="-")
			if (nDipl.charAt(nDipl.length-4)=="-") 
				if (nDipl.charAt(nDipl.length-5)==" ")
					nDipl=left(nDipl,nDipl.length-4) + "- AP";
				else
					nDipl=left(nDipl,nDipl.length-4) + " - AP";
			else
				nDipl=left(nDipl,nDipl.length-2) + " - AP";
		else
			if (nDipl.charAt(nDipl.length-4)==" ")
				nDipl=left(nDipl,nDipl.length-3) + "- AP";
			else
				nDipl=left(nDipl,nDipl.length-3) + " - AP";
	} else if ((right(nDipl,3)=="AP.") && (right(nDipl,6)!=" - AP.")) {
		if (nDipl.charAt(nDipl.length-4)!="-")
			if (nDipl.charAt(nDipl.length-5)=="-") 
				if (nDipl.charAt(nDipl.length-6)==" ")
					nDipl=left(nDipl,nDipl.length-3) + "- AP.";
				else
					nDipl=left(nDipl,nDipl.length-3) + " - AP.";
			else
				nDipl=left(nDipl,nDipl.length-3) + " - AP.";
		else
			if (nDipl.charAt(nDipl.length-5)==" ")
				nDipl=left(nDipl,nDipl.length-4) + "- AP.";
			else
				nDipl=left(nDipl,nDipl.length-4) + " - AP.";
	}
	// corrige (2.ª série)
	if (nDipl.indexOf('(2')>1)
		if ((nDipl.substr(nDipl.indexOf('(2') - 1, 1)) != " ") nDipl=left(nDipl,nDipl.indexOf('(2')) + " " + nDipl.substring(nDipl.indexOf('(2'),nDipl.length);
	if (nDipl.indexOf('(2ª')>0)
		nDipl=left(nDipl,nDipl.indexOf('(2ª')+2) + ".ª" + nDipl.substring(nDipl.indexOf('(2ª')+3,nDipl.length);
	if (nDipl.indexOf('(2 s')>0)
		nDipl=left(nDipl,nDipl.indexOf('(2 s')+2) + ".ª S" + nDipl.substring(nDipl.indexOf('(2 s')+4,nDipl.length);
	if (nDipl.indexOf('(2 S')>0)
		nDipl=left(nDipl,nDipl.indexOf('(2 S')+2) + ".ª S" + nDipl.substring(nDipl.indexOf('(2 S')+4,nDipl.length);
	if (nDipl.indexOf('SÉRIE)')>0)
		nDipl=left(nDipl,nDipl.indexOf('SÉRIE)')) + "Série)" + nDipl.substring(nDipl.indexOf('SÉRIE)')+6,nDipl.length);
	if (nDipl.indexOf('SERIE)')>0)
		nDipl=left(nDipl,nDipl.indexOf('SERIE)')) + "Série)" + nDipl.substring(nDipl.indexOf('SÉRIE)')+6,nDipl.length);
	if (nDipl.indexOf('serie)')>0)
		nDipl=left(nDipl,nDipl.indexOf('serie)')) + "Série)" + nDipl.substring(nDipl.indexOf('SÉRIE)')+6,nDipl.length);
	if (nDipl.indexOf('(2.ªs')>0)
		nDipl=left(nDipl,nDipl.indexOf('(2.ªs')+4) + " S" + nDipl.substring(nDipl.indexOf('(2.ªs')+5,nDipl.length);
	if (nDipl.indexOf('(2.ªS')>0)
		nDipl=left(nDipl,nDipl.indexOf('(2.ªS')+4) + " S" + nDipl.substring(nDipl.indexOf('(2.ªS')+5,nDipl.length);
	campo.value=nDipl;
	return(true);	
	// falta a validação do ano
}
function validaNumDipl(form, anoActual)
{
	var campo = document.getElementById('v02');

	if (form=='dip1s') limpaEspacos('v02');
	if (campo.value=='') return(true);

	if (campo.value.indexOf("/")>=0 && form=='dip1s') return(trataNumDipl1s('v02', form, anoActual));
	if (campo.value.indexOf("/")>=0 && form=='dip2s') return(trataNumDipl2s('v02', form, anoActual));
	return(true);
}
function validaForm(form, dataInicio, dataHoje, anoActual)
{ // Faz a validação da form antes do submit
	if ((document.getElementById('v01').value.length != 0) && (document.getElementById('v01').value.length < 3)) {
		alert("O tipo do diploma pode estar vazio ou então tem de ter no mínimo três caracteres.\n\nEm caso de dúvida consulte a página de ajuda.");
		return(false);
	}
	if (document.getElementById('v02').value=='' || document.getElementById('v02').value.length < 4) {
		alert("O número do diploma tem de ter no mínimo quatro caracteres.\n\nEm caso de dúvida consulte a página de ajuda.");
		return(false);
	}
	if (!validaNumDipl(form, anoActual)) return(false);

	return(true);
}