function Index(Pagina)
{
	this.urlPagina=Pagina;
	this.objXml=new xml();
	this.NombrePagina="";
	this.Publico=true;
	this.Resumen=false;
	this.ModoEdicion=true;

	function ClasePlantilla(xmlTag,Contenedor)
	{
		this.xmlPlantilla=xmlTag.childNodes[0];
		this.xmlCss=xmlTag.childNodes[1];
		this.nombreContenedor=Contenedor;
		this.ModoEdicion=true;
		
		this.Carga=function()
		{
			this.aplicaCss();
			this.aplicaDiseno();
			if(this.ModoEdicion)
				buscarTags();
		}

		this.aplicaCss=function()
		{
			var ss1 = document.createElement('style');
			ss1.setAttribute("type", "text/css");
			if (ss1.styleSheet)
			{   // IE
				ss1.styleSheet.cssText = this.xmlCss.childNodes[0].nodeValue;
			}
			else
			{                // the world
				var tt1 = document.createTextNode(this.xmlCss.childNodes[0].nodeValue);
				ss1.appendChild(tt1);
			}
			var hh1 = document.getElementsByTagName('head')[0];
			hh1.appendChild(ss1);
		}

		this.aplicaDiseno=function()
		{
			var pagina=document.getElementById(this.nombreContenedor);
			pagina.innerHTML=this.xmlPlantilla.childNodes[0].nodeValue;
		}
	}

 	function ClaseContenido(Contenido,Contenedor)
	{
		
 		this.nombreContenido="";
		this.nombreContenedor=Contenedor;
		this.propiedades=Contenido.childNodes[0];
		this.contenido=Contenido.childNodes[1];
		this.resumen=Contenido.childNodes[2];
		this.verResumen="";
		this.VisibleBarraEdicion=true;
		
		//Propiedades
		this.codigo="";
		this.protegido="";
		this.ajustetexto="";
		this.imprimir="";
		this.pdf="";
		this.enviar="";
		this.comentarios="";
		
		this.CargaPropiedades=function()
		{
			this.codigo=this.propiedades.getAttribute("codigo");
			this.protegido=this.propiedades.getAttribute("protegido");
			this.ajustetexto=this.propiedades.getAttribute("ajustetexto");
			this.imprimir=this.propiedades.getAttribute("imprimir");
			this.pdf=this.propiedades.getAttribute("pdf");
			this.enviar=this.propiedades.getAttribute("enviar");
			this.comentarios=this.propiedades.getAttribute("comentarios");
			this.nombreContenido=this.propiedades.getAttribute("nombre");
		}

		this.Carga=function()
		{
			this.CargaPropiedades();

			var objContenedoContenidos=new ContenedoContenidos(this.codigo,this.nombreContenido,"contenido");
			objContenedoContenidos.FuncionQuitarContenido="quitarContenidoPagina(this.parentNode.parentNode)";
			objContenedoContenidos.VisibleBarraEdicion=this.VisibleBarraEdicion;
			var divLayer=objContenedoContenidos.creaElementoContenedorEdicion();
			var objDiv=document.getElementById(this.nombreContenedor);

			if(this.verResumen==1)
			{
				objContenedoContenidos.adicionaHtml(this.resumen.childNodes[0].nodeValue);
			}
			else
			{
				objContenedoContenidos.adicionaHtml(this.contenido.childNodes[0].nodeValue);
			}
			objDiv.appendChild(divLayer);
		}
		
	}
 
	function ClaseSeccion(Seccion,Contenedor)
	{
		this.nombreSeccion="";
		this.nombreContenedor=Contenedor;
		this.propiedades=Seccion.childNodes[0];
		this.objContenedor="";
		this.ModoEdicion=true;

		//Propiedades
		this.resumen="";
		this.paginacion="";
		this.alineacionpaginacion="";
		this.filas="";
		this.columnas="";
		
		this.CargaPropiedades=function()
		{
			this.nombreSeccion=this.propiedades.getAttribute("nombre");
			this.codigo=this.propiedades.getAttribute("codigo");
			this.resumen=this.propiedades.getAttribute("resumen");
			this.paginacion=this.propiedades.getAttribute("paginacion");
			this.alineacionpaginacion=this.propiedades.getAttribute("alineacionpaginacion");
			this.filas=this.propiedades.getAttribute("filas");
			this.columnas=this.propiedades.getAttribute("columnas");
		}

		this.Carga=function()
		{		
			this.CargaPropiedades();
			this.TablaSeccion();

			var objContenedoContenidos=new ContenedoContenidos(this.codigo,this.nombreSeccion,"seccion");
			objContenedoContenidos.FuncionQuitarContenido="quitarContenidoPagina(this.parentNode.parentNode)";
			objContenedoContenidos.VisibleBarraEdicion=this.ModoEdicion;
			var divLayer=objContenedoContenidos.creaElementoContenedorEdicion();
			var objDiv=document.getElementById(this.nombreContenedor);

			var PaginaItems=Seccion.getElementsByTagName("ItemsContenidos");
			var contenido=PaginaItems[0].getElementsByTagName("contenido");

			objContenedoContenidos.adicionaObjetoHtml(this.objContenedor);
			objDiv.appendChild(divLayer);

			//CargaContenido
			for(iContenido=0;iContenido<contenido.length;iContenido++)
			{
				var ContenedorItem=contenido[iContenido].getAttribute("contenedor").replace("tbl1",'tbl'+this.nombreSeccion);
				var objClaseContenido=new ClaseContenido(contenido[iContenido],ContenedorItem);
				objClaseContenido.VisibleBarraEdicion=false;
				objClaseContenido.verResumen=this.resumen;
				objClaseContenido.Carga();
			}

		}

		this.TablaSeccion=function()
		{
			this.objContenedor=creaTabla("",'tbl'+this.nombreSeccion,this.filas,this.columnas,'100%','100%');
		}
	}
	
	function ClaseModulos(Modulos,Contenedor)
	{
		this.nombreModulo="";
		this.nombreContenedor=Contenedor;
		this.propiedades="";
		this.valores="";
		this.codigo="";
		this.ModoEdicion=true;
		
		this.CargaPropiedades=function()
		{
			try
			{
				this.propiedades=Modulos.childNodes[0];
				this.nombreModulo=this.propiedades.getAttribute("nombre");
				this.codigo=this.propiedades.getAttribute("codigo");
			}
			catch(e){}
		}
		
		this.Carga=function()
		{
// 			this.CargaPropiedades();
// 			var objContenedoContenidos=new ContenedoContenidos(this.codigo,this.nombreModulo,"seccion");
// 			objContenedoContenidos.FuncionQuitarContenido="quitarContenidoPagina(this.parentNode.parentNode)";
// 			objContenedoContenidos.VisibleBarraEdicion=this.ModoEdicion;
// 			var divLayer=objContenedoContenidos.creaElementoContenedorEdicion();
// 			var objDiv=document.getElementById(this.nombreContenedor);
// 			objDiv.appendChild(divLayer);

			url=rutaHOST+"/admin/modulos/"+this.nombreModulo+"/html/index_"+this.nombreModulo+".html";
			//var objAjaxPagina=new ajax(url,"Cont_"+this.codigo+"_"+this.nombreModulo+"html");
			var objAjaxPagina=new ajax(url,this.nombreContenedor);
			objAjaxPagina.Clase=this;
			objAjaxPagina.PostCarga="ejecutaEvento";
			objAjaxPagina.Cargar();
			
		}

		this.ejecutaEvento=function()
		{
			try
			{
				nmbPag=rutaHOST+"/admin/modulos/"+this.nombreModulo+"/Callbacks/callbacks_index_"+this.nombreModulo+".php";
				if(this.valores!="")
					nmbPag=rutaHOST+"/admin/modulos/"+this.nombreModulo+"/Callbacks/callbacks_index_"+this.nombreModulo+".php?valor="+this.valores;
				recarga(nmbForm,nmbPag);
			}
			catch(e)
			{
				alert(e)
			}
		}
	}

	this.LeeXmlPagina=function()
	{
		var datos=this.objXml.objXml.getElementsByTagName("datos");
		var propiedades=datos[0].getElementsByTagName("propiedades");
		var plantilla=datos[0].getElementsByTagName("plantilla");
		var PaginaItems=datos[0].getElementsByTagName("PaginaItems");
		var contenido=PaginaItems[0].getElementsByTagName("contenido");
		var seccion=PaginaItems[0].getElementsByTagName("seccion");
		var modulo=PaginaItems[0].getElementsByTagName("modulo");

		//propiedades de la pagina
 		this.NombrePagina=propiedades[0].getAttribute("nombre");
 		this.Publico=propiedades[0].getAttribute("protegido");
 		this.Resumen=propiedades[0].getAttribute("resumen");

		//CargaPlantilla
		var objClasePlantilla=new ClasePlantilla(plantilla[0],"pagina");
		objClasePlantilla.ModoEdicion=this.ModoEdicion;
		objClasePlantilla.Carga();

		//CargaContenido
		for(iContenido=0;iContenido<contenido.length;iContenido++)
		{
			if(contenido[iContenido].parentNode.nodeName=="PaginaItems")
			{
				var objClaseContenido=new ClaseContenido(contenido[iContenido],contenido[iContenido].getAttribute("contenedor"));
				objClaseContenido.FuncionQuitarContenido="quitarContenidoPagina(this.parentNode.parentNode)";
				objClaseContenido.VisibleBarraEdicion=this.ModoEdicion;
				objClaseContenido.verResumen=this.Resumen;
				objClaseContenido.Carga();
			}
		}

		//CargaSecciones
		for(iSeccion=0;iSeccion<seccion.length;iSeccion++)
		{
			var objClaseSeccion=new ClaseSeccion(seccion[iSeccion],seccion[iSeccion].getAttribute("contenedor"));
			objClaseSeccion.ModoEdicion=this.ModoEdicion;
			objClaseSeccion.Carga();
		}

		for(iModulo=0;iModulo<modulo.length;iModulo++)
		{
			var objClaseModulos=new ClaseModulos(modulo[iModulo],modulo[iModulo].getAttribute("contenedor"));
			objClaseModulos.ModoEdicion=this.ModoEdicion;
			objClaseModulos.Carga();
		}
		
//.tagName

	}

	this.Carga=function()
	{
		this.objXml.Clase=this;
		this.objXml.NombreFuncion="LeeXmlPagina";
		this.objXml.xmlArchivo=this.urlPagina;
		this.objXml.Carga();
	}

	//Acediendo a subClases
	this.LlamaSecciones=function(Seccion,Contenedor)
	{
		var objClaseSeccion=new ClaseSeccion(Seccion,Contenedor);
		objClaseSeccion.Carga();
	}

	this.LlamaModulos=function(Modulo,Contenedor,nombreModulo,Codigo,Valores )
	{
		var objClaseModulos=new ClaseModulos(Modulo,Contenedor);
		objClaseModulos.nombreModulo=nombreModulo;
		objClaseModulos.codigo=Codigo;
		objClaseModulos.valores=Valores;
		objClaseModulos.Carga();
	}

	this.LlamaContenido=function(Contenido,Contenedor)
	{
		var objClaseContenido=new ClaseContenido(Contenido,Contenedor);
		objClaseContenido.VisibleBarraEdicion=this.ModoEdicion;
		objClaseContenido.Carga();
	}

}

var objContenidoXML;
function cambia_contenido(obj)
{
	var tipo=obj.getAttribute("tipo");
	var contenido=obj.getAttribute("contenido");
	
	switch(tipo)
	{
		case "contenido":	
// 			objContenidoXML=new xml(rutaHOST+'/Contenidos/'+contenido+'.xml');
// 			objContenidoXML.Clase=this;
// 			objContenidoXML.NombreFuncion="LeeXmlContenidos";
// 			objContenidoXML.Carga();	
			nmbForm="formPrincipal";
			nmbPag="admin/php/Callbacks/callbacks_index.php";
			evento_btnVinculo("click","btnCambiaContenido",contenido);
		break;
		case "pagina":
			var objIndex=new Index(rutaHOST+'/Paginas/'+contenido+'.xml');
			objIndex.ModoEdicion=false;
			objIndex.Carga();
			cargaDragDop();
		break;
	}
	
}

function cambia_contenido_vinculo(tipo,contenido)
{
	switch(tipo)
	{
		case "contenido":	
/*			objContenidoXML=new xml(rutaHOST+'/Contenidos/'+contenido+'.xml');
			objContenidoXML.Clase=this;
			objContenidoXML.NombreFuncion="LeeXmlContenidos";
			objContenidoXML.Carga();*/	
			nmbForm="formPrincipal";
			nmbPag="admin/php/Callbacks/callbacks_index.php";
			evento_btnVinculo("click","btnCambiaContenido",contenido);

		break;
		case "pagina":
			var objIndex=new Index(rutaHOST+'/Paginas/'+contenido+'.xml');
			objIndex.ModoEdicion=false;
			objIndex.Carga();
			cargaDragDop();
		break;
	}
	
}

function cambia_contenido_modulo_vinculo(modulo,valores)
{
	var objIndex=new Index("");
	objIndex.LlamaModulos(modulo,"contenidos_generales",modulo,"1",valores);	
}

function LeeXmlContenidos()
{
	var datos=objContenidoXML.objXml.getElementsByTagName("datos");
	var objContenido=new Index();
	var contenidos_generales=document.getElementById("contenidos_generales");
	contenidos_generales.innerHTML="";
	objContenido.ModoEdicion=false;
	objContenido.LlamaContenido(datos[0],"contenidos_generales");
}

function __inicia()
{	
	var objIndex=new Index(rutaHOST+'/Paginas/index.xml');
 	objIndex.ModoEdicion=false;
 	objIndex.Carga();
 	cargaDragDop();
}
