	/** class CSeccion
		
	*/
	function CSeccion(){
		
	}//class CSeccion
	
	CSeccion.MAX_NIVELES = 3;
	CSeccion.prohibicion = new Object();
	/**
	*/
	CSeccion.deshabilitarBotones = 
	function(/*idbtn1, idbtn2 ...*/){
		var v = arguments;
		for(var i=0;i<v.length;i++){
		//	alert(v[i]);
			CSeccion.prohibicion[v[i]] = true;
		}
	}
	
	/** public static habilitarBoton
		Habilita o deshabilita el boton indicado
		
		@param	string	sId: id del boton
		@param	bool		bEnabled: si se habilita el boton o no
	*/
	CSeccion.habilitarBoton = 
	function(sId, bEnabled){
		var eButton = document.getElementById(sId);
		if (!eButton)	
			return false;
		var s = "_disabled";
		if (bEnabled || (bEnabled==undefined)){
			s = "";
			eButton.disabled = false;
		}else{
			eButton.disabled = true;
		}
		switch(eButton.id){
		case "btnCrearSeccion":
		case "btnCrearSubseccion":
			eButton.style.backgroundImage = "url('../imagenes/btn_anadir"+s+".gif')";
			break;
		case "btnSubirOrden":
			eButton.style.backgroundImage = "url('../imagenes/btn_subir"+s+".gif')";
			break;				
		case "btnBajarOrden":
			eButton.style.backgroundImage = "url('../imagenes/btn_bajar"+s+".gif')";
			break;			
		case "btnEditarSeccion":
			eButton.style.backgroundImage = "url('../imagenes/btn_editar"+s+".gif')";
			break;			
		case "btnEliminarSeccion":
			eButton.style.backgroundImage = "url('../imagenes/btn_quitar"+s+".gif')";
			break;			
		}//switch
		return true;
	}//habilitarBoton
	
	/** public static  mostrarComandos
		Muestra la lista de comandos segun el ID de seccion y nivel de profundidad especificado en los parñametros.
		
		@param int iIdSeccion:	Id de la seccion para la que se va a mostrar el menu de comandos (si no se especifica se coge la ultima seccion seleccionada)
		@param int iNivel:	nivel de profundidad de la seccion especificada
	*/
	CSeccion.mostrarComandos = 
	function (iIdSeccion, iNivel){
		var eTR = document.getElementById("fila_seccion"+iIdSeccion);
		if (eTR != null){
			var eTBODY = eTR.parentNode;
			var btn = null;
			if (iIdSeccion == undefined)
				var iIdSeccion = getCookie("seccion_seleccionada");
			if (iNivel==undefined)
				var iNivel = getCookie("nivel_seleccionado");
		}else
			iIdSeccion = null;
			
		if ((iIdSeccion == "") || 
			(iIdSeccion == undefined))
			iIdSeccion == null;

		//BOTON SUBIR
		CSeccion.habilitarBoton("btnSubirOrden", 
			!((iIdSeccion==null) || (eTR.sectionRowIndex==0) || CSeccion.prohibicion["btnSubirOrden"]));
		
		//BOTON BAJAR
		CSeccion.habilitarBoton("btnBajarOrden",
			!((iIdSeccion==null) || (eTR.sectionRowIndex==eTBODY.rows.length-1) || CSeccion.prohibicion["btnBajarOrden"]));
		
		//BOTON EDITAR SECCION
		CSeccion.habilitarBoton("btnEditarSeccion", 
			!((iIdSeccion==null) || CSeccion.prohibicion["btnEditarSeccion"]));
		
		//BOTON CREAR SUBSECCION
		CSeccion.habilitarBoton("btnCrearSubseccion",
			!((iIdSeccion==null) || (iNivel>=CSeccion.MAX_NIVELES) || CSeccion.prohibicion["btnCrearSubseccion"]));

		//BOTON CREAR SUBSECCION
		CSeccion.habilitarBoton("btnCrearSeccion",
			!(CSeccion.prohibicion["btnCrearSeccion"]));
			
		//BOTON ELIMINAR SECCION
		CSeccion.habilitarBoton("btnEliminarSeccion", 
			!((iIdSeccion==null) || CSeccion.prohibicion["btnEliminarSeccion"]));
	}//mostrarComandos

	/** public static estaDesplegada
		Dice si la lista de subsecciones de la seccion especificada está desplegada o no.
		
		@param	int	iIdSeccion: id de la seccion
		@return	bool	Devuelve true si la sección está desplegada o false en caso contrario.
	*/
	CSeccion.estaDesplegada = 
	function (iIdSeccion){
		//vector con los id de las secciones desplegadas
		var v = new String(getCookie("secciones_desplegadas")).split(",");	
		return (v.search(iIdSeccion)>=0);
	}//estaDesplegada

	/** public static seleccionar
		Marca la seccion especificada como la seleccionada actualmente.
		
		@param	int 	iIdSeccion: id de la seccion
		@param	HtmlElement	elementoSeccion: elemento HTML de la seccion
	*/
	CSeccion.seleccionar =
	function (iIdSeccion, iNivel, elementoSeccion){
		if (!elementoSeccion)
			return false;
		//cambiamos los estilos
		var v = document.getElementsByTagName('div');
		for(var i=0; i<v.length; i++)
			if (v[i].className == 'seccionSeleccionada') 
				v[i].className = 'seccion';
		elementoSeccion.className = 'seccionSeleccionada';		
		if ((getCookie("seccion_seleccionada")==iIdSeccion) || !CSeccion.estaDesplegada(iIdSeccion))
			CSeccion.desplegar(iIdSeccion);
		
		//
		CSeccion.mostrarComandos(iIdSeccion, iNivel);
		
		//alamcena el id de la seccion en las cookies
		setCookie("seccion_seleccionada", iIdSeccion);
		setCookie("nivel_seleccionado", iNivel);
	}//seleccionar
	
	/** public static desplegarSeccion
		Muestra/oculta la lista de subsecciones de la seccion especificada.
		
		@param	int	iIdSeccion: id de la seccion cuyas subsecciones se van a mostrar u ocultar.
	*/
	CSeccion.desplegar = 
	function (iIdSeccion, bZonaPublica){
		var e = document.getElementById("subsecciones_seccion"+iIdSeccion);
		if (!e)
			return false;
		var htmlPlegada = '[+]';
		var htmlDesplegada = '[-]';
		
		if (bZonaPublica){
			htmlPlegada = '<img src="imagenes/flechamenu05.gif" width="20" height="14" hspace="0" vspace="0" border="0">';
			htmlDesplegada = '<img src="imagenes/flechamenu05.gif" width="20" height="14" hspace="0" vspace="0" border="0">';
		}
		
		var v = new String(getCookie("secciones_desplegadas")).split(",");			

		var eDesplegable = document.getElementById("desplegable"+iIdSeccion);
		if (e.style.display==""){
			e.style.display = "none";
			if (eDesplegable)
				eDesplegable.innerHTML = htmlPlegada;
			var pos = v.search(iIdSeccion);
			if (pos>=0)
				v.splice(pos,1); //elimina dicho elemento del array de secciones_desplegadas
		}else{ //desplegar las subsecciones de la seccion
			e.style.display = "";
			if (eDesplegable)
				eDesplegable.innerHTML = htmlDesplegada;
			if (v.search(iIdSeccion)<0)
				v.push(iIdSeccion);
		}//else
		setCookie("secciones_desplegadas",v.join(","));
		return true;
	}//desplegarSeccion
	
	/** public static eliminar
		Elimina la sección de la lista de secciones (la elimina sólo en el documento HTML)
		
		@param	int	iIdSeccion: id de la seccion a eliminar
	*/
	CSeccion.eliminar = 
	function (iIdSeccion){
		var trSeccion = document.getElementById("fila_seccion"+iIdSeccion);
		if (trSeccion)
			trSeccion.parentNode.removeChild(trSeccion);
		setCookie("seccion_seleccionada","");
		setCookie("nivel_seleccionado", "0");
		CSeccion.mostrarComandos(null);
	}//eliminar
	
	/** public static subirOrden
		Sube la sección especificada hacia arriba en la lista de secciones (solo en el HTML).
		
		@param int iIdSeccion: id de la seccion cuyo orden se va a modificar
	*/
	CSeccion.subirOrden = 
	function (iIdSeccion){
		var eTR = document.getElementById("fila_seccion"+iIdSeccion);
		var eTBODY = eTR.parentNode;
		var eTABLE = eTBODY.parentNode;
		if (!eTR //si no existe la fila
			|| eTR.sectionRowIndex>0){
			var i = eTR.sectionRowIndex-1;
			if (i<0)
				i = 0;
			var eTRHermano = eTBODY.rows[i];
			if ((eTBODY!=null) && (eTRHermano!=null))
				eTBODY.insertBefore(eTR, eTRHermano);			
		}//if
		CSeccion.mostrarComandos(iIdSeccion);
		
		//el scroll de la pagina se mueve hasta la posicion de la seccion a mover
		var uri = location.protocol+'//'+location.hostname+location.pathname+location.search+'#seccion'+iIdSeccion;
		location.href = uri;		
	}//subirOrden
	
	/** public static bajarOrden
		Sube la sección especificada hacia abajo en la lista de secciones (solo en el HTML).
		
		@param int iIdSeccion: id de la seccion cuyo orden se va a modificar	
	*/
	CSeccion.bajarOrden =
	function (iIdSeccion){
		var eTR = document.getElementById("fila_seccion"+iIdSeccion);
		var eTBODY = eTR.parentNode;
		if (!eTR //si no existe la fila
			|| eTR.sectionRowIndex<eTBODY.rows.length){
			var i = eTR.sectionRowIndex+2;
			if (i>=eTBODY.rows.length){
				eTBODY.appendChild(eTR);
			}else{
				var eTRHermano = eTBODY.rows[i];
				if ((eTBODY!=null) && (eTRHermano!=null))
					eTBODY.insertBefore(eTR, eTRHermano);
			}			
		}//if
		CSeccion.mostrarComandos(iIdSeccion);
		
		//el scroll de la pagina se mueve hasta la posicion de la seccion a mover		
		var uri = location.protocol+'//'+location.hostname+location.pathname+location.search+'#seccion'+iIdSeccion;
		location.href = uri;
	}//bajarOrden
	
	/** public static solicitarSubirOrden
		Envía una solicitud a la url especificada para cambiar el orden de la sección con el id indicado (en la base de datos).
		
		@param	string	url: url donde se manda la petición
		@param	int	iIdSeccion: id de la seccion cuyo orden se quiere cambiar
	*/
	CSeccion.solicitarSubirOrden = 
	function (url, iIdSeccion){
		var xmlhttp = new XmlHttp(); 
		xmlhttp.evaluarResultado(url,'accion=subir_orden&sec_id='+iIdSeccion);
	}//solicitarSubirOrden
	
	/** public static solicitarBajarOrden
		Envía una solicitud a la url especificada para cambiar el orden de la sección con el id indicado (en la base de datos).
		
		@param	string	url: url donde se manda la petición
		@param	int	iIdSeccion: id de la seccion cuyo orden se quiere cambiar	
	*/
	CSeccion.solicitarBajarOrden = 
	function (url, iIdSeccion){
		var xmlhttp = new XmlHttp(); 
		xmlhttp.evaluarResultado(url,'accion=bajar_orden&sec_id='+iIdSeccion);
	}//solicitarBajarOrden
	
	/** public static solicitarEliminar
		Envía una solicitud a la url especificada para eliminar (de la base de datos) la sección con el id indicado.
		
		@param	string	url: url donde se manda la petición
		@param	int	iIdSeccion: id de la seccion cuyo orden se quiere cambiar
	*/	
	CSeccion.solicitarEliminar = 
	function (url, iIdSeccion){
		if (!myConfirm("¿Está seguro de querer eliminar la sección?")){
			CSeccion.mostrarComandos(iIdSeccion);
			return false;
		}
		var xmlhttp = new XmlHttp(); 
		xmlhttp.evaluarResultado(url,'accion=eliminar&sec_id='+iIdSeccion);
	}//solicitarEliminar
	
	/** public static solicitarEditar
		Envía una solicitud a la url especificada para editar (ver para editar) la sección con el id indicado.
		
		@param	string	url: url donde se manda la petición		
		@param	int	iIdSeccion: id de la seccion cuyo orden se quiere cambiar
		@param	string	frame: nombre del frame donde se va a mostrar el formulario de edición		
	*/	
	CSeccion.solicitarEditar = 
	function (url, iIdSeccion, frame){
		if (frame==undefined)
			var frame = parent.frames.contenido;
		if (frame==null)
			frame = window;
		frame.location.href = url+'?accion=ver&sec_id='+iIdSeccion;
	}//solicitarEliminar	
		
	CSeccion.verContenido = 
	function(iIdSeccion, url){
		if (url==undefined)
			var url = 'seccion.php';
		location.href = url+'?sec_id='+iIdSeccion;
	}//verContenido
	
	/** public static solicitarCrearSubsecciones
		Envía una solicitud a la url especificada para crear una subsección de la sección con el id indicado.
		

		@param	string	url: url donde se manda la petición		
		@param	int	iIdSeccion: id de la seccion cuyo orden se quiere cambiar
		@param	string	frame: nombre del frame donde se va a mostrar el formulario de edición
	*/	
	CSeccion.solicitarCrearSubseccion = 
	function (url, iIdSeccion, frame){
		if ((iIdSeccion==null) || (iIdSeccion==undefined))
			iIdSeccion = "";
		if (frame==undefined)
			var frame = parent.frames.contenido;
		if (frame==null)
			frame = window;			
		frame.location.href = url+'?accion=crear&sec_sec_id='+iIdSeccion;
	}//solicitarCrearSubsecciones		
	
/************************************************************************************************************/	
	
	function mostrarTipos(){
		w = window.open('tipos_contenido.php','tipos_contenido',coordenadasCentroPantalla(400,400)+',toolbar=no,scrollbars=yes');
		w.focus();
	}//mostrarTipos
	
	function cambiarTipo(idtipo, frame){
		if (frame==undefined)
			var frame = window;
		var d = frame.document;
		var eImagen = d.getElementById("elem_imagen");			
		var eImagenes = d.getElementById("elem_imagenes");
		var eTexto = d.getElementById("elem_texto");
		var eTexto2 = d.getElementById("elem_texto2");	
		
		if (!eImagen || !eImagenes || !eTexto || !eTexto2)
			return false;
		
		switch(parseInt(idtipo)){
		case 1:
			eImagen.style.display = "";
			eImagenes.style.display = "none";
			eTexto.style.display = "";
			eTexto2.style.display = "none";	
			break;
		case 2:
			eImagen.style.display = "";
			eImagenes.style.display = "";
			eTexto.style.display = "";
			eTexto2.style.display = "";					
			break;			
		case 3:
			eImagen.style.display = "";
			eImagenes.style.display = "";
			eTexto.style.display = "";
			eTexto2.style.display = "none";					
			break;
		default:
			eImagen.style.display = "none";
			eImagenes.style.display = "none";
			eTexto.style.display = "none";
			eTexto2.style.display = "none";					
		}//switch
		return true;
	}//cambiarTipo
	
	
	function asignarImagenes(sec_id){
		if (sec_id==undefined || sec_id==null || sec_id=="")
			return false;
		w = window.open("imagen_index.php?ima_sec_id="+sec_id, "imagen_seccion", 
			coordenadasCentroPantalla(780,540)+"toolbar=no");
		w.focus();
	}//asignarImagenes

	
	/** seleccionarTipo
		@param	int	tsec_id:  id del tipo de seccion
	*/
	function seleccionarTipo(tsec_id){
		if (!window.opener)
			window.close();
		var eTipo = opener.document.getElementById("sec_tcon_id");

		if (!eTipo)
			return false;
		
		eTipo.value = tsec_id;
		window.close();
	}//seleccionarTipo