function TablaBD(IdTabla)
{
	this.MuestraIndex=false;
	this.MuestraEditar=false;
	this.MuestraEliminar=false;
	this.Paginacion=10;

	this.ClaseIndex="";
	this.ClaseEditar="";
	this.ClaseEliminar="";
	this.PaginaCallbacks="";


	this.FilasCampos=new Array();
	this.CeldasCampos=new Array();
	this.Datos="";

	this.CargaDatos=function()
	{
		this.FilasCampos=this.Datos.split("/*tr#/");
		for(iFilasCampos=1;iFilasCampos<this.FilasCampos.length;iFilasCampos++)
		{
			var ArrCelda=this.FilasCampos[iFilasCampos].split("/*td#/");
			this.CeldasCampos[iFilasCampos]=new Array();
			for(iCelda=1;iCelda<ArrCelda.length;iCelda++)
			{
				this.CeldasCampos[iFilasCampos][iCelda]=new DatosCeldaDb();
				this.CeldasCampos[iFilasCampos][iCelda].Carga(ArrCelda[iCelda]);
			}
		}
	}

	this.BuscarDato=function(PosFila,Campo)
	{
		for(iCeldaBuscar=1;iCeldaBuscar<this.CeldasCampos[PosFila].length;iCeldaBuscar++)
		{
			if(this.CeldasCampos[PosFila][iCeldaBuscar].Campo==Campo)
				return this.CeldasCampos[PosFila][iCeldaBuscar].Texto;
		}
		return Campo;
	}


	this.Carga=function()
	{
 		this.objTabla=document.getElementById(IdTabla);
 		this.ObtieneCuerpo();
 		this.ObtieneFilas();
 		this.ObtieneCeldas();
 		this.CargaDatos();
 
 		var PosFilas=this.OcultaTitulosEtiquetas();
		var objFilaNueva=null;
		var objCeldaNueva=null;
		var objElementoNuevo=null;
 		this.BorrarFilas(PosFilas+1);

 		for(iFilasCampos=1;iFilasCampos<this.FilasCampos.length;iFilasCampos++)
 		{
			objFilaNueva=new Fila();
			objFilaNueva.Crea();
			objFilaNueva.Copia(this.objFila[PosFilas].Obj);
			objFilaNueva.Obj.setAttribute("_iFila",iFilasCampos);

			this.objCuerpo.AdicionaFila(objFilaNueva.Obj);
			objFilaNueva.Obj.style.display="";

			despliega="display:table-cell;";
			if(iFilasCampos>this.Paginacion)
				despliega="display:none;";


			for(iCelda=0;iCelda<this.objCelda[PosFilas].length;iCelda++)
			{

				objCeldaNueva=new Celda();
				objCeldaNueva.Crea();
				objCeldaNueva.Copia(this.objCelda[PosFilas][iCelda].Obj);
				objCeldaNueva.Obj.align=this.objCelda[PosFilas][iCelda].Obj.align;
				objCeldaNueva.Obj.setAttribute("valign",this.objCelda[PosFilas][iCelda].Obj.getAttribute("valign"));
				objCeldaNueva.Obj.setAttribute("style",this.objCelda[PosFilas][iCelda].Obj.getAttribute("style"));
				switch(this.objCelda[PosFilas][iCelda].Obj.getAttribute("tipo"))
				{
					case "texto":
						objCeldaNueva.AdicionaTexto(this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id));
					break;
					case "tdIndex":
 						objCeldaNueva.AdicionaTexto(iFilasCampos+1);
						if(this.ClaseIndex!="")
 							ie4 ? objCeldaNueva.Obj.className=this.ClaseIndex : objCeldaNueva.Obj.setAttribute("class",this.ClaseIndex);
						else
 							ie4 ? objCeldaNueva.Obj.className=this.objCelda[PosFilas][iCelda].Obj.className : objCeldaNueva.Obj.setAttribute("class",this.objCelda[PosFilas][iCelda].Obj.className);
					break;
					case "tdEditar":
 						objElementoNuevo=new objBoton();
 						this.ElementoDB(objElementoNuevo,"tdEditar"+iFilasCampos,"tdEditar");
						ie4 ? objElementoNuevo.Obj.className=this.ClaseEditar : objElementoNuevo.Obj.setAttribute("class",this.ClaseEditar);
 						objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id);
 						objElementoNuevo.Obj.onclick=__callback;
						objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
					break;
					case "tdEliminar":
						objElementoNuevo=new objBoton();
						this.ElementoDB(objElementoNuevo,"tdEliminar"+iFilasCampos,"tdEliminar");
						ie4 ? objElementoNuevo.Obj.className=this.ClaseEliminar : objElementoNuevo.Obj.setAttribute("class",this.ClaseEliminar);
						objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id);
						objElementoNuevo.Obj.onclick=__callback;
						objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
					break;
					case "tdCheckbox":
						objElementoNuevo=new objCheckBox();
						this.ElementoDB(objElementoNuevo,"tdCheckbox"+iFilasCampos,"tdCheckbox");
						ie4 ? objElementoNuevo.Obj.className="Class"+this.objTabla.id+"tdCheckbox" : objElementoNuevo.Obj.setAttribute("class","Class"+this.objTabla.id+"tdCheckbox");
						objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id);
						objElementoNuevo.Obj.onclick=__callback;
						objElementoNuevo.Obj.name="Id"+this.objTabla.id+"tdCheckbox"+iFilasCampos;
						objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
					break;
					case "tdVinculo":
						objElementoNuevo=new objBoton();
						this.ElementoDB(objElementoNuevo,"tdVinculo"+iFilasCampos,"tdVinculo");
						ie4 ? objElementoNuevo.Obj.className="Class"+this.objTabla.id+"tdVinculo" : objElementoNuevo.Obj.setAttribute("class","Class"+this.objTabla.id+"tdVinculo");
						objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id);
						objElementoNuevo.Obj.onclick=__callback;
						objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
					break;
					case "tdCustom":
						var ElementoCustom=this.objCelda[PosFilas][iCelda].Obj.getElementsByTagName("input");
						for(iElementoCustom=0;iElementoCustom<ElementoCustom.length;iElementoCustom++)
						{
							objElementoNuevo=new objElemento();
							objElementoNuevo.TipoElemento=ElementoCustom[iElementoCustom].type;
							objElementoNuevo.Nombre=ElementoCustom[iElementoCustom].name+iFilasCampos;
							objElementoNuevo.Id=ElementoCustom[iElementoCustom].name+iFilasCampos;
							objElementoNuevo.CreaElemento();
							objElementoNuevo.Copia(ElementoCustom[iElementoCustom]);
							objElementoNuevo.Obj.setAttribute("TagValor",this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id));
							objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,ElementoCustom[iElementoCustom].value);
							objElementoNuevo.Obj.id=objElementoNuevo.Obj.id+iFilasCampos;

							if(ElementoCustom[iElementoCustom].onclick)
								objElementoNuevo.Obj.onclick=ElementoCustom[iElementoCustom].onclick;

							objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
						}
					break;
					case "tdVinculoCustom":
						var ElementoCustom=this.objCelda[PosFilas][iCelda].Obj.getElementsByTagName("input");
						for(iElementoCustom=0;iElementoCustom<ElementoCustom.length;iElementoCustom++)
						{
							objElementoNuevo=new objElemento();
							objElementoNuevo.TipoElemento=ElementoCustom[iElementoCustom].type;
							objElementoNuevo.Nombre="btn_"+ElementoCustom[iElementoCustom].name;
							objElementoNuevo.CreaElemento();
							objElementoNuevo.Copia(ElementoCustom[iElementoCustom]);
							objElementoNuevo.Pagina(this.PaginaCallbacks);
							objElementoNuevo.Obj.setAttribute("TagValor",this.BuscarDato(iFilasCampos,this.objCelda[PosFilas][iCelda].Id));
							objElementoNuevo.Obj.value=this.BuscarDato(iFilasCampos,ElementoCustom[iElementoCustom].value);
							objElementoNuevo.Obj.id="btn_"+ElementoCustom[iElementoCustom].name+iFilasCampos;
							if(!ElementoCustom[iElementoCustom].onclick)
								objElementoNuevo.Obj.onclick=ejecuta_evento_TdTabla;
							else
								objElementoNuevo.Obj.onclick=ElementoCustom[iElementoCustom].onclick;
							objCeldaNueva.AdicionaObjeto(objElementoNuevo.Obj);
						}
					break;
				}
				//this.ie4 ? objCeldaNueva.Obj.getAttribute("style").cssText=despliega : objCeldaNueva.Obj.setAttribute("style",despliega);
				objCeldaNueva.Obj.setAttribute("style",despliega);
				objFilaNueva.AdicionaCelda(objCeldaNueva.Obj);
			}
		}
// 		//Paginacion
		if(this.FilasCampos.length>this.Paginacion-1)
		{
			objPaginacion = new Paginacion(this.objCuerpo,this.objCelda[PosFilas].length,this.Paginacion);
			objPaginacion.Crea();
		}
	}
	
	this.OcultaTitulosEtiquetas=function()
	{
		for(iFilas=0;iFilas<this.objFila.length;iFilas++)
		{
			if(this.objFila[iFilas].Obj.getAttribute("tipo")=="tdtEtiqueta" || this.objFila[iFilas].Obj.getAttribute("tipo")=="tdtTitulo")
			{
				//ie4 ? this.objFila[iFilas].Obj.getAttribute("style").cssText="display:none" : this.objFila[iFilas].Obj.setAttribute("style","display:none");
				break;
			}
		}
		return iFilas;
	}

	this.ElementoDB=function(objElementoNuevo,Id,Nombre)
	{
		objElementoNuevo.Id="Id"+this.objTabla.id+Id;
		objElementoNuevo.Nombre="btn"+this.objTabla.id+Nombre;
		objElementoNuevo.CreaElemento();
		objElementoNuevo.Pagina(this.PaginaCallbacks);
	}
	
}

TablaBD.prototype=new Tabla();


// objDatosBD=new DatosBD();
// TablaBD.prototype.FilasCampos=objDatosBD.FilasCampos;
// TablaBD.prototype.CeldasCampos=objDatosBD.CeldasCampos;
// TablaBD.prototype.Datos=objDatosBD.Datos;
// TablaBD.prototype.CargaDatos=objDatosBD.CargaDatos;
// TablaBD.prototype.CargaDatos=objDatosBD.CargaDatos;
