/*!
 * jQuery UI Widget 1.8.14
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Widget
 */
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);

/**
 * Marco Polo v1.3.0
 *
 * A modern jQuery plugin for autocomplete functionality on a text input.
 *
 * https://github.com/jstayton/jquery-marcopolo
 *
 * Copyright 2011 by Justin Stayton
 * Released under the MIT License
 * http://en.wikipedia.org/wiki/MIT_License
 */
(function(b){var a={};b.widget("mp.marcoPolo",{options:{cache:true,compare:false,data:{},delay:250,formatData:null,formatError:function(c,h,d,e,g,f){return"<em>Your search could not be completed at this time.</em>"},formatItem:function(e,c,f,d){return e.title||e.name},formatMinChars:function(e,c,f,d){return"<em>Your search must be at least <strong>"+e+"</strong> characters.</em>"},formatNoResults:function(e,c,f,d){return"<em>No results for <strong>"+e+"</strong>.</em>"},hideOnSelect:true,label:null,minChars:1,onChange:null,onError:null,onFocus:null,onMinChars:null,onNoResults:null,onRequestBefore:null,onRequestAfter:null,onResults:null,onSelect:function(e,c,f,d){f.val(e.title||e.name)},param:"q",required:false,selectable:"*",selected:null,url:null},keys:{DOWN:40,ENTER:13,ESC:27,UP:38},_create:function(){var c=this;c.$input=c.element.addClass("mp_input");c.$list=b('<ol class="mp_list" />').hide().insertAfter(c.$input);c.autocomplete=c.$input.attr("autocomplete");c.$input.attr("autocomplete","off");c.ajax=null;c.ajaxAborted=false;c.documentMouseup=null;c.focusPseudo=false;c.focusReal=false;c.mousedown=false;c.selected=null;c.selectedMouseup=false;c.timer=null;c.value=c.$input.val();c._bindInput()._bindList()._bindDocument();c._initOptions()},_setOption:function(c,d){b.Widget.prototype._setOption.apply(this,arguments);this._initOptions(c,d)},_initOptions:function(e,f){var c=this,d={};if(typeof e==="undefined"){d=c.options}else{d[e]=f}b.each(d,function(g,h){switch(g){case"label":c.options.label=b(h).addClass("mp_label");c._toggleLabel();break;case"selected":c._select(h,null);break;case"url":if(!h){c.options.url=c.$input.closest("form").attr("action")}break}});return c},change:function(d){var c=this;if(d!==c.value){c.$input.val(d);c._change(d);if(c.focusPseudo){c._cancelPendingRequest()._hideAndEmptyList()}else{c._toggleLabel()}}},search:function(c){var d=this.$input;if(typeof c!=="undefined"){d.val(c)}d.focus()},destroy:function(){var c=this,d=c.options;c.$list.remove();if(c.autocomplete!=="off"){c.$input.removeAttr("autocomplete")}c.$input.removeClass("mp_input");if(d.label){d.label.removeClass("mp_label")}b(document).unbind("mouseup.marcoPolo",c.documentMouseup);b.Widget.prototype.destroy.apply(c,arguments)},list:function(){return this.$list},_bindInput:function(){var c=this,f=c.$input,e=c.$list,d=c.options;f.bind("focus.marcoPolo",function(){if(c.focusReal){return}c.focusPseudo=true;c.focusReal=true;c._toggleLabel();if(c.selectedMouseup){c.selectedMouseup=false}else{if(d.onFocus){d.onFocus.call(f,f,e)}f.trigger("marcopolofocus",[f,e]);c._request(f.val())}}).bind("keydown.marcoPolo",function(h){var g=b();switch(h.which){case c.keys.UP:h.preventDefault();c._showList()._highlightPrev();break;case c.keys.DOWN:h.preventDefault();c._showList()._highlightNext();break;case c.keys.ENTER:h.preventDefault();if(!e.is(":visible")){return}g=c._highlighted();if(g.length){c._select(g.data("marcoPolo"),g)}break;case c.keys.ESC:c._cancelPendingRequest()._hideList();break}}).bind("keyup.marcoPolo",function(g){if(f.val()!==c.value){c._request(f.val())}}).bind("blur.marcoPolo",function(){c.focusReal=false;setTimeout(function(){if(!c.mousedown){c.focusPseudo=false;c._dismiss()}},1)});return c},_bindList:function(){var c=this;c.$list.bind("mousedown.marcoPolo",function(){c.mousedown=true}).delegate("li.mp_selectable","mouseover",function(){c._addHighlight(b(this))}).delegate("li.mp_selectable","mouseout",function(){c._removeHighlight(b(this))}).delegate("li.mp_selectable","mouseup",function(){var d=b(this);c._select(d.data("marcoPolo"),d);c.selectedMouseup=true;c.$input.focus()});return c},_bindDocument:function(){var c=this;b(document).bind("mouseup.marcoPolo",c.documentMouseup=function(){c.mousedown=false;if(!c.focusReal&&c.$list.is(":visible")){c.focusPseudo=false;c._dismiss()}});return c},_toggleLabel:function(){var d=this,c=d.options.label;if(c.length){if(d.focusPseudo||d.$input.val()){c.hide()}else{c.show()}}return d},_firstSelectableItem:function(){return this.$list.children("li.mp_selectable:visible:first")},_lastSelectableItem:function(){return this.$list.children("li.mp_selectable:visible:last")},_highlighted:function(){return this.$list.children("li.mp_highlighted")},_removeHighlight:function(c){c.removeClass("mp_highlighted");return this},_addHighlight:function(c){this._removeHighlight(this._highlighted());c.addClass("mp_highlighted");return this},_highlightFirst:function(){this._addHighlight(this._firstSelectableItem());return this},_highlightPrev:function(){var c=this._highlighted(),d=c.prevAll("li.mp_selectable:visible:first");if(!d.length){d=this._lastSelectableItem()}this._addHighlight(d);return this},_highlightNext:function(){var c=this._highlighted(),d=c.nextAll("li.mp_selectable:visible:first");if(!d.length){d=this._firstSelectableItem()}this._addHighlight(d);return this},_showList:function(){var c=this.$list;if(c.children().length){c.show()}return this},_hideList:function(){this.$list.hide();return this},_hideAndEmptyList:function(){this.$list.hide().empty();return this},_buildNoResultsList:function(g){var d=this,i=d.$input,f=d.$list,e=d.options,c=b('<li class="mp_no_results" />'),h;h=e.formatNoResults&&e.formatNoResults.call(i,g,c,i,f);if(h){c.html(h)}if(e.onNoResults){e.onNoResults.call(i,g,c,i,f)}i.trigger("marcopolonoresults",[g,c,i,f]);if(h){c.appendTo(f);d._showList()}else{d._hideList()}return d},_buildResultsList:function(c,h){var r=this,m=r.$input,j=r.$list,s=r.options,f=r.selected,d=s.compare&&f,p,e,k=false,n,o=b(),l;for(var g=0;h[g];g++){n=h[g];o=b('<li class="mp_item" />');l=s.formatItem.call(m,n,o,m,j);o.data("marcoPolo",n);o.html(l).appendTo(j);if(d){if(s.compare===true){p=n;e=f}else{p=n[s.compare];e=f[s.compare]}if(p===e){r._addHighlight(o);d=false;k=true}}}j.children(s.selectable).addClass("mp_selectable");if(s.onResults){s.onResults.call(m,h,m,j)}m.trigger("marcopoloresults",[h,m,j]);r._showList();if(!k){r._highlightFirst()}return r},_buildSuccessList:function(g,f){var c=this,h=c.$input,e=c.$list,d=c.options;e.empty();if(d.formatData){f=d.formatData.call(h,f,h,e)}if(b.isEmptyObject(f)){c._buildNoResultsList(g)}else{c._buildResultsList(g,f)}return c},_buildErrorList:function(h,c,f){var j=this,g=j.$input,e=j.$list,k=j.options,i=b('<li class="mp_error" />'),d;e.empty();d=k.formatError&&k.formatError.call(g,i,g,e,h,c,f);if(d){i.html(d)}if(k.onError){k.onError.call(g,i,g,e,h,c,f)}g.trigger("marcopoloerror",[i,g,e,h,c,f]);if(d){i.appendTo(e);j._showList()}else{j._hideList()}return j},_buildMinCharsList:function(g){var d=this,i=d.$input,f=d.$list,e=d.options,c=b('<li class="mp_min_chars" />'),h;if(!g.length){d._hideAndEmptyList();return d}f.empty();h=e.formatMinChars&&e.formatMinChars.call(i,e.minChars,c,i,f);if(h){c.html(h)}if(e.onMinChars){e.onMinChars.call(i,e.minChars,c,i,f)}i.trigger("marcopolominchars",[e.minChars,c,i,f]);if(h){c.appendTo(f);d._showList()}else{d._hideList()}return d},_cancelPendingRequest:function(){var c=this;if(c.ajax){c.ajaxAborted=true;c.ajax.abort()}else{c.ajaxAborted=false}clearTimeout(c.timer);return c},_change:function(f){var c=this,g=c.$input,e=c.$list,d=c.options;c.selected=null;c.value=f;c._trigger("onChange",null,[f,g,e]);return c},_request:function(f){var c=this,g=c.$input,e=c.$list,d=c.options;c._cancelPendingRequest();if(f!==c.value){c._change(f)}c.timer=setTimeout(function(){var k={},j={},i,h=b();if(f.length<d.minChars){c._buildMinCharsList(f);return c}k[d.param]=f;j=b.extend({},d.data,k);i=d.url+(d.url.indexOf("?")===-1?"?":"&")+b.param(j);if(d.cache&&a[i]){c._buildSuccessList(f,a[i])}else{if(d.onRequestBefore){d.onRequestBefore.call(g,g,e)}g.trigger("marcopolorequestbefore",[g,e]);h=g.parent().addClass("mp_busy");c.ajax=b.ajax({url:d.url,dataType:"json",data:j,success:function(l){c._buildSuccessList(f,l);a[i]=l},error:function(l,n,m){if(!c.ajaxAborted){c._buildErrorList(l,n,m)}},complete:function(l,m){c.ajax=null;c.ajaxAborted=false;h.removeClass("mp_busy");if(d.onRequestAfter){d.onRequestAfter.call(g,g,e,l,m)}g.trigger("marcopolorequestafter",[g,e,l,m])}})}},d.delay);return c},_select:function(g,d){var c=this,h=c.$input,f=c.$list,e=c.options;c.selected=g;if(!g){return c}if(e.hideOnSelect){c._hideList()}if(e.onSelect){e.onSelect.call(h,g,d,h,f)}h.trigger("marcopoloselect",[g,d,h,f]);if(h.val()!==c.value){c.value=h.val();c._hideAndEmptyList()}return c},_dismiss:function(){var c=this,f=c.$input,e=c.$list,d=c.options;c._cancelPendingRequest()._hideAndEmptyList();if(d.required&&!c.selected){f.val("");c._change("")}c._toggleLabel();return c}})})(jQuery);
