
/**
 * Provides suggestions for state names (USA).
 * @class
 * @scope public
 */
function StateSuggestions() {
    this.states = [
"Abrasive Tools", "Access Equipment Hire", "Access Material Supplies", "Acoustics Services", "Actuators", "Adhesives", "Advisory Services", "Air Monitoring", "Airport Management", "Aluminium Products", "Analysers", "Anchors", "Apprenticeship", "Architects", "Artworks", "Audio Visual Equipment Hire", "Auditing Services", "Automation & Control", "Barriers", "Bars", "Batching Equipment", "Bearings", "Bending", "Bionergy", "Blocks", "Boats", "Boilers", "Boring Machines", "Bridge Construction", "Bridge Design", "Bridge Elements", "Brushes", "Builders", "Building Cleaning", "Building Design", "Building Engineering", "Building Inspections", "Building Management", "Building Modulars", "Building Renovations", "Building Services", "Cable Installation", "Cable Supplies", "Camera", "Car Equipment", "Car Licences", "Car Rental", "Cathodic Protection", "Ceiling Materials", "Cement Supplies", "Chemical Engineering", "Chemical Equipment", "Chemical Testing", "Training Chemical", "Chillers", "Chutes", "Cleaning Services", "Clothing Supplies", "Coal Testing", "Coatings", "Communication Services", "Communication Systems", "Compressors", "Concrete Precast", "Concrete Products", "Confined Space Equipment", "Connectors", "Construction Induction", "Training Construction", "Containers", "Conveyors", "Cooling Systems", "Corrosion Protection", "Couplings", "Crane Hire", "Crane Supplies", "Crushers", "Cutting & Drilling", "Cutting Tool Hire", "Dams", "Decks & Mezzanines", "Demolition Equipment", "Demolition Services", "Detectors", "Dewatering", "Disability Services", "Dispensers", "Document Management", "Door Supplies", "Drafting", "Drainage Supplies", "Dredging", "Training Driller", "Drilling Equipment", "Drilling Services", "Dryers", "Ducts", "Earthwork Machineries", "Earthwork Machineries Rental", "Electrical Equipment", "Electrical Testing", "Training Electrical", "Electrician Heavy Duties", "Emergency Services", "Emulsion", "Energy Absorption Products", "Energy Testing", "Training Engineering", "Environment Management", "Environment Testing", "Training Environment", "Equipment Brokers", "Training Equipment Operator", "Equipment Testing", "Expansion Joints", "Fall Protection", "Fans", "Fasteners", "Feeders", "Fences", "Fencing Supply", "Films", "Filtration Systems", "Financial Services", "Fire Engineering", "Training Fire Management", "Fire Safety", "Fireproof Materials", "Floor Supplies", "Floor Treatment", "Flora Management", "Fluids", "Forklifts", "Formwork Supplies", "Foundation Services", "Foundry Services", "Framing Products", "Freight Carriers", "Fuel Cells", "Furniture Bathroom", "Furniture Entertainment", "Furniture Kitchen", "Furniture Medical", "Furniture Office", "Furniture Specialised", "Furniture Storage", "Furniture Street", "Gaskets & Washers", "Gatic Products", "General Hardware", "Generators", "Geology", "Geotechnical Design", "Geotechnical Instruments", "Geotechnical Testing", "Geotextile Material", "Geothermal Services", "Glass Supplies", "Graphic Designer", "Grease", "Ground Improvement", "Grouting Equipment Hire", "Grouting Services", "Grouting Supplies", "Guard Systems", "Guidance Equipment", "Hazardous Material", "Heat Exchangers", "Heavy Lifting", "Hoists", "Hoses", "Hydrocyclones", "Incineration", "Industrial Chemicals", "Industrial Cleaning", "Industrial Equipment", "Industrial Instruments", "Industrial Metrology", "Industrial Services", "Instrument Calibration", "Instrument Hire", "Instrument Installation", "Instrument Laboratory", "Insulation Supplies", "Insurance Brokers", "Interior Design", "Internet Services", "Irrigation", "IT&T Services", "Training IT&T", "Jacks", "Joint Repairs", "Laminate Supplies", "Landscaping Material", "Landscaping Services", "Lasers", "Legal Services", "Training Legal", "Lifting Equipment Hire", "Lifts & Platforms", "Lighting", "Liners", "Lining", "Load Restraints", "Loaders & Unloaders", "Lubricants", "Magnets", "Maintenance", "Management Systems", "Training Management", "Manual Handling", "Marine Construction", "Marine Consulting", "Marine Equipment", "Marine Inspections", "Marine Instruments", "Marine Management Services", "Training Marine Operations", "Marketing Services", "Masonry Products", "Material Cutting", "Material Importer", "Material Testing", "Measuring Instruments", "Mechanical Instruments", "Mechanical Services", "Mechanical Testing", "Medical Services", "Meshes", "Meteorological Instruments", "Milling", "Training Mine Safety", "Mineral Equipment", "Mineral Exploration", "Mining Consulting", "Mining Equipment", "Mining Excavation", "Mining Induction", "Mining Infrastructure", "Mining Maintenance", "Mining Operations", "Training Mining Operations", "Mining Services", "Mooring", "Motor Controls", "Noise & Vibrations", "Non Destructive Testing (NDT)", "Office Supplies", "OHS Services", "OHS Testing", "Training OHS", "Oil & Gas Equipment", "Oil & Gas Services", "Training Oil & Gas", "Outdoor Equipment", "Paint Supplies", "Pavement Equipment", "Pavement Products", "Photographic Services", "Photomapping & Computing", "Piling", "Piling Equipment Hire", "Pipe Supply", "Pipe Supports", "Pipeline Consulting", "Pipeline Lining", "Pipeline Maintenance", "Pipeline Offshore", "Pipeline Onshore", "Pipeline Services", "Pipeline Supplies", "Pipeline Testing", "Training Pipeline", "Plasterboard", "Plastic Products", "Plates", "Plugs", "Post Tensioning", "Power Consulting", "Power Conversion", "Power Industrial", "Power Supplies", "Power Tools", "PPE", "Process Equipment", "Project Management", "Property Developers", "Pulleys", "Pump Hire", "Pumps", "Quantity Surveyors", "Quarry Equipment Hire", "Quarry Products", "Rail Consulting", "Rail Infrastructure", "Railroad Equipment", "Raw Chemicals", "Real Estate", "Recruitment Admin & Finance", "Recruitment Construction", "Recruitment Consulting", "Recruitment Engineering", "Recruitment Environment", "Recruitment HR", "Recruitment IT&T", "Recruitment Legal", "Recruitment Manufacturing", "Recruitment Mining & Power", "Recruitment Real Estate", "Recruitment Sciences", "Recruitment Tradesmen", "Recycling", "Reinforced Steel", "Remediation Services", "Training Removalist", "Retail Signs", "Risk Management", "Road Construction", "Road Designer", "Road Equipment Hire", "Road Maintenance", "Roofing", "Rope Access", "Ropes", "Rubber Products", "Safey Equipment", "Salt Production", "Sampling Material", "Training Scaffolder", "Scaffolding Supplies", "Screens", "Sealants", "Seals & Rings", "Security Equipment", "Security Services", "Security Technologies", "Sensors", "Separators", "Services Detection", "Sewer Products", "Shackles", "Sheet Piles", "Shopfitting", "Shoring", "Shotcrete Building", "Shotcrete Civil", "Signs", "Silos", "Site Amenities", "Sizers", "Slings", "Sockets", "Software", "Soil Investigations", "Solar Energy", "Sonars", "Spacers", "Spools", "Sport & Recreation", "Spray Equipment", "Springs", "Stainless Steel Products", "Steel Manufacturers", "Steel Products", "Strata Supports", "Strips", "Structural Repairs", "Surge Suppressors", "Survey Instruments", "Surveyors Building", "Surveyors Environment", "Surveyors Marine", "Surveyors Mining", "Surveyors Rail", "Surveyors Road", "Surveyors Tunnels", "Suspension Systems", "Swimming Pool Services", "Switchgears", "Swivels", "Synthetic Products", "Tanks", "Telecommunication Services", "Tile Supplies", "Timber Products", "Tool Hardware", "Tradesman Bricklaying", "Tradesman Carpenters", "Tradesman Cleaning", "Tradesman Electricians", "Tradesman Gardeners", "Tradesman Glazers", "Tradesman Handyman", "Tradesman Painters", "Tradesman Plumbers", "Tradesman Tilers", "Traffic Control Equipment", "Traffic Control Services", "Trailers", "Transducers", "Transformers", "Transport", "Tree Services", "Trolleys", "Truck Licences", "Truck Rental", "Truck Supplies", "Tube Supply", "Tunnel Construction", "Tunnel Design", "Tyres", "Uninterruptible Power Supplies (UPS)", "Urban Development", "Vacuum", "Valves", "Vessels", "Vibrators", "Wall Material", "Waste Facilities", "Waste Management", "Waste Recycling", "Waste Treatment Equipment", "Water Infrastructure", "Water Management", "Water Saving Material", "Water Testing", "Water Treatment", "Water Treatment Equipment", "Water Wells", "Waterproofing Products", "Waterproofing Services", "Weighing", "Weld Testing", "Training Welder", "Welders", "Welding Equipment", "Welding Equipment Hire", "Winches", "Wind Power", "Window Supplies", "Windposts", "Wires", "Training Working at Heigths", "Poles", "Personal Training", "Barges", "Rendering", "Cladding", "Swimming Pools", "Stonemasons", "Abrasive Blasting"		   

    ];
}

/**
 * Request suggestions for the given autosuggest control. 
 * @scope protected
 * @param oAutoSuggestControl The autosuggest control to provide suggestions for.
 */
StateSuggestions.prototype.requestSuggestions = function (oAutoSuggestControl /*:AutoSuggestControl*/,
                                                          bTypeAhead /*:boolean*/) {
    var aSuggestions = [];
    var sTextboxValue = oAutoSuggestControl.textbox.value;
    
    if (sTextboxValue.length > 0){
    
        //convert value in textbox to lowercase
        var sTextboxValueLC = sTextboxValue.toLowerCase();

        //search for matching states
        for (var i=0; i < this.states.length; i++) { 

            //convert state name to lowercase
            var sStateLC = this.states[i].toLowerCase();
           
            //compare the lowercase versions for case-insensitive comparison
            if (sStateLC.indexOf(sTextboxValueLC) == 0) {

                //add a suggestion using what's already in the textbox to begin it                
                aSuggestions.push(sTextboxValue + this.states[i].substring(sTextboxValue.length));
            } 
        }
    }

    //provide suggestions to the control
    oAutoSuggestControl.autosuggest(aSuggestions, bTypeAhead);
};
