/* literaturgrid */

/*
	dojo.require("dojo.data.ItemFileReadStore");
	dojo.require("dijit.layout.ContentPane");
	dojo.require("dijit.form.Button");
	dojo.require("dijit.form.NumberTextBox");
	dojo.require("dojox.validate.regexp");
	dojo.require("dojox.grid.DataGrid");

	dojo.require("dojo.parser");
*/

	// JSON Store for DataGrid
	var resultStore= new dojo.data.ItemFileReadStore(
		{
			id: "resultStore",
			url: "/fileadmin/kwf_portlet_literaturgrid/data/csv/literatur.json"
		}
	);

	// Daten in Store laden und Grid erzeugen
	dojo.addOnLoad(function() {
	
		// Layout for DataGrid
		var resultLayout = [
			[
				{
					field: 'year',
					name: 'Jahr',
					width: '10%',
					styles: 'font-weight: bold;'
				}, {
					field: 'author',
					name: 'Autor',
					width: '90%',
					styles: 'font-weight: bold;'
				}
			], [
				{
					field: 'title',
					name: 'Titel',
					colSpan: 2
				}
			], [
				{
					field: 'publication',
					name: 'Erscheinungsort',
					width: 'auto',
					styles: 'text-align: right; padding-right: 20px; font-size: 7pt; font-weight: bold;',
					colSpan: 2
				}
			]
		];
		
		// DataGrid
		var gridWidget = new dojox.grid.DataGrid(
			{
				id: 'resultGrid',
				jsId: 'resultGrid',
				store: resultStore,
				structure: resultLayout,
				rowSelector: "20px",
				autoHeight: true,
				queryOptions: {	ignoreCase: true }
			},
			dojo.byId("results-grid")
		);
		gridWidget.startup();
		
	});

	// Update Grid
	function updateGrid() {
		var author = buildQuery('author');
		var title = buildQuery('title');
		var year = buildQuery('year');
		var publication = buildQuery('publication');
		var grid = dijit.byId('resultGrid');
		grid.filter(
			{
				author: author,
				title: title,
				year: year,
				publication: publication
			},
			true
		);
		grid.refresh();
	}
	
	function buildQuery(ystr) {
		var such = dijit.byId("search" + ystr).attr('value');
		if ((such == '') || (!such)) {
			return '*';
		} else {
			return '*' + such + '*';
		}
	}

	// Reset Form
	function resetForm() {
		dijit.byId("searchauthor").attr('value','');
		dijit.byId("searchtitle").attr('value','');
		dijit.byId("searchyear").attr('value','');
		dijit.byId("searchpublication").attr('value','');
		updateGrid();
	}

	// Connect Buttons with Action
	dojo.addOnLoad(function() {
		var searchAction = {
			performAction: function() {updateGrid();},
			resetAction: function() {resetForm();}
		};
		dojo.connect(dojo.byId("search-perform"), "onclick", searchAction, "performAction");
		dojo.connect(dojo.byId("search-reset"), "onclick", searchAction, "resetAction");
	});