':'
')+'
- showing
'+(0==e.horizontal?"":s(2,e.moveAllBtn))+' '),t(e.parentElement+" .selected").prop("name",t(e.element).prop("name")),t(e.parentElement+" .unselected-title").text("Available "+e.title),t(e.parentElement+" .selected-title").text("Selected "+e.title)}function s(t,e){return 1==t?(e?'
':"")+'
':'
'+(e?'
':"")}function a(t){return'
'+(t?' ':"")+' '+(t?' ':"")+"
"}function c(e){t(e.parentElement+" .unselected").find("option:selected").prop("selected",!1),t(e.parentElement+" .selected").find("option:selected").prop("selected",!1),t(e.parentElement+" .filter").val(""),t(e.parentElement+" select").find("option").each(function(){t(this).show()}),o(e.parentElement)}function p(e){var n=!1;t(e.element).find("option").text(function(l,o){return t(this).data("title",o),o.length>e.textLength?(n=!0,o.substr(0,e.textLength)+"..."):void 0}).each(function(){n&&t(this).prop("title",t(this).data("title")),t(this).appendTo(t(this).is(":selected")?e.parentElement+" .selected":e.parentElement+" .unselected")}),t(e.element).remove(),c(e)}function r(e){t(e+" .unselected").change(function(){t(e+" .str").prop("disabled",!1)}),t(e+" .selected").change(function(){t(e+" .stl").prop("disabled",!1)}),0==t(e+" .unselected").has("option").length?(t(e+" .atr").prop("disabled",!0),t(e+" .str").prop("disabled",!0)):t(e+" .atr").prop("disabled",!1),0==t(e+" .selected").has("option").length?(t(e+" .atl").prop("disabled",!0),t(e+" .stl").prop("disabled",!0)):t(e+" .atl").prop("disabled",!1)}t.fn.DualListBox=function(n,o){return this.each(function(){var i={element:t(this).context,uri:"local.json",value:"id",text:"name",title:"Example",json:!0,timeout:500,horizontal:!1,textLength:45,moveAllBtn:!0,maxAllBtn:500,warning:"Are you sure you want to move this many items? Doing so can cause your browser to become unresponsive."},s={element:t(this).context,uri:t(this).data("source"),value:t(this).data("value"),text:t(this).data("text"),title:t(this).data("title"),json:t(this).data("json"),timeout:t(this).data("timeout"),horizontal:t(this).data("horizontal"),textLength:t(this).data("textLength"),moveAllBtn:t(this).data("moveAllBtn"),maxAllBtn:t(this).data("maxAllBtn")},a=t.extend({},i,s,n);t.each(a,function(t,e){if(void 0===e||null===e)throw"DualListBox: "+t+" is undefined."}),a.parent="dual-list-box-"+a.title,a.parentElement="#"+a.parent,o=t.extend([{}],o),a.json?e(a,o):l(a)})},t.fn.filterByText=function(e,n,l){return this.each(function(){var i=this,s=[];t(i).find("option").each(function(){s.push({value:t(this).val(),text:t(this).text()})}),t(i).data("options",s),t(e).bind("change keyup",function(){d(function(){var n=t(i).data("options"),s=t.trim(t(e).val()),a=new RegExp(s,"gi");t.each(n,function(e){null===n[e].text.match(a)?t(i).find(t('option[value="'+n[e].value+'"]')).hide():t(i).find(t('option[value="'+n[e].value+'"]')).show()}),o(l)},n)})})},t.fn.isVisible=function(){return!("hidden"==t(this).css("visibility")||"none"==t(this).css("display"))},t.fn.sortOptions=function(){return this.each(function(){t(this).append(t(this).find("option").remove().sort(function(e,n){var l=t(e).text(),o=t(n).text();return l>o?1:o>l?-1:0}))})};var d=function(){var t=0;return function(e,n){clearTimeout(t),t=setTimeout(e,n)}}()}(jQuery);
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..99a5826
--- /dev/null
+++ b/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "DualListBox",
+ "description": "jQuery DualListBox plugin with Bootstrap styling",
+ "version": "1.0.4",
+ "homepage": "https://github.com/CashStar/DualListBox",
+ "author": {
+ "name": "Geodan"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:CashStar/DualListBox.git"
+ },
+ "bugs": {
+ "url": "https://github.com/Geodan/DualListBox/issues"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://github.com/Geodan/DualListBox/blob/master/LICENSE"
+ }
+ ],
+ "main": [
+ "dist/dual-list-box.js"
+ ],
+ "scripts": {
+ "install": "bower install"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "devDependencies": {
+ "bower": "1.3.x"
+ },
+ "keywords": [
+ "twitter",
+ "bootstrap",
+ "form",
+ "javascript",
+ "jquery",
+ "jquery-plugin"
+ ]
+}