//************************************************
// Validate form in FormsBrowsingAgent
//************************************************
function validateFrmBrowsingAgent(){
	var f = document.frmFormsBrowsingAgent;
	var aAtr,aVal,aux,i,j,sel;
	var ano,mes,dia,dtapub,dtaeli;

	// Tem todos os atributos separados por "|" (atrib1|atri2|atirbN)
	// Para cada atributo tem: descricao # ordem # formato # mandatory (1-Sim; 2-Não) # size
	aux = f.check.value;
	aAtr = aux.split("|");
	for (i=0; i < aAtr.length-1; i++){
		aVal = aAtr[i].split("#")

		switch (aVal[3]) {

		case "1": // MANDATORY
			switch (aVal[2]){
			case "5":  // Formato HORA
				if (isEmptyObject(f,'atrhour'+aVal[1],aVal[0]+ " (horas)")==0) return
				else {
					if (isInteger(f,'atrhour'+aVal[1],aVal[0]+ " (horas)")==0) return;
					if (eval('f.atrhour'+aVal[1]+'.value')< 0 || eval('f.atrhour'+aVal[1]+'.value')> 23) {
						alert(" O valor do campo "+aVal[0]+ " (horas) tem de estar no intervalo entre 00 e 23");
						eval('f.atrhour'+aVal[1]).focus();
						return;
					}
				}

				if (isEmptyObject(f,'atrmin'+aVal[1],aVal[0]+ " (minutos)")==0) return
				else {
					if (eval('f.atrmin'+aVal[1]+'.value')!="" && isInteger(f,'atrmin'+aVal[1],aVal[0]+ " (minutos)")==0) return;
					if (eval('f.atrmin'+aVal[1]+'.value')< 0 || eval('f.atrmin'+aVal[1]+'.value') > 59) {
						alert(" O valor do campo "+aVal[0]+ " (minutos) tem de estar no intervalo entre 00 e 59");
						eval('f.atrmin'+aVal[1]).focus();
						return;
					}
				}

				if (isEmptyObject(f,'atrsec'+aVal[1],aVal[0]+ " (segundos)")==0) return
				else {
					if (eval('f.atrsec'+aVal[1]+'.value')!="" && isInteger(f,'atrsec'+aVal[1],aVal[0]+ " (segundos)")==0) return;
					if (eval('f.atrsec'+aVal[1]+'.value')< 0 || eval('f.atrsec'+aVal[1]+'.value')> 59){
						alert(" O valor do campo "+aVal[0]+ " (segundos) tem de estar no intervalo entre 00 e 59");
						eval('f.atrsec'+aVal[1]).focus();
						return;
					}
				}
				break;

			case "6":  // Formato BOOLEANO (checkbox)
				if (!(eval('f.atr'+aVal[1]+'[0].checked'))&&!(eval('f.atr'+aVal[1]+'[1].checked'))){
					alert ("O campo "+ aVal[0] +" não foi preenchido.");
					eval('f.atr'+aVal[1]+"[0]").focus();
					return;
				}
				break;

			case "10":  // Formato GAMA
			case "12":  // Formato RELACAO
				sel = eval("f.atr"+aVal[1]);
		 	    if (sel.selectedIndex == 0){
					alert ("Seleccione um valor para o campo "+ aVal[0] +".");
					eval("f.atr"+aVal[1]).focus();
					return;
		 	    }
				break;

			case "2": // Formato NUMÉRICO
				if (isEmptyObject(f,'atr'+aVal[1],aVal[0])==0) return;
				else if (isNaN(eval('f.atr'+aVal[1]+'.value'))){
					alert("O campo " + aVal[0]+ " não é um número.");
					eval('f.atr'+aVal[1]).focus();
					return;
				}
				break;

			case "4": // Formato DATA
				if (isEmptyObject(f,'atr'+aVal[1],aVal[0])==0) return;
				else if (isValidFieldDate(f,'atr'+aVal[1],aVal[0])==0) return;
				break;

			default: // Restantes Formatos
				if (isEmptyObject(f,'atr'+aVal[1],aVal[0])==0) return;
			}
			break;

		case "2": // NOT MANDATORY
			switch (aVal[2]){
				case "2":  // Formato NUMÉRICO
					if (eval('f.atr'+aVal[1]+'.value')!="" && isNaN(eval('f.atr'+aVal[1]+'.value'))) {
						alert("Não foi introduzido um número para o campo " + aVal[0]+ ".");
						eval('f.atr'+aVal[1]).focus();
						return;
					}
					break;

				case "5": // Formato HORA
						if (eval('f.atrhour'+aVal[1]+'.value')!="") {
							if (isInteger(f,'atrhour'+aVal[1],aVal[0]+ " (horas)")==0) return;
							if (eval('f.atrhour'+aVal[1]+'.value')< 0 || eval('f.atrhour'+aVal[1]+'.value')> 23){
								alert(" O valor do campo "+aVal[0]+ " (horas) tem de estar no intervalo entre 00 e 23");
								eval('f.atrhour'+aVal[1]).focus();
								return;
							}
						}

						if (eval('f.atrmin'+aVal[1]+'.value')!="") {
							if (isInteger(f,'atrmin'+aVal[1],aVal[0]+ " (minutos)")==0) return;
							if (eval('f.atrmin'+aVal[1]+'.value')< 0 || eval('f.atrmin'+aVal[1]+'.value')> 59){
								alert(" O valor do campo "+aVal[0]+ " (minutos) tem de estar no intervalo entre 00 e 59");
								eval('f.atrmin'+aVal[1]).focus();
								return;
							}
						}

						if (eval('f.atrsec'+aVal[1]+'.value')!="") {
							if (isInteger(f,'atrsec'+aVal[1],aVal[0]+ " (segundos)")==0) return;
							if (eval('f.atrsec'+aVal[1]+'.value')< 0 || eval('f.atrsec'+aVal[1]+'.value')> 59){
								alert(" O valor do campo "+aVal[0]+ " (segundos) tem de estar no intervalo entre 00 e 59");
								eval('f.atrsec'+aVal[1]).focus();
								return;
							}
						}
					break;

				case "4": // Formato DATA
					if (eval('f.atr'+aVal[1]+'.value')!="" && isValidFieldDate(f,'atr'+aVal[1],aVal[0])==0) return;
					break;
			}
		}
	}

	return true;
}