/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * Copyright notice and license must remain intact for legal use
 * jSuggest
 * Version: 1.1 (May 26, 2008)
 * Filtering added by DR (July 15, 2008)
 * Requires: jQuery 1.2.6+
 */
(function($){$.fn.jSuggest=function(d){var f=$.extend({},$.fn.jSuggest.defaults,d);var g=".jSuggestHover";var h="jSuggestHover";var i=this.value;var j=this;var k=this.value;var l="#jSuggestContainer";$("body").append('<div id="jSuggestContainer"></div>');$(l).hide();$(this).bind("keyup click",function(e){j=this;k=this.value;if(this.value.length>=f.minchar&&$.trim(this.value)!="Search Terms"){var c=$(this).offset();$(l).css({position:"absolute",top:c.top+$(this).outerHeight()+"px",left:c.left,width:$(this).outerWidth()-2+"px",opacity:f.opacity,zIndex:f.zindex}).show();if(e.keyCode==27){$(l).hide()}else if(e.keyCode==13){if($(g).length==1)$(j).val($(g).text());$(l).hide();i=j.value}else if(e.keyCode==40){if($(g).length==1){if(!$(g).next().length==0){$(g).next().addClass(h);$(".jSuggestHover:eq(0)").removeClass(h);if(f.autoChange)$(j).val($(g).text())}}else{$("#jSuggestContainer ul li:first-child").addClass(h);if(f.autoChange)$(j).val($(g).text())}}else if(e.keyCode==38){if($(g).length==1){if(!$(g).prev().length==0){$(g).prev().addClass(h);$(".jSuggestHover:eq(1)").removeClass(h);if(f.autoChange)$(j).val($(g).text())}else{$(g).removeClass(h);$(j).val(i)}}}else if(j.value!=i){i=j.value;if($(".jSuggestLoading").length==0)$('<div class="jSuggestLoading"><img src="'+f.loadingImg+'" align="bottom" /> '+f.loadingText+'</div>').prependTo("#jSuggestContainer");$(".jSuggestLoading").show();$(l).find('ul').remove();if(f.data=='')f.data=$(this).serialize();else f.data=f.data+"="+$(this).val();setTimeout(function(){$.ajax({type:f.type,url:f.url,data:f.data,success:function(a){$(l).find('ul').remove();$(l).append(a);var b=$(j).val().toLowerCase();$('#jSuggestContainer ul li').not(':contains("'+b+'")').hide();$("#jSuggestContainer ul li").bind("mouseover",function(){$(g).removeClass(h);$(this).addClass(h);k=$(this).text();if(f.autoChange)$(j).val($(g).text())});$("#jSuggestContainer ul li").click(function(){$(this).addClass(h);$(j).val(k)});$(".jSuggestLoading").hide()}})},f.delay)}}else{$(g).removeClass(h);$(l).hide()}return false});$(document).bind("click",function(){$(l).hide();i=j.value})};$.fn.jSuggest.defaults={minchar:3,opacity:1.0,zindex:20000,delay:2500,loadingImg:'ajax-loader.gif',loadingText:'Loading...',autoChange:false,url:"",type:"GET",data:""}})(jQuery);