/* Popular phrases - AUDIOADVISOR - 15:36:7, Fri Nov 20, 2009 */
var asPhrases=new Array ('dac','nad','energy','thiel','cd players','bryston','speaker stands','athena','parasound','psb','subwoofer','ps audio','speaker cable','ipod','audioquest','musical fidelity','vincent','pangea','velodyne','cambridge','phono preamp','headphone amp','headphones','sanus','receivers','cambridge audio','tuner','power cable','ipod dock','speakers','cables','cardas','salamander','grado','dacmagic','fatman','integrated amplifiers','kimber','psb image','amplifier','tube','veritas','power cord','sacd','interconnect','subwoofer cable','turntable','nad receivers','energy speakers','vibrapod','music hall','creek','toslink','stands','v-dac','epos','rega','preamp','fm antenna','nht','martinlogan','martinlogan speakers','phono','integrated amp','computer speakers','usb','xlr','power conditioner','powered speakers','furman','marantz','hdmi','record cleaning','antenna','preamplifier','banana','in wall speakers','usb dac','hdmi cable','tonearm cable','tube amp','shanling','x-can','psb speakers','martin logan','banana plugs','phono stage','benchmark','jumpers','fm tuner','c-50','mm220','usb cable','halo','dac magic','remote control','clearaudio','center speaker','isolation','phono cartridge','boston','vincent audio','headphone amplifier','speaker wall mounts','amps','bookshelf speakers','640c','type 4','psb imagine','digital cable','psb alpha','audio racks','spade','fresco','parasound halo','grado cartridge','cardas caps','ipod cable','center channel speakers','psb synchrony','receptacle','hrt','cd changer','cd recorder','home theater receiver','pangea audio','vpi','sanus rack','interconnect cable','rca caps','cd','audioquest type 4','energy veritas','cardas interconnect','digital to analog converter','athena speakers','p7','sacd players','energy c-50','amp stand','home theater','target','power','tube preamp','dynamo','energy take','crosslink','in ceiling','slate','feet','optical cable','blu ray','nad amplifier','tube amplifiers','av receivers','source','duet','640r','audioengine','in wall','v dac','nad viso','c-300','audioquest interconnect','mini','boston acoustics','king cobra','center channel','monarchy','tower speaker','scs4','copperhead','connectors','dust cover','magnum dynalab','dvd player','xlr cables','xlr interconnect','nad 315bee','musical fidelity vdac','c50','vacuum tubes','twin 30','sub woofer','quintet','pre-amp','processor','tv stands','music streamer','4tc','diamondback','blue racer','salamander archetype','radio','toslink cable','cardas usb','power strip','power surge','rega p1','a21','p3','t55','rca cable','kimber kable 4tc','synchrony','nitty gritty','stillpoints','cartridge','ipod speakers','energy c50','sonic saucers','c715','record sleeves','monitor','kimber hero','rack','speaker wire','antique sound','sidewinder','earphones','grado headphones','record doctor','image','cd receiver','spikes','stereo receiver','x-can v8p','tributaries hdmi','humbuster','vdac','turntable shelf','blu tack','sms-1','analysis','archetype','synergy','speaker mounts','nad m5','pangea power cables','nad pp2','acoustic panels','nad cd player','fan','cooling','12tc','hdmi switcher','nad t765','power amp','kimber kable','component racks','c-c50','marantz cd5003','torus','2100','4 shelf audio rack','audio cable','bi wire cable','dock','sonata','kimber kable hero','t45','cardas golden reference','dvd','surge','nad integrated amplifier','classic four','bi wire','black mamba','nad t975','grado ra-1','parasound 2100','crossover','energy take classic','in-wall','kimber timbre','wire','vacuum','cooling fans','salamander synergy','azur','nrg 5','imagine','grace','psb t6','psb t65','kimber 8tc','integrated','cambridge 840c','mp3','brush','transport','av','ceiling speakers','587','kanto','table radios','cambridge 640r','light','pgac14','no frills','cambridge cd player','firewire','imagine b','ca640cv2','record cleaning machine','juice bar','rack of silence','white','psb t55','audioquest slate','sr60i','musical fidelity dac','compact system','pikes peak','analysis plus','pgac9','take classic','cc50','jc-2','adapter','ps audio duet','boston mm220','c300','sub','zamp','v-can','image t55','abyss','cardas headphone','cd storage','audioengine 2','mamba','i dock','tower','pbj','psb b25','musical fidelity a1','nad c715','zerostat','xcan v8','isolation feet','supercharger','parasound 2250','acoustic','nad t755','ls-300','540r','vantage','in wall subwoofer','contact cleaner','12 channel','nad pp3','mini to rca','isoclear','veim','audioquest cv-4','caps','audioquest speaker cable','preface','binding post','355bee','blue ray','cross','840e','boston acoustics mm220','ceiling','splitter','turntable wall shelf','energy c-500','home theater systems','clamp','surround speakers','ls','godar','biwire speaker cable','antique','zbreeze','grado rs1i','sennheiser','tube dac','hdmi switch','a23','cambridge 640c','cambridge 340a','vincent amp','power supply','cardas twinlink','sonex','535','visa31','ipod tube','kimber kable hdmi','cambridge dac','nad m3','manley','converter','plug','amplifier stands','record brush','parasound p3','blu','psb image b25','bomm220','parasound z','of silence','surge protection','audioquest speaker','take 5 classic','in-ceiling','record clamp','sub cable','vincent cd','y cable','cleaner','hero','pho 8','cv-8','2.2','psb alpha c1','cambridge 30','salamander s40','bookshelf','vincent phono','juicebar','media storage','audioquest type 8','tivoli','energy center','mat','stylus cleaner','lp','audioquest diamondback','pangea ac-14','helos 20','t765','psb c60','grado sr80i','vibration','cambridge tuner','nad surround','monocle','audioengine a5','energy c','nad t747','grado earpads','parasound p7','dvi','igrado','m3','hrt music streamer','hdmi dvi','loudspeakers','energy c-c50','xm radio','saafv48','center','noise harvester','speaker connectors','stereo system','marantz cd','mit','binding post wrench','benchmark dac1','10.3','biwire jumpers','grado sr60i','audioquest power','cadv89','changer','rs2','vincent sa t1','s-video cable','compact stereo','wall plate','xm radio tuners','blu-ray players','pangea audio ac-9','pac5250','iec plug','sr 60','wtcm1stk','cambridge audio ar30','classic 3','325is','cardas 300b','kimber cable','kimber hdmi','iphone','cambridge 740c cd player','rc-r','video switcher','nad 535','955','cardas quadlink','am fm tuner','speaker selector','type 8','nad tuner','khv-1','t535','mk-l-wm','xcan','power protection','napp3','premier','bi-wire speaker cable','cardas neutral','md309','fremer','550k','real wood','sanus nf204','nad master','am antenna','c355bee','sr5003','nad 515bee','cambridge audio dacmagic','parasound 2125','benchmark dac','cambridge sonata','nad dvd','psduet','c275bee','nad preamplifier','pp-3','ps audio power cable','monarchy audio','tributaries silver','stroboscope','benz','power line conditioners','psb t5','audioquest y','grado red','cardas se','room tune','bryston 9bsst2','cambridge 640p','rca splitter','phono preamplifier','755','atls50','energy bracket','headphone cable','trio','martin logan source','psb subwoofer','540p','dac1 hdr','jc 1','shure','nad ipod dock','wrench','isolation platforms','littlite','tack','sleeves','indoor antenna','ortofon','nitty','marantz 5003','thiel speakers','rega belt','golden cross','ps audio quintet','switcher','cambridge 340t','650a','last','cardas xlr','840w','myrtle','nad phono','ps audio dac','cable management','rc 70','pre-amplifier','juice','theater','dvi to hdmi','boston subwoofer','used speakers','gauge','turntable clamp','329','ps audio premier power conditioner','psb c1','tube phono preamp','db systems','iec cables','audio digital analog converter','wtcm1c','cancel','cable adapters','gs1000i','rs2i','stereo rca to mini','remote','universal remotes','grado green','universal player','upsampling','cartridge alignment','t755','blu-tack','satellite radio','golden reference','salamander sonoma','type 2','nad 737','pac275','bd5004','840 e','840 w','ground loop','dynamo 700','musical fidelity v-lps','c500','surge protector','a1','zpre','cd transport','nad 765','salamander archetype 5.0','compact stereo system','ps audio gcph','bda','s-video','universal disc player','740c','video cables','pm8003','shanling mc-3000','salamander mount','power filters','phono preamp with usb','sa31','take classic 5 pack home theater system','cardas clear','impact-mini','audiophile','marantz home theater','floor disc','vincent audio cd players','sa-t1','api macromounts','bellari','mp3 player','psb image t55','martin','rega platter','b25','solid tech','ws-15','in-wall speakers','grado 325is','music hall dac','jc2','nad psb','nad ipod','nad m-3','nad l73','nad t-175','dvi cable','tube cd player','mono amplifier','hd800','nf204','triple 20','chameleon','helos','mini toslink adapter','parasound a21','audioquest nrg','rocket','a2','type iv','nac355bee','marantz 4003','energy rc-r','nad t737','nfav230','martinlogan abyss','cardas headphone cable','salamander triple 20','feet of silence','single speaker cable','audioquest hdmi 3','psb sub series 5i sub woofer','psb speaker stand','grado ps1000','audioquest king','nova','elite 15i','6i','hd-650','a 9','ps audio xstream','grado 225i','stereo amplifier','kimber 4tc','lamp','dvd99','target stands','yamaha','stylus','optical','nad 6 channel','md-90','gyroquadratic field geometry','c315bee','vbpod','microtwin','demagnetizer','i-pod','kcag','parasound zamp v3','840c','v','sorbothane','magic','4b','cd rack','cambridge 740','ac3','parasound c-265','vpi typhoon','kimber cadence','mini speakers','c 326bee','bryston bda1','90 degree hdmi','musical fidelity v-can','din','mmf','bcd-1','wireless','sanus speaker stands','c-500','cambridge dvd','subwoofer interconnect','ac-14','bda-1','velodyne optimum 10','psb cw','speaker jumpers','cambridge speakers','tonearm','nad cd','audioquest mini','mfm6cd','audioquest hdmi','grado sr-60','i pod','vdm','xlr to rca','rega spacer','meridian','headphone extension','creek classic 5350se','gt1','phono amp','omni','psb alpha b1','lp storage','nad c315bee','vpi scout','timbre','impact mini','wave','mabd7004','energy cc-50','in wall speaker cable','energy c500','ferrari','energy stand','9120','type8','225i','software','md90','nut','cv8','10 subwoofer','am fm and cd player','2.5','cloud','grado headphone adapter','turntable mat','mini toslink','preamp jumpers','pre amplifier','velodyne impact-12','mini to mini','powered subwoofer','340a','balanced interconnects','encore','gdfm1a','analysis plus toslink','a5','psb image b5','casters','andigov','tube damper','wall','tonik','toslink adapter','t747','rc-70','y connector','phono cable','kwik','a5.5','parasound 275','crhsd','oval 9','antique sound lab','turntable wall mount','fresco i','halo a21','marantz av8003','parasound jc2','kimber 12tc','pc speakers','psb synchrony one','nad t-765','v-lps','gb1','psb synchrony two','shanling mc3000','c725bee','ps audio cable','psb image b15','parasound jc 1','cardas speaker cable','grado rs2i','martin source','used turntables','multiroom','analysis plus oval','marantz sr4003','8tc','640p','headshell leads','kimber usb','salamander chameleon','xlr caps','electrostatic','black mamba ii','mlabyss','rca','dip','balanced amplifier','ic cable','alpha','mlhelo20','mlsource','bnc','nad c375bee','5003','earbud','micra 6','phono pre-amps','mldynamo','mabd5004','cambridge dvd-99','selector','parasound zpre','c 260','antos','stereo preamplifiers','kimber kable usb','cambridge audio dvd89','digital switcher','toslink digital','paha21','tube pre amp','rf noise','pp375','grado cushion','series 9','zselect','bi wire jumper','dvd racks','v can','cardas speaker','dac converter','2250','tributaries','parasound preamp','svdo','minivee','riser','sr60','component video','rega cartridge','bd7003','aqm22fhrd','nhtaz','nat175','z tuner','viso 2','glass platter','is301','salamander saturn','take fps','tuner-preamplifier','khv','speaker wrench','cardas spade','ac-5','viso five','aaspd','nad t175hd','audioquest sub-a','billy bags','326bee','sanus afa','isonode','outrigger','blu-ray dvd players','image b4','mitzdup','mdst2','nad integrated','cd recorder with hard drive','power plant premier','smsvdo','jc','cm-1c','audioquest banana','c260','kimber kable 8tc speaker cable','pac260','aries scout','hum x','satellite speaker stands','audioquest sub-x','wood','c165bee','audioquest niagara','spl','cardas bnc','cambridge id-50','music hall 2.2','cardas xlr caps','wtcstc','nad c 545bee','enk300','energy rc-lcr','nad c 515bee','psb b6','test record','cambridge 650c','565bee','satellite speakers','v8','640c v2','bluray','blu-ray','fatman carbon','t175','phono pre-amp','energy take 5','efav-ii','iec','psb image b6','grigr','340r','ir repeater','audioquest type 2','compact','nad ipd-2 ipod dock','cardas crosslink','kkkwik16','home theater processors','series 5','ps premier','650','salamander madrid','dbs','inwall speakers','small subwoofer','340t','nad pp 3','sa t8','ps audio soloist','pp3','switch','cambridge audio s30','headshell','in-ceiling speakers','hi-fi','audio pro','ipod tube amps','psb gt-1','caig','gibraltar','soloist','sub oval','650c','streamer','dynamo 1000','psb t45','nad l54','computer','nac715','phono amplifier','musical fidelity x can','715','nad c355bee','velodyne sms-1','cr300b','nht classic','pspp','dvd 99','image b15','nad pp-3','sa 31','perfectwave dac','c-265','blue','ci9060','synergy triple','nac515bee','black','c.50','540p outboard audiophile mm phono stage','grado gr8','rca\'s','cardas ilink','lcd','dvd universal player','ac-3','furniture','turntable stand','shure stylus','cambridge cd','aqbmii','marantz receiver','cambridge 640c v2','spade lugs','mount','cleaning machine','vista','y adapter','t3','silver streak','deoxit','usb phono','grado gold','vesms1','nf203','vincent audio cd','noise cancelling headphones','ps audio digital link','oval','kkhd19','audioquest black mamba','ps cable','nad stereo','audioquest vdm-5','v60','benda pin','kkdv30','nad c 355bee','audioquest vdm-xr','rega fono','parasound a23','nad 165','vincent preamp','rockefeller','dac link','cardas golden','enc100','component cable','dvd storage','cambridge audio 540r','boston acoustic speakers','c 50','stylus gauge','bryston 4b-sst2','rega p2','clearaudio emotion','parasound a51','hdcd','enc300','musical surroundings','psb g','harvester','mdsr100','s30','target fs','akg 701','mfvcan','coupler','parasound c 260','b100','kimber kwik-16','z fan','break in','diamonback','stylus force','kimber kable speaker','ultimate foundations','nad c-315bee','jewel','magnum','anti static','multi','hd600','voyage','bryston bda-1','aq1002g','marantz nr1501','hum','toslink digital cable','enc50','demo','athena center','athena center speaker','visat8','ps audio jewel','cambridge audio azur 340c','cambridge azur','bttack','tv mount','napp2','pp 3','cd30','612','cambridge audio dvd99','ca540p','cleaning brush','xm','bryston integrated','cardas neutral reference','coaxial cable','cobra','pac2100','ws15','cambridge phono','balanced','ebtech','sub-woofer','cambridge 640c cd player','martinlogan source','psb g-design','martin logan speakers','twin','psb center','postmaster','parasound zphono','bp-26','audioquest sky','aqflx14 2','nad remote','salamander shelf','omcch1','kimber kable hero interconnect with xlr\'s','salamander tv','ph-1','parasound rmk','sub supreme','salamander door','dac1','st-2','kwik-16','noise','bookshelf system','rubber','aasonic','xlr rca','ginko','hdmi adapter','t955','epos speakers','kimber jumpers','audioquest gibraltar','epos els3','goldring headphones','cambridge ipod','cambridge audio azur','mk','energy c-200 speakers','nht iws','psb alpha t1','pssolo','s 20','kimber monocle','ginko 10','cambridge audio 640c v2','as-iw6','cabinets','grado black1','speaker switch','vs400','psharv','pahp3','in ceiling speakers','real wood media storage','boston speaker','center speaker stand','nat175hd','sub-3','kimber tonik','parasound t3','v2.0ci','outdoor speakers','nad c 326bee','grado sr-80i','headphone extension cable','740','azur 340a','balanced audio cables','av processors','parasound jc-1','psb gb1','nad c165','sonoma','hdmi-3','4b sst2','t-737','feature','f80','super sub','nad c326bee','portable','nad dvd player','kimber spades','bryston speaker','pbhd','mini-5','aqbtiisub','pbstgb1','s40','cardas digital','adaptor','dv-30','swt-1','strip','snxjrcha','helos 100','radian','nakps','cs2.4','mono','grgcush','azur 840c','ps audio digital link 3','ps audio phono','cardas hd600','parasound hdmi','nad 715','azur 640c','energy c-300','audio interconnect','audioquest splitter','cardas phono','vpi classic','sorbogel','kwik 16','265','music hall dac 25.2','hd650','mlfrescoi','t-955','audioquest jumpers','pajc1','kimber toslink','shure se115mpa','mmf 2.1','sr-60i','hybrid amp','audioquest spade','parasound zamp','motif','sky','cambridge id50','ar30','740a','kkpm','crgrbd','ps audio link','vignette','azur 740c','alpha b1','noise stopper caps','cardas rca caps','emotion','biwire cable','inner sleeve','clever','nht three','efas','contact','xm tuners','thiel scs4','d60','classic three','audioquest wildcat','c1','vdm 5','nad t-747','obh-18','bar','sma5','slmc3000','nad pp 2','a52','hdmi coupler','boston computer','summit','psb sub','zphono','sr80i','azur 640p','azur 540p','madrid','4vs','psb imagine b','ipod headphones','wtt0576','nad ci 9060','sr125i','ac cable','saafdv','kimber kable dv-30','hunt eda','ca340a','y-adapter','iec power cord','tracking force','iec 3us','mc-30','ls-50','cardas cross','vcan','cleaning solution','2125','b15','550c','home theater speaker system','mha25.2','wireless subwoofer','l54','nad visio','vicds6','audio intelligent','vincent sa-31','platform','crimp','stylast','alpha c1','c275','hum eliminators','nad m25','hd8','sennheiser 800','ss2','audioquest t2','bryston remote','azimuth optimizer','marantz bd8002','classic two','c-326bee','iec 90 degree','audioquest speaker wire','on wall speakers','7b sst2','psb 5i','docking station','marantz bd5004','belt','2vedls','sanus pillars','hdmi receivers','wtt1260','k701','dvd-89','saucers','vibration control','creek power supply','ac9','t connectors','speaker base','dac headphone amp','audioquest toslink','cambridge audio 640c','md209','tghr','blutack','audioquest hdmi-a','bi-wire jumpers','kk8tc','mm-600','littlelight led','wall plug','mlticket','d-60','record care','record fluid','g-design','pazpre2','furman 15','portable radio','infrared repeater','thiel subwoofers','audioquest blue','cambridge 650a','cv4','gt-1','juicebar ii','marantz sr6004','black thunder','ls-c50','x-dac','li18led','points','14b','evo','audioquest optical','x-ray','cardas cross power','sa 8003','mdmd102','grado master','veritas center','cs3.7','c40','power port','236','digital link','tributaries t200','synchrony one','cambridge audio 540d v2','sr 4003','nam4','synchrony two','psb center speaker','audioquest firewire','dvda','nat955','boston computer speakers','t-175','blue racer ii','dac 1','nad c275bee','receiver phono','doctor','grado ph-1','salamander feet','aaban','salamander claw feet','furman elite 15i','kimber kable 8tc','energy c 50','swt 1','sr-100','psb imagine c','passive','hdmi-x','marantz pm5003','sanus efab mkii','kk4vs','aqhdmia','in-wall speaker cable','mm8003','pajc2','sict','twin 20','ps 1000','1 8','cardas se15','aqdi','ca840e','iw4','energy take five','psjepcc7','cambridge dac magic','audioengine a2','hd-280','aqnsc','alpha clr1','musical fidelity a5.5','kimber coaxial','sennheiser hd','b-100','creek headphone','billy','id10','cushion','audioquest t4','shorting','sennheiser headphones','steel foundations','cd shelf','type 4 cables','geneva','aqiec3us','salamander 5.0','furman power conditioners','parasound a52','passive preamp','digital link iii','bd8002','25.2','grado 60','audioquest rca caps','78 rpm','kimber cable hero','psb gt1','psb alpha center','dynalab','ipod docks speakers','dt-5','macro mount','aqice90','spdif cable','ca340c','energy rc-50','cambridge audio 640r','martinlogan subwoofer','side panel','record machine','audioquest c7','blue thunder','parasound jc 2','audioquest 1002','masr8002','nat737','st 2','boston audio','masr6004','x-can v8','cambridge audio tuner','bryston b60','cardas binding post','aes ebu','power management','salamander s20','smksl20','magnum dynalab antenna','nad c275','c5','synergy lock','mini-toslink','creek 5350se','cambridge ar30','musical fidelity v dac','power oval','salamander amp','salamander triple','rega motor','vpi 16.5','female xlr to male rca','c 1','athena ls 300','mc30','master series','audioquest y splitter','ac conditioners','archetype shelf','salamander quad','cambridge dvd players','kimber kable cadence','t975','cl-3','c4','ps power','nht2c','marantz hdmi','mmf 9.1','nht two center','satellite tuner','cd25.2','t-755','sa-31mk','cambridge audio azur 840c','subwoofer crossover','cambridge 340c','cm-1stk','c-715','pspwac5','athena ls50','a v rack','nht x2','24 speaker stands','dac25.2','tt50','salamander 30','psb t','t amp','mg head','mk-m-wm','marantz sacd','salamander riser','bdi vista','cambridge azur 640c','nad av receivers','aesthetix','stand fill','strobe','700','mfvlps','c60','madrid 5028','bryston preamp','stereophile','0.5m','sc','audioquest yiq-5','sennheiser ie6','audioquest wel','sbs','bulk','ac5','calibration','b60 sst','crli','7.1','stv20','thunder','anti-static gun','am','cambridge remote','energy s10.3','c 715','abyss subwoofer','mm-220','sp 331','salamander 20','bryston sp 2','salamander tv stands','creek remote','bryston 2b','audioquest rocket','nad home theater receiver','model 2','nad 50 watt','neutral','small speakers','nad compact','sanfav230','sanfcft','smkstv302','bp-16','audio switch','parasound in-wall speakers','bi-wire cables','nrg-1','asiw6','audioquest subwoofer cables','energy 10.3','pre-amplifiers','sr-125i','ps audio juicebar','smksu30','parasound 5125','napp375','cable tester','cables cardas','shanling cd player','3 shelf flat panel tv stand','smdrawer','mc 30','pair','athena ws100','martin-logan','8sspsp','athena center channel speaker','marantz sr-7002','bybda1','sakeuiiv','ps power punch','passage','audioquest rocket 44','nht model 3','audioquest vdm','tube fatman','ca550a','parasound jc-2','smsnc30','sban','calibration dvd','bp-6','bryston 3b-sst2','passive subwoofer','nht crossover','psb sub series','smsnc20','marantz 7001','psb alpha lr1','mmf-5.1','ac power conditioner','audio pro sub supreme','pbkim1su','tacs2.4','mmf-2.1','planar 3','nad c-715','afab','network player','nad power amp','nht pro','nad dac','music hall cd25.2','nad-pp3','se9','psb stratus','magnumdynalab','a25.2','nht iw3','cd s1.1','shanling pcd 3000a','s-30','compact amps','azur phono','creek cd player','sr 6003','monarchy dip combo','dac 25.2','s12.3','coupling discs','stepup','super audio cd','salamander 40','salamander s30','salamander amp stand','salamander tv40','class a amp','c-425','archetype drawer','phono preamp usb','smslpm','audioquest black','cs26','cardas myrtle','mini usb','a-52','surround sound receiver','bright star feet','shanling pcd3000a','stereo power amps','psb synchrony one b','audioquest black mamba ii','natural foundations','azur 650c','creek classic','parasound open box','bp 16','cardas golden presence','turntable wall','speaker accessories','music hall a25.2','aqrca2bnc','parasound zamp v.3','psb lr1','amp cables','stereo racks','plinth','mmf 5.1','audioquest type','synergy feet','power pack','salamander twin','plate','ps power conditioner','nht ic3','env2.0ri','nad pp-3 digital phono preamplifier','env2.0ri pblk','b-stock','mini optical adapter','class d','synchro','salamander synergy 20','clean screen','cambridge audio azur 840a','ca550c','sub-woofers','biwire speaker','cadacmagi','ps audio noise','sennheiser ie7','ps audio sc','multimedia','cd mp3','computer speaker systems','speaker package','sa-93','audioquest hdmi-x','marantz sr-5003','savf2012','c-c-100','speaker white','ckevint','signal sleuth','pahra3','psb-image t55','parasound halo a52','sms1','sanus coffee table','sp331','sy fm1','parasound a-51','ca640t','s20 sides','salamander media','archetype 2.0','515','marantz pm8003','clear oval','bcd 1','c c50','salamander archetype 5.0 five-shelf audio rack','center speaker mount','trt100','sr 5003','salamander package','psb alpha lr1 monitor','audioquest optilink 5','energy 12.3','sanus foundations','analysis plus silver oval','cambridge azur 340a','psb alpha speakers','c-100 center','sennheiser pxc 450','am-fm tuners','streaming','cardas power cable','nfa-245','speaker post','music hall 25.2','st-2 fm antenna','solo crystal','p mount phono cartridge','pxc300','cambridge audio dac magic','coupling','connect ipod','ps audio ac-5','taout2.4','nad-pp-2','marantz is301','synchro mate','psb t1','md 90','parasound pre','compact cd','nat535','slim tower','bcd','mmf5.1','ac filter','thiel cs1.6','sanus av rack','martinlogan summit','music hall mmf-5.1','marantz av','pbimg','cd sacd','s pdif cable','boston cs225','aqyiq-x','aqbri-3','audioquest ipod','chameleon berlin','psb alpha 1','powered sub','ci-9060','td-240','smmadrid','ngrd3','nht2','bulk speaker','carbon 2','audioquest outlet','parasound t-3','twin 40','archetype 5.0 five-shelf audio rack','cardas twinlink power cord','cambridge dvd-89 dvd player','sr 225','acs100','craesebu','avion','audio magic','paha51','tass1','energy c c50','components cabinet','smksn20','marantz blue ray','nht ceiling','bdp','nht m-20','marantz ipod','crnric','salamander plasma mount','nac425','ac plugs','tacs3.7','t 515','parasound silver','trdevc','cambridge 340r 5.1 hdmi av receiver','six channel','nht two','psb center channel','nhtac','azur 340r 5.1 hdmi av receiver','paintable in-wall','c515','plasma mount','sanus efav mkii','sa-cd player','aes ebu digital cable','s5','parasound controllers','ps audio radian','sl pm b','sepxc450','nad-pp-3','ac power','nht model three','nat587','p.s audio premier','new','sanf','cambridge audio 640a integrated amplifier','marantz ipod dock','cambridge audio 640p phono stage','sepxc350','parasound power','nakht765','cardas banana','marantz st');
/* $Revision: 3828 $
 *
 */

if(typeof(_sli_init )!='object'){var _sli_init=new Array();}
if(typeof(sli_init )!='function'){function sli_init(){ for(var x=0;x<_sli_init.length;x++) _sli_init[x]();}}
if(typeof(asPhrases)!='object'){ var asPhrases = new Array(); }
if(typeof(__SLI_customisations)!='object'){var __SLI_customisations = new Object();}
if(typeof(__SLI_ClientDefaults)!='object'){ var __SLI_ClientDefaults=[]; }
if(typeof(__SLI_validSearchBoxes)!='object'){ var __SLI_validSearchBoxes = new Array(); }
if(typeof(__SLI_asug_used_flag)!='object'){ var __SLI_asug_used_flag = false; }
if(typeof(__SLI_width)!='object'){ var __SLI_width = 0; }
if(typeof(sli_targeturl)!='object'){ var sli_targeturl = ""; }


    __AutoComplete = new Object(); //namespace...
    __AutoComplete_mouseMoved=false;

    // Basic UA detection
    isIE = document.all ? true : false;
    isGecko = navigator.userAgent.toLowerCase().indexOf('gecko') != -1;
    isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1;

    /* defaults and options */

    var __SLI_ApplicationName = 'AutoSuggest';
        __SLI_customisations[ 'AutoSuggest' ] =
                {
                    'ShowBrandingFooter' : true
                    ,
                    'TextBoxIDPrefix' : 'sli_search_'
                    ,
                    'BrandingFooterImagePath' : 'http://assets.resultspage.com/autosuggest/sli_systems-powered_150_15.gif'
                    ,
                    'BrandingFooterTitleTooltip' : 'AutoSuggest Powered by SLI Systems'
                    ,
                    'DropListMinWidth' : 150
                    ,
                    'MaxListItems' : 10
                    ,
                    'Alignment' : true
                    ,
                    'TextBoxIDCustom' : []
                    ,
                    'ValidSearchBoxes' : false 
                    ,
                    'IE6SelectBox' : false 
                    ,
                    'IE6SelectBoxPadding' : 0
                    ,
                    'TargetURL' : ''
                    ,
                    'IframeAlignment' : false
                    ,
                    'AlignmentBorderBug' : false
                    ,
                    'IE6OnFocus' : false
                };
    /* 0 = keyname, 1 = value */
    for( defaultValuePair in __SLI_ClientDefaults )
    {
        __SLI_customisations[__SLI_ApplicationName][__SLI_ClientDefaults[defaultValuePair][0]]=__SLI_ClientDefaults[defaultValuePair][1];
    }

    /* pre-fetch branding footer image if being used...
     */
    if( __SLI_customisations[ __SLI_ApplicationName ][ 'ShowBrandingFooter' ] )
    {
        
        if(location.protocol == "https:")
        {
            __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ] = __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ].replace(/http:/i, 'https:');
        }
    
        var __AutoCompleteBranding = new Image();
        __AutoCompleteBranding.src=__SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ];
    }


    function AutoComplete_init()
    {
        if(!isOpera)
        {
            var oldonresize=function(){};
            if(typeof(window.onresize)=='function')
                oldonresize = window.onresize;//play nicely with other people's toys
            window.onresize= function(){ oldonresize(); AutoComplete_HideAll(); AutoComplete_Create( asPhrases ); }

            AutoComplete_Create( asPhrases );
            
            var els = document.getElementsByTagName('input');
            if(els)
            {
               for ( i = 0; i < els.length; i++ )
               {
                  if(els[i].name == "asug")
                  {
                     els[i].disabled = true;
                  }
               }
            }
        }
    }




    /**
    * Attachs the autocomplete object to a form element. Sets
    * onkeypress event on the form element.
    *
    * @param string formElement Name of form element to attach to
    * @param array  data        Array of strings of which to use as the autocomplete data
    */
    //function AutoComplete_Create (id, data)
    /*
     * iterate over 'sli_search_*' assumes one or more search boxes numbered from 1...
    */
    function AutoComplete_Create( data )
    {
        var idx=1, e, id, searchBoxPrefix=__SLI_customisations[ __SLI_ApplicationName ][ 'TextBoxIDPrefix' ];
        while( e = document.getElementById(searchBoxPrefix+idx) )
        {
            AutoComplete_AttachHandlers(e, data);
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
            {
                __SLI_validSearchBoxes.push(searchBoxPrefix+idx);
            }
            idx++;
        }
        
        
        //this array comes from the customised list
        var otherTextBoxIdList = __SLI_customisations[ __SLI_ApplicationName ][ 'TextBoxIDCustom' ];
        if( otherTextBoxIdList)
        {
            for(idx=0;idx<otherTextBoxIdList.length;idx++)
            {
                e = document.getElementById(otherTextBoxIdList[idx]);
                if(e)
				{
					if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
                	{
	                    __SLI_validSearchBoxes.push( otherTextBoxIdList[idx] );
                	}
					AutoComplete_AttachHandlers(e, data);
				}
            }
        }
        
    } 

    function AutoComplete_AttachHandlers(e, data){
        var iframe,id;
        id=e.id;


        __AutoComplete[id] = {'data':data,
                              'isVisible':false,
                              'element':document.getElementById(id),
                              'dropdown':null,
                              'highlighted':null};

        __AutoComplete[id]['element'].setAttribute('autocomplete', 'off');
        __AutoComplete[id]['element'].onkeydown = function(e) {if (!e) e = window.event; return AutoComplete_KeyDown(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onkeyup = function(e) {if (!e) e = window.event; return AutoComplete_KeyUp(this.getAttribute('id'), e);}
        // The function call on the next line was changed by Andrew Grieve April 2008
        __AutoComplete[id]['element'].onkeypress = function(e) {if (!e) e = window.event; return AutoComplete_KeyPress(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onclick = function(e)
        {
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'IE6OnFocus' ] )
            {
                __AutoComplete[id]['element'].focus();
            }
            if (!e) e = window.event; e.cancelBubble = true; e.returnValue = false;
        }



        // Hides the dropdowns when document clicked
        var docClick = function()
        {
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
            {
               for(var i=0; i < __SLI_validSearchBoxes.length; i++)
               {
                   if(document.getElementById(__SLI_validSearchBoxes[i]))
                   {
                       AutoComplete_HideDropdown(__SLI_validSearchBoxes[i]);
                   }
               }
            }
            else
            {
                for (id in __AutoComplete)
                {
                   AutoComplete_HideDropdown(id);
                }
            }
        }

        if (document.addEventListener) {
            document.addEventListener('click', docClick, false);
        } else if (document.attachEvent) {
            document.attachEvent('onclick', docClick, false);
        }


        // Max number of items shown at once
        if (arguments[2] != null) {
            __AutoComplete[id]['maxitems'] = arguments[2];
            __AutoComplete[id]['firstItemShowing'] = 0;
            __AutoComplete[id]['lastItemShowing'] = arguments[2] - 1;
        }

        AutoComplete_CreateDropdown(id);

        // Prevent select dropdowns showing thru
        if (isIE) {
            iframe = document.createElement('iframe');
            __AutoComplete[id]['iframe'] = iframe;
                iframe.id = id +'_iframe';
                iframe.style.position = 'absolute';
                iframe.style.top = '0';
                iframe.style.left = '0';
                iframe.style.width = '0px';
                iframe.style.height = '0px';
                iframe.style.zIndex = '98';
                iframe.style.visibility = 'hidden';
                
                if(location.protocol == "https:")
                {
                   iframe.src = 'https://assets.resultspage.com/autosuggest/blank.html';
                }
                
                if( __SLI_customisations[ __SLI_ApplicationName ][ 'IE6SelectBox' ] )
                {
                  iframe.style.width = __SLI_width  + __SLI_customisations[ __SLI_ApplicationName ][ 'IE6SelectBoxPadding'];
                }

            if( __SLI_customisations[ __SLI_ApplicationName ][ 'IframeAlignment' ] )
            {
                document.body.insertBefore( iframe );
            }
            else
            {
                __AutoComplete[id]['element'].parentNode.insertBefore( iframe, __AutoComplete[id]['element'] );
            }
        }
    }

    /**
    * Creates the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_CreateDropdown(id)
    {
        var theSearchbox = __AutoComplete[id]['element'];
        var theDropDown;
        var left_top = AutoComplete_getPos( theSearchbox );
        var left  = left_top[0];
        var top   = left_top[1] + theSearchbox.offsetHeight;
        var width = theSearchbox.offsetWidth;

        if ( width < __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ] )
        {
            width = __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ];
        }

        theDropDown = document.createElement('div');
        theDropDown.className = 'autocomplete'; // Don't use setAttribute()


        if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == true && document.body)
        {
            theDropDown.style.position = 'absolute';
            document.body.insertBefore(theDropDown, document.body.nextSibling);
            
            // Position it
            theDropDown.style.visibility = 'hidden';
            theDropDown.style.left       = left + 'px';
            theDropDown.style.top        = top + 'px';
            theDropDown.style.width      = width + 'px';
            theDropDown.style.zIndex     = '99999';
        }
        else if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "offsetrelative" && document.body)
        {
          theSearchbox.parentNode.insertBefore(theDropDown, theSearchbox);
          // Position it
          if(sli_getStyle(theSearchbox.offsetParent, 'position') != "absolute")
          {
            theSearchbox.offsetParent.style.position = 'relative';
          }
          theDropDown.style.position = 'absolute';
          theDropDown.style.left = (theSearchbox.offsetLeft) + 'px';
          theDropDown.style.top = (theSearchbox.offsetTop + theSearchbox.offsetHeight) + 'px';
          theDropDown.style.width = (theSearchbox.clientWidth) + 'px';
          theDropDown.style.visibility = 'hidden';
          theDropDown.style.zIndex     = '99999999';
        }
        else
        {
            theSearchbox.parentNode.insertBefore(theDropDown, theSearchbox);
            // Position it
            theDropDown.style.visibility = 'hidden';
            theDropDown.style.left       = left + 'px';
            theDropDown.style.top        = top + 'px';
            theDropDown.style.width      = width + 'px';
            theDropDown.style.zIndex     = '99999';
        }
        

        __AutoComplete[id]['dropdown'] = theDropDown;
        __SLI_width = width;
    }

    function /* array [ left, top ] */ AutoComplete_getPos( obj )
    {
        var curleft = curtop = 0;
        var sli_flag = 0;

        if (obj.offsetParent)
        {
           do
           {
              if ( __SLI_customisations[ __SLI_ApplicationName ][ 'AlignmentBorderBug' ] )
              {         
                
                if(sli_flag == 1)
                {
                    var clientTop = (obj.offsetHeight - obj.clientHeight) / 2;
                    curtop += clientTop;

                    var clientLeft = (obj.offsetWidth - obj.clientWidth) / 2;
                    curleft += clientLeft;
                }
                sli_flag = 1;
              }
           
              curleft += obj.offsetLeft;
              curtop += obj.offsetTop;
           }
           while (obj = obj.offsetParent);
        }
        return [curleft,curtop];
    }

    /**
    * Shows the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ShowDropdown(id)
    {

        AutoComplete_HideAll();



        var value = __AutoComplete[id]['element'].value;
        var toDisplay = new Array();
        var newDiv    = null;
        var text      = null;
        var numItems  = __AutoComplete[id]['dropdown'].childNodes.length;

        __AutoComplete_mouseMoved=false;
        // SLI Code Modification - Start - Andrew Grieve April 08
        // Trim the textbox so that if is starts with a space then the feature will still work
        //value = value.replace(/^\s+|\s+$/g,"");
        value = value.replace(/^\s+/g,"");

        if(value.length == "")
        {
            // If Textbox length is nothing (after the trim) then don't show dropdown.
            return;
        }
        // SLI Code Modification - End

        // Remove all child nodes from dropdown
        while (__AutoComplete[id]['dropdown'].childNodes.length > 0) {
            __AutoComplete[id]['dropdown'].removeChild(__AutoComplete[id]['dropdown'].childNodes[0]);
        }


        var count=0;
        // Go thru data searching for matches
        for (i=0; i<__AutoComplete[id]['data'].length; ++i)
        {
            // SLI Code Modification - Start - Andrew Grieve April 08 - Added lower casing
            if (__AutoComplete[id]['data'][i].substr(0, value.length).toLowerCase() == value.toLowerCase())
            {
                // SLI Code Modification - End
                toDisplay[toDisplay.length] = __AutoComplete[id]['data'][i];
                count++;
                /* how many to display? */
                if(count == __SLI_customisations['AutoSuggest']['MaxListItems'] ) /* Code inserted to keep list to a maximum of 10 values (was 20 or 30) */
                {
                    break;
                }
            }
        }

        // No matches?
        if (toDisplay.length == 0) {
            AutoComplete_HideDropdown(id);
            return;
        }



        // Add data to the dropdown layer
        for (i=0; i<toDisplay.length; ++i) {
            newDiv = document.createElement('div');
            newDiv.className = 'autocomplete_item'; // Don't use setAttribute()
            newDiv.setAttribute('id', 'autocomplete_item_' + i);
            newDiv.setAttribute('index', i);
            newDiv.style.zIndex = '99999';

             // Scrollbars are on display ?
            if (toDisplay.length > __AutoComplete[id]['maxitems'] && navigator.userAgent.indexOf('MSIE') == -1) {
                newDiv.style.width = __AutoComplete[id]['element'].offsetWidth - 22 + 'px';
            }

            newDiv.onmouseover =
        function()
        {
            if( __AutoComplete_mouseMoved )
                AutoComplete_HighlightItem(__AutoComplete[id]['element'].getAttribute('id'), this.getAttribute('index'));
        };

            newDiv.onclick     =    function()
                                    {
                                    	  __SLI_asug_used_flag = true;
                                                                           
                                        AutoComplete_SetValue(__AutoComplete[id]['element'].getAttribute('id'));
                                        AutoComplete_HideDropdown(__AutoComplete[id]['element'].getAttribute('id'));
                                        AutoComplete_submitForm(id);
                                    }



            text   = document.createTextNode(toDisplay[i]);
            newDiv.appendChild(text);
            newDiv.title='Search for ' + toDisplay[i];

            /* ellipsis for IE only */
            if( isIE )
            {
                newDiv.style.textOverflow = 'ellipsis';
                newDiv.style.width = '100%';
                newDiv.style.whiteSpace = 'nowrap';
                newDiv.style.overflow = 'hidden';

            }
            __AutoComplete[id]['dropdown'].appendChild(newDiv);
        }
        /*
         * append DIV containing footer branding...
         */
        if(__SLI_customisations['AutoSuggest']['ShowBrandingFooter'])
        {
            i = toDisplay.length;
            newDiv = document.createElement('div');
            newDiv.className = 'autocomplete_footer'; // Don't use setAttribute()
            newDiv.setAttribute('id', 'autocomplete_item_' + i);
            newDiv.setAttribute('index', i);
            newDiv.style.zIndex = '99999';
            newDiv.innerHTML = '<a href="http://www.sli-systems.com/powered-by.php" title="' +
                                __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterTitleTooltip' ] +
                                '"><img class="autocomplete_footer_branding" src="'+__AutoCompleteBranding.src+'" /></a>';

            __AutoComplete[id]['dropdown'].appendChild(newDiv);
        }


        // Too many items?
        if (toDisplay.length > __AutoComplete[id]['maxitems']) {
            __AutoComplete[id]['dropdown'].style.height = (__AutoComplete[id]['maxitems'] * 15) + 2 + 'px';

        } else {
            __AutoComplete[id]['dropdown'].style.height = '';
        }


        /**
        * Set left/top in case of document movement/scroll/window resize etc
        */
        if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "true" || __SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "false")
        {
            var left_top = AutoComplete_getPos( __AutoComplete[id]['element'] );
            __AutoComplete[id]['dropdown'].style.left = left_top[0];
            __AutoComplete[id]['dropdown'].style.top  = left_top[1] + __AutoComplete[id]['element'].offsetHeight;
        }


        // Show the iframe for IE
        if (isIE) {
            
            if(!__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == true)
            {
               __AutoComplete[id]['iframe'].style.width  = __AutoComplete[id]['dropdown'].offsetWidth;
            }
            
            
            __AutoComplete[id]['iframe'].style.top    = __AutoComplete[id]['dropdown'].style.top;
            __AutoComplete[id]['iframe'].style.left   = __AutoComplete[id]['dropdown'].style.left;
            __AutoComplete[id]['iframe'].style.height = __AutoComplete[id]['dropdown'].offsetHeight;

            __AutoComplete[id]['iframe'].style.visibility = 'visible';
        }

    e =  __AutoComplete[id]['dropdown'];

    e.onmousemove =
        function()
        {
            if(!__AutoComplete_mouseMoved){__AutoComplete_mouseMoved=true;}
            this.onmousemove = null;
        }

        // Show dropdown
        if (!__AutoComplete[id]['isVisible']) {
            __AutoComplete[id]['dropdown'].style.visibility = 'visible';
            __AutoComplete[id]['isVisible'] = true;
        }


        // If now showing less items than before, reset the highlighted value
        if (__AutoComplete[id]['dropdown'].childNodes.length != numItems) {
            __AutoComplete[id]['highlighted'] = null;
        }
    }



    /**
    * Hides the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_HideDropdown(id)
    {
        if (__AutoComplete[id]['iframe'])
        {
            __AutoComplete[id]['iframe'].style.visibility = 'hidden';
        }
        
        if (__AutoComplete[id]['dropdown'])
        {
            __AutoComplete[id]['dropdown'].style.visibility = 'hidden';
        }

        __AutoComplete[id]['highlighted'] = null;
        __AutoComplete[id]['isVisible']   = false;
    }


    /**
    * Hides all dropdowns
    */
    function AutoComplete_HideAll()
    {
         if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
         {
               for(var i=0; i < __SLI_validSearchBoxes.length; i++)
               {
                   if(document.getElementById(__SLI_validSearchBoxes[i]))
                   {
                       AutoComplete_HideDropdown(__SLI_validSearchBoxes[i]);
                   }
               }
         }
         else
         {
                for (id in __AutoComplete)
                {
                   AutoComplete_HideDropdown(id);
                }
         }
    }


    /**
    * Highlights a specific item
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_HighlightItem(id, index) // mouseover, index is the list element index, zero-based
    {
        if (__AutoComplete[id]['dropdown'].childNodes[index]) {
            for (var i=0; i<__AutoComplete[id]['dropdown'].childNodes.length; ++i) {
                if (__AutoComplete[id]['dropdown'].childNodes[i].className == 'autocomplete_item_highlighted') {
                    __AutoComplete[id]['dropdown'].childNodes[i].className = 'autocomplete_item';
                }
            }

            __AutoComplete[id]['dropdown'].childNodes[index].className = 'autocomplete_item_highlighted';
            __AutoComplete[id]['highlighted'] = index;

            //also see below...
            //__AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[index].innerHTML;
            //AutoComplete_SetValue(id);
        }
    }


    /**
    * Highlights the menu item with the given index
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_Highlight(id, index) // keyboard up/down - index is the direction of travel, 1==down,-1=up
    {
        var childNodes = __AutoComplete[id]['dropdown'].childNodes;
        if(childNodes.length)
        {
	        var lastItem = ( ( childNodes[ childNodes.length - 1 ].className != 'autocomplete_footer' ) ? childNodes.length - 1 : childNodes.length - 2 );

            // Out of bounds checking
            //if (index == 1 && __AutoComplete[id]['highlighted'] == __AutoComplete[id]['dropdown'].childNodes.length - 1) {
            if (index == 1 && __AutoComplete[id]['highlighted'] == lastItem ) {
                childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
                __AutoComplete[id]['highlighted'] = null;

            } else if (index == -1 && __AutoComplete[id]['highlighted'] == 0) {
                childNodes[0].className = 'autocomplete_item';
                __AutoComplete[id]['highlighted'] = lastItem;
                index = 0;//hack!
            }

            // Nothing highlighted at the moment
            if (__AutoComplete[id]['highlighted'] == null) {

                childNodes[0].className = 'autocomplete_item_highlighted';
                __AutoComplete[id]['highlighted'] = 0;
                newIndex = 0;
                
            } else {

                if (childNodes[__AutoComplete[id]['highlighted']]) {
                
                    childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
                }

                var newIndex = parseInt( __AutoComplete[id]['highlighted'] ) + parseInt(index);

                if (childNodes[newIndex]) {

                    childNodes[newIndex].className = 'autocomplete_item_highlighted';

                    __AutoComplete[id]['highlighted'] = newIndex;
                }
            }

            //populate textbox with currently highlighted term...
            //__AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[newIndex].innerHTML;
            AutoComplete_SetValue(id);
        }
    }


    /**
    * Sets the input to a given value
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_SetValue(id)
    {
        __AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']].innerHTML.replace(/&amp;/, "&");
    }


    /**
    * Checks if the dropdown needs scrolling
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ScrollCheck(id)
    {
        // Scroll down, or wrapping around from scroll up
        if (__AutoComplete[id]['highlighted'] > __AutoComplete[id]['lastItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'] - (__AutoComplete[id]['maxitems'] - 1);
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'];
        }

        // Scroll up, or wrapping around from scroll down
        if (__AutoComplete[id]['highlighted'] < __AutoComplete[id]['firstItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'];
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'] + (__AutoComplete[id]['maxitems'] - 1);
        }

        __AutoComplete[id]['dropdown'].scrollTop = __AutoComplete[id]['firstItemShowing'] * 15;
    }


    /**
    * Function which handles the keypress event
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyDown(id, e)
    {
        var result = true;

       var event;
       event = e;
       if(!event) event = window.event;

        var keyCode = event.keyCode;

        switch (keyCode) {

            // Return/Enter
            case 13:
                if (__AutoComplete[id]['highlighted'] != null) {
                    AutoComplete_SetValue(id);
                    AutoComplete_HideDropdown(id);
					
                    __SLI_asug_used_flag = true;
					
                    if( e = __AutoComplete[id]['element'].form['asug'] )
                    {
                        
                        e.disabled=false;
                        e.value = __AutoComplete[id]['asug'];
                    }

                }

                result = AutoComplete_submitForm(id);

                break;

            // Escape
            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;

            // Up arrow
            case 38:
                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }

                AutoComplete_Highlight(id, -1);
                AutoComplete_ScrollCheck(id, -1);
                
                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=false;
                   e.value = __AutoComplete[id]['asug'];
                }

                                
                result = false;
                break;

            // Tab
            case 9:
                if (__AutoComplete[id]['isVisible']) {
                    AutoComplete_HideDropdown(id);
                }
                return;

            // Down arrow
            case 40:

                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }

                AutoComplete_Highlight(id, 1);
                //AutoComplete_ScrollCheck(id, 1);

                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=false;
                   e.value = __AutoComplete[id]['asug'];
                }

                result = false;
                break;
        }
        return result;
    }


    /**
    * Function which handles the keyup event
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyUp(id, e)
    {
       var event;
       event = e;
       if(!event) event = window.event;

        var keyCode = event.keyCode;

        switch (keyCode) {
            case 13:
                event.returnValue = false;
                event.cancelBubble = true;
                
                break;

            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;

            case 38:
            case 40:
                return false;
                break;

            default:
                AutoComplete_ShowDropdown(id);
                
                __AutoComplete[id]['asug']=__AutoComplete[id]['element'].value;

                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=true;
                   e.value = "";
                }  
                
                break;
        }
    }

    /**
    * Function which handles the keypress event
    * This function added April 2008 by Andrew Grieve
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */

    // SLI Code Modification - Start - Andrew Grieve April 08
    function AutoComplete_KeyPress(id, e)
    {
        var event = e;
        if(!event) event = window.event;
        var keyCode = event.keyCode;

        if (keyCode == 13 && isGecko || isOpera)
        {
            return false;
        }
        
        if( __SLI_customisations[ __SLI_ApplicationName ][ 'TargetURL' ] )
        {
            if (keyCode == 13 && isIE)
            {
                return false;
            }
        }
        
    }
    // SLI Code Modification - End

    /**
    * Returns whether the dropdown is visible
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_isVisible(id)
    {
        return __AutoComplete[id]['dropdown'].style.visibility == 'visible';
    }

    function AutoComplete_submitForm(id)
    {
        var e, f, result=true;
        if( f = __AutoComplete[id]['element'].form )
        {
            if( __AutoComplete[id]['element'].value != '' )
            {
            	if(__SLI_asug_used_flag == true)
            	{
                   if( e = f['asug'])
                   {
                      e.value = __AutoComplete[id]['asug'];
                      e.disabled=false;
                   }
                }
                
                if( __SLI_customisations[ __SLI_ApplicationName ][ 'TargetURL' ] )
                {
                	asugvar = "";
                	if(__SLI_asug_used_flag == true)
                	{
                	  asugvar = '&asug=' + __AutoComplete[id]['asug'];
                  	}
                    
                    sliRegex = /resultsdemo\.com/;
                    if(sliRegExArray = sliRegex.exec(document.domain))
                    {
                    	sliRegex = /^http:\/\/(.*)\//;
                    	sliTargetDomain = sliRegex.exec(__SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ]);
                    	__SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ] = __SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ].replace(sliTargetDomain[1], document.domain);
                    }
                    
                	document.location.href = __SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ] + __AutoComplete[id]['element'].value + asugvar;
                }
                else
                {
                	f.submit();
                }
                
                AutoComplete_HideAll();
            }
            else
                result = false;
        }
        return result;
    }
    
    // get the style that will be applied by the browser, including stylesheets
    function sli_getStyle(el,styleProp)
    {
      if (el.currentStyle)
        var y = el.currentStyle[styleProp];
      else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
      return y;
    }

    // register with onLoad(er...
    _sli_init.push( AutoComplete_init );
    
    function sli_addEvent(obj, evType, fn) {
    	if (obj.addEventListener) {
    		obj.addEventListener(evType, fn, false);
    		return true;
    	} else if (obj.attachEvent) {
    		var r = obj.attachEvent("on" + evType, fn);
    		return r;
    	} else {
    		return false;
    	}
    }
    
    function sli_load()
    {
    	sli_addEvent(window, 'load', sli_init);
    }