speedo 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/app/assets/javascripts/speedo.js +12 -12
  2. data/app/views/layouts/speedo/application.html.haml +2 -2
  3. data/lib/speedo/sass.rb +1 -1
  4. data/lib/speedo/version.rb +1 -1
  5. data/test/dummy/log/development.log +889 -0
  6. data/test/dummy/tmp/cache/assets/BC8/350/sprockets%2F3357f02a74351649de62769431854154 +0 -0
  7. data/test/dummy/tmp/cache/assets/BFD/090/sprockets%2F50267839603d9c7384477250f0169f0e +0 -0
  8. data/test/dummy/tmp/cache/assets/C4F/220/sprockets%2F19a6a3539a4ed0526c356691798032a3 +0 -0
  9. data/test/dummy/tmp/cache/assets/C55/E10/sprockets%2F9da121566709335e3081059e7774a9bb +957 -0
  10. data/test/dummy/tmp/cache/assets/C5F/4E0/sprockets%2F4c17092a9c628e66645a4586e9b50717 +57 -0
  11. data/test/dummy/tmp/cache/assets/C82/BB0/sprockets%2F904cd2f9283528b32d94a1d2a6711489 +41 -0
  12. data/test/dummy/tmp/cache/assets/CDE/600/sprockets%2F205a8cce7806d7c77117f1dc263146a8 +0 -0
  13. data/test/dummy/tmp/cache/assets/CE0/930/sprockets%2Fb6670296cd6b3ce81034c8d5d31e5725 +8 -0
  14. data/test/dummy/tmp/cache/assets/CE1/3B0/sprockets%2Fe8865654d2d075e6bba1074193e443dc +350 -0
  15. data/test/dummy/tmp/cache/assets/CF5/F40/sprockets%2F72637ea0f394f68dcc931527509e79ec +0 -0
  16. data/test/dummy/tmp/cache/assets/CF9/7C0/sprockets%2F488b6dcdeb1301268a65202e7101ed2a +974 -0
  17. data/test/dummy/tmp/cache/assets/D0C/C60/sprockets%2F39d93fba83bb3b50a75826703c5a28c5 +311 -0
  18. data/test/dummy/tmp/cache/assets/D1D/D50/sprockets%2F5b87bedce3ae871f14e41e2479290866 +0 -0
  19. data/test/dummy/tmp/cache/assets/D2A/5C0/sprockets%2Fe12edc211b1935a76d3aab4e8716006d +394 -0
  20. data/test/dummy/tmp/cache/assets/D3A/090/sprockets%2F0d24039ad1b8ef3525e367fe51905fbb +11635 -0
  21. data/test/dummy/tmp/cache/assets/D3B/1E0/sprockets%2Fe5f2362b8b1eb8273f1a7764cbb15e35 +11618 -0
  22. data/test/dummy/tmp/cache/assets/D3D/F80/sprockets%2Fadfc8f7271b3a873f3462e149a6a34e0 +374 -0
  23. data/test/dummy/tmp/cache/assets/D3F/0A0/sprockets%2Fc4574a4ea12e8efe636123e1a17f7d66 +11773 -0
  24. data/test/dummy/tmp/cache/assets/D42/CB0/sprockets%2F6c01eb50fe79d82720a649960dee5dd0 +20 -0
  25. data/test/dummy/tmp/cache/assets/D49/2B0/sprockets%2F34363288c95affbe232a199c6938ceab +391 -0
  26. data/test/dummy/tmp/cache/assets/D5B/120/sprockets%2F525577d56abcec9969e805ddc2997fd0 +332 -0
  27. data/test/dummy/tmp/cache/assets/D65/820/sprockets%2F4e91290eae5edd2f4d287ca2952be000 +327 -0
  28. data/test/dummy/tmp/cache/assets/D6C/3D0/sprockets%2Fa62ebc5f479b52c204f4c71ea65594ca +55 -0
  29. data/test/dummy/tmp/cache/assets/D71/D90/sprockets%2F7bb9508df3d877f853823addd4b0a22b +19 -0
  30. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  31. data/test/dummy/tmp/cache/assets/D97/830/sprockets%2Fd55ede995a2705ab74db22acf510dd90 +0 -0
  32. data/test/dummy/tmp/cache/assets/D9B/400/sprockets%2Fec83dc0dc78764b460a3ffc063df25e0 +11789 -0
  33. data/test/dummy/tmp/cache/assets/DA1/670/sprockets%2Fb71f32bbfb530e59ad7a177cf54a888b +0 -0
  34. data/test/dummy/tmp/cache/assets/DA8/760/sprockets%2F1359bb83c703a91d57cfebdaf879a4d7 +9288 -0
  35. data/test/dummy/tmp/cache/assets/DB3/C60/sprockets%2F1ff86e3b1c5bf1c179ac719fced99829 +53 -0
  36. data/test/dummy/tmp/cache/assets/DBE/F80/sprockets%2F8647fc3439abdaa0eb161dadf2fc4304 +694 -0
  37. data/test/dummy/tmp/cache/assets/DC3/CC0/sprockets%2Fa04ece65c59a7a325cab61861da2be7e +0 -0
  38. data/test/dummy/tmp/cache/assets/DC5/290/sprockets%2F1c5dee9b02ab66fbf6e62627a13e27ba +37 -0
  39. data/test/dummy/tmp/cache/assets/DE9/520/sprockets%2Fe9f8259c99da2f355198dc4bcdebb69d +0 -0
  40. data/test/dummy/tmp/cache/assets/DEA/500/sprockets%2F485fc5ba3f81b49ccdd788885ea8de5e +0 -0
  41. data/test/dummy/tmp/cache/assets/DF2/CB0/sprockets%2F4500acae993e0fa07bd48dceee07e2b3 +0 -0
  42. data/test/dummy/tmp/cache/assets/DF9/EB0/sprockets%2Ffcaa51a13d86ac9cf245f2a5d70c9d8c +256 -0
  43. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  44. data/test/dummy/tmp/cache/assets/E7F/BB0/sprockets%2Ffdeefdc424a13a04addae542356dffae +678 -0
  45. data/test/dummy/tmp/cache/assets/E82/D20/sprockets%2Fcdce4acb88dcbeaba64a06a254a9e09f +0 -0
  46. metadata +192 -88
  47. /data/vendor/assets/javascripts/{chosen.jquery.js → speedo/chosen.jquery.js} +0 -0
  48. /data/vendor/assets/javascripts/{jquery.autoSuggest.js → speedo/jquery.autoSuggest.js} +0 -0
  49. /data/vendor/assets/javascripts/{jquery.autogrow.js → speedo/jquery.autogrow.js} +0 -0
  50. /data/vendor/assets/javascripts/{jquery.dataTables.js → speedo/jquery.dataTables.js} +0 -0
  51. /data/vendor/assets/javascripts/{jquery.livequery.js → speedo/jquery.livequery.js} +0 -0
  52. /data/vendor/assets/javascripts/{jquery.mousewheel-3.0.4.pack.js → speedo/jquery.mousewheel-3.0.4.pack.js} +0 -0
  53. /data/vendor/assets/javascripts/{jquery.placeholder.min.js → speedo/jquery.placeholder.min.js} +0 -0
  54. /data/vendor/assets/javascripts/{jquery.spin.js → speedo/jquery.spin.js} +0 -0
  55. /data/vendor/assets/javascripts/{jquery.timeago.js → speedo/jquery.timeago.js} +0 -0
  56. /data/vendor/assets/javascripts/{jquery.tools.min.js → speedo/jquery.tools.min.js} +0 -0
  57. /data/vendor/assets/javascripts/{jquery.uniform.js → speedo/jquery.uniform.js} +0 -0
  58. /data/vendor/assets/javascripts/{modernizr.min.js → speedo/modernizr.min.js} +0 -0
  59. /data/vendor/assets/javascripts/{respond.js → speedo/respond.js} +0 -0
  60. /data/vendor/assets/javascripts/{spin.js → speedo/spin.js} +0 -0
  61. /data/vendor/assets/stylesheets/{autoSuggest.css → speedo/autoSuggest.css} +0 -0
  62. /data/vendor/assets/stylesheets/{chosen-sprite.png → speedo/chosen-sprite.png} +0 -0
  63. /data/vendor/assets/stylesheets/{chosen.css → speedo/chosen.css} +0 -0
  64. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/Sorting icons.psd +0 -0
  65. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/back_disabled.png +0 -0
  66. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/back_enabled.png +0 -0
  67. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/back_enabled_hover.png +0 -0
  68. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/favicon.ico +0 -0
  69. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/forward_disabled.png +0 -0
  70. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/forward_enabled.png +0 -0
  71. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/forward_enabled_hover.png +0 -0
  72. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/sort_asc.png +0 -0
  73. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/sort_asc_disabled.png +0 -0
  74. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/sort_both.png +0 -0
  75. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/sort_desc.png +0 -0
  76. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/sort_desc_disabled.png +0 -0
  77. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  78. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  79. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_glass_65_ffffff_1x400.png +0 -0
  80. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_glass_75_dadada_1x400.png +0 -0
  81. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  82. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_glass_75_ffffff_1x400.png +0 -0
  83. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  84. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  85. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-icons_222222_256x240.png +0 -0
  86. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-icons_2e83ff_256x240.png +0 -0
  87. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-icons_454545_256x240.png +0 -0
  88. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-icons_888888_256x240.png +0 -0
  89. /data/vendor/assets/stylesheets/{dataTables → speedo/dataTables}/ui-icons_cd0a0a_256x240.png +0 -0
  90. /data/vendor/assets/stylesheets/{formtastic-buttonless.css → speedo/formtastic-buttonless.css} +0 -0
  91. /data/vendor/assets/stylesheets/{gh-buttons.css → speedo/gh-buttons.css} +0 -0
  92. /data/vendor/assets/stylesheets/{gh-icons.png → speedo/gh-icons.png} +0 -0
  93. /data/vendor/assets/stylesheets/{jquery-ui-1.8.18.custom.css → speedo/jquery-ui-1.8.18.custom.css} +0 -0
  94. /data/vendor/assets/stylesheets/{jquery.dataTables.css → speedo/jquery.dataTables.css} +0 -0
  95. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  96. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  97. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_glass_65_ffffff_1x400.png +0 -0
  98. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_glass_75_dadada_1x400.png +0 -0
  99. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  100. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_glass_75_ffffff_1x400.png +0 -0
  101. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  102. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  103. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-icons_222222_256x240.png +0 -0
  104. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-icons_2e83ff_256x240.png +0 -0
  105. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-icons_454545_256x240.png +0 -0
  106. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-icons_888888_256x240.png +0 -0
  107. /data/vendor/assets/stylesheets/{jqueryui → speedo/jqueryui}/ui-icons_cd0a0a_256x240.png +0 -0
  108. /data/vendor/assets/stylesheets/{normalize.css → speedo/normalize.css} +0 -0
  109. /data/vendor/assets/stylesheets/{uniform → speedo/uniform}/bg-input-focus.png +0 -0
  110. /data/vendor/assets/stylesheets/{uniform → speedo/uniform}/bg-input.png +0 -0
  111. /data/vendor/assets/stylesheets/{uniform → speedo/uniform}/sprite-aristo.png +0 -0
  112. /data/vendor/assets/stylesheets/{uniform → speedo/uniform}/sprite.png +0 -0
  113. /data/vendor/assets/stylesheets/{uniform.default.css → speedo/uniform.default.css} +0 -0
@@ -0,0 +1,20 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1339771360.067889: @value{ I" length:EFiI" digest;
2
+ F"%e181ba4c7fcefe22d338dbf8effe27c1I" source;
3
+ FI"/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
4
+ * Licensed under the MIT License (LICENSE.txt).
5
+ *
6
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
7
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
8
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
9
+ *
10
+ * Version: 3.0.4
11
+ *
12
+ * Requires: 1.2.2+
13
+ */
14
+
15
+
16
+ (function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=
17
+ f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
18
+ ;
19
+ FI"
20
+ F"%5c586b40bca67e017e31a690b1e05529
@@ -0,0 +1,391 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1339771359.4631932: @value{I"
2
+ class:EFI"BundledAsset;
3
+ FI"id;
4
+ F"%faa95be6238110330358518613f6cadfI"logical_path;
5
+ F"!speedo/jquery.autoSuggest.jsI"
6
+ F"o/Users/stu/Documents/Work/CrankApps/Projects/speedo/vendor/assets/javascripts/speedo/jquery.autoSuggest.jsI"content_type;
7
+ FI"application/javascript;
8
+ FI"
9
+ mtime;
10
+ FI"2012-03-22T09:12:18-04:00;
11
+ FI" body;
12
+ FI"4 /*
13
+ * AutoSuggest
14
+ * Copyright 2009-2010 Drew Wilson
15
+ * www.drewwilson.com
16
+ * code.drewwilson.com/entry/autosuggest-jquery-plugin
17
+ *
18
+ * Version 1.4 - Updated: Mar. 23, 2010
19
+ *
20
+ * This Plug-In will auto-complete or auto-suggest completed search queries
21
+ * for you as you type. You can add multiple selections and remove them on
22
+ * the fly. It supports keybord navigation (UP + DOWN + RETURN), as well
23
+ * as multiple AutoSuggest fields on the same page.
24
+ *
25
+ * Inspied by the Autocomplete plugin by: J�rn Zaefferer
26
+ * and the Facelist plugin by: Ian Tearle (iantearle.com)
27
+ *
28
+ * This AutoSuggest jQuery plug-in is dual licensed under the MIT and GPL licenses:
29
+ * http://www.opensource.org/licenses/mit-license.php
30
+ * http://www.gnu.org/licenses/gpl.html
31
+ */
32
+
33
+
34
+ (function($){
35
+ $.fn.autoSuggest = function(data, options) {
36
+ var defaults = {
37
+ asHtmlID: false,
38
+ startText: "Enter Name Here",
39
+ emptyText: "No Results Found",
40
+ preFill: {},
41
+ limitText: "No More Selections Are Allowed",
42
+ selectedItemProp: "value", //name of object property
43
+ selectedValuesProp: "value", //name of object property
44
+ searchObjProps: "value", //comma separated list of object property names
45
+ queryParam: "q",
46
+ retrieveLimit: false, //number for 'limit' param on ajax request
47
+ extraParams: "",
48
+ matchCase: false,
49
+ minChars: 1,
50
+ keyDelay: 400,
51
+ resultsHighlight: true,
52
+ neverSubmit: false,
53
+ selectionLimit: false,
54
+ showResultList: true,
55
+ start: function(){},
56
+ selectionClick: function(elem){},
57
+ selectionAdded: function(elem){},
58
+ selectionRemoved: function(elem){ elem.remove(); },
59
+ formatList: false, //callback function
60
+ beforeRetrieve: function(string){ return string; },
61
+ retrieveComplete: function(data){ return data; },
62
+ resultClick: function(data){},
63
+ resultsComplete: function(){}
64
+ };
65
+ var opts = $.extend(defaults, options);
66
+
67
+ var d_type = "object";
68
+ var d_count = 0;
69
+ if(typeof data == "string") {
70
+ d_type = "string";
71
+ var req_string = data;
72
+ } else {
73
+ var org_data = data;
74
+ for (k in data) if (data.hasOwnProperty(k)) d_count++;
75
+ }
76
+ if((d_type == "object" && d_count > 0) || d_type == "string"){
77
+ return this.each(function(x){
78
+ if(!opts.asHtmlID){
79
+ x = x+""+Math.floor(Math.random()*100); //this ensures there will be unique IDs on the page if autoSuggest() is called multiple times
80
+ var x_id = "as-input-"+x;
81
+ } else {
82
+ x = opts.asHtmlID;
83
+ var x_id = x;
84
+ }
85
+ opts.start.call(this);
86
+ var input = $(this);
87
+ input.attr("autocomplete","off").addClass("as-input").attr("id",x_id).val(opts.startText);
88
+ var input_focus = false;
89
+
90
+ // Setup basic elements and render them to the DOM
91
+ input.wrap('<ul class="as-selections" id="as-selections-'+x+'"></ul>').wrap('<li class="as-original" id="as-original-'+x+'"></li>');
92
+ var selections_holder = $("#as-selections-"+x);
93
+ var org_li = $("#as-original-"+x);
94
+ var results_holder = $('<div class="as-results" id="as-results-'+x+'"></div>').hide();
95
+ var results_ul = $('<ul class="as-list"></ul>');
96
+ var values_input = $('<input type="hidden" class="as-values" name="as_values_'+x+'" id="as-values-'+x+'" />');
97
+ var prefill_value = "";
98
+ if(typeof opts.preFill == "string"){
99
+ var vals = opts.preFill.split(",");
100
+ for(var i=0; i < vals.length; i++){
101
+ var v_data = {};
102
+ v_data[opts.selectedValuesProp] = vals[i];
103
+ if(vals[i] != ""){
104
+ add_selected_item(v_data, "000"+i);
105
+ }
106
+ }
107
+ prefill_value = opts.preFill;
108
+ } else {
109
+ prefill_value = "";
110
+ var prefill_count = 0;
111
+ for (k in opts.preFill) if (opts.preFill.hasOwnProperty(k)) prefill_count++;
112
+ if(prefill_count > 0){
113
+ for(var i=0; i < prefill_count; i++){
114
+ var new_v = opts.preFill[i][opts.selectedValuesProp];
115
+ if(new_v == undefined){ new_v = ""; }
116
+ prefill_value = prefill_value+new_v+",";
117
+ if(new_v != ""){
118
+ add_selected_item(opts.preFill[i], "000"+i);
119
+ }
120
+ }
121
+ }
122
+ }
123
+ if(prefill_value != ""){
124
+ input.val("");
125
+ var lastChar = prefill_value.substring(prefill_value.length-1);
126
+ if(lastChar != ","){ prefill_value = prefill_value+","; }
127
+ values_input.val(","+prefill_value);
128
+ $("li.as-selection-item", selections_holder).addClass("blur").removeClass("selected");
129
+ }
130
+ input.after(values_input);
131
+ selections_holder.click(function(){
132
+ input_focus = true;
133
+ input.focus();
134
+ }).mousedown(function(){ input_focus = false; }).after(results_holder);
135
+
136
+ var timeout = null;
137
+ var prev = "";
138
+ var totalSelections = 0;
139
+ var tab_press = false;
140
+
141
+ // Handle input field events
142
+ input.focus(function(){
143
+ if($(this).val() == opts.startText && values_input.val() == ""){
144
+ $(this).val("");
145
+ } else if(input_focus){
146
+ $("li.as-selection-item", selections_holder).removeClass("blur");
147
+ if($(this).val() != ""){
148
+ results_ul.css("width",selections_holder.outerWidth());
149
+ results_holder.show();
150
+ }
151
+ }
152
+ input_focus = true;
153
+ return true;
154
+ }).blur(function(){
155
+ if($(this).val() == "" && values_input.val() == "" && prefill_value == ""){
156
+ $(this).val(opts.startText);
157
+ } else if(input_focus){
158
+ $("li.as-selection-item", selections_holder).addClass("blur").removeClass("selected");
159
+ results_holder.hide();
160
+ }
161
+ }).keydown(function(e) {
162
+ // track last key pressed
163
+ lastKeyPressCode = e.keyCode;
164
+ first_focus = false;
165
+ switch(e.keyCode) {
166
+ case 38: // up
167
+ e.preventDefault();
168
+ moveSelection("up");
169
+ break;
170
+ case 40: // down
171
+ e.preventDefault();
172
+ moveSelection("down");
173
+ break;
174
+ case 8: // delete
175
+ if(input.val() == ""){
176
+ var last = values_input.val().split(",");
177
+ last = last[last.length - 2];
178
+ selections_holder.children().not(org_li.prev()).removeClass("selected");
179
+ if(org_li.prev().hasClass("selected")){
180
+ values_input.val(values_input.val().replace(","+last+",",","));
181
+ opts.selectionRemoved.call(this, org_li.prev());
182
+ } else {
183
+ opts.selectionClick.call(this, org_li.prev());
184
+ org_li.prev().addClass("selected");
185
+ }
186
+ }
187
+ if(input.val().length == 1){
188
+ results_holder.hide();
189
+ prev = "";
190
+ }
191
+ if($(":visible",results_holder).length > 0){
192
+ if (timeout){ clearTimeout(timeout); }
193
+ timeout = setTimeout(function(){ keyChange(); }, opts.keyDelay);
194
+ }
195
+ break;
196
+ case 9: case 188: // tab or comma
197
+ tab_press = true;
198
+ var i_input = input.val().replace(/(,)/g, "");
199
+ if(i_input != "" && values_input.val().search(","+i_input+",") < 0 && i_input.length >= opts.minChars){
200
+ e.preventDefault();
201
+ var n_data = {};
202
+ n_data[opts.selectedItemProp] = i_input;
203
+ n_data[opts.selectedValuesProp] = i_input;
204
+ var lis = $("li", selections_holder).length;
205
+ add_selected_item(n_data, "00"+(lis+1));
206
+ input.val("");
207
+ }
208
+ case 13: // return
209
+ tab_press = false;
210
+ var active = $("li.active:first", results_holder);
211
+ if(active.length > 0){
212
+ active.click();
213
+ results_holder.hide();
214
+ }
215
+ if(opts.neverSubmit || active.length > 0){
216
+ e.preventDefault();
217
+ }
218
+ break;
219
+ default:
220
+ if(opts.showResultList){
221
+ if(opts.selectionLimit && $("li.as-selection-item", selections_holder).length >= opts.selectionLimit){
222
+ results_ul.html('<li class="as-message">'+opts.limitText+'</li>');
223
+ results_holder.show();
224
+ } else {
225
+ if (timeout){ clearTimeout(timeout); }
226
+ timeout = setTimeout(function(){ keyChange(); }, opts.keyDelay);
227
+ }
228
+ }
229
+ break;
230
+ }
231
+ });
232
+
233
+ function keyChange() {
234
+ // ignore if the following keys are pressed: [del] [shift] [capslock]
235
+ if( lastKeyPressCode == 46 || (lastKeyPressCode > 8 && lastKeyPressCode < 32) ){ return results_holder.hide(); }
236
+ var string = input.val().replace(/[\\]+|[\/]+/g,"");
237
+ if (string == prev) return;
238
+ prev = string;
239
+ if (string.length >= opts.minChars) {
240
+ selections_holder.addClass("loading");
241
+ if(d_type == "string"){
242
+ var limit = "";
243
+ if(opts.retrieveLimit){
244
+ limit = "&limit="+encodeURIComponent(opts.retrieveLimit);
245
+ }
246
+ if(opts.beforeRetrieve){
247
+ string = opts.beforeRetrieve.call(this, string);
248
+ }
249
+ $.getJSON(req_string+"?"+opts.queryParam+"="+encodeURIComponent(string)+limit+opts.extraParams, function(data){
250
+ d_count = 0;
251
+ var new_data = opts.retrieveComplete.call(this, data);
252
+ for (k in new_data) if (new_data.hasOwnProperty(k)) d_count++;
253
+ processData(new_data, string);
254
+ });
255
+ } else {
256
+ if(opts.beforeRetrieve){
257
+ string = opts.beforeRetrieve.call(this, string);
258
+ }
259
+ processData(org_data, string);
260
+ }
261
+ } else {
262
+ selections_holder.removeClass("loading");
263
+ results_holder.hide();
264
+ }
265
+ }
266
+ var num_count = 0;
267
+ function processData(data, query){
268
+ if (!opts.matchCase){ query = query.toLowerCase(); }
269
+ var matchCount = 0;
270
+ results_holder.html(results_ul.html("")).hide();
271
+ for(var i=0;i<d_count;i++){
272
+ var num = i;
273
+ num_count++;
274
+ var forward = false;
275
+ if(opts.searchObjProps == "value") {
276
+ var str = data[num].value;
277
+ } else {
278
+ var str = "";
279
+ var names = opts.searchObjProps.split(",");
280
+ for(var y=0;y<names.length;y++){
281
+ var name = $.trim(names[y]);
282
+ str = str+data[num][name]+" ";
283
+ }
284
+ }
285
+ if(str){
286
+ if (!opts.matchCase){ str = str.toLowerCase(); }
287
+ if(str.search(query) != -1 && values_input.val().search(","+data[num][opts.selectedValuesProp]+",") == -1){
288
+ forward = true;
289
+ }
290
+ }
291
+ if(forward){
292
+ var formatted = $('<li class="as-result-item" id="as-result-item-'+num+'"></li>').click(function(){
293
+ var raw_data = $(this).data("data");
294
+ var number = raw_data.num;
295
+ if($("#as-selection-"+number, selections_holder).length <= 0 && !tab_press){
296
+ var data = raw_data.attributes;
297
+ input.val("").focus();
298
+ prev = "";
299
+ add_selected_item(data, number);
300
+ opts.resultClick.call(this, raw_data);
301
+ results_holder.hide();
302
+ }
303
+ tab_press = false;
304
+ }).mousedown(function(){ input_focus = false; }).mouseover(function(){
305
+ $("li", results_ul).removeClass("active");
306
+ $(this).addClass("active");
307
+ }).data("data",{attributes: data[num], num: num_count});
308
+ var this_data = $.extend({},data[num]);
309
+ if (!opts.matchCase){
310
+ var regx = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "gi");
311
+ } else {
312
+ var regx = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "g");
313
+ }
314
+
315
+ if(opts.resultsHighlight){
316
+ this_data[opts.selectedItemProp] = this_data[opts.selectedItemProp].replace(regx,"<em>$1</em>");
317
+ }
318
+ if(!opts.formatList){
319
+ formatted = formatted.html(this_data[opts.selectedItemProp]);
320
+ } else {
321
+ formatted = opts.formatList.call(this, this_data, formatted);
322
+ }
323
+ results_ul.append(formatted);
324
+ delete this_data;
325
+ matchCount++;
326
+ if(opts.retrieveLimit && opts.retrieveLimit == matchCount ){ break; }
327
+ }
328
+ }
329
+ selections_holder.removeClass("loading");
330
+ if(matchCount <= 0){
331
+ results_ul.html('<li class="as-message">'+opts.emptyText+'</li>');
332
+ }
333
+ results_ul.css("width", selections_holder.outerWidth());
334
+ results_holder.show();
335
+ opts.resultsComplete.call(this);
336
+ }
337
+
338
+ function add_selected_item(data, num){
339
+ values_input.val(values_input.val()+data[opts.selectedValuesProp]+",");
340
+ var item = $('<li class="as-selection-item" id="as-selection-'+num+'"></li>').click(function(){
341
+ opts.selectionClick.call(this, $(this));
342
+ selections_holder.children().removeClass("selected");
343
+ $(this).addClass("selected");
344
+ }).mousedown(function(){ input_focus = false; });
345
+ var close = $('<a class="as-close">&times;</a>').click(function(){
346
+ values_input.val(values_input.val().replace(","+data[opts.selectedValuesProp]+",",","));
347
+ opts.selectionRemoved.call(this, item);
348
+ input_focus = true;
349
+ input.focus();
350
+ return false;
351
+ });
352
+ org_li.before(item.html(data[opts.selectedItemProp]).prepend(close));
353
+ opts.selectionAdded.call(this, org_li.prev());
354
+ }
355
+
356
+ function moveSelection(direction){
357
+ if($(":visible",results_holder).length > 0){
358
+ var lis = $("li", results_holder);
359
+ if(direction == "down"){
360
+ var start = lis.eq(0);
361
+ } else {
362
+ var start = lis.filter(":last");
363
+ }
364
+ var active = $("li.active:first", results_holder);
365
+ if(active.length > 0){
366
+ if(direction == "down"){
367
+ start = active.next();
368
+ } else {
369
+ start = active.prev();
370
+ }
371
+ }
372
+ lis.removeClass("active");
373
+ start.addClass("active");
374
+ }
375
+ }
376
+
377
+ });
378
+ }
379
+ }
380
+ })(jQuery);
381
+ ;
382
+ TI"asset_paths;
383
+ F["o/Users/stu/Documents/Work/CrankApps/Projects/speedo/vendor/assets/javascripts/speedo/jquery.autoSuggest.jsI"dependency_paths;
384
+ F[{I" path;
385
+ F"o/Users/stu/Documents/Work/CrankApps/Projects/speedo/vendor/assets/javascripts/speedo/jquery.autoSuggest.jsI"
386
+ mtime;
387
+ FIu: Time
388
+ � 1: @_zoneI"EDT;
389
+ T: offseti���I"hexdigest;
390
+ F"%b00d8c14a37d153b748350040f6b687fI"
391
+ F"%46dde6621c301f4928e3b34efee9e3b5