/**
 * Provides suggestions for gifts 
 * @class
 * @scope public
 */
function GiftSuggestions() {
    this.gift = [
"Argentina",
"Armenia",
"Australia",
"Austria",
"Azerbaijan",
"Bahamas",
"Bahrain",
"Bangladesh",
"Barbados",
"Belarus",
"Belgium",
"Belize",
"Benin",
"Bolivia",
"Bosnia and Herzegovina",
"Botswana",
"Brazil",
"Bulgaria",
"Burma",
"Burundi",
"Cambodia",
"Cameroon",
"Canada",
"Central African Republic",
"Chile",
"China",
"Colombia",
"Costa Rica",
"Croatia",
"Cyprus",
"Czech Republic",
"Denmark",
"Dominica",
"Dominican Republic",
"Ecuador",
"Egypt",
"El Salvador",
"Estonia",
"Fiji",
"Finland",
"France",
"Georgia",
"Germany",
"Greece",
"Grenada",
"Guatemala",
"Haiti",
"Honduras",
"Hong Kong",
"Hungary",
"Iceland",
"India",
"Indonesia",
"Ireland",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Jordan",
"Kazakhstan",
"Kenya",
"Kiribati",
"Korea",
"Kuwait",
"Kyrgyzstan",
"Laos",
"Latvia",
"Lebanon",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macedonia",
"Madagascar",
"Malaysia",
"Malta",
"Mexico",
"Moldova",
"Monaco",
"Mongolia",
"Morocco",
"Netherlands",
"Netherlands Antilles",
"New Zealand",
"Norway",
"Oman",
"Pakistan",
"Palau",
"Panama",
"Paraguay",
"Peru",
"Philippines",
"Poland",
"Portugal",
"Puerto Rico",
"Romania",
"Russia",
"Saint Lucia",
"Saudi Arabia",
"Singapore",
"Slovakia",
"Slovenia",
"South Africa",
"Spain",
"Sri Lanka",
"Swaziland",
"Sweden",
"Switzerland",
"Syria",
"Taiwan",
"Tajikistan",
"Tanzania",
"Thailand",
"Trinidad and Tobago",
"Turkey",
"Turkmenistan",
"UAE",
"UK",
"Ukraine",
"USA",
"Uzbekistan",
"Venezuela",
"Vietnam"
    ];
}

/**
 * Request suggestions for the given autosuggest control. 
 * @scope protected
 * @param oAutoSuggestControl The autosuggest control to provide suggestions for.
 */
GiftSuggestions.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 gifts
        for (var i=0; i < this.gift.length; i++) { 

            //convert gift name to lowercase
            var sGiftLC = this.gift[i].toLowerCase();
           
            //compare the lowercase versions for case-insensitive comparison
            if (sGiftLC.indexOf(sTextboxValueLC) == 0) {

                //add a suggestion using what's already in the textbox to begin it                
                aSuggestions.push(sTextboxValue + this.gift[i].substring(sTextboxValue.length));
            } 
        }
    }

    //provide suggestions to the control
    oAutoSuggestControl.autosuggest(aSuggestions, bTypeAhead);
};

