(function(e){e.fn.fieldChooser=function(t,n,r){function s(e){var t=e.offset();return{left:t.left,right:t.left+e.width(),top:t.top,bottom:t.top+e.height()}}function o(e,t){return{left:t.left,right:e.right+t.left-e.left,top:t.top,bottom:e.bottom+t.top-e.top}}function u(e,t,n){var r=s(e);var i=s(t);i=o(i,n);var u=true;if(i.rightr.right){u=false}else if(i.bottomr.bottom){u=false}return u}function l(e,t){if(f){if(f==t){}else{var n=a.getSourceList();if(t==a.getSourceList()){n=a.getDestinationList()}n.clearSelection(true)}}f=t}var i=this;if(this.getOptions){return this}var a=this;var f=null;var c=function(t,n){var r=e(t);r.addClass("fc-field-list");r.attr("tabIndex",n);var s=-1;var o=-1;var u=function(t){t.addClass("fc-field");t.attr("tabIndex",n);t.off("click.field");t.on("click.field",function(t){t.stopPropagation();t.preventDefault();var n=e(this);var r=a.getFieldList(n);if(t.ctrlKey||t.metaKey){r.toggleFieldSelection(n)}else if(t.shiftKey){r.selectTo(n)}else{r.selectField(n)}m=r})};u(r.children());r.selectAt=function(e){this.clearSelection(true);var t=r.getFields();if(e>=t.length){e=t.length-1}var n=null;if(e>=0){n=t.eq(e)}if(n){n.addClass("fc-selected");s=e;r.scrollToField(n)}else{s=-1}r.trigger("selectionChanged",[r])};r.extendSelection=function(e){var t=this.getSelectedIndex();var n=this.getExtendedSelectionIndex();var i=n;var u=true;if(e){if(i<0){i=r.getFields().length;s=i-1}if(n>t){u=false}else{i--}}else{if(i<0){s=0}if(n=a.length){}else{var f=a.eq(i);if(u){f.addClass("fc-selected")}else{f.removeClass("fc-selected");if(e){i--}else{i++}if(i>=0&&is){for(var i=s;i=0;i--){if(i>=t){n.eq(i).addClass("fc-selected")}else{n.eq(i).removeClass("fc_selected")}}}o=t;r.trigger("selectionChanged",[r])};r.getSelectedIndex=function(){return s};r.getExtendedSelectionIndex=function(){var e=o;if(e<0){e=s}return e};r.getSelection=function(){return this.children(".fc-selected")};r.clearSelection=function(e){s=-1;o=-1;this.children().removeClass("fc-selected");if(e){}else{r.trigger("selectionChanged",[r])}};r.add=function(e){u(e);e.appendTo(r);return r};r.getFields=function(){return r.children()};r.scrollToField=function(e){var t=r.position().top;var n=r.scrollTop();var i=r.height();var s=n+i;var o=e.outerHeight();var u=n+e.position().top-t;var a=u+o;if(us){r.scrollTop(n+(a-s))}};r.sortable({connectWith:".fc-field-list",cursor:"move",opacity:.75,cursorAt:{left:5,top:5},helper:function(t,n){if(n.hasClass("fc-selected")){}else{r.selectField(n)}var s=i.getOptions().helper(r);var o=r.getSelection().clone();if(s){}else{s=e("
").append(o)}n.data("selection",o);n.siblings(".fc-selected").remove();return s}});return r};var h=e.extend({},e.fn.fieldChooser.defaults,r);var p=parseInt(this.attr("tabIndex"));if(isNaN(p)){p=0}this.removeAttr("tabIndex");var d=(new c(t,p)).addClass("fc-source-fields");var v=(new c(n,p)).addClass("fc-destination-fields");var m=null;this.getOptions=function(){return h};this.getSourceList=function(){return d};this.getDestinationList=function(){return v};this.getFieldList=function(e){var t=v;if(e.parent().hasClass("fc-source-fields")){t=d}return t};this.destroy=function(){this.getOptions=null;d.sortable("destroy");v.sortable("destroy")};v.on("sortstop",function(e,t){var n=t.item.data("selection");if(u(d,t.item,t.offset)){m=d;d.add(n);v.clearSelection();d.trigger("selectionChanged",[d]);a.trigger("listChanged",[n,d]);t.item.after(n).remove()}else if(u(v,t.item,t.offset)){t.item.after(n).remove()}else{v.getSelection().remove();d.add(n);d.scrollToField(n);v.clearSelection();d.trigger("selectionChanged",[d]);m=d;a.trigger("listChanged",[n,d])}});d.on("sortstop",function(e,t){var n=t.item.data("selection");if(u(v,t.item,t.offset)){m=v;v.add(n);d.clearSelection();v.trigger("selectionChanged",[v]);a.trigger("listChanged",[n,v])}else if(u(d,t.item,t.offset)){}else{d.sortable("cancel")}t.item.after(n).remove()});v.on("selectionChanged",l);d.on("selectionChanged",l);v.on("focusin",function(){m=v});v.on("focusout",function(){if(m==v){m=null}});d.on("focusin",function(){m=d});d.on("focusout",function(){if(m==d){m=null}});e(document).keydown(function(e){if(m){if(e.which==38){e.stopPropagation();e.preventDefault();if(e.shiftKey){m.extendSelection(true)}else{var t=m.getSelectedIndex();var n=t-1;if(n<0){n=0}m.selectAt(n)}}else if(e.which==40){e.stopPropagation();e.preventDefault();if(e.shiftKey){m.extendSelection(false)}else{var t=m.getSelectedIndex();var n=t+1;if(t<0){n=m.getFields().length-1}m.selectAt(n)}}else if(e.which==27){m.selectAt(-1)}}});return this};e.fn.fieldChooser.defaults={helper:function(e){return null}}})(jQuery)