comentarios = function(parametros){
	
	Ext.apply(this, parametros);

	var elLayout = Ext.DomHelper.append(document.body, {tag: "div", id: "comentarios"}, true);

	var layout = new Ext.BorderLayout(elLayout, {
		monitorWindowResize: true,
		north: {
			initialSize: 28
		},
		center: {
			autoScroll: true
		},
		south: {
			initialSize: 28
		}
	});	
	
	var panelNorth = layout.add("north", new Ext.ContentPanel({
		autoCreate: true
	}));
	
	var elMenu = Ext.DomHelper.append(panelNorth.getEl(), {tag: "div"}, true);	
	
	var menu = new botonera({
		el: elMenu,
		ambito: this,
		parametros: {
			APL_PADRE_ID: this.APL_ID	
		}
	});
	
	menu.on("crear", function(botonera){
		
		if(botonera == null){
			
			layout.getRegion("north").getEl().dom.style["display"] = "none";
			layout.layout();
			
		};
		
	});
	
	var panelCenter = layout.add("center", new Ext.ContentPanel({
		autoCreate: true
	}));
	
	var elView = Ext.DomHelper.append(panelCenter.getEl(), {tag: "div"}, true);
	
	var store = new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({
			url: "modulos/comentario/listar.php"
		}),
		reader: new Ext.data.JsonReader({  
			root: "resultado", 
			successProperty: "exito",
			totalProperty: "total", 
			id: "COM_ID" 
		}, [
		   {name: "COM_ID", type: "int"},
		   {name: "COM_FECHA", type: "string"},
		   {name: "COM_TEXTO", type: "string"},
		   {name: "USU_NOMBRES", type: "string"},
		   {name: "USU_APELLIDOS", type: "string"}
		])
	});
	
	var template = new Ext.Template(
		'<div class="feed-item">',
			'<div class="item-title">{USU_NOMBRES} {USU_APELLIDOS}</div>',
			'<div class="item-date">{COM_FECHA}</div>',
			'{COM_TEXTO}',
		'</div>'
	);
	
	var view = new Ext.View(elView, template, {
		singleSelect: true,
		selectedClass: "selected-article",
		store: store
	});
	
	store.on("load", function(){
		
		view.select(0, true, true);
		
	});
	
	var panelSouth = layout.add("south", new Ext.ContentPanel({
		autoCreate: true
	}));
	
	var elPagingToolbar = Ext.DomHelper.append(panelSouth.getEl(), {tag: "div"}, true);
	
	var paginador = new Ext.PagingToolbar(elPagingToolbar, store, {
        pageSize: this.limite
    });
	
	comentarios.superclass.constructor.call(this, layout, {
		title: "Comentarios"									 
	});
	
	var loadMask = new Ext.LoadMask(elLayout, {
		store: store,
		msg: "Cargando..."
	});
	
	this.view = view;
	this.store = store;
	this.cnn = new Ext.data.Connection();
	
};

Ext.extend(comentarios, Ext.NestedLayoutPanel, {

	limite: 10,
	ventanas: [],
	
	listar: function(){
	
		this.store.load({
			params: {
				start: 0, 
				limit: this.limite
			}
		});
		
	},
	
	agregar: function(boton){
	
		if(!this.ventanas["agregar"]){
			
			var el = Ext.DomHelper.append(document.body, {tag: "div"}, true);
			
			var ventana = new Ext.LayoutDialog(el, {
				modal: true,
				width: 360,
				height: 215,
				shadow: true,
				resizable: false,
				collapsible: false,
				title: "Agregar",
				center: {
					autoCreate: true
				}
			});
			
			var layout = ventana.getLayout();
			
			var panel = layout.add("center", new Ext.ContentPanel({
				autoCreate: true										  
			}));
			
			var formulario = new Ext.form.Form({
				style: "padding:10px",
				labelWidth: 75,
				waitTitle: "Espere por favor",
				method: "GET",
				errorReader: new Ext.data.JsonReader({
					root: "resultado", 
					successProperty: "exito"
				}, ["id", "msg"])
			});
			
			formulario.fieldset({legend:"Datos de la Comentario"}, 
				new Ext.form.DateField({
					fieldLabel: "Fecha",
					name: "COM_FECHA",
					selectOnFocus: true,
					format: "Y-m-d",
					width: 200
				}),
				new Ext.form.TextArea({
					fieldLabel: "Texto",
					name: "COM_TEXTO",
					selectOnFocus: true,
					width: 200
				})
			);
			
		    formulario.render(panel.getEl());
			
			formulario.on("actioncomplete", function(form, action){
	
				if(action.type == "submit"){
					
					ventana.hide();
					this.listar();
					
				};
					
			}, this);
			
			ventana.addButton("Cerrar", ventana.hide, ventana);
			
			ventana.addButton("Aceptar", function(){
			
				formulario.submit({
					url: "modulos/comentario/insertar.php",
					waitMsg: "Grabando..."
				});
													 
			});
			
			ventana.on("show", formulario.reset, formulario);
			
			ventana.formulario = formulario;
			this.ventanas["agregar"] = ventana;
			
		};
		
		this.ventanas["agregar"].formulario.baseParams = {
			COM_NOT_ID: this.store.baseParams.COM_NOT_ID
		};
		
		this.ventanas["agregar"].show(boton.id)
				
	},
	
	editar: function(boton){
		
		var nodos = this.view.getSelectedNodes();
		
		if(nodos.length > 0){
			
			var registro = this.store.getAt(nodos[0].nodeIndex);
	
			if(!this.ventanas["editar"]){
				
				var el = Ext.DomHelper.append(document.body, {tag: "div"}, true);
				
				var ventana = new Ext.LayoutDialog(el, {
					modal: true,
					width: 360,
					height: 215,
					shadow: true,
					resizable: false,
					collapsible: false,
					title: "Editar",
					center: {
						autoCreate: true
					}
				});
				
				var layout = ventana.getLayout();
				
				var panel = layout.add("center", new Ext.ContentPanel({
					autoCreate: true										  
				}));
				
				var formulario = new Ext.form.Form({
					style: "padding:10px",
					labelWidth: 75,
					waitTitle: "Espere por favor",
					method: "GET",
					reader: new Ext.data.JsonReader({
						root: "resultado", 
						successProperty: "exito"
					}, [
						{name: "COM_FECHA", type: "string"},
						{name: "COM_TEXTO", type: "string"}
					]),
					errorReader: new Ext.data.JsonReader({
						root: "resultado", 
						successProperty: "exito"
					}, ["id", "msg"])
				});
				
				formulario.fieldset({legend:"Datos del Comentario"}, 
					new Ext.form.DateField({
						fieldLabel: "Fecha",
						name: "COM_FECHA",
						selectOnFocus: true,
						format: "Y-m-d",
						width: 200
					}),
					new Ext.form.TextArea({
						fieldLabel: "Texto",
						name: "COM_TEXTO",
						selectOnFocus: true,
						width: 200
					})
				);
				
				formulario.render(panel.getEl());
				
				formulario.on("actioncomplete", function(form, action){
		
					if(action.type == "submit"){
						
						ventana.hide();
						this.listar();
						
					};
						
				}, this);
				
				ventana.addButton("Cerrar", ventana.hide, ventana);
				
				ventana.addButton("Aceptar", function(){
				
					formulario.submit({
						url: "modulos/comentario/editar.php",
						waitMsg: "Grabando..."
					});
														 
				});
				
				ventana.on("show", function(){
				
					formulario.load({
						url: "modulos/comentario/listar.php",
						waitMsg: "Cargando..."
					});
															   
				});
				
				ventana.formulario = formulario;
				this.ventanas["editar"] = ventana;
				
			};
			
			this.ventanas["editar"].formulario.baseParams = {
				COM_ID: registro.get("COM_ID")
			};
			
			this.ventanas["editar"].show(boton.id);
			
		};
		
	},
	
	eliminar: function(boton){
	
		var nodos = this.view.getSelectedNodes();
		
		if(nodos.length > 0){
			
			var registro = this.store.getAt(nodos[0].nodeIndex);
			
			Ext.MessageBox.wait("Eliminando...", "Espere por favor");
			
			this.cnn.request({
				url: "modulos/comentario/eliminar.php",
				params: {
					COM_ID: registro.id	
				},
				success: function(response, options){
					
					Ext.MessageBox.updateProgress(1);
					Ext.MessageBox.hide();
					this.store.reload();
					
				},
				failure: function(response, options){
					
					Ext.MessageBox.updateProgress(1);
					Ext.MessageBox.hide();
					Ext.Msg.alert("Error", response.responseText);
					
				},
				scope: this
			});
			
		};
		
	},
	
	reconfigurar: function(noticia){
	
		Ext.apply(this.store.baseParams, {
			COM_NOT_ID: noticia  
		});
		
	}

});