/* Popular phrases - AUDIOADVISOR - 13:55:54, Thu Mar 11, 2010 */
var asPhrases=new Array ('dac','psb','speaker stands','nad','parasound','pangea','psb image','vincent','subwoofer','martin logan','ps audio','thiel','cd players','cambridge','oppo','headphone amp','speakers','phono preamp','audioquest','salamander','ipod','musical fidelity','bryston','vibrapod','speaker cable','power cable','energy','hrt','sanus','stands','hdmi','grado','receivers','velodyne','music streamer','tuner','cambridge audio','headphones','preamplifier','power conditioner','dacmagic','kimber','v-dac','turntable','salamander synergy 221','ipod dock','integrated amplifiers','usb','amplifier','rega','cables','headphone amplifier','nad receivers','preamp','cartridge','athena','antenna','nht','marantz','interconnect','hdmi cable','record cleaning machine','usb dac','bookshelf speakers','toslink','spade','martin logan speakers','benchmark','sacd','power','cardas','power cord','music hall','audioquest hdmi','subwoofer cable','kimber hero','tube','manley','usb cable','kimber kable','salamander synergy','fm tuner','veritas','cd storage','vpi','dac magic','nitty gritty','jumpers','furman','rca caps','home theater receiver','integrated amp','solid tech','dynamo','antique sound','martinlogan','tube amp','xlr','phono cartridge','shanling','speaker wire','spikes','center speaker','phono stage','isolation','amp stand','psb g-design','martin logan subwoofer','digital cable','ipod cable','halo','powered speakers','target speaker stands','cambridge azur','antique sound lab','tv stands','twin 30','parasound 2100','rca','record cleaning','creek','t45','synchrony','psb alpha','fm antenna','clearaudio','record brush','black mamba','vincent audio','banana','target','audio racks','analysis plus','integrated','encore','nad m5','feet','record doctor','a1','nrg','banana plugs','sennheiser','preface','nad t755','640p','phono','epos','archetype','thorens','audioengine','v dac','zerostat','acoustic panels','tube amplifiers','magnum dynalab','xlr cables','martinlogan center','8tc','psb speakers','340a','kimber 8tc','rack','sanus afa','type 4','hrt music streamer','streamer','vdac','record cleaner','home theater','s30','sonata','audioquest speaker cable','psb synchrony','ac-14','psb imagine','parasound halo','hero','nad preamp','audio cable','650bd','psb bookshelf','av receivers','pangea ac-9','fan','cooling fans','psb subwoofer','kimber usb','supercharger','martinlogan speakers','musical','crosslink','blu ray','rega p2','klipsch','slate','music hall turntable','pangea audio','antique','cd','amps','synergy','stillpoints','alpha b1','universal player','musical fidelity amplifier','isolation feet','musical fidelity a1','diamondback','pc speakers','rc-10','speaker selector','mamba','b25','godar','sub woofer','4tc','digital to analog converter','silver hdmi','power amplifier','dust cover','ipod tube','in wall speakers','blu ray players','pp2','xlr to rca','martin logan encore','klipsch image x5','650r','bdi','martinlogan source','video cables','y cable','v-can','rca cable','martin logan preface','t55','vincent preamp','shelf','twin 20','cardas cables','tube preamp','energy veritas','sanus rack','nad t587','king cobra','surround speakers','i pod','rega p1','salamander shelf','interconnect cable','rc-70','parasound preamp','storage','cd changer','dac1','rack of silence','audioquest hdmi cables','sacd players','energy speakers','ac 14','benchmark dac','hd800','840c','cd recorder','turntable shelf','mdst2','audioquest type 4','duet','energy rc','hrt music streamer+','nitty','b6','dvd player','ipod speakers','tonearm','pspp','headphone cable','vista','analysis plus solo crystal oval','nad pp3','concept','sleeves','blue racer','goldring','t5','tube headphone amp','binding post','nam55','pangea hdmi','psb t45','m6i','hdmi-x','m6','v-lps','balanced xlr cables','sub','gt1','s50','musical fidelity v-can','kimber cable','afv48b','receptacle','grado headphones','grado cushion','power strip','nad m2','parasound z','hdmi-1','equalizer','cardas crosslink','rega fono','acoustic','bnc','conditioner','nad t 747','p3','dvd','stingray','lp storage','540p','dac converter','phono amp','340t','bags','oval 12','d-60','saturn','750k','aqslanf','power amp','mmf','juicebar','hd600','tonearm cable','cambridge dac','parasound a21','p7','dvi to hdmi','monarchy','audioengine a5','helos','mp3','315bee','in ceiling','athena speakers','panels','thx','jumper cable','cardas rca caps','audioquest speaker','black mamba ii','moving coil cartridges','focal','12tc','blu tack','grado earpads','cc4003','rega belt','ps audio power cable','marantz 5003','mit','dip','klipsch image s4','passive','parasound a23','audioquest subwoofer','milty','640r','rocket 33','sanus euro','bluray','light','marantz receiver','nad 747','gb1','cardas golden reference','326bee','audioquest interconnect','vantage','static','y connector','psb image t5','salamander triple','timbre','pangea ac-14 power cable','a21','sky','fm','hdmi switcher','outdoor speakers','kimber pbj','a52','p1','ps audio dac','bellari','wbt','brush','kimber 12tc','cambridge sonata','mlvis','nad t765','sanus speaker stands','t6','bda-1','type 2','sr100','energy rc-10','dustcover','soloist','connectors','nad c515bee','parasound p7','725bee','synchrony one','cones','cas30','caps','thiel cs3.7','nad m3','torus','amplifier stands','niagara','ayre','psb center','rega phono','spdif','interconnect rca','salamander twin','mdsr100','surge protector','speaker switch box','rc-lcr','splitter','audioquest diamondback','hdmi-g','bi wire cable','saefvsiii','mini toslink','rocket 88','stereo receiver','sennheiser hd800','marantz pm5003','stage','ca550c','component video cable','nac315bee','alpha c1','psb alpha b1','speaker switch','chameleon','dvi-d','analysis','littlelite','cd rack','vpi classic','surge protection','twin','nad m55','cambridge integrated amplifier','m5','audioquest power','audioquest banana','record sleeves','sennheiser headphones','blu','clearaudio concept','nad c315bee','kimber xlr','bookshelf','phono pre-amp','bulk speaker cable','remote control','psb synchrony one','halo a23','processor','cooling','cardas power cord','y','ginko','rca connector','floorstanding speakers','sanus euro rack','pbj','source','sonic saucers','sanus stands','2100','integrated tube amp','c60','ac9','jm lab','dvi','marantz nr-1501','blu-tack','dock','audioquest tonearm','cambridge ipod dock','helos 20','klipsch x5','hd650','wall mount','nht classic 3','ground loop','bdp-83se','c260','marantz cd','nad viso five','pac2125','monarchy audio','m55','wrench','stylus tracking force gauge','nad 737','in wall','furniture','zpre','musical fidelity vdac','stereo amplifier','cd receiver','mini optical','c355bee','copperhead','monocle','vbpod','ac power cable','nad integrated amplifier','nad c165bee','2250','kimber silver','creek destiny','balanced cables','bryston dac','isonode','stereo amp','room','martin logan sub','bnc digital cable','myrtle','turntable mat','azur 640r','marantz 8003','marantz sr5004','ceiling speakers','7 channel','ear buds','synchrony two','psb c5','pre-amp','speaker post wrench','smksl30','mfa1','phono preamp usb','a1008','nad 275bee','goldring headphones','kwik-16','weight','sanus av rack','kwik-12','nad-m3','benchmark dac1 usb','m2','link','audioquest sub','nad m15 hd','am antenna','xm radio','roku hd digital video player','pm5003','cleaner','am fm tuner','destiny','noise harvester','8x','av processor','nad 515bee','marantz nr1501','littlite','azur','satellite tuner','nht x2','oppo bdp-83','image','nad cd player','vincent audio sv-236 mkii','cardas usb','nad blu-ray','phono cable','ticket','martin logan source','ps audio duet','boston acoustics','audioquest nrg','ca340a','switcher','hdmi switch','zamp','p2','a51','l54','br2','component video','juice bar','black thunder','ps audio premier','sennheiser 800','marantz sacd players','psb image c40','3.5mm','t755','speaker connectors','mm-600','nad t 765','surround','vac sweep','twinlink','isolation disc','psb g','crclic','pajc1','mfm6i','sennheiser hd','dbpro','t975','archetype 3.0','crhp','dynamo 500','ca840c','felt mat','juice bar ii','b5','parasound zamp v3','vincent sp-331','compact system','psb gt1','theil','musical fidelity v-lps','audio pro','firewire','kimber kable kwik-16','cambridge 640p','20 amp','speaker mounts','optical','type 8','pghd24l','tributaries','5 channel amplifier','marantz sa 8003','cd transport','cardas female rca to male xlr adapter','rockefeller','grado sr60i','room treatments','toslink cable','840e','macd5003','sanus ultimate foundations','rocket','audioquest xlr','audioquest y','bubble','kimber kable pk10','nad c375bee','340c','nad l54','banana connectors','tower speaker','cambridge s30','classe','dynamo 1000','dvd storage','pgac14','salamander s40','in wall speaker cable','powered monitor','dv24','nat765','tt-15s1','mlencore','sr-60','inner record sleeves','audioquest black mamba ii premium audio interconnect','bryston bda1','salamander 5.0','sv-236','sa-t8','mini-plug','se280pro','record cleaning kit','repeater','quad','furman pst 8d','plate amp','lp shelves','cambridge compact','analysis plus interconnect','salamander media drawer','hum','level','xlr interconnect','kwik','turntable wall mount','rc-50','vesms1','id50','billy bags','cm-1c','music hall mmf','depth','cambridge integrated','ac outlet','earphones','discs','ztuner','audioquest usb','cardas digital','music hall 25.2','record doctor iii','vacuum tubes','impact','psb image b25','221','computer','roku','audioquest bfa','av3000','nrg5','last','sports','scs4','akg','xm','power supply','ca540p','digital to analog','satellite','kimber kable hero','aqt4nf','nrg-5','ups','sm329','iec','mat','corner','nad blu ray','silver streak','parasound new classic','hrtmsplus','toslink adapter','kimber kable hdmi','audio cd','audioquest niagara','cardas video','cs3.7','audioquest t4','grscush','headphone adaptor','golden presence','marantz 1501','oppo bdp83','cambridge audio one','kkd60','indoor antenna','psb b25','power plant','martin logan vantage','g-snake','parasound c260','napp3','perfectwave dac','nad cd','audioquest flx','sonex','marantz cc4003','inwall','psb imagine t','oppo bdp-83se','cambridge 650r','atls300','gc1','cambridge phono','cardas caps','center channel','parasound p3','psb tower','spade lugs','imagine','550c','in ceiling speakers','vpi hw','parasound jc2','wireless headphones','nad master','nad ipod','kwik 16','kimber kable pbj','275','90 degree','ps audio soloist','cambridge 340a','grado ps1000','t65','audioquest rockefeller','sanus efav mkii','noise canceling','duplex','st7001','kimber kable 8tc','ac14','nad psb','marantz sr 5004','nad t737','cloud','ps premier','pm-5003','sr 5004','contact enhancer','sennheiser hd 600','mini3','hdmi1','aurum','maav8003','vincent pho-8','rega wall mount','opbdp83se','adaptor','cardas golden','vpi scout cover','remote','iphone','creek headphone','bulk cable','matinee','nht classic four','kimber kable 12tc','cd30','caig','signal sleuth','5.1','one+','audio amplifier','kimber kable silver streak','clamp','manley labs','blue ray players','music hall dac','cambridge audio dacmagic','image b6','ps audio av3000','nad 315bee','av 5000','skipjack','energy rc70','efab','mini to rca','vincent integrated','nad phono','crgrbd','pbimt55','c40','pangea hd-24pc','nad c545bee','demo speakers','nad m15hd','stylast','pk 10','cambridge audio azur 340a','236','rca switcher','noise stopper','v60','parasound amplifier','sbs','m15','gingko cloud','c7 power cable','da','synergy shelf','m56','sauf 26blk','music hall cd-25.2','protractor','itube','c 565bee','nad integrated','bulk','y splitter','nad t747','nat747','bi-wire','cd shelf','nht speakers','sorbothane','rca audio cables','phono pre','salamander archetype','psb 6i','bubble level','kimber kable usb','550a','isolation cones','psb t65','nad tuner','g cush','zbreeze','nad pp2','zphono','nat755','salamander 20','aqki','real wood','lp cleaning','stylus brush','cambridge dvd','akg k701','c275bee','cardas power','audioquest component','ie8','ebtech','audioquest sidewinder','av5000','rega ear','cardas quadlink','fono','psb gt-1 towers','wall mount speaker brackets','indoor fm antennas','grado accessories','ca650bd','digital link','martin-logan','t535','tracking force','fiber optic','kimber pk10','sound panels','ground loop hum','pbimt45','sanus add a shelf','musical fidelity phono','br-2','test lp','klipsch s4i','hb1','magnum','ud8004','dvd audio','lp','record care','igrado','sanus natural','vpi scout','switch','parasound phono','c5','kimber 4tc','oval 9','madrid','rc10','velodyne impact mini','hrtms','xm tuners','cardas speaker','casters','rc 10','dvd99','veritas v2.3','transport','parasound amp','5250','record clamp','nac515bee','psb synchrony two','ps audio soloist se','wall receptacle','smksu30','smsvdo','audio intelligent','nat587','image t65','smamp','docking station','audioquest rca caps','kimber cable hero','audioquest black thunder','2 channel amps','lp clamp','audioquest flexable y 1 male rca to 2 female rca\'s','nrg-1','parasound 2250 250-watt two channel amplifier','cardas adapter','tube pre-amp','cambridge 340a integrated amplifier','f-type','grado sr80','smsalb','smsac','psb t6','cardas speaker cable','compact','furman pst','ar30','stereo preamp','powered sub','cambridge 740a','ac-9','psb image t45','azur 840c','tower','cw260','ra-1','martin logan dynamo','ps audio gcph','dac 25.2','center channel stand','nad l 54','platter','ls-300','vincent v-60','voyage','viso','bi wire speaker cable','cd5003','a23','obh','nht zero','kimber timbre','vincent phono','kimber kcag','cambridge 650bd','blu-ray','bcd-1','plug','rack mount','755','in-wall','audioquest mini','klipsch image x10','manley stingray','grado sr125i','cardas xlr adapter','c326bee','dvda','audioquest y splitter','m6prx','grace m902','cartridge headshell','obh21','gold spade','audioquest caps','650t','spike feet','nht3','mini-3','m6pre','ps audio noise','c315bee','sanf204','hdcd','swt-1','955','dls','ac power','tgvw1pro','psb b5','blue ray disc players','sa8003','bluray players','6004','rs180','jewel power cable','740a','355bee','omcch1','cambridge ipod','vcan','hybrid','benchmark dac1','center stand','cardas phono','hero hb','athena micra 6','mc cartridge','power plug','moving coil','grado ps-1000','record weight','c7 power','quintet','pp3','component','rc70','auric illuminator','crossover','minivee','shure m97xe','stylus cleaner','b15','parasound zamp','cardas 8x crosslink','marantz pm8003','harvester','headshell leads','s4','hero xlr','coaxial cable','audioengine a2','cardas headphone cable','nad l','nad amplifier','nad master series','ground','obh-11','7001','4003','headphone extension','audioquest rocket 88','wall','gooseneck','jc-1','kimber aes','wall plug','target shelf','ear','sa31','salamander saturn','music streamer+','sp-331mk','sr-5004','cdkk','kk12tc','mmf 5','azur 740a','component fan','aqmini','acoustical rooms','music streamer ii','nf204','t765','psb image t6','no frills','lcr','image t6','preamp jumpers','audioquest type 8','frill','jc2','cleaning brush','media storage','nad viso','rc-r','cambridge 540p','audioquest sub-3','right angle','cr6xclsp','speaker jumpers','psb alpha c1','nad c326bee','salamander twin 20','3 channel','sr 225i','pangea 14','power filters','balanced audio cables','martin logan helos','mini rca cable','musical surroundings','mm-1200','db systems','vpi dust cover','marantz cd 8003','magnum dynalab sr-100','static gun','audioquest mini-1','turntable cable','benchmark dac1 pre','salamander synergy twin','ac-10','rca 90','audio pro supreme','cambridge audio 840c','usb preamp','cleaning solution','audioquest sub-a','stillpoints ess racks','music hall dac 25.2','ipod players','target hs','psb b6','component cable','grado adapter','bcd','iec adapter','motor','kimber silver streak','sonoma','5i','pre-amplifiers','cv4','blueray','bi-wire speaker cable','sirius','thiel powerpoint 1.2','strip','billy','marantz sr8002','saafv48','cardas clear','analog tuners','audioquest splitter','audioquest g snake','wildcat','sonata ar30','kimber mini','adhesive','cambridge azur 340r','cambridge 340c cd','audioquest hdmi 1','shield','ps audio jewel','psb gb1','t747','m3','svdo','berlin','salamander synergy triple 30','bi-wire cables','multi channel amplifier','psb b15','grado black','benz micro','tube integrated amplifiers','grado sr80i headphones','mm mc','inner sleeve','right angle hdmi','cambridge cd','energy rc-70','2125','psb image b6','hampton','sanus tv stand','tonik','mmf 2.2','speaker bracket','pm25','grado sr60','silver','azur 640p','vibrapod cones','dvd-a','pm33','cambridge audio azur 840c','compact stereo amplifier','aqf2f','dynalab st-2','descent','clearaudio emotion','center','encore tf','audioquest mini toslink adapter','cd dvd players','musical fidelity cd','hifi systems','ceiling','cartridge alignment','tacs24se','twin 40','ps audio noise harvester','kimber hdmi','t737','cambridge audio s30','grado sr80i','cambridge dvd-99','2.2','alpha t1','hdtv antenna','purity','wall shelf','audioquest slate','rega mini','cambridge 840w','cross','cambridge one','aqflx14 4 125','iphone speakers','sanus ultimate','nrg1','1394','audioquest vdm','anhdmi','cambridge audio 650c','sma5','synergy triple','audioquest copperhead','system','scout','jc 1','psb c1','headphone dac','snxjrcha','nakps','martinlogan preface','stereophile','analog to usb','cambridge 340c','kimber hero xlr','kcag','benchmark hdr','motif','pangea audio ac-14','clearaudio ambient','musical fidelity v-lps mm mc phono stage','classic','audioquest gibraltar','ps audio digital link','cambridge s20','as-iw6','nad av receivers','palladian','parasound fan','yiq5','kimber kable silver','tv mounting bracket','hunt brush','cambridge integrated amps','salamander sonoma 221','cardas ipod','cambridge s30 bookshelf speakers','large isonode feet','cd playe','dv30','tv mount','psb subseries 5i','image b5','zpre2','vincent 236','parasound jc1','psb t tower','557','cardas interconnect','565bee','sms','hd-24l','550 supercharger','creek amplifier','nad t-765','martin logan vista','marantz 8002','bp 26','audioquest yiq','opt-1','td-240','silver audio','pike','esoteric','cambridge 840c','thiel cs1.6','ps audio perfectwave','p mount','dvd cd storage','hd 800','nad t535','cambridge 650c','classic four','image x5','imagine t','power plant premier','tube phono preamp','hd-650','16.5','power port premier','pm 5003','benz','martin logan purity','ca540rv3','aqdi','vipho8','cr300b','b100','visat8','cambridge ar30','kkton','visa96','sr 8002','aqniag','bryston b100','kkti','weighted base','thiel ss1','xlr caps','wave','5004','3 outlet','vlps','grado cartridge','salamander svdo','nht 3','sa-31','8003','cambridge amp','psb image s5','225i','sanus afa rack','bda 1','media drawer','540r','audioquest g-snake','parasound classic','mp3 headphones','energy stand','blutack','cambridge audio sonata ar 30','1 4 to 1 8 adapter','ph25.2','sanus efab','saafa','synergy twin 30','audioquest cv4','nht classic','magnum dynalab st-2','sssup blk','v can','pspwac5','monitor speakers','female to male rca','cs2.4se','psb b-25','bdp-83','optilink-a','sp331','crtwsp','efas mkii','thiel scs4','sidewinder','halo a21','vf5023','scrcs','av8003','226','ss1','a25.2','2.1','shandling','lamp','rcr','psb sub series','toslink optical','ls 300','feickert','sanus efas','nam3','nht verve v woofer','x5','cardas 8x crosslink speaker cable','kkopt','optimum 12','aqnrg5nf','kimber 4vs','perfectwave','vevdr','340r','imagine b','woodbrook','g snake','salamander spike','bryston bp26','godar fm1a','clearaudio emotion cmb','pikes peak','cardas sennheiser cable','matrix','rc50','tack','cambridge 550a','cambridge 540r','bracket','4vs','ac 9','t-737','psb imagine c','grado blue','3.5','female rca to male xlr adapter','elys','ca340r','2.2le','thiel cs2.4','b4','cable tester','ar-30','shanling mc','rega motor','sanus efab mkii amp floor stand','nad t955','phonomena','vinyl cleaning fluids','cardas lightning','pre amplifier','7.1','napp2','class a amplifiers','t-747','md 209','iw3','crfrcmxl','godar fm-1a','nad 545bee','glass','stylus pressure','audioquest black mamba ii','sr325','c4','vincent sa31','650c','nad c565bee cd player','leopard','nad t 785 hd','cardas 300b','nad pp 3','kk4vs','coffee table','stereo','musical fidelity 550k','jumper wire','9b','clear oval','madrid 7022','kimber gq-mini','vincent sa31mk','performance','usb streamer','blu ray sacd','sp-331','nad pp 2','test record','salamander s20','center speaker mount','nad c355bee','vpi 16.5','psb alpha clr1','sp 331','clprebub','psb sub series 1','michael fremer','psb image b15','psduet','cambridge sonata ar 30','bd7004','nad c-326bee','nht verve','ac-12','network player','star quad','salamander archetype 5.0','nad dvd','v 60','72v dbs','analog','rb300','salamander triple 30','halo p7','energy rc-50','tube integrated','pangea ac9','bryston 2b','musical fidelity v','cd shelve','stillpoints ess','550t','nad c 725bee','martin logan stage','bryston power amp','classic twelve','klipsch image s4i','28b','software','cv-4','a-25.2 music hall','automatic turntables','martinlogan encore','sanus afv48b','k701','parasound halo p3','psb loudspeaker','cambridge 840c cd player','paha23','nad t 737','nr 1501','db protractor','sirocco','power connectors','speaker package','nad pp-2','psb c60','cardas spade','efas','nad universal','mfvlps','music hall ph25.2','sa 31','hdmig','synergy media drawer','salamander 30','equipment racks','salamander dark cherry','velodyne sms 1','parasound halo jc 1','nad pp','martinlogan dynamo','nano','nad t 577','vta','obh-22','grado prestige','record cleaner machines','s20 door','rega tonearm','female rca','headphone dac amplifier','synergy wheel','nht classic 2','sirius tuner','6 channel','cambridge audio ipod','audioquest yiq-1','hd 280','bookshelf speaker stands','quad 30','stereo speakers','subwoofer amplifier','sintron cable tester','platform','cardas rca','bryston 7b','phono preamp with usb','shanling mc3000','fiber','cdplayer','sanus frame','sanus ultimate foundations speaker stands','noise filter','vdr','audioquest yiq-x','cambridge 650t','cardas double banana','halo a 23','cardas component','650a','damping','cambridge blu-ray','furman elite','c725bee','energy rc 50','audio-technica','kimber tos','veritas 2.1','wi fi','sanf','nad 326bee','video stand','pbimb15 pblk','p3-24','synergy twin','cw26','visa31mk','marantz sr6004','super sub','grgcush','martin logan sub woofer','visio','sanus sf26','turntable isolation','cambridge audio 340a','tv cabinets','synergy 40','mc-30','hrt+','bryston 6b sst2','kimber 8','cs2.4','energy center channel','on sale','synergy 30','music system','stylus tracking gauge','psb c-40','parasound halo a21','bryston b-60','side panel','pangea audio hd-24l','x10','audioquest nrg 1.5','gq','notepad','epos stand','ortofon om5e','stereo power amps','3 shelf','785','tv wall mount','demagnetizer','nad c565bee','parasound halo jc 2','sl pm b','nrg-1.5','psb-image t55','nhtac','cambridge audio 540p','6b','5125','mcs1','s pdif','cltracrec','audiophile','halo jc 1','nitty gritty replacement','ls 50','marantz amplifiers','nad c 315bee','rega elys','psb image c60','benz ace','in-ceiling','ps power port','musical fidelity\'s a1008','efav-mkii','t-765','strobe','image c4','esl3','z-amp','parasound halo p7','model 2125','14b','pangea audio ac-9 power cable','m6cd','vincent cd-s6','cambridge audio s 30','24 stands','martinlogan encore tf','audioquest dvi','coupler','music hall cd player','is301','streamer+','nad t 587 blu-ray player','klipsch image','rubber ball','bookshelf stand','nad-pp-3','vertias','monoblock amp','nad 587','7b','parasound a52','salamander cherry','cv-8','mini-5','nad home theater receiver','small','psb image towers','lowboy','psb alpha b-1','corner tv','cd usb','type-4','cmv-44','sennheiser wireless','cv8','mmf 2.1','energy veritas stands','ca840e','350','visionmount','aqrca90','nad c 275','nad t 587','d 60','analysis plus hdmi','wireless transmitter','subseries','nht s-20','nad 535','psb g design','cambridge audio dvd89','smsnc20','a-23','oval nine','velodyne mini','pxc 450','parasound halo a23','stylus pressure gauge','atws15','sennheiser replacement cable','magnum dynalab tuner','dvd power cord','nad pp-2 phono stage','rega rb300','bellari vp-130','hdmix','sr 125i','afa','plasma mount','image b15','musical fidelity a1008','pangea audio ac-9','dust','synergy quad 30','sennheiser 595 hd','kimber kable speaker cable','target wall','sanfv249','hybrid integrated','passage','iec cables','hra2','music hall mmf-2.1','kimber kable hero interconnect with xlr\'s','cardas se15','audioquest hdmi g','l 54','mini 5','580','gun','kimber power cord','pangea ac 14','creek destiny integrated','vpi typhoon','ss2','power wall','sanus steel','cd sacd','smartsub','aqhdmix','parasound wall speaker','powerpoint','side','ac power conditioners','salamander 3.0','in ear headphones','4b','cf-bfa','godar antenna','rega p2 upgrade','pangea hdmi cable','parasound c-260','dac25.2','cambridge azur 340c','audioquest 14 4','p200','audioquest power cord','s10','energy veritas v2.3wm','parasound speaker selector','salamander synergy rack','compact amplifier','cambridge audio 550a','psb synchrony two b','sban','audio preamp','mmf 5.1','nrg1.5','sennheiser rs180','music hall dac25.2','sanus nfv249','sanus coffee','music hall mmf-2.2 turntable','marantz sr7002','magazine','mmf-2.2','tv bracket','cherry','ps1000','t1','creek classic','saefabii','steelhead','v.3','bookends','clever clamp','parasound p 7','cambridge 340t am fm tuner','corner cabinet','marantz integrated amplifiers','test dvd','pure 2','sma5 blk','athena wall speakers','salamander twin 30','am-fm tuners','bell\'o','music hall mmf 2.1','snake','type','cd25.2','cambridge audio am fm tuner','creek cd','silver cable','marantz sr 7002','sanus euro audio rack','audioquest nrg-1.5','marantz 6004','subseries 8','mit z','anhdmirb','screen','target turntable shelf','powercord','sr','nad c-565bee','1000','audioquest type','music hall dac25.2 digital-to-analog converter','sr 80i','cambridge audio dac magic','nad c 565bee','azur cd players','nylon brush','iw2','nfav230','bryston 7b sst2','stereo switch','marantz ipod dock','subseries 1','p 7','sanus nfav230','subseries 1 subwoofer','ss20 p','audio hall','cambridge audio receiver','psb imagine system','nad t577','c 355bee','nhtic3','azur 340r','mmf5.1','pbimb6','multichannel amplifier','athena audition','pm 8003','salamander plasma','cardas quadlink 5c','cdayibe','instrument cables','rca y cable','classic 2125','t 800','pm8003','salamander video','solo crystal','nht ic4','5','magnum-dynalab st-2','classic 12','nad-pp3','composite video','marina','nad c425 tuner','powe cables','salamander archetype 3.0','smkstv302','supreme','clearaudio nano','smtv65','7.1 receiver','sanus wall mount','tributaries t1 surge','synergy extension','sanus nf203','audioquest mamba','sas1','sennheiser cord','i-pod speakers','rca cleaner','cardas rca xlr','0144','halo jc2','nad pp2 phono preamp','audioquest hdmi-a','tt50','vincent sa t8','accurate','rega bias 2','smslpm','t-45','pm-8003','audioquest type 4 speaker','psb alpha 1','bd-7004','synergy base','music hall 2.2','aqro88','acrylic platter','turntable clamp','t 175','cambridge audio azur 640c v2','cone point feet','powered loudspeakers','diamondback xlr','irrational but efficacious','6 rca cable','hw16.5','vincent amplifier','azur 550a','azur 550t','super cleaner','arm lift','psb sub 5i','archetype tv','take fps','i pod speakers','perfectwave ac-5','grado reference','synergy tv','parasound sbs','plasma stand','am fm receiver','2.0','sv226','sr-80i','in wall subwoofer','psb image series','nht iws','pp375 phono module','as-f1','pm 25','athena f1','cambridge 30','benz ebony','ckm mse','iec plug','md309','tributaries silver','stroboscope','mm phono board','cardas se','ps audio premier power conditioner','rs2i','benz cartridge','nad m-3','a 9','ps audio xstream','am fm and cd player','ps audio cable','ic cable','digital switcher','toslink digital','tube pre amp','series 9','rega cartridge','cambridge id-50','series 5','c.50','vincent audio cd','nad stereo','break in','diamonback','nad c-315bee','612','cambridge audio dvd99','bryston integrated','parasound rmk','sub supreme','cardas hd600','summit','audioquest t2','c-326bee','iec 90 degree','sanus pillars','md209','record fluid','mdmd102','veritas center','psb center speaker','audioquest firewire','salamander feet','salamander claw feet','in-wall speaker cable','ps 1000','b-100','st 2','masr6004','synergy lock','mini-toslink','power oval','salamander amp','c 1','ac conditioners','cambridge dvd players','cl-3','nht two center','mg head','salamander riser','bdi vista','aesthetix','stand fill','700','0.5m','crli','anti-static gun','cambridge remote','salamander tv stands','creek remote','small speakers','sanfav230','sanfcft','bp-16','sr-125i','3 shelf flat panel tv stand','smdrawer','8sspsp','ps power punch','nht model 3','tube fatman','bryston 3b-sst2','passive subwoofer','nht crossover','marantz 7001','mmf-5.1','pbkim1su','mmf-2.1','planar 3','afab','nad power amp','nht pro','music hall cd25.2','se9','psb stratus','nht iw3','cd s1.1','s-30','compact amps','azur phono','coupling discs','stepup','salamander 40','salamander amp stand','salamander tv40','class a amp','c-425','archetype drawer','audioquest black','a-52','bright star feet','parasound open box','cardas golden presence','turntable wall','aqrca2bnc','amp cables','synergy feet','ps power conditioner','nht ic3','env2.0ri','nad pp-3 digital phono preamplifier','env2.0ri pblk','synchro','clean screen','cambridge audio azur 840a','sub-woofers','ps audio sc','cd mp3','sa-93','pahra3','parasound halo a52','sms1','sanus coffee table','sy fm1','parasound a-51','ca640t','bcd 1','salamander archetype 5.0 five-shelf audio rack','salamander package','energy 12.3','sanus foundations','analysis plus silver oval','psb alpha speakers','sennheiser pxc 450','speaker post','st-2 fm antenna','p mount phono cartridge','pxc300','coupling','connect ipod','ps audio ac-5','taout2.4','nad-pp-2','marantz is301','synchro mate','parasound pre','md 90','nat535','slim tower','ac filter','martinlogan summit','music hall mmf-5.1','marantz av','pbimg','s pdif cable','aqyiq-x','aqbri-3','audioquest ipod','chameleon berlin','ci-9060','smmadrid','nht2','carbon 2','audioquest outlet','archetype 5.0 five-shelf audio rack','acs100','craesebu','audio magic','components cabinet','smksn20','marantz blue ray','nht ceiling','crnric','salamander plasma mount','nac425','tacs3.7','t 515','parasound silver','cambridge 340r 5.1 hdmi av receiver','trdevc','psb center channel','azur 340r 5.1 hdmi av receiver','paintable in-wall','c515','sa-cd player','ps audio radian','parasound controllers');
/* $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);
    }