var cDataSheetChild = Class.create({
	initialize: function(_parent, _section) {
		this.section = _section;
		this.parent = _parent;
		this.data = null;
		this.type = this.parent.type;
		this.id = this.parent.id;
	},
	activate: function() {
		if (!this.data) {
			this.requestData();
		} else {
			this.render();
		}
	},
	requestData: function() {
		var keres = new Ajax.Request('getDataSheet.php?section='+this.section+'&'+this.type+'='+this.id, {
			method:'get',
			onSuccess: this.parseRequest.bind(this)
		});
		// unique keres, csak egy futhat belole
		universe.addRequest('datasheet', keres, true, 0);
	},
	parseRequest: function(transport) {
		var ret = transport.responseText.evalJSON();
		this.data = ret;
		this.render();
		universe.hideIndicator();
	},
	render: function() {
		var templateName = 'template_datasheet_' + this.type + '_' + this.section;
		var datas = this.data;
		templater.render(this.parent.container, templateName, datas, this.afterRender.bind(this));
	},
	/* override */
	afterRender: function() {
		templater.observeElement($('datasheet-observer'), 'click', this.changeObserver.bind(this));
		this.parent.bindMenu();
	}
	,refresh: function() {
		this.render();
	}
	,callDoLogin: function() {
		userer.on('login', this.afterDoLogin, this);
		userer.showLogin();
	}
	,afterDoLogin: function() {
		//console.log('after');
		this.render();
		//userer.un('login', this.afterDoLogin, this);
	}
	,changeObserver: function() {
		if (!$('datasheet-observer')) return false;
		var add = $('datasheet-observer').checked ? 'add' : 'remove'
		userer.saveObserver(add, this.type, this.id);
		// force views to rerender
		this.parent.refreshData();
		return true;
	}
	,refreshData: function() {
		this.data = null;
	}
});

