// Browser Detection
isMac = (navigator.appVersion.indexOf("Mac")!=-1) ? true : false;
NS4 = (document.layers) ? true : false;
IEmac = ((document.all)&&(isMac)) ? true : false;
IE4plus = (document.all) ? true : false;
IE4 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false;
IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
ver4 = (NS4 || IE4plus) ? true : false;
NS6 = (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;


////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCOES GENERICAS
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function GetControlValue(form,controlname){
	return(form.elements[controlname].value);
}

function SetControlValue(form,controlname,controlvalue){
  form.elements[controlname].value = controlvalue;
}

function SetControlFocus(form,controlname){
	form.elements[controlname].focus();
}

function FormCheckGeneric(form,controlname,fieldName,controlsetfocus){
	
	if(GetControlValue(form,controlname)==""){
		alert("Por favor preencha o campo " + fieldName + ".");
		SetControlFocus(form,controlsetfocus);
		return(false);
	}else{
		return(true);
	}
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////
// inputype = "decimal","integer","string"
//
// runtime = "true","false" - Se for true significa que est� a validar no momento do input.
//				Se for false est� a validar � posteiori

//KeyPressMaxLength('FieldAmount2',15)
/////////////////////////////////////////////////////

function ValidateInput(inputype,form,controlname,fieldname,minlen,maxlen,decimalplaces,runtime){
var elem = new String();
var fieldvalue = new String();
var fieldvalueaux = new String();
var re;

	fieldvalue = GetControlValue(form,controlname)

	if(runtime){
		if(inputype == "decimal")
			if(navigator.appName == "Netscape")
				return ((evt.which >=48 && evt.which <= 57) || evt.which == 44 || evt.which == 0 || evt.which == 8)
			else
				if(((window.event.keyCode < 48 || window.event.keyCode > 57) && window.event.keyCode != 44) || (fieldvalue.length>=maxlen && maxlen>0))
					window.event.keyCode = "";
	
		if(inputype == "integer")
			if(navigator.appName == "Netscape")
				return ((evt.which >= 48 && evt.which <= 57) || evt.which == 0 || evt.which == 8);
			else
		  		if((window.event.keyCode < 48 || window.event.keyCode > 57) || (fieldvalue.length>=maxlen && maxlen>0))
		        		window.event.keyCode = "";
		
	}else{
		fieldvalue = fieldvalue.replace(" ","");
	
		if((minlen>0 && fieldvalue.length<minlen) || fieldvalue.length>maxlen){
			if(minlen == maxlen)
				alert("O campo " + fieldname + " tem que ter " + minlen + " caracteres.");
			else
				alert("O campo " + fieldname + " tem que ter entre " + minlen + " e " + maxlen + " caracteres.");
			SetControlFocus(form,controlname);
			return(false);
	
		}
		
		if(inputype == "decimal" || inputype == "integer"){
			re = /[0-9 . ,]*/g;
			fieldvalueaux = fieldvalue.replace(re,"");
			if (fieldvalueaux.length != 0){
				alert("O campo " + fieldname + " tem que ter apenas d\355gitos.");
				SetControlFocus(form,controlname);
				return(false);
			}
	
			if(decimalplaces<=0) decimalplaces = 1;
			fieldvalueaux = fieldvalue.replace(eval("/(-){0,1}\\d+(,\\d{1," + decimalplaces +"})?/"),"");
		
			if ((fieldvalue.length == 0)||(fieldvalueaux.length != 0))
			{
		   	  alert("O campo " + fieldname + " \351 um valor inv\341lido. Tem que ser um n\372mero com, no m\341ximo, " + decimalplaces + " casas decimais, separado por uma v\355rgula.");
		   	  SetControlFocus(form,controlname);
			  return(false);
			}
		}	
		return(true);
	}
}

function VerifyEmailAddress(form,controlname,fieldname){
var fieldvalue = new String();

	fieldvalue = GetControlValue(form,controlname);
	var regex = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$");
     
	if(!regex.test(fieldvalue)){
		alert("O endere\347o " + fieldname +" \351 inv\341lido.");
		return(false);
	}
	return(true);
}
  
function VerifyQuotaParte(form,controlname,fieldname){
var fieldvalue = "";

	fieldvalue = GetControlValue(form,controlname);
	var regex = new RegExp("[0-9]+/[0-9]+");
	
	if(!regex.test(fieldvalue)){
		alert("O campo " + fieldname +" \351 inv\341lido.");
		//regex ="";
		return(false);
	}
	return(true);
}

function FieldFocusGeneric(form,controlname, tamanho, focuscontrolname){
var fieldvalue = new String();

	fieldvalue = GetControlValue(form,controlname);
	if(fieldvalue.length >= tamanho) SetControlFocus(form,focuscontrolname);
}

function numbersOnly(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

// decimal point jump
/*
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
*/
else if (((keychar == ".")||(keychar == ",")) && dec && (dec==true))
   {
   return true;
   }
else
   return false;
}

function ValidateTaxNumber(form,controlname,fieldname,type)
{
	var intCounter = new Number();
	var intNumber = new Number();
	var strTempFiscalNumber = new String();
	var strFiscalNumber = new String();
	
	strFiscalNumber = GetControlValue(form,controlname);
	
	if(type=='S'){
		if(strFiscalNumber.charAt(0) != "1" && strFiscalNumber.charAt(0)!="2" && strFiscalNumber.charAt(0)!="9"){
			alert("O n\372mero de contribuinte introduzido ("+fieldname+") n\343o corresponde a um particular.");
			SetControlFocus(form,controlname);
			return false;
		}
	}else if(type=='C'){
		if(strFiscalNumber.charAt(0)=="1" || strFiscalNumber.charAt(0)=="2" || (strFiscalNumber.charAt(0)=="9" && strFiscalNumber.charAt(1)!="8")){
			alert("O n\372mero de contribuinte introduzido ("+fieldname+") n\343o corresponde a uma pessoa colectiva.");
			SetControlFocus(form,controlname);
			return false;
		}
	}
	
	intNumber = 0;
	strTempFiscalNumber = strFiscalNumber;
	
	for (intCounter=0; intCounter<=7; intCounter++){
		intNumber +=(strTempFiscalNumber.substr(intCounter, 1)!="")?parseInt(strTempFiscalNumber.substr(intCounter, 1), 10) * (9-intCounter):0;
	}
	
	intNumber = 11 - (intNumber % 11);
	if (intNumber>9)
		intNumber = 0;

	if (intNumber != parseInt(strTempFiscalNumber.substr(8,1), 10)){
		alert("O n\372mero de contribuinte ("+fieldname+") introduzido \351 inv\341lido.");
		SetControlFocus(form,controlname);
		return false;
	}

	return true;	
}

function VerifyDate(form,controlname,fieldname){
var today = new Date();
var auxStr = new String(),
dateStr = new String();
var dateArray;
var num = new Number();
var day, month, year;

	dateStr = GetControlValue(form,controlname);

	if (dateStr.length != 10) {
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}

	auxStr = dateStr.replace(/[0-9]|-*/g,"");
	if (auxStr.length != 0){
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}

	dateArray = dateStr.split("-");
	if (dateArray.length != 3){
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	  
	num = parseInt(dateArray[0], 10);
	if ((num<=0) || (num>=32)) {
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O dia est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	day = num;

	num = parseInt(dateArray[1], 10);
	if ((num<=0) || (num>=13)){
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O mês est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	month = num;
	
	num = parseInt(dateArray[2], 10);
	if (num<=1900){
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O ano est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	year = num;
	
	if ( (today.getFullYear() < year) ||
	     ((today.getFullYear() == year) && (today.getMonth()+1 < month)) || 
	     ((today.getFullYear() == year) && (today.getMonth()+1 == month) && (today.getDate() < day))){
	  alert("O campo " + fieldname + " \351 uma data incorrecta pois \351 posterior ao dia de hoje.");
	  SetControlFocus(form,controlname);
	  return false;
	}
	return true;	
}

function VerifyDate2(form,controlname,fieldname){
var auxStr = new String(),
dateStr = new String();
var dateArray;
var numDay = new Number();
var numMonth = new Number();
var numYear = new Number();
var day, month, year;

	dateStr = GetControlValue(form,controlname);

	if (dateStr.length != 10) {
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}

	auxStr = dateStr.replace(/[0-9]|-*/g,"");
	if (auxStr.length != 0){
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}

	dateArray = dateStr.split("-");
	if (dateArray.length != 3){
   	  alert("Por favor preencha o campo " + fieldname + " no formato 'dd-mm-aaaa'.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	  
	numDay = parseInt(dateArray[0], 10);
	if ((numDay<=0) || (numDay>=32)) {
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O dia est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	
	numMonth = parseInt(dateArray[1], 10);
	if ((numMonth<=0) || (numMonth>=13)){
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O mês est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	
	numYear = parseInt(dateArray[2], 10);
	if (numYear<=1900){
   	  alert("O campo " + fieldname + " tem o formato inv\341lido. O ano est\341 incorrecto.");
   	  SetControlFocus(form,controlname);
	  return false;
	}
	
	if(((numMonth==4) || (numMonth==6) || (numMonth==9) || (numMonth==11)) && (numDay==31)){
		alert("O campo " + fieldname + " tem o formato inv\341lido. O dia est\341 incorrecto.");
	  	SetControlFocus(form,controlname);
		return false;
	}
	if((numMonth==2) && (numDay==30)){
		alert("O campo " + fieldname + " tem o formato inv\341lido. O dia est\341 incorrecto.");
   	  	SetControlFocus(form,controlname);
		return false;
	}
	if((!((numYear%4)==0)) && (numMonth==2) && (numDay==29)){
		alert("O campo " + fieldname + " tem o formato inv\341lido. O dia est\341 incorrecto.");
   	  	SetControlFocus(form,controlname);
		return false;
	}
		
	day = numDay;
	month = numMonth;
	year = numYear;
			
	myDate = new Date(year,month-1,day);
	if(myDate.getDay() == 0 || myDate.getDay() == 6){
		alert("A " + fieldname + " n\343o corresponde a um dia \372til.");
		return false;
	}
	
	return true;	
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCOES PARA GEOGRAFIA
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function loadDistrito(formname,dist,conc,freg){
var s = 0;

	document.forms[formname].distrito.options.length = 0;
	document.forms[formname].concelho.options.length = 0;
	document.forms[formname].freguesia.options.length = 0;
	document.forms[formname].concelho.options[0]= new Option('--escolha--','');
	document.forms[formname].freguesia.options[0]= new Option('--escolha--','');
	
	document.forms[formname].distrito.options[0]= new Option('--escolha--','');
	
	document.forms[formname].distrito.selectedIndex = 0;
	document.forms[formname].concelho.selectedIndex = 0;
	document.forms[formname].freguesia.selectedIndex = 0;
	
	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getDistritos.jsp');

	var oNodes = oXmlDoc.getElementsByTagName("d");
	for (var i=0; i < oNodes.length; i++){
		if(oNodes.item(i).attributes.item(1).value==dist)
			s=i+1;
		document.forms[formname].distrito.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}
	if(s>0){
		document.forms[formname].distrito.selectedIndex=s;
		changeDistrito(formname,conc);
		changeConcelho(formname,freg);
		changeFreguesia(formname);
	}
}

function changeDistrito(formname, conc){
var s = 0;
	document.forms[formname].distrito_descricao.value = document.forms[formname].distrito[document.forms[formname].distrito.selectedIndex].text;

	document.forms[formname].concelho.options.length = 0;
	document.forms[formname].concelho.options[0]= new Option('--escolha--','');
	document.forms[formname].concelho_descricao.value = '';

	document.forms[formname].freguesia.options.length = 0;
	document.forms[formname].freguesia.options[0]= new Option('--escolha--','');
	document.forms[formname].freguesia_descricao.value = '';
	
	document.forms[formname].concelho.selectedIndex = 0;
	document.forms[formname].freguesia.selectedIndex = 0;
	
	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getConcelhos.jsp?idDistrito=' + document.forms[formname].distrito.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("c");
	for (var i=0; i < oNodes.length; i++){
		if(oNodes.item(i).attributes.item(1).value==conc)
			s=i+1;
		document.forms[formname].concelho.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}
	if(s>0)
		document.forms[formname].concelho.selectedIndex=s;
}

function changeConcelho(formname, freg)
{
var s = 0;
	document.forms[formname].concelho_descricao.value = document.forms[formname].concelho[document.forms[formname].concelho.selectedIndex].text;

	document.forms[formname].freguesia.options.length = 0;
	document.forms[formname].freguesia.options[0]= new Option('--escolha--','');
	document.forms[formname].freguesia_descricao.value = '';

	document.forms[formname].freguesia.selectedIndex = 0;

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getFreguesias.jsp?idConcelho=' + document.forms[formname].concelho.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("f");
	for (var i=0; i < oNodes.length; i++){
		if(oNodes.item(i).attributes.item(1).value==freg)
			s=i+1;
		document.forms[formname].freguesia.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}

	if(s>0)
		document.forms[formname].freguesia.selectedIndex=s;
}

/* Alterações JCarias 2008-02-05 - Agenda*/
function changeConservatoria(formname, conserv)
{
    if(document.forms[0].user_conservatoria==null)
        return;
    
    var s = 0;    
	document.forms[0].user_conservatoria.options.length = 0;
	document.forms[0].user_conservatoria.options[0] = new Option('--escolha--','');

	document.forms[0].user_conservatoria.selectedIndex = 0;

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../casapronta/getUsersConservatoria.jsp?idConservatoria=' + document.forms[0].conservatoria.value);
	var oNodes = oXmlDoc.getElementsByTagName("f");
	for (var i=0; i < oNodes.length; i++){
		document.forms[0].user_conservatoria.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}

	if(s>0)
		document.forms[0].user_conservatoria.selectedIndex=s;
}

function changeFreguesia(formname)
{
	document.forms[formname].freguesia_descricao.value = document.forms[formname].freguesia[document.forms[formname].freguesia.selectedIndex].text;
}


function changeDistritoSeq(formname, conc,seqfreg){
var s = 0;
var distcontrol="";
var distdesccontrol="";
var e;
var ed;

	document.forms[formname].distrito_descricao1.value = document.forms[formname].distrito1[document.forms[formname].distrito1.selectedIndex].text;

	document.forms[formname].concelho1.options.length = 0;
	document.forms[formname].concelho1.options[0]= new Option('--escolha--','');
	document.forms[formname].concelho_descricao1.value = "";

	for(i=1;i<=seqfreg;i++){
		e = document.getElementById("freguesia"+i);
		ed = document.getElementById("freguesia_descricao"+i);
		e.options.length = 0;
		e.options[0]= new Option('--escolha--','');
		ed.value = "";
	}

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getConcelhos.jsp?idDistrito=' + document.forms[formname].distrito1.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("c");
	for (var i=0; i < oNodes.length; i++){
		if(oNodes.item(i).attributes.item(1).value==conc)
			s=i+1;
		document.forms[formname].concelho1.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}
	if(s>0)
		document.forms[formname].concelho1.selectedIndex=s;
}

function ProcessochangeDistritoSeq(formname, conc, seqfreg, idx){
var s = 0;
var distcontrol="";
var distdesccontrol="";
var c,d,f;
var cd,dd,fd;
    
    d = document.getElementById("distrito"+ idx);
	dd = document.getElementById("distrito_descricao" + idx);
	dd.value = d[d.selectedIndex].text;
    d.options[d.selectedIndex].selected="selected";
    //document.forms[formname].distrito_descricao1.value = document.forms[formname].distrito1[document.forms[formname].distrito1.selectedIndex].text;
    
    c = document.getElementById("concelho"+ idx);
    c.options.length = 0;
    c.options[0]= new Option('--escolha--','');
    /*
    document.forms[formname].concelho1.options.length = 0;
	document.forms[formname].concelho1.options[0]= new Option('--escolha--','');
    */
    
	cd = document.getElementById("concelho_descricao" + idx);
    cd.value = "";
    //document.forms[formname].concelho_descricao1.value = "";
    
	//for(i=1;i<=seqfreg;i++){
        //e = document.getElementById("freguesia"+i);
		//ed = document.getElementById("freguesia_descricao"+i);
		f = document.getElementById("freguesia"+idx);
		fd = document.getElementById("freguesia_descricao"+idx);
		f.options.length = 0;
		f.options[0]= new Option('--escolha--','');
		fd.value = "";
	//}

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getConcelhos.jsp?idDistrito=' + d.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("c");
	for (var i=0; i < oNodes.length; i++){
		if(oNodes.item(i).attributes.item(1).value==conc)
			s=i+1;
        c.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
		//document.forms[formname].concelho1.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
	}
	if(s>0)
        c.selectedIndex=s;
		//document.forms[formname].concelho1.selectedIndex=s;
}

function changeConcelhoSeq(formname, freg,seqfreg)
{
var s = 0;
var e;
var ed;
var i;

	document.forms[formname].concelho_descricao1.value = document.forms[formname].concelho1[document.forms[formname].concelho1.selectedIndex].text;

	for(i=1;i<=seqfreg;i++){
		e = document.getElementById("freguesia"+i);
		ed = document.getElementById("freguesia_descricao"+i);
		e.options.length = 0;
		e.options[0]= new Option('--escolha--','');
		ed.value = "";
	}

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getFreguesias.jsp?idConcelho=' + document.forms[formname].concelho1.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("f");
		for (i=0; i < oNodes.length; i++){
			if(oNodes.item(i).attributes.item(1).value==freg)
				s=i+1;
			e = document.getElementById("freguesia1");
			e.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
			//document.forms[formname].freguesia.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
		}		

	/*for(j=1;j<=seqfreg;j++){
		for (var i=0; i < oNodes.length; i++){
			if(oNodes(i).attributes(1).text==freg)
				s=i+1;
			e = document.getElementById("freguesia"+j);
			e.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
			//document.forms[formname].freguesia.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
		}		
	}*/

	if(s>0)
		e.selectedIndex=s;
		//document.forms[formname].freguesia.selectedIndex=s;
}

function ProcessochangeConcelhoSeq(formname, freg,seqfreg, idx)
{
var s = 0;
var e;
var ed;
var i;

var c, f;
var cd, fd;

    c = document.getElementById("concelho"+idx);
    cd = document.getElementById("concelho_descricao"+idx);
    
	cd.value = c[c.selectedIndex].text;
    
    f = document.getElementById("freguesia"+idx);
    fd = document.getElementById("freguesia_descricao"+idx);
    f.options.length = 0;
    f.options[0]= new Option('--escolha--','');
    fd.value = "";

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
    
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getFreguesias.jsp?idConcelho=' + c.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("f");
		for (i=0; i < oNodes.length; i++){
			if(oNodes.item(i).attributes.item(1).value==freg)
				s=i+1;
			f.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
			//document.forms[formname].freguesia.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
		}		

	/*for(j=1;j<=seqfreg;j++){
		for (var i=0; i < oNodes.length; i++){
			if(oNodes(i).attributes(1).text==freg)
				s=i+1;
			e = document.getElementById("freguesia"+j);
			e.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
			//document.forms[formname].freguesia.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
		}		
	}*/

	if(s>0)
		f.selectedIndex=s;
		//document.forms[formname].freguesia.selectedIndex=s;
}

function changeFreguesiaCon(formname,seqfreg)
{
var e;
var ed;
var j;
var i;

	e = document.getElementById("freguesia1");
	ed = document.getElementById("freguesia_descricao1");
	ed.value = e[e.selectedIndex].text;

	for(i=2;i<=seqfreg;i++){
		e = document.getElementById("freguesia"+i);
		ed = document.getElementById("freguesia_descricao"+i);
		e.options.length = 0;
		e.options[0]= new Option('--escolha--','');
		ed.value = "";
	}

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getFreguesias.jsp?idFreguesia=' + document.forms[formname].freguesia1.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("f");
	for(j=2;j<=seqfreg;j++){
		for (i=0; i < oNodes.length; i++){
			//if(oNodes(i).attributes(1).text==freg)
			//	s=i+1;
			e = document.getElementById("freguesia"+j);
			e.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
			//document.forms[formname].freguesia.options[i+1]= new Option(oNodes(i).attributes(0).text,oNodes(i).attributes(1).text);
		}		
	}

	//if(s>0)
	//	e.selectedIndex=s;
		//document.forms[formname].freguesia.selectedIndex=s;
}


// ----------------------
function ProcessochangeFreguesiaCon(formname,seqfreg, idx)
{
var e;
var ed;
var j;
var i;

	e = document.getElementById("freguesia"+ idx);
	ed = document.getElementById("freguesia_descricao" + idx);
	ed.value = e[e.selectedIndex].text;
    /*
	for(i=2;i<=seqfreg;i++){
		e = document.getElementById("freguesia"+i);
		ed = document.getElementById("freguesia_descricao"+i);
		e.options.length = 0;
		e.options[0]= new Option('--escolha--','');
		ed.value = "";
	}

	if (window.ActiveXObject)
	{
		var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else
	{
		var oXmlDoc = document.implementation.createDocument("","",null);
	}
	oXmlDoc.async = false; 
	oXmlDoc.load('../preferencias/getFreguesias.jsp?idFreguesia=' + document.forms[formname].freguesia1.value);
	
	var oNodes = oXmlDoc.getElementsByTagName("f");
	for(j=2;j<=seqfreg;j++){
		for (i=0; i < oNodes.length; i++){
			
			//e = document.getElementById("freguesia"+j);
            e = document.getElementById("freguesia"+idx);
			e.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
		}		
	}
*/
	//if(s>0)
	//	e.selectedIndex=s;
		//document.forms[formname].freguesia.selectedIndex=s;
}
// ----------------------




function changeFreguesiaSeq(formname,numseq,freg)
{
var e;
var ed;
var i;
	e = document.getElementById("freguesia"+numseq);
	ed = document.getElementById("freguesia_descricao"+numseq);
	
	if(freg==""){
		ed.value = e[e.selectedIndex].text;
	}else{
		for(i=0;i<e.options.length;i++){
			if(e[i].value==freg){
				e.selectedIndex=i;
				return true;
			}
		}
	}
}

function loadDistritoSeq(formname,dist,conc,freg,numseq,maxInterv){
var s = 0;
var e;

	if (numseq==1){
		document.forms[formname].distrito1.options.length = 0;
		document.forms[formname].distrito1.options[0]= new Option('--escolha--','');
		document.forms[formname].concelho1.options.length = 0;
		document.forms[formname].concelho1.options[0]= new Option('--escolha--','');
	}
	
	if(numseq==1){
		if (window.ActiveXObject)
		{
			var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		}
		else
		{
			var oXmlDoc = document.implementation.createDocument("","",null);
		}
		oXmlDoc.async = false; 
		oXmlDoc.load('../preferencias/getDistritos.jsp');
	
		var oNodes = oXmlDoc.getElementsByTagName("d");
		for (var i=0; i < oNodes.length; i++){
			if(oNodes.item(i).attributes.item(1).value==dist)
				s=i+1;
			document.forms[formname].distrito1.options[i+1]= new Option(oNodes.item(i).attributes.item(0).value,oNodes.item(i).attributes.item(1).value);
		}

	}


	if(s==0 && numseq==1){	//está a carregar a página
			changeDistritoSeq(formname,conc,maxInterv);
			changeConcelhoSeq(formname,freg,maxInterv);
			changeFreguesiaCon(formname,maxInterv);
	}else if (s>0){
			document.forms[formname].distrito1.selectedIndex=s;
			changeDistritoSeq(formname,conc,maxInterv);
			changeConcelhoSeq(formname,freg,maxInterv);
			changeFreguesiaCon(formname,maxInterv);
	}else{
		changeFreguesiaSeq(formname,numseq,freg);
	}

/*	if(s>0 || numseq>1){
		if(numseq==1){
			document.forms[formname].distrito1.selectedIndex=s;
			changeDistritoSeq(formname,conc,10);
			changeConcelhoSeq(formname,freg,10);
			changeFreguesiaCon(formname,10);
		}else{
			changeFreguesiaSeq(formname,numseq,freg);
		}
	}else if (s==0){
		changeFreguesiaCon(formname,10);
	}
	changeFreguesiaSeq(formname,numseq,freg);*/
}

function validateformAgenda(form){

	if(!VerifyDate2(form,'data_agenda','Data de Consulta'))
  		return void(0);	
	 
	//if(!FormCheckGeneric(form,'conservatoria','Conservatória','conservatoria'))
	//	return void(0);
	
	form.action="agenda.jsp";
	form.submit();
	return true;
}

function validateformEdita(form){
	if(!form.reserva.checked)
    {
        if(!FormCheckGeneric(form,'num_processo','N\372mero de Processo','num_processo'))
            return void(0);
    }    
    if(!FormCheckGeneric(form,'duracao','Dura\347\343o','duracao'))
        return void(0);
	form.action="agenda_edita.jsp";
	form.submit();
	return true;
}

function validateformPedido(form){
	
	if(!FormCheckGeneric(form,'num_processo','N\372mero de Processo','num_processo'))
		return void(0);
	
	form.action="agenda_pedido.jsp";
	form.submit();
	return true;
}

function changeComboValue(formname, selectname, hiddenname){
var e;
var ed;
var estado;  

    e = document.getElementById(selectname);
    ed = document.getElementById(hiddenname);
    estado = (e.value=="")?"":e[e.selectedIndex].text;
    ed.value = estado;
}

function validateUtilizador(form){
	
	if(!FormCheckGeneric(form,'conservatoria','Conservatória','conservatoria'))
		return void(0);
	
	form.action="con_login_util.jsp";
	form.submit();
	return true;
}

function disableSede(form,flag,numInt){
	if(flag=="1"){
		SetControlValue(form,'int_nome'+numInt,"");
		SetControlValue(form,'int_morada'+numInt,"");
		SetControlValue(form,'int_nif'+numInt,"");
		form.elements['int_nome'+numInt].readOnly=true;
		form.elements['int_morada'+numInt].readOnly=true;
	}else if(flag=="0"){
		form.elements['int_nome'+numInt].readOnly=false;
		form.elements['int_morada'+numInt].readOnly=false;
	}
}

function validaNIPC(form, numInt){
	if(form.elements['int_tipopc'+numInt].checked){
        if (window.ActiveXObject)
		{
			var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		}
		else
		{
			var oXmlDoc = document.implementation.createDocument("","",null);
		}
        
        var val = form.elements['int_nif'+numInt].value;
        
		oXmlDoc.async = false; 
        oXmlDoc.load( '../casapronta/getNIPC.jsp?num='+ val );
		
		var dados = oXmlDoc.getElementsByTagName("d");
		
		if(dados.length > 0 && dados.item(0).attributes.item(0).value=="null"){
			alert("O n\372mero de contribuinte (Interveniente "+numInt+") introduzido \351 inv\341lido.");
            
            form.elements['int_morada'+numInt].value = '';
            form.elements['int_nome'+numInt].value = '';
            
            form.elements['img_bol_nif' + numInt].src = "../includes/images/valid_no.gif";
            form.elements['img_bol_nif' + numInt].alt = "NIF/NIPC \351 inv\341lido";
            
			SetControlFocus(form,'int_nif'+numInt);
            return void(0);
		}else if(dados.length == 0 || dados.item(0).attributes.item(0).value==""){
            if(val!='null' || val!="")
            {
                if(dados.item(0)!=null)
                    alert("Sociedade n\343o constitu\355da ou n\343o informatizada.");
                else
                    alert("Servi\347o temporariamente indispon\355vel. O NIF/NIPC n\343o ser\341 validado.");
                
                SetControlValue(form,'bol_nif'+numInt, 'False');
                SetControlFocus(form,'int_nif'+numInt);
                
                form.elements['int_nome'+numInt].readOnly=false;
                form.elements['int_morada'+numInt].readOnly=false;
                
                form.elements['img_bol_nif' + numInt].src = "../includes/images/valid_no.gif";
                form.elements['img_bol_nif' + numInt].alt = "NIF/NIPC n\343o validado";
            }
            else
            {
                SetControlValue(form,'bol_nif'+numInt, 'False');
                form.elements['img_bol_nif' + numInt].src = "../includes/images/valid_nd.gif";
                form.elements['img_bol_nif' + numInt].alt = "NIF/NIPC n\343o inserido";
            }
            
            return true;
			//return void(0);
		}
		
		form.elements['int_morada'+numInt].value = dados.item(0).attributes.item(0).value;
		form.elements['int_nome'+numInt].value = dados.item(0).attributes.item(1).value;
        form.elements['int_capital_social'+numInt].value = dados.item(0).attributes.item(2).value.split("-")[0].split(".").join("");
        form.elements['int_conservatoria_registo'+numInt].options.value = dados.item(0).attributes.item(3).value;  
        
        SetControlValue(form,'bol_nif'+numInt, 'True');
        
        form.elements['img_bol_nif' + numInt].src = "../includes/images/valid_yes.gif";
        form.elements['img_bol_nif' + numInt].alt = "NIF/NIPC validado";	
	}
	return true;
}

function validaBI(form, numInt)
{
    var nome;
    var numBI;
    var tipo_doc;
    var auxTipoDoc;
    
    tipo_doc = GetControlValue(form,'int_tipo_documento'+numInt);
    auxTipoDoc = GetControlValue(form,'int_tipo_documento_descricao'+numInt);
    
	if(tipo_doc=="13000" || tipo_doc=="13001" || tipo_doc=="")
    {
        if(auxTipoDoc=="BI" || auxTipoDoc == "Cartão de Cidadão")
        {
            numBI = form.elements['int_num_documento'+numInt].value;
        }
        else
            numBI = "";
        
		if(form.elements['int_tipops'+numInt].checked)	
			nome = form.elements['int_nome'+numInt].value;
		else if(form.elements['int_tipopr'+numInt].checked)
			nome = form.elements['int_nome_representanteS'+numInt].value;	
        
		if (window.ActiveXObject)
		{
			var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		}
		else
		{
			var oXmlDoc = document.implementation.createDocument("","",null);
		}
        
        var val = form.elements['int_num_documento'+numInt].value;
        
		oXmlDoc.async = false; 
		oXmlDoc.load('../casapronta/getBI.jsp?bi='+ numBI +'&nome='+ nome);
		
		var registo = oXmlDoc.getElementsByTagName("c");
		
        if(registo.length == 0 || registo.item(0).attributes.item(0).value=="")
        {
            if(val!='null' || val!="")
            {
                if(form.elements['int_tipops'+numInt].checked)
                    alert("Servi\347o temporariamente indispon\355vel. O documento de identificaç\343o n\343o ser\341 validado (Interveniente "+numInt+").");
                else
                    alert("Servi\347o temporariamente indispon\355vel. O documento de identificaç\343o n\343o ser\341 validado (Representante do Interveniente "+numInt+").");
                
                SetControlValue(form,'bol_bi'+numInt, 'False');
                
                form.elements['img_bol_bi' + numInt].src = "../includes/images/valid_no.gif";
                form.elements['img_bol_bi' + numInt].alt = "O n\372mero do documento de identificaç\343o n\343o foi validado";
            }
            else
            {
                SetControlValue(form,'bol_bi'+numInt, '');
                form.elements['img_bol_bi' + numInt].src = "../includes/images/valid_nd.gif";
                form.elements['img_bol_bi' + numInt].alt = "O n\372mero do documento de identificaç\343o n\343o foi inserido";
            }
		}
        else if(registo.item(0).attributes.item(1).value=="")
        {
			if(form.elements['int_tipops'+numInt].checked)
				alert("N\343o foi encontrado nenhum registo que corresponda ao Nome e N\372mero do documento de identificaç\343o (Interveniente "+numInt+").");
			else
                alert("N\343o foi encontrado nenhum registo que corresponda ao Nome e N\372mero do documento de identificaç\343o (Representante do Interveniente "+numInt+").");
            
            form.elements['img_bol_bi' + numInt].src = "../includes/images/valid_no.gif";
            form.elements['img_bol_bi' + numInt].alt = "O n\372mero do documento de identificaç\343o \351 inv\341lido";
            
            SetControlValue(form,'bol_bi'+numInt, 'False');
            
			return void(0);
		}
		else{
			if(form.elements['int_tipops'+numInt].checked)	
				SetControlValue(form,'int_nome'+numInt,registo.item(0).attributes.item(1).value);
			else if(form.elements['int_tipopr'+numInt].checked)
				SetControlValue(form,'int_nome_representanteS'+numInt,registo.item(0).attributes.item(1).value);
			
            form.elements['img_bol_bi' + numInt].src = "../includes/images/valid_yes.gif";
            form.elements['img_bol_bi' + numInt].alt = "O n\372mero do documento de identificaç\343o foi validado";
            
            SetControlValue(form,'bol_bi'+numInt, 'True');
            
			SetControlValue(form,'int_tipo_documento'+numInt, tipo_doc);
			SetControlValue(form,'int_tipo_documento_descricao'+numInt, auxTipoDoc);
			SetControlValue(form,'int_num_documento'+numInt,registo.item(0).attributes.item(0).value);
		}
	}
	
	//alert("webservice BI: "+nome+"; "+numBI);
	return true;		
}
