/*
 * jQuery plugin: autoCompletefb(AutoComplete Facebook)
 * @requires jQuery v1.2.2 or later
 * using plugin:jquery.autocomplete.js
 *
 * Credits:
 * - Idea: Facebook
 * - Guillermo Rauch: Original MooTools script
 * - InteRiders <http://interiders.com/> 
 *
 * Copyright (c) 2008 Widi Harsojo <wharsojo@gmail.com>, http://wharsojo.wordpress.com/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
 
jQuery.fn.autoCompletefb = function(options) 
{

	var tmp = this;
	var settings = 
	{
		div         : tmp,
		urlLookup  : [""],
		acOptions  : {},
		foundClass : ".acfb-data",
		inputClass : ".acfb-input"
	}
	
	var acfb = 
	{
		params  : settings,
		getData : function()
		{	
			if(options) jQuery.extend(settings, options);
			inputid=options['inputid'];
			divid=options['divid'];
			colorclass=options['colorclass'];
			colornew=options['colornew'];
			var result = '';
		    jQuery(settings.foundClass,tmp).each(function(i)
			{
				if (i>0)result+=',';
			    result += jQuery('div',this).html();
		    	
			});
			return result;
		},
		clearData : function()
		{	
			if(options) jQuery.extend(settings, options);
			inputid=options['inputid'];
			divid=options['divid'];
			colorclass=options['colorclass'];
			colornew=options['colornew'];
		    jQuery(settings.foundClass,tmp).remove();
			jQuery(settings.inputClass,tmp).focus();
			if(jQuery('#makeinput') != null)
			jQuery('#makeinput').show();
			jQuery('#'+inputid).removeClass(colornew);
			jQuery('#'+inputid).addClass(colorclass);
			jQuery('#'+divid).show();
			return tmp.acfb;
		},
		removeFind : function(o){
			if(options) jQuery.extend(settings, options);
			inputid=options['inputid'];
			divid=options['divid'];
			colorclass=options['colorclass'];
			colornew=options['colornew'];
			if(jQuery('#makeinput') != null)
			jQuery('#makeinput').show();
			jQuery(o).unbind('click').parent().remove();
			jQuery(settings.inputClass,tmp).focus();
			jQuery('#'+inputid).removeClass(colornew);
			jQuery('#'+inputid).addClass(colorclass);
			jQuery('#'+divid).show();
			return tmp.acfb;
		}
	}
	
	jQuery(settings.foundClass+" img.p").click(function(){
	acfb.removeFind(this);
	});
	
		if(options) jQuery.extend(settings, options);
		inputid=options['inputid'];
		divid=options['divid'];
		colorclass=options['colorclass'];
		colornew=options['colornew'];

		jQuery(settings.inputClass,tmp).autocomplete(settings.urlLookup,settings.acOptions);
		jQuery(settings.inputClass,tmp).result(function(e,d,f){
			var data = acfb.getData();

			var f = settings.foundClass.replace(/\./,'');
			if (data.indexOf(d) == -1)
			{
				//width = ((d.toString().length)*8);
				//width='50';
				var v = '<div class="'+f+'"><div>'+d+'</div> <img class="p" src="j/autocomplete/delete.gif"/></div>';
			}
			var x = jQuery('#'+divid,tmp).before(v);
			jQuery('.p',x[0].previousSibling).click(function(){
			acfb.removeFind(this);
			});
		
			jQuery(settings.inputClass,tmp).val('');/*.focus()*/
			jQuery('#'+inputid).addClass(colorclass);
			jQuery('#'+divid).hide();
	});
	//jQuery(settings.inputClass,tmp).focus();
	return acfb;
	
}

