$(document).ready(function() {
	$("#entriesnumber").hide();
	$("#pagination").hide();
	
	if(document.getElementById("searchform")) {
		document.getElementById("searchform").action="javascript:searchAgain()";
	} else if(document.getElementById("searchAdvancedForm")) {
		document.getElementById("searchAdvancedForm").action="javascript:searchAgain()";
	}
	
	$("#catalogueId").change(function() { 	if(document.getElementById("hits")) { searchAgain(); }});
	$("#visualization").change(function() { if(document.getElementById("hits")) { searchAgain(); }});			
	$("#resultsPerPage").change(function() {if(document.getElementById("hits")) { searchAgain(); }});		
});

function getOffset() {
	var resultsPerPage = $("#resultsPerPage").val();
	var current_page 	= $("#pagination span.current").text().replace('Siguiente','').replace('Anterior','');
	var offset = (current_page==0) ? 0 : ((current_page*resultsPerPage)-resultsPerPage);
	var entriesnumber = $("div#entriesnumber span.value").html();
	if(offset > entriesnumber) {
		offset = 0;		
	}
	return offset;
}

function getParameters() {
	var parameters = {};
	var resultsPerPage = $("#resultsPerPage").val();
	parameters['resultsPerPage'] = resultsPerPage;
	var current_page 	= $("#pagination span.current").text().replace('Siguiente','').replace('Anterior','');
	var offset = (current_page==0) ? 0 : ((current_page*resultsPerPage)-resultsPerPage);
	if(offset > entriesnumber) {
		offset = 0;		
	}
	var entriesnumber = $("div#entriesnumber span.value").html();
	
	parameters['offset'] = offset;
	parameters['visualization']	= $("#visualization").val();
  	parameters['catalogueId'] = $("#catalogueId").val();
  	if($("table.dctable th.selected").attr('id')) {
  		parameters['orderby'] = $("table.dctable th.selected").attr('id')
  	}
  	parameters['output'] = "json";	
  	if(document.getElementById("searchAdvancedForm")) {
  		parameters['queryCreator'] = $("#queryCreator").val();
		parameters['occurCreator'] = $("#occurCreator").val();
		parameters['queryTitle'] = $("#queryTitle").val();
		parameters['occurTitle'] = $("#occurTitle").val();
		parameters['queryPublisher'] = $("#queryPublisher").val();
		parameters['occurPublisher'] = $("#occurPublisher").val();
		parameters['queryDate'] = $("#queryDate").val();		
		parameters['occurDate'] = $("#occurDate").val();
		parameters['queryIdentifier'] =  $("#queryIdentifier").val();
		parameters['occurIdentifier'] = $("#occurIdentifier").val();
		parameters['queryDescription'] = $("#queryDescription").val();
		parameters['occurDescription'] = $("#occurDescription").val();
		parameters['querySubject'] = $("#querySubject").val();
		parameters['occurSubject'] = $("#occurSubject").val();
  	} else {
  		parameters['query'] = $("#query").val();
  	}
  	return parameters;
}

function searchAgain() {
	var parameters = getParameters();
	$("#hits").html("");	
	var loading_icon = "<p class=\"loading\"><span>Cargando ...</span></p>";
	$("#hits").html(loading_icon);
	var url = "/json/buscar.html";
	history.back = url + "?" + parameters;
	$.post(url, parameters,function(json) {
		appendHits(json);
		updatePagination("pagination",json.entriesnumber, json.offset, json.resultsPerPage, 8,"searchAgain");
		$("div#entriesnumber span.value").html(json.entriesnumber);
		$("p.loading").remove();		
	}, "json");	
}

function appendHits(json) {
	var html = "";
	if(json.results.results.length > 0) {		
		for(var i = 0;i < json.results.results.length; i++) {
			var dc = new DublinCore();
			dc.populateWithJSON(json.results.results[i]);				
			html +="<li class=\"dc "+ (((i % 2) == 0) ? "even" : "odd") +"\">";
			html +="<span class=\"counter\">#"+ (getOffset() + i+1)+"</span>";
			html += dc.toList();
			html += "</li>"						
		}			
		$("div#hits").append(html);
		$("#entriesnumber").show();
		$("#pagination").show();
	} else {
		html = "<p class=\"help\">No se han encontrado resultados para su búsqueda. Pruebe a seleccionar otro fondo o archivo.</p>";
		$("#entriesnumber").hide();
		$("#pagination").hide();
	}
}

DublinCore.prototype.toList = function() {
	var html = "<span class=\"identifier noprint\"><a href=\"" + this.url + "\">[Detalles]</a></span>";
	
	if(this.dcDate && this.dcDate!= "") {			
		html += " <span class=\"date\">"+ this.dcDate +"</span>";
	}
	
	if(this.dcTitle && this.dcTitle != "") {
		html += " <span class=\"title\">"+ this.dcTitle +"</span>";
	}	
	
	if(this.dcCreator && this.dcCreator!="") {			
		html += " <span class=\"creator\">"+ this.dcCreator +"</span>";
	}

	if(this.dcDescription && this.dcDescription!="") {
		html += " <span class=\"description\">"+ ((this.dcDescription.length > 164) ? this.dcDescription.substring(0, 164) + " ..." : this.dcDescription) +"</span>";		
	}
	return html;
};


