function localJsonStore(a){return{load:function(d,e){var c=[];for(var b=0;b<a.data.length;b++){if("matchAnywhere" in a&&a.matchAnywhere){if(a.data[b][a.key].toLowerCase().indexOf(d.toLowerCase())>=0){c.push({value:a.data[b][a.key],display:a.data[b][a.display],raw:a.data[b]});}}else{if(a.data[b][a.key].substring(0,d.length).toLowerCase()==d.toLowerCase()){c.push({value:a.data[b][a.key],display:a.data[b][a.display],raw:a.data[b]});}}}e(c);}};}function remoteJsonStore(config){var cache=[];var cacheSize=25;return{load:function(query,callback){var url=config.url+encodeURI(query);for(var i=0;i<cache.length;i++){if(cache[i].url==url){callback(cache[i].data);return;}}var request=null;try{request=new XMLHttpRequest();}catch(e){request=new ActiveXObject("MSXML2.XMLHTTP");}request.onreadystatechange=function(){if(request.readyState==4){var results=eval(request.responseText);var rows=[];for(var i=0;i<results.length;i++){rows.push({value:results[i][config.value],display:results[i][config.display],raw:results[i]});}cache.push({url:url,data:rows});if(cache.length>cacheSize){cache.shift();}callback(rows);}};request.open("GET",url);request.send("");}};}function attachAutoComplete(k,l,d){var c=null;var i=null;var b="";if(!d){d={};}var e=("keyTimeout" in d)?d.keyTimeout:250;var g=("submitOnEnter" in d)?d.submitOnEnter:true;var f=("className" in d)?d.className:"";var a=("runOnClick" in d)?d.runOnClick:null;function j(m){var n=m.srcElement?m.srcElement:m.target;if(function(o){return(o)?((o==i)?true:arguments.callee(o.parentElement)):false;}(n)){return;}if(i!==null){i.remove();}if(document.detachEvent){document.detachEvent("onclick",j);}else{document.removeEventListener("click",j,false);}}k.setAttribute("autocomplete","off");function h(){if(c){clearTimeout(c);}c=setTimeout(function(){c=null;if(k.value.length>=1&&k.value!=b){l.load(k.value,function(q){if(q.length>0&&!(q.length==1&&q[0]==k.value)){if(i!==null){i.remove();}var r=null;i=document.createElement("DIV");i.style.overflow="auto";i.style.position="absolute";i.style.width=k.offsetWidth+"px";i.id="auto-complete";i.style.height=(Math.min(q.length,8)*40)+"px";i.style.left=function(s){return(s)?(((s.offsetLeft)?s.offsetLeft:0)+arguments.callee(s.offsetParent)):0;}(k)+"px";i.style.top=function(s){return(s)?(((s.offsetTop)?s.offsetTop:0)+arguments.callee(s.offsetParent)):0;}(k)+k.offsetHeight+"px";i.timeout=5000;i.oldValue=k.value;i.style.zIndex="10000";if(f!=""){i.className=f;}var n=setInterval(function(){if(i===null){clearInterval(n);}else{i.timeout-=100;if(i.timeout<=0){i.remove();}}},100);var p=document.createElement("UL");for(var o=0;o<q.length;o++){var m=document.createElement("LI");m.innerHTML=q[o].display;m.trueValue=q[o].value;m.index=o;m.node=q[o];m.onmouseover=function(){return function(){i.selectItem(this);};}();m.onmouseout=function(){return function(){i.selectItem(null);};}();m.onclick=function(){return function(){i.select(this);};}();p.appendChild(m,true);}i.selectItem=function(v){if(r){r.className="";}if(v){v.className="selected";i.timeout=5000;var t=v.offsetTop||0;var w=t+v.offsetHeight;var u=i.scrollTop;var s=u+i.offsetHeight;if(t<u){i.scrollTop=t;}if(w>s){i.scrollTop+=v.offsetHeight;}}r=v;};i.selectDown=function(){if(r===null){i.selectItem(p.childNodes[0]);}else{if(r.nextSibling){i.selectItem(r.nextSibling);}}i.timeout=5000;};i.setSelection=function(){if(r!==null){k.value=r.trueValue;}};i.selectUp=function(){if(r===null){i.selectItem(p.childNodes[0]);}else{if(r.previousSibling){i.selectItem(r.previousSibling);}}i.timeout=5000;};i.remove=function(){document.body.removeChild(i);i=null;clearInterval(n);};i.select=function(){if(r){k.value=r.trueValue.replace("&amp;","&");if(k.onchange){k.onchange();}if(a!=null){return a(r.node);}}i.remove();return false;};i.hasSelectedElement=function(){if(r){return true;}return false;};i.appendChild(p,true);document.body.appendChild(i,true);if(document.attachEvent){document.attachEvent("onclick",j);}else{document.addEventListener("click",j,false);}}});}else{if(i!==null){i.remove();}}b=k.value;},e);}k.onkeydown=function(p){function n(){if(p.stopPropagation){p.stopPropagation();}p.cancelBubble=true;p.returnValue=false;if(p.preventDefault){p.preventDefault();}}if(window.event){p=window.event;}var m=p.keyCode;if(i){if(m==40){i.selectDown();i.setSelection();n();return false;}else{if(m==38){i.selectUp();i.setSelection();n();return false;}else{if(m==13){n();if(i.select()){return false;}if(g){var o=k.parentNode;while(o){if(o.tagName=="FORM"){o.submit();break;}o=o.parentNode;}}return false;}else{if(m==27){k.value=i.oldValue;if(i.remove()){n();}return false;}else{if(m==9){i.select();return true;}}}}}}else{if(m==40){b="";}else{if(m==9){return true;}}}h();return 0;};}
