function searchContainer() {
	/* First, we'll create our DataSource, using the Script
	 *    Node DataSource constructor.  We pass in the base URL
	 *       and the schema that we'll use to map the returned 
	 *          data. */
	this.oDataSource = new YAHOO.widget.DS_ScriptNode("http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=YahooDemo&output=json&site=what-to-gift.com&site=www.romancestuck.com&site=www.diamondhelpers.com&site=muchos.in&site=www.birthdaythoughts.com&site=www.unique-gift-ideas.net&site=www.gifts.com&site=www.findgift.com&site=www.uniquebirthdaygiftsideasformen.com&site=www.mygiftee.com&site=www.someonespoilme.com&site=www.brilliantproposals.com&site=www.everythingvalentinesday.com&site=www.romanticproposalideas.net&site=www.best-marriage-proposals.com&site=www.marriage-proposal-ideas.com&site=www.lovingwhisper.com&site=www.proposalstories.com&site=www.engagementringsandthings.com&site=www.best-us-romantic-getaways.com&site=www.perfect-romantic-ideas.com&site=www.everything4mom.com&site=www.giftideasetc.com&site=www.theydeserveit.com&site=www.giftsnideas.com&site=www.allfreecrafts.com&site=www.allfreecrafts.com&site=www.card-making-world.com&site=www.making-handmade-cards.com&site=www.making-greeting-cards.com&site=greetingcardguide.com&site=www.southworth.com&site=www.christmas-card-ideas.com&site=www.sendpapergreetingcards.com&site=www.smartartcards.com&region=us", ["ResultSet.Result","Title","Url","ClickUrl"]);

	/* With all of the pieces in hand, we can now instantiate
	 *    and configure our AutoComplete instance: */
	this.oAutoComp = new YAHOO.widget.AutoComplete(
			"searchinput", // the input field's ID
	"searchcontainer", // the suggestion container's ID
	this.oDataSource, // the DataSource
	{  // here, we begin our configuration options:
		autoHighlight: false, //We don't want the first
																	 //result highlighted by default.
		animVert: true,		  //Yes, animate the suggestion
																	 //container...
		animHoriz: false,	  //but only vertically, not
																	 //horizontally.
		animSpeed: 0.3,		  //The animation should last
																	 //0.3 seconds.
		minQueryLength: 3,	  //Don't search for results until
																	 //the user has entered at least
																	 //4 characters in the input field. 
		useShadow: true,	  //Build in a drop-shadow.
		prehighlightClassName: "yui-ac-prehighlight"
																 //Use a different highlight style
																 //for mouse-over than for arrow-to. 
	});

	/* Formatting your result is the key to having a customized
	 *    look-and-feel for your AutoComplete implementation.  Here,
	 *       we do a very simple markup for the result title and the
	 *          URL for the result. */
	this.oAutoComp.formatResult = function(oResultItem, sQuery) {
			 return "<em>" + oResultItem[0] + "</em><br />" + oResultItem[1];
	};

	/* What do we want to do when an item in the suggestion container
	 * 	   is selected (either by arrowing and hitting enter or by clicking)?
	 * 	   	   We'll subscribe to the itemSelectEvent and when it fires use its
	 * 	   	   	   arguments to set a new location for the current page. */
	this.oAutoComp.itemSelectEvent.subscribe(function(type, args) {
		/* now, we go off to the destination page chosen by
	 *  		   the user from the AutoComplete suggestion list: */
		//location.href = (args[2][2]);	
		window.open(args[2][2],"_blank");
	});

	/* Here we'll hack AutoComplete a little bit.  AutoComplete is
	 *    designed to put the selected item's primary value in the
	 *       input field.  In this case, that would be the result's Title
	 *          field.  We don't really want that -- we're using AutoComplete
	 *             not to do type-ahead but to map to instant results.  So, we'll
	 *                suppress the standard behavior by overriding a private method
	 *                   on this specific AutoComplete instance: */
	this.oAutoComp._updateValue = function() {
		 return true;
	}

	/* We want to have, at the bottom of the search container, a 
	 *    link making it obvious to the user how s/he can find *all*
	 *       results for the current query.  We'll use AutoComplete's
	 *          built-in footer mechanism for that, adding a link to which
	 *             we'll wire a form-submit event: */
//	this.oAutoComp.setFooter("<a id='sitesearchshowall' href='#'>View all search results.</a>");

	/* Here's the wiring for the form submission on our footer link.
	 *    Note that we use the YUI Event Utility to add this listener --
	 *       this is part of YUI Core. */
//	YAHOO.util.Event.on("sitesearchshowall", "click", function(e) {
			 /* The Dom Collection's get method is similar to
	 *         document.getElementById in this instance: */
//		 YAHOO.util.Dom.get("sitesearchform").submit();
//	});

	/* We'll use one of AutoComplete's built-in events to position the
	 *    suggestion container directly below the input field.  AutoComplete
	 *       handles this for you in non-centered implementations; for notes
	 *          on the centered implementation shown here, see Jenny Han Donnelly's
	 *             tutorial: http://developer.yahoo.com/yui/examples/autocomplete/ac_ysearch_json.html */
	this.oAutoComp.doBeforeExpandContainer = function(oTextbox, oContainer, sQuery, aResults) {
		var pos = YAHOO.util.Dom.getXY(oTextbox);
		pos[1] += YAHOO.util.Dom.get(oTextbox).offsetHeight + 2;
		YAHOO.util.Dom.setXY(oContainer,pos);

		return true;
	};
}
