

(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);

(function($){$.suggest=function(input,options){var $input=$(input).attr("autocomplete","off");var $wrapper=$(document.createElement("div"));var $closer=$(options.closeHTML).click(function(){$wrapper.hide();return false;});var $results=$(document.createElement("ul"));var timeout=false;var prevLength=0;var prevValue=0;var cache=[];var cacheSize=0;$wrapper.addClass(options.wrapperClass).appendTo('body');$results.addClass(options.resultsClass).appendTo($wrapper);$closer.appendTo($wrapper);if($.browser.msie)
window.setTimeout(setWidth,100);else
setWidth();function setWidth(){var actualWidth=$input.width()>options.minWidth?$input.width():options.minWidth;$wrapper.css("width",actualWidth);}
resetPosition();$(window).load(resetPosition).resize(resetPosition);if(options.inputCanFloat)
$(window).scroll(resetPosition);$input.blur(function(){setTimeout(function(){if(!$wrapper.hasClass('locked'))$wrapper.hide()},200);});$wrapper.mouseover(function(){$wrapper.addClass('locked')}).mouseout(function(){$wrapper.removeClass('locked');$input.focus()});try{$wrapper.bgiframe();}catch(e){}
if($.browser.mozilla||$.browser.opera)
$input.keypress(processKey);else
$input.keydown(processKey);if(options.local){var localTokens=$(options.source).html().split(options.delimiter);}
function resetPosition(){var offset=$input.offset();$wrapper.css({top:(offset.top+input.offsetHeight)+'px',left:offset.left+'px'});}
function readAhead(){cached=checkCache($.trim($input.val()));if(cached){if(timeout)
clearTimeout(timeout);displayItems(cached['items']);}}
function processKey(e){if(options.switchClass&&!$input.hasClass(options.switchClass))
return true;if((/38$|40$/.test(e.keyCode)&&$wrapper.is(':visible'))||(/^13$|^9$/.test(e.keyCode)&&getCurrentResult())){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 9:case 13:selectCurrentResult();break;}}else if(e.keyCode=='27'){if(e.preventDefault)
e.preventDefault();e.returnValue=false;if($wrapper.is(':visible')){if(e.stopPropagation)
e.stopPropagation();e.cancelBubble=true;}
$wrapper.hide();}else if(e.keyCode=='13'||e.keyCode=='9'){$wrapper.hide();}else{if(timeout)
clearTimeout(timeout);timeout=setTimeout(suggest,options.delay);setTimeout(readAhead,1);}}
function suggest(){var q;if(typeof(options.getCB)=='function')
{q=options.getCB.apply($input[0]);}
else
{q=$.trim($input.val());}
if(q.length>=options.minchars){cached=checkCache(q);if(cached){displayItems(cached['items']);}else if(options.local){$wrapper.hide();var items=[];for(i=0;i<localTokens.length;i++){var item=localTokens[i].split(options.countDelimiter);if(item[0]&&item[0].match(new RegExp('(?:^|[^0-9a-zA-Zà-ÿÀ-ß])'+q.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1"),'ig'))){items.push(item);}}
var text=items.join(options.delimiter);items=parseTxt(text,q);displayItems(items);addToCache(q,items,options.source.length);}else{$.get(options.source,{q:q},function(txt){$wrapper.hide();var items=parseTxt(txt,q);displayItems(items);addToCache(q,items,txt.length);});}}else{$wrapper.hide();}}
function checkCache(q){for(var i=0;i<cache.length;i++)
if(cache[i]['q']==q){cache.unshift(cache.splice(i,1)[0]);return cache[0];}
return false;}
function addToCache(q,items,size){while(cache.length&&(cacheSize+size>options.maxCacheSize)){var cached=cache.pop();cacheSize-=cached['size'];}
cache.push({q:q,size:size,items:items});cacheSize+=size;}
function displayItems(items){if(!items)
return;if(!items.length){$wrapper.hide();return;}
var html='';for(var i=0;i<items.length;i++)
html+='<li>'+items[i]+'</li>';$results.html(html);$wrapper.show();if(options.inputCanFloat)
resetPosition();$results.scrollTop(0);$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<tokens.length;i++){var token=$.trim(tokens[i]);var item=token.split(options.countDelimiter);if(item[0]){token='<div>'+item[0].replace(new RegExp('(^|[^0-9a-zA-Zà-ÿÀ-ß])('+q.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1")+')','ig'),function(q,w,e){return w+'<span class="'+options.matchClass+'">'+e+'</span>'})+'</div>';}
if(item[1]){token='<div class="'+options.countClass+'">'+item[1]+'</div>'+token;}
if(token)
items[items.length]=token;}
return items;}
function getCurrentResult(){if(!$wrapper.is(':visible'))
return false;var $currentResult=$results.children('li.'+options.selectClass);if(!$currentResult.length)
$currentResult=false;return $currentResult;}
function selectCurrentResult(){$currentResult=getCurrentResult();if($currentResult){var newtext=$currentResult.children().not("."+options.countClass).text();if(typeof(options.setCB)=='function')
{options.setCB.apply($input[0],[newtext]);}
else
{$input.val(newtext);}
$wrapper.hide();options.invokeBlur&&$input.triggerHandler("blur");if(options.onSelect)
options.onSelect.apply($input[0]);}}
function nextResult(){$currentResult=getCurrentResult();if($currentResult)
$currentResult.removeClass(options.selectClass).next().addClass(options.selectClass);else
$results.children('li:first-child').addClass(options.selectClass);adjustScroll();}
function prevResult(){$currentResult=getCurrentResult();if($currentResult)
$currentResult.removeClass(options.selectClass).prev().addClass(options.selectClass);else
$results.children('li:last-child').addClass(options.selectClass);adjustScroll();}
function adjustScroll(){$currentResult=getCurrentResult();if($currentResult){scrtop=$results.scrollTop();reshgt=$results.innerHeight();curtop=$currentResult.position().top;nexttop=curtop+$currentResult.outerHeight();if(nexttop>reshgt)
$results.scrollTop(scrtop+nexttop-reshgt);if(curtop<0)
$results.scrollTop(scrtop+curtop);}}}
$.fn.suggest=function(source,options){if(!source)
return;options=options||{};options.source=source;options.local=options.local||false;options.delay=options.delay||100;options.closeHTML=options.closeHTML||'<a href="#">Close</a>';options.switchClass=options.switchClass||false;options.wrapperClass=options.wrapperClass||'ac_wrapper';options.resultsClass=options.resultsClass||'ac_results';options.selectClass=options.selectClass||'ac_over';options.matchClass=options.matchClass||'ac_match';options.countClass=options.countClass||'ac_count';options.countDelimiter=options.countDelimiter||'||';options.minchars=options.minchars||2;options.minWidth=options.minWidth||100;options.delimiter=options.delimiter||'\n';options.setCB=options.setCB||false;options.getCB=options.getCB||false;options.onSelect=options.onSelect||false;options.maxCacheSize=options.maxCacheSize||65536;options.invokeBlur=options.invokeBlur||true;options.inputCanFloat=options.inputCanFloat||false;this.each(function(){new $.suggest(this,options);});return this;};$.fn.unsuggest=function(){this.unbind("keydown");this.unbind("keypress");return this;};})(jQuery);