function CreaOptionsSubcategorias(formobj,valueSelected){
var nuevaopcion, i, no, padre, hijo, selectActive;

	no = 0;

	for(i=0;i<=formobj.numSubcategorias.value;i++){
		formobj.subcategorias.remove(1);
	}

	try {
		padre = formobj.categorias.options[formobj.categorias.selectedIndex].value;
	} catch (err_formobj_categorias) {
		//Si peta, és que no es un SELECT, sinó un HIDDEN, al estar prefixada la categoria ppal
		padre = formobj.categorias.value;
		alert(padre);
	}
	for (i=0;i<Categorias.length;i++){
		hijo = Categorias[i].cat_codcategoria;
		//hijo.length==padre.length+3 <-- perquè cerquem pare XX i fills XX.YY 
		//padre == hijo.substr(0,padre.length)) <-- perquè XX==XX en ambdos
		if ((hijo.length==padre.length+3)&&(padre == hijo.substr(0,padre.length))&&(hijo!=padre)&&(padre.length>0)){
			nuevaopcion=document.createElement('OPTION');
			nuevaopcion.value = Categorias[i].cat_codcategoria;
			nuevaopcion.text = Categorias[i].cat_descrip;

			if (Categorias[i].cat_codcategoria == valueSelected) {
				nuevaopcion.selected = true;
			}

			formobj.subcategorias.options.add(nuevaopcion, 1);
			no++;
		}
		if (formobj.subcategorias.options.length == 0){
			nuevaopcion=document.createElement('OPTION');
			nuevaopcion.value = "";
			nuevaopcion.text = "--";

			formobj.subcategorias.options.add(nuevaopcion, 1);
			no=1;
		}
	}
	formobj.numSubcategorias.value = no;

	selectActive = (no>1);
	canviarVisibilitat('labelsubcat',selectActive);
	canviarVisibilitat('selectsubcat',selectActive);
}

function CreaOptionsSubSubcategorias(formobj,valueSelected){
var nuevaopcion, i, no, padre, hijo, selectActive;

	no = 0;

	for(i=0;i<=formobj.numSubSubcategorias.value;i++){
		formobj.subsubcategorias.remove(1);
	}

	padre = formobj.subcategorias.options[formobj.subcategorias.selectedIndex].value;
	for (i=0;i<Categorias.length;i++){
		hijo = Categorias[i].cat_codcategoria;
		//hijo.length==padre.length+4 <-- perquè cerquem pare XX.YY i fills XX.YY.ZZZ 
		//padre == hijo.substr(0,padre.length)) <-- perquè XX.YY==XX.YY en ambdos
		if ((hijo.length==padre.length+4)&&(padre == hijo.substr(0,padre.length))&&(hijo!=padre)&&(padre.length>0)){
			nuevaopcion=document.createElement('OPTION');
			nuevaopcion.value = Categorias[i].cat_codcategoria;
			nuevaopcion.text = Categorias[i].cat_descrip;

			if (Categorias[i].cat_codcategoria == valueSelected) {
				nuevaopcion.selected = true;
			}
			formobj.subsubcategorias.options.add(nuevaopcion, 1);
			no++;
		}
		if (formobj.subsubcategorias.options.length == 0){
			nuevaopcion=document.createElement('OPTION');
			nuevaopcion.value = "";
			nuevaopcion.text = "--";

			formobj.subsubcategorias.options.add(nuevaopcion, 1);
			no=1;
			alert('kk');
		}
	}
	formobj.numSubSubcategorias.value = no;

	selectActive = (no>1);
	canviarVisibilitat('labelsubsubcat',selectActive);
	canviarVisibilitat('selectsubsubcat',selectActive);
}


function canviarVisibilitat(strDivId,bolVisible){

 //detect browser settings for showing and hiding DIVs
 isNS4 = (document.layers) ? true : false;
 isIE4 = (document.all && !document.getElementById) ? true : false;
 isIE5 = (document.all && document.getElementById) ? true : false;
 isNS6 = (!document.all && document.getElementById) ? true : false;


 try {
	 //identify the element based on browser type
	 objElement = document.getElementById(strDivId).style;

	 if(isNS4){
	     if(!bolVisible) {
	       objElement.visibility ="hidden"
	     } else {
	       objElement.visibility ="visible"
	     }     
	 }else if(isIE4){
	     if(!bolVisible) {
	       objElement.visibility = "hidden";
	     } else {
	       objElement.visibility = "visible";
	     }
	 } else if (isIE5 || isNS6) {
	      if(!bolVisible){
		 objElement.display = "none";
	      } else {
		objElement.display = "";
	      }
	 }

 } catch(errorinfo) {
 }
    
}