// JavaScript Document
//Requires jQuery >=1.4.2

var searchCache = {};
var termIds = {};
var currentSearch = null;



function fillCache(term, page) {
	if (!page) page = 0;
	
	if (typeof(termIds[term]) == 'undefined' || termIds[term] != currentSearch) {
		currentSearch = null;
	}
	
	if (term.length >= 2) {
		$.get('/inc/api?action=search', {q: term, page: page, id: currentSearch}, function(data) {
			if (typeof(data.presult) == 'object') {
				if (typeof(searchCache[data.search_id]) == 'undefined') {
					searchCache[data.search_id] = {};
					searchCache[data.search_id]['pages'] = data.pages;
					searchCache[data.search_id]['total'] = data.total;
					searchCache[data.search_id]['page'] = {};
				}
				searchCache[data.search_id]['page'][data.page] = data.presult;
				currentSearch = data.search_id;
				termIds[term] = currentSearch;
				buscarTema(term, page);
			}
			else {
				currentSearch = null;
			}
		}, 'json');
	}
}

var sortTable = null;

function buscarTema(term, page) {
	if (!page) page = 0;
	
	if (typeof(termIds[term]) == 'undefined' || typeof(searchCache[termIds[term]]) == 'undefined' ||
		typeof(searchCache[termIds[term]].page[page]) == 'undefined') {
		fillCache(term, page);
		return true;
	}
	
	if (typeof(termIds[term]) != 'undefined' && typeof(searchCache[termIds[term]].page[page]) != 'undefined') {
		if (document.getElementById('tablaBusqueda')) {
			var resTable = $('#tablaBusqueda');
			var resTableTBody = $('#tablaBusqueda>tbody');
		}
		else {
			var resTable = $('<table id="tablaBusqueda" class="sort-table" cellspacing="0"></table>');
			resTable.append($('<thead><tr><td>Artista</td><td>Tema</td><td>Acciones</td></tr></thead>'));
			var resTableTBody = resTable.append($('<tbody></tbody>'));
			$('#busquedaResultados').append(resTable);
			
			sortTable = new SortableTable(document.getElementById('tablaBusqueda'), ['CaseInsensitiveString', 'CaseInsensitiveString']);
			sortTable.reSort = function () {
				if (this.sortColumn != null) this.sort(this.sortColumn, this.descending);
			}
		}
		
		for (i in searchCache[termIds[term]].page[page]) {
			var value = searchCache[termIds[term]].page[page][i];

//			var itemDiv = $('<div></div>');
			var itemTr = $('<tr></tr>');
//			itemDiv.append($('<div></div>').html(value.nombreDeArtista + ' - ' + value.tituloDeTema));
			itemTr.append($('<td></td>').html(value.artistaDeTema.substr(0,27)));
			itemTr.append($('<td></td>').html(value.tituloDeTema.substr(0,27)));
//			itemDiv.append($('<div class="artista"></div>').html();
//			itemDiv.append($('<div class="linkDescarga"></div>').html('<span onclick="dwfile(\'' + value.urlDeTema + '\');" >D</span>'));
			itemTr.append($('<td></td>').html('<a href="' + value.urlDeTema + '" target="_blank">Descargar</a>'));
			
//			$('#busquedaResultados').append($('<div></div>').append(itemDiv));
			resTableTBody.append(itemTr);
		}
		sortTable.reSort();
		
		if (searchCache[termIds[term]].pages-1 > page) {
			$('#busquedaResultados').append($('<div id="loadMore"></div>').html('cargar mas...').click(function() {
				buscarTema(term, page + 1);
				$(this).remove();
			}));
		}
	}

}

function cargarPagina(page) {
	var res = '' //obtener resultados...
	
}
