function it_CarAutoComplete(B,A){A=$extend({width:350,visibleLineCount:10,popupBuilder:new it_CarAutoCompletePopupBuider()},A||{});new it_AutoComplete(B,A)}function it_CarAutoCompletePopupBuider(){var G=14+1;var B=14;var C=11;var F,A;var E;var D;this.init=function(I,H){if(F!=null){throw new Error("The popupBuilder can't be shared")}F=I;A=H};this.isResultValid=function(H){var I=D[H];return I.adv.length>0};this.getInputValue=function(H){var I=D[H];return I.inputText};this.setData=function(H){E=H};this.isDataShowable=function(){return E.length>0};this.buildContent=function(M){var K=22;var I=M.getStyle("width").toInt();var L=[];E[0].usedAdvertisers.split(",").forEach(function(N){L.push(carAdvertisers[N])});var H=L.length*G;var J=[];D=[];E.forEach(function(Q,O){var P=function(U,R,T,Z){if(Z==null){throw new Error("The inputText argument is mandatory. stationObj: "+U)}U.inputText=Z;var Y=U.place;var c=D.length;var h={mouseover:function(){F.setSelectedIndex(c)},mousedown:function(){F.lineSelected()}};var d="";if(U.adv.length==0){d+="autoCompleteDisabled"}if(Q.important){d+=" autoCompleteImportant"}var g=new Element("div",{styles:{position:"relative",height:A.lineHeight},events:h}).injectInside(M);var S=0;var X=new Element("div",{styles:{position:"absolute",left:S,top:(A.lineHeight-C)/2,width:K,textAlign:"center"}}).injectInside(g);if(R&&A.imgDir!=null&&Q.flag!=null){new Element("img",{src:A.imgDir+"flags/"+Q.flag.toLowerCase()+".png",title:Q.countryName?Q.countryName:null}).injectInside(X)}S+=K;var f;if(R||A.imgDir==null){f=0}else{if(Y=="T"){f=2}else{f=1}}if(f!=0){for(var W=0;W<f-1;W++){new Element("div",{styles:{position:"absolute",left:S+W*14,width:14,height:"100%",backgroundImage:"url('"+A.imgDir+"autoComplete/I.png')"}}).injectInside(g)}new Element("div",{styles:{position:"absolute",left:S+(f-1)*14,width:14,height:"100%",backgroundImage:"url('"+A.imgDir+"autoComplete/"+(T?"L":"T")+".png')"}}).injectInside(g)}S+=f*14;if(A.imgDir!=null&&!R&&Y!="T"){var b=null;if(Y=="A"){b="airport"}else{if(Y=="B"){b="bus"}else{if(Y=="R"){b="railway"}else{if(Y=="P"){b="port"}else{if(Y=="C"){b="downtown"}else{if(Y=="H"){b="hotel"}}}}}}if(b!=null){var a=new Element("div",{styles:{position:"absolute",left:S,top:(A.lineHeight-B)/2,width:B,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).injectInside(g);new Element("img",{src:A.imgDir+"misc/picto/"+b+".png",title:b}).injectInside(a);S+=B+3}}var V=new Element("div",{styles:{position:"absolute",left:S,top:0,width:I-S-H,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).injectInside(g);new Element("div",{"class":d,styles:{position:"absolute",left:0,lineHeight:A.lineHeight}}).setText(U.text).injectInside(V);var e=new Element("div",{styles:{position:"absolute",top:Math.ceil((A.lineHeight-G)/2),right:0,width:H,lineHeight:A.lineHeight}}).injectInside(g);L.forEach(function(i,j){if(U.adv.contains(i.code)){new Element("img",{src:A.imgDir+"affil/14x14/"+i.name+".gif",title:i.shownName,styles:{position:"absolute",left:j*G}}).injectInside(e)}});J.push(g);D.push(U)};var N=Q.all.text;if(Q.parent!=null){N+=" ("+Q.parent+")"}P(Q.all,true,false,N);Q.stations.forEach(function(T,S){var R=N+", "+T.text;P(T,false,S==Q.stations.length-1,R);if(T.place=="A"){T.terminals.forEach(function(W,V){var U=R+", "+W.text;P(W,false,V==T.terminals.length-1,U)})}})});return J}};