

_b.AutoSuggest.prototype.setLocalSuggestions = function (jsondata, input){
	if (input != this.fld.value)
		return false;
	
	
	
	this.aSug = [];
	if(jsondata.results!=null && jsondata.results.length!=null)
		for (var i=0;i<jsondata.results.length;i++)
		{
			if(jsondata.results[i].value.toLowerCase().indexOf(input.toLowerCase())>-1){
			//if(jsondata.results[i].value.substr(0,input.length).toLowerCase()==input.toLowerCase())
				
				
				this.aSug.push(  { 'id':jsondata.results[i].id, 'value':jsondata.results[i].value, 'info':jsondata.results[i].info,'obj':jsondata.results[i] }  );
			}
		}
	else if(jsondata!=null && jsondata.length!=null)
		for (var i=0;i<jsondata.length;i++)
		{
			//alert("info"+(jsondata[i].value.substr(0,input.length).toLowerCase())+":"+input.toLowerCase());
			if(jsondata[i].value.toLowerCase().indexOf(input.toLowerCase())>-1){
			//if(jsondata[i].value.substr(0,input.length).toLowerCase()==input.toLowerCase())
				
				this.aSug.push(  { 'id':jsondata[i].id, 'value':jsondata[i].value, 'info':jsondata[i].info,'obj':jsondata[i] }  );
			}
	
		}
	
		this.idAs = "as_"+this.fld.id;
		

	this.createList(this.aSug);
}




_b.AutoSuggest.prototype.createList = function(arr)
{
	var pointer = this;
	
	
	
	// get rid of old list
	// and clear the list removal timeout
	//
	_b.DOM.remE(this.idAs);
	this.killTimeout();
	
	
	// if no results, and shownoresults is false, do nothing
	//
	if (arr.length == 0 && !this.oP.shownoresults)
		return false;
	
	
	// create holding div
	//
	var div = _b.DOM.cE("div", {id:this.idAs, className:this.oP.className});	
	
	var hcorner = _b.DOM.cE("div", {className:"as_corner"});
	var hbar = _b.DOM.cE("div", {className:"as_bar"});
	var header = _b.DOM.cE("div", {className:"as_header"});
	header.appendChild(hcorner);
	header.appendChild(hbar);
	div.appendChild(header);
	
	
	//create container div
	var cdiv=_b.DOM.cE("div", {id:"as_cdiv",className:"as_scrollable"});
	//create container for scroller;
	//var ccdiv=_b.DOM.cE("div", {id:"as_cdiv",className:"as_cscrollable"});
	// create and populate ul
	var ul = _b.DOM.cE("ul", {id:"as_ul"});
		
	
	
	
	// loop throught arr of suggestions
	// creating an LI element for each suggestion
	//
	for (var i=0;i<arr.length;i++)
	{
		// format output with the input enclosed in a EM element
		// (as HTML, not DOM)
		//
		
		var val = arr[i].value;
		var st = val.toLowerCase().indexOf( this.sInp.toLowerCase() );
		var output = '<em class="as_smallfont">' +  val.substring(0,st) + '</em><em class="as_smallfont as_blue">' + val.substring(st, st+this.sInp.length) + '</em><em class="as_smallfont">' + val.substring(st+this.sInp.length)+'</em>';
		
		
		var span 		= _b.DOM.cE("span", {className:"as_smallfont"}, output, true);
		if (arr[i].info != "" && this.oP.showinfo==true)
		{
			var br			= _b.DOM.cE("br", {});
			span.appendChild(br);
			var small		= _b.DOM.cE("small", {className:"as_smallerfont"}, arr[i].info);
			span.appendChild(small);
		}
		
		var a 			= _b.DOM.cE("a");
		var tsp= _b.DOM.cE("span", {className:"tsp"}, " ");
		a.appendChild(tsp);
		
		var tl 		= _b.DOM.cE("span", {className:"tl"}, " ");
		var tr 		= _b.DOM.cE("span", {className:"tr"}, " ");
		tsp.appendChild(tl);
		tsp.appendChild(tr);
		
		a.appendChild(span);
		
		a.name = i+1;
		a.onclick = function () { pointer.setHighlightedValue(); return false; };
		a.onmouseover = function () { pointer.setHighlight(this.name); };
		
		var li = _b.DOM.cE(  "li", {}, a  );
		
		ul.appendChild( li );
	}
	
	
	// no results
	//
	if (arr.length == 0 && this.oP.shownoresults)
	{
		var li = _b.DOM.cE(  "li", {className:"as_warning"}, this.oP.noresults  );
		ul.appendChild( li );
	}
	cdiv.appendChild(ul);	
	div.appendChild(cdiv);
	//cdiv.appendChild( ccdiv );
	
	//new ScrollControl(ccdiv, {'createControls': true});
	//div.appendChild(ul);
	
	
	
	var fcorner = _b.DOM.cE("div", {className:"as_corner"});
	var fbar = _b.DOM.cE("div", {className:"as_bar"});
	var footer = _b.DOM.cE("div", {className:"as_footer"});
	footer.appendChild(fcorner);
	footer.appendChild(fbar);
	div.appendChild(footer);
	
	 
	
	// get position of target textfield
	// position holding div below it
	// set width of holding div to width of field
	//
	var pos = _b.DOM.getPos(this.fld);
	
	
	div.style.left 		= pos.x + "px";
	div.style.top 		= ( pos.y + this.fld.offsetHeight + this.oP.offsety ) + "px";
	if(!$defined(this.oP.minWidth) || isNaN(this.oP.minWidth))this.oP.minWidth=0;
	if(this.fld.offsetWidth>this.oP.minWidth)	
		div.style.width 	= this.fld.offsetWidth + "px";
	else
		div.style.width 	= this.oP.minWidth + "px";
	
	
	// set mouseover functions for div
	// when mouse pointer leaves div, set a timeout to remove the list after an interval
	// when mouse enters div, kill the timeout so the list won't be removed
	//
	div.onmouseover 	= function(){ pointer.killTimeout() };
	//div.onmouseout 		= function(){ pointer.resetTimeout() };


	// add DIV to document
	//
	document.getElementsByTagName("body")[0].appendChild(div);
	
	
	
	// currently no item is highlighted
	//
	this.iHigh = 0;
	if (arr.length > 0)
	this.setHighlight(1);
	
	
	
	
	// remove list after an interval
	//
	//var pointer = this;
	
	//this.toID = setTimeout(function () { pointer.setHighlightedValue(); }, this.oP.timeout);
};



