/*! * 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 * * Copyright (c) 2008 Widi Harsojo , 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 = { ul : tmp, urlLookup : [""], acOptions : {}, foundClass : ".friend-tab", inputClass : ".send-to-input" } if(options) jQuery.extend(settings, options); var acfb = { params : settings, removeFind : function(o){ acfb.removeUsername(o); jQuery(o).unbind('click').parent().remove(); jQuery(settings.inputClass,tmp).focus(); return tmp.acfb; }, removeUsername: function(o){ var newID = o.parentNode.id.substr( o.parentNode.id.indexOf('-')+1 ); jQuery('#send-to-usernames').removeClass(newID); } } jQuery(settings.foundClass+" img.p").click(function(){ acfb.removeFind(this); }); jQuery(settings.inputClass,tmp).autocompletebp(settings.urlLookup,settings.acOptions); jQuery(settings.inputClass,tmp).result(function(e,d,f){ var f = settings.foundClass.replace(/\./,''); var d = String(d).split(' ('); var un = d[1].substr(0, d[1].length-1); /* Don't add the same user multiple times */ if( 0 === jQuery(settings.inputClass).siblings('#un-' + un).length ) { var ln = '#link-' + un; var l = jQuery(ln).attr('href'); var v = '
  • '+d[0]+' X
  • '; var x = jQuery(settings.inputClass,tmp).before(v); jQuery('#send-to-usernames').addClass(un); jQuery('.p',x[0].previousSibling).click(function(){ acfb.removeFind(this); }); } jQuery(settings.inputClass,tmp).val(''); }); jQuery(settings.inputClass,tmp).focus(); return acfb; }