(function($){$.suggest=function(input,options){var $input=$(input).attr("autocomplete","off");var $results=$(document.createElement("ul"));var timeout=false;var prevLength=0;var cache=[];var cacheSize=0;var selRange=0;$results.addClass(options.resultsClass).appendTo('body');resetPosition();$input.blur(function(){setTimeout(function(){$results.hide()},200);});try{$results.bgiframe();}catch(e){} if($.browser.mozilla) $input.keypress(processKey);else $input.keydown(processKey);function resetPosition(){var offset=$input.offset();$results.css({top:(offset.top+input.offsetHeight)+'px',left:offset.left+'px'});} function processKey(e){if((/27$|38$|40$/.test(e.keyCode)&&$results.is(':visible'))||(/^13$/.test(e.keyCode)&&getCurrentResult())){selRange=$(input).getSelection();if(e.preventDefault) e.preventDefault();if(e.stopPropagation) e.stopPropagation();e.cancelBubble=true;e.returnValue=false;switch(e.keyCode){case 38:prevResult();break;case 40:nextResult();break;case 13:selectCurrentResult();break;case 27:$results.hide();break;}}else if((/^9$/.test(e.keyCode))){return true;}else if($input.val().length!=prevLength){if(timeout) clearTimeout(timeout);timeout=setTimeout(suggest,options.delay);prevLength=$input.val().length;}} function suggest(){var q=$.trim($input.val());selRange=$(input).getSelection();var p=selRange.start;var re=selRange.length;if(q.length>=options.minchars){cached=checkCache(q);$.get(options.source,{q:q,p:p,re:re},function(txt){$results.hide();var items=parseTxt(txt,q);displayItems(items);});}else{$results.hide();}} function displayItems(items){if(!items) return;if(!items.length){$results.hide();return;} var html='';for(var i=0;i':'
  • ')+items[i]+'
  • ';$results.html(html).show();$results.children('li').mouseover(function(){$results.children('li').removeClass(options.selectClass);$(this).addClass(options.selectClass);}).click(function(e){e.preventDefault();e.stopPropagation();selectCurrentResult();});} function parseTxt(txt,q){var items=[];var tokens=txt.split(options.delimiter);for(var i=0;i'+q+''});items[items.length]=token;}} return items;} function getCurrentResult(){if(!$results.is(':visible')) return false;var $currentResult=$results.children('li.'+options.selectClass);if(!$currentResult.length) $currentResult=false;return $currentResult;} function selectCurrentResult(){var range=$(input).getSelection();$currentResult=getCurrentResult();if($currentResult){var p=selRange.start;var re=selRange.length;var commastart=$input.val().substr(0,p).lastIndexOf(',');if(commastart<0)commastart=0;var commaend=$input.val().indexOf(',',commastart+1);if(commaend0?', ':'')+selText+(commaend