// for use with jQuery

current_selected_url = null;
searching_now = false;
did_keystroke = false;
current_selected_url2 = null;
searching_now2 = false;
did_keystroke2 = false;

var do_redirect_maybe2 = function() {
    if (current_selected_url2 !== null && $('#search-field2').val() !== '') {
	new_message2("Redirecting", "success");
	window.location = current_selected_url2;
    }
};

var new_message2 = function(msg, cls) {
    if (cls)
	cls = 'class="'+cls+'"';
    dom_string = '<div style="margin:-15px 0px 0px 0px; padding:5px;" id="searching-status2" '+cls+'>'+msg+'</div>';
    $("#searching-status2").replaceWith(dom_string);
};


var do_redirect_maybe = function() {
    if (current_selected_url !== null && $('#search-field').val() !== '') {
	new_message("Redirecting", "success");
	window.location = current_selected_url;
    }
};

var new_message = function(msg, cls) {
    if (cls)
	cls = 'class="'+cls+'"';
    dom_string = '<div style="margin:-15px 0px 0px 0px; padding:5px;" id="searching-status" '+cls+'>'+msg+'</div>';
    $("#searching-status").replaceWith(dom_string);
};


$(function() {
    current_selected_url = null;
    searching_now = false;
    did_keystroke = false;
	current_selected_url2 = null;
	searching_now2 = false;
	did_keystroke2 = false;
	
	//one
    $("#search-field").keyup(function() {
	if ($('#search-field').val().length < 2 && did_keystroke) {
	    new_message('Searching...');
	    return;
	}
	did_keystroke = true;
    	searching_now = true;
	new_message("Searching...", "success");
    });

	//two
    $("#search-field2").keyup(function() {
	if ($('#search-field2').val().length < 2 && did_keystroke) {
	    new_message2('Searching...');
	    return;
	}
	did_keystroke2 = true;
    	searching_now2 = true;
	new_message2("Searching...", "success");
    });
	//autocomplete 1
    $("#search-field").autocomplete({
	// source: "do_search.php",
	source: function(request, response) {
	    $.ajax({
		url: "../pages/ajax_search.php",
		dataType: "json",
		data: {
		    term: request.term
		},
		success: function(data, XMLHttpRequest) {
			if(!data) { 
				new_message("No results found.", "notice");
			}
		    response(data);
		    if (searching_now) {
			if (data.length == 0) {
			    new_message("No results found.", "notice");
			} else if (data.length == 1) {
			    current_selected_url = data[0].url;
			    do_redirect_maybe();
			} else {
			    new_message("Please select from the list below.", "success");
			}
		    }
		}

		
	    })
	},
	minLength: 2,
	select: function(event, ui) {
	    current_selected_url = ui.item.url;
	    $("#search-field").val(ui.item.label);
	    do_redirect_maybe();
	},
	focus: function(event, ui) {
	    $("#search-field").val(ui.item.label);
	}
    });
	
	//autocomplete 2
	    $("#search-field2").autocomplete({
	// source: "do_search.php",
	source: function(request, response) {
	    $.ajax({
		url: "data/ajax_location.data.php",
		dataType: "json",
		data: {
		    term: request.term
		},
		success: function(data, XMLHttpRequest) {
			if(!data) { 
				new_message2("No results found.", "notice");
			}
			response(data);
		    if (searching_now2) {
			if (data.length == 0) {
			    new_message2("No results found.", "notice");
			} else if (data.length == 1) {
			    current_selected_url2 = data[0].url;
			    do_redirect_maybe2();
			} else {
			    new_message2("Please select from the list below.", "success");
			}
		    }
		}
	    })
	},
	minLength: 2,
	select: function(event, ui) {
	    current_selected_url2 = ui.item.url;
	    $("#search-field2").val(ui.item.label);
	    do_redirect_maybe2();
	},
	focus: function(event, ui) {
	    $("#search-field2").val(ui.item.label);
	}
    });
	
});
