var currentQuery = "";
var cache = new Object();

function doSearch() {
	var query = $("#searchquery").val();
	currentQuery = query;

	if (cache[query]) { dataSuccess(cache[query]); return; }

	$.ajax({
		cache: false,
		dataType: "json",
		error: dataError,
		success: dataSuccess,
		timeout: 15000,
		data: {query: query},
		url: "/svc/search.cfm"
	});
}

function dataSuccess(results) {
	var query = results.query;
	var artists = results.artists;
	var albums = results.albums;
	var songs = results.songs;
	var haveResults = false;

	cache[query] = results;
	$.cookie('dnsearch',query)

	$("#results").html("");

	$("#results").append("<div id='artistResults' class='results'><h1>Artists</h1></div>");
	if (artists.length > 0) {
		$("#artistResults").append("<ul></ul>");
		for (var i = 0; i < artists.length; i++) {
			var s = artists[i];
			$("#artistResults ul").append("<li>" + imageTagVert(s.id,85) + "<br \/>" + pageLink(s.id,s.name,s.urlName,"artists") + "</li>"); 
		}
		haveResults = true;
	} else {
		$("#artistResults").append("<p>No matching artists</p>");
	}

	$("#results").append("<div id='albumResults' class='results'><h1>Albums</h1></div>");
	if (albums.length > 0) {
		$("#albumResults").append("<ul></ul>");
		for (var i = 0; i < albums.length; i++) {
			var s = albums[i];
			$("#albumResults ul").append("<li>" + imageTag(s.id,50) + buyLink(s.id,s.urlName) + pageLink(s.id,s.name,s.urlName,"albums") + "<br \/>Artist: " + pageLink(s.artist,s.artistName,s.urlName,"artists") + "</li>"); 
		}
		haveResults = true;
	} else {
		$("#albumResults").append("<p>No matching albums</p>");
	}

	$("#results").append("<div id='songResults' class='results'><h1>Tracks</h1></div>");
	if (songs.length > 0) {
		$("#songResults").append("<ul></ul>");
		for (var i = 0; i < songs.length; i++) {
			var s = songs[i];
			$("#songResults ul").append("<li>" + samplePlayer(s.artist,s.album,s.id) + buyLink(s.album,s.name)  + s.name + "<br \/>Album: " + pageLink(s.album,s.albumName,s.urlName,"albums") + "<br \/>Artist: " + pageLink(s.artist,s.artistName,s.urlName,"artists") + "</li>"); 
		}
		haveResults = true;
	} else {
		$("#songResults").append("<p>No matching tracks</p>");
	}

	if (haveResults) {
		$("#results").slideDown("slow");
		$("#results").removeClass("searchClosed").addClass("searchOpen");
//	} else {
//		$("#results").slideUp("slow");
	}

}

function dataError(results,error) {
}

$(document).ready(function () {

	if ($.cookie('dnsearch') != null) {
		$("#recent a").text($.cookie('dnsearch'))
		.click( function () {
			var query = $("#recent a").text();
			$("#searchquery").val(query);
			doSearch();
		});
	} else {
		$("#recent").hide();
	}
	$("#search").slideDown("slow");
//	$("#search").effect("highlight", {}, 3000);
	$("#doSearch").click(doSearch);
	$("#doClose").click(function () {
		var recent = $("#searchquery").val();
		$("#recent a").text(recent);
		$("#recent").show();
		$("#searchquery").val("");
		$("#results").html("");
		$("#results").slideUp("slow");
		$("#results").removeClass("searchOpen").addClass("searchClosed");
	});
	$("#searchquery").val("");
	$("#searchquery").keyup(function () {
		if ($("#searchquery").val().length > 2) { 
			if (currentQuery != $("#searchquery").val()) {
				doSearch(); 
			}
		} else {
			$("#results").html("");
			$("#results").slideUp("slow");
			$("#results").removeClass("searchOpen").addClass("searchClosed");
		}
	});
	
});

