function createResizedImageElement(E,D){var C=document.createElement("img");
C.setAttribute("src",E.url);
var B=E.width;
var A=E.height;
B=77;
A=77;
C.setAttribute("width",B);
C.setAttribute("height",A);
return C
}AjaxCachingAutocompleter=Class.create();
AjaxCachingAutocompleter.prototype=Object.extend(new Autocompleter.Base(),{initialize:function(C,D,B,A){this.baseInitialize(C,D,A);
this.options.partialSearch=false;
this.options.asynchronous=true;
this.options.onComplete=this.onComplete.bind(this);
this.options.defaultParams=this.options.parameters||null;
this.url=B;
this.options.array=[];
this.usedTokens=[];
this.loadingToken=null;
this.options.onShow=function(E,F){if(!F.style.position||F.style.position=="absolute"){F.style.position="absolute";
Position.clone(E,F,{setHeight:false,setWidth:true,offsetTop:E.offsetHeight})
}Effect.Appear(F,{duration:0.15})
}
},getUpdatedChoices:function(){var A=false;
var C=this.getToken().toLowerCase();
if((this.loadingToken==null)&&(C.length==this.options.minChars)){A=true;
for(var B=0;
B<this.usedTokens.length;
B++){if(this.usedTokens[B]==C){A=false;
break
}}if(A){this.loadingToken=C;
this.usedTokens.push(C)
}}if(A){entry=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());
this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;
if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams
}new Ajax.Request(this.url,this.options)
}else{this.updateChoices(this.options.selector(this))
}},onComplete:function(request){var newItems=eval(request.responseText);
if(newItems&&newItems.length){for(var i=0;
i<newItems.length;
i++){this.options.array.push(newItems[i])
}}this.updateChoices(this.options.selector(this));
this.loadingToken=null
},setOptions:function(A){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(B){var D=[];
var C=[];
var H=B.getToken();
var G=0;
D.push("<li><strong>"+H+"</strong></li>");
for(var E=0;
E<B.options.array.length&&D.length<B.options.choices;
E++){var F=B.options.array[E];
var I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase()):F.indexOf(H);
while(I!=-1){if(I==0&&F.length!=H.length){D.push("<li><strong>"+F.substr(0,H.length)+"</strong>"+F.substr(H.length)+"</li>");
break
}else{if(H.length>=B.options.partialChars&&B.options.partialSearch&&I!=-1){if(B.options.fullSearch||/\s/.test(F.substr(I-1,1))){C.push("<li>"+F.substr(0,I)+"<strong>"+F.substr(I,H.length)+"</strong>"+F.substr(I+H.length)+"</li>");
break
}}}I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase(),I+1):F.indexOf(H,I+1)
}}if(C.length){D=D.concat(C.slice(0,B.options.choices-D.length))
}return"<ul>"+D.join("")+"</ul>"
}},A||{})
}});