/* Popular phrases - HEARTRATEMONITORSUSA - 13:34:47, Fri Nov 20, 2009 */
var asPhrases=new Array ('omron','sportline','omron pedometer','f11','f6','polar f6','polar f11','wearlink','polar chest strap','ft60','f7','polar','ft40','ft4','pedometer','rs100','strapless heart rate monitors','t31','fs2c','ft80','f4','ft7','strapless continuous heart monitor','garmin','polar rs300','2000','f55','310xt','fr60','polar rs300x','rs400','rs300x','polar f7','womens heart rate monitor','lifesource','fs2','chest strap','epulse','calorie counting watches','310','polar fa20','thermobak','continuous heart rate monitor','garmin 310xt','garmin 305','330','rs800cx','omron blood pressure monitors','polar f4','340','garmin 405','chest transmitter','polar 300','405','heart rate monitor','pedometer watch','polar 300x','continuous strapless heart rate monitors','water bottles','batteries','305','blood pressure cuff','women','garmin forerunner 305','318','watches','replacement strap','polar rs100','garmin heart rate strap','rs300','replacement chest strap','polar rs400','rs800','polar heart rate monitor','camelbak','garmin forerunner 405','112','replacement cuff','711','polar ft60','7003','flowlink','polar ft80','907','03','dmc-03','fa20','cs300','polar t34','780','fs3c','cs200','heart rate monitors without chest strap','polar rs800cx','fs1','garmin fr60w','polar fs2','omron replacement cuff','dmc','forerunner','polar rs 300x','hem711','garmin foot pod','suunto','strapless','strap','fs3','sportline solo 960','leash','cs600','mio','numetrex','789','405cx','mule','polar replacement elastic strap','hem-712c','omron 711','960','polar foot pod','garmin 405cx','120','ua-767','hem-711','polar f55','cs600x','talking pedometer','polar t31','omron cuff','womens polar','forerunner 405','800cx','garmin strap','polar cs300','rs 800 cx','711ac','foot pod','polar rs800cx pro team edition','705','polar ft4','polar wearlink','transmitter','bra','garmin footpod','ambush','mens polar','body fat calipers','wrist blood pressure monitors','polar strap','sportline 340','large cuffs','equine','t34','f 6','omron hem780','ft 40','replacement elastic strap polar f6','968','151','cuff','dmc03','pe318','s1','sportline 330','345','712','kids','polar rs800','hem-790it','800','polar f4 heart rate monitor','s625x','rs 800 cx pte','ft 60','heart rate','sm2000','s725x','polar ft7','polar fs2c','camelbak cap','forerunner 305','digiwalker','790it','pocket pedometer','waterproof heart monitor','712c','hj112','heart rate monitor no chest strap','irda','300','wearlink strap','polars for men','pedometer strap','306','strapless heart monitors','polar f7f','t31 strap','303','650','7300','200','900','bfm','watch band','sport','5k','705cp','strapless heart rate monitor pedometer','t31 coded chest transmitter','garmin forerunner 310xt','hem712c','accelerometer','gps','ua 767','rs300x g1','ft80g1','seca 242','camelbak thermal control kit','wearlink transmitter','polar f 11','omron hj-112 pocket pedometer','polar ft40','773','garmin forerunner 310','wrist monitor','talon','radio','t31 coded','720','heart rate monitor strap','manual blood pressure monitor','talking','344','cs100','blood pressure monitor','coded transmitter','tritan kids','s2xl','polar f6 heart rate monitor','omron pocket pedometer','rs 300x','seca 216','continuous','heart rate monitor watch','camelbak replacement cap','790','womens strapless heart rate monitor','767','omron hem-780','garmin forerunner','stopwatches','body fat','f1','ua-787','garmin replacement straps','sportline 350','garmin forerunner 405cx','garmin 310 xt','octane','hawg','sm-2000','swimming monitor','rs 100','ft 80','strapless heart monitor watch','running','rs800g3','omron hem-790it','h-cr17','cs400','straw','garmin 705','388','camelbak water bottles','rain gauge','cs100b','s3','cr17','women\'s polar f6','polar cs200','calipers','hem 711','polar ft80g1','safety leash','polar equine','infrared','e-pulse','garmin fr60','polar f7m','womens f7','polar transmitter','625','racebak','bp-7003','promotions','hem-907xl','g3','polar heart rate','hcr17','f 11','calorie counter','wrist band','bpw-120','t 31 strap','oregon scientific rgr682 wireless rain gauge','polar fs3','camelbak kids','787','polar rs300x g1','swimming','rs400sd','cs200cad','206','rs800cx pro team','dino','775','acumen eon basix plus','men','003','camel back','bp7003','stethoscope','ring','sportline 345 pedometer','rs800g','omron 7300w','t31 coded transmitter','ft80 g1','polar ft60g1','hem711dlx','410','polar rs300x sd','polar pink','fourteener','ua-767v','omron hem 650','powerlung','tracer','hydrobak','monitors','cadence','sportline 330 step pedometer','cycling','polar power system','830','750','polar f 6','aw131','rs 800','omron hem-712c','heart rate bra','camelbak dino','replacement blood pressure cuffs','camelbak 1l','polar f11 mens','omron heart monitor','polar f7 heart rate monitor women\'s','strap for heart monitor','heart rate monitors with calorie count','running polar watches','omron hbf-514','omron automatic inflation digital blood pressure monitor','water watch','new lifestyles','cs cadence','omron hj-112','womens watches','wrist strap','t61','polar ft 60','pulse','acumen','garmin edge','polar rs400sd','720itc','the sportline calorie tracking fitness watch','omron blood pressure cuff','pakteen','300x g1','jogging','performance','cleaning kit','polar watches','atc3k','789ac','sportline solo 925 heart rate watch','camelbak mule','omron hj-150','hem-711ac','garmin forerunner 405 hrm','heart monitor','rs300x sd','calorie monitor','hem711ac','rs300xg1','heart bra','hj-112','hem907xl','bowflex fit trainer plus','tape measure','725','ua-280','cs600 power','carry cases','blood pressure monitor small cuff','polar fs3c','how to read','polar rs800cx pro','garmin forerunner 405 gps heart rate monitor','camelbak tube extender','rs 300x sd','rs300xsd','ac adapter','ice queen','mini mule','camera','mio sport select','925','720 itc','heart rate pedometer','rs800 pte','360','omron 7300','garmin fr60m','polar bike mount','polar rs 100','400','t31 transmitter','s1 foot pod','fr60 with foot pod','flashflo','pulse meter','1020','bbq','heart rate monitors for women','non-coded','$70 pedometer','non coded','running pedometers','annadel','camelbak zinnias','60','767vs','ua-787ej','f 4','tritan','5l','garmin fr60m fitness watch with wireless sync','lifesource ua-767v','heart monitor rs300x','elite 7300w','polar t34 transmitter','polar f-7 heart rate monitor','pink fizz','ft 4','strapless heart rate monitor watches','polar replacement strap','pink','725x','pedometer kilometer','forerunner 405cx','polar f4 black thunder heart rate monitor','346','camelbak ambush','accurate chest transmitter','polar fa20m black activity computer','go','300x','hem-773','hj151','hem-670it','wrist heart monitor','cardiosport','polar f','elixir','reebok','distance heart rate monitors','omron hem-773','no chest strap','h-003','polar ft60f','polar heart monitors','ua789ac','suunto t3','non','cs 400','camelbak better bottle 1l','ft60f','weather alert radio','battery for chest transmitter','omron hem-432','download heart rate','spot','omron hem-711ac','sports bra','omron hip pedometer','omron hr-100c heart rate monitor','310xt hr','omron elite 7300w','polar cs100b','mayhem','710','wrist','camelbak better bottle','hj-720','polar cs 300','body fat monitor and scale','hem 790it','cs 100b','hem 773','sportline solo 900','polar rs800cxg3','garmin 310xt quick release','h-003ds','rs800 run','polar irda','omron large cuff','omron hj-720itc','bike','rs800cxsd','907xl','131','omron hem-790','f4 heart monitor','hem-711dlx','t','watch strap','usb','660x','polar cs600x with power','calorie count','meat thermometer','safety strap','myo tape','214','sportline 360','fat caliper','polar watch f55','h-003d','767t','waterproof heart rate monitor','omron hj 720itc','zone pointer','polar irda usb 2.0 adapter','medium blood pressure monitor cuff','omron h-003dl replacement cuff','hem 712clc','omron hem 780 n3','orbitape','garmin forerunner 405 heart rate monitor','omron printer paper','ae120xl','711dlx','polar s625x','sportline 360 pedometer','ecg heart rate watch','hellion','polar bra','hj-151','670','footpod','seca 803','polar t31 strap','heart ring','extra large blood pressure','3k','g1 gps sensor','polar rs800sd','arm pedometer','hem-650','polar cs100','cs 100','omron heart rate monitor','polar heart rate monitor watch','f6 green tea','help','ergo','ua281','camelbak hawg','camelbak rain cover','medium cuff','pedometer 347','swimming heart rate','mio zone','helmet cam','omron blood pressure large cuff','sequoia fitness metacal body fat caliper','oregon scientific weather station','seca 813','dmc 03','growth charts','bottle','suunto t6c','polar heart rate transmitter','camelbak limited','men heart rate monitor','chest','polar chest transmitter','walking advantage','cloud walker','a1','605','a3','camelbak fairfax','gel','t-34','polar cadence sensor','heart rate pedometer watch','omron hem 711dlx','blood pressure','polar cs 100','camelbak bottle','7300w','fa20f','hem-705cp','mini hawg','polar edge','aw200','t31 chest transmitter','interval timer','garmin premium heart rate monitor transmitter elastic strap','maps','fat track gold','omron hem-18','thermobak 3l','t series','omron hem790it','lifesource ua-789ac','tz','rgr 126','382','gps 405','connector','twist lock','polar m32 heart rate monitor','1500','lifesource ua787ej','blood pressure readings','310 xt','omron hem 712c','polar 800','polar 800cx','garmin 310','fitness pedometer','sportline 900','classic','omega reservoir','polar rs800cx run','polar flowlink','epulse heart rate monitor','350','polar g3','pedometer safety leash','atc5k','t31-coded','t-31','pe','camelbak stainless steel','omron wrist monitors','camelbak bottle adapter','basic monitor','mini h.a.w.g','sportline solo 920','heart rate monitor rowing','omron hj720itc','polar software','wa-340','suunto pc pod','104','t3c','clip on pedometers','omron hem 780','go walking','hem-629','hj303','bike mount','polar wearlink coded','big bite valve','ua-789ac','wrist heart rate monitors','ua767vl','1120','s520','pink heart rate monitor','fr60m','t31 non coded','rs 300','wireless monitors','omron hj 112','ac','camelbak classic','s3 w.i.n.d','355','polar f6 chest strap replacement','conductivity gel','step','heart rate strap','fattrack gold','wearlink chest strap','tube kit','310xt quick release','f7 blue','omron hj-150 pedometers','pc pod','tqr750','hem 670it','780n3','100','polar rs','343','camelbak replacement','solo 960','skeeter','garmin edge 705','polar cx 800','polar ft60 women','womens heart rate monitor watch','rs800cx multi','snoblast','garmin transmitter','weather radio','w.i.n.d','classic cap','rs300 sd','polar heart rate monitor strap','mio watch band','hem712','polar bike monitor','camelbak daystar','wearlink 31 transmitter','f55 heart monitor','lighted pedometer','170','dmc-08','omron model 116','wrist blood pressure cuff','432','rgr126','cs 600','suunto comfort','accusplit ae-120xl','electrode','wearlink coded transmitter','hem-790','blood pressure heart rate','marshall 97','rs800 bike','big bite','heart rate monitor fs3','recorder','distance tracking watches','garmin 405 heart rate monitor','rs800sd','omron hem-705cp','speed','polar fs 2c','920','body caliper','vantage','sportline 910','mio pink','radio pedometer','cap','equine easy','electrode cream','216','polar watch only','bump','t strap','polar wearlink 31','pedometer with fm radio','podium 24oz','eon','790 it','wash','accurate','rs-300','commander','oregon scientific heart rate monitor','342','sportline 345','polar rs 400','cadence wind','polar s3','pouch','atc','hrm 660x','760','polar chest elastic strap','279','monitor straps','sports bottles','omron elite','pedo','305 gps','600','dmc08','reservoir','downloadable pedometer','pedometer with radio','seca 754','sportline womens','large blood pressure cuffs','blood pressure monitors professional','31','omron hem-711dlx','712clc','easy','urban','polar 725','omron 650','transformer','hj-720itc','insulation','strapless heartrate monitor','lifesource ua767pvl one step plus memory blood pressure monitor with large cuff','t31c transmitter','omron pocket pedometer hj 112','seca 222','accuspliteagle','207','pe-318','polar rs800g3','strapless women','wind','omron hem 629','hr-100c','08','876','zoid','3010','advizor','garmin elastic strap for heart rate monitor replacement','irregular','omron 790-it','wireless rain gauge','polar shoe pod','flash','heart rate stopwatch','t-31 strap','ua 280','omron hem705','polar windlink','seca 232','spin heart monitor','camelbak hydration packs','polar universal bike mount','s30','accusplit','t31 chest strap','polar s725x','hj-303','manual blood pressure','kicker','1l','motherlode','wireless','spectra 360','portola','heart rate monitor gel','mermaid','training','ub 512','oregon watch','fat track','hydration bottles','340 pedometer','fire bottle','bowflex','omron small cuff','ua280','hr100c','chest monitor','ua-767pac','polar waterproof heart rate monitor','polar rs800 cx','garmin 405 hrm','lifesource ub-512','sportline 355','ua-281','polar rs 300','swimming heart monitor','camelbak slipstream','ana digit','t6c','hem 712c','cs200 cad','401','foretrex','120xl','breeze','camelbak reservoir','cr2050','heart monitor ring','garmin forerunner 405 green','bowflex hybrid plus','chest transmitter with elastic strap','mio heart rate monitor','blowfish','camelbak the better bottle stainless','altimeter','s-series cadence sensor','stoaway','women\'s polar f11','camelbak aventura','wearlink coded chest transmitter','polar heart rate strap','sportline fitness pedometer 360','polar monitors','zone plus','222','omron paper','heart pedometer','distance measurements','made in usa','g1','wearlink chest transmitter','hj720itc','pe 318','myo','fit trainer','cloudwalker','470','compass','elastic strap','octane xc','281','camelbak stoaway','mens f6','polar cs 400','wrb603','7','women heart rate watches','kit','a1 strap','camelbak max gear','polar fs2c heart rate monitor','camelbak pakteen','body fat scales','10s','pte','polar f-6','400sd','rs800cxg3','non coded chest strap','100c','camelbak unbottle 70','126','podium bottle','solo 960w','sportline 347','sportline 344 talking safety alarm pedometer','ua 767 pvs','camelbak m.u.l.e','suunto t3c','116','muse','quick release kit','omron hj-720itc pocket pedometer with advanced omron health management software','f11 men','hem 712','fr 60 garmin women','polar heart rate monitor chest strap','polar irda usb adapter','f11 w','313','polar a1 heart rate monitor','polar chest','garmin women','rs400 sd','fs-2c','sportline 725','220','omron hr100c','hem 18','t31 non coded transmitter','t31 chest transmitter strap','polar f-1','accusplit pedometer','hem 780','m.u.l.e','menace','heart rate monitor without chest transmitter','polar 600','ua-774ac','power meter cycling','replacement tubes','polar f11 wearlink transmitter','polar wearlink chest belt','camelbak the better bottle lime','garmin forerunner405','helena','bar388hga','buh-bump','f6 chest strap','omron hr','polar strap t34','arm band','garmin edge 305 with heart rate monitor speed cadence','camelbak blowfish','h003ds','ua767v','talking calorie pedometer 343','heart rate monitor for spinning','heart rate monitors for wrist','767pvl','camelbak havoc','polar rs 300 x','accusplit 170','422','mountain biking','polar cadence wind','camelbak watermaster','camelbak kids stainless','ua-787 ej','everlast chin bar','422crlc','ft40 beige','003d','camelbak tritan','omron h-cr17','camelbak bfm 500','camelbak mule nv','easy cuff','polar 11','711 ac','garmin 305 gps','rmr383hga','camelbak magic','rs800 cx pro','camelbak 2l','suunto t1c','polar wearlink chest transmitter','mio 3500','heart rate and blood pressure monitor','uv monitor','f6 black','rmr382a','se200','acumen 10k','polar sd','camelbak for women','960m','camelbak better bottle 75','price','polar f4 women\'s heart rate monitor','hiviz','polar wearlink w.i.n.d','hem-703cp','polar 31','100 oz','camelbak cleaning tablets','calorie burn monitor','suunto heart rate monitor','853','polar t31 transmitter','rim runner','pro team','distance watches','polar bike','seca 750','multicam','camelbak hotshot','acumen 10k stepper','sportline timer','omron automatic blood pressure','70 ounce hydration pack','803','clock radio','monitoring ecg','omron hem-780 blood pressure monitor','955','polar aw200','polar f6 women\'s heart rate monitor watch pink coral','hj-720-itc','polar f11 pink fizz womens heart rate monitor','cardio bra','97rp','polar women\'s f6 fitness heart rate monitor','pedometer made in usa','f6 transmitter','h003d','polar f6 watch','omron hem-703cp','mechanical scales','polar t31 coded transmitter','stand','geary','suunto memory belt','31 coded','wearlink+','hydroguard','camelbak hiking','camelbak bottle 75','polar transmitter strap','cr-2025','camelbak chaos','polar transmitter bra','camelbak reservoir omega water beast 200','polar t34 chest strap','heart rate monitors for running','camelbak delaney estate blue and dark cheddar','wearlink+ strap','hiking','polar favor heart rate monitor','polar rs300xsd','polar f6 monitor','polar heart f6','height measure','sportline solo 900 heart rate monitor watch','70 oz','suunto elastic strap','chest strap sportline','polar heart rate sensors','camelbak montara racing red and charcoal','l.u.x.e','polar t 31','stealth','uv888a','sportline heart rate monitors for women','running computer','s 210','snowblast','310xt-hr','m.u.l.e max gear','pedometers for walking and calories','hj','camelbak trizip','oregon scientific wrist blood pressure monitor','769','856','replacement strap for wearlink','camelbak aventura crushed violets and graphite','camelbak stamina i','f6 women heart rate monitor','f7 for women','heart transmitters','polar rs 800cx','polar fs2 black heart rate monitor fitness watch','camelbak 2009 mule','omron hbf','omron hj-303','camelbak muse','sportline solo960','s series speed','869','premium heart rate monitor soft strap','orange','stainless steel','scorpion','sportline pedometer 346','polar running monitors','omron hj-112 pocket','pedometer instructions','polar for women f11','polar xs','sportline 955','sm','h.a.w.g max gear','omron monitors','rain cover','wearlink+ transmitter w.i.n.d','camelbak scorpion','pedometers for $70','sportline 220','polar f6 pink coral womens heart rate monitor','polar chest strap monitors','sportline 346','heart rate monitor with alarm','coded t31 chest strap','reebok fitwatch pink','polar rs300xg1 gps heart rate monitor','cuff omron hem 780','camelbak h.a.w.g max gear','camelbak water','polar f6 accessories','hydration kids','womens heart rate','polar monitors t31','shipping','omron hr 100-c','height rods','camelbak octane 8+','450','reebok fitwatch 10s strapless heart rate monitor watch','road biking','camelbak tactical hydrolink pump','50 oz','omron hem711 ac','polar waterproof','omron bmi','suunto x10','omron 112','strapless calories','sportline stopwatch','omron hj-720-itc pocket pedometer','310 xt hr','polar f6 elastic strap','chest heart monitor','cw promotional','heart rate and steps','406','oregon monitors','seca 206','hj 720itc','763','polar t-31 coded transmitter','without strap','camelbak aurora vista blue and charcoal','camelbak fairfax estate blue and charcoal','sportline 410 alpha sport stopwatch','polar rs 300x-g1','camelbak m.u.l.e n.v','camelbak big bite valve cover','fs1 replacement elastic strap','omron pocket','sm-2000 pedometer','polar a5 transmitter','heart beat monitors','watch with pedometer','f11 chest transmitter','polar heart rate monitor battery replacement','polar distance','camelbak uproar','outlaw','wheelchair scales','1l grey','strap for t31','310 xt garmin heart rate monitor','speed sensor w.i.n.d','camelbak nv','rs 800g3','woodland','polar transmitter belt','head circumference','773 cuff','camelbak bottle cap','camelbak better bottle 5l blue','camelbak delta 5','gps forerunner','644','674','camelbak brush cleaning kit','sm2000 yellow','polar rs 800 cx bike','camelbak l.u.x.e','polar t31 chest strap','coded heart rate monitors','polar rs200 replacement strap','camelbak 5l water bottle','cs-200','chest strap only','polar rs800 heart monitor','camelbak bpa free water bottles','polar transmitter battery','sm step pedometer','polar wearlink+ strap','soft strap','polar ft 80g1','seca 700','cuff replacement blood pressure monitor','354','f6 fitness monitor','polar wind sensor','polar heart rate monitor gps','polar 300 heart rate monitor','polar b1','f55 strap','polar pod','cloud','camelbak omega reservoir','strap for fs1','camelbak filter','polar t31 non-coded','polar cs200 cycling computer heart rate monitor','solo 960m','polar wearlink chest strap','omron hem-711dlx automatic blood pressure monitor','rs300x black','owncal','sixbak','cycling heart rate monitor watch','wearlink+ transmitter','polar 80','polar f6 replacement transmitter','heart monitors for men','polar transmiter','gsc-10','10','chill jacket','polar replacement elastic','polar ft\'s','polar rs200sd heart rate monitor watch black','precision 7.0','gps heart rate monitor watch','405 cadence','heart rate calorie burned pedometer','polar rs800 multi','7-day memory','seca 374','seca 763','hydration belt','cs600 w power','polar fs1 elastic strap','h.o.s.s','forerunner310xt','polar cs speed','charges','polar t-31 heart monitor','cycling gps','polar ft 60 g1','camelbak h.o.s.s','heart rate monitor irregular','camelbak 100 reservoire','rs 300x g1','polar fs-3','strap for f11','polar heart monitor with gps','polar pace','polar chest strap for f6','polar ft-60','polar chest monitor','polar downloadable','sportline go walking pedometer','phone','pedometer with large display','polar monitor transmitters','replacement chest strap for f6','polar heart rate monitor set','hospital blood pressure monitors','coded straps','24 oz','seca 421','cs cadence sensor','cardiosport transmitter','hem-432c cuff','h-003dm','800 cx','garmin quick release kit','rs800cxmulti','camelbak reservoir omega water beast 100','reebok heart rate','polar chest heart monitors','garmin forerunner405cx','polar f6 women\'s heart rate monitor watch','camelbak insulated bottle','omron hem712','rate','fs3 heart monitor','polar cs100b cycling computer heart rate monitor','polar f6 black','replacement strap for f6','pistol','rs800b','polar infrared','heart rate monitor watches for women','polar rs300x training computer','polar f6 chest transmitter','shoe pods','polar f-4','ft-80','octane 8+','polar t61 transmitter','spongebob','camelbak orange','polar rs200 strap','camelbak charm hydration pack','camelbak omega 70','pedometers with clip','51','camelbak storm','camelbak waist','sm-2000-blue','sportline solo 925m','polar fs2 heart rate monitor watch','omron hem-712c automatic blood pressure monitor with intellisense','sportline 920','75 l','camelbak podium bottle','682','for running','resting heart rate monitors','pedometer with metal clip','polar rs200 accessories','polar heart rate monitor cycling','polar rs300 x','polar replacement t31 coded chest transmitter with elastic strap','how do heart monitors work','proteam','polar womens heart rate monitors f11','24 oz water bottle','contact','heart rate monitor with usb','polar f11 grey pepper heart rate monitor','heart monitor calorie counter','wearlink transmitter w.i.n.d','coach','polar ecg','camelbak bottles purple','m.u.l.e max','polar f7 womens heart monitor','replacement f11','polar f7 women\'s heart rate monitor watch silver','hi-viz','pedometer for runners','omron hbf-510 full body composition monitor and scale','strapless for men','heart monitor band','heart rate monitor only','omron hem 705cp','polar rs200 heart rate monitor watch','safety strap for pedometer','polar cycling computer','omron hj720','suunto cadence pod','pink water bottle','f6 heart monitor','heart rate monitor usb','camelbak dryer','sportline 340 go walking step distance pedometer','polar 7','polar with gps','cardiosport heart rate monitor','polar f6 women\'s heart rate monitor watch black diamond','sportline 345 step pedometer','s625x polar heart rate monitors','sportline 360 clip','omron digital','camelbak mule hydration pack','hem-773 cuff','polar coded chest strap','heart monitor for women','for walking heart rate monitor','sportline walking advantage 330 step pedometer','chest transmitter elastic strap','rs800 multi','omron h-003dm','sport time pedometer','polar f6 black diamond','fm radio','polar women black','20','polar f4 red berry womens heart rate monitor','hr 100','hj-112 pedometer','stride adjustment','polar f4 chest transmitter','calorie heart monitor','polar ir interface','replacement cuff x-large','printing blood pressure','cadence wind sensor','polar f11 heart rate monitor pink fizz','helena 09','rs400 watch','camelbak m.u.l.e hydration pack','hbf-510','reebok silver strapless heart rate monitor','polar watches for women','camelbak filter adapter','heart rate monitor stop watch','strap for pedometer','1l bpa free water bottles','334','910w','power system','camelbak better blue','rs200 g1 gps','heart rate monitor t 31','heart monitor belts','heart rate monitor most popular','camelbak bfm army universal camo','irda usb 2.0','polar a1 heart monitor','polar f4 blue ice','heart charts','camelbak mini h.a.w.g','how to program the watch','polar wind w.i.n.d transmitter with strap xs sm med xl','polar f4 women\'s heart rate monitor watch','strap electrodes','polar rs 800g3','f-4 heart rate monitor','polar f4 women\'s heart rate monitor red berry','power trainer','sm2000 step pedometer','heart rate profile','spinning wearlink','camelbak field cleaning kit','pulse heart rate','polar 400 heart rate monitor','replacement cuff for hem-773ac','camelbak rimrunner','heart rate monitor designed for women','cs bike mount','m52+','pedometer body fat analyzer','omron hem-705','f11 watches','f7+','polar fitness heart rate monitor','polar f11 heart monitor','f7 monitor','comfort strap','cadence monitor','polar f55 accessories','camelbak for running','polar ft60 gps','polar s725x proteam cycling heart rate monitor with free cadence','polar ft40 training computer heart rate monitor grey unisex','polar replacement chest transmitters','camelbak menace black and graphite','polar f4 monitor','camelbak hellion dark slate and blue fox','camelbak racebak women medium','camelbak racebak men small','camelbak racebak women small','weather systems','camelbak rogue black and charcoal','camelbak reservoir omega 45','f11 heart monitor','polar rs200 heart rate monitor watch black','heart rate monitor chest transmitter','polar f55 heart rate monitor bronze rock','polar ft40 training computer heart rate monitor green for women','sportline solo 955 pedometer wrist watch','forerunner 305 with heart rate','sportline solo 900m heart rate monitor','solo 925 strapless heart rate monitor for women','polar f7 heart rate monitor blue unisex','sportline 350 trainer with memory timer','polar rs800 heart rate monitor with free irda','polar ft60g1 heart rate monitor with running gps','polar f11 blue glow womens heart rate monitor','fs1 fs2 fs3','polar f6 green tea womens heart rate monitor','fs3 strap','polar fs 1 heart monitor','solo 960 women\'s','rs-800cx','polar calorie watch','pc connect','polar t-61','11','pedometer with speed','polar wearlink replaceable elastic strap','polar f11 wearlink','polar axn700 heart rate monitor','camelbak podium water bottle','f4 watch','camelbak bottle sleeve','chest sensors','polar fa','polar f-55','calorie measure','polar s3 stride sensor w.i.n.d','g3 gps sensor w.i.n.d','spinning monitor','phone pocket','polar elastic strap for wearlink','forerunner 50 foot pod','polar spin','f6 for women','polar heart rate monitor wearlink','crosstalk','polar cs300 cycling computer watch fitness monitor','counts calorie burns','polar heart rate women','fs1 watch','shape','polar f11 pink','pink strapless','sportline solo 960 women','forerunner 405 hrm','ft60 gps','polar f55 heart monitor','polar f4 black thunder mens heart rate monitor with free overnight shipping','5l bottles','camelbak with pockets','power monitor','camelbak military','ft60 purple','wrist heart','#343');
/* $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);
    }