$(document).ready( function() {
	// Add class to body that renders the black banner band across the top of the page.
	$("body").addClass("with-banner");

	setupBannerSearchBehavior();

	$("#useSmartBrowseCheckbox").click(
        function() {
            $.post("/ajax/home.do?action=SEARCHPREF", {searchdefault : this.checked}, function(data) {
                if (data["success"] == "false") {
                    alert("There was a problem saving the search preference.");
                }
            })
        });

	$(".navTab").click(
		function() {
			$(".navTab").removeClass("selected");
			$(this).addClass("selected");
		});

});

function doBannerSearch(_use_smart_browse, _search_term) {
	_search_term = encodeURIComponent(_search_term);
	if (_use_smart_browse) {
		document.location = "/smartsearch.do?bannerSearchText=" + _search_term;
	} else {
		document.location = "/search.do?defaultAction=search&includeCanceled=true&format=&searchString=" + _search_term + "&action=Search&searchField=titleContains&released=0&ratingRank=100.0";
	}
}

function doBannerFormatSearch(_use_smart_browse, _search_term, _formatId) {
	_search_term = encodeURIComponent(_search_term);
	var _format;
	if (_formatId == 1) _format = 'DVD';
	if (_formatId == 2) _format = 'CD';
	if (_formatId == 3) _format = 'AUDIOBOOK';
	if (_formatId == 4) _format = 'BLURAY';
	if (_formatId == 5) _format = 'PLAYAWAY';
	if (_use_smart_browse) {
		document.location = "/smartsearch.do?bannerSearchText=" + _search_term + "&format=" + _format;
	} else {
		// We need to convert formatId into a string that the enum will understand.
		// Strike one more against the Format enum.
		document.location = "/search.do?defaultAction=search&includeCanceled=true&format=" + _format + "&searchString=" + _search_term + "&action=Search&searchField=titleContains&released=0&ratingRank=100.0";
	}
}

function setupBannerSearchBehavior() {
	var _bannerSearchBox_color = "gray";

	setBannerAutoComplete();

	$("#bannerSearchBox").keypress(
		function (e) {
			// The two element ids are bannerSearchBox and useSmartBrowseCheckbox.
			if (e.which == 13) {
				var _search_term = jQuery.trim($("#bannerSearchBox").val());
				if (_search_term != "") {
					var useSmartBrowse = ($("#useSmartBrowseCheckbox:checked").val() != undefined);
					doBannerSearch(useSmartBrowse, _search_term);
				}
			}
		});

	$("#go_button").click (
		function() {
			var _search_term = jQuery.trim($("#bannerSearchBox").val());
			if ((_search_term != "") && (_search_term != "Search")) {
				var useSmartBrowse = ($("#useSmartBrowseCheckbox:checked").val() != undefined);
				doBannerSearch(useSmartBrowse, _search_term);
			}
		}
	);

	$("#bannerSearchBox").focus(
		function() {
			if (($("#bannerSearchBox").val() == "Search") && (_bannerSearchBox_color == "gray")) {
				_bannerSearchBox_color = "black";
				$("#bannerSearchBox").css("color", _bannerSearchBox_color);
				$("#bannerSearchBox").val("");
			}
		});

	$("#bannerSearchBox").blur(
		function() {
			if ($("#bannerSearchBox").val() == "") {
				_bannerSearchBox_color = "gray";
				$("#bannerSearchBox").css("color", _bannerSearchBox_color);
				$("#bannerSearchBox").val("Search");
			}
		});

	// Call the setBannerAutoComplete() function to set up autocomplete on bannerSearchBox
	// whenever useSmartBrowseCheckbox is clicked.
	$("#useSmartBrowseCheckbox").click(function() {setBannerAutoComplete();});

}

function setBannerAutoComplete() {
	// 2010-04-19 sdillon: autocomplete disabled as per cmerritt
	var autoCompleteEnabled = true;
	if (autoCompleteEnabled) {
		var useSmartBrowse = ($("#useSmartBrowseCheckbox:checked").val() != undefined);
		var subset = useSmartBrowse ? 'all' : 'title';
		var contains = false;
		$("#bannerSearchBox").autocomplete({
			minLength: 3,
			source: '/search/autocomplete?subset=' + subset + '&contains=' + contains,
			formatItem: function(item) {
				alert(item);
				if (item.formatId) {
					return item.productCount + " " + item.formatName + " products";
				} else {
					return item.title;
				}
			},
			select: function(event, ui) {
				if (ui.item.title) {
					$("#bannerSearchBox").val(ui.item.title);
					doBannerSearch(useSmartBrowse, ui.item.title);
				} else {
					doBannerFormatSearch(useSmartBrowse, $("#bannerSearchBox").val(), ui.item.formatId);
				}
			}
		})
		.data("autocomplete")._renderItem = function(ul, item) {
			if (item.title) {
				return $("<li></li>")
					.data("item.autocomplete", item)
					.append("<a>" + item.title + "</a>")
					.appendTo(ul);
			} else if (item.productCount == 1) {
				return $("<li></li>")
					.data("item.autocomplete", item)
					.append("<a style='color: #3366CC'>" + item.productCount + " " + item.formatName + " product" + "</a>")
					.addClass("autocomplete-format")
					.appendTo(ul);
			} else {
				return $("<li></li>")
					.data("item.autocomplete", item)
					.append("<a style='color: #3366CC'>" + item.productCount + " " + item.formatName + " products" + "</a>")
					.appendTo(ul);
			}
		};

	}
}
