(function($){$.fn.fcbkcomplete=function(opt){return this.each(function(){function init(){createFCBK();preSet();addInput(0)}function createFCBK(){element.hide();element.attr("multiple","multiple");if(element.attr("name").indexOf("[]")==-1){element.attr("name",element.attr("name")+"[]")}holder=$(document.createElement("ul"));holder.attr("class","holder");element.after(holder);complete=$(document.createElement("div"));complete.addClass("facebook-auto");complete.append('<div class="default">'+options.complete_text+"</div>");feed=$(document.createElement("ul"));feed.attr("id",elemid+"_feed");complete.prepend(feed);holder.after(complete)}function preSet(){element.children("option").each(function(i,option){option=$(option);if(option.hasClass("selected")){addItem(option.text(),option.val(),true);option.attr("selected","selected")}else{option.removeAttr("selected")}var sAvatar="";var bLocked=false;var image=$("#myfeed_avatar");cache.push({caption:option.text(),value:option.val(),avatar:sAvatar,locked:bLocked});search_string+=""+(cache.length-1)+":"+option.text()+";"})}function addItem(title,value,preadded){var title=title.replace(/\(.*\)/,"");var check_duplicate=false;$("#"+elemid+" .bit-box").each(function(){var exist_value=$(this).attr("rel");if(exist_value==value){check_duplicate=true}});if(check_duplicate!=true){var li=document.createElement("li");var txt=document.createTextNode(title);var aclose=document.createElement("a");$(li).attr({"class":"bit-box",rel:value});$(li).prepend(txt);$(aclose).attr({"class":"closebutton",href:"#"});li.appendChild(aclose);holder.append(li);$(aclose).click(function(){$(this).parent("li").fadeOut("fast",function(){removeItem($(this))});return false})}if(!preadded){$("#"+elemid+"_annoninput").remove();var _item;addInput(1);if(element.children("option[value="+value+"]").length){_item=element.children("option[value="+value+"]");_item.get(0).setAttribute("selected","selected");if(!_item.hasClass("selected")){_item.addClass("selected")}}else{var _item=$(document.createElement("option"));_item.attr("value",value).get(0).setAttribute("selected","selected");_item.attr("value",value).addClass("selected");_item.text(title);element.append(_item)}if(options.onselect.length){funCall(options.onselect,_item)}}holder.children("li.bit-box.deleted").removeClass("deleted");feed.hide()}function removeItem(item){element.children("option[value="+item.attr("rel")+"]").removeAttr("selected");element.children("option[value="+item.attr("rel")+"]").removeClass("selected");item.remove();if(options.onremove.length){funCall(options.onremove,item)}}function addInput(focusme){var li=$(document.createElement("li"));var input=$(document.createElement("input"));li.attr({"class":"bit-input",id:elemid+"_annoninput"});input.attr({type:"text","class":"maininput"});holder.append(li.append(input));input.focus(function(){complete.fadeIn("fast")});input.blur(function(){complete.fadeOut("fast")});holder.click(function(){input.focus();if(feed.length&&input.val().length){feed.show()}else{feed.hide();complete.children(".default").show()}});input.keyup(function(event){var etext=input.val();if(event.keyCode==8&&etext.length==0){feed.hide();if(holder.children("li.bit-box.deleted").length==0){holder.children("li.bit-box:last").addClass("deleted");return false}else{holder.children("li.bit-box.deleted").fadeOut("fast",function(){removeItem($(this));return false})}}if(event.keyCode!=40&&event.keyCode!=38&&etext.length!=0){counter=0;if(options.json_url){if(options.json_cache&&json_cache){bindEvents()}else{var self=this;if(!self.dataloaded){self.dataloaded=true;$.getJSON(options.json_url+"?tag="+etext,null,function(data){options.json_data=data;self.dataloaded=true;addMemebers(etext,data);json_cache=true;bindEvents()})}}}else{bindEvents()}if(options.json_data){addMemebers(etext,options.json_data);bindEvents()}complete.children(".default").hide();feed.show()}});if(focusme){setTimeout(function(){input.focus();complete.children(".default").show()},1)}}function addMemebers(etext,data){feed.html("");if(data!=null&&data.length){$.each(data,function(i,val){if(typeof cache[val.value]=="undefined"){cache[val.value]={caption:val.caption,value:val.value,avatar:val.avatar,locked:val.locked,rurl:val.rurl};search_string+=""+(val.value)+":"+val.caption+";";itemsLen++}})}var maximum=options.maxshownitems<itemsLen?options.maxshownitems:itemsLen;var filter="i";if(options.filter_case){filter=""}var myregexp=eval("/(?:^|;)\\s*([a-zA-Z0-9]{32})\\s*:[^;]*?"+etext+"[^;]*/g"+filter);var match=myregexp.exec(search_string);var content="";while(match!=null&&maximum>0){var id=match[1];var object=cache[id];if(options.filter_selected&&element.children("option[value="+object.value+"]").hasClass("selected")){}else{content+='<li rel="'+object.value+'" '+((object.rurl)?'alt="'+object.rurl+'"':"")+">"+((object.locked)?"<u></u>":"")+((object.avatar!="")?'<img src="'+object.avatar+'"/>':"")+itemIllumination(object.caption,etext)+"</li>";counter++;maximum--}match=myregexp.exec(search_string)}feed.append(content);if(counter>options.height){feed.css({height:(options.height*24)+"px",overflow:"auto"})}else{feed.css("height","auto")}}function itemIllumination(text,etext){eval("var text = text.replace(/"+etext.toLowerCase()+"/gi,'<strong>'+etext+'</strong>');");return text}function bindFeedEvent(){feed.children("li").mouseover(function(){feed.children("li").removeClass("auto-focus");$(this).addClass("auto-focus");focuson=$(this)});feed.children("li").mouseout(function(){$(this).removeClass("auto-focus");focuson=null})}function removeFeedEvent(){feed.children("li").unbind("mouseover");feed.children("li").unbind("mouseout");feed.mousemove(function(){bindFeedEvent();feed.unbind("mousemove")})}function bindEvents(){var maininput=$("#"+elemid+"_annoninput").children(".maininput");bindFeedEvent();feed.children("li").unbind("click");feed.children("li").click(function(){var option=$(this);if(options.redirect){window.location.href=option.attr("alt")}else{addItem(option.text(),option.attr("rel"))}feed.hide();complete.hide()});maininput.unbind("keydown");maininput.keydown(function(event){if(event.keyCode!=8){holder.children("li.bit-box.deleted").removeClass("deleted")}if(event.keyCode==13&&focuson!=null){var option=focuson;if(options.redirect){window.location.href=option.attr("alt")}else{addItem(option.text(),option.attr("rel"))}complete.hide();event.preventDefault();focuson=null;return false}if(event.keyCode==13&&focuson==null){if(options.newel){var emailPattern=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;var value=$(this).val();if(options.bannewel||emailPattern.test(value)){addItem(value,value);complete.hide();event.preventDefault();focuson=null}}return false}if(event.keyCode==40){removeFeedEvent();if(focuson==null||focuson.length==0){focuson=feed.children("li:visible:first");feed.get(0).scrollTop=0}else{focuson.removeClass("auto-focus");focuson=focuson.nextAll("li:visible:first");var prev=parseInt(focuson.prevAll("li:visible").length,10);var next=parseInt(focuson.nextAll("li:visible").length,10);if((prev>Math.round(options.height/2)||next<=Math.round(options.height/2))&&typeof(focuson.get(0))!="undefined"){feed.get(0).scrollTop=parseInt(focuson.get(0).scrollHeight,10)*(prev-Math.round(options.height/2))}}feed.children("li").removeClass("auto-focus");focuson.addClass("auto-focus")}if(event.keyCode==38){removeFeedEvent();if(focuson==null||focuson.length==0){focuson=feed.children("li:visible:last");feed.get(0).scrollTop=parseInt(focuson.get(0).scrollHeight,10)*(parseInt(feed.children("li:visible").length,10)-Math.round(options.height/2))}else{focuson.removeClass("auto-focus");focuson=focuson.prevAll("li:visible:first");var prev=parseInt(focuson.prevAll("li:visible").length,10);var next=parseInt(focuson.nextAll("li:visible").length,10);if((next>Math.round(options.height/2)||prev<=Math.round(options.height/2))&&typeof(focuson.get(0))!="undefined"){feed.get(0).scrollTop=parseInt(focuson.get(0).scrollHeight,10)*(prev-Math.round(options.height/2))}}feed.children("li").removeClass("auto-focus");focuson.addClass("auto-focus")}})}function addTextItem(value){if(options.newel){feed.children("li[fckb=1]").remove();if(value.length==0){return}var li=$(document.createElement("li"));li.attr({rel:value,fckb:"1"}).html(value);li.addClass("clear_left");feed.prepend(li);counter++}else{return}}function funCall(func,item){var _object="";for(i=0;i<item.get(0).attributes.length;i++){if(item.get(0).attributes[i].nodeValue!=null){_object+='"_'+item.get(0).attributes[i].nodeName+'": "'+item.get(0).attributes[i].nodeValue+'",'}}_object="{"+_object+" notinuse: 0}";eval(func+"("+_object+")")}var options=$.extend({json_url:null,json_cache:false,json_data:null,height:"10",newel:false,filter_case:false,filter_hide:false,complete_text:"Start to type...",maxshownitems:30,onselect:"",onremove:"",redirect:false},opt);var holder=null;var feed=null;var complete=null;var counter=0;var cache=new Array();var json_cache=true;var search_string="";var focuson=null;var element=$(this);var elemid=element.attr("id");var itemsLen=0;init();return this})}})(jQuery);