function valnguia(input, response, resobj) {
	var wait = document.getElementById('wait');
	var idfact = document.getElementById('idfact');
	var nguiavalimg = document.getElementById('nguianotval');
	if (response != '') {
		wait.className = 'hidden';
		// response mode
		var numeroguia = document.getElementById('nguia');
		var idguia = document.getElementById('idguia');
		verifyimg = document.getElementById('nguiaval');
		verifyimg2 = document.getElementById('nguianotval');
		if (response == '1') {
			valnguia.value = "1";
			verifyimg.className = 'formtext';
			verifyimg2.className = 'hidden';
			idguia.value = resobj.getElementsByTagName('idguia')[0].firstChild.data;
			if(idguia.Value=='-')
				idguia.value = '0';
			showserv("", "", "");
		} else {
			valnguia.value = "0";
			verifyimg.className = 'hidden';
			verifyimg2.className = 'formtext';
			nguiavalimg.alt="Erro na formatação do numero de guia, numero de guia só deve conter algarismos salvo em guias de Medicina Física ou Fisioterapia";
		}
	} else {
		// input mode
		url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/validaNumGuia.php?nguia='+input+'&&idfact='+idfact.value;
		wait.className = 'formtext';
		//debug.innerText=url;
		loadXMLDoc(url);
	}
}

//faz reset ao campo valor e descrição de serviço
function resetfrom(){
	document.getElementById('codServ').value = "";
	document.getElementById('descriServ').value = "";
	document.getElementById('valor').value = "";
}

//faz reset ao campo valor e descrição de serviço
function resetfrom_Benef(){
	
	var Nbenef = document.getElementById('Nbenef');
	
	if(!Nbenef.readOnly){
		document.getElementById('codServ').value = "";
		document.getElementById('descriServ').value = "";
		document.getElementById('valor').value = ""; 
		document.getElementById('Nbenef').value = "";
	}
}

function delserv(i) {
	var row = document.getElementById(i).parentNode.parentNode.rowIndex;
	var tabserv = document.getElementById('tab_servico');
	var idguia = document.getElementById('idguia');
	var formmsg = document.getElementById('msg');
	var _wait = document.getElementById('wait');
	_wait.className = 'formtext';
	formmsg.innerText ="Serviço apagado com sucesso!";
	tabserv.deleteRow(row);
	url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/delserv.php?servid='
			+ i + '&&idguia=' + idguia.value;

	// total guia = 0 quando apaga o ultimo serviço e idguia passa a zero
	if (row == "1") {
		var tdvalort = document.getElementById('valort');
		tdvalort.innerHTML = "Total da Guia €0";
	}	
	loadXMLDoc(url);
}

function processshowserv(inp, response, resobj){
	showserv("", "", "");
}

function valformErro(inp, response, resobj) {
	var ebenef = document.getElementById('ebenef');
	var ecodserv = document.getElementById('ecodserv');
	var edatai = document.getElementById('edatai');
	var eqtd = document.getElementById('eqtd');
	var evalval = document.getElementById('evalor');
	var epecas = document.getElementById('epecas');
	var eautoprev = document.getElementById('eautoprev');
	var ehemi = document.getElementById('ehemi');
	var edataf = document.getElementById('edataf');
	var enguia = document.getElementById('enguia');

	var _wait = document.getElementById('wait');


	var vbenef = resobj.getElementsByTagName('valb')[0].firstChild.data;
	var vcodigo = resobj.getElementsByTagName('valc')[0].firstChild.data;
	var vdatai = resobj.getElementsByTagName('valdatai')[0].firstChild.data;
	var vquant = resobj.getElementsByTagName('valqtd')[0].firstChild.data;
	var vvalor = resobj.getElementsByTagName('valval')[0].firstChild.data;
	var vpecas = resobj.getElementsByTagName('valpecas')[0].firstChild.data;
	var vaptr = resobj.getElementsByTagName('valaptr')[0].firstChild.data;
	var vlhemi = resobj.getElementsByTagName('valhemi')[0].firstChild.data;
	var vdataf = resobj.getElementsByTagName('valdataf')[0].firstChild.data;
	var nguia = resobj.getElementsByTagName('numguia')[0].firstChild.data;

	var formmsg = document.getElementById('msg');
	var valmsg = resobj.getElementsByTagName('msg')[0].firstChild.data;
	formmsg.innerText = valmsg + ",erros assinalados no formulario.";
	_wait.className = 'hidden';

	if (vbenef == "1")
		ebenef.className = "error";
	if (vcodigo == "1")
		ecodserv.className = "error";
	if (vdatai == "1")
		edatai.className = "error";
	if (vquant == "1")
		eqtd.className = "error";
	if (vvalor == "1")
		evalval.className = "error";
	if (vpecas == "1")
		epecas.className = "error";
	if (vaptr == "1")
		eautoprev.className = "error";
	if (vlhemi == "1")
		ehemi.className = "error";
	if (vdataf == "1")
		edataf.className = "error";
	//if (nguia == "1")
		
}

function insertok(inp, response, resobj) {
	var ebenef = document.getElementById('ebenef');
	var ecodserv = document.getElementById('ecodserv');
	var edatai = document.getElementById('edatai');
	var eqtd = document.getElementById('eqtd');
	var evalval = document.getElementById('evalor');
	var epecas = document.getElementById('epecas');
	var eautoprev = document.getElementById('eautoprev');
	var ehemi = document.getElementById('ehemi');
	var edataf = document.getElementById('edataf');
	var Nbenef = document.getElementById('Nbenef');
	var enguia = document.getElementById('enguia');
	var nguia = document.getElementById('nguia');

	Nbenef.readOnly = "true";
	Nbenef.className = "formstyleReadOnly";
	nguia.readOnly = "true";
	nguia.className = "formstyleReadOnly";
	ebenef.className = "hidden";
	ecodserv.className = "hidden";
	edatai.className = "hidden";
	eqtd.className = "hidden";
	evalval.className = "hidden";
	epecas.className = "hidden";
	eautoprev.className = "hidden";
	ehemi.className = "hidden";
	edataf.className = "hidden";
	edataf.className = "hidden";
	enguia.className = "hidden";

	
	var imprime = document.getElementById('imp');
	var idguia = document.getElementById('idguia');
	var formmsg = document.getElementById('msg');

	var idg = resobj.getElementsByTagName('idguia')[0].firstChild.data;
	var idf = resobj.getElementsByTagName('idfact')[0].firstChild.data;
	var valmsg = resobj.getElementsByTagName('msg')[0].firstChild.data;

	formmsg.innerText = valmsg;
	idguia.value = idg;
	imprime.href = "inc/guia/guia.php?idguia=" + idg + "&&idfact=" + idf;

	showserv("", "", "");
}
/**
 * 
 * @param inp
 * @param response
 * @param resobj
 * @return
 */
function validaForm(inp, response, resobj) {
	
	var wait = document.getElementById('wait');
	wait.className = 'formtext';

	var dataanoi = document.getElementById('dataa');
	var datamesi = document.getElementById('datam');
	var dataidia = document.getElementById('datad');
	var dataanof = document.getElementById('datafa');
	var datamesf = document.getElementById('datafm');
	var datadiaf = document.getElementById('datafd');
	var debug = document.getElementById('debug');

	// elementos a serem validados
	var idf = document.getElementById('idfact');
	var idg = document.getElementById('idguia');
	var guia = document.getElementById('nguia');
	var valb = document.getElementById('Nbenef');
	var valc = document.getElementById('codServ');
	var valqtd = document.getElementById('Qtd');
	var valval = document.getElementById('valor');
	var valaptr = document.getElementById('autoprev');
	var valpecas = document.getElementById('ipecas');
	var valhemi = document.getElementById('hemi');
	var valdatai = dataanoi.options[dataanoi.selectedIndex].text
			+ datamesi.options[datamesi.selectedIndex].text
			+ dataidia.options[dataidia.selectedIndex].text;
	var valdataf = dataanoi.options[dataanof.selectedIndex].text
		+ datamesi.options[datamesf.selectedIndex].text
		+ dataidia.options[datadiaf.selectedIndex].text;

	var nprest = document.getElementById('nprest');
	
	validaCodServ(valc.value,'');
	
	if (response != '') {
		// response mode
		if (response == '1') {

		} else {

		}
	} else {
		// input mode
		url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/valform.php?idf='
				+ idf.value
				+ '&&idg='
				+ idg.value
				+ '&&valb='
				+ valb.value
				+ '&&valc='
				+ valc.value
				+ '&&valqtd='
				+ valqtd.value
				+ '&&valval='
				+ valval.value
				+ '&&valaptr='
				+ valaptr.value
				+ '&&valpecas='
				+ valpecas.value
				+ '&&valhemi='
				+ valhemi.value
				+ '&&valdatai='
				+ valdatai
				+ '&&valdataf='
				+ valdataf
				+ '&&nprest=' + nprest.value + '&&nguia=' + guia.value;
		// alert (url);
		//debug.innerText=url;
		loadXMLDoc(url);
	}
}

function showserv(inp, response, resobj) {
	var _wait = document.getElementById('wait');
	var idguia = document.getElementById('idguia');
	var idfact = document.getElementById('idfact');
	var numerobenef = document.getElementById('Nbenef');
	var nomebenef = document.getElementById('nomeBenef');
	var numeroprest = document.getElementById('nprest');
	var nomeprest = document.getElementById('nomePrest');
	var cedula = document.getElementById('nced');
	if (response != '') {
		_wait.className = 'hidden';
		// response mode
		if (response == '1') {
			
			//actuliza benef
			numerobenef.value = resobj.getElementsByTagName('nbenef')[0].firstChild.data;
			nomebenef.value = resobj.getElementsByTagName('nomebenef')[0].firstChild.data;
			numerobenef.readOnly = "true";	
			numerobenef.className = "formstyleReadOnly";
			//*************
			//actualiza prest
			numeroprest.value = resobj.getElementsByTagName('nprest')[0].firstChild.data;
			nomeprest.value = resobj.getElementsByTagName('nomeprest')[0].firstChild.data;
			cedula.value = resobj.getElementsByTagName('cedula')[0].firstChild.data;
			//***************
			_wait.className = 'hidden';
			var tabserv = document.getElementById('tab_servico');
			var tbody = document.getElementById('tb1body');
			var tamanho = resobj.getElementsByTagName('tam')[0].firstChild.data;
			if(tamanho==0)
				idguia.value="0";
			var tdvalort = document.getElementById('valort');
			tdvalort.innerHTML = "Total da Guia €"
					+ resobj.getElementsByTagName('valort')[0].firstChild.data;

			// apaga serviços do tbody -> implementar com tbody
			var auxlength = tabserv.rows.length;
			for (z = auxlength; z > 0;) {
				if (z != 1)
					tabserv.deleteRow(z - 1);
				z--;
			}

			for (i = 0; i < tamanho; i++) {
				if (i != 0)
					var newtr = tabserv.insertRow(i);
				else
					newtr = tabserv.insertRow(i + 1);

				newtr.setAttribute('className', 'formtext');

				for (j = 0; j < 9; j++) {

					switch (j) {
					case 0:
						var newtd = newtr.insertCell(0);
						newtd.innerHTML = resobj.getElementsByTagName('codserv')[i].firstChild.data;
						break

					case 1:
						var newtd = newtr.insertCell(1);
						newtd.innerHTML = resobj.getElementsByTagName('descri')[i].firstChild.data;
						break

					case 2:
						var newtd = newtr.insertCell(2);
						newtd.innerHTML = resobj.getElementsByTagName('datas')[i].firstChild.data;
						break

					case 3:
						var newtd = newtr.insertCell(3);
						newtd.setAttribute('align', 'center');
						newtd.innerHTML = resobj.getElementsByTagName('qtd')[i].firstChild.data;
						break

					case 4:
						var newtd = newtr.insertCell(4);
						newtd.setAttribute('align', 'center');
						newtd.innerHTML = resobj.getElementsByTagName('pecas')[i].firstChild.data;
						break

					case 5:
						var newtd = newtr.insertCell(5);
						newtd.setAttribute('align', 'center');
						newtd.innerHTML = resobj.getElementsByTagName('hemis')[i].firstChild.data;
						break

					case 6:
						var newtd = newtr.insertCell(6);
						newtd.setAttribute('align', 'center');
						newtd.innerHTML = resobj
								.getElementsByTagName('autoprev')[i].firstChild.data;
						break

					case 7:
						var newtd = newtr.insertCell(7);
						newtd.setAttribute('align', 'center');
						newtd.innerHTML = "€"
								+ resobj.getElementsByTagName('valorserv')[i].firstChild.data;
						break

					case 8:
						var newtd = newtr.insertCell(8);
						newtd.setAttribute('align', 'center');
						var idserv = resobj.getElementsByTagName('id')[i].firstChild.data;
						newtd.innerHTML = "<a href='javascript:onclick=delserv("
								+ idserv
								+ ");' id='"
								+ idserv
								+ "' ><img border=0 src=img/delete_16.gif alt=Apagar width=16 height=16 ></a>";
						break
					}
				}
			}

		} else {
			var tamanho2 = resobj.getElementsByTagName('tam')[0].firstChild.data;
			if(tamanho2==0)
				idguia.value="0";
		}
	} else {
		// input mode
		url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/showservicos.php?idguia='
				+ idguia.value + '&&idfact=' + idfact.value;
		//debug.innerText=url;
		_wait.className = 'formtext';
		loadXMLDoc(url);
	}
}

function validaNomeBenef(input, response, resobj) {
	var wait = document.getElementById('wait');
	var dir_benef = document.getElementById('dir_benef');
	if (response != '') {
		wait.className = 'hidden';
		// response mode
		message = document.getElementById('nomeBenef');
		valb = document.getElementById('valbenef');
		verifyimg = document.getElementById('benefval');
		verifyimg2 = document.getElementById('benefnotval');

		nome = resobj.getElementsByTagName('nome')[0].firstChild.data;
		validade = resobj.getElementsByTagName('validade')[0].firstChild.data;
		
		message.value = nome;

		if (response == '1') {
			valb.value = "1";
			verifyimg.className = 'formtext';
			verifyimg2.className = 'hidden';
			dir_benef.value = validade;

		} else {
			valb.value = "0";
			verifyimg.className = 'hidden';
			verifyimg2.className = 'formtext';
			dir_benef.value = "";
		}
	} else {
		// input mode
		url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/validaNomeBenef.php?nbenef=' + input;
		wait.className = 'formtext';		
		loadXMLDoc(url);
	}
}

function validaCodServ(inp, response, resobj) {
	var wait = document.getElementById('wait');
	var prest = document.getElementById('nprest').value;
	var benef = document.getElementById('Nbenef').value;
	var dataanoi = document.getElementById('dataa');
	var datamesi = document.getElementById('datam');
	var dataidia = document.getElementById('datad');
	var formmsg = document.getElementById('msg');
	formmsg.innerText ="";
	var valdatai = dataanoi.options[dataanoi.selectedIndex].text
			+ datamesi.options[datamesi.selectedIndex].text
			+ dataidia.options[dataidia.selectedIndex].text;

	if (response != '') {

		wait.className = 'hidden';
		// response mode
		descricao = resobj.getElementsByTagName('codname')[0].firstChild.data;
		document.getElementById('descriServ').value = descricao;

		valc = document.getElementById('valcod');
		verifyimg = document.getElementById('servval');
		verifyimg2 = document.getElementById('servnotval');

		if (response == '1') {
			valc.value = "1";
			verifyimg.className = 'formtext';
			verifyimg2.className = 'hidden';

			valormax = resobj.getElementsByTagName('valormax')[0].firstChild.data;
			document.getElementById('valor').value = valormax;

			// abre campo para ap/tr
			ap = resobj.getElementsByTagName('autoprev')[0].firstChild.data;
			tr = resobj.getElementsByTagName('termo')[0].firstChild.data;

			if (ap == "1" || tr == "1") {
				document.getElementById('autoprevspan').className = 'formtext';
			} else {
				document.getElementById('autoprevspan').className = 'hidden';
			}

			// abre campo para datafim
			df = resobj.getElementsByTagName('dataf')[0].firstChild.data;
			if (df == "1") {
				document.getElementById('datafspan').className = 'formtext';
			} else {
				document.getElementById('datafspan').className = 'hidden';
			}

			// abre campo para hemisferio
			h = resobj.getElementsByTagName('ed')[0].firstChild.data;

			if (h == "1") {
				document.getElementById('hemispan').className = 'formtext';
			} else {
				document.getElementById('hemispan').className = 'hidden';
			}

			// abre campo para peças
			p = resobj.getElementsByTagName('pecas')[0].firstChild.data;

			if (p == "1") {
				document.getElementById('pecas').className = 'formtext';
			} else {
				document.getElementById('pecas').className = 'hidden';
			}

			// abre ou fecha campo de valor
			v = resobj.getElementsByTagName('valok')[0].firstChild.data;

			if (v == "1") {
				document.getElementById('valor').className = 'formstyleReadOnly';
				document.getElementById('valor').readOnly = true;
			} else {
				document.getElementById('valor').className = 'formstyle';
				document.getElementById('valor').readOnly = false;
			}
		} else {
			valc.value = "0";
			verifyimg.className = 'hidden';
			verifyimg2.className = 'formtext';
		}
	} else {
		// input mode

		url = 'http://www.ptacs.pt/autofact/modulos/Mod_recserv/scripts/validaServCod.php?servcod='
				+ inp
				+ '&&data='
				+ valdatai
				+ '&&prest='
				+ prest
				+ '&&benef='
				+ benef;
		wait.className = 'formtext';
		//debug.innerText = url;
		// alert (url);
		loadXMLDoc(url);
	}
}

function processReqChange() {
	// only if req shows "complete"
	if (req.readyState == 4) {
		// only if "ok"
		if (req.status == 200) {
			// ... processing statements go here...
			response = req.responseXML.documentElement;
			method = response.getElementsByTagName('method')[0].firstChild.data;
			result = response.getElementsByTagName('result')[0].firstChild.data;

			eval(method + '(\'\', result,response)');
		} else {
			alert("There was a problem retrieving the XML data:\n" + req.status);
		}
	}
}