compass-jquery-plugin 0.3.2.pre.2 → 0.3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/LICENSE.md +20 -20
  2. data/README.md +7 -2
  3. data/VERSION.yml +2 -2
  4. data/lib/jquery/gridify/grid.rb +1 -1
  5. data/lib/jquery/gridify/grid_column.rb +1 -1
  6. data/lib/jquery/gridify/grid_finder.rb +16 -1
  7. data/lib/jquery/gridify/grid_view.rb +1 -1
  8. data/lib/jquery/jqgrid.rb +4 -4
  9. data/lib/jquery/jqtouch.rb +3 -3
  10. data/lib/jquery/jquery.rb +431 -431
  11. data/lib/jquery/jquery_json_response.rb +28 -0
  12. data/lib/jquery/secret_sauce.rb +8 -8
  13. data/lib/jquery/secret_sauce/controller/ui_dialog_controls.rb +13 -13
  14. data/lib/jquery/secret_sauce/controller/ui_grid_controls.rb +18 -18
  15. data/lib/jquery/secret_sauce/helpers/ui_dialog_helper.rb +5 -5
  16. data/lib/jquery/secret_sauce/model/find_for_grid.rb +41 -41
  17. data/templates/dynatree/jquery.dynatree.js +111 -110
  18. data/templates/dynatree/jquery.dynatree.min.js +75 -77
  19. data/templates/dynatree/jquery/dynatree/aero.scss +1 -3
  20. data/templates/dynatree/jquery/dynatree/aqua.scss +1 -3
  21. data/templates/dynatree/jquery/dynatree/crystal.scss +1 -3
  22. data/templates/dynatree/jquery/dynatree/xp.scss +1 -3
  23. data/templates/emulators/emulators/iphone.landscape.png +0 -0
  24. data/templates/emulators/emulators/iphone.landscape.scss +4 -4
  25. data/templates/emulators/emulators/palm.landscape.scss +6 -6
  26. data/templates/emulators/emulators/palm.pre.landscape.png +0 -0
  27. data/templates/ical/jquery.ical.js +3202 -3197
  28. data/templates/ical/jquery.ical.min.js +185 -184
  29. data/templates/ical/jquery/ical.scss +3 -3
  30. data/templates/jqgrid/i18n/jqgrid/locale-ar.js +126 -0
  31. data/templates/jqgrid/i18n/jqgrid/locale-ar.min.js +6 -0
  32. data/templates/jqgrid/i18n/jqgrid/locale-fi.js +45 -47
  33. data/templates/jqgrid/i18n/jqgrid/locale-fi.min.js +6 -6
  34. data/templates/jqgrid/jquery.jqGrid.js +2047 -2036
  35. data/templates/jqgrid/jquery.jqGrid.min.js +48 -48
  36. data/templates/jqgrid/manifest.rb +2 -0
  37. data/templates/jqtouch/jquery.jqtouch.js +122 -113
  38. data/templates/jqtouch/jquery.jqtouch.min.js +1 -1
  39. data/templates/jquery/config/initializers/jquery.rb +4 -2
  40. data/templates/jquery/i18n/jquery.ui/datepicker-ar-DZ.js +23 -0
  41. data/templates/jquery/i18n/jquery.ui/datepicker-ar-DZ.min.js +2 -0
  42. data/templates/jquery/i18n/jquery.ui/datepicker-en-AU.js +23 -0
  43. data/templates/jquery/i18n/jquery.ui/datepicker-en-AU.min.js +2 -0
  44. data/templates/jquery/i18n/jquery.ui/datepicker-en-NZ.js +23 -0
  45. data/templates/jquery/i18n/jquery.ui/datepicker-en-NZ.min.js +2 -0
  46. data/templates/jquery/i18n/jquery.ui/datepicker-ml.js +23 -0
  47. data/templates/jquery/i18n/jquery.ui/datepicker-ml.min.js +2 -0
  48. data/templates/jquery/jquery-ui.js +354 -316
  49. data/templates/jquery/jquery-ui.min.js +544 -544
  50. data/templates/jquery/jquery.cookie.js +3 -3
  51. data/templates/jquery/jquery.form.js +271 -140
  52. data/templates/jquery/jquery.form.min.js +19 -17
  53. data/templates/jquery/jquery.layout.js +2435 -2437
  54. data/templates/jquery/jquery.layout.min.js +4 -3
  55. data/templates/jquery/jquery.mousewheel.js +78 -0
  56. data/templates/jquery/jquery.mousewheel.min.js +2 -0
  57. data/templates/jquery/jquery.offline.js +212 -0
  58. data/templates/jquery/jquery.offline.min.js +4 -0
  59. data/templates/jquery/jquery.tmpl.js +15 -22
  60. data/templates/jquery/jquery.tmpl.min.js +12 -12
  61. data/templates/jquery/jquery.tmplPlus.js +1 -0
  62. data/templates/jquery/jquery/ui/_theme.scss +27 -27
  63. data/templates/jquery/json.js +7 -0
  64. data/templates/jquery/json.min.js +7 -0
  65. data/templates/jquery/manifest.rb +14 -2
  66. data/templates/mobile/glyphish/{Read me first - license.txt → License.txt} +0 -0
  67. data/templates/mobile/jquery.mobile.js +1583 -1408
  68. data/templates/mobile/jquery.mobile.min.js +5 -5
  69. data/templates/mobile/jquery/mobile/_base.scss +938 -1038
  70. data/templates/mobile/jquery/mobile/default.scss +25 -26
  71. data/templates/mobile/jquery/mobile/valencia.scss +0 -1
  72. data/templates/mobile/manifest.rb +1 -1
  73. data/templates/tools/config/initializers/tools.rb +2 -0
  74. data/templates/tools/flowplayer.js +24 -0
  75. data/templates/tools/flowplayer.min.js +30 -0
  76. data/templates/tools/jquery.tools.js +4 -3
  77. data/templates/tools/jquery.tools.min.js +1 -1
  78. data/templates/tools/manifest.rb +4 -0
  79. data/templates/tools/swfobject.js +777 -0
  80. data/templates/tools/swfobject.min.js +19 -0
  81. metadata +31 -15
  82. data/templates/jquery/jquery.metadata.js +0 -122
  83. data/templates/jquery/jquery.metadata.min.js +0 -2
@@ -12,7 +12,7 @@ if(b.doCallback&&b.callback){b.doCallback=false;var c=b.callback.split(","),d=c[
12
12
  D=function(b,c){var d=0,e=false,f="";if(!i.browser.msie)if(i.curCSS(b[0],"display",true)=="none"){e=true;f=i.curCSS(b[0],"visibility",true);b.css({display:"block",visibility:"hidden"})}d=parseInt(i.curCSS(b[0],c,true),10)||0;if(e){b.css({display:"none"});f&&f!="hidden"&&b.css({visibility:f})}return d},E=function(b,c){var d;if(M(b)){b=G(b);d=s[b]}else d=i(b);if(c<=0)return 0;else c>0||(c=M(b)?H(b):d.outerWidth());return i.boxModel?c-D(d,"paddingLeft")-D(d,"paddingRight")-(i.curCSS(d[0],"borderLeftStyle",
13
13
  true)=="none"?0:D(d,"borderLeftWidth"))-(i.curCSS(d[0],"borderRightStyle",true)=="none"?0:D(d,"borderRightWidth")):c},A=function(b,c){var d;if(M(b)){b=G(b);d=s[b]}else d=i(b);if(c<=0)return 0;else c>0||(c=M(b)?H(b):d.outerHeight());return i.boxModel?c-D(d,"paddingTop")-D(d,"paddingBottom")-(i.curCSS(d[0],"borderTopStyle",true)=="none"?0:D(d,"borderTopWidth"))-(i.curCSS(d[0],"borderBottomStyle",true)=="none"?0:D(d,"borderBottomWidth")):c},H=function(b,c){var d=s[b],e=p[b],f=t[b],g=c?e.spacing_open:
14
14
  0;e=c?e.spacing_closed:0;return!d||f.isHidden?0:f.isClosed||f.isSliding&&c?e:l[b].dir=="horz"?d.outerHeight()+g:d.outerWidth()+g},U=function(b){var c=q,d=l[b].dir,e=t[b],f=s[ga[b]],g=p[b].spacing_open,k=p[ga[b]].spacing_open,h=!f?0:d=="horz"?f.outerHeight():f.outerWidth();f=e.minSize||0;d=Math.min(e.maxSize||9999,(d=="horz"?c.innerHeight:c.innerWidth)-g-h-k);var m,j;switch(b){case "north":m=c.offsetTop+f;j=c.offsetTop+d;break;case "west":m=c.offsetLeft+f;j=c.offsetLeft+d;break;case "south":m=c.offsetTop+
15
- c.innerHeight-d;j=c.offsetTop+c.innerHeight-f;break;case "east":m=c.offsetLeft+c.innerWidth-d;j=c.offsetLeft+c.innerWidth-f}i.extend(e,{minSize:f,maxSize:d,minPosition:m,maxPosition:j})},ja=function(){var b={top:H("north",true),bottom:H("south",true),left:H("west",true),right:H("east",true),width:0,height:0};with(b){width=q.innerWidth-left-right;height=q.innerHeight-bottom-top;top+=q.top;bottom+=q.bottom;left+=q.left;right+=q.right}return b},ka=function(b){var c={},d,e,f;i.each("Left,Right,Top,Bottom".split(","),
15
+ c.innerHeight-d;j=c.offsetTop+c.innerHeight-f;break;case "east":m=c.offsetLeft+c.innerWidth-d;j=c.offsetLeft+c.innerWidth-f}i.extend(e,{minSize:f,maxSize:d,minPosition:m,maxPosition:j})},ja=function(){var b={top:H("north",true),bottom:H("south",true),left:H("west",true),right:H("east",true),width:0,height:0};b.width=q.innerWidth-left-right;b.height=q.innerHeight-bottom-top;b.top+=q.top;b.bottom+=q.bottom;b.left+=q.left;b.right+=q.right;return b},ka=function(b){var c={},d,e,f;i.each("Left,Right,Top,Bottom".split(","),
16
16
  function(){d=G(this);e=c["border"+d]=D(b,"border"+d+"Width");f=c["padding"+d]=D(b,"padding"+d);c["offset"+d]=e+f;if(b==z)c[d.toLowerCase()]=i.boxModel?f:0});c.innerWidth=c.outerWidth=b.outerWidth();c.innerHeight=c.outerHeight=b.outerHeight();if(i.boxModel){c.innerWidth-=c.offsetLeft+c.offsetRight;c.innerHeight-=c.offsetTop+c.offsetBottom}return c},pa=function(b,c,d,e){var f=window.layout=window.layout||{};f=f.timers=f.timers||{};b="layout_"+t.id+"_"+b+"_"+c;f[b]||(f[b]=setTimeout(d,e))},V=function(b,
17
17
  c){var d=window.layout=window.layout||{};d=d.timers=d.timers||{};var e="layout_"+t.id+"_"+b+"_"+c;if(d[e]){clearTimeout(d[e]);delete d[e];return true}else return false},qa=function(){try{if(z[0].tagName=="BODY"){i("html").css({height:"100%",overflow:"hidden"});i("body").css({position:"relative",height:"100%",overflow:"hidden",margin:0,padding:0,border:"none"})}else{var b={overflow:"hidden"},c=z.css("position"),d=z.css("height");if(!z.hasClass("ui-layout-pane")){if(!c||"fixed,absolute,relative".indexOf(c)<
18
18
  0)b.position="relative";if(!d||d=="auto")b.height="100%"}z.css(b)}}catch(e){}q=t.container=ka(z)},ra=function(){i.each(l.borderPanes.split(","),function(b,c){var d=p[c];if(d.enableCursorHotkey||d.customHotkey){i(document).keydown(na);return false}})},sa=function(){u=oa(u);if(u.effects){i.extend(Z,u.effects);delete u.effects}i.each("name,scrollToBookmarkOnLoad".split(","),function(d,e){if(u[e]!==undefined)p[e]=u[e];else if(u.defaults[e]!==undefined){p[e]=u.defaults[e];delete u.defaults[e]}});i.each("paneSelector,resizerCursor,customHotkey".split(","),
@@ -45,5 +45,6 @@ false;n=f.isClosed?w:r;if(r)r.css("display",f.isClosed?"none":"block");if(w)w.cs
45
45
  e=q.innerWidth<b,f,g;if(d||e)i.each(["south","north","east","west"],function(k,h){f=t[h];g=l[h].dir;if(!f.isClosed&&(d&&g=="horz"||e&&g=="vert")){U(h);f.size>f.maxSize&&ba(h,f.maxSize)}});L("all");P("all")},z=i(this).css({overflow:"hidden"}),s={},N={},B={},O={},l={allPanes:"north,south,east,west,center",borderPanes:"north,south,east,west",zIndex:{resizer_normal:1,pane_normal:2,mask:4,sliding:100,resizing:1E4,animation:1E4},resizers:{cssReq:{position:"absolute",padding:0,margin:0,fontSize:"1px",textAlign:"left",
46
46
  overflow:"hidden",zIndex:1},cssDef:{background:"#DDD",border:"none"}},togglers:{cssReq:{position:"absolute",display:"block",padding:0,margin:0,overflow:"hidden",textAlign:"center",fontSize:"1px",cursor:"pointer",zIndex:1},cssDef:{background:"#AAA"}},content:{cssReq:{overflow:"auto"},cssDef:{}},defaults:{cssReq:{position:"absolute",margin:0,zIndex:2},cssDef:{padding:"10px",background:"#FFF",border:"1px solid #BBB",overflow:"auto"}},north:{edge:"top",sizeType:"height",dir:"horz",cssReq:{top:0,bottom:"auto",
47
47
  left:0,right:0,width:"auto"}},south:{edge:"bottom",sizeType:"height",dir:"horz",cssReq:{top:"auto",bottom:0,left:0,right:0,width:"auto"}},east:{edge:"right",sizeType:"width",dir:"vert",cssReq:{left:"auto",right:0,top:"auto",bottom:"auto",height:"auto"}},west:{edge:"left",sizeType:"width",dir:"vert",cssReq:{left:0,right:"auto",top:"auto",bottom:"auto",height:"auto"}},center:{dir:"center",cssReq:{left:"auto",right:"auto",top:"auto",bottom:"auto",height:"auto",width:"auto"}}},q=t.container;(function(){sa();
48
- qa();ta();ua();va();Q("all");if(p.scrollToBookmarkOnLoad)with(self.location)hash&&replace(hash);ra();i(window).resize(function(){var b="timerLayout_"+t.id;window[b]&&clearTimeout(window[b]);window[b]=null;window[b]=setTimeout(ma,100)})})();return{options:p,state:t,panes:s,toggle:R,open:K,close:I,hide:$,show:W,resizeContent:Q,sizePane:ba,resizeAll:ma,addToggleBtn:function(b,c){var d=T(b,c,"toggle");if(d)d.attr("title",t[c].isClosed?"Open":"Close").click(function(e){R(c);e.stopPropagation()})},addOpenBtn:function(b,
49
- c){var d=T(b,c,"open");d&&d.attr("title","Open").click(function(e){K(c);e.stopPropagation()})},addCloseBtn:function(b,c){var d=T(b,c,"close");d&&d.attr("title","Close").click(function(e){I(c);e.stopPropagation()})},addPinBtn:function(b,c){var d=T(b,c,"pin");if(d){var e=t[c];d.click(function(f){Y(i(this),c,e.isSliding||e.isClosed);e.isSliding||e.isClosed?K(c):I(c);f.stopPropagation()});Y(d,c,!e.isClosed&&!e.isSliding);l[c].pins.push(b)}},allowOverflow:ea,resetOverflow:S,cssWidth:E,cssHeight:A}}})(jQuery);
48
+ qa();ta();ua();va();Q("all");p.scrollToBookmarkOnLoad&&self.location.hash&&replace(self.location.hash);ra();i(window).resize(function(){var b="timerLayout_"+t.id;window[b]&&clearTimeout(window[b]);window[b]=null;window[b]=setTimeout(ma,100)})})();return{options:p,state:t,panes:s,toggle:R,open:K,close:I,hide:$,show:W,resizeContent:Q,sizePane:ba,resizeAll:ma,addToggleBtn:function(b,c){var d=T(b,c,"toggle");if(d)d.attr("title",t[c].isClosed?"Open":"Close").click(function(e){R(c);e.stopPropagation()})},
49
+ addOpenBtn:function(b,c){var d=T(b,c,"open");d&&d.attr("title","Open").click(function(e){K(c);e.stopPropagation()})},addCloseBtn:function(b,c){var d=T(b,c,"close");d&&d.attr("title","Close").click(function(e){I(c);e.stopPropagation()})},addPinBtn:function(b,c){var d=T(b,c,"pin");if(d){var e=t[c];d.click(function(f){Y(i(this),c,e.isSliding||e.isClosed);e.isSliding||e.isClosed?K(c):I(c);f.stopPropagation()});Y(d,c,!e.isClosed&&!e.isSliding);l[c].pins.push(b)}},allowOverflow:ea,resetOverflow:S,cssWidth:E,
50
+ cssHeight:A}}})(jQuery);
@@ -0,0 +1,78 @@
1
+ /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2
+ * Licensed under the MIT License (LICENSE.txt).
3
+ *
4
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
7
+ *
8
+ * Version: 3.0.4
9
+ *
10
+ * Requires: 1.2.2+
11
+ */
12
+
13
+ (function($) {
14
+
15
+ var types = ['DOMMouseScroll', 'mousewheel'];
16
+
17
+ $.event.special.mousewheel = {
18
+ setup: function() {
19
+ if ( this.addEventListener ) {
20
+ for ( var i=types.length; i; ) {
21
+ this.addEventListener( types[--i], handler, false );
22
+ }
23
+ } else {
24
+ this.onmousewheel = handler;
25
+ }
26
+ },
27
+
28
+ teardown: function() {
29
+ if ( this.removeEventListener ) {
30
+ for ( var i=types.length; i; ) {
31
+ this.removeEventListener( types[--i], handler, false );
32
+ }
33
+ } else {
34
+ this.onmousewheel = null;
35
+ }
36
+ }
37
+ };
38
+
39
+ $.fn.extend({
40
+ mousewheel: function(fn) {
41
+ return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
42
+ },
43
+
44
+ unmousewheel: function(fn) {
45
+ return this.unbind("mousewheel", fn);
46
+ }
47
+ });
48
+
49
+
50
+ function handler(event) {
51
+ var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
52
+ event = $.event.fix(orgEvent);
53
+ event.type = "mousewheel";
54
+
55
+ // Old school scrollwheel delta
56
+ if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
57
+ if ( event.detail ) { delta = -event.detail/3; }
58
+
59
+ // New school multidimensional scroll (touchpads) deltas
60
+ deltaY = delta;
61
+
62
+ // Gecko
63
+ if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
64
+ deltaY = 0;
65
+ deltaX = -1*delta;
66
+ }
67
+
68
+ // Webkit
69
+ if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
70
+ if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
71
+
72
+ // Add event and delta to the front of the arguments
73
+ args.unshift(event, delta, deltaX, deltaY);
74
+
75
+ return $.event.handle.apply(this, args);
76
+ }
77
+
78
+ })(jQuery);
@@ -0,0 +1,2 @@
1
+ (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=
2
+ 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);
@@ -0,0 +1,212 @@
1
+ /*!
2
+ * jQuery Offline
3
+ * Version 1.0.0
4
+ *
5
+ * http://github.com/wycats/jquery-offline
6
+ *
7
+ * Copyright 2010, Yehuda Katz
8
+ *
9
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ * of this software and associated documentation files (the "Software"), to deal
11
+ * in the Software without restriction, including without limitation the rights
12
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in
17
+ * all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
+ * THE SOFTWARE.
26
+ *
27
+ * Date: Fri Jul 9 10:20:00 2010 -0800
28
+ */
29
+
30
+ (function($) {
31
+
32
+ var prefix = "offline.jquery:",
33
+ mostRecent = null,
34
+ requesting = {};
35
+
36
+ // Allow the user to explicitly turn off localStorage
37
+ // before loading this plugin
38
+ if (typeof $.support.localStorage === "undefined") {
39
+ $.support.localStorage = !!window.localStorage;
40
+ }
41
+
42
+ // modified getJSON which uses ifModified: true
43
+ function getJSON(url, data, fn) {
44
+ if (jQuery.isFunction(data)) {
45
+ fn = data;
46
+ data = null;
47
+ }
48
+
49
+ var requestingKey = url + "?" + $.param(data || {});
50
+ if (requesting[requestingKey]) {
51
+ return false;
52
+ }
53
+
54
+ requesting[requestingKey] = true;
55
+
56
+ return jQuery.ajax({
57
+ type: "GET",
58
+ url: url,
59
+ data: data,
60
+ success: function(responseData, text) {
61
+ delete requesting[requestingKey];
62
+
63
+ // handle lack of response (error callback isn't called in this case)
64
+ if (undefined === responseData) {
65
+ if (!window.navigator.onLine) {
66
+ // requeue the request for the next time we come online
67
+ mostRecent = function() {
68
+ getJSON(url, data, fn);
69
+ };
70
+ }
71
+ return;
72
+ }
73
+
74
+ fn(responseData, text);
75
+ },
76
+ error: function() {
77
+ delete requesting[requestingKey];
78
+ },
79
+ dataType: "json",
80
+ ifModified: true
81
+ });
82
+ }
83
+
84
+ if ($.support.localStorage) {
85
+ // If localStorage is available, define jQuery.retrieveJSON
86
+ // and jQuery.clearJSON to operate in terms of the offline
87
+ // cache
88
+ // If the user comes online, run the most recent request
89
+ // that was queued due to the user being offline
90
+ $(window).bind("online", function() {
91
+ if (mostRecent) {
92
+ mostRecent();
93
+ }
94
+ });
95
+
96
+ // If the user goes offline, hide any loading bar
97
+ // the user may have created
98
+ $(window).bind("offline", function() {
99
+ jQuery.event.trigger("ajaxStop");
100
+ });
101
+
102
+ $.retrieveJSON = function(url, data, fn) {
103
+ // allow jQuery.retrieveJSON(url, fn)
104
+ if ($.isFunction(data)) {
105
+ fn = data;
106
+ data = {};
107
+ }
108
+
109
+ // remember when this request started so we can report
110
+ // the time when a follow-up Ajax request completes.
111
+ // this is especially important when the user comes
112
+ // back online, since retrieveDate may be minutes,
113
+ // hours or even days before the Ajax request finally
114
+ // completes
115
+ var retrieveDate = new Date;
116
+
117
+ // get a String value for the data passed in, and then
118
+ // use it to calculate a cache key
119
+ var param = $.param(data),
120
+ key = prefix + url + ":" + param,
121
+ text = localStorage[key],
122
+ dateString = localStorage[key + ":date"],
123
+ date = new Date(Date.parse(dateString));
124
+
125
+ function cleanupLocalStorage() {
126
+ // take all date keys and remove the oldest half
127
+ var dateKeys = [];
128
+ for (var i = 0; i < localStorage.length; ++i) {
129
+ var key = localStorage.key(i);
130
+ if (/:date$/.test(key)) {
131
+ dateKeys.push(key);
132
+ }
133
+ }
134
+ dateKeys.sort(function(a, b) {
135
+ var date_a = localStorage[a], date_b = localStorage[b];
136
+ return date_a < date_b ? -1 : (date_a > date_b ? +1 : 0);
137
+ });
138
+ for (var i = 0; i < dateKeys.length / 2; ++i) {
139
+ var key = dateKeys[i];
140
+ delete localStorage[key];
141
+ delete localStorage[key.substr(0, key.length - 5)]; // :date
142
+ }
143
+ }
144
+
145
+ // create a function that will make an Ajax request and
146
+ // store the result in the cache. This function will be
147
+ // deferred until later if the user is offline
148
+ function getData() {
149
+ getJSON(url, data, function(json, status) {
150
+ if ( status == 'notmodified' ) {
151
+ // Just return if the response has a 304 status code
152
+ return false;
153
+ }
154
+
155
+ while (true) {
156
+ try {
157
+ localStorage[key] = JSON.stringify(json);
158
+ localStorage[key + ":date"] = new Date;
159
+ break;
160
+ } catch (e) {
161
+ if (e.name == "QUOTA_EXCEEDED_ERR" || e.name ==
162
+ "NS_ERROR_DOM_QUOTA_REACHED") {
163
+ cleanupLocalStorage();
164
+ }
165
+ }
166
+ }
167
+
168
+ // If this is a follow-up request, create an object
169
+ // containing both the original time of the cached
170
+ // data and the time that the data was originally
171
+ // retrieved from the cache. With this information,
172
+ // users of jQuery Offline can provide the user
173
+ // with improved feedback if the lag is large
174
+ var data = text && { cachedAt: date, retrievedAt: retrieveDate };
175
+ fn(json, status, data);
176
+ });
177
+ }
178
+
179
+ // If there is anything in the cache, call the callback
180
+ // right away, with the "cached" status string
181
+ if( text ) {
182
+ var response = fn( $.parseJSON(text), "cached", { cachedAt: date } );
183
+ if( response === false ) return false;
184
+ }
185
+
186
+ // If the user is online, make the Ajax request right away;
187
+ // otherwise, make it the most recent callback so it will
188
+ // get triggered when the user comes online
189
+ if (window.navigator.onLine) {
190
+ getData();
191
+ } else {
192
+ mostRecent = getData;
193
+ }
194
+
195
+ return true;
196
+ };
197
+
198
+ // jQuery.clearJSON is simply a wrapper around deleting the
199
+ // localStorage for a URL/data pair
200
+ $.clearJSON = function(url, data) {
201
+ var param = $.param(data || {});
202
+ delete localStorage[prefix + url + ":" + param];
203
+ delete localStorage[prefix + url + ":" + param + ":date"];
204
+ };
205
+ } else {
206
+ // If localStorage is unavailable, just make all requests
207
+ // regular Ajax requests.
208
+ $.retrieveJSON = getJSON;
209
+ $.clearJSON = $.noop;
210
+ }
211
+
212
+ })(jQuery);
@@ -0,0 +1,4 @@
1
+ (function(a){function m(e,b,c){if(jQuery.isFunction(b)){c=b;b=null}var h=e+"?"+a.param(b||{});if(j[h])return false;j[h]=true;return jQuery.ajax({type:"GET",url:e,data:b,success:function(i,n){delete j[h];if(undefined===i)window.navigator.onLine||(k=function(){m(e,b,c)});else c(i,n)},error:function(){delete j[h]},dataType:"json",ifModified:true})}var k=null,j={};if(typeof a.support.localStorage==="undefined")a.support.localStorage=!!window.localStorage;if(a.support.localStorage){a(window).bind("online",
2
+ function(){k&&k()});a(window).bind("offline",function(){jQuery.event.trigger("ajaxStop")});a.retrieveJSON=function(e,b,c){function h(){for(var g=[],d=0;d<localStorage.length;++d){var f=localStorage.key(d);/:date$/.test(f)&&g.push(f)}g.sort(function(s,t){var p=localStorage[s],q=localStorage[t];return p<q?-1:p>q?+1:0});for(d=0;d<g.length/2;++d){f=g[d];delete localStorage[f];delete localStorage[f.substr(0,f.length-5)]}}function i(){m(e,b,function(g,d){if(d=="notmodified")return false;for(;;)try{localStorage[l]=
3
+ JSON.stringify(g);localStorage[l+":date"]=new Date;break}catch(f){if(f.name=="QUOTA_EXCEEDED_ERR"||f.name=="NS_ERROR_DOM_QUOTA_REACHED")h()}c(g,d,o&&{cachedAt:r,retrievedAt:n})})}if(a.isFunction(b)){c=b;b={}}var n=new Date,u=a.param(b),l="offline.jquery:"+e+":"+u,o=localStorage[l],r=new Date(Date.parse(localStorage[l+":date"]));if(o)if(c(a.parseJSON(o),"cached",{cachedAt:r})===false)return false;if(window.navigator.onLine)i();else k=i;return true};a.clearJSON=function(e,b){var c=a.param(b||{});delete localStorage["offline.jquery:"+
4
+ e+":"+c];delete localStorage["offline.jquery:"+e+":"+c+":date"]}}else{a.retrieveJSON=m;a.clearJSON=a.noop}})(jQuery);
@@ -1,6 +1,7 @@
1
1
  /*!
2
- * jQuery Templates Plugin
2
+ * jQuery Templates Plugin 1.0.0pre
3
3
  * http://github.com/jquery/jquery-tmpl
4
+ * Requires jQuery 1.4.2
4
5
  *
5
6
  * Copyright Software Freedom Conservancy, Inc.
6
7
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -27,7 +28,7 @@
27
28
  update: tiUpdate
28
29
  };
29
30
  if ( options ) {
30
- jQuery.extend( newItem, options, { nodes: [], parent: parentItem } );
31
+ jQuery.extend( newItem, options, { nodes: [], parent: parentItem });
31
32
  }
32
33
  if ( fn ) {
33
34
  // Build the hierarchical content to be used during insertion into DOM
@@ -60,7 +61,7 @@
60
61
  for ( i = 0, l = insert.length; i < l; i++ ) {
61
62
  cloneIndex = i;
62
63
  elems = (i > 0 ? this.clone(true) : this).get();
63
- jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
64
+ jQuery( insert[i] )[ original ]( elems );
64
65
  ret = ret.concat( elems );
65
66
  }
66
67
  cloneIndex = 0;
@@ -91,14 +92,9 @@
91
92
  },
92
93
 
93
94
  domManip: function( args, table, callback, options ) {
94
- // This appears to be a bug in the appendTo, etc. implementation
95
- // it should be doing .call() instead of .apply(). See #6227
96
- if ( args[0] && args[0].nodeType ) {
97
- var dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem;
98
- while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], "tmplItem" ))) {}
99
- if ( argsLength > 1 ) {
100
- dmArgs[0] = [jQuery.makeArray( args )];
101
- }
95
+ if ( args[0] && jQuery.isArray( args[0] )) {
96
+ var dmArgs = jQuery.makeArray( arguments ), elems = args[0], elemsLength = elems.length, i = 0, tmplItem;
97
+ while ( i < elemsLength && !(tmplItem = jQuery.data( elems[i++], "tmplItem" ))) {}
102
98
  if ( tmplItem && cloneIndex ) {
103
99
  dmArgs[2] = function( fragClone ) {
104
100
  // Handler called by oldManip when rendered template has been inserted into DOM.
@@ -187,7 +183,10 @@
187
183
  }
188
184
  if ( tmpl.nodeType ) {
189
185
  // If this is a template block, use cached copy, or generate tmpl function and cache.
190
- tmpl = jQuery.data( tmpl, "tmpl" ) || jQuery.data( tmpl, "tmpl", buildTmplFn( tmpl.innerHTML ));
186
+ tmpl = jQuery.data( tmpl, "tmpl" ) || jQuery.data( tmpl, "tmpl", buildTmplFn( tmpl.innerHTML ));
187
+ // Issue: In IE, if the container element is not a script block, the innerHTML will remove quotes from attribute values whenever the value does not include white space.
188
+ // This means that foo="${x}" will not work if the value of x includes white space: foo="${x}" -> foo=value of x.
189
+ // To correct this, include space in tag: foo="${ x }" -> foo="value of x"
191
190
  }
192
191
  return typeof name === "string" ? (jQuery.template[name] = tmpl) : tmpl;
193
192
  }
@@ -341,7 +340,7 @@
341
340
  args = args ? ("," + unescape( args ) + ")") : (parens ? ")" : "");
342
341
  // Support for target being things like a.toLowerCase();
343
342
  // In that case don't call with template item as 'this' pointer. Just evaluate...
344
- expr = parens ? (target.indexOf(".") > -1 ? target + parens : ("(" + target + ").call($item" + args)) : target;
343
+ expr = parens ? (target.indexOf(".") > -1 ? target + unescape( parens ) : ("(" + target + ").call($item" + args)) : target;
345
344
  exprAutoFnDetect = parens ? expr : "(typeof(" + target + ")==='function'?(" + target + ").call($item):(" + target + "))";
346
345
  } else {
347
346
  exprAutoFnDetect = expr = def.$1 || "null";
@@ -352,13 +351,7 @@
352
351
  .split( "$notnull_1" ).join( target ? "typeof(" + target + ")!=='undefined' && (" + target + ")!=null" : "true" )
353
352
  .split( "$1a" ).join( exprAutoFnDetect )
354
353
  .split( "$1" ).join( expr )
355
- .split( "$2" ).join( fnargs ?
356
- fnargs.replace( /\s*([^\(]+)\s*(\((.*?)\))?/g, function( all, name, parens, params ) {
357
- params = params ? ("," + params + ")") : (parens ? ")" : "");
358
- return params ? ("(" + name + ").call($item" + params) : all;
359
- })
360
- : (def.$2||"")
361
- ) +
354
+ .split( "$2" ).join( fnargs || def.$2 || "" ) +
362
355
  "_.push('";
363
356
  }) +
364
357
  "');}return _;"
@@ -407,7 +400,7 @@
407
400
  if ( !(tmplItem = newTmplItems[key]) ) {
408
401
  // The item is for wrapped content, and was copied from the temporary parent wrappedItem.
409
402
  tmplItem = wrappedItems[key];
410
- tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode], null, true );
403
+ tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode] );
411
404
  tmplItem.key = ++itemKey;
412
405
  newTmplItems[itemKey] = tmplItem;
413
406
  }
@@ -443,7 +436,7 @@
443
436
  function cloneTmplItem( key ) {
444
437
  key = key + keySuffix;
445
438
  tmplItem = newClonedItems[key] =
446
- (newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));
439
+ (newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent ));
447
440
  }
448
441
  }
449
442
  }
@@ -1,12 +1,12 @@
1
- (function(d){function s(a,b,e,c){c={data:c||(b?b.data:{}),_wrap:b?b._wrap:null,tmpl:null,parent:b||null,nodes:[],calls:I,nest:J,wrap:K,html:L,update:M};a&&d.extend(c,a,{nodes:[],parent:b});if(e){c.tmpl=e;c._ctnt=c._ctnt||c.tmpl(d,c);c.key=++t;(y.length?u:m)[t]=c}return c}function v(a,b,e){var c;e=e?d.map(e,function(f){return typeof f==="string"?a.key?f.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+q+'="'+a.key+'" $2'):f:v(f,a,f._ctnt)}):a;if(b)return e;e=e.join("");e.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,
2
- function(f,g,h,j){c=d(h).get();C(c);if(g)c=z(g).concat(c);if(j)c=c.concat(z(j))});return c?c:z(e)}function z(a){var b=document.createElement("div");b.innerHTML=a;return d.makeArray(b.childNodes)}function D(a){return new Function("jQuery","$item","var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('"+d.trim(a).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,
3
- function(b,e,c,f,g,h,j){b=d.tmpl.tag[c];if(!b)throw"Template command not found: "+c;c=b._default||[];if(h&&!/\w$/.test(g)){g+=h;h=""}if(g){g=A(g);j=j?","+A(j)+")":h?")":"";j=h?g.indexOf(".")>-1?g+h:"("+g+").call($item"+j:g;h=h?j:"(typeof("+g+")==='function'?("+g+").call($item):("+g+"))"}else h=j=c.$1||"null";f=A(f);return"');"+b[e?"close":"open"].split("$notnull_1").join(g?"typeof("+g+")!=='undefined' && ("+g+")!=null":"true").split("$1a").join(h).split("$1").join(j).split("$2").join(f?f.replace(/\s*([^\(]+)\s*(\((.*?)\))?/g,
4
- function(p,n,w,l){return(l=l?","+l+")":w?")":"")?"("+n+").call($item"+l:p}):c.$2||"")+"_.push('"})+"');}return _;")}function E(a,b){a._wrap=v(a,true,d.isArray(b)?b:[F.test(b)?b:d(b).html()]).join("")}function A(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function C(a){function b(n){function w(B){B+=e;i=g[B]=g[B]||s(i,m[i.parent.key+e]||i.parent,null,true)}var l,k=n,i,r;if(r=n.getAttribute(q)){for(;k.parentNode&&(k=k.parentNode).nodeType===1&&!(l=k.getAttribute(q)););if(l!==r){k=k.parentNode?
5
- k.nodeType===11?0:k.getAttribute(q)||0:0;if(!(i=m[r])){i=u[r];i=s(i,m[k]||u[k],null,true);i.key=++t;m[t]=i}o&&w(r)}n.removeAttribute(q)}else if(o&&(i=d.data(n,"tmplItem"))){w(i.key);m[i.key]=i;k=(k=d.data(n.parentNode,"tmplItem"))?k.key:0}if(i){for(l=i;l&&l.key!=k;){l.nodes.push(n);l=l.parent}delete i._ctnt;delete i._wrap;d.data(n,"tmplItem",i)}}var e="_"+o,c,f,g={},h,j,p;h=0;for(j=a.length;h<j;h++)if((c=a[h]).nodeType===1){f=c.getElementsByTagName("*");for(p=f.length-1;p>=0;p--)b(f[p]);b(c)}}function I(a,
6
- b,e,c){if(!a)return y.pop();y.push({_:a,tmpl:b,item:this,data:e,options:c})}function J(a,b,e){return d.tmpl(d.template(a),b,e,this)}function K(a,b){var e=a.options||{};e.wrapped=b;return d.tmpl(d.template(a.tmpl),a.data,e,a.item)}function L(a,b){var e=this._wrap;return d.map(d(d.isArray(e)?e.join(""):e).filter(a||"*"),function(c){if(b)c=c.innerText||c.textContent;else{var f;if(!(f=c.outerHTML)){f=document.createElement("div");f.appendChild(c.cloneNode(true));f=f.innerHTML}c=f}return c})}function M(){var a=
7
- this.nodes;d.tmpl(null,null,null,this).insertBefore(a[0]);d(a).remove()}var G=d.fn.domManip,q="_tmplitem",F=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,m={},u={},x,H={key:0,data:{}},t=0,o=0,y=[];d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(e){var c=[];e=d(e);var f,g,h;f=this.length===1&&this[0].parentNode;x=m||{};if(f&&f.nodeType===11&&f.childNodes.length===1&&e.length===1){e[b](this[0]);c=this}else{g=0;for(h=
8
- e.length;g<h;g++){o=g;f=(g>0?this.clone(true):this).get();d.fn[b].apply(d(e[g]),f);c=c.concat(f)}o=0;c=this.pushStack(c,a,e.selector)}e=x;x=null;d.tmpl.complete(e);return c}});d.fn.extend({tmpl:function(a,b,e){return d.tmpl(this[0],a,b,e)},tmplItem:function(){return d.tmplItem(this[0])},template:function(a){return d.template(a,this[0])},domManip:function(a,b,e){if(a[0]&&a[0].nodeType){for(var c=d.makeArray(arguments),f=a.length,g=0,h;g<f&&!(h=d.data(a[g++],"tmplItem")););if(f>1)c[0]=[d.makeArray(a)];
9
- if(h&&o)c[2]=function(j){d.tmpl.afterManip(this,j,e)};G.apply(this,c)}else G.apply(this,arguments);o=0;x||d.tmpl.complete(m);return this}});d.extend({tmpl:function(a,b,e,c){var f=!c;if(f){c=H;a=d.template[a]||d.template(null,a);u={}}else if(!a){a=c.tmpl;m[c.key]=c;c.nodes=[];c.wrapped&&E(c,c.wrapped);return d(v(c,null,c.tmpl(d,c)))}if(!a)return[];if(typeof b==="function")b=b.call(c||{});e&&e.wrapped&&E(e,e.wrapped);b=d.isArray(b)?d.map(b,function(g){return g?s(e,c,a,g):null}):[s(e,c,a,b)];return f?
10
- d(v(c,null,b)):b},tmplItem:function(a){var b;if(a instanceof d)a=a[0];for(;a&&a.nodeType===1&&!(b=d.data(a,"tmplItem"))&&(a=a.parentNode););return b||H},template:function(a,b){if(b){if(typeof b==="string")b=D(b);else if(b instanceof d)b=b[0]||{};if(b.nodeType)b=d.data(b,"tmpl")||d.data(b,"tmpl",D(b.innerHTML));return typeof a==="string"?d.template[a]=b:b}return a?typeof a!=="string"?d.template(null,a):d.template[a]||d.template(null,F.test(a)?a:d(a)):null},encode:function(a){return(""+a).split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;")}});
11
- d.extend(d.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){_=_.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(_,$1,$2);_=[];",close:"call=$item.calls();_=call._.concat($item.wrap(call,_));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){_.push($1a);}"},"=":{_default:{$1:"$data"},
12
- open:"if($notnull_1){_.push($.encode($1a));}"},"!":{open:""}},complete:function(){m={}},afterManip:function(a,b,e){var c=b.nodeType===11?d.makeArray(b.childNodes):b.nodeType===1?[b]:[];e.call(a,b);C(c);o++}})})(jQuery);
1
+ (function(d){function s(a,b,e,c){c={data:c||(b?b.data:{}),_wrap:b?b._wrap:null,tmpl:null,parent:b||null,nodes:[],calls:I,nest:J,wrap:K,html:L,update:M};a&&d.extend(c,a,{nodes:[],parent:b});if(e){c.tmpl=e;c._ctnt=c._ctnt||c.tmpl(d,c);c.key=++t;(y.length?u:l)[t]=c}return c}function v(a,b,e){var c;e=e?d.map(e,function(f){return typeof f==="string"?a.key?f.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+q+'="'+a.key+'" $2'):f:v(f,a,f._ctnt)}):a;if(b)return e;e=e.join("");e.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,
2
+ function(f,g,h,j){c=d(h).get();B(c);if(g)c=z(g).concat(c);if(j)c=c.concat(z(j))});return c?c:z(e)}function z(a){var b=document.createElement("div");b.innerHTML=a;return d.makeArray(b.childNodes)}function C(a){return new Function("jQuery","$item","var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('"+d.trim(a).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,
3
+ function(b,e,c,f,g,h,j){b=d.tmpl.tag[c];if(!b)throw"Template command not found: "+c;c=b._default||[];if(h&&!/\w$/.test(g)){g+=h;h=""}if(g){g=w(g);j=j?","+w(j)+")":h?")":"";j=h?g.indexOf(".")>-1?g+w(h):"("+g+").call($item"+j:g;h=h?j:"(typeof("+g+")==='function'?("+g+").call($item):("+g+"))"}else h=j=c.$1||"null";f=w(f);return"');"+b[e?"close":"open"].split("$notnull_1").join(g?"typeof("+g+")!=='undefined' && ("+g+")!=null":"true").split("$1a").join(h).split("$1").join(j).split("$2").join(f||c.$2||
4
+ "")+"_.push('"})+"');}return _;")}function D(a,b){a._wrap=v(a,true,d.isArray(b)?b:[E.test(b)?b:d(b).html()]).join("")}function w(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function B(a){function b(o){function F(A){A+=e;i=g[A]=g[A]||s(i,l[i.parent.key+e]||i.parent)}var m,k=o,i,r;if(r=o.getAttribute(q)){for(;k.parentNode&&(k=k.parentNode).nodeType===1&&!(m=k.getAttribute(q)););if(m!==r){k=k.parentNode?k.nodeType===11?0:k.getAttribute(q)||0:0;if(!(i=l[r])){i=u[r];i=s(i,l[k]||u[k]);
5
+ i.key=++t;l[t]=i}n&&F(r)}o.removeAttribute(q)}else if(n&&(i=d.data(o,"tmplItem"))){F(i.key);l[i.key]=i;k=(k=d.data(o.parentNode,"tmplItem"))?k.key:0}if(i){for(m=i;m&&m.key!=k;){m.nodes.push(o);m=m.parent}delete i._ctnt;delete i._wrap;d.data(o,"tmplItem",i)}}var e="_"+n,c,f,g={},h,j,p;h=0;for(j=a.length;h<j;h++)if((c=a[h]).nodeType===1){f=c.getElementsByTagName("*");for(p=f.length-1;p>=0;p--)b(f[p]);b(c)}}function I(a,b,e,c){if(!a)return y.pop();y.push({_:a,tmpl:b,item:this,data:e,options:c})}function J(a,
6
+ b,e){return d.tmpl(d.template(a),b,e,this)}function K(a,b){var e=a.options||{};e.wrapped=b;return d.tmpl(d.template(a.tmpl),a.data,e,a.item)}function L(a,b){var e=this._wrap;return d.map(d(d.isArray(e)?e.join(""):e).filter(a||"*"),function(c){if(b)c=c.innerText||c.textContent;else{var f;if(!(f=c.outerHTML)){f=document.createElement("div");f.appendChild(c.cloneNode(true));f=f.innerHTML}c=f}return c})}function M(){var a=this.nodes;d.tmpl(null,null,null,this).insertBefore(a[0]);d(a).remove()}var G=d.fn.domManip,
7
+ q="_tmplitem",E=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,l={},u={},x,H={key:0,data:{}},t=0,n=0,y=[];d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(e){var c=[];e=d(e);var f,g,h;f=this.length===1&&this[0].parentNode;x=l||{};if(f&&f.nodeType===11&&f.childNodes.length===1&&e.length===1){e[b](this[0]);c=this}else{g=0;for(h=e.length;g<h;g++){n=g;f=(g>0?this.clone(true):this).get();d(e[g])[b](f);c=c.concat(f)}n=0;
8
+ c=this.pushStack(c,a,e.selector)}e=x;x=null;d.tmpl.complete(e);return c}});d.fn.extend({tmpl:function(a,b,e){return d.tmpl(this[0],a,b,e)},tmplItem:function(){return d.tmplItem(this[0])},template:function(a){return d.template(a,this[0])},domManip:function(a,b,e){if(a[0]&&d.isArray(a[0])){for(var c=d.makeArray(arguments),f=a[0],g=f.length,h=0,j;h<g&&!(j=d.data(f[h++],"tmplItem")););if(j&&n)c[2]=function(p){d.tmpl.afterManip(this,p,e)};G.apply(this,c)}else G.apply(this,arguments);n=0;x||d.tmpl.complete(l);
9
+ return this}});d.extend({tmpl:function(a,b,e,c){var f=!c;if(f){c=H;a=d.template[a]||d.template(null,a);u={}}else if(!a){a=c.tmpl;l[c.key]=c;c.nodes=[];c.wrapped&&D(c,c.wrapped);return d(v(c,null,c.tmpl(d,c)))}if(!a)return[];if(typeof b==="function")b=b.call(c||{});e&&e.wrapped&&D(e,e.wrapped);b=d.isArray(b)?d.map(b,function(g){return g?s(e,c,a,g):null}):[s(e,c,a,b)];return f?d(v(c,null,b)):b},tmplItem:function(a){var b;if(a instanceof d)a=a[0];for(;a&&a.nodeType===1&&!(b=d.data(a,"tmplItem"))&&(a=
10
+ a.parentNode););return b||H},template:function(a,b){if(b){if(typeof b==="string")b=C(b);else if(b instanceof d)b=b[0]||{};if(b.nodeType)b=d.data(b,"tmpl")||d.data(b,"tmpl",C(b.innerHTML));return typeof a==="string"?d.template[a]=b:b}return a?typeof a!=="string"?d.template(null,a):d.template[a]||d.template(null,E.test(a)?a:d(a)):null},encode:function(a){return(""+a).split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;")}});d.extend(d.tmpl,{tag:{tmpl:{_default:{$2:"null"},
11
+ open:"if($notnull_1){_=_.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(_,$1,$2);_=[];",close:"call=$item.calls();_=call._.concat($item.wrap(call,_));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){_.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){_.push($.encode($1a));}"},
12
+ "!":{open:""}},complete:function(){l={}},afterManip:function(a,b,e){var c=b.nodeType===11?d.makeArray(b.childNodes):b.nodeType===1?[b]:[];e.call(a,b);B(c);n++}})})(jQuery);
@@ -1,4 +1,5 @@
1
1
  /*!
2
+ * tmplPlus.js: for jQuery Templates Plugin 1.0.0pre
2
3
  * Additional templating features or support for more advanced/less common scenarios.
3
4
  * Requires jquery.tmpl.js
4
5
  * http://github.com/jquery/jquery-tmpl