/* Popular phrases - JELLYBELLY - 9:56:43, Mon Feb 6, 2012 */
var asPhrases=new Array ('bertie botts every flavor beans','jelly belly jelly beans','valentines day','outlet','flops','sport beans','valentines_day','beanboozled','jelly beans','every flavour','harry potter','gift boxes','gifts','birthday','flavors','harry potter jelly beans','sugar free','belly flops','snapple','jelly beans per pound','sugar-free jelly belly','50-flavor gift box','nasty flavored jelly beans','harry potter bertie botts every flavor beans','candy corn','buttered popcorn','favors','hello kitty','weird flavors','sunkist','tours','recipes','fruit gems','dip','valentine','bean boozled','sunkist fruit gems','gross flavors','combinations','chocolate covered jelly bellys','cold stone','dr pepper','reagan','valentines day candy','belly flops 2 lb bag','donation request','hello kitty gift box','cocktail classics shaker','jelly bean all flavor list','juicy pear','petite sour hearts','watermelon','tutti fruitti','sour jelly belly','popcorn flavored jelly beans','bertie botts','peter rabbit','cocktail classics','16 oz tubs','strawberry dips','mini bean machine','factory tour','valentine mix','jelly belly ingredients','dispenser','gummi bears','licorice','ingredients','citrus mix','every flavor beans','chocolate dips','raspberries blackberries','berry blue','cinnamon','licorice bridge mix','personalized jelly beans','hearts','jelly bean dispenser','blueberry','hello kitty candy jar','champagne bubbles','gift baskets','cream soda','dr pepper jelly beans','nasty flavors','fruit fantasy','pomegranate','sour hearts','bubble gum','sour cherry','individually wrapped jelly belly','root beer','cocktail','bamboozled','red apple','peas carrots','chocolate frogs','bulk','toasted marshmallow','chili mango','pink jelly beans','licorice pastels','vomit flavor','cotton candy','jobs','games','sour','strawberry cheesecake','very cherry','sizzling cinnamon','coconut','tutti fruitti jelly beans','49 flavors','buttered popcorn jelly beans','cycling jersey','dutch mints','mellocremes','harry potter flavors','conversation beans','jelly belly machine','soda pop shoppe jelly beans','sugar-free gummi bears','alcohol flavors','cantaloupe','beanboozled flavors','cinnamon jelly beans','motion activated','caffeine beans','40 flavor gift box','baby shower favors','careers','strawberry daiquiri','watermelon jelly belly','cherry','sport beans assorted flavors','wedding','pear','peach','history of jelly belly','calories','coffee jelly bellys','margarita','1 oz bags','irregular jelly beans','fruit snacks','cinnamon bears','booger flavor','chocolate pudding','dispensing machine','lollipops','gummi','green apple','chocolate dutch mints','pomegranate jelly belly','lemon','dark chocolate jelly beans','island punch','cocktail flavors','personalized','strawberry jam','french vanilla','raspberry and blackberry candy','raspberry','kosher gummi','pina colada','50 flavor gift box','popcorn','alcohol flavor jelly beans','cotton candy jelly beans','49 assorted flavors','custom candy','store hours','nasty jelly beans','cappuccino','jelly bean games','red raspberry hearts','juicy pear jelly beans','superfruit mix','hours','soda','belly flop flavors','black licorice jelly beans','ronald reagan','smoothie blend','cupid corn','root beer jelly beans','flops jelly beans','jelly belly flops','kiwi','candy dispenser','virtual tour','extreme sport beans','mango','gross jelly bean flavors','ice cream parlor mix','sour jelly beans','kids mix flavors','smoothie','dips flavors','plum','assorted flavors','dark chocolate','marshmallow','irregular','peach jelly beans','gross jelly beans','chocolate jelly bean','birthday cake','machine','all flavors in a list','pear jelly bellies','mint','valentines candy','list of flavors','wisconsin factory hours','chocolate','vehicles','fundraising','honey','licorice jelly beans','fruit bowl','cherry jelly beans','harry potter chocolate frogs','jar','snapple flavors','jelly belly dispenser','baby shower jelly beans','vomit','deluxe valentine mix','white jelly beans','banana flavor jelly beans','raspberry hearts','tropical mix','1st edition bean boozled','kenosha wi','cappuccino jelly bean','jelly bean fleet','tangerine','nutrient information','kosher','licorice jelly belly','history','apple','favors wedding','kids mix','small bags','jordan almonds','orange sherbet','sport','toasted marshmallow jelly beans','orange slices','party favors','store locator','grapefruit','orange jelly beans','gross flavored jelly bellies','cupcakes','unbearably hot cinnamon bears','green jelly beans','caramel corn','cold stone ice cream parlor mix','virtual factory tour','directions to fairfield factory','beanboozled game','flavours','strawberry','flavor guide','hours of operation','popcorn jelly bellys','caramel corn jelly bellies','warranty','fruit salad','allergy information','wild blackberry','top banana','unbearably','bean machines dispensers','all jellybelly flavors','very cherry jelly belly 16 oz','kenosha factory','blue jelly beans','pink grapefruit jelly belly','cocktail jelly beans','flavor card','all natural jelly beans','lemon lime','bubble gum jelly beans','soda pop shoppe bottles','strawberries blueberries','cupcake ideas','tin','fruit bowl mix','bean boozled refills','jelly flops','jelly belly games','coffee','snapple beans','sunkist dark chocolate orange slices','2 lb bag','booger','sport beans cherry','electrolytes','corn','faq','company history','purple jelly beans','tropical','tours in wisconsin','valentine\'s day gift bags','black jelly beans','sunkist lime','superfruit','mosaic','cinnamon gummy bears','coloring sheets','gluten free jelly belly beans','easter','mixed berry smoothie','outlet store locations','yellow jelly beans','splenda','lip gloss','sport beans watermelon','baby shower','promo','orange crush','pink','sunkist orange jelly belly','hello kitty jelly beans','halloween','carrot','lemon drop','chili mango jelly belly','tour times','valentine cupcakes','frog','dog food jelly beans','sizzling cinnamon jelly belly','blue','gems','chocolate covered orange slices','red apple jelly bellies','banana','bike jerseys','jewelry','tangerine jelly beans','contact','wholesale prices','mojito','coconut jelly beans','20 flavors','buttered popcorn jelly belly','centipede jelly beans','sponsorship','valentine candy corn','wedding beans','trademarks','remix','mix','raspberry jelly belly','recipes and menu','peanut free','bertie','sunkist fruit gems wrapped','fruit slices','list of all flavors','champagne','sport beans punch','employment','tropical mix jelly belly','how many jelly belly flavors are there','jelly belly dips','malted milk balls','mint cremes','skunk spray','tangerine jelly belly','soda pop jelly beans','cake','gummy hearts','pear jelly belly jelly beans','thank you','potter','dirt flavor','tutti fruitti jelly belly','red hots','boozled','belly flop case','location','50 flavor assortment','cinnamon jelly belly beans','flops case','blackberries raspberries jellys','sour flavors','mini jelly beans','jelly belly fruit snacks','contact us','information for students','double dare jelly beans','ice cream flavors','jelly belly art','fall festival mix','baskets','art gallery','dr.pepper jelly beans','vomit jelly beans','harry','ice cream','personalized gifts','pick your own flavors','individually wrapped','grape crush','grape jelly belly','custom','jar of jelly beans','fruit bowl jelly bellys','pastel colored licorice pastels','chocolate covered cherries','birthday cake flavor','racine wi','flip top box','peanut','pink lemonade','pomegranate cosmo','sports sponsorship','registered trademarks','orange','box','red jelly beans','almonds','malt balls','peas','drink flavors','assorted jordan almonds','sport jelly beans','candy corn jelly beans','coldstone','bean boozled flavors','pink grapefruit','vanilla jelly bean','jelly belly factory','snapple mix','personalized favors','petite hearts','pomegranate jelly bean','berries','bridge mix','green apple jelly beans','mint jelly beans','bertie botts beans','9 oz bag','jelly belly','kitty','sour trout','chocolate mints','plum jelly belly','chocolate deluxe mix','custom mix','tin of jelly bellys','autumn mix flavors','kosher candy corn','fish','bag','ice shaving machine','white','cocktail mix','strawberry gummies','art','hot cinnamon jelly beans','bulk jelly belly','sunkist tangerine','sour jelly belly recipes','kosher individually wrapped','what is the history of the jelly bean','t-shirt','lime','sport beans lemon lime','conversation','35','patriot','baby gift','sponsorship request','coconut jelly belly','list of 50 flavors','cranberry','every flavor','email address','lemon lime jelly beans','margarita flavor','kina grannis','green','peach bellini','tropical flavors','purple jelly belly','sunkist fruit gems grapefruit','fun facts','grape','been boozled','chocolate covered','red white and blue','jelly belly jelly beans mix','licorice mix','valentine mellocreme','juicy pear jelly belly','50','apple jelly belly','swedish fish','gluten','hours open','factory','jelly belly candy corn','bean machine','jersey','wholesale','international shipping','wedding themes','hot pink','barf flavor','ornament','lime jelly beans','bargain','make your own flavor','kids','recipe for fruit salad','dinosaur','autumn mix','raspberry candy','16 oz','pet rat','rat','lemon jelly belly','deluxe mix','raspberry gummies','jelly belly warranty','event center','social responsibility','cake recipes','heart shaped','2.6 lb case','tour prices','hello','very cherry jelly belly','spinner','cheesecake','skunk jelly beans','soda pop','fairfield hours','free shipping','16 oz jelly belly','recipe book','birthday remix','tutti','shipping','how to mix flavors','gummy rat','flag','skunk flavor','worms','lollibeans','honey bean','dirt flavored jelly beans','decorative cupcake ideas','kiwi jelly beans','online games','jelly belly tour','sport beans fruit punch','candy jar','tub','centerpiece','harry potter jelly bean flavors','sour apple','tours in milwaukee wisconsin','twist','sour cherry jelly beans','bubbles','factory hours','cinnamon candy corn','beanboozled spinner game','1.45 oz bags','apparel','red jelly bellies','gummi worms','honey jelly beans','free stuff','valentines gifts','dog food','9000','bean boozled spinner','cupid','create own mix','bean art maker','20 flavor box','spicy','volume discount','grass flavor','sports assorted','dare flavors','autumn','canned dog food','apple pie','prices','bertie botts every flavour beans','assorted','jelly bean art','purple','candles','hats','20 flavor gift box','outlet store','raspberries and blackberries jelly belly','bulk tubs','shaker','small gifts','earwax jelly beans','pineapple jelly belly','2 oz bags','licorice buttons','pink candy corn','pencil shavings','shipping cost','wholesale information','natural','bertie botts in bulk','sport beans caffeine','jelly belly university','dutch','sour neon inchworms','pleasant prairie wisconsin tour information','icky','candy hearts','umbrella','customized tins','sport beans display','shipping information','16 oz jelly beans','apple pie a la cold stone','baby wipes','cream','pineapple','sour worms','gummy lizards','smoothies flavor','pleasant prairie wisconsin','sport beans apparel','jellybelly flavors','wild blackberry jelly belly','chocolate heart','cherry dips','ronald reagan jar','shipping info','gross jelly belly','map to factory','personalize bags','10 flavor gift box','fruit basket','jelly belly virtual tour','lime green jelly beans','1 oz jelly beans','contact info','blue jelly belly','reagan float','retail stores','antioxidant','brown jelly belly','35 oz','rotten egg','jelly belly fleet','icky flavored jelly beans','harry potter jelly belly','red raspberry','tin cans','icky flavors','raspberry chocolate dips','driving directions','address','pumpkin','pectin','jelly belly mini bean machine','bean blast','recipies','bertie bott\'s every-flavour beans','victorian','human resources','key chain','natural colors','jelly belly sport beans','grass jelly belly','athlete sponsorship','are jelly bellys gluten free','jelly belly petite sour hearts','white candy','valentine hearts','train ride','jelly belly fairfield','portraits in jelly bellys','official flavors','privacy','any','lime jelly bellys','pyramid bags','spicy mango','grass','jelly belly address','address for fairfield jb factory','stores','49','chili','0.35 oz','plush','what is a belly flop','3 lb clear can','belly','aw','49 flavor jelly beans','barf','factory location','sugar-free jelly belly calories','we dare you','bamboozled spinner','choose your own flavors','north chicago','kosher sunkist fruit gems','party perfect cupcakes','harry potter beans','water bottles','how are they made','clear can','harry potter jelly belly beans','keychain','jelly belly fish','event space','cafe latte','jelly belly vehicles','list of jelly belly flavors','how many flavors do they have','fruit salad recipe','sports beans cycle','sport bottle','10 lbs bulk','privately owned','blackberries raspberries jells','trop','history of the beginning','flag pin','small boxes','cinnamon jelly belly','publicity','tropical mix flavors','napa ca','sour cherry jelly belly','distributors','mix and match','valentine basket','french vanilla jelly belly','socks','coin dispenser','classic candies','jelly belly assorted flavors','newest flavor','pillow','about the jelly belly factorie','beenboozled','cupcake decorating','what inspired the name jelly belly','chocolate mix','names of jelly beans','vitamin c','chocolate raisins','vanilla','banana split','chocolate almonds','peppermint jelly belly','drink','pet dinosaur','8204','chocolate malt','thanksgiving','chocolate malted milk balls','sour neon worms','gold','pick flavors','individually wrapped mints','products','chocolate eggs','jelly belly in pleasant prairie wi','where are you located','make your own assortment','personalized cello bags','chewy','orange dips','jellybelly art gallery','every flavour beans','power beans','graduation','bubble gum jelly belly','usb','wedding cake','bertie bots every flavor beans','beanboozled 2nd edition','honey flavored jelly beans','berry blue jelly belly','milk chocolate raisins','pleasant prairie','tree nuts','cycling','mint chocolate chip','dimples','sport beans cycling jersey','boozled spinner','fall festival','calendar','30','thank you boxes','bean art gallery','sours gift box','ronald reagan box','jelly belly candles','united kingdom','1 pound','sunkist grapefruit','devotion','wholesale price list','wedding mints','honey lovers','bean gallery','unbearably hot','2.5','9000-pomegranat','pick','buttery','victorian mellocreme hearts','valentine sour hearts','valentine\'s','little bags','lemon fruit jelly slices','factory outlet','cupid candy corn','wisconsin facility','herman goelitz','sugar free gummy bears','earthworm','track shipping','peach jelly belly','jelly belly bean boozled','jelly bean chocolate dips','valentine sour candy','return policy','jelly belly factory in fairfield','flavor game','snapple bottles','martini','coconut chocolate jelly beans','cupcake recipes','cream soda jelly bean','gross flavor game','grapefruit jelly belly','mini','pear jelly beans','blackberry case','bellini','botts beans','coconut dips','shop','trout','boston baked beans','raspberry fruit gems','acai','bertie botts evry flavor beans','jelly belly catalog','dish','sour chewy hearts','sugar free easter','17 oz box','10 lb bag','mellocreme hearts','petite','jelly belly cocktail classics','candy mix','original eight flavors of jelly beans','wallpaper','superfruit mix flavors','laxative','very cherry tub','baby carrot','sour bulk','toys','plush jelly belly','shipping prices','cocktail shaker','soap','beatrix potter','sour gummy hearts','food content','tropical jelly beans','assorted green','question and answer','mojito jelly beans','tart','company address','sour watermelon','colada','jelly belly mini bean bin','sausage','weird and nasty flavors','gross','baby apparel','harry potter bertie','raspberry dips','big bean','ideas','sport beans variety pack','light pink pink and orange','chocolate covered jellies','calender','university tour','jawbreakers','directions','assorted mix','dirt','mini candy bin','7.5 oz','bertie bots','barrell','bunny','serving size','lavender','financial','are jelly belly nut free','sugar-free jelly belly 3.1 oz bag','individual flavors','bertie bots every flavour beans','valentines day jelly beans','50 assorted','pleasant prairie hours','gummy butterflies','st patricks day','cold stone ice cream','9.5 oz','licorice bridge','baby bottle candy','10-flavor','20-flavor','find a store','pencil','clock','0.35','smooth n melty','centennial jar','10 lbs assortment','quick energy','20 lb','bertie botts flavors','8 original flavors','email','mix ups','40-flavor','assorted bags','ac power adapter','purple jelly','management','jelly belly rat','shamrock','1.6 oz box','brookstone candy dispenser','flip top','corn on the cobs','taste','jelly belly 40','1 pound bag of jelly belly beans','aw cream soda','jelly belly cocktail','a','visit factory','chocolate covered cherry jelly bellys','apply','football team colors','beatrix','real fruit juice','gummi gator','jelly beans in a bag','candy flavors','icky jelly beans','refills for bean boozled','dr pepper soda','chocolate dips gift box','gator','corporate gifts','pizza flavor','bertie crochue','book','wisconsin tour','birthday party favors','herman rowland','frequently asked questions','jelly bean cycling jersey','who made jelly beans','what are belly flops','belt','jelly belly tour wisconsin','tour schedule','cereal','festival mix','valentine petite sours','chocolate dips strawberry','peter','sizzling cinnamon bulk','beanboozled refills','dr peppe','10 sours','owner','jelly belly email','valentine conversation beans','official flavor list','week day tours','opening and closing times','berry blue bulk','university','boozled bulk','sour peach','valentine\'s mix','racine','blueberry bulk','red apple 16 oz','what is the history of the jelly belly','ice blue mint','history of jelly beans','mini bean bin','bean bin','spiders','chocolate covered raisins','festival','jelly bean combinations','raspberry fruit slices','bertie bott\'s jelly beans','valentine beans','big red','pie jelly beans','strawberry blonde','chocolate orange','bean boozled first edition','spinner game','harry potter bertie botts','download logo','tarantula','fish candy','jelly belly cycling jersey','unbearably hot cinnamon','assorted flavors guide','strawberry kiwi','psychedelic jawbreakers','jelly candy','boxed beans','san francisco factory tour','popcorn jelly beans','jelly bean factory tour','1oz bags','lemon lime sports','hour of operations','dog food flavor','parlor mix','code','mini scoop','cinnamon beans','jelly belly tube','hanging jelly belly','love','ou certified','shoppe','botts','assorted gift boxes','harry potter bertie bott\'s jelly beans','3.5','10 individual flavors','fun stuff','christmas tree','pear flavored jelly beans','root beer ingredients','sunkist lemon jelly belly','sunkist yellow','bertie botts every flavour','beanboozled naughty or nice','pet tarantula','2.6','sunkist fruit gem box','the original name of jellybellys company','10 lb jelly beans','beanboozled flavor guide','jelly belly poster','bean boozled jelly beans','cancel order','production schedule','1515','jellybelly flavor guide','one flavor bags','bin','fairfield factory','cocktail bulk','chocolate balls','jelly belly taffy','tie tops','jelly beans stores','bertie boot','sour bag','rubber','bargain outlet','list of beans','cherry cheesecake','sweet jelly belly','dr pepper dispenser','chocolate bears','dark pink','jelly belly bargain outlet','washington','jelly belly coloring pages','mini machine','chocolate chip','daisy','in your arms','jelly bean factory','beanwear','when were jelly bellys made','bertie botts every flavour jelly beans','guess','fairfield virtual tour','175','sunkist fruit','jelly belly locations','lean beans','cold stone birthday cake remix','beab boozled','purple 16 oz tubs','muffin','chocolate covered fruit','store times','target market','series 1 beanboozled','bean boozled christmas','brookstone','visiting hours','flavor gift box','classic','weekend hours','shipping method','why 49 flavors','definition of beanboozled','bowl','flip','jelly bean toothpaste flavor','shipment','sizzling hearts','candy factory tours','bertie-botts','bertie botts flavor beans','shipping time','jellybelly tour','milk balls','fruit bulk','35 oz jelly belly','jelly berry','tour photos','bertie beans','canada shipping','kosher green','jelly belly bean factory','athletes','dennis walters','schedule','jelly belly candy bank','dragees surprise de bertie crochue','visit jelly belly factory','spinner gift box','coconut jelly','bertie botts every','jelly belly factory hours','export','round','outlet hours','clusters','pleasant prairie wi','hungary','specialty','daily tours','jelly belly candy jar','jelly belly island punch','bean pod','jelly bean apothecary jars','shop locator','bean world','charm','fun flavors','beabboozled','list','jelly bean variety pack','branboozled','10 lb cherry','carrot cake','jelly belly by the pound','cocktail classics tube','newsletter','garden','jelly belly 50 flavors','exquisite christmas','1.6','jelly belly beanboozled','jelly belly 50','jelly belly 50-flavor gift box','jelly beanboozled','mixed fruit 16 oz','gross beans','usps','bertie botts every flavor jelly bean','bertie bottas','harry potter jelly','assorted flavors bulk','sunkist lime jelly belly','happy','kenosha hours','jelly belly splenda','bean boozled spinne','beanboozled spinner gift box','50 flavor gift','jingle','d\'anjou','20 assorted flavors 2.6 lb case','retail outlet','weird','1415','jelly belly sunkist citrus mix','red and green candy corn','jelly belly gems','chocolate very cherry','bertie bottss','jelly belly blanket','all chocolate','candy coated malted balls','retail displays','bean boozler','process of making jelly beans','20 flavor christmas box','bread','chocolate peppermint','jellybelly dispenser','jelly belly smoothies','jelly belly superfruit mix','banboozled','product donation','directions to visitor center','ideas for baby shower','jelly belly assorted flavors 0.35 oz bags','5007','beeanboozled','knit caps','bbean boozled','one fabulous five gift box','shake','20 count gift box','bean game','christmas sleeve','dragées surprise de bertie crochut','jb cupcake','50 box','look alike','logo tie','bell','christmas corn','volume','calculate shipping','bubble gum beans','athens','bertie botss','polo shirts','dreidel cake','christmas tree lighting','random','open a store','truffle','harry potter jelly belly flavors','bertie box','chocolate bells','small tin','beanormous','school project','retail price','tx','order belly flops','awards','bean boozled spin','sour five flavor','beanboozled boxes','all toys','beanboozled spinner','square','jelly bean portrait','science','sunkist orange jelly belly 16 oz','women','wreath','jelly belly 10','overnight shipping','christmas cupcake ideas','blonde','halloween breakfast','wi store','how to mix','mini mints','sugar-free jelly belly individually wrapped','visit','bertie bottts','halloween parade','company tours','coffin shaped cake','bean dispenser','recall','buttered pop corn','publisher','jelly belly in wisconsin','bulk sugar plums','1 cup','jellybelly factory','pleasant','jellybelly factory tour','chocolate coffee beans','assorted flavors sugar free','bulk cocktail mix','peekaboo tins','wisconsin store hours','ean boozled','halloween game','sport shirt','alley information','sugar-free jelly belly popcorn','coffin','sunday tours','commuter mug','premium tin','chopsticks','how to videos','jelly belly plant tour','weekend tour hours','beanboozled spin','jelly belly 2011 pro cycling team jersey','bulk fall mix','bertie beanboozled','fantasy','tour east','contributions','saturday hours','get more recipes','double','boxed jelly','brand','jelly belly socks','jelly belly cycle team jersey','fruit blend','sport beans gluten free','sport jelly','fleece','czech','bulk caramel corn','jelly belly warehouse tour','shell candy','bertie\'s botts','shiping','beanboozled chart','california wedding','bean pouch','jelly belly balls','bertie\'s botts every flavor beans','strollers','jelly belly warehouse wisconsin','bake decorate','sour clear classic','conference','sunkist can','bean in the usa','chocolate pastel mints','sport berry','father','chocolate bar','beanboozled 1.6 oz box','compare','shop hours','beanboozled one','coin machine','sour jelly belly lemon','jelly dips','candies per pound','jelly belly bunny corn','bulk french vanilla','bulk mint','beanboozled_-_1.6_oz_box');
/* $Revision: 8536 $
 *
 */

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=true;

    // 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
                    ,
                    'AdditionalInput' : []
                };
    /* 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.appendChild(theDropDown);
            
            // 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';
          if ( theSearchbox.clientWidth < __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ] )
          {
            theDropDown.style.width = __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ];
          }
          else
          {
            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=true;
        // 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=' + escape(__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);
            }
            
            // Additional input parameters
            var addInput = __SLI_customisations[__SLI_ApplicationName ][ 'AdditionalInput' ];
            var extraURL = '';
            for(var i = 0; i < addInput.length; ++i  )
            {
              var el = document.getElementById(addInput[i]);
              if(el !== null)
              {
                var tagname = el.tagName.toLowerCase();
                var name = el.name;
                var value = el.value;
                if((tagname == 'select' || tagname == 'input') && name)
                {
                  extraURL += '&' + escape(name) + '=' + escape(value);
                }
              }
            }

            document.location.href = __SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ] + escape(__AutoComplete[id]['element'].value) + asugvar + extraURL;
          }
          else
          {
            if(f.onsubmit)
            {
              if(f.onsubmit() !== false)
              {
                f.submit();
              }
            }
            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);
    }
