(function($){$.fn.jSuggestion=function(options){var opts=$.extend({},$.fn.jSuggestion.defaults,options);var jH=".jSuggestHover";var jsH="jSuggestHover";var iniVal=this.value;var textBox=this;var textVal=this.value;var jC="#jSuggestContainer";$("body").append('<div id="jSuggestContainer"></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());$(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 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");$(".jSuggestLoading").show();$(jC).find('ul').remove();if(opts.data=='')opts.data=$(this).serialize();else var keyWord=opts.data+"="+$(this).val()+"&"+Math.random();setTimeout(function(){$.ajax({type:opts.type,url:opts.url,data:keyWord,cache:false,success:function(msg){if(msg!==''){$(jC).find('ul').remove();$(jC).append(msg);$("#jSuggestContainer ul li").not(".last").bind("mouseover",function(){$(jH).removeClass(jsH);$(this).addClass(jsH);if($("> .leftSpan",$(this)).length>0){textVal=$("> .leftSpan",$(this)).eq(0).text()}else{textVal=$(this).text()}if(opts.autoChange){if($("> .leftSpan",$(this)).length>0){textVal=$("> .leftSpan",$(jH)).eq(0).text()}else{textVal=$(jH).text()}$(textBox).val(textVal)}});$("#jSuggestContainer ul li").click(function(){if($(this).attr("class")!=='last jSuggestHover'){$(this).addClass(jsH);$(textBox).val(textVal)}});$(".jSuggestLoading").hide()}else{$(".jSuggestLoading").hide();$(".jSuggestContainer").hide();$(jC).hide()}}})},opts.delay)}}else{$(jH).removeClass(jsH);$(jC).hide()}return false});$(document).bind("click",function(){$(jC).hide();iniVal=textBox.value})};$.fn.jSuggestion.defaults={minchar:1,opacity:1.0,zindex:20000,delay:100,loadingImg:'/static/image/ajax-loader.gif',loadingText:'Loading...',autoChange:false,url:"",type:"GET",data:""}})(jQuery);
