/* Popular phrases - HEARTRATEMONITORSUSA - 11:9:3, Mon Mar 15, 2010 */
var asPhrases=new Array ('omron','polar f6','ft40','ft7','polar','f6','t31','f7','pedometer','polar f7','ft4','garmin','polar chest strap','strapless heart rate monitors','f11','polar f11','fs1','ft60','polar ft40','rs300','wearlink','f4','rs800cx','polar heart rate monitor','replacement chest strap','polar rs300','continuous strapless heart rate monitors','ft80','polar ft7','continuous heart rate monitor','rs800','lifesource','polar fs1','330','2000','polar f4','rs100','340','blood pressure monitor','rs300x','fs2c','omron pedometer','dmc-03','womens polar','polar rs300x','heart rate monitor pedometer','mio','polar ft60','405','strapless continuous heart monitor','dmc','wrist blood pressure monitors','garmin 405','711','omron cuff','ft40f','pocket pedometer','suunto','epulse','omron replacement cuff','heart rate monitor','flowlink','strap','womens strapless heart rate monitor','cycling','scales','batteries','pedometer watch','womens heart rate monitor','fs2','polar rs 300x','garmin fr60w','polar ft4','calorie counting watches','sportline 340','garmin edge 500','polar rs800cx','790','watches','bra','gps','rs400','300','chest strap','omron blood pressure monitors','transmitter','318','sportline pedometer','omron hem-780','polar rs800cx pro team edition','fr60','polar 300x','bowflex','digiwalker','dmc03','batteries for polar heart monitor','767','bike mount','camelbak stoaway 100oz black and charcoal','fa20','705','waterproof heart rate monitor','ua-767 plus','strapless','polar strap','sm-2000','cs200','cs300','sportline','polar fs2','cs100','fs3','garmin 305','cs600','garmin forerunner 305','rs400sd','polar batteries','myotape','sportline 330','s1','t31 transmitter','polar rs100','polar rs400','polar heart rate monitor women','large cuff blood pressure monitor','replacement strap','rs 300x sd','305','polar replacement elastic strap','polar flowlink','polar f 7','rs 100','t31 coded','s3','numetrex','garmin 705','711ac','cs600x','garmin fr60m','310xt','800cx','hj-720itc','hem-711','heart rate monitors for cycling','garmin heart rate strap','garmin watches','sportline solo 960','120','men','polar f7f','789','t 31','large cuffs','hj112','calories burned','dmc-08','hem-790it','sm2000','foot pod','ft 60','112','405cx','t31 strap','780','body fat','accelerometer','polar fs2c','7300','automatic blood pressure monitor','pe318 pedometer','fs3c','hem-432c','s625x','polar cs300','paper','sportline 350','equine','303','garmin 310xt','polar fa20','711dlx','gel','polar f6 women','712','dmc 03','heart rate monitor watch','blood pressure','polar fs1 heart rate monitor','polar t31','712c','wearlink transmitter','garmin strap','strapless heart watches','polar 300','omron hj-112','pedometer strap','polar ft 60','strapless heart rate monitor pedometer','polar f7 women','forerunner 405','garmin foot pod','walking advantage','hem711ac','hem711dlx','773','leash','rs300xg1','705cp','polar ft80','accusplit','camelbak','omron hj112','garmin forerunner 405','cycle computer','garmin fr60','polar cs600','polar rs 100','bp-7003','100','heart monitor watch','rs 300','cs 300','7003','garmin forerunner 405 cx','wrist blood pressure','large display','712clc','womens f7','heart rate monitor no chest strap','ua767v','ft60f','buh bump','forerunner','heart rate monitor with pedometer','hem712','cuff','omron hem','oregon scientific','battery for chest transmitter','suunto t1c','classic','height measuring','body fat calipers','calipers','310 xt','stoaway','heart monitor','960','small cuff','extra large cuff','accusplit pedometer','500','activity monitor','polar wearlink','hem-711ac','tape','ua-767','hj-112','garmin forerunner 405 hrm','pe318','200','edge','hem712c','polar f7 heart rate monitor for women','gps watch','750','90','inexpensive pedometers','g1','camelbak kids','omron hem780','garmin 405cx','hbf-306c','mens polar','heart rate','f7f','170','polar t34 transmitter','talking pedometer','hem-907xl','polar rs400sd','cs200cad','150','heart rate monitors for women','water bottles','wrist monitor','rs300xsd','men\'s polar heart rate monitor','garmin forerunner 405cx','polar 200','306','elastic strap','polar 625','754','heart rate strap','magnet','trainer','514','heart bra','polar sport bra','ft 40','camelbak mule','sportline 350 pedometer','cs100b','cardiosport','g3','polar watches','hem780','polar fs1 heart monitor','polar 80','chest transmitter','replacement cuff','polar f6 heart rate monitor','garmin fr 60','t 31 coded','ua-100','replacement elastic strap polar f6','rs300 g1','703cp','garmin chest strap','women\'s polar f7','ft 80','polar heart rate monitor watch','ice queen','rs800cx pro','motiva','seca 700','wrist strap','usb','polar rs300x g1','g1 gps sensor','ac adapter','polar heart monitors','omron 712c','bpa free water bottles','fs3c heart rate monitor','edge 305','omron hj-303','camelbak water bottles','polar sensor','310','rs 800 cx','multi function pedometer','polar chest transmitter','camelbak insulated bottle sleeve','f6 womens','polar rs300x training computer','speed sensor','h-003d replacement','670it','bp','garmin transmitter','mio watch band','720','infrared','monitors','hem 712','edge305','for men','seca 769 electronic column scale with bmi','garmin batteries','polar for cyclists','acumen heart rate monitor eon basix plus es wp champagne','polar rs800 cx bike','watch walking','sportline batteries','polar f7m','garmin footpod','790it','ua-200','polar bra','03','cs 200','seca 201','body tape measure','garmin gsc 10 speed cadence bike sensor','ft60m','powerlung','strapless heart monitors','womens heart rate watches','strapless one touch heart monitors','omron hj-720itc','pe40','hem 790','432','zone plus','extra large cuff blood pressure','calorie','womens polar watches','zoid','ring','accusplit ae 120xl','oregon scientific pedometer','ft60 g1','omron hr-100c heart rate monitor','sports bra','lifesource ua-767','hem-780','660','buhbump','blood pressure monitor cuff','ua279','hj 303','polar t31 strap','polar bike','polar hrm','767pac','petite','omron elite','876','everlast chin bar','sportline 340 go walking','seca 876','wearlink+ transmitter','acumen eon basix plus heart rate monitor watch','portable blood pressure monitor','garmin bike mount','omron blood pressure monitor hem-712c','polar fs3c','garmin edge','f 11','water resistant heart rate monitor','bite valve','104','hem705cp','3010','rs800 cx','polar s1 foot pod','omron heart monitor','polar bike mount','120xl','aw131 grill thermometer','polar fs3 heart monitor','ft40m','polar ft','omron wrist monitors','767vs','mio heart rate watches','212','190','sportline solo 925 heart rate watch','t31 coded chest transmitter','rs800cx pro team edition','software','garmin edge 305','sportline 330 pedometer','t1','t6','hybrid','women','810','polar wearlink wind','600','s1 foot pod','775','pedometer dmc-08','omron hj720','pedometer 342','cadence sensor','polar cs600x power','wrist blood pressure cuff','ua-767vs','ua-853lac','wearlink connector','garmin fr60 women','omron hj-720','womens watches','rgr126','lifesource uc-322 compact precision scale','dmc03red','safety strap for pedometer','imprinting','813','large cuff replacement','hj-303','344','ua 787','polar equine','polar ft60 women','polar f7 heart rate monitor','camelbak rogue','wearlink strap','rs300x g1','cadence','polar t-31','power','650','omron hem-650','cs speed','polar f6 women\'s heart rate monitor watch pink coral','75','t31 chest transmitter','hbf510','705 cp','polar f6 strap','camelbak bottle pouch','fat loss monitor','hbf 510','omron steps','helmet cam','t31 coded transmitter','omron hem-712c','calorie counter pedometer','ua-787ej','625','stethoscope','polar men\'s','774','803','hem 705cp','omron hj 150','hem-629','usb pedometer','edge 500','garmin 310xt bike mount','garmin 605','heartrate monitors','bowflex strapless heart rate monitors','720itc','wearlink+ strap','basic heart rate monitor','replacement cap','polar ft 80g1','camelbak bpa-free better water bottle','digi','omron hem 712 c','polar m51','fr60 mens garmin','polar rs800','monitor bra','f4 womens','510','camelbak replacement cap','replacement parts','pedometer 330','wireless heart monitor','camelbak stoaway','hem703cp','omron 711 dlx','polar ft 40','fs','711 ac','orange','bowflex watch','hrm660x','garmin 310xt quick','s80','oregon','omron hj-112 pedometer','camelbak bottle','myotape body tape measure','speed','foot','polar heart rate monitor f11','ft 80 g1','chest strap heart rate monitors','polar rs800cx run','weather radio','omron paper','omron hem 712','omron 705 it','omron hbf','hydrolock','fs1 monitors','ft 7','garmin 310 xt','a3','ua-853','better bottle','ft40 heart rate monitor','polar heart bra','polar t31 coded','men heart rate monitor','body fat measures','polar rs 400','snoangel','breathalyzer','warrior','polar rs800 cx','straw','rs 400','strapless heart rate','wireless','digital scale','motherlode','hj 720 itc','polar f6 watch','wrist heart monitor','seca 470 one piece ramp','cardio sport','women\'s polar heart rate monitor','ft60g','camelbak transformer','garmin accessories','garmin forerunner 305 heart rate monitor with speed and distance','omron model 104maj','mio classic','470','ua-767plac','thermobak','omron hj 112','garmin heart rate monitor strap','polar heart monitor watches','acumen','aw200','calorie monitor','hj-720','cs400','omron hem-711dlx','polar aw 200','omron heart rate','polar f11 orange','polar wearlink replacement strap','hbf-514c','bowflex classic strapless heart rate monitor','ft7 polar womens','ua787ej','stealth','t31 coded strap','blood pressure software','omron large replacement cuff','polar rs 800 cx','camelbak better bottle 5l','accusplit ae170 pedometer','seca 763','coded transmission','seca 763 electronic weighing and measuring station with automatic bmi calculation','polar replacement strap','t31 elastic strap','t1c','heart monitor bra','strapless continuous','arm size','calorie counter','fr60m','shipping','garmin replacement','800','789ac','digital desert','rs 300x','solo 960','pink heart rate monitor','polar wearlink strap','talon','go','ft-4','talking','unbottle','ua767','sport','polar ft7 heart rate monitor','omron hr100c','767v','mens heart rate watches','tqr750','se200','t51h','omron 629','mp3','omron hem-670it','polar fs3c heart rate monitor','seca 374','atc3','conductivity gel','08','pe-318','rs300x-sd','omron 7300w','pro team','replacement watch bands','sportline 960','polar ft40 heart rate monitor','coded','polar cs200cad','polar speed sensor','garmin forerunner 310xt','heart ring','rs100 chest transmitter with elastic strap','300x','hem-711dlx','f6 pink','polar irda','206','605','blood pressure monitors professional','digital blood pressure monitors','491','cycling shoes','garmin cycling','sportline heart rate monitor','warrior digital body mass caliper','sportline 330 electronic step pedometer','hrm 660','waterproof chest strap','24 oz','773ac','rs800cx pte','bp 7003','gsc','suunto t3c','tape measure','787','polar ft 80','womens heart monitors','case','100c','equine heart rate monitor','hem650','omron hj-112 pedometer hj112','camelbak 1l','garmin gps watch','times','hr100c','womens strapless heart monitor','omron full body sensor','omron 712clc','mount','how to program','polar ft40 mens','rs300x_g1','womens polar heart rate monitor watch','omron blood pressure','camelbak 5l','f 7','660x','lifesource ua-789ac','omron elite 7300w','camelbak kids bottle','31 coded','polar rs300xg1','cs cadence sensor','fat caliper','ft-40','3k','hem 629','920','forerunner 405 cx','ft7 women','600x','racebak','strapless heart rate watch','omron blood pressure cuff','sportline 343','bowflex classic','fitness pedometer','batteries for polar','405-cx','watches with gps','f6 heart strap','womens fr 60','hem-773ac','omron hem-711dlx automatic blood pressure monitor','seca 421','heart rate monitor sports bra','omron 112','suunto dual','968','rs 800','rs 300x g1','ua200','polar heart monitor straps','polar t31 heart strap','camelbak better bottle','breeze','adapters','fat track','f7 women\'s','omron paper roll','myo','accusplit eagle','lifesource ua-705','camelbak cleaning','spinning','garmin 301','g3 gps','calculator','polar heart rate monitor strap','replacement watch','hem907xl','f6 monitor strap','polar f4w','omron hem-790it automatic blood pressure monitor with advanced omron health management software','polar rs400 sd','berry','sm 2000','manual blood pressure monitor','polar f4 black thunder','rs 800cx','polar cs','hem-650','acumen eon basix plus','garmin fr60 heart rate monitor','body fat tester','f11 for women','dmc-03 multi-function pedometer','irda','heart watches','garmin gps','garmin for women','irda usb 2.0 adapter','garmin forerunner 405cx gps sport watch','wrist heart','camelbak muse','garmin running watch','w.i.n.d transmitter','polar womens ft60 black','polar g1','t31 noncoded','radio','polar fs2 heart rate monitor','garmin hrm strap','bottle pouch','hj 112','polar t34 heart rate monitor','suunto advizor','blood pressure monitor small cuff','polar f 11','omron hem-780n3 automatic blood pressure monitor','e-pulse','heart rate monitor ring','numetrex heart sensing tank','classic cap','garmin quick release','strapless heartrate monitor','measure','rs800 run','rs300 sd','heart monitor women\'s','omron hj 720 itc','replacement wrist strap','omron hem 711ac','gps with heart monitor','mp3 player','ft 60 polar heart monitor','mens strapless heart rate monitor','spectra 360 gel','talking heart monitor','hem629','polar wearlink coded','polar 800','t6c','safety leash','heart rate pedometer watch','767t','hem711 dlx','stadiometer','mio pink','chest heart rate monitor','indoor cycling','green heart rate monitors','763','656','accessories','fat analyzer','800 cx','lifesource ua-100','wrist unit','uv','spectra','ft60g1','numetrex bra','small blood pressure cuff','1500','aneroid','polar ft40 women\'s heart rate monitor watch','hem-18','cap','hem-773','forerunner305','75l','non','m61','polar t31 heart monitor','tqr710','pedometer green','rs800cxpte','dual belt','cr 2430','ft40 women','footpod','conductivity','ae120xl','swimming heart monitor','hem 711ac','hydration packs','polar g3 gps','camelbak scorpion','18','t31 replacement strap','hem 711dlx','garmin wrist strap','omron 790','f-7','weather software','epulse heart rate monitor','polar heart rate strap','f11 watches','mens polar watches','polar heart rate watches','polar 600','rmr382a','forerunner 405cx gps','omron hem 907','camo packs','polar orange','seca201','digital pedometer','fs2 coded','279','a d','transformer','cs600 cadence','sportline 342','hem-adpt1','pistol','t-31','transmitter strap','polar heart rate bra','eon basix','bands','training','704','b1','omron xl cuff','hem 670 it','uc322','h.a.w.g','pistol mag','irda usb','acumen eon basix plus es','blood pressure monitor omron 7300w','target','replacement bands','polar f11 blue glow womens heart rate monitor','mio petite','garmin 500','camelbak ambush','wearlink coded chest transmitter','omron hem790it','polar heart rate monitor t31','omron intellisense auto blood pressure monitor hem-773','t31 replacement','seca 813 electronic flat scale with high capacity','interchangeable wrist strap','mens polar heart rate','polar ft60 purple','muse','512','accusplit 170','suunto women','polar men\'s f7','blood pressure monitor and software','garmin heart rate monitor soft strap','speed sensor magnet','bowflex fit trainer','cardiosport heart monitor','polar t31 transmitter','polar t31 coded transmitter','black thunder','cr2025','camelbak max gear bottle pouch','classic select','seca 803 extra robust digital flat scale','polar power','blood pressure kits','polar 7','s 210','coded t31 chest strap','camelbak straw','omron parts','rs 300 x g1','heart rate tanks bras','mio pink classic select strapless non-continuous heart rate watch','replacement cuff hem-780','pocket','hem 780n3','polar f6 heart monitor','fairfax','polar fs 2c','xc','camelbak pink','breathing','advizor','downloads','polar cs 100b','polar fa 20','forerunner405','fat','hj-151','629','delaney','recovery rate','million','step right','chest transmiter','sequoia fitness body fat caliper','solo','mio classic pink','342','388','omron hem 712clc','spectra 360','hem780n3','omron 712','belt','polar fa20m','mio strapless','swimming monitor','camelbak stamina i','f7 for men','polar a3 heart monitor','omron 790it','suunto dual belt','heart rate monitor hr100','ua787','body tape','960w','boxing','speed and distance','insta','281','polar irda usb','seca 703','garmin premium heart rate monitor transmitter elastic strap','garmin 405 heart rate monitor','ua-767pac','talking calorie pedometer 343','garmin chest','computer sync','polar f1 heart monitor','h003dl','omron body fat analyzer','wearlink coded','camelbak thermobak','polar heart rate','omron 711 ac','garmin heart rate','pulse watch','heart rate monitor and pedometer watch','ft40 men','omron hj-150','7.0','pendulum pedometer','fm radio','polar wearlink replacement battery','soft chest transmitter','womens sport watches with heart rate monitor','owncal','t61 chest transmitter','polar t31-coded','xl blood pressure cuff','rs300x sd','camelbak m.u.l.e 2009 black and charcoal','rs 300 x','horse heart rate monitor','cs cadence','mio sport select strapless non-continuous heart rate watch','omron 303','chill','solo 925','polar monitors t31','oregon scientific blood pressure monitor','omron 514c','printer paper','womens strapless heart rate monitor watch','ua-787','cyclist','monitor with light','omron 670it','omron usb pedometer','polar wind transmitter','water proof heart monitor','fs2c polar watch','polar fa-20','polar heart rate monitors for men','scorpion','omron hj303','polar f4 heart rate','fs-1','omron software','omron hj 720itc','garmin forerunner 305 gps receiver with heart rate monitor','ft60 m','hem780 n3','polar t31 non coded','polar f4 chest transmitter','polar target','polar rs300x-g1','camelbak water bottle 1l','300x sd','inflation bulb','omron pedometer hj303','mio calories','polar transmitter strap','polar fs2c heart rate monitor','bar388','omron hr-100 c','ambush','ua787 cuff','t31 chest strap','polar rs400sd heart rate monitor','altitude','uv888','sportline solo 960w','280','heart rate ring','polar rs800cxg3','camelbak urban assault','polar f6 black coal heart rate monitor','garmin premium soft strap heart rate monitor','pink heart rate','polar beat heart rate monitor','hcr17','contact','polar g3 gps sensor','sportline 960w','bmi','bodyfat','ant+','better bottle purple','fs2 watch','omron women','camelbak reservoir dryer','garmin fr 60 heart rate monitor','674','780n','heart monitor calories','omron automatic','polar waterproof heart monitor','chest belt','polar heart rate monitor battery replacement','f6 strap','hem 773ac','20','camelbak urban','lifesource ua-787','ft7 men','t31 non-coded chest transmitter','mio sport select','omron h-003d','780 n3','heart rate numbers','908','polar chest','women\'s','mio sport select heart rate watch','polar f7 for men','polar green','pink heart monitor','polar f6 pink coral','003ds','polar 800cx multi','monitor parts','blue','buh bump electrode cream','omron hem-711ac cuff','tens','f4 black thunder','camelbak 22oz performance bpa free bottle','heart rate monitor with chest strap','a3 heart rate monitor','uc 321','mio motiva petite heart rate monitor watch','heartring','sportline 348','camelbak thermal control','heart rate monitors for runners','mio zone','t31-coded','irregular','cadence sensor w.i.n.d','runners','644','wrist blood pressure unit','bowflex 7.0','310xt heart rate monitor','bottle cap','upper arm blood pressure monitor','comfort belt','blood pressure and heart monitors','triple','polar b1','wireless precision scale','polar ft-60','urban assault','vetta','womens sport watches','garmin 305 chest strap','omron hr-100 heart rate monitor','gps enabled','mio women','f11 blue','camelbak storm','polar replacement t61 transmitter coded','strap only','polar f11 blue','omron pedometer hj112','pedometer made in usa','calorie managment system','seca 769','spot gps','mio heart rate','suunto x10','seca scale','ua774ac','hr','s710 transmitter','shredbak','camelbak reservoir omega water beast 102','polar elastic strap','polar chest monitor','sportline talking calorie counter','ft40 heart monitor','sportline walking advantage 340 steps and distance','355','polar non coded transmitter','383hga','omron intellisense automatic blood pressure monitor hem-711ac','protrainer 5 software','polar fs2 heart rate monitor watch','polar f4 black thunder heart rate monitor','suunto heart rate monitor','seca 210','polar f6 heart rate monitor fitness watch','camelbak the better bottle 75l bpa free bottle','heart rate and blood pressure monitor','oregon scientific bar908hga','spinning heart rate monitor','own zone','fat burning','camelbak the better bottle 75l lime bpa free','chest strap heart monitor','769','garmin edge 305 heart rate monitor','polar activity','camel clip','rowing monitor','polar running heart rate monitor','garmin 201','polar f6 womens watch','cs speed wind','calorie burn pedometer','polar wind watch','hem 705 cp','m.u.l.e','replace heart monitor battery','chest strap transmitter','rs200 transmitter','684','807','f4 fitness','polar f monitors','omron automatic inflation digital blood pressure monitor','camelbak reservoir omega 72','polar f4 transmitter','hem 711 ac','polar strap t61','50 oz','polar coded chest strap','professional blood pressure','712 c','polar heart rate calorie monitors','301 gps','irda 2.0','pedometers for $70','pink polar watch','polar f7f heart rate monitor','pedometer timer','polar f11 pink fizz womens heart rate monitor','polar multi','polar pink','ft-7','purple watch','f6 heart rate monitor watch','ft60 watch','220','pink heart rate monitor watch','home','305 gps receiver','strapless calorie monitor watch','polar ft40 watch','polar irda 2.0','s3 sensor','f7 monitor','polar rs300x running computer with wearlink coded chest transmitter','polar heart rate monitor b1','354','replacement battery forerunner','camelbak women','polar t31 non-coded','choose to reuse','camelbak conversion','calorie monitor watch','polar bike computers','s70','mini h.a.w.g','sportline 330 electronic','polar rs-400','polar a3 manual','f11 men\'s','pedometer cases','polar rs300 heart rate monitor','spot','running computer','omron heart','ft 40 m','suunto t3c heart rate monitor','omron hem780 cuff','pod','polar wearlink+ coded transmitter','polar handlebar mount','heart rate and gps','polar heart rate monitor chest strap','purple polar','heart monitor for women','polar ft60 women\'s heart rate monitor watch purple','seca 354','polar f11 women\'s heart rate monitor watch','polar f6 women\'s heart rate monitor watch','seca 416','heart rate monitor with calories burned','clock weather','2750','g3 gps sensor w.i.n.d','ft40 for women','polar heart rate monitor rs300x black','suunto gps','heart rate distance','global positioning systems','skinfold','polar irda usb 2.0 adapter','garmin forerunner 305 gps receiver','polar g3 gps sensor w.i.n.d','ft60 red','f7 heart monitor','polar running watches','hem-790it cuff','polar cx','rs300xsd polar heart rate monitor','polar fs-2','polar rs 300x sd heart rate monitor','polar f6 women\'s heart rate monitor','camelbak snoblast','sportline step distance calorie','4l','omron weight scale','polar f11 grey pepper mens heart rate monitor','heart rate monitor watch only','polar heart rate monitor rs800cx','polar gps system','garmin forerunner405cx','forerunner 405 gps running watch with heart rate','spinning watch','reebok watch','heart rate monitor for arm','omron hem711','sportline 344 talking safety alarm pedometer','garmin 305 gps','camelbak reservoir omega water beast 200','garmin forerunner 405 gps','omron fat loss','107','polar f7f silver heart rate monitor fitness watch','polar f7 women\'s heart rate monitor watch silver','camelbak better bottle ocean','ft60 purple','camelbak aventura crushed violets and graphite','72','polar fitness monitor f11','polar usb adapter','forerunner405cx','polar pink fizz','polar cs100b cycling computer heart rate monitor','polar f4 strap','camelbak mule max gear','ft 60 m','camelbak thermal','polar wearlink chest transmitter','solo960','calories pedometer heart rate','heart rate with foot pod','202','sportline solo 960 pedometer','oregon scientific scientfic pe830 pedometer with pc download','polar f4 heart monitor watch','polar e 600','polar rs300 x','polar f11 womens watches','replacement straps polar t31','polar t31 coded chest transmitter','seca 334','garmin forerunner 310xt with heart rate monitor','strapless heart','strapless transmitter','75l camelbak bottle','polar f11 blue glow heart rate monitor','sm','polar f4 heart rate monitor men\'s','suunto memory belt with docking station','24oz water bottle','wireless weather forecaster','f55 ice aluminum','strap for f6','sportline heart rate monitor watch','women wrist monitor','replacement batteries for polar heart rate monitors','rs 800cx pro team edition','fs 3','rs 800 multi','power output sensor w.i.n.d','f4w','heart monitor rs300x','wireless weather','forerunner 405 heart rate monitor','polars for men','strapless bowflex','polar data link','commander','seca 242','rgr382','suunto footpod','counts calorie burns','353 sportline pedometer','panic','oregon scientific rgr682 wireless rain gauge','strap for heart monitor','heart rate monitors with calorie count','omron hbf-514','pakteen','how to read','garmin forerunner 405 gps heart rate monitor','camelbak tube extender','720 itc','fr60 with foot pod','garmin fr60m fitness watch with wireless sync','polar f-7 heart rate monitor','omron hem-432','214','orbitape','garmin forerunner 405 heart rate monitor','sequoia fitness metacal body fat caliper','camelbak bottle adapter','heart rate monitor rowing','wa-340','s3 w.i.n.d','omron hj-150 pedometers','camelbak daystar','wearlink 31 transmitter','f55 heart monitor','suunto comfort','podium 24oz','rs-300','polar chest elastic strap','seca 754','207','garmin elastic strap for heart rate monitor replacement','omron 790-it','polar shoe pod','heart rate stopwatch','seca 232','spin heart monitor','oregon watch','garmin forerunner 405 green','chest transmitter with elastic strap','camelbak max gear','camelbak pakteen','camelbak m.u.l.e','fr 60 garmin women','f11 w','fs-2c','polar f-1','polar f11 wearlink transmitter','polar wearlink chest belt','camelbak the better bottle lime','heart rate monitors for wrist','camelbak havoc','polar cadence wind','camelbak kids stainless','ft40 beige','003d','camelbak watermaster','rs800 cx pro','camelbak for women','960m','camelbak better bottle 75','polar wearlink w.i.n.d','camelbak hotshot','sportline timer','70 ounce hydration pack','polar women\'s f6 fitness heart rate monitor','stand','hydroguard','camelbak hiking','camelbak bottle 75','cr-2025','camelbak chaos','polar transmitter bra','heart rate monitors for running','camelbak delaney estate blue and dark cheddar','polar f6 monitor','polar heart f6','70 oz','sportline heart rate monitors for women','snowblast','310xt-hr','m.u.l.e max gear','pedometers for walking and calories','oregon scientific wrist blood pressure monitor','856','replacement strap for wearlink','f6 women heart rate monitor','f7 for women','heart transmitters','polar rs 800cx','polar fs2 black heart rate monitor fitness watch','camelbak 2009 mule','sportline solo960','s series speed','polar for women f11','polar xs','h.a.w.g max gear','wearlink+ transmitter w.i.n.d','polar f6 pink coral womens heart rate monitor','polar chest strap monitors','heart rate monitor with alarm','polar rs300xg1 gps heart rate monitor','cuff omron hem 780','polar f6 accessories','hydration kids','450','road biking','camelbak tactical hydrolink pump','strapless calories','sportline stopwatch','310 xt hr','polar f6 elastic strap','cw promotional','oregon monitors','seca 206','polar t-31 coded transmitter','camelbak aurora vista blue and charcoal','camelbak fairfax estate blue and charcoal','polar rs 300x-g1','camelbak m.u.l.e n.v','camelbak big bite valve cover','fs1 replacement elastic strap','omron pocket','polar a5 transmitter','heart beat monitors','polar distance','camelbak uproar','1l grey','strap for t31','310 xt garmin heart rate monitor','speed sensor w.i.n.d','rs 800g3','polar transmitter belt','head circumference','camelbak bottle cap','camelbak better bottle 5l blue','camelbak delta 5','gps forerunner','camelbak brush cleaning kit','sm2000 yellow','polar rs 800 cx bike','polar rs200 replacement strap','camelbak 5l water bottle','chest strap only','polar rs800 heart monitor','camelbak bpa free water bottles','polar transmitter battery','sm step pedometer','polar wearlink+ strap','soft strap','cuff replacement blood pressure monitor','f6 fitness monitor','polar wind sensor','polar heart rate monitor gps','polar 300 heart rate monitor','f55 strap','cloud','camelbak omega reservoir','strap for fs1','camelbak filter','solo 960m','rs300x black','cycling heart rate monitor watch','heart monitors for men','polar transmiter','gsc-10','polar replacement elastic','polar ft\'s','405 cadence','heart rate calorie burned pedometer','polar rs800 multi','7-day memory','cs600 w power','polar fs1 elastic strap','h.o.s.s','polar cs speed','charges','polar t-31 heart monitor','camelbak h.o.s.s','heart rate monitor irregular','camelbak 100 reservoire','polar fs-3','polar heart monitor with gps','polar pace','polar chest strap for f6','polar downloadable','sportline go walking pedometer','pedometer with large display','polar monitor transmitters','replacement chest strap for f6','polar heart rate monitor set','hospital blood pressure monitors','hem-432c cuff','h-003dm','rs800cxmulti','camelbak insulated bottle','omron hem712','fs3 heart monitor','replacement strap for f6','rs800b','shoe pods','octane 8+','polar t61 transmitter','spongebob','polar rs200 strap','camelbak omega 70','pedometers with clip','51','camelbak waist','sm-2000-blue','sportline solo 925m','75 l','camelbak podium bottle','resting heart rate monitors','pedometer with metal clip','polar rs200 accessories','polar heart rate monitor cycling','polar replacement t31 coded chest transmitter with elastic strap','how do heart monitors work','polar womens heart rate monitors f11','24 oz water bottle','heart rate monitor with usb','polar f11 grey pepper heart rate monitor','camelbak bottles purple','m.u.l.e max','polar f7 womens heart monitor','hi-viz','omron hbf-510 full body composition monitor and scale','strapless for men','heart monitor band','heart rate monitor only','polar cycling computer','suunto cadence pod','pink water bottle','heart rate monitor usb','camelbak dryer','polar with gps','cardiosport heart rate monitor','sportline 345 step pedometer','sportline 360 clip','camelbak mule hydration pack','hem-773 cuff','sportline walking advantage 330 step pedometer','chest transmitter elastic strap','omron h-003dm','sport time pedometer','polar women black','hr 100','stride adjustment','polar ir interface','replacement cuff x-large','printing blood pressure','polar f11 heart rate monitor pink fizz','helena 09','rs400 watch','camelbak m.u.l.e hydration pack','reebok silver strapless heart rate monitor','heart rate monitor stop watch','polar watches for women','strap for pedometer','1l bpa free water bottles','910w','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','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','heart rate profile','spinning wearlink','camelbak field cleaning kit','pulse heart rate','polar 400 heart rate monitor','replacement cuff for hem-773ac','camelbak rimrunner','m52+','pedometer body fat analyzer','omron hem-705','polar fitness heart rate monitor','comfort strap','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','camelbak hellion dark slate and blue fox','polar f4 monitor','camelbak racebak women medium','camelbak racebak men small','camelbak racebak women small','weather systems','camelbak rogue black and charcoal','camelbak reservoir omega 45','polar rs200 heart rate monitor watch black','heart rate monitor chest transmitter','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','fs1 fs2 fs3','fs3 strap','polar fs 1 heart monitor','solo 960 women\'s','rs-800cx','polar calorie watch','pc connect','polar t-61','polar wearlink replaceable elastic strap','pedometer with speed','polar f11 wearlink','polar axn700 heart rate monitor','camelbak podium water bottle','f4 watch','camelbak bottle sleeve','chest sensors');
/* $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);
    }