$(document).ready(function() {
	// Save this search
	$("#savesearchbutton").click(function(){
		$.ajax({
			type: "POST",
			url: "/ajax",
			data: "ov=x&event=ajax&key=savesearch&s=y",
			dataType: 'json',
			success: function(data){saveSearchCallback(data);},
			error: function(data){callbackError(data);}
		});	
	}).show();
	
	// Load a search.
	$("#loadsearchbutton").click(function( event ){
		event.preventDefault() ;
		
		// Loading indicator
		$.ajax({
			type: "POST",
			url: "/ajax",
			data: "ov=x&event=savedsearches",
			success: function(data){loadSearchCallback(data);},
			error: function(data){callbackError();}
		});
	}).show();
});

function saveSearchCallback(data){
	var json = data[0];
	if(json.success){
		$(".saved").show();
		setTimeout(function(){$(".saved").hide();}, 2000);
	}
}

function loadSearchCallback(data){
	
	
	// Add a new overlay for the load function.
	var overlay = $('<div></div>');
	overlay.attr({"id":"loadsearchoverlay","class":"overlay"});
	overlay.appendTo($('body'));	
	
	$("#sort").hide();
	var holder = $('<div></div>');
	holder.attr({"id":"loadsearchholder"}).appendTo($('body')).append(data);
	
	var center = $(window).width()/2 - holder.width()/2;
	holder.css({"left":center+"px"});
	
	// Associate handlers with the delete buttons.
	$(".deletesavedsearchbutton").click(function(){
		var id = $(this).attr("id").replace("delsearch_","");
		var d = $(this).parent().parent();
		$.ajax({
			type: "POST",
			url: "/ajax",
			data: "ov=x&event=ajax&key=savesearch&d="+id,
			dataType: 'json',
			success: function(data){deleteSearchCallback(data, d);},
			error: function(data){callbackError(data);}
		});
	});
	
	// Associate handlers with the use buttons.
	$(".usesavedsearchbutton").click(function(){
		var id = $(this).attr("id").replace("usesearch_","");	
		
		var ret = pli.getResults(null, null, null, "&load="+id, false);

		if ($('#textsearchproductfinder > #searchTerms').length > 0 && ret != null && ret != "") {
			$('#textsearchproductfinder > #searchTerms').val(ret);
			$('#textsearchproductfinder > #searchbtn').click();
		}
		// now update the form 		
		holder.remove();
		overlay.remove();
		$("#sort").show();
	});
	
	// Associate handler with the close button
	$("#loadsearchbackbutton").click(function(event){
		event.preventDefault() ;
		holder.remove();
		overlay.remove();
		$("#sort").show();
	});
}

function deleteSearchCallback(data, d){
	var json = data[0];
	if(json.success){
		d.remove();
	}
}

function callbackError(data){
	alert("There was an error: "+data);
}
