(function($) {  $.fn.jSuggest = function(options) {var opts = $.extend({}, $.fn.jSuggest.defaults, options);var jH = ".jSuggestHover";var jsH = "jSuggestHover";var iniVal = this.value;var textBox = this;var textVal = this.value;var id = opts.id;var jC = "#jSuggestContainer" + id;var defaultData = opts.data;$("body").append('<div class="jSuggestContainer" id="jSuggestContainer' + id +'"></div>');$(jC).hide();$(this).bind("keyup click", function(e){textBox = this;textVal = this.value;if (this.value.length >= opts.minchar && $.trim(this.value)!="Search Terms") {var offSet = $(this).offset();$(jC).css({position: "absolute",top: offSet.top + $(this).outerHeight() + "px",left: offSet.left,width: $(this).outerWidth()-2 + "px",opacity: opts.opacity,zIndex: opts.zindex}).show();if (e.keyCode == 27 ) {$(jC).hide();}else if (e.keyCode == 13 ) {if ($(jH).length == 1)$(textBox).val($(jH).text());$("#" + id +"Hidden").val($(jH).attr("id")); $(jC).hide();iniVal = textBox.value;}else if (e.keyCode == 40) {if ($(jH).length == 1) {if (!$(jH).next().length == 0) {$(jH).next().addClass(jsH);$(".jSuggestHover:eq(0)").removeClass(jsH);if (opts.autoChange)$(textBox).val($(jH).text());}}else {$("#jSuggestContainer" + id +" ul li:first-child").addClass(jsH);if (opts.autoChange)$(textBox).val($(jH).text());}}else if (e.keyCode == 38) {if ($(jH).length == 1 ) {if (!$(jH).prev().length == 0) {$(jH).prev().addClass(jsH);$(".jSuggestHover:eq(1)").removeClass(jsH);if (opts.autoChange)$(textBox).val($(jH).text());}else {$(jH).removeClass(jsH);$(textBox).val(iniVal);}}}else if (textBox.value != iniVal){iniVal = textBox.value;if ($(".jSuggestLoading").length==0)$('<div class="jSuggestLoading"><img src="'+opts.loadingImg+'" align="bottom" /> '+ opts.loadingText+'</div>').prependTo("#jSuggestContainer"+id);$(".jSuggestLoading").show();$(jC).find('ul').remove();if (opts.data == '')opts.data = $(this).serialize();else opts.data = defaultData+"="+$(this).val();setTimeout(function () {$.ajax({type: opts.type,url: opts.url,data: opts.data,success: function(msg){$(jC).find('ul').remove();$(jC).append(msg);$("#jSuggestContainer" + id + " ul li").bind("mouseover",function(){$(jH).removeClass(jsH);$(this).addClass(jsH);textVal = $(this).text();if (opts.autoChange)$(textBox).val($(jH).text());});$("#jSuggestContainer" + id +" ul li").click(function(){$(this).addClass(jsH);$(textBox).val(textVal);$("#" + id +"Hidden").val(this.id);});$(".jSuggestLoading").hide();}});}, opts.delay);}}else {$(jH).removeClass(jsH);$(jC).hide();}return false;});$(document).bind("click", function(){$(jC).hide();iniVal = textBox.value;});};})(jQuery);
