/*globals window,document,alert,console,jQuery*/
(function ($) {
	$.fn.cjBokoQuickSearch = function (options) {

		var settings = {
			// user editable settings
			base_url: ""
		};

		var sys = {
			elem: null
		};

		/*
			plugin functions
		----------------------------- */
		function init() {
			$(sys.elem).submit(function () {
				$(sys.elem).find("button[type=submit]").attr("disabled", true);
			});
			$(sys.elem).find("input#s").bind("keyup", function () {
				var r, str = $(this).val();
				if (typeof str === "string" && str.length > 3) {
					$.get(settings.base_url + "assets/cfcs/boko/search.cfc?method=getSearchResults&returnFormat=json&searchStr=" + str, function (data) {
						try {
							if (typeof data === "string" && data.length > 0) {
								r = JSON.parse(data.replace(/[\r\n\f\t]+/gi, ''));
							} else if (typeof data === "object") {
								r = data;
							} else {
								// unknown data or length is 0
								console.debug("Unknown data type: " + typeof data + " Length: " + data.legth);
								return;
							}
							if (typeof r.DATA === "string" && r.DATA.length > 0) {
								$(sys.elem).find("#searchResults").remove();
								$(sys.elem).append(r.DATA);
							} else {
								$(sys.elem).find("#searchResults").remove();
							}
						} catch(err) {
							console.debug(err);
						}
					});
				} else {
					$(sys.elem).find("#searchResults").remove();
				}
			});
		}

		/* 
			set up any user passed variables
		***************************************/
		if (options) {
			$.extend(settings, options);
		}

		/* 
			begin
		***************************************/
		return this.each(function () {
			sys.elem = $(this);
			if (settings.base_url !== "" && settings.top_base_url !== "" && settings.section !== "") {
				if (typeof JSON === "undefined") {
					$.getScript(settings.base_url + 'assets/js/json2.js');
				}
				if (typeof JSON !== "undefined") {
					init();
				} else {
					if(typeof console !== "undefined") {
						console.debug("Error! Could not load the json2.js library.");
					}
				}
			}
		});
	};
})(jQuery);