From 0cfb16bff7d74431f879ad1dc8e59906625eaf1b Mon Sep 17 00:00:00 2001 From: Westin Shafer Date: Wed, 23 Jan 2013 12:31:45 -0600 Subject: [PATCH 1/2] Moved Initialization on autocomplete. Fixes issue #22 --- js/jquery.taghandler.js | 150 ++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/js/jquery.taghandler.js b/js/jquery.taghandler.js index b0131e1..c0e29af 100644 --- a/js/jquery.taghandler.js +++ b/js/jquery.taghandler.js @@ -262,6 +262,81 @@ along with this program. If not, see < http://www.gnu.org/licenses/ >. $("
").attr({ id: tagContainer.id + "_loader", title: "Saving Tags" }).addClass("tagLoader").appendTo(tagContainerObject.parent()); } + // adds autocomplete functionality for the tag names + if (opts.autocomplete && typeof($.fn.autocomplete) == 'function' && opts.initLoad) { + $(inputField).autocomplete({ + source: tags.availableTags, + select: function (event, ui) { + var $el = $(this); + if (!checkTag($.trim(ui.item.value), tags.assignedTags)) { + if (opts.maxTags > 0 && tags.assignedTags.length >= opts.maxTags) { + alert('Maximum tags allowed: ' + opts.maxTags); + } + else { + var newTag = $.trim(ui.item.value); + var rc = 1; + if (typeof(opts.onAdd) == "function") { + rc = opts.onAdd.call(this, newTag); + } + if (rc || typeof(rc) == "undefined") { + tags = addTag(this, newTag, tags, opts.sortTags); + if (opts.updateURL !== '' && opts.autoUpdate) { + saveTags(tags, opts, tagContainer.id); + } + $(inputField).autocomplete("option", "source", tags.availableTags); + if (typeof(opts.afterAdd) == "function") { + opts.afterAdd.call(this, newTag); + } + } + } + $el.focus(); + } + $el.val(""); + return false; + }, + minLength: opts.minChars + }); + } + // Make an AJAX request to get the list of tags based on typed data + else if (opts.autocomplete && typeof($.fn.autocomplete) == 'function') { + $(inputField).autocomplete({ + source: function (request, response) { + opts.getData[opts.queryname] = request.term; + var lastXhr = $.getJSON(opts.getURL, opts.getData, function (data, status, xhr) { + response(data.availableTags); + }); + }, + select: function (event, ui) { + var $el = $(this); + if (!checkTag($.trim(ui.item.value), tags.assignedTags)) { + if (opts.maxTags > 0 && tags.assignedTags.length >= opts.maxTags) { + alert('Maximum tags allowed: ' + opts.maxTags); + } + else { + var newTag = $.trim(ui.item.value); + var rc = 1; + if (typeof(opts.onAdd) == "function") { + opts.onAdd.call(this, newTag); + } + if (rc || typeof(rc) == "undefined") { + tags = addTag(this, $.trim(ui.item.value), tags, opts.sortTags); + if (opts.updateURL !== '' && opts.autoUpdate) { + saveTags(tags, opts, tagContainer.id); + } + if (typeof(opts.afterAdd) == "function") { + opts.afterAdd.call(this, newTag); + } + } + } + $el.focus(); + } + $el.val(''); + return false; + }, + minLength: opts.minChars + }); + } + // initializes the tag lists // tag lists will be pulled from a URL if (opts.getURL !== '' && opts.initLoad) { @@ -429,81 +504,6 @@ along with this program. If not, see < http://www.gnu.org/licenses/ >. } }); - // adds autocomplete functionality for the tag names - if (opts.autocomplete && typeof($.fn.autocomplete) == 'function' && opts.initLoad) { - $(inputField).autocomplete({ - source: tags.availableTags, - select: function (event, ui) { - var $el = $(this); - if (!checkTag($.trim(ui.item.value), tags.assignedTags)) { - if (opts.maxTags > 0 && tags.assignedTags.length >= opts.maxTags) { - alert('Maximum tags allowed: ' + opts.maxTags); - } - else { - var newTag = $.trim(ui.item.value); - var rc = 1; - if (typeof(opts.onAdd) == "function") { - rc = opts.onAdd.call(this, newTag); - } - if (rc || typeof(rc) == "undefined") { - tags = addTag(this, newTag, tags, opts.sortTags); - if (opts.updateURL !== '' && opts.autoUpdate) { - saveTags(tags, opts, tagContainer.id); - } - $(inputField).autocomplete("option", "source", tags.availableTags); - if (typeof(opts.afterAdd) == "function") { - opts.afterAdd.call(this, newTag); - } - } - } - $el.focus(); - } - $el.val(""); - return false; - }, - minLength: opts.minChars - }); - } - // Make an AJAX request to get the list of tags based on typed data - else if (opts.autocomplete && typeof($.fn.autocomplete) == 'function') { - $(inputField).autocomplete({ - source: function (request, response) { - opts.getData[opts.queryname] = request.term; - var lastXhr = $.getJSON(opts.getURL, opts.getData, function (data, status, xhr) { - response(data.availableTags); - }); - }, - select: function (event, ui) { - var $el = $(this); - if (!checkTag($.trim(ui.item.value), tags.assignedTags)) { - if (opts.maxTags > 0 && tags.assignedTags.length >= opts.maxTags) { - alert('Maximum tags allowed: ' + opts.maxTags); - } - else { - var newTag = $.trim(ui.item.value); - var rc = 1; - if (typeof(opts.onAdd) == "function") { - opts.onAdd.call(this, newTag); - } - if (rc || typeof(rc) == "undefined") { - tags = addTag(this, $.trim(ui.item.value), tags, opts.sortTags); - if (opts.updateURL !== '' && opts.autoUpdate) { - saveTags(tags, opts, tagContainer.id); - } - if (typeof(opts.afterAdd) == "function") { - opts.afterAdd.call(this, newTag); - } - } - } - $el.focus(); - } - $el.val(''); - return false; - }, - minLength: opts.minChars - }); - } - // sets the input field to show the autocomplete list on focus // when there is no value $(inputField).focus(function () { From 45b1d72622801089efaf264acb59d3f6db8a4cbb Mon Sep 17 00:00:00 2001 From: Westin Shafer Date: Wed, 13 Feb 2013 09:26:47 -0600 Subject: [PATCH 2/2] Updated Minified Version with fixes for issue #22 --- js/jquery.taghandler.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/jquery.taghandler.min.js b/js/jquery.taghandler.min.js index 5406a00..5e001f8 100644 --- a/js/jquery.taghandler.min.js +++ b/js/jquery.taghandler.min.js @@ -1 +1 @@ -(function($){var methods={getSerializedTags:function(){var currentTags=[];$(this).find("li.tagItem").each(function(i,e){currentTags.push($(e).text())});return currentTags.join(',')},getTags:function(){var currentTags=[];$(this).find("li.tagItem").each(function(i,e){currentTags.push($(e).text())});return currentTags},version:function(){return"1.3.0"}};$.fn.tagHandler=function(options){if(typeof(options)=='object'||typeof(options)=='undefined'){var opts=$.extend({},$.fn.tagHandler.defaults,options);debug($(this),opts);return this.each(function(){if(!$(this).is('ul')){return true}var tagContainer=this;var tagContainerObject=$(tagContainer);if(!tagContainer.id){var d=new Date();tagContainer.id=d.getTime()}tagContainerObject.wrap('
');tagContainerObject.addClass(opts.className+"Container");if(opts.allowEdit){tagContainerObject.html('
  • ')}var inputField=tagContainerObject.find(".tagInputField");var tags=[];tags.availableTags=[];tags.originalTags=[];tags.assignedTags=[];if(opts.updateURL!==''){if(!opts.autoUpdate){$("
    ").attr({id:tagContainer.id+"_save",title:"Save Tags"}).addClass("tagUpdate").click(function(){saveTags(tags,opts,tagContainer.id)}).appendTo(tagContainerObject.parent())}$("
    ").attr({id:tagContainer.id+"_loader",title:"Saving Tags"}).addClass("tagLoader").appendTo(tagContainerObject.parent())}if(opts.getURL!==''&&opts.initLoad){$.ajax({url:opts.getURL,cache:false,data:opts.getData,dataType:'json',success:function(data,text,xhr){if(data.availableTags.length){tags.availableTags=data.availableTags.slice();tags.originalTags=tags.availableTags.slice()}if(opts.sortTags){tags=sortTags(tags)}if(data.assignedTags.length){tags.assignedTags=data.assignedTags.slice();if(opts.sortTags){tags=sortTags(tags)}tags=addAssignedTags(opts,tags,inputField,tagContainer)}if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.allowEdit){$(inputField).autocomplete("option","source",tags.availableTags)}},error:function(xhr,text,error){debug(xhr,text,error);alert(opts.msgError)}})}else if(opts.getURL!==''){tags.assignedTags=opts.assignedTags.slice();if(opts.sortTags){tags=sortTags(tags)}tags=addAssignedTags(opts,tags,inputField,tagContainer)}else{if(opts.availableTags.length){tags.availableTags=opts.availableTags.slice();tags.originalTags=tags.availableTags.slice()}if(opts.sortTags){tags=sortTags(tags)}if(opts.assignedTags.length){tags.assignedTags=opts.assignedTags.slice();if(opts.sortTags){tags=sortTags(tags)}tags=addAssignedTags(opts,tags,inputField,tagContainer)}if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.allowEdit&&opts.initLoad){$(inputField).autocomplete("option","source",tags.availableTags)}}if(opts.allowEdit){tagContainerObject.delegate("li.tagItem","click",function(){var $el=$(this);var rc=1;if(typeof(opts.onDelete)=="function"){rc=opts.onDelete.call(this,$.trim($el.text()))}if(rc){tags=removeTag($el,tags,opts.sortTags);if(opts.updateURL!==''&&opts.autoUpdate){saveTags(tags,opts,tagContainer.id)}}if(typeof(opts.afterDelete)=="function"){opts.afterDelete.call(this,$.trim($el.text()))}if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.initLoad){$(inputField).autocomplete("option","source",tags.availableTags)}});$(inputField).keypress(function(e){var $el=$(this);if(e.which===13||e.which===44||e.which===opts.delimiter.charCodeAt(0)){e.preventDefault();if($el.val()!==""&&!checkTag($.trim($el.val()),tags.assignedTags)){if(!opts.allowAdd&&!checkTag($.trim($el.val()),tags.availableTags)){alert(opts.msgNoNewTag);return}if(opts.maxTags>0&&tags.assignedTags.length>=opts.maxTags){alert('Maximum tags allowed: '+opts.maxTags)}else{var newTag=$.trim($el.val());var rc=1;if(typeof(opts.onAdd)=="function"){rc=opts.onAdd.call(this,newTag)}if(rc||typeof(rc)=="undefined"){tags=addTag(this,newTag,tags,opts.sorttags);if(opts.updateURL!==''&&opts.autoUpdate){saveTags(tags,opts,tagContainer.id)}if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.initload){$(inputField).autocomplete("option","source",tags.availableTags)}if(typeof(opts.afterAdd)=="function"){opts.afterAdd.call(this,newTag)}}}$el.val("");$el.focus()}}});$(inputField).keydown(function(e){var $el=$(this);if(e.which===8&&$el.val()===""){var deleted_tag=tagContainerObject.find(".tagItem:last").text();if(typeof(opts.onDelete)=="function"){opts.onDelete.call(this,$.trim(deleted_tag))}tags=removeTag(tagContainerObject.find(".tagItem:last"),tags,opts.sortTags);if(opts.updateURL!==''&&opts.autoUpdate){saveTags(tags,opts,tagContainer.id)}if(typeof(opts.afterDelete)=="function"){opts.afterDelete.call(this,$.trim(deleted_tag))}if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.initLoad){$(inputField).autocomplete("option","source",tags.availableTags)}$el.focus()}});if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.initLoad){$(inputField).autocomplete({source:tags.availableTags,select:function(event,ui){var $el=$(this);if(!checkTag($.trim(ui.item.value),tags.assignedTags)){if(opts.maxTags>0&&tags.assignedTags.length>=opts.maxTags){alert('Maximum tags allowed: '+opts.maxTags)}else{var newTag=$.trim(ui.item.value);var rc=1;if(typeof(opts.onAdd)=="function"){rc=opts.onAdd.call(this,newTag)}if(rc||typeof(rc)=="undefined"){tags=addTag(this,newTag,tags,opts.sortTags);if(opts.updateURL!==''&&opts.autoUpdate){saveTags(tags,opts,tagContainer.id)}$(inputField).autocomplete("option","source",tags.availableTags);if(typeof(opts.afterAdd)=="function"){opts.afterAdd.call(this,newTag)}}}$el.focus()}$el.val("");return false},minLength:opts.minChars})}else if(opts.autocomplete&&typeof($.fn.autocomplete)=='function'){$(inputField).autocomplete({source:function(request,response){opts.getData[opts.queryname]=request.term;var lastXhr=$.getJSON(opts.getURL,opts.getData,function(data,status,xhr){response(data.availableTags)})},select:function(event,ui){var $el=$(this);if(!checkTag($.trim(ui.item.value),tags.assignedTags)){if(opts.maxTags>0&&tags.assignedTags.length>=opts.maxTags){alert('Maximum tags allowed: '+opts.maxTags)}else{var newTag=$.trim(ui.item.value);var rc=1;if(typeof(opts.onAdd)=="function"){opts.onAdd.call(this,newTag)}if(rc||typeof(rc)=="undefined"){tags=addTag(this,$.trim(ui.item.value),tags,opts.sortTags);if(opts.updateURL!==''&&opts.autoUpdate){saveTags(tags,opts,tagContainer.id)}if(typeof(opts.afterAdd)=="function"){opts.afterAdd.call(this,newTag)}}}$el.focus()}$el.val('');return false},minLength:opts.minChars})}$(inputField).focus(function(){if($(inputField).val()===''&&opts.autocomplete&&typeof($.fn.autocomplete)=='function'&&opts.initLoad){$(inputField).autocomplete("search","")}});tagContainerObject.click(function(){$(inputField).focus()})}this.getTags=function(){return tags.assignedTags};return 1})}else if(typeof(options)=="string"&&methods[options]){return methods[options].apply(this,Array.prototype.slice.call(arguments,1))}};$.fn.tagHandler.defaults={allowEdit:true,allowAdd:true,assignedTags:[],autocomplete:false,autoUpdate:false,availableTags:[],className:'tagHandler',debug:false,delimiter:'',getData:{},getURL:'',initLoad:true,maxTags:0,minChars:0,msgNoNewTag:"You don't have permission to create a new tag.",msgError:"There was an error getting the tag list.",onAdd:{},onDelete:{},afterAdd:{},afterDelete:{},queryname:'q',sortTags:true,updateData:{},updateURL:''};function checkTag(value,tags){var check=false;jQuery.each(tags,function(i,e){if(e===value){check=true;return false}});return check}function removeTagFromList(value,tags){jQuery.each(tags,function(i,e){if(e===value){tags.splice(i,1)}});return tags}function addTag(tagField,value,tags,sort){tags.assignedTags.push(value);tags.availableTags=removeTagFromList(value,tags.availableTags);$("
  • ").addClass("tagItem").text(value).insertBefore($(tagField).parent());if(sort){tags=sortTags(tags)}return tags}function removeTag(tag,tags,sort){var value=$(tag).text();tags.assignedTags=removeTagFromList(value,tags.assignedTags);if(checkTag(value,tags.originalTags)){tags.availableTags.push(value)}$(tag).remove();if(sort){tags=sortTags(tags)}return tags}function sortTags(tags){tags.availableTags=tags.availableTags.sort();tags.assignedTags=tags.assignedTags.sort();tags.originalTags=tags.originalTags.sort();return tags}function saveTags(tags,opts,tcID){var sendData={tags:tags.assignedTags};$.extend(sendData,opts.updateData);$.ajax({type:'POST',url:opts.updateURL,cache:false,data:sendData,dataType:'json',beforeSend:function(){if($("#"+tcID+"_save").length){$("#"+tcID+"_save").fadeOut(200,function(){$("#"+tcID+"_loader").fadeIn(200)})}else{$("#"+tcID+"_loader").fadeIn(200)}},complete:function(){$("#"+tcID+"_loader").fadeOut(200,function(){if($("#"+tcID+"_save").length){$("#"+tcID+"_save").fadeIn(200)}})}})}function addAssignedTags(opts,tags,inputField,tagContainer){$(tags.assignedTags).each(function(i,e){if(opts.allowEdit){$("
  • ").addClass("tagItem").text(e).insertBefore($(inputField).parent())}else{$("
  • ").addClass("tagItem").css("cursor","default").text(e).appendTo($(tagContainer))}tags.availableTags=removeTagFromList(e,tags.availableTags)});return tags}function debug(tagContainer,options){if(options.debug&&window.console&&window.console.log){window.console.log(tagContainer);window.console.log(options);window.console.log($.fn.tagHandler.defaults)}}})(jQuery); \ No newline at end of file +(function(b){function l(b,a){var e=!1;jQuery.each(a,function(a,f){if(f===b)return e=!0,!1});return e}function m(b,a){jQuery.each(a,function(e,g){g===b&&a.splice(e,1)});return a}function n(d,a,e,g){e.assignedTags.push(a);e.availableTags=m(a,e.availableTags);b("
  • ").addClass("tagItem").text(a).insertBefore(b(d).parent());g&&(e=j(e));return e}function q(d,a,e){var g=b(d).text();a.assignedTags=m(g,a.assignedTags);l(g,a.originalTags)&&a.availableTags.push(g);b(d).remove();e&&(a=j(a));return a}function j(b){b.availableTags= b.availableTags.sort();b.assignedTags=b.assignedTags.sort();b.originalTags=b.originalTags.sort();return b}function k(d,a,e){d={tags:d.assignedTags};b.extend(d,a.updateData);b.ajax({type:"POST",url:a.updateURL,cache:!1,data:d,dataType:"json",beforeSend:function(){b("#"+e+"_save").length?b("#"+e+"_save").fadeOut(200,function(){b("#"+e+"_loader").fadeIn(200)}):b("#"+e+"_loader").fadeIn(200)},complete:function(){b("#"+e+"_loader").fadeOut(200,function(){b("#"+e+"_save").length&&b("#"+e+"_save").fadeIn(200)})}})} function p(d,a,e,g){b(a.assignedTags).each(function(f,c){d.allowEdit?b("
  • ").addClass("tagItem").text(c).insertBefore(b(e).parent()):b("
  • ").addClass("tagItem").css("cursor","default").text(c).appendTo(b(g));a.availableTags=m(c,a.availableTags)});return a}function r(d,a){a.debug&&(window.console&&window.console.log)&&(window.console.log(d),window.console.log(a),window.console.log(b.fn.tagHandler.defaults))}var s={getSerializedTags:function(){var d=[];b(this).find("li.tagItem").each(function(a, e){d.push(b(e).text())});return d.join(",")},getTags:function(){var d=[];b(this).find("li.tagItem").each(function(a,e){d.push(b(e).text())});return d},version:function(){return"1.3.0"}};b.fn.tagHandler=function(d){if("object"==typeof d||"undefined"==typeof d){var a=b.extend({},b.fn.tagHandler.defaults,d);r(b(this),a);return this.each(function(){if(!b(this).is("ul"))return!0;var e=this,d=b(e);e.id||(e.id=(new Date).getTime());d.wrap('
    ');d.addClass(a.className+"Container"); a.allowEdit&&d.html('
  • ');var f=d.find(".tagInputField"),c=[];c.availableTags=[];c.originalTags=[];c.assignedTags=[];""!==a.updateURL&&(a.autoUpdate||b("
    ").attr({id:e.id+"_save",title:"Save Tags"}).addClass("tagUpdate").click(function(){k(c,a,e.id)}).appendTo(d.parent()),b("
    ").attr({id:e.id+"_loader",title:"Saving Tags"}).addClass("tagLoader").appendTo(d.parent()));a.autocomplete&&"function"==typeof b.fn.autocomplete&& a.initLoad?b(f).autocomplete({source:c.availableTags,select:function(d,h){var t=b(this);if(!l(b.trim(h.item.value),c.assignedTags)){if(0=a.maxTags)alert("Maximum tags allowed: "+a.maxTags);else{var g=b.trim(h.item.value),j=1;"function"==typeof a.onAdd&&(j=a.onAdd.call(this,g));if(j||"undefined"==typeof j)c=n(this,g,c,a.sortTags),""!==a.updateURL&&a.autoUpdate&&k(c,a,e.id),b(f).autocomplete("option","source",c.availableTags),"function"==typeof a.afterAdd&&a.afterAdd.call(this, g)}t.focus()}t.val("");return!1},minLength:a.minChars}):a.autocomplete&&"function"==typeof b.fn.autocomplete&&b(f).autocomplete({source:function(c,e){a.getData[a.queryname]=c.term;b.getJSON(a.getURL,a.getData,function(a){e(a.availableTags)})},select:function(d,h){var f=b(this);if(!l(b.trim(h.item.value),c.assignedTags)){if(0=a.maxTags)alert("Maximum tags allowed: "+a.maxTags);else{var g=b.trim(h.item.value);"function"==typeof a.onAdd&&a.onAdd.call(this,g);c=n(this, b.trim(h.item.value),c,a.sortTags);""!==a.updateURL&&a.autoUpdate&&k(c,a,e.id);"function"==typeof a.afterAdd&&a.afterAdd.call(this,g)}f.focus()}f.val("");return!1},minLength:a.minChars});""!==a.getURL&&a.initLoad?b.ajax({url:a.getURL,cache:!1,data:a.getData,dataType:"json",success:function(d){d.availableTags.length&&(c.availableTags=d.availableTags.slice(),c.originalTags=c.availableTags.slice());a.sortTags&&(c=j(c));d.assignedTags.length&&(c.assignedTags=d.assignedTags.slice(),a.sortTags&&(c=j(c)), c=p(a,c,f,e));a.autocomplete&&("function"==typeof b.fn.autocomplete&&a.allowEdit)&&b(f).autocomplete("option","source",c.availableTags)},error:function(b,c,d){r(b,c,d);alert(a.msgError)}}):""!==a.getURL?(c.assignedTags=a.assignedTags.slice(),a.sortTags&&(c=j(c)),c=p(a,c,f,e)):(a.availableTags.length&&(c.availableTags=a.availableTags.slice(),c.originalTags=c.availableTags.slice()),a.sortTags&&(c=j(c)),a.assignedTags.length&&(c.assignedTags=a.assignedTags.slice(),a.sortTags&&(c=j(c)),c=p(a,c,f,e)), a.autocomplete&&("function"==typeof b.fn.autocomplete&&a.allowEdit&&a.initLoad)&&b(f).autocomplete("option","source",c.availableTags));a.allowEdit&&(d.delegate("li.tagItem","click",function(){var d=b(this),h=1;"function"==typeof a.onDelete&&(h=a.onDelete.call(this,b.trim(d.text())));h&&(c=q(d,c,a.sortTags),""!==a.updateURL&&a.autoUpdate&&k(c,a,e.id));"function"==typeof a.afterDelete&&a.afterDelete.call(this,b.trim(d.text()));a.autocomplete&&("function"==typeof b.fn.autocomplete&&a.initLoad)&&b(f).autocomplete("option", "source",c.availableTags)}),b(f).keypress(function(d){var h=b(this);if(13===d.which||44===d.which||d.which===a.delimiter.charCodeAt(0))if(d.preventDefault(),""!==h.val()&&!l(b.trim(h.val()),c.assignedTags))if(!a.allowAdd&&!l(b.trim(h.val()),c.availableTags))alert(a.msgNoNewTag);else{if(0=a.maxTags)alert("Maximum tags allowed: "+a.maxTags);else{d=b.trim(h.val());var g=1;"function"==typeof a.onAdd&&(g=a.onAdd.call(this,d));if(g||"undefined"==typeof g)c=n(this,d,c,a.sorttags), ""!==a.updateURL&&a.autoUpdate&&k(c,a,e.id),a.autocomplete&&("function"==typeof b.fn.autocomplete&&a.initload)&&b(f).autocomplete("option","source",c.availableTags),"function"==typeof a.afterAdd&&a.afterAdd.call(this,d)}h.val("");h.focus()}}),b(f).keydown(function(j){var h=b(this);8===j.which&&""===h.val()&&(j=d.find(".tagItem:last").text(),"function"==typeof a.onDelete&&a.onDelete.call(this,b.trim(j)),c=q(d.find(".tagItem:last"),c,a.sortTags),""!==a.updateURL&&a.autoUpdate&&k(c,a,e.id),"function"== typeof a.afterDelete&&a.afterDelete.call(this,b.trim(j)),a.autocomplete&&("function"==typeof b.fn.autocomplete&&a.initLoad)&&b(f).autocomplete("option","source",c.availableTags),h.focus())}),b(f).focus(function(){""===b(f).val()&&(a.autocomplete&&"function"==typeof b.fn.autocomplete&&a.initLoad)&&b(f).autocomplete("search","")}),d.click(function(){b(f).focus()}));this.getTags=function(){return c.assignedTags};return 1})}if("string"==typeof d&&s[d])return s[d].apply(this,Array.prototype.slice.call(arguments, 1))};b.fn.tagHandler.defaults={allowEdit:!0,allowAdd:!0,assignedTags:[],autocomplete:!1,autoUpdate:!1,availableTags:[],className:"tagHandler",debug:!1,delimiter:"",getData:{},getURL:"",initLoad:!0,maxTags:0,minChars:0,msgNoNewTag:"You don't have permission to create a new tag.",msgError:"There was an error getting the tag list.",onAdd:{},onDelete:{},afterAdd:{},afterDelete:{},queryname:"q",sortTags:!0,updateData:{},updateURL:""}})(jQuery); \ No newline at end of file