/**
*  Función que realizará el despliege y la contracción de recursos y medios
*
*/
function Toggle(node){
	// Despliega la rama si no es visible
	if (node.nextSibling.style.display == 'none')
	{
		// Change the image (if there is an image)
		if (node.childNodes.length > 0)
		{
			if (node.childNodes.item(0).nodeName == "IMG")
			{
				node.childNodes.item(0).src = "/gobernacionyjusticia/opencms/medacthu/com/images/minus.gif";
			}
		}

		node.nextSibling.style.display = 'block';
	}
	// Contrae la rama si esta es visible 
	else
	{
		// Cambia la imagen (si hay una imagen)
		if (node.childNodes.length > 0)
		{
			if (node.childNodes.item(0).nodeName == "IMG")
			{
				node.childNodes.item(0).src = "/gobernacionyjusticia/opencms/medacthu/com/images/plus.gif";
			}
		}
 
		node.nextSibling.style.display = 'none';
	}

}

/**
*
*  Función que realiza la comprobación al cargar
*
*/
window.onload = function(){

        if (document.getElementById("agente") != null){
         ManejaIdAgentes();
       }
       if(document.getElementById("pais") != null){

        ManejaRegion();


       }



}

/**
*  Función que comprueba si está selecionado un determinado elemento
*  y muestra u oculta la región
*
*/
function ManejaRegion(){
        
       //variables
       var seleccionador = document.getElementById("pais");
 
  if (seleccionador.selectedIndex >0){
        if(seleccionador.options[seleccionador.selectedIndex].value == 195){
            
            MuestraRegion();

        }else{
 
            OcultaRegion();
        }
   }
        
}
/**
*
*Función que mostrará el select de municipios al pulsar en una determinada provincia
*
*/

function ManejaProvincia (){

   document.getElementById("municipioRCD").value='municipio';
   document.getElementById("form").submit();

}
/**
*
*  Función que mostrará select regiones, al pulsar en un determinado país
*
*/
function MuestraRegion()
{
    //Muestra el campo si se pulsa el pais adecuado
        document.getElementById("provincias").style.display = "block";
    
}

/**
*
*  Función que ocultará select regiones, en un país que no corresponda
*
*/
function OcultaRegion(){
     //oculta campo si no se muestra el pais adecuado
     document.getElementById("provincias").style.display = "none";
}

/**
*
*  Función que comprueba si está seleccionado un determinado elemento
*  para ocultar o mostrar idAgente
*
*/
function ManejaIdAgentes() {
    
     var siAgente = document.getElementById("agente").selectedIndex;
               

     if(siAgente == 0){
                       
         MuestraIdAgentes();
         OcultaResto();     
         OcultaBtContinuar();

     } else {
                         
         OcultaIdAgentes();
         MuestraBtContinuar();
         MuestraResto();
     }

}

/**
*
*  Función que mostrará textbox para la introdución de código identificador de red de Agentes
*/
function MuestraIdAgentes(){
    //Muestra el campo si se elige la opción si
     document.getElementById("identificadorAgente").style.display = 'block';
    if(document.getElementById("identificadorAgenteBoton") != null){
     document.getElementById("identificadorAgenteBoton").style.display = 'block';
     }
}

/**
*
*  Función que ocultará textbox para la introdución de código identificador de red de Agentes
*/
function OcultaIdAgentes(){
    //Oculta el campo si se pulsa opción no
    document.getElementById("identificadorAgente").style.display = 'none';
    if(document.getElementById("identificadorAgenteBoton") != null){
    document.getElementById("identificadorAgenteBoton").style.display = 'none';
    }
}

/**
*  funcion que oculta el resto de los campos de formulario en detalleEntidad. 
*  el resto son los campos que no se refieren a idAgente
*
*/
function OcultaResto(){
   //oculta el resto de datos si se da la opción de si a registro de agentes
  if(document.getElementById("formularioGeneral") != null){
   document.getElementById("formularioGeneral").style.display = 'none';
  document.getElementById("finformulario").style.display = 'none';
  }

}
 
/**
*  funcion que muestra el resto de los campos de formulario en detalleEntidad. 
*  el resto son los campos que no se refieren a idAgente
*
*/
function MuestraResto(){
   //oculta el resto de datos si se da la opción de si a registro de agentes
  if(document.getElementById("formularioGeneral") != null){
   document.getElementById("formularioGeneral").style.display = 'block';
   document.getElementById("finformulario").style.display = 'block';
  }
}

/**
*  funcion que oculta el botón continuar, en detalleEntidades
*
*/
function OcultaBtContinuar() {
   //oculta el botón guardar en el formulario inicial
  if(document.getElementById("identificadorAgenteB") != null){
   document.getElementById("identificadorAgenteB").style.display = 'none';
  }
}

/**
*  funcion que muestra el botón continuar, en detalleEntidades
*
*/
function MuestraBtContinuar() {
   //oculta el botón guardar en el formulario inicial
  if(document.getElementById("identificadorAgenteB") != null){
   document.getElementById("identificadorAgenteB").style.display = 'block';
  }
}

function marcdescrec(recurso)
{
	var rm= document.getElementById(recurso);
	if (rm.checked){
		marca(recurso);
	}
	else{
		desmarcarhijos(recurso);
		desmarca(recurso);
	}
			
	return true;

}

/*	Funcion que realiza el marcado del recurso indicado y de todos sus padres	*/

function marca(recurso)
{
	if (recurso != ""){
		var rm= document.getElementById(recurso);
		if (rm.checked && recurso.length>3){
			 var c= recurso.substring(0, recurso.length-2);
			 document.getElementById(c).checked= true;
			 marca(c);
		}
	}

	return true;
}

/*	Funcion que realiza el desmarcado del recurso indicado y de sus padres si procede,
es decir, si el recurso a desmarcar no tiene hermanos marcados.		*/

function desmarca(recurso)
{
	if (recurso != "" && recurso.length>3){
		var rm= document.getElementById(recurso);
		if (rm.checked == false){
			var c= recurso.substring(0, recurso.length-2);
			 var padre= document.getElementById(c);
			 if (!tienehermanos(c)){
					padre.checked= false;
					desmarca(c);
			
			 }
		}
	}
	return true;
}

/*	Funcion que indica si los hermanos del recurso a desmarcar estan marcados	*/

function tienehermanos(recurso)
{
	var tiene= false;
	var enc= false;
	var ind= 1;
	while(!enc && !tiene){
		var recursoAux = recurso + ind + ".";
		if (document.getElementById(recursoAux) == null){
			enc=true;
		}else{
			if(document.getElementById(recursoAux).checked)
				tiene=true;
			ind++;
		}
	}

	return tiene;
}

/*	Funcion que desmarca todos los hijos del recurso indicado	*/

function desmarcarhijos(recurso)
{
	var enc= false;
	var ind= 1;
	while(!enc){
		var recursoAux = recurso + ind + ".";
		if (document.getElementById(recursoAux) == null){
			enc=true;
		}else{
			document.getElementById(recursoAux).checked=false;
			desmarcarhijos(recursoAux);
			ind++;
		}
	}

	return true;
}


