/* Popular phrases - SAVILLEROWCO - 9:13:31, Thu Sep 2, 2010 */
__SLI_ClientDefaults =
[
['TargetURL', 'http://clothing.savilerowco.com/search?w=']
];
var asPhrases=new Array ('suits','17 collar','16.5','17.5 collar','16.5 clearance','15.5 collar','15','15 clearance','short sleeve shirts','16 clearance','18 collar','15.5 clearance','slim fit shirts','chinos','15.5','16','20','trousers','round collar shirts','double cuff shirts','18.5','round collar','17','15.5 fitted','19','18 clearance','17.5 classic','17.5','linen shirts men','linen','button down collar shirts','18','chino trousers','mens suits','jackets','black shirt','white collar and cuffs','pink shirts','coat','white shirt','20 collar','xxl shirts','blue shirts','linen short sleeve shirts','blazer','pink','xl shirts','slim fit suit','ties','17.5 collar double cuff','16.5 collar','cream shirt','dinner suit','cufflinks','clearance','grey shirts','cotton shirt','xxl','19 collar','poplin shirts','belt','m','double cuff','16 collar','evening shirt','011wht','19.5 shirts','tuxedo','black','polo shirts','16.5 short sleeve','17.5 collar shirts','extra long sleeve shirts','trousers 34','button down collar','suits 48','dressing gowns','chinos pleat front','overcoat','sleeve 2','pleated chino','button down','sizes','17 collar double cuff','15 fitted','gingham','15 collar','pin collar','twill','tie clip','gold label','pin collar shirts','linen shirts','tab collar shirts','linen trousers','16.5 fitted','brown shirt','mens short sleeved shirts','bow ties','handkerchief','green shirt','dinner shirt','knitwear','slim fit shirts 16','xxl short sleeve','bamboo','shorts','linen jacket','oxford shirts','blue shirt white collar','290blu','cashmere','white fitted shirt','15 1 2','xl short sleeve','oxford','363wht','short sleeve fitted shirt','organic','size 18','white collar','long sleeve polos','special stripes','tie','17 1 2','312nbr','point collars','long sleeved polo shirts','316blk','red tie','sweater','17 classic','251wht','orange tie','349pnk','bow tie','309rbg','round','paisley tie','orange','349blu','short sleeve button collar','white short sleeve shirt','tab collar','cummerbund','black suit','pull ons','french cuff','short sleeve shirts xl','19.5','silk ties','seven fold','bengal stripe shirts','gingham shirt','silk','grey suit','white collar and cuffs slim fit','15.5 collar shirt','364wht','shirts','red shirt','grey fancy bengal','bengal','416red','shoes','pink tie','mint','307wht','lilac shirts','201tur','dinner jacket','18.5 collar','fancy bengal','navy pink tie','300','bespoke suit','mohair suits','l','button collar shirts','lilac','short sleeve button down','polo','yellow shirts','white','916blu','16 1 2','349wht','350blu','brogue','dress shirt men','black tie','slim fit shirts 15','special','cord','014wht','288cor','herringbone','skinny ties','348wht','16.5 collar sleeve','44 jacket','returns','boots','size 17 1 2','027wht','gold tie','pinpoint shirt','white cutaway collar','17.5 clearance','business suits','350blw','purple','white classic fit formal shirt','flannel','clearance 17','352nav','linen suit','pin','button down shirts','sports jacket','size 16','cutaway collar fitted shirt','48','white herringbone shirt','red and white shirt','38','314wnb','mti701','shirt and tie sets','stand collar','46','44','evening dress shirts','389pur','cream short sleeve shirt','414mbl','16 short sleeve','yellow','tab','dobby','dress shirt','short sleeve button down collars','317wpk','18 1 2','gift','blue fancy bengal','superfine fitted','short sleeve linen','245wpk','mens knitwear','casual slim fit','classic white shirt','twill shirts','pyjamas','378grn','silk tie','herringbone shirts','navy chinos','011lem','287nav','342wtq','brown','42 jacket','341nat','suit 46','check shirt','cutaway','18 in collar','wov599','tie clip savile row','green stripe','slim fit','42 trousers','350sto','cream','011crm','msh722','216red','short sleeve','7 fold','385bwt','st01bei','short sleeve 17','red','fitted shirts','green ties','353nabmsc','mini check','cutaway collar shirts','black shirt white collar','bespoke fabric sample shirts 17','369pnk','white dobby','365wht','287pnk','mens shorts','315pnk','slim suit','352red','wool coats','dinner','xl','button cuff shirts','double cuff white shirt','350pnwmdc160','tie box','353nabmdc','floral','gold label superfine','flannel trousers','011fblmsc','size 17','351lil','easy iron','white collar and cuff shirts','251lil','womens suits','pinpoint','cord jacket','906blu','mti021blg','378lilmdc160','mens trousers','casual shirts','tan shirt','cardigan','280mbl','353narmsc','mct305','size 15','contrast collars and cuffs','weekend jacket','351gry','black ties','navy shirt','42','paisley ties','green tie','mens white shirt','size 18 shirts','338blu','abstract','15.5 short sleeve','oxford shirts short sleeve','278wht','18 in short sleeve shirts','red striped shirt','silver tie','prince of wales check shirts','368pnk','boxer shorts','red silk tie','mens short trousers','bengal shirts','bengal white collar cuff','grey trousers','floral shirts','superfine','011blu','mti011nab','blue tie','bamboo t shirts','368tur','dress','tie and hankie sets','slim fit shirts 15.5','size 19.5','turquoise tie','button shirt','bespoke short sleeve shirt','clearance xxl','stand-collar','307whtmsc150','384nab','lounge shorts','boxer','marcella','32 trousers','7 fold ties','tailored suits','cream cotton short sleeve','351pbl','pink ties','36','288gry','344blu','purple shirt','tie and cufflinks','277nav','linen shorts','gold label 17','350blk','350pnw','slim fit white shirt','306wht','jackets blazers','mti014blg','blue','16 2','msuit05blk','mens floral shirts','grey ties','organic cotton shirts','tie and hankie','xl lounge trousers','slim fit shirts 17.5','satin stripe','leather belts men','iron','16.5 bespoke','red chino','formal shirts','17.5 short sleeve','bespoke shirts','mens belts','silk tie handkerchief and cufflink gift set','navy','white 16.5','mkw505red','277crm','mti992dpr','288bbl','navy green check short-sleeve casual shirt','144var','17 slim fit','tie pin','black optic tie','352pblmsc150','395wlp','sophia','351rewmdc160','mcl937lil','201plm','chinos men','plain red silk tie','16 fitted clearance','cream twill','vest','skirt','351pnw','201red','gold','pale blue','16 collar fitted','361narmss','mens shirts','377nav','345blkmss','navy seven','black white','button collar','suit jackets','black bengal','16.5 navy','pink cotton shirts','men\'s short sleeve linen shirts','15 formal fitted','380blu','white dobby fine stripe formal shirt','251whtmdc150','white tab collar formal shirt','353pbrmdc','350stw','french blue','classic shirts','mfj221','15 slim fit','285sammdc','mfj217gry','pink fitted shirt','16.5 2','pink shirt white collar and cuffs','343mntmss','276wht','pleated trousers','men\'s cardigan','white ties','blue gingham formal','tie handkerchief','men\'s sweater','16 1 2 clearance','blue suit','216blk','orange boxers','339blu','362wht','oxford button down shirt','mti016nab','superfine 300','285sam','maroon tie','small shirts','15.5 white','navy chalk stripe','mens evening shirts','cotton poplin shirts','200','351grymsc165','blue bengal','underwear','size 20 shirts','taupe','size 15 1 2','turn ups','royal','price','brown trousers','collar size 16','143var','casual short sleeve shirts','trunks','beige short sleeve shirt','tshirt','353wnv','mens blazers','gift box','yellow tie','316lil','size 15 shirts','black trousers','307whtmsc165','grey','black tie shirt','mens polo shirt','352pbl','tailored fit shirts','tall','mfj218','tie set','351liw','mfj220','mid blue twill','black shirt with white collar','l shirt','white collar pink shirt','clip','narrow tie','sophia skirt','two fold','mti983nay','lilac ties','mps612','373bln','235var','mti988nav000','40 waist','white pin collar formal shirt','stripe suit','344red','point','lsc140','gold shirt','mens casual trousers','tab-collar formal shirt','316blu','mct303grn','913blu','mti024red','275crm','323wht','yellow cufflinks','casual trousers','grey shirt white collar and cuff','slim','pink herringbone shirt','011nav','stripe shirt','mdg823','red bengal stripe','poplin','navy white','011fbl','251whtmss','t shirts','casual mens shirts','peach shirt','376yel','fitted short sleeve','15 1 5','red and white check shirt','366wht','296blu','mcl938wgr000','014whtmdc155','st16','poplin point collar','mti984nav000','892var','black navy shirt','blue red tie','clearance size 15','cuff shirts','279yel','352blk','button down short sleeve shirts','376red','mfj214gry','blue pink stripe','cotton','charcoal chalk','cream poplin formal shirt','353pbr','351pnk','16 1 2 shirts','stand','mti017nay','350grw','grey pinstripe suit','paisley shirts','satin stripe formal shirt','mti008reb','360nrtmss','check suit','mct301nav','mti994nay','paisley','mps613apw','mens linen short sleeved','mti009','7 fold tie','mft414gry','blue and white stripe shirt','stripe tie','mhk902','mft421','sleepwear','red grey','18 1','19 neck','short sleeve check shirts','floral silk','blue white pinpoint','pink white pin','purple mini','15.5 clearance formal','navy white paisley','xl clearance','blue white stripe pinpoint','fine stripe','cufflinks shirt','yellow ties','371cor','cord trousers','38 short','901blu','3 button suits','belt sizes','slim tie','287red','mti987pur','383nab','orange ties','mti024tur','oxford cotton','business trousers','charcoal suits','casual jackets','353pbrmsc','cotton sports jacket','charcoal grey','262wht','msuit18nav','pink check boxer shorts','ties with spots','352pur','slim fit shirts 16.5','351mbu','lemon','white fitted','mti010orb','end-on-end','gift set','white satin stripe','summer suits','226blw','red stripe','912blu','red end on end','women white shirt','305bpk','011whtmdc','shirt 16','014pnk','284bpk','mti988nav','fitted suits','mti009kng000','red bespoke','mti943bly','32','276blu','mti017gry','316pnk','244pnk','ts13blk','325blg','mti958nav','cream short sleeve','grey oxford','lilac woven silk tie','16.5 lilac end','extreme cutaway collar shirt','gold label shirt','18 shirt white','318nav','mct305lts','skinny tie','royal blue','fleur de lys tie','2 pocket shirts','buttondown collar','white tab collar shirt','245wpkmdc','12','green','box','fitted','011lil','349nav','mfj220gry','mohair','micro check','mfj221blk','350blwmdc','358blu','16.5 superfine','white collar white double cuff','919blu','353libmdc','17 pink','satin shirt','mti015','bespoke fabric','348whtmdc165','mohair trousers','dark grey shirt','mens dinner suits','mpj823blu','navy ties','double two','15 extra long sleeve','300ngr','52','351lilmsc','cashmere mens','50','15 shirt fitted','red pinpoint','red formal shirt','navy suit','shirts 17.5','satin shirt men','mct303','361nawmss','evening','navy tie','367gry','mfj211','blue hairline stripe','short sleeve fitted white shirt','single cuff shirts','251whtmdc165','cotton oxford shirts','mbu802','350stwmdc','short sleeved shirts 16.5','212var','297pet','351liwmdc','285sammsc','350pnkmsc','011lilmdc','prince','afterwork','flower','011navmdc','280pblmss','long sleeve shirts','mti995reb','leather belts','382nar','mbu801','turquoise shirts','end on end','washed oxford shirt','19 white shirts','superfine 200','cotton twill','822var','mjs801','mti024bpk','two pocket shirts','blue short sleeved mens shirts','859var','organic xxl shirt','mti010mbg','mft420','brown suits','mct304tau','bow','lsc127','279red','mti010pkb','2 mens shirt','351red','218var','381blr','white twill shirts','fleur de lys pure silk tie','shirt 16.5','356blumsc','357mbl','216blu','white stand collar fitted shirt','silver ties','black fancy bengal','15 mens slim fit shirts','409var','black hairline stripe','blue button collar','378lil','383nar','915blu','suit trouser','358org','381grn','353bly','278blu','polo shirt xl','mfj217','357mblmss','011pnk','mens fitted shirts','346crb','navy turquoise multi check button down','mct301','lsc116','mft410','grey tie','358yelmsc','902wht','brushed cotton','lsc116blu012','mti016nar','lsc136','147var','mls820blulge','lsc141','back box pleat','white collar and cuffs 15.5','lsc137','356blu','17 twill','women shirts','tailored','mps612oce','mps613naw','272nav','blue yellow striped shirts','navy orange','pink shirts short sleeves','359natmsc','mft405','printed shirts','msh716brn','tank top','011whtmss','296wht','french blue short sleeves shirt','359nat','designer suits','mid blue','285pur','mens boots','navy pinstripe classic suit','mpj823','blue yellow tie','mti966nar','white twill formal','black reverse','white long sleeve shirt','mft408brn','361naw','navy woven silk tie','mfj208brn','302pnkmss','lilac navy check','349navmsc','201nav','346crbmss','mps613rew','white oxford shirt','16 bespoke','bespoke','msh719blk','mens black suit','15.5 bespoke','mti992brd','350pnwmdc','909blu','long sleeve','mct302cho','mti992gry','11','xl boxer','pinstripe trousers','351rewmdc','mft418','white linen','pocket handkerchiefs','purple stripe','flat front','gown','mps612blk','360nrtmsc','mtg901sil','hairline','chalk stripe suit','285gry','353nab','mens black shirt','gold handkerchief','819var','msh715blk','blue stripe shirt','mps612 apl','16 in','383napmsc155','350blkmsc','280blumss','black and white stripe','mens linen trousers','double button collar','marcella shirt','355wbl','cotton cashmere','903blu','011crmmss','short trousers','pinstripe','grey bengal','mens pink shirt','351mbumsc','222var','mens sweaters','881var','lsc116blu','size xl','hair','st13','15.5 shirts','353nar','small','collar','mps613puw','pink cufflink','blue ties','pink twill','10','367grymss','reverse bengal','lounge trousers','361narmsc','343mnt','353lib','350gry','349rob','knitted','winter jacket','msh716','341natmsc','353narmdc','short sleeved lilac shirt','mti992','pinstripe suit','34 leg','red cardigan','mps612nav','272navmsc','361nawmsc','mti009kng','lemon shirts','911blu','white linen shirt','tan','navy birdseye','white windsor collar','dobby white shirt','18 in','360nrt','379blu','navy fancy bengal','350nav','mfj213','bespoke 17','cream slim fit','17 herringbone','17 bengal','344blumss','women','mens linen suit','907blu','319blu','mfj208nav','359natmss','prince of wales shirts','251blumdc','white bespoke fabric sample shirts','studs','mps611','mens blue shirts','mini paisley tie','349blumdc','mct302','lounge pants','navy dobby','white pink stripe','375blu','shirts with pocket','904blu','mfj211nav','mens white evening shirts','mfj219','343blumss','classic plain shirts','340bln','short sleeve shirts 18.5','349whtmsc','278whtmss','352navmss','bright pink tie','mbe904blk','msh715','30','011pnkmss','mct304grn','350navmsc','skinny black tie','mcl938nay','mtc911lil','lfj304','pink herringbone bespoke','peach herringbone','green bespoke','325varmss160','mls819nav','cuff','mfj213nav','sky blue','905ngr','navy blazer','flower shirt','370pnk','353wnvmsc','poplin round','white cotton shirt','bold stripe','v neck','dark blue shirt','navy blue trouser','button down blue shirt','mbe901','351pblmsc180','15 collar hairline','251whtmdc170','dashing','white shirt 17','344redmss','mcl938','mbu801gry','mct305cor','201yel','325varmss','014crm','shirts 19','black belt','mfj215brn','mkw505stn','280mblmscmed','mhk903','brown jacket','white stripe','908blu','orange check','short sleeve cotton lawn','oxford short sleeve','350pnk','352blkmss','mens linen','red formal','358blumsc','349pnkmsc','353blymsc','msh722brn','blue organic cotton poplin','280mblmss','279redmss','short sleeve formal shirts','lilac white collar','charcoal','skinny silk tie','bespoke fabric boxer','mbe904brn','350stomsc','mens cream ties','stone suit','casual mens jackets','366whtmss','701var','msh717blk','loose weave short sleeved','285blu','mps612mgo','351rew','working cuffs','white bespoke','mft417gry','silk hankies','classic pinstripe suit','16 1 2 bespoke fabric','classic ties','20 shirts','342wtqmsc','woven silk tie','mti992roy','mti966','blue twill shirt','dark purple','mti023wbn','pink bengal','blue green stripe cutaway','light blue linen','fancy','fleur','polo xxl','mps613skw','shirt with tie','376blu','bamboo shirt','lounge','mhk902hgr','mti017blr','peach','297org','378cer','358orgmss','su02wht','34','17.5 2','polo shirts xxl','mcl936','833var','purple skinny tie','297petmdc','890var','mct306','349navmdc','grey stripe shirt','mkw505gry','msh719','stripe','navy turquoise','cream fitted','mjp802','011fblmdc','embroidery','349pnkmdc','302blumss','mens jackets','dobby shirts','358yelmss','011blumsc','monk shoe','white dobby broad','011lilmss','mti986','washed chinos','mct302nav','251blumsc','white satin','blue pink','red bengal','msh717','wales','dobby fitted','accessories','351pblmsc150','mft419nav','hemmed trouser','340blnmss','brown short sleeve shirt','352purmss','011blumdc','760var','wool trousers','bib','341natmss','mft420gry','red white stripe','black dobby','pin shirt','casual organics','slim fit formal shirt','347crtmss','purple silk tie','pique polo','mct306lts','370pnkmdc165','251whtmdc','15 pink','351varmss','casual shirt xl','342wtqmss','white button down','mti016pkl','352pblmss','357mblmsc','sleeve 1','278whtmsc','365whtmsc160','friend','307whtmsc160','white smart linen shirt','pink white pin spot silk tie','hanky','mti017','white dobby broad stripe','mti984nav','pointed collar shirts','olive','mcl938gld','288cormsc','mct302lsd','361nar','fitted white tab collar','green pique polo shirt','navy red diagonal stripe','navy yellow sunray','navy turquoise multi check','901wht','351mbwmdc','sj03','mti013lim','black jacket','bespoke fabric sample shirt 16 1 2','871var','sleeveless sweater','slimfit suits','868varmsc165','314wnpmsc170','white pin collar','18 short sleeve','spot','mti701red','skinny','mps611jef','353wnvmdc','pink herringbone','ts20gry','woven','pink silk tie','mens brown suits','mens shirts button down collars','40','280beimss','check shirt double cuff','mdg830','251whtmsc155','pink dobby','280blu','white twill','white cuffs','16 fitted','blue satin stripe shirt','279blu','mct301lsd','white dress shirt','350grymsc','mfj218nav','short sleeve bespoke','mti987blu','slim fit suit jacket','beige','navy stripe','pleated shirt','340nmpmss','su02','251lilmss','278whtmsc160','bespoke fabric sample shirt','18 shirt','38 trousers','cotton jackets','mti987','wine shirt','154var','mint green tie','mens tab collar shirts','turquoise bengal','blue cutaway','navy trousers','soft touch short sleeved shirts','navy classic trousers','16 blue','white poplin formal shirt','blue dobby','868var','mft413nav','mft418nav','mts606','2 button collar','mti024emr','fitted end on end','845var','micro','white button down shirt','358yel','skinny fit','mfj219nav','lsc136ebu','pink yellow stripe','marcella bib','striped boxers','wide herringbone shirt','yellow formal shirt','navy stripe short sleeve linen shirt','19 1 2','mfj209nav','pale blue stripe','mfj208gry','mkw505','french blue shirts','011blumss','slim fit grey suit','short sleeve 15 1 2','mti012bly','mti701blw','mti958hgr000','mti016pkl000','mens ties','mti024','364whtmsc','mti958pur','306varmss170','18 collar button down','fitted trousers','mens short sleeved checked shirts','mens white contrast collar','msh720tan','15 cutaway collar','280pbl','249grn','cerise pink','classic trousers','914blu','011navmsc','011crmmsc','hipster','011navmss','pink 16.5','747varmsc160','lsc127red','mfj219nav42r','blue bespoke boxer','white collar shirts','mft419','shirt 15 collar','350blwmdc160','251blumss','bright green','check trousers','brown check shirts','mti012','top','pink poplin','navy formal shirt','french blue poplin','gbbuy02','royal blue shirts','pink end on end','mti701nar','279nav','plum','sky blue tie','yellow check','cerise','mti996','mti958bpk','825var','purple mini check','white short sleeve','350grwmdc','mti990wbl','white collar point','lilac end-on-end cutaway collar fitted shirt','mlp831','pink stripe shirt','mlp832','mti009dlc','multi stripe ties','mti016nab000','classic bespoke shirts','280pblmsslge','pink silk ties','mlp831nvb','help','slim fit cutaway','organic cotton','mft403','classic dobby','pjs','mps611jes','315sky','mps612wht','wov597','279blumss','bright pink','mens','dark taupe','mti024pnk','mti013org000','mkw504grn','blue poplin shirt','mti958','brown check','17 casual','fitted 16 2','black dinner','tab-collar','mkw504','oxford weave','mct301cho','797var','mti998','mti701nav','spotted tie','blue polo shirt','277pnk','mps612apl','mti701sky','su01sky','mcs301nav038','351lilmsc160','ts13','birdseye','201pnk','mfj215','mfj205nav','mpj829bln','mcj101nav','350blumsc','navy jacket','213var','349whtmdc','mkw505grn','mti011naf','mti992sky','men\'s braided belt','grey double cuff','mtc911gld','oxford shoes','352pblmsc','mdg818blu','mfj108nav','mens collar pin shirts','pink white collar','mcj101cho','tartan shorts','mens skinny narrow ties','key ring','mti992lil','grey skinny tie','clearance knitwear','cotton lawn','914blumdc','blue poplin','288wht','pleated','331wht','shirt 17','sleeveless','formal','green check short sleeve shirt','satin tie','stone linen trousers','bespoke boxer','mdg818','leather shoes','17 2','m shirts','cotton short sleeved shirts','tartan pj trousers','15 gold label','300ngrmss','mti025blw','l linen','short 18','womens t shirts','mti988','grey pinstripe','sharkskin suits','9.5','mft415','grey business suit','pink mens','315wht','mti018','slim fit trousers','362whtmdc160','red check shirt','cotton trousers','mti017reg','navy special stripe formal shirt','blue navy stripe point collar classic shirt','key','pj shorts','16 classic formal','mens turquoise shirt','blue pink boxers','280mblmsc','278fbl','red short sleeved shirts','red shirt white collar','16 formal classic fit shirts','st50','mbe902blb','menswear','mhk903nav','blue chino','mhk904nab','casual white','white polo','277navmsc160','36 suit','silver grey','mkw504red','304blu','287gry','pink slim fit shirt','804var','314wnp','mfj208','svp9nav','246grd','mpj819pbl','grey double cuff shirt','mti958blk','sg02nav','mdg819pbl','single pleat trousers','crease-resistant','343blu','368turmdc160','mft408','343varmss','fine herringbone','tobacco linen trousers','navy pinstrip suit','blue button down','mls831nvb','011blumdc165','856var','navy blue stripe','white turquoise stripe shirt','011lemmdc','mti024org','mti017res','pink hairlin','navy skinny tie','chalk stripe','mts606mar','027tur','crew neck','pink classic shirt with white collar','338wht','msuit26','mps613','mti011','blue oxford','mlp819','lct401bwp','mens cotton trousers','mti008nav','884var','sc15','251lilmdc','mfj209','231var','285grymsc','red gingham shirt','tonal','mhk902bpk','mens sports jackets','331varmss','18 2','mls833','grey fitted','mft415brn','mti021','mps609mal','344redmss160','sport','359var','cotton shorts','smart casual shirt','superfine 300 classic-fit formal shirt','330blu','green and white','braided belt','279blumsslge','mens long sleeve polo','mps611jonlge','304blumss','blue short sleeve','wine red bengal shirt','st10nar','shirts with buttoned collars','xb07brn','mens suit italian wool','green skinny tie','347varmss','150var','pink stripe','mdg830gwb','316blumdc155','mti978crm','table check','mti011reb000','men lilac','345varmss','tan brogue','mct304','mens slim fit suits','874var','301ngr','st23cha','mft402nav','st16nav','204dcblk','mft414','msuit26nav','351pnwmdc160','lct401nav','striped button down collar','summer jacket','mps609mallge','stripe pique polo shirt','summer shirt','mens white collar and cuffs','mfj210','striped trouser','male linen short sleeve shirts','size 40','351pnkmsc','blue yellow stripe','216var','011crmmdc','mti958roy','216redmdc175','chain','371cormdc','cream 15 1 2','mpj834','301ngrmsslge','332var','297orgmdc16','mkw506','sj03sto','mft413','sharkskin','wool blazer','299tarmss','246blu','110var','mhk904','350blwmd','mkw507red','mps602pnw','lft503nvy','mps602','purple polo','lfs506','317wpkmdc175','msh711','353libmsc','red shirt fitted','white button down collar','mti998nap','msh713','petrol','mti984','lilac hairline','navy poplin','line','bamboo hipster','339varmss160','297orgmss160','337varmss165','291blu','blue satin stripe','mti014','stone dobby','cream pants','crew neck t shirt mens','295nav','mti702nab','369blu','grey silk tie','415varmss','251pbl','mti998nap000','mps611jeflge','279navmss','grey textured shirt','msh718brn','navy pinstripe trousers','318navmsc155','st18','219var','289blu','tobacco trousers','white blue check bespoke fabric sample shirt','836var','011lemmsc','297petmdc165','241grnmss','mti961blu','pleat dinner shirt','mcl936grn','twill trousers','299tar','mlp832nvo','mti010gnb','luxury linen','bespoke dobby','stripe formal shirt 17.5','tab shirts','lss161pnk','277wht','mens silk white shirt','ldc128blu','pink white','formal short sleeve','black leather oxford lace up shoe','stripe shirt with white collar','285grymdc165','228npb','mens slim trousers','mls831','mpj829','st01','white bespoke shirts','pinstripe jackets','silk tie spot','dressing-gown','820var','350bwtmdc165','st19olv','148var','navy poplin formal','button long sleeve','347crtmss160','241grn','blue herringbone','251lilmsc','gingham tie','011lilmsc','navy white pique','mps608yew','mcl921','jade shirt','cats eye','mcl937red','slimfit suit jacket','sj03stomed','351pblmsc','mft408gry','crest cufflink','mcl925','long point','red herringbone','303yelmss','295navmsc175','blue bespoke shirt','lilac tab','273wbl','286purmss','men turn up','303yel','mens polos','diagonal tie','fitted dinner shirts','mft417gry030','mcl938nar','mfj202','405varmss','mbt710tan','288bblmss','mti986sky','ts23','286pnk','282nav','348whtmdc180','blue silk tie','286purmsc150','xb04nav','pique','211var','light blue twill shirt','226var','special offers','pinstripe suit trousers','297orgmss','pink shirt white cuff','lss133pnk','mpj818','woven silk tie pink','classic 18 collar','twill blue','black boxer','207var','277navmsc170','mkw506grn','blue tab collar','353narmdc165','lounge trousers l','lsc128','blue tab collar shirt','silk tie paisley','sky','810var','217var','322var','classic short sleeve','285grymsc165','904red','mdx180','stripe short','mens short sleeve fitted shirt','142var','156var','three button suit','mcl937','black and white tie','275lilmdc','red white blue stripe','mtc911sky','402varmss','350grwmdc160','navy check','mft419nav032','silk tie flower','317wblm','red stripe tie','grey suit jacket','navy fancy bengal with white collar and cuff formal shirt','mti702reb000','223var','beige chino','lss116blu','weekend','893var','navy italian flannel trousers','353blymdc160','bespoke fabric shirt white','bespoke fabric shirts','slim fit men\'s shirts','white satin stripe formal shirt','white underwear','bespoke sample shirt','su01nav','ldc128','340varmss','330varmss','su01blk','294blu','pink shirt 15 collar','027turmsc155','mbo595','011crmmsc155','96blu','shoe 9.5','mfj201','micro gingham','stripe classic shirt','bespoke fabric boxer shorts','classic collar short sleeve shirts','mti016blk000','white pinpoint','grey tab collar shirt','350nawmdc165','764var','mfj202nav44r','296pnk','green floral','mens short sleeve fitted','beige flat front chinos','330blumdc160','349robmdc','774var','royal blue stripe','18 white','men\'s slim fit suit jackets','black bamboo','726var','mti008','mfj108','858var','828var','135var','848var','775var','736var','788var','705var','841var','772var','850var','white 17 1 2 1','818var','249grnmsc155','130var','800var','navy pique polo shirt','bespoke fabric 16.5','red tartan shirts','lsc120','bespoke maroon','red weave bespoke','376redmsc165','white button collar','mjs801nav','lsc131wht','bones','navy white check','navy italian wool flannel trousers','narrow collar','829var','244grn','self bow tie','812var','navy red check button down','904var','silk tie spot yellow','mts606red','335var','mcl933','mps602bnw','pale blue white collar','navy white stripe superfine 300 classic-fit','900var','pink dobby classic','314wnpmsc175','349robmsc175','brown blue','763var','789var','cotton twill trousers','01wht','narrow stripe classic','mcs301','mens sleepwear','405var','419varmss','313blr','round blue','mbs805nav','micro orange','mens tailored fit','grey classic tie','st14nav','light blue check','pink white bold stripe women\'s shirt','sj06gyb','412var','women\'s white shirts','401var','746var','red blue green stripe','st19','899var','715var','mens slim fit white shirt','white red check','black cutaway','411varmss','308blumdc155','grey mohair stripe','311blu','grey mohair trousers','306varmss','blue woven silk tie','red woven silk tie','mens rounded collar fitted shirt','check lounge shorts','bespoke sample shirt 17','blue on cream spot abstract fitted printed shirt','pink satin stripe','281blu','mpj827','710var','869var','navy red','woven check','bengal red stripe shirt','dot','mti958sky','blue red stripe','mti966blw000','812varmsc160','904redmdc165','369blumdc165','mti966nar000','353pbrmdc165','014mntmdc165','350pnwmdc165','msh721blk','stripe bengal classic shirt','763varmsc155','black bespoke fabric','msh720','sj06','pink striped tie','mfj216bwj','mps608','249gry','lilac end','chalk','837var','mbs824','045lem','242bgymss','mcl931sil000','311blumdc','navy satin','844var','286sky','navy pink spotted','mens overcoats','293blu','320wht','silver grey tie','vanilla','mti988rpb','027whtmdc','765var','313blrmsc','298nav','251pblmss','fleur de','pale blue button down casual shirt','blk012','282blu','blue bespoke','navy flat front chinos','monk','mti983nar','027whtmdc165','281wyb','314wlnmdc','139var','blue black stripe shirt','293blumsc160','men\'s stripe shirt blue','mbs284blu','mti983','green pique polo','mti015pnk','321wht','mti966nag','855var','mbe904','navy pale blue houndstooth woven silk tie','027nav','903var','mps607pnk','404varmss','233pnk','242grn','st19nav','806var','mpj818blu','lss116','883var','286pnkmss','mti993ren','mlp824','black leather belt','lts701blu','lsc126wht','136var','008nav','302pnk','249blu','su01wht','mti990nar','292blu','mpj826','222blu','women\'s turquoise shirt','290blumsc160','mps611eri','mcl925pnk','298navmss','288grymss','mfj210chr','994pub','st23','blue polo','red bengal stripe classic shirt','281wbr','45scbny','mens round collar shirt','red handkerchief','mlp822','201grn','282pnkmsc165','mlp820','mls819','mdg824','286yel','mdg819','302blu','mcl930','mcl925tur','men\'s dressing gown','tank','749var','706var','817var','304var','bespoke grey 16','mti986red','mts607blk','mti958brd','851var','895var','white 19','898var','997grn','308blumsc155','grey mohair stripe two-button suit jacket','877var','725var','241beimss','mbt708brn','16 navy','864var','red pure silk tie','862var','889var','756var','mts606lem','761var','bespoke shirt size 15','blue classic','301varmss','lct401bei','854var','766var','317wblmsc155','281blumdc160','798var','863var','mti958nav000','bespoke shirt size 16.5','grey classic shirt','mbu801blk','sj03blk','st18blk','mtt904wod','794var','834var','282blumdc','861var','svp9','pink red','ts15gry','mpj811grn','mti927whb','mfj203nav','mfj216','776var');
/* $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);
    }