/* Popular phrases - ASCYCLES - 19:23:27, Sat Feb 4, 2012 */
__SLI_ClientDefaults =
[
    ['TextBoxIDCustom', ['rnLeftNav__ctrl_0_txt_KeywordSearch'] ],
    ['Alignment', true ]
];
var asPhrases=new Array ('jacket','handlebar risers','bmw boots','bmw top case','gps mount','crash bars','tool kit','battery','vario','foot pegs','helmet lock','hand guards','airflow jacket','side case','bmw battery charger','verholen','helmet','valve cover','mirror','comfort seat','heated grips','peg lowering kit','r1200rt','bar backs','r1200rt mirror','windshield','top box','wind deflector','saddlebags','engine guards','tail bag','rain suit','city pants','charger','tank bag','foot peg lowering','cylinder guards','r1200gs highway pegs','soft bag','cylinder head protector','r1200s','oil filter','f650gs windshield','r1200gs top case','r1200c saddlebags','battery charger','tank protector','bmw pants','power plug','luggage rack','bmw suits','battery tender','k1200rs windshield','communication','handguards','r1200rt tankbag','k1600gtl','windshield extension','windscreen r1200gs','f650gs','bmw tank bag','touratech','r1200r','oil filler cap','oil filter wrench','dakar windshield','backpack','k75 windshield','pannier bags','light mount','ztechnik','center stand','used motorcycles','k1200r','side stand foot','turn signal','motorrad jacket','hand grips','cigarette adapter','cover','tank pad','k1200s luggage','k1200rs mirror','jpegs','soft luggage','k1200lt gps mount','top case','steering damper','topcase','shift lever','bar end weights','f650cs','grips','highway pegs','r1200rt seat','key','rallye 3','r1150r windshield','spark plugs','bar risers','stand','k1200lt','powerlet','toolkit','system cases','bmw luggage','handle bar risers','oil','gps','cylinder cover','cruise control','r1150gs windshield','bmw enduro','fork seals','radio','r1100rt windshield','r1100s','fender','accessory plug','bmw charger','brake light','miniature','radar detector mount','pants','r1150rt windshield','s1000rr','gear oil','navigator mount','spark plug cover','shocks','windshield mounts','gore tex boot','repair manual','side bags','r1200rt oil filter','rockster','dakar windscreen','bmw helmet','solo seat','footpeg lowering kit','k1200lt windshield','backrest','motorcycle cover','low seat','brake pads','r1200c windshield','gs 1200','switch','boots','sidestand','heated vest','bmw oem mirror','grip puppies','bluetooth','sidi','zumo','risers','gerbing','headlight','seat','handlebar setbacks','leather jacket','trailer hitch','hat','k1200rs','city lids','roundel badges','vario top case','r1200rt battery','electrical plugs','starter','ztechnik windshield','license plate','aluminum luggage','r1200c','paralever','footpeg','canbus','lights','bag liners','abs','bmw clothing','mirrors for r1200rt','bmw bags','touring jacket','r1100gs windshield','k1200r luggage','r1200rt highway pegs','function','air filter','r1100rt','speed bleeder','sidestand pad','k1200s','r1200c comfort seat','fairing','jeans','r1200rt tool kit','bmw t-shirt','club jacket','piaa lights','cb antenna','f650 windshield','r1100s windshield','locking oil cap','bmw jacket','r1150gs gps mount','handlebars','blind spot mirror','luggage r1100s','f800gs','sport mirror','clear turn signals','dial gauge','cb radio','r1200rt crash bars','summer pants','ilium','shipping','highway peg mount','tires','navigator iv','tire repair kit','badge','k100 windshield','speakers','valve stem','screw kit','rok','watch','fork','foot peg lowering kit','wind screen','oil filter wrench r1200rt','rally 3 jacket','tire pump','r100gs','rear rack','passenger backrest','gloves','k1200gt','fuse','paint','vespa','turn signal lens','rally 3','front brake pads','wheels','revit jacket','torx','oil filter for r1100rt','wheel balancer','r1150gs tire','headers','turn signal lights','electronic ignition','pegs','r1200gs seat','grip covers','tire repair','drive shaft','rallye','wheel removal tool','g650gs saddlebags','helmet guardian','saddlebag liners','f650 dakar','r','gps mount k1200s','horn','bags','skid plate','oil cap','shelf','r1200rt repair manual','helmet liner','r1150rt','ram mount','pivot pegs','helmet headsets','tow strap','30 years gs','driving lights piaa','r850r','tools','fuel line quick disconnect','r1200rt gps','half cover','suits','soft case','comfortshell','autoswitch','k1200s battery','rcu shelf','feeler','rear brake rotor','51-16-2-307-769','fender extension','r1200c exhaust','k1200r sport','r1200rt manual','fog lights','tire pressure gauge','windscreen','throttle cable','k1200gt tank bag','rka luggage','fuel line','adapter','bmw motorsport jacket','mirror for r1150rt','r1150gs adventure','headset','final drive oil','alarm','lift handle','ignition switch','bleeding brakes','t shirts','funnel','k1200lt armrest','techmount','pkt-080-54','piaa','r1200rt saddlebags','wallet','throttle','roundel','clear lens','garage mat','trunk rack','vario cases','cup holder','luggage','rear stand','r1200gs battery','engine oil','brake master cylinder','clutch cable','rack','dakar','passenger floorboard','streetguard 3','bmw airflow','key chain','brake lever','l545-4','alpha racing','armrests','lift','boulder jacket','model','westco battery','k100rs windshield','handlebar bag','borrego','ignition coil','brake pedal extension','r1150rt seat','floorboards','hornig','r1100rt tires','mudslinger','gel battery','flasher relay','fender extender','screw set','k1200gt footpegs','wheel stand','bmw luggage rack','nivomat','valve cover r1150rt','r1200rt tank bag','gs cap','rallye pro 3','carbon fiber license plate frame','k1200r handlebar risers','reflective','airflow boots','brake hose','ipod','z8500','oil change kit','charger adapter','oil cooler guard','cardo','spark plug socket','ap-170r','footpeg rubber','xenon','r1200gs','turn signal bulb','g650x','fuel','accessory shelf','revit','r1150rt muffler','r1200cl','motor oil','summer jackets','used bikes','bmw gloves','twin max','bmw rallye 2 pro','r1100rs','k75 hand guards','tork','synthetic oil','tender','beak','race cover kit','staintune r1200c','hepco becker rear rack','rally pro 3','1150rt','ap-1','front shock','213 610','fuel hose clamps','indicator lights','back protector','olympia jackets','bing','r1200st','knee pads','fuel line quick release','led turn signal','headlight guard','magnesium valve cover','windshield spoiler','clutch lever','r1150r battery','fork boots','exhaust systems','water pump','light bracket','gs 1200 tank bag','r1100gs','fairing screws','transmission oil','rcu','master cylinder kit','led brake lights','rondel','saddle bag liner','cruise','grease','xm radio','k1200rs windscreen','starter relay','dakar seat','handlebar mounts','hand','flashlight','windshield rockster','spark plug cap tool','heel toe','ball joint','puller','cylinder head protection','lowering links','bmw q3.s','pulse generator','r1100s sidestand','k1200s oil change','r1150r battery tender','engine oil filter','r1150gs crash bars','10-450','bulbs','brake light supplemental led most 2005-later bmw r and k bikes','rear brake pads','navigator iv mount','r1150rt gps mount','parts','jesse bags','r1200rt handle bar risers','handlebar grips','r1150','tire plugger','gps mount r1100rt','luggage lock','keychain','engine spoiler','city boots','verholen bar risers','traffic light','brake rotor','lever','heated gloves','passenger foot pegs','gps mount r1200rt','paint colors','h7 bulb','agm battery','deflector','1200 gs windshield','jesse panniers','fw-1','iphone mount','plug adapter','seat conversion','bmw can bus battery charger','k1200lt battery','pin tool','jumpsuit','r1200gs backrest','r1100s manual','s1000rr r','rims','rain lock','rear brake disc','r1200c charger','gasket','tank guard','r90 6 clutch','k1200lt jpegs','running boards','k1200r seat','rcu r1200gs','slave cylinder','bmw gps','f650 funduro','bmw g450x','sports bmw','vario side cases','r1200r rack','highway pegs mounting kit bmw r1100 gs','bmw sport boot','tankbag cover','r1200c footpegs','ms0910-air-flo','r1200c owners manual','helmet speakers','rear hugger','givi windshield','tail tidy','laminar lip','k','r1150gs low seat','trail guard','license plate bracket','r850r windshield','feeler gage','r1200rt valve cover','intercom','hp2 sport','vario topcase','f650gs rear rack','frame sliders','city lids r1200r','pivot','power commander','splash guard','clutch tool','loctite','carburetor rebuild kit','feeler gauge','k1200lt center stand','master cylinder','t-shirt','quick disconnect','ppc-018','r1100s spark plugs','audio','inner tube','tire size','reverse switch','stereo','ear buds','r1100gs master cylinder','k75s bar backs','ztechnik lights','map pocket','bmw softbag','indicator bulb','airglide 3 pants','wheel bolt','footplate','potentiometer guard','dvd repair manual','fuse panel','z7102','r1100s owners manual','stainless bolt kit','spark plug puller','heli','hose clamp tool','k1200rs gps mount','heated hand grips','mug','g650gs','baehr','santiago pants','bmw plug','clear turn signal lens','go cruise throttle control','hand guards r1150gs','side covers','r1200rt service manual','rear turn signal','k1200rs headlight bulb','bmw socket','parts fiche','head cover','oil sensor','float','bmw jeans','bmw comfort shell','r75','r1200c fuel pump','turn signal housing','bb-w','bmw center cap','ignition jacket','motorcycle jacket','comfort seat r1200rt','z6000','piaa light bar','balaclava','k1600gt','usb','bmw navigator','mirror extenders','kushitani','shift lever extension','bing floats','centech','paint pen','r1100rt tank bag','handlebar pad','valve adjustment tool','moditec','torx sockets','touch up paint','cd','gerbing sock','suspension','bolts','005 500','sport windshield','grip wrap','r1150rt floorboards','clutch fluid','ilium foot pegs','k1200s saddlebags','air flow 4','k1200lt cb','cleaner','3m','garmin gps','battery tender bmw accessory end adapter','r1200rt reflective','fork protectors','reservoir','k75 cover','rubber grips','bar harness','bmw r100rt','magnetic oil plug','sump guard','top case rack','performance','wolfman tool roll','enduro bag','frame sliders s1000rr','spools','r1100rs wind screen','bmw tools','cigarette','rok straps','throttlemeister','protection','oil filter tool','k1300gt oil filter','bar-backs','hepcobecker','key holder','oil wrench','mud flap','light switch','remus exhaust','03 k1200gt','maintenance','tank cover','nexx','police','mount','bmw badge','stem caps','clamp','oil cap tool','lens r1100rs','garmin','tail light bulb','denim','co2 pumps','plug tool','brake pad r65ls','pressure sensor','battery charger for k1200s','rcu accessory shelf','front beak extension','bmw 30 year gs','low seat f800st','71-60-7-687-611','agm battery charger','bmw f650','navigator','moto lights','bike cover','k1200lt oil filter wrench','k1200rs heated grips','hip bag','verholen lights','case','powerlet plug','exhaust nut wrench','savanna 2 jacket','tire pressure','socks','cortech','brake fluid','green light','r1150rt battery','z-technik','doubler suit','armor','r1150rt radio','r100rs windshield','airflow pants','ap-2','electric tank bag','k1200gt battery','brake bleeder','dl3','k1200gt windscreen','19-600','front brake switch','front fender','slingsafe 50','on off switch','s420','foam grips covers','clamp tool','reprom','f650gs brake pads','radio kit','progressive','luggage protectors','oil pan gasket','5164','foam','air compressor','highway foot pegs','bmw heated vest','protector','carbon','glove sizing','k1200lt windscreen','rider backrest','neutral switch','clymer manual','bungee buddies','d3o','crush ring','light bar','k1200s windshield','scala rider','knife','mirror nut','tourance','k1200rs hornig','cap','pacsafe','r1100rt owners manual','map holder','r1150rt coil','bag protector','bmw liner','pen','r1200rt brake pads','toys','luggage backrest','drain plug crush ring','z6004','gauge','r1200gs tankbag','bmw g650gs','waterproof','valve stem caps','r1100rt radio','fork springs','reflective strips','mesh jacket','logo','g650x challenge','belt','gifts','first aid kit','seat pad','neck brace','oil plug','torx set','f650gs battery','r1200gs lens','rear fender extension','engine bars','bmw cover','led s1000rr','gas line','ram','locking fuel cap','f650gs engine guards','bmw r1100rs','brake servo','dohc mirrors','led rear light','k1200rs bar backs','bike stand','h7','bmw roundel','kit','headlight switch','k1200lt rack','head guards','r1200rt exhaust','tank bag organizer','crossbar pad','forcefield','brake reservoir','r1150rt cover','navigator iv gps','wiring harness','bleeder','radiator','k100 riser','r1150rt tank bag','atlantis 4','elf pegs','tooth belt','flange','175 500','mini tank bag','hardware kit','speed sensor','jesse','r1200c brakes','side mirror','repair dvd','top case pad','044-0730','sidi socks','pkt-042','heated grip switch','handle bars','k1300s slip on','slave','hp race cover kit','off road boots','tank bag divider','2190','r100gs windshield','fsp1-bk','key fob','olympia gt','clutch kit','r1100rs windshield','hand protection','battery tender adapter','r1200r rear turn indicator','sizing chart','hand protector','234 690','topcase backrest','footrest','exomesh','22 liter top case','bmw protection jacket','skwoosh','number plate','adjustable shift lever','radio panel','glove box','r50 2','saddle bag cover','battery strap','master','bar backs k75c','wind','r1150r engine guard','oem parts','hand lever','leo vince','hornig r1200gs','fuel gauge','fenda extenda','headlight bulb','tomtom','75w140','right mirror','r1200r windscreen','back rest','left mirror','k1200rs oil change kit','aac-003','disc lock','bmw oil filter wrench','r1150rt spark plug','chest protector','saddle bag reflector','air intake','motionpro','seat cleaner','bmw k1200s tank bag','mini usb','k1300s center stand','hp','case cover','winter gloves','wolfman tank bag','progressive shocks','r1100r windshield','airvantage vest','auxiliary power fuse panel centech','r1150r seat','piaggio','k1200lt cover','clearwater','signal','rear pegs','r11xoilbasic','road kit','r1200gs carbon','bmw engine guard','r 75 5','f800r gps','oil pressure','lower passenger footpeg','magnetic oil drain plug','clutch plate','ztechnik vstream','bmw battery','r1150r flyscreen','atlantis 4 suit','paddock stand','spoke wrench','gerbing controller','r1100rt mirror','r1200rt tires','shifter','r1200gs gps mount','reflective kits','battery k1300s','r1100gs exhaust','r1150r oil filter','boulder 2','turn','x-head','hinge','right side cover','cluster','pac','pannier hinge','travel cover','bmw hinges','saddlebag parts','kidney','oil drain plug','bmw tank bag r1200rt','points','cell phone holder','radio cd','system case lock','r1200rt topcase','hot deal','mud guard','jumper cables','side panel','indicator','sport mirror kit 2010-later bmw r1200rt by bmw','front wheel stand','left turn signal','fuel tap','k1200s tank bag','sidi adventure','r1200rt vstream','beak extension','mp3 cable','passenger','laminar lip r1100gs','mounting bracket','z6010','blind','f800r seat','g450x wheel','lock kit','brake pedal enlarger','wheel bearings','120 70 17','brace','cooling fan','hlc1','signal switch','staintune exhaust','gel pad','hose clamp pliers','rider back rest','quick release','authority','r 65','f800gs fender','b1281c','ztechnik r1200cl','r850','pac-029','rallye 2 pro jacket','bmw r1150rt','canbus charger','tank bag power','sprocket','blind spot','bmw summer gloves','right case holder','nav iv','metal mule','r1100rt brake pads','m5x20','anti seize','bowden','tire weights','foot peg lowering kit rider','z6003','air filter r1100','cxh3cc','f-809-1-1111','odyssey battery','stainless steel screw kit','timing chain','visor','luggage tankbag small 5 lt bmw r1200gs 08 present by bmw motorcycles motorrad','tools hexagonal mandril 22mm for removal of the front wheel','k100 hand guards','wiring','r1100s turn signal','heated insoles','off road','break','bmw k1200lt oem battery','49 liter top case liner','baseplate','r1200st battery','front brake rotor','accessory mount','tiedown','bearings','sae','repair cd','k1200gt barbacks','clutch centering pin','clamp pliers','rear view mirror','pannier rails','r1200s wheel','r1150r heated grips','r1150r brake pads','filler cap wrench','rallye pro jacket','zero gravity','rear foot rest','laminar lip bmw k1300gt','pouch','luggage grid','radar mount','powerflare','signal minder','spoke','cable lube','tach','digital tire gauge','bmw men\'s fleece jacket','me880','banjo bolt','hornig k1200gt','master cylinder cover','hinged cover','r60 exhaust','suspender','front turn signal','kick starter','nav 4','wheel adapter','enduro boots','r75 center stand','bmw gel battery','r1200c rear shock','r1200c tank','alternator tool','hardware','cross bar','dyna iii electronic ignition','k1200s seat','gerbings heated liner','rescue tape','water bottle','k1200s manual','reflective stickers','schnitzer','f800gs panniers','centre stand','k1200lt luggage rack','650-1','volt','crush','powerlet powerbar plus','travel','rear rotor','fog','aeroflow windscreen','k75s oil filter','givi tank bag','sedona gloves','r1150gs brake pads','cleaning kit','bmw brake pads','f650 owners manual','tank bag mount','130 90-17','grip glue','r1200gs clutch','textile','plexus','gs mirror','z6062','bmw k1600gtl','r1200c oil filter wrench','manual cd','bmw armor','k1200rs rack','male plug','mirror safety','drain','3532','hose','f800r tankbag','handle bar end weight','handlebar ends','wheel cleaner','spark','pac-008','bungee anchors','z6032','top box liner','silk gloves','doubler glove','w7dc','switch mount','s1000rr handlebar','r65 seat','r1100rt key','signal mirror','rtp','r1100s wind','replacement headlights','radiator hose','map','pso-004','spark plug gap','spray guard','sportboards','r1200rt backrest','r1200gs risers','z6068','chain tool','z2434','r69s','hornig tank bag','screen laminar','x5','shift lever extension r1200rt','basic kidney belt','bmw reflectors','r1200gs headlight','f809-2-1112','bmw hat','metzeler tourance rear motorcycle tires size 130 80-17','gift certificate','bmw alarm system','calendar','chair','vanson','rear light','rallye2','remote','rokstraps','z6055','lh-22b','acpl.sw','lanyard','air flow jacket','650cs','bmw scarf','bmw r1100s windshield','carbon fiber license plate','primer','k1200s handle bar','hornig r1200rt','oxf.of75','bmw r1100s','k1300gt gps mount','on board computer','side stand enlargement','bmw tire pressure','ratchet','r1200r tank bag','bmw t shirts','ngk dcpr8ekc','s850','k1200gt top case','cover cap rear wheel center cap','bmw k1200lt','baehr cables','accessory socket adapter','touch','dot 4','revit tornado','cam follower','rear indicator','chain guide','right case','strut','chain guard','rid','bmw women','scorpion','oil filter bmw oem','neutral','k&n air filter','r1100r backrest','k1 battery','r1100rt top case','extenda fender','hugger','stuffbay','cold throttle glove','rear mud guard','z6005','fork seal driver','r100r seat','bmw service manual','bmw battery charger plug','0348','fuel container','bearing puller','lapel pin','r1100s grip','differential oil','crampbuster','f650 heated grips','city trousers','bmw navigator mount','r1100rs spark plugs','star socket','commuter jacket','z9050','straps','0600','s1000rr exhaust','r1200gs charger','prowinter','bmw heated grips','canister','s1000rr jacket','gel battery tender','foot peg mounts','bmw sneakers','bosch fr6ddc','sneaker','trunk lock','seize','r1200gs panniers','shirt s1000rr','roll pin','cp a','s1000rr tank bag','rear brake caliper','front indicator','bmw k1200s seat','hand guard spoiler','bmw r1200c windshield','r1150r cover','footpeg lowering kit rider r1200rt','r1150r starter','r1100rt mirror right','bmw mat','ramp','super visor','rear axle','r1200rt oil change kit','womens shirts','control','r1100gs sidestand','blue max chair','trolley','bmw motorrad cap','r1150rt top case','bmw skid plate','cleaning','gift card','top case lock','z6015','brake shoes','side stand switch','bmw lube','r1100gs mirror','bmw mug','certificate','b1167s','icom','f800s battery','clear shot','carbon canister','glare guard','r1200gs throttlemeister','r1100s oil filter wrench','bmw power plug','r1100rt fairing screws','bmw rallye 3 jackets','brazimoto','boxer design bmw k1200r rear seat cover','r1200r exhaust','handle bar risers k1200s','socket charger','bulb socket','tank safety bar','ranger','respro','hub','bmw motorsports','handle bar mount','bmw rain','r1200gs half cover','r1200rtp','bmw summer','fuel rack','f650gs dakar','r80st exhaust','r1200gs led','tenere tent','savanna','slip on exhaust','tensioner','bmw motorrad jacket','touring','ball cap','k clutch tool','044-0405','holiday','bmw intercom','bmw communication system','rtusc','fuel level','r1200gs side stand','silky','blind plug','r65 gas tank','rider\'s manual','hip','thumb swipe','rally jacket','bmw oil caps','foot pump','bungee net','tube repair','pf200','fork seal drift','bmw f650 battery','bumper','r1150gs tail light','rocker cover','r1200c cover','r1150r oil filler cap','k100 grips','bmw wheelie zip-up hoodie','hi vis','bmw pro tour boot','backrest r1150rt','r1200rt side case','116 740','rider','rka-113w','scorpion helmets','k1200rs footpegs','r1100rt sidestand','ratio rite','pkt-067','bmw allround 2 glove','r80rt seat','k1100','r1100s cover','bmw sweatshirt','r1200rt pegs','gerbing heated','bmw gs t-shirt','repair connector','wintermug','k1200s hat','battery hold down','r1200c tank bag','r75 6','reflect 3','180 55 17','rallye 3 boots','blinker bulb','k100 tank','pe120','r1200c gear','sneakerx','converter','rear hub','roadsmart','hand pump','rear hub cap','k1100rs','z8300','r1200gs oil wrench','sump','goretex insert','r90s battery','z5400','brake cylinder','513-042','r1150gs bags','sparkplug cover','bmw topcase','1100','sbl.07.344.100','r1200r service manual','g450x tires','brake resetting tool','f650 turn signal','k1300gt charger','oil drain','case k1200rs','z8300t','bungee net cargo net black motorcycle luggage parts','screw driver','r1150r owners manual','silver function','r1200gs rear splash guard','side deflector','obs','valve spring','floormats','bmw back protector','bmw handle bars','bmw headset','r1150rs windshield','r100 seat','blackberry','bmw key blanks','first gear jackets','r1200st tankbag','pac-007','f800st stock exhaust','bmw synthetic oil','r65 decal','sidi gloves','boxer cup','r1100s key blank','r1200c bar','r1100rs barbacks','r1150gs fuel pump','slipstream','tank r1100r','ring antenna','stainless screws','r1200gs fog','s1000rr battery','s100','bmw f800st','sealing washer','r1200rt bar','s1000rr windshield','r1100s carbon','twisted throttle','bmw shelf','cigarette plug','trinkpak','brake parts','r1100s valve cover','coax','r1200rt accessory shelf','bmw soft case','f800gs manual','rka-163','roadtec','bmw wheels','r1200gs brake lever','r1200c rubber grommet','r1200c tool kit','r1100rt spark plug cover','ribbed v belt','silicone remover','r1200c handle','r2','k75rt piston rings','concours','r1200gs handlebar','can holder','semi sphere','repair kit r1200c','bmw fleece shirt','clearwater krista','bmw motorcycle logo','r90s fairing','r1150gs foot pegs','stunt t shirt','bmw bike cover','r1200rt headlight','high visibility','bmw r1200gs engine guards','tube bag','tire caps','k1200s footpeg','r1200rt city lid','k1200lt rear brakes','fabric tape','r1200gs spoked wheel','k1200s bulbs','r1100rt center stand','r100 stand','bmw windshield','bmw male accessory socket plug','streetcarver','bakup r1100rt','sweater','b1246','rear brake reservoir','standard toolkit','k1200rs filter','r1200c pin','rubber boot','r1200c speedometer','seat tools','rt foot pegs','soft ties','freewheel','fm radio','seat parts','f15','r1150gs starter','bmw owners manual','bmw k75 bars','bmw fanny pack','bmw riders manual','right front turn indicator','k1200lt tail light','k1200s filter','bmw motorcycle jacket','rivet','r1100rs brake','r60 7','r1150r engine','r1100rt coil','rally pro jacket','system case liners','battery r60 6','bmw poster set','bmw gps mount','black reflective tape','bmw soft bag','scott','r1150rt passenger footpeg','bmw k75','r850r windscreen','r1200c luggage rack','bmw r1150r seat','bmw k100rs','rubber funnel','k1200r saddlebags','r1150rt aeroflow','rear view','rally pants','k1100rs tank bag','r1100rt luggage','case r1150r','sport','bmw spark plug socket','repair plug','right foot peg','roll 2','spark wrench','stbm12','r65 switch right','kickshift','harness','firstgear gloves','front foot peg','r80 seat cover','sbl.07.606.100','bmw foot peg','revolution counter','rm6','j&m','r1150r low seat','bmw rally jacket','bmw transition','case mount','black paint','r1200gs wind deflector','rod bearing shell','r1200gs accessory shelf','r1150rt topcase','slip on','sport 2','bmw rallye jacket','rubber strap','r1100gs top case','radar detector cable','bmw r1100 r1150rt carbon top clamp pad by hornig','release tool','sidi vertigo lei','bmw tachometer','sport panniers k1200s','r1100s windscreen','bmc','front abs sensor','car kit','bmw r1100rt','speedbrain g450x','f650 oil filter kit','sidi blade','rear lens','basic cigarette socket kit 48','r1150r tankbag','k1200lt tools','r1200rt mount','r1150rt foot pegs','fork locks','r1200c pannier','rear lock','fanny pack','r100r windshield','r1200rt ztechnik','bmw rack','k1200lt handlebar','r1100gs air filter','502.914 00 09','k1200rs shift lever','r1100rt trunk','k1200rs wind','bmw r1200rt comfort seat','r1100rs tank bag','r1100gs spark plug','r1150gs rear shock','r1100r handlebar riser','k1200s r','k75 headlight bulb','r1150rt shift','cable boot','r75 6 mirror','bmw 49 liter top case','softbag small','r1200r skid plate','blp0002bk','bmw fuel cap','r1100rt abs','bar backs r1200st','r1150rt tool kit','bmw m bike','spine protector','r65 switch','bmw exhaust wrench','cayenne pro','pbr-003','k75s brake','bmw lowering kit','strip','k75s tool kit','front pegs','r1200r repair manual','beads for seat','r1200r riser','r1100rt high mirror','bmw cable gps','k100 tool kit','tclcd','r1200c windscreen','r100 coil','r100s gas cap','bmw f650gs windscreen','k1200gt tank protection','bmw tank','courier','chrome exhaust','bmw final drive tool','tire air','r1200gs footpeg lowering','r1100s headlight','bmw k1200lt center stand','f800s seat','paralever tool','fpt029','fpl014','r1200st oil filter','ring terminal','k1200gt repair manual','k75 key','r1150rs tank bag','skin','r1200rt heated seat','bmw cigarette','r1150rt oil change kit','r1200rt head protection','r1150r comfort','bmw prorain','rear top case','r65 throttle cable','r1200r bar','base gasket','safety light','k100 rider\'s manual','bmw gs boot','bmw tall windshield','r1100s oil filler cap','bulls eye','f800st handle bar riser','r100 decals','bmw rallye pro 2 pant','fh-ab4','r1100r speedometer','remover','650.628 01 09','bmw r1200gs windshield','r1150gs backrest','bmw oem tank bag','raise seat','topcase mirror','r1200rt rear brake pads','fp0046bk','r1200c windshield mounts','bmw take down lights','bmw rain cover','pa061bk','r1150rt comfort seat','red reflector','kryptonite lock','bmw jersey','front signal light','r1200rt rear shock','bmw case lids','bosch yr6lde','bulls eye hose nozzle','r1150rt back rest','ps5010','bulls eye nozzle','r1150gs pegs','sidi air','breathable jackets','bullseye','k1200s footpeg lowering kit','hex wrench','r1100rt hornig','bmw oil coolers','bmw extractor','r1200rt filter wrench','side bag mounts','acc.00.002','kern\'s','rt footpeg','ppc-004','f650gs rear brake pad','k1200s low seat','r1200st panniers','top case mirror','f800s risers','f650 screw','r1200gs fork','k75 brake hose','700.922','strobe','k1200s tank pad','slipon','bmw comfortshell','r1100rt oil filter wrench','felt','k1300gt risers','rear blinker','recon pants','telescopic magnet light','f650gs hand protector','r1200gs filter wrench','bmw filter wrench','trail tech','r1100s risers','f800s exhaust','ckv106','rapido gloves','r1150r rear brake pads','repsol 15w-50','ccb','r1200gs handlebar risers','bmw accessory shelf','bmw 7 series','s1000rr alarm','crane lift','k1200gt bar','bmw antifreeze','bmw trinkpak hydra','rr leather jacket','handbook','stretch kevlar','r1200rt sidestand','pac-022','rk-hd','bmw bearing','bmw 28 liter top case','butane','k1200lt screws','kilimanjaro','r1150rt motorcycle cover','commander','tubular engine bar','r1200gs brake disc','k1200rs oil change');
/* $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);
    }
