compass-jquery-plugin 0.3.3.0 → 0.3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. data/README.md +4 -4
  2. data/VERSION.yml +1 -1
  3. data/lib/handle_js_files.rb +1 -1
  4. data/lib/jquery/gridify/grid_column.rb +4 -0
  5. data/lib/jquery/gridify/grid_options.rb +5 -1
  6. data/lib/jquery/gridify/grid_view.rb +8 -3
  7. data/templates/dynatree/jquery.dynatree.js +184 -73
  8. data/templates/dynatree/jquery.dynatree.min.js +78 -76
  9. data/templates/emulators/emulators/galaxy.tab.7.7.landscape.png +0 -0
  10. data/templates/emulators/emulators/{palm.pre.2.landscape.scss → galaxy.tab.7.7.landscape.scss} +7 -7
  11. data/templates/emulators/emulators/galaxy.tab.7.7.portrait.png +0 -0
  12. data/templates/emulators/emulators/{palm.pre.2.portrait.scss → galaxy.tab.7.7.portrait.scss} +7 -7
  13. data/templates/emulators/manifest.rb +4 -4
  14. data/templates/graphics/config/initializers/graphics.rb +1 -1
  15. data/templates/graphics/highcharts/dark-blue.js +257 -159
  16. data/templates/graphics/highcharts/dark-blue.min.js +4 -2
  17. data/templates/graphics/highcharts/dark-green.js +257 -159
  18. data/templates/graphics/highcharts/dark-green.min.js +4 -2
  19. data/templates/graphics/highcharts/gray.js +252 -154
  20. data/templates/graphics/highcharts/gray.min.js +4 -2
  21. data/templates/graphics/highcharts/grid.js +84 -84
  22. data/templates/graphics/highcharts/highslide-full.min.js +3 -3
  23. data/templates/graphics/highcharts/highslide.js +3391 -0
  24. data/templates/graphics/highcharts/highslide.min.js +132 -0
  25. data/templates/graphics/jquery.ganttView.min.js +4 -4
  26. data/templates/graphics/jquery.highcharts.js +15379 -1071
  27. data/templates/graphics/jquery.highcharts.min.js +384 -167
  28. data/templates/graphics/jquery.sparkline.min.js +2 -2
  29. data/templates/graphics/manifest.rb +2 -0
  30. data/templates/ical/jquery.ical.min.js +46 -47
  31. data/templates/jqgrid/i18n/jqgrid/locale-bg.min.js +2 -2
  32. data/templates/jqgrid/i18n/jqgrid/locale-bg1251.min.js +2 -2
  33. data/templates/jqgrid/i18n/jqgrid/locale-fi.js +20 -19
  34. data/templates/jqgrid/i18n/jqgrid/locale-fi.min.js +7 -6
  35. data/templates/jqgrid/i18n/jqgrid/locale-is.js +28 -28
  36. data/templates/jqgrid/i18n/jqgrid/locale-is.min.js +6 -6
  37. data/templates/jqgrid/i18n/jqgrid/locale-th.js +134 -0
  38. data/templates/jqgrid/i18n/jqgrid/locale-th.min.js +6 -0
  39. data/templates/jqgrid/jquery.jqGrid.js +674 -598
  40. data/templates/jqgrid/jquery.jqGrid.min.js +444 -441
  41. data/templates/jqgrid/jquery/jqGrid.scss +0 -3
  42. data/templates/jqgrid/manifest.rb +2 -0
  43. data/templates/jqtouch/jquery.jqtouch.js +201 -156
  44. data/templates/jqtouch/jquery.jqtouch.min.js +1 -1
  45. data/templates/jqtouch/jquery/touch/apple.scss +2 -2
  46. data/templates/jqtouch/jquery/touch/default.scss +2 -2
  47. data/templates/jquery/amplify.store.js +111 -78
  48. data/templates/jquery/amplify.store.min.js +6 -6
  49. data/templates/jquery/history.js +3 -3
  50. data/templates/jquery/i18n/jquery.ui/datepicker-nl.js +1 -1
  51. data/templates/jquery/i18n/jquery.ui/datepicker-nl.min.js +1 -1
  52. data/templates/jquery/jquery-ui.js +1286 -1042
  53. data/templates/jquery/jquery-ui.min.js +320 -316
  54. data/templates/jquery/jquery.contextMenu.js +2 -2
  55. data/templates/jquery/jquery.easing.js +152 -152
  56. data/templates/jquery/jquery.easing.min.js +7 -7
  57. data/templates/jquery/jquery.farbtastic.min.js +2 -2
  58. data/templates/jquery/jquery.form.js +30 -30
  59. data/templates/jquery/jquery.haml.min.js +5 -5
  60. data/templates/jquery/jquery.hotkeys.min.js +1 -1
  61. data/templates/jquery/jquery.js +419 -311
  62. data/templates/jquery/jquery.layout.js +59 -40
  63. data/templates/jquery/jquery.min.js +176 -176
  64. data/templates/jquery/jquery.themeswitchertool.js +37 -37
  65. data/templates/jquery/jquery.tmpl.js +4 -4
  66. data/templates/jquery/jquery.tmpl.min.js +9 -9
  67. data/templates/jquery/jquery.tmplPlus.min.js +3 -3
  68. data/templates/jquery/jquery.tokeninput.js +613 -490
  69. data/templates/jquery/jquery.tokeninput.min.js +17 -14
  70. data/templates/jquery/jquery/ui/_theme.scss +39 -63
  71. data/templates/jquery/json.js +31 -15
  72. data/templates/jstree/jquery.jstree.js +415 -410
  73. data/templates/jstree/jquery.jstree.min.js +134 -133
  74. data/templates/markitup/jquery.markitup.js +567 -560
  75. data/templates/markitup/jquery.markitup.min.js +1 -1
  76. data/templates/markitup/jquery/markitup/sets/default.scss +7 -3
  77. data/templates/markitup/jquery/markitup/sets/default/list-bullet.png +0 -0
  78. data/templates/markitup/jquery/markitup/sets/default/list-numeric.png +0 -0
  79. data/templates/markitup/jquery/markitup/skins/markitup.scss +3 -10
  80. data/templates/markitup/jquery/markitup/skins/markitup/bg-container.png +0 -0
  81. data/templates/markitup/jquery/markitup/skins/markitup/menu.png +0 -0
  82. data/templates/markitup/jquery/markitup/skins/simple.scss +2 -3
  83. data/templates/markitup/jquery/markitup/skins/simple/menu.png +0 -0
  84. data/templates/markitup/manifest.rb +2 -0
  85. data/templates/markitup/markitup/jquery.markitup.set.default.js +21 -21
  86. data/templates/markitup/markitup/jquery.markitup.set.default.min.js +3 -2
  87. data/templates/mobile/jquery.mobile.js +5230 -2846
  88. data/templates/mobile/jquery.mobile.min.js +192 -46
  89. data/templates/mobile/jquery/mobile/_base.scss +141 -18
  90. data/templates/mobile/jquery/mobile/default.scss +263 -66
  91. data/templates/mobile/jquery/mobile/default/icons-18-black.png +0 -0
  92. data/templates/mobile/jquery/mobile/default/icons-18-white.png +0 -0
  93. data/templates/mobile/jquery/mobile/default/icons-36-black.png +0 -0
  94. data/templates/mobile/jquery/mobile/default/icons-36-white.png +0 -0
  95. data/templates/mobile/jquery/mobile/valencia.scss +242 -53
  96. data/templates/mobile/jquery/mobile/valencia/icons-18-black.png +0 -0
  97. data/templates/mobile/jquery/mobile/valencia/icons-18-white.png +0 -0
  98. data/templates/mobile/jquery/mobile/valencia/icons-36-black.png +0 -0
  99. data/templates/mobile/jquery/mobile/valencia/icons-36-white.png +0 -0
  100. data/templates/tiny_mce/manifest.rb +2 -0
  101. data/templates/tiny_mce/tiny_mce/langs/de.js +1 -1
  102. data/templates/tiny_mce/tiny_mce/plugins/advhr/rule.htm +1 -1
  103. data/templates/tiny_mce/tiny_mce/plugins/advimage/editor_plugin.js +1 -1
  104. data/templates/tiny_mce/tiny_mce/plugins/advimage/editor_plugin_src.js +1 -1
  105. data/templates/tiny_mce/tiny_mce/plugins/advimage/image.htm +1 -1
  106. data/templates/tiny_mce/tiny_mce/plugins/advimage/js/image.js +1 -1
  107. data/templates/tiny_mce/tiny_mce/plugins/advlink/link.htm +1 -1
  108. data/templates/tiny_mce/tiny_mce/plugins/advlist/editor_plugin.js +1 -1
  109. data/templates/tiny_mce/tiny_mce/plugins/advlist/editor_plugin_src.js +1 -1
  110. data/templates/tiny_mce/tiny_mce/plugins/autolink/editor_plugin.js +1 -1
  111. data/templates/tiny_mce/tiny_mce/plugins/autolink/editor_plugin_src.js +1 -1
  112. data/templates/tiny_mce/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
  113. data/templates/tiny_mce/tiny_mce/plugins/autoresize/editor_plugin_src.js +1 -1
  114. data/templates/tiny_mce/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  115. data/templates/tiny_mce/tiny_mce/plugins/autosave/editor_plugin_src.js +1 -1
  116. data/templates/tiny_mce/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  117. data/templates/tiny_mce/tiny_mce/plugins/contextmenu/editor_plugin_src.js +1 -1
  118. data/templates/tiny_mce/tiny_mce/plugins/emotions/emotions.htm +1 -1
  119. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  120. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  121. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  122. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  123. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  124. data/templates/tiny_mce/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  125. data/templates/tiny_mce/tiny_mce/plugins/example/dialog.htm +1 -1
  126. data/templates/tiny_mce/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
  127. data/templates/tiny_mce/tiny_mce/plugins/example_dependency/editor_plugin_src.js +1 -0
  128. data/templates/tiny_mce/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
  129. data/templates/tiny_mce/tiny_mce/plugins/fullpage/editor_plugin_src.js +1 -1
  130. data/templates/tiny_mce/tiny_mce/plugins/fullpage/fullpage.htm +1 -1
  131. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
  132. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +1 -1
  133. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  134. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  135. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  136. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  137. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  138. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +1 -1
  139. data/templates/tiny_mce/tiny_mce/plugins/inlinepopups/template.htm +1 -1
  140. data/templates/tiny_mce/tiny_mce/plugins/lists/editor_plugin.js +1 -1
  141. data/templates/tiny_mce/tiny_mce/plugins/lists/editor_plugin_src.js +1 -1
  142. data/templates/tiny_mce/tiny_mce/plugins/media/editor_plugin.js +1 -1
  143. data/templates/tiny_mce/tiny_mce/plugins/media/editor_plugin_src.js +1 -1
  144. data/templates/tiny_mce/tiny_mce/plugins/media/js/media.js +1 -1
  145. data/templates/tiny_mce/tiny_mce/plugins/media/langs/en_dlg.js +1 -1
  146. data/templates/tiny_mce/tiny_mce/plugins/media/media.htm +1 -1
  147. data/templates/tiny_mce/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
  148. data/templates/tiny_mce/tiny_mce/plugins/noneditable/editor_plugin_src.js +1 -1
  149. data/templates/tiny_mce/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  150. data/templates/tiny_mce/tiny_mce/plugins/paste/editor_plugin_src.js +1 -1
  151. data/templates/tiny_mce/tiny_mce/plugins/paste/pastetext.htm +1 -1
  152. data/templates/tiny_mce/tiny_mce/plugins/paste/pasteword.htm +1 -1
  153. data/templates/tiny_mce/tiny_mce/plugins/preview/example.html +16 -17
  154. data/templates/tiny_mce/tiny_mce/plugins/preview/preview.html +9 -10
  155. data/templates/tiny_mce/tiny_mce/plugins/searchreplace/searchreplace.htm +1 -1
  156. data/templates/tiny_mce/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
  157. data/templates/tiny_mce/tiny_mce/plugins/spellchecker/editor_plugin_src.js +1 -1
  158. data/templates/tiny_mce/tiny_mce/plugins/style/js/props.js +1 -1
  159. data/templates/tiny_mce/tiny_mce/plugins/style/props.htm +1 -1
  160. data/templates/tiny_mce/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
  161. data/templates/tiny_mce/tiny_mce/plugins/tabfocus/editor_plugin_src.js +1 -1
  162. data/templates/tiny_mce/tiny_mce/plugins/table/cell.htm +1 -1
  163. data/templates/tiny_mce/tiny_mce/plugins/table/editor_plugin.js +1 -1
  164. data/templates/tiny_mce/tiny_mce/plugins/table/editor_plugin_src.js +1 -1
  165. data/templates/tiny_mce/tiny_mce/plugins/table/js/cell.js +1 -1
  166. data/templates/tiny_mce/tiny_mce/plugins/table/js/row.js +1 -1
  167. data/templates/tiny_mce/tiny_mce/plugins/table/langs/de_dlg.js +1 -1
  168. data/templates/tiny_mce/tiny_mce/plugins/table/langs/en_dlg.js +1 -1
  169. data/templates/tiny_mce/tiny_mce/plugins/table/merge_cells.htm +1 -1
  170. data/templates/tiny_mce/tiny_mce/plugins/table/row.htm +1 -1
  171. data/templates/tiny_mce/tiny_mce/plugins/table/table.htm +1 -1
  172. data/templates/tiny_mce/tiny_mce/plugins/template/blank.htm +1 -1
  173. data/templates/tiny_mce/tiny_mce/plugins/template/template.htm +1 -1
  174. data/templates/tiny_mce/tiny_mce/plugins/wordcount/editor_plugin.js +1 -1
  175. data/templates/tiny_mce/tiny_mce/plugins/wordcount/editor_plugin_src.js +1 -1
  176. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/abbr.htm +1 -1
  177. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/acronym.htm +1 -1
  178. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/attributes.htm +1 -1
  179. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/cite.htm +1 -1
  180. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/del.htm +1 -1
  181. data/templates/tiny_mce/tiny_mce/plugins/xhtmlxtras/ins.htm +1 -1
  182. data/templates/tiny_mce/tiny_mce/themes/advanced/about.htm +1 -1
  183. data/templates/tiny_mce/tiny_mce/themes/advanced/anchor.htm +1 -1
  184. data/templates/tiny_mce/tiny_mce/themes/advanced/color_picker.htm +1 -1
  185. data/templates/tiny_mce/tiny_mce/themes/advanced/editor_template.js +1 -1
  186. data/templates/tiny_mce/tiny_mce/themes/advanced/editor_template_src.js +1 -1
  187. data/templates/tiny_mce/tiny_mce/themes/advanced/image.htm +1 -1
  188. data/templates/tiny_mce/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  189. data/templates/tiny_mce/tiny_mce/themes/advanced/img/flash.gif +0 -0
  190. data/templates/tiny_mce/tiny_mce/themes/advanced/img/icons.gif +0 -0
  191. data/templates/tiny_mce/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  192. data/templates/tiny_mce/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  193. data/templates/tiny_mce/tiny_mce/themes/advanced/js/image.js +1 -1
  194. data/templates/tiny_mce/tiny_mce/themes/advanced/langs/de.js +1 -1
  195. data/templates/tiny_mce/tiny_mce/themes/advanced/link.htm +1 -1
  196. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/content.css +1 -1
  197. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/dialog.css +1 -1
  198. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  199. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  200. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  201. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/default/ui.css +1 -1
  202. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +1 -1
  203. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/highcontrast/ui.css +1 -1
  204. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/content.css +1 -1
  205. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/dialog.css +1 -1
  206. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  207. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  208. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  209. data/templates/tiny_mce/tiny_mce/themes/advanced/skins/o2k7/ui.css +1 -1
  210. data/templates/tiny_mce/tiny_mce/themes/advanced/source_editor.htm +1 -1
  211. data/templates/tiny_mce/tiny_mce/themes/simple/img/icons.gif +0 -0
  212. data/templates/tiny_mce/tiny_mce/themes/simple/skins/default/ui.css +1 -1
  213. data/templates/tiny_mce/tiny_mce/themes/simple/skins/o2k7/ui.css +1 -1
  214. data/templates/tiny_mce/tiny_mce/tiny_mce.js +1 -1
  215. data/templates/tools/flowplayer.min.js +1 -1
  216. data/templates/tools/jquery.tools.js +17 -17
  217. data/templates/tools/jquery.tools.min.js +22 -22
  218. metadata +17 -9
  219. data/templates/emulators/emulators/palm.pre.2.landscape.png +0 -0
  220. data/templates/emulators/emulators/palm.pre.2.portrait.png +0 -0
@@ -1,4 +1,4 @@
1
- (function(a){a.jQTouch=function(w){var E,t=a("head"),M="",J=[],I=0,m={},j="",v="portrait",U=true,T=0,e=0,i=[],z={},k=351,O=a.jQTouch.prototype.extensions,S=[],s="",F={addGlossToIcon:true,backSelector:".back, .cancel, .goback",cacheGetRequests:true,debug:false,fallback2dAnimation:"fade",fixedViewport:true,formSelector:"form",fullScreen:true,fullScreenClass:"fullscreen",hoverDelay:50,icon:null,icon4:null,moveThreshold:10,preloadImages:false,pressDelay:1000,startupScreen:null,statusBar:"default",submitSelector:".submit",touchSelector:"a, .touch",useAnimations:true,useFastTouch:true,animations:[{selector:".cube",name:"cubeleft",is3d:true},{selector:".cubeleft",name:"cubeleft",is3d:true},{selector:".cuberight",name:"cuberight",is3d:true},{selector:".dissolve",name:"dissolve",is3d:false},{selector:".fade",name:"fade",is3d:false},{selector:".flip",name:"flipleft",is3d:true},{selector:".flipleft",name:"flipleft",is3d:true},{selector:".flipright",name:"flipright",is3d:true},{selector:".pop",name:"pop",is3d:true},{selector:".slide",name:"slideleft",is3d:false},{selector:".slidedown",name:"slidedown",is3d:false},{selector:".slideleft",name:"slideleft",is3d:false},{selector:".slideright",name:"slideright",is3d:false},{selector:".slideup",name:"slideup",is3d:false},{selector:".swap",name:"swapleft",is3d:true},{selector:"#jqt > * > ul li a",name:"slideleft",is3d:false}]};function A(V){now=(new Date).getTime();delta=now-T;T=now;if(m.debug){if(V){f(delta+": "+V)}else{f(delta+": Called "+arguments.callee.caller.name)}}}function f(V){if(window.console!==undefined){console.log(V)}}function b(V){if(typeof(V.selector)==="string"&&typeof(V.name)==="string"){S.push(V)}}function l(W,V){A();J.unshift({page:W,animation:V,hash:"#"+W.prop("id"),id:W.prop("id")})}function o(W){A();if(!U){A("ClickHandler handler aborted because tap is not ready");W.preventDefault();return false}var V=a(W.target);if(!V.is(i.join(", "))){var V=a(W.target).closest(i.join(", "))}if(V&&V.prop("href")&&!V.isExternalLink()){A("Need to prevent default click behavior");W.preventDefault()}else{A("No need to prevent default click behavior")}if(a.support.touch){A("Not converting click to a tap event because touch handler is on the job")}else{A("Converting click event to a tap event because touch handlers are not present or off");a(W.target).trigger("tap",W)}}function c(aa,X,Z,W){A();if(X.length===0){a.fn.unselect();A("Target element is missing.");return false}if(X.hasClass("current")){a.fn.unselect();A("You are already on the page you are trying to navigate to.");return false}a(":focus").blur();aa.trigger("pageAnimationStart",{direction:"out"});X.trigger("pageAnimationStart",{direction:"in"});if(a.support.animationEvents&&Z&&m.useAnimations){U=false;if(!a.support.transform3d&&Z.is3d){Z.name=m.fallback2dAnimation}var V;if(W){if(Z.name.indexOf("left")>0){V=Z.name.replace(/left/,"right")}else{if(Z.name.indexOf("right")>0){V=Z.name.replace(/right/,"left")}else{if(Z.name.indexOf("up")>0){V=Z.name.replace(/up/,"down")}else{if(Z.name.indexOf("down")>0){V=Z.name.replace(/down/,"up")}else{V=Z.name}}}}}else{V=Z.name}aa.bind("webkitAnimationEnd",Y);aa.bind("webkitTransitionEnd",Y);scrollTo(0,0);X.addClass(V+" in current");aa.addClass(V+" out")}else{X.addClass("current");Y()}function Y(ab){A();if(a.support.animationEvents&&Z&&m.useAnimations){aa.unbind("webkitAnimationEnd",Y);aa.unbind("webkitTransitionEnd",Y);aa.removeClass(V+" out current");X.removeClass(V+" in")}else{aa.removeClass(V+" out current")}j=X;if(W){J.shift()}else{l(j,Z)}aa.unselect();e=(new Date()).getTime();n(j.prop("id"));U=true;X.trigger("pageAnimationEnd",{direction:"in",animation:Z});aa.trigger("pageAnimationEnd",{direction:"out",animation:Z})}return true}function R(){A();return v}function h(){A();if(J.length<1){A("History is empty.")}if(J.length===1){A("You are on the first panel.")}var W=J[0],V=J[1];if(c(W.page,V.page,W.animation,true)){return z}else{A("Could not go back.");return false}}function N(Z,aa,X){A();if(X){f("The reverse parameter of the goTo() function has been deprecated.")}var ab=J[0].page;if(typeof aa==="string"){for(var Y=0,V=S.length;Y<V;Y++){if(S[Y].name===aa){aa=S[Y];break}}}if(typeof(Z)==="string"){var W=a(Z);if(W.length<1){d(Z,{animation:aa});return}else{Z=W}}if(c(ab,Z,aa)){return z}else{A("Could not animate pages.");return false}}function Q(V){A();if(location.hash===J[0].hash){A("We are on the right panel")}else{A("We are not on the right panel");if(location.hash===J[1].hash){h()}else{A(location.hash+" !== "+J[1].hash)}}}function P(V){A();m=a.extend({},F,V);if(m.preloadImages){for(var W=m.preloadImages.length-1;W>=0;W--){(new Image()).src=m.preloadImages[W]}}if(m.icon||m.icon4){var X,Y;if(m.icon4&&window.devicePixelRatio&&window.devicePixelRatio===2){Y=m.icon4}else{if(m.icon){Y=m.icon}else{Y=false}}if(Y){X=(m.addGlossToIcon)?"":"-precomposed";s+='<link rel="apple-touch-icon'+X+'" href="'+Y+'" />'}}if(m.startupScreen){s+='<link rel="apple-touch-startup-image" href="'+m.startupScreen+'" />'}if(m.fixedViewport){s+='<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"/>'}if(m.fullScreen){s+='<meta name="apple-mobile-web-app-capable" content="yes" />';if(m.statusBar){s+='<meta name="apple-mobile-web-app-status-bar-style" content="'+m.statusBar+'" />'}}if(s){t.prepend(s)}}function C(V,W){A();var X=null;a(V).each(function(Z,aa){var Y=a(this);if(!Y.prop("id")){Y.prop("id","page-"+(++I))}a("#"+Y.prop("id")).remove();E.trigger("pageInserted",{page:Y.appendTo(E)});if(Y.hasClass("current")||!X){X=Y}});if(X!==null){N(X,W);return X}else{return false}}function B(V){var W=(new Date()).getTime()-e;if(W<k){return false}}function g(){A();v=Math.abs(window.orientation)==90?"landscape":"portrait";E.removeClass("portrait landscape").addClass(v).trigger("turn",{orientation:v})}function n(V){A();V=V.replace(/^#/,""),location.hash="#"+V}function d(V,W){A();var Y={data:null,method:"GET",animation:null,callback:null,$referrer:null};var X=a.extend({},Y,W);if(V!="#"){a.ajax({url:V,data:X.data,type:X.method,success:function(Z,ab){var aa=C(Z,X.animation);if(aa){if(X.method=="GET"&&m.cacheGetRequests===true&&X.$referrer){X.$referrer.prop("href","#"+aa.prop("id"))}if(X.callback){X.callback(true)}}},error:function(Z){if(X.$referrer){X.$referrer.unselect()}if(X.callback){X.callback(false)}}})}else{if(X.$referrer){X.$referrer.unselect()}}}function q(W,X){A();a(":focus").blur();W.preventDefault();var V=(typeof(W)==="string")?a(W).eq(0):(W.target?a(W.target):a(W));A(V.prop("action"));if(V.length&&V.is(m.formSelector)&&V.prop("action")){d(V.prop("action"),{data:V.serialize(),method:V.prop("method")||"POST",animation:S[0]||null,callback:X});return false}return false}function L(X){A();var W=X.closest("form");if(W.length===0){A("No parent form found")}else{A("About to submit parent form");var V=a.Event("submit");V.preventDefault();W.trigger(V);return false}return true}function p(){A();return(typeof WebKitAnimationEvent!="undefined")}function G(){A();return(typeof WebKitCSSMatrix!="undefined")}function K(){A();if(typeof TouchEvent!="undefined"){if(window.navigator.userAgent.indexOf("Mobile")>-1){return true}else{return false}}else{return false}}function D(){A();var X,W,Y,Z,V;X=document.getElementsByTagName("head")[0];W=document.body;Y=document.createElement("style");Y.textContent="@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){#jqtTestFor3dSupport{height:3px}}";Z=document.createElement("div");Z.id="jqtTestFor3dSupport";X.appendChild(Y);W.appendChild(Z);V=Z.offsetHeight===3;Y.parentNode.removeChild(Y);Z.parentNode.removeChild(Z);return V}function H(ab){A();if(!U){A("Tap is not ready");return false}var X=a(ab.target);if(!X.is(i.join(", "))){var X=a(ab.target).closest(i.join(", "))}if(!X.length||!X.prop("href")){A("Could not find a link related to tapped element");return false}var aa=X.prop("target"),Z=X.prop("hash"),Y=null;if(X.isExternalLink()){X.unselect();return true}else{if(X.is(m.backSelector)){h(Z)}else{if(X.is(m.submitSelector)){L(X)}else{if(aa==="_webapp"){window.location=X.prop("href");return false}else{if(X.prop("href")==="#"){X.unselect();return true}else{for(var W=0,V=S.length;W<V;W++){if(X.is(S[W].selector)){Y=S[W];break}}if(!Y){f("Animation could not be found. Using slideleft.");Y="slideleft"}if(Z&&Z!=="#"){X.addClass("active");N(a(Z).data("referrer",X),Y,X.hasClass("reverse"));return false}else{X.addClass("loading active");d(X.prop("href"),{animation:Y,callback:function(){X.removeClass("loading");setTimeout(a.fn.unselect,250,X)},$referrer:X});return false}}}}}}}function u(af){A();if(!U){A("TouchStart handler aborted because tap is not ready");af.preventDefault();return false}var aj=a(af.target);if(!aj.length){A("Could not find target of touchstart event.");return}var X=(new Date).getTime(),V=null,Y=null,ab,ad,ac,aa=0,Z=0,ae=0;if(event.changedTouches&&event.changedTouches.length){ab=event.changedTouches[0];ad=ab.pageX;ac=ab.pageY}aj.bind("touchmove",ag).bind("touchend",W).bind("touchcancel",ah);V=setTimeout(function(){aj.makeActive()},m.hoverDelay);Y=setTimeout(function(){aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah);aj.unselect();clearTimeout(V);aj.trigger("press")},m.pressDelay);function ah(ak){A();clearTimeout(V);aj.unselect();aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah)}function W(ak){A();aj.unbind("touchend",W).unbind("touchcancel",ah);clearTimeout(V);clearTimeout(Y);if(Math.abs(aa)<m.moveThreshold&&Math.abs(Z)<m.moveThreshold&&ae<m.pressDelay){aj.trigger("tap",ak)}else{aj.unselect()}}function ag(an){ai();var am=Math.abs(aa);var ak=Math.abs(Z);var al;if(am>ak&&(am>35)&&ae<1000){if(aa<0){al="left"}else{al="right"}aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah);aj.trigger("swipe",{direction:al,deltaX:aa,deltaY:Z})}aj.unselect();clearTimeout(V);if(am>m.moveThreshold||ak>m.moveThreshold){clearTimeout(Y)}}function ai(){var ak=event.changedTouches[0]||null;aa=ak.pageX-ad;Z=ak.pageY-ac;ae=(new Date).getTime()-X}}function r(V){A();if(V!==undefined){if(V===true){if(K()){a.support.touch=true}else{f("This device does not support touch events")}}else{a.support.touch=false}}return a.support.touch}P(w);a(document).ready(function(){a.support.animationEvents=p();a.support.cssMatrix=G();a.support.touch=K()&&m.useFastTouch;a.support.transform3d=D();if(!a.support.touch){f("This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable.")}if(!a.support.transform3d){f("This device does not support 3d animation. 2d animations will be used instead.")}a.fn.isExternalLink=function(){var Z=a(this);return(Z.prop("target")=="_blank"||Z.prop("rel")=="external"||Z.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]'))};a.fn.makeActive=function(){return a(this).addClass("active")};a.fn.press=function(Z){if(a.isFunction(Z)){return a(this).live("press",Z)}else{return a(this).trigger("press")}};a.fn.swipe=function(Z){if(a.isFunction(Z)){return a(this).live("swipe",Z)}else{return a(this).trigger("swipe")}};a.fn.tap=function(Z){if(a.isFunction(Z)){return a(this).live("tap",Z)}else{return a(this).trigger("tap")}};a.fn.unselect=function(Z){if(Z){Z.removeClass("active")}else{a(".active").removeClass("active")}};for(var W=0,V=O.length;W<V;W++){var X=O[W];if(a.isFunction(X)){a.extend(z,X(z))}}if(m.cubeSelector){f("NOTE: cubeSelector has been deprecated. Please use cubeleftSelector instead.");m.cubeleftSelector=m.cubeSelector}if(m.flipSelector){f("NOTE: flipSelector has been deprecated. Please use flipleftSelector instead.");m.flipleftSelector=m.flipSelector}if(m.slideSelector){f("NOTE: slideSelector has been deprecated. Please use slideleftSelector instead.");m.slideleftSelector=m.slideSelector}for(var W=0,V=F.animations.length;W<V;W++){var Y=F.animations[W];if(m[Y.name+"Selector"]!==undefined){Y.selector=m[Y.name+"Selector"]}b(Y)}i.push("input");i.push(m.touchSelector);i.push(m.backSelector);i.push(m.submitSelector);a(i.join(", ")).css("-webkit-touch-callout","none");E=a("#jqt");if(E.length===0){f('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.');E=a("body").prop("id","jqt")}if(a.support.transform3d){E.addClass("supports3d")}if(m.fullScreenClass&&window.navigator.standalone==true){E.addClass(m.fullScreenClass+" "+m.statusBar)}if(window.navigator.userAgent.match(/Android/ig)){E.addClass("android")}a(window).bind("hashchange",Q);E.bind("touchstart",u).bind("click",o).bind("mousedown",B).bind("orientationchange",g).bind("submit",q).bind("tap",H).trigger("orientationchange");if(a("#jqt > .current").length==0){j=a("#jqt > *:first")}else{j=a("#jqt > .current:first");a("#jqt > .current").removeClass("current")}a(j).addClass("current");M=a(j).prop("id");n(M);l(j);scrollTo(0,0);a("#jqt > *").css("minHeight",window.innerHeight)});z={addAnimation:b,animations:S,getOrientation:R,goBack:h,goTo:N,hist:J,settings:m,submitForm:q,support:a.support,useFastTouch:r};return z};a.jQTouch.prototype.extensions=[];a.jQTouch.addExtension=function(b){a.jQTouch.prototype.extensions.push(b)}})(jQuery);(function(a){a.fn.transition=function(c,b){return this.each(function(){var e=a(this);var h={speed:"300ms",callback:null,ease:"ease-in-out"};var g=a.extend({},h,b);if(g.speed===0){e.css(c);window.setTimeout(g.callback,0)}else{if(a.browser.safari){var f=[];for(var d in c){f.push(d)}e.css({webkitTransitionProperty:f.join(", "),webkitTransitionDuration:g.speed,webkitTransitionTimingFunction:g.ease});if(g.callback){e.one("webkitTransitionEnd",g.callback)}setTimeout(function(i){i.css(c)},0,e)}else{e.animate(c,g.speed,g.callback)}}})}})(jQuery);var SpinningWheel={cellHeight:44,friction:0.003,slotData:[],handleEvent:function(a){if(a.type=="touchstart"){this.lockScreen(a);if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapDown(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollStart(a)}}}else{if(a.type=="touchmove"){this.lockScreen(a);if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapCancel(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollMove(a)}}}else{if(a.type=="touchend"){if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapUp(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollEnd(a)}}}else{if(a.type=="webkitTransitionEnd"){if(a.target.id=="sw-wrapper"){}else{this.backWithinBoundaries(a)}}else{if(a.type=="orientationchange"){this.onOrientationChange(a)}else{if(a.type=="scroll"){this.onScroll(a)}}}}}}},onOrientationChange:function(a){window.scrollTo(0,0);this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px";this.calculateSlotsWidth()},onScroll:function(a){this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px"},lockScreen:function(a){a.preventDefault();a.stopPropagation()},reset:function(){this.slotEl=[];this.activeSlot=null;this.swWrapper=undefined;this.swSlotWrapper=undefined;this.swSlots=undefined;this.swFrame=undefined},calculateSlotsWidth:function(){var b=this.swSlots.getElementsByTagName("div");for(var a=0;a<b.length;a+=1){this.slotEl[a].slotWidth=b[a].offsetWidth}},create:function(){var d,a,b,c,e;this.reset();e=document.createElement("div");e.id="sw-wrapper";e.style.top=window.innerHeight+window.pageYOffset+"px";e.style.webkitTransitionProperty="-webkit-transform";e.innerHTML='<div id="sw-slots-wrapper"><div id="sw-slots"></div></div><div id="sw-frame"></div>';document.body.appendChild(e);this.swWrapper=e;this.swSlotWrapper=document.getElementById("sw-slots-wrapper");this.swSlots=document.getElementById("sw-slots");this.swFrame=document.getElementById("sw-frame");for(a=0;a<this.slotData.length;a+=1){c=document.createElement("ul");b="";for(d in this.slotData[a].values){b+="<li>"+this.slotData[a].values[d]+"</li>"}c.innerHTML=b;e=document.createElement("div");e.className=this.slotData[a].style;e.appendChild(c);this.swSlots.appendChild(e);c.slotPosition=a;c.slotYPosition=0;c.slotWidth=0;c.slotMaxScroll=this.swSlotWrapper.clientHeight-c.clientHeight-86;c.style.webkitTransitionTimingFunction="cubic-bezier(0, 0, 0.2, 1)";this.slotEl.push(c);if(this.slotData[a].defaultValue){this.scrollToValue(a,this.slotData[a].defaultValue)}}this.calculateSlotsWidth();document.addEventListener("touchmove",this,false);window.addEventListener("orientationchange",this,true);window.addEventListener("scroll",this,true);document.getElementById("sw-done").addEventListener("touchstart",this,false);this.swFrame.addEventListener("touchstart",this,false)},open:function(){this.create();this.swWrapper.style.webkitTransitionTimingFunction="ease-out";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, -210px, 0)"},destroy:function(){this.swWrapper.removeEventListener("webkitTransitionEnd",this,false);this.swFrame.removeEventListener("touchstart",this,false);document.getElementById("sw-done").removeEventListener("touchstart",this,false);document.removeEventListener("touchmove",this,false);window.removeEventListener("orientationchange",this,true);window.removeEventListener("scroll",this,true);this.slotData=[];this.cancelAction=function(){return false};this.cancelDone=function(){return true};this.reset();document.body.removeChild(document.getElementById("sw-wrapper"))},close:function(){this.swWrapper.style.webkitTransitionTimingFunction="ease-in";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, 0, 0)";this.swWrapper.addEventListener("webkitTransitionEnd",this,false)},addSlot:function(b,d,a){if(!d){d=""}d=d.split(" ");for(var c=0;c<d.length;c+=1){d[c]="sw-"+d[c]}d=d.join(" ");var e={values:b,style:d,defaultValue:a};this.slotData.push(e)},getSelectedValues:function(){var c,f,d,a,e=[],b=[];for(d in this.slotEl){this.slotEl[d].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[d].style.webkitTransitionDuration="0";if(this.slotEl[d].slotYPosition>0){this.setPosition(d,0)}else{if(this.slotEl[d].slotYPosition<this.slotEl[d].slotMaxScroll){this.setPosition(d,this.slotEl[d].slotMaxScroll)}}c=-Math.round(this.slotEl[d].slotYPosition/this.cellHeight);f=0;for(a in this.slotData[d].values){if(f==c){e.push(a);b.push(this.slotData[d].values[a]);break}f+=1}}return{keys:e,values:b}},setPosition:function(b,a){this.slotEl[b].slotYPosition=a;this.slotEl[b].style.webkitTransform="translate3d(0, "+a+"px, 0)"},scrollStart:function(c){var d=c.targetTouches[0].clientX-this.swSlots.offsetLeft;var f=0;for(var a=0;a<this.slotEl.length;a+=1){f+=this.slotEl[a].slotWidth;if(d<f){this.activeSlot=a;break}}if(this.slotData[this.activeSlot].style.match("readonly")){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);return false}this.slotEl[this.activeSlot].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[this.activeSlot].style.webkitTransitionDuration="0";var b=window.getComputedStyle(this.slotEl[this.activeSlot]).webkitTransform;b=new WebKitCSSMatrix(b).m42;if(b!=this.slotEl[this.activeSlot].slotYPosition){this.setPosition(this.activeSlot,b)}this.startY=c.targetTouches[0].clientY;this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=c.timeStamp;this.swFrame.addEventListener("touchmove",this,false);this.swFrame.addEventListener("touchend",this,false);return true},scrollMove:function(b){var a=b.targetTouches[0].clientY-this.startY;if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){a/=2}this.setPosition(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition+a);this.startY=b.targetTouches[0].clientY;if(b.timeStamp-this.scrollStartTime>80){this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=b.timeStamp}},scrollEnd:function(f){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){this.scrollTo(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition>0?0:this.slotEl[this.activeSlot].slotMaxScroll);return false}var b=this.slotEl[this.activeSlot].slotYPosition-this.scrollStartY;if(b<this.cellHeight/1.5&&b>-this.cellHeight/1.5){if(this.slotEl[this.activeSlot].slotYPosition%this.cellHeight){this.scrollTo(this.activeSlot,Math.round(this.slotEl[this.activeSlot].slotYPosition/this.cellHeight)*this.cellHeight,"100ms")}return false}var g=f.timeStamp-this.scrollStartTime;var a=(2*b/g)/this.friction;var d=(this.friction/2)*(a*a);if(a<0){a=-a;d=-d}var c=this.slotEl[this.activeSlot].slotYPosition+d;if(c>0){c/=2;a/=3;if(c>this.swSlotWrapper.clientHeight/4){c=this.swSlotWrapper.clientHeight/4}}else{if(c<this.slotEl[this.activeSlot].slotMaxScroll){c=(c-this.slotEl[this.activeSlot].slotMaxScroll)/2+this.slotEl[this.activeSlot].slotMaxScroll;a/=3;if(c<this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4){c=this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4}}else{c=Math.round(c/this.cellHeight)*this.cellHeight}}this.scrollTo(this.activeSlot,Math.round(c),Math.round(a)+"ms");return true},scrollTo:function(c,a,b){this.slotEl[c].style.webkitTransitionDuration=b?b:"100ms";this.setPosition(c,a?a:0);if(this.slotEl[c].slotYPosition>0||this.slotEl[c].slotYPosition<this.slotEl[c].slotMaxScroll){this.slotEl[c].addEventListener("webkitTransitionEnd",this,false)}},scrollToValue:function(e,d){var c,b,a;this.slotEl[e].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[e].style.webkitTransitionDuration="0";b=0;for(a in this.slotData[e].values){if(a==d){c=b*this.cellHeight;this.setPosition(e,c);break}b-=1}},backWithinBoundaries:function(a){a.target.removeEventListener("webkitTransitionEnd",this,false);this.scrollTo(a.target.slotPosition,a.target.slotYPosition>0?0:a.target.slotMaxScroll,"150ms");return false},tapDown:function(a){a.currentTarget.addEventListener("touchmove",this,false);a.currentTarget.addEventListener("touchend",this,false);a.currentTarget.className="sw-pressed"},tapCancel:function(a){a.currentTarget.removeEventListener("touchmove",this,false);a.currentTarget.removeEventListener("touchend",this,false);a.currentTarget.className=""},tapUp:function(a){this.tapCancel(a);if(a.currentTarget.id=="sw-cancel"){this.cancelAction()}else{this.doneAction()}},setCancelAction:function(a){this.cancelAction=a},setDoneAction:function(a){this.doneAction=a},cancelAction:function(){return false},cancelDone:function(){return true}};(function(){var o=this;var j=Array();var p=Array();function f(u,v){for(var t in v){u[t]=v[t]}}function h(v,t,u){v.style.width=t.toString()+"px";v.style.height=u.toString()+"px"}function s(u,t,v){u.style.left=Math.round(t).toString()+"px";u.style.top=Math.round(v).toString()+"px"}TrayController=function(){return this};TrayController.prototype.init=function(t){this.currentX=0;this.elem=t};TrayController.prototype.touchstart=function(t){this.startX=t.touches[0].pageX-this.currentX;this.touchMoved=false;window.addEventListener("touchmove",this,true);window.addEventListener("touchend",this,true);this.elem.style.webkitTransitionDuration="0s"};TrayController.prototype.touchmove=function(t){this.touchMoved=true;this.lastX=this.currentX;this.lastMoveTime=new Date();this.currentX=event.touches[0].pageX-this.startX;this.delegate.update(this.currentX)};TrayController.prototype.touchend=function(u){window.removeEventListener("touchmove",this,true);window.removeEventListener("touchend",this,true);this.elem.style.webkitTransitionDuration="0.4s";if(this.touchMoved){var v=this.currentX-this.lastX;var t=(new Date())-this.lastMoveTime+1;this.currentX=this.currentX+v*200/t;this.delegate.updateTouchEnd(this)}else{this.delegate.clicked(this.currentX)}};TrayController.prototype.handleEvent=function(t){this[t.type](t);t.preventDefault()};const e=150;const n=e/2;const d=70;const a=n/2;const g=e;const b=e/3;const k="rotateY("+(-d)+"deg)";const c="rotateY("+d+"deg)";const i="translateZ("+g+"px)";FlowDelegate=function(){this.cells=new Array();this.transforms=new Array()};FlowDelegate.prototype.init=function(t){this.elem=t};FlowDelegate.prototype.updateTouchEnd=function(t){this.lastFocus=undefined;var u=this.getFocusedCell(t.currentX);t.currentX=-u*n;this.update(t.currentX)};FlowDelegate.prototype.clicked=function(u){var v=-Math.round(u/n);var t=this.cells[v];galleryCell=v};FlowDelegate.prototype.getFocusedCell=function(t){var u=-Math.round(t/n);return Math.min(Math.max(u,0),this.cells.length-1)};FlowDelegate.prototype.transformForCell=function(u,w,z){var t=(w*n);var v=t+z;if((v<a)&&(v>=-a)){return i+" translateX("+t+"px)"}else{if(v>0){return"translateX("+(t+b)+"px) "+k}else{return"translateX("+(t-b)+"px) "+c}}};FlowDelegate.prototype.setTransformForCell=function(t,v,u){if(this.transforms[v]!=u){t.style.webkitTransform=u;this.transforms[v]=u}};FlowDelegate.prototype.update=function(u){this.elem.style.webkitTransform="translateX("+(u)+"px)";for(var v in this.cells){var t=this.cells[v];this.setTransformForCell(t,v,this.transformForCell(t,v,u));v+=1}};var l=new TrayController();var q=new FlowDelegate();o.zflow=function(v,u){var z=document.querySelector(u);l.init(z);q.init(z);l.delegate=q;var t={top:Math.round(-e*0.65)+"px",left:Math.round(-e/2)+"px",width:e+"px",height:Math.round(e*1.5)+"px",opacity:0,};var w=0;function A(){var B=document.createElement("div");var F=document.createElement("img");var D=document.createElement("canvas");var E=document.createElement("a");var C=document.createElement("caption");B.className="cell";B.appendChild(E);E.appendChild(F);B.appendChild(D);B.appendChild(C);F.src=v[w];j[w]=v[w];E.href="show_image?fName="+v[w];E.className="slide-right";o.afnc=function(){var G=F.width;var J=F.height;var H=Math.min(e/J,e/G);G*=H;J*=H;h(F,G,J);f(B.style,t);s(F,(e-G)/2,e-J);s(D,(e-G)/2,e);s(C,(e-G)/2,e+10);m(F,G,J,D);var I=v[w].match(/(.*)[\/\\]([^\/\\]+)\.\w+$/)[2];I=I.replace(/_/g," ");I=I.replace(/(^|\s)([a-z])/g,function(K,M,L){return M+L.toUpperCase()});p[w]=I;r(C,G,w);q.setTransformForCell(B,q.cells.length,q.transformForCell(B,q.cells.length,l.currentX));q.cells.push(B);z.appendChild(B);B.style.opacity=1;if(w<(v.length-1)){w++;A()}else{window.setTimeout(function(){window.scrollTo(0,0)},100);galleryInit=1}};F.addEventListener("load",afnc,true)}A();z.addEventListener("touchstart",l,false)};o.zflowCleanup=function(t){var u=document.querySelector(t);if(u){if(u.childNodes.length>0){q.transforms.length=0;q.cells.length=0;while(u.hasChildNodes()){var v=u.childNodes[0].childNodes[0].childNodes[0];v.removeEventListener("load",afnc,true);u.removeChild(u.childNodes[0])}var w=document.getElementById("gallery");if(w){w.parentNode.removeChild(w);galleryInit=0;galleryCell=0}}}};o.zflowGetImageSource=function(t,u){var v=document.querySelector(t);var w="";if(v){if(v.childNodes.length>0){while(v.hasChildNodes()){w=v.childNodes[0].childNodes[0].childNodes[u].src}}}return w};function r(u,t,v){u.width=t;u.innerHTML=p[v]}function m(z,u,A,v){v.width=u;v.height=A/2;var t=v.getContext("2d");t.save();t.translate(0,A-1);t.scale(1,-1);t.drawImage(z,0,0,u,A);t.restore();t.globalCompositeOperation="destination-out";var w=t.createLinearGradient(0,0,0,A/2);w.addColorStop(1,"rgba(255, 255, 255, 1.0)");w.addColorStop(0,"rgba(255, 255, 255, 0.5)");t.fillStyle=w;t.fillRect(0,0,u,A/2)}})();var now=new Date();var url_month="month";var url_event="events.htm";function getCalendar(e,c,b){url_month=e;url_event=c;var f=b.getDate();var a=b.getMonth()+1;var g=b.getFullYear();$.get(url_month,{month:a,year:g},function(d){$("#ical").empty();$(d).appendTo("#ical");setBindings();setToday();setSelectedAndLoadEvents(b)})}function getEvents(b){var c=b.getDate();var a=b.getMonth()+1;var e=b.getFullYear();$.get(url_event,{day:c,month:a,year:e},function(d){$("#ical .events").empty();$(d).appendTo("#ical .events")})}function getNoEvents(){var a="<li class='no-event'>No Events</li>";$("#ical .events").empty();$(a).appendTo("#ical .events")}function setBindings(){$("#ical td").bind("click",function(){var b=$(this).prop("class");var a=getClickedDate($(this));RemoveSelectedCell();setToday();if(b.indexOf("date_has_event")!=-1||b.indexOf("today_date_has_event")!=-1){$(this).prop("class","selected_date_has_event");getEvents(a)}if(b==""||b.indexOf("today")!=-1){$(this).prop("class","selected");getNoEvents()}if(b.indexOf("prevmonth")!=-1||b.indexOf("nextmonth")!=-1){getCalendar(url,a)}});$("#ical .bottom-bar .bottom-bar-today").bind("click",function(){getCalendar(url_month,url_event,now)});$("#ical .goto-prevmonth").bind("click",function(){loadPrevNextMonth(-1)});$("#ical .goto-nextmonth").bind("click",function(){loadPrevNextMonth(1)})}function RemoveSelectedCell(){$("#ical .selected_date_has_event").removeClass("selected_date_has_event");$("#ical .selected").removeClass("selected")}function getClickedDate(b){var c=$(b).find("input").val();var a=getDateFromHiddenField(c);return a}function loadPrevNextMonth(c){var b=$("#ical .selected").text();if(b==""){b=$("#ical .selected_date_has_event").text()}var a=parseInt($("#ical > #month").val());var e=$("#ical > #year").val();var d=new Date(e,a-1,b);if(c==1){d.nextMonth()}else{d.prevMonth()}getCalendar(url_month,url_event,d)}function setToday(){$("#ical :hidden").each(function(c){var a=getDateFromHiddenField($(this).val());if(!isNaN(a)){var h=now;var j=now.getDate();var i=a.getDate();var g=now.getMonth();var f=a.getMonth();var e=now.getFullYear();var d=a.getFullYear();if(now.getDate()==a.getDate()&&now.getMonth()==a.getMonth()&&now.getFullYear()==a.getFullYear()){var b=$(this).closest("td");if($(b).attr("class")=="date_has_event"){$(b).prop("class","today_date_has_event")}else{$(b).prop("class","today")}}}})}function getDateFromHiddenField(c){var b=c.split("-");return new Date(b[0],b[1]-1,b[2])}function setSelectedAndLoadEvents(a){RemoveSelectedCell();$("#ical td").each(function(c){var d=$(this).prop("class");var b=getClickedDate($(this));if((d!="prevmonth"&&d!="nextmonth")&&a.getDate()==b.getDate()&&a.getMonth()==b.getMonth()&&a.getFullYear()==b.getFullYear()){if(d=="date_has_event"){$(this).prop("class","selected_date_has_event");getEvents(a)}else{$(this).prop("class","selected");getNoEvents()}}});setToday()}function trim(b,a){return ltrim(rtrim(b,a),a)}function ltrim(b,a){a=a||"\\s";return b.replace(new RegExp("^["+a+"]+","g"),"")}function rtrim(b,a){a=a||"\\s";return b.replace(new RegExp("["+a+"]+$","g"),"")}function dateAddExtention(c,a){var b=new String();c=c.toLowerCase();if(isNaN(a)){throw"The second parameter must be a number. \n You passed: "+a;return false}a=new Number(a);switch(c.toLowerCase()){case"yyyy":this.setFullYear(this.getFullYear()+a);break;case"q":this.setMonth(this.getMonth()+(a*3));break;case"m":this.setMonth(this.getMonth()+a);break;case"y":case"d":case"w":this.setDate(this.getDate()+a);break;case"ww":this.setDate(this.getDate()+(a*7));break;case"h":this.setHours(this.getHours()+a);break;case"n":this.setMinutes(this.getMinutes()+a);break;case"s":this.setSeconds(this.getSeconds()+a);break;case"ms":this.setMilliseconds(this.getMilliseconds()+a);break;default:throw"The first parameter must be a string from this list: \nyyyy, q, m, y, d, w, ww, h, n, s, or ms. You passed: "+c;return false}return this}Date.prototype.dateAdd=dateAddExtention;function prevMonth(){var a=this.getMonth();this.setMonth(a-1);if(this.getMonth()!=a-1&&(this.getMonth()!=11||(a==11&&this.getDate()==1))){this.setDate(0)}}function nextMonth(){var a=this.getMonth();this.setMonth(a+1);if(this.getMonth()!=a+1&&this.getMonth()!=0){this.setDate(0)}}Date.prototype.nextMonth=nextMonth;Date.prototype.prevMonth=prevMonth;(function(c){c.fn.drag=function(f,e,d){if(e){this.bind("dragstart",f)}if(d){this.bind("dragend",d)}return !f?this.trigger("mousedown",{which:1}):this.bind("drag",e?e:f)};var b=c.event.special.drag={distance:0,setup:function(d){d=c.extend({distance:b.distance},d||{});c.event.add(this,"mousedown",b.handler,d)},teardown:function(){c.event.remove(this,"mousedown",b.handler);if(this==b.dragging){b.dragging=b.proxy=null}a(this,true)},handler:function(e){var d;if(e.data.elem){e.dragTarget=e.data.elem;e.dragProxy=b.proxy||e.dragTarget;e.cursorOffsetX=e.data.x-e.data.left;e.cursorOffsetY=e.data.y-e.data.top;e.offsetX=e.pageX-e.cursorOffsetX;e.offsetY=e.pageY-e.cursorOffsetY}switch(e.type){case !b.dragging&&e.which==1&&"mousedown":c.extend(e.data,c(this).offset(),{x:e.pageX,y:e.pageY,elem:this,dist2:Math.pow(e.data.distance,2)});c.event.add(document.body,"mousemove mouseup",b.handler,e.data);a(this,false);return false;case !b.dragging&&"mousemove":if(Math.pow(e.pageX-e.data.x,2)+Math.pow(e.pageY-e.data.y,2)<e.data.dist2){break}b.dragging=e.dragTarget;e.type="dragstart";d=c.event.handle.call(b.dragging,e);b.proxy=c(d)[0]||b.dragging;if(d!==false){break}a(b.dragging,true);b.dragging=b.proxy=null;case"mousemove":if(b.dragging){e.type="drag";d=c.event.handle.call(b.dragging,e);if(c.event.special.drop){c.event.special.drop.allowed=(d!==false);c.event.special.drop.handler(e)}if(d!==false){break}e.type="mouseup"}case"mouseup":c.event.remove(document.body,"mousemove mouseup",b.handler);if(b.dragging){if(c.event.special.drop){c.event.special.drop.handler(e)}e.type="dragend";c.event.handle.call(b.dragging,e);a(b.dragging,true);b.dragging=b.proxy=null;e.data={}}break}}};function a(e,d){if(!e){return}e.unselectable=d?"off":"on";e.onselectstart=function(){return d};if(e.style){e.style.MozUserSelect=d?"":"none"}}})(jQuery);(function(b){b.fn.drop=function(e,d,c){if(d){this.bind("dropstart",e)}if(c){this.bind("dropend",c)}return !e?this.trigger("drop"):this.bind("drop",d?d:e)};b.dropManage=function(c){b.extend(a,{filter:"*",data:[],tolerance:null},c||{});return a.$elements.filter(a.filter).each(function(d){a.data[d]=a.locate(this)})};var a=b.event.special.drop={delay:100,mode:"intersect",$elements:b([]),data:[],setup:function(){a.$elements=a.$elements.add(this);a.data[a.data.length]=a.locate(this)},teardown:function(){var c=this;a.$elements=a.$elements.not(this);a.data=b.grep(a.data,function(d){return(d.elem!==c)})},handler:function(d){var c=null,e;d.dropTarget=a.dropping||undefined;if(a.data.length&&d.dragTarget){switch(d.type){case"drag":a.event=d;if(!a.timer){a.timer=setTimeout(a.tolerate,20)}break;case"mouseup":a.timer=clearTimeout(a.timer);if(!a.dropping){break}if(a.allowed){d.type="drop";e=b.event.handle.call(a.dropping,d)}c=false;case a.dropping&&"dropstart":d.type="dropend";c=c===null&&a.allowed?true:false;case a.dropping&&"dropend":b.event.handle.call(a.dropping,d);a.dropping=null;if(e===false){d.dropTarget=undefined}if(!c){break}d.type="dropstart";case a.allowed&&"dropstart":d.dropTarget=this;a.dropping=b.event.handle.call(this,d)!==false?this:null;break}}},tolerate:function(){var d=0,c,e,f=[a.event.pageX,a.event.pageY],g=a.locate(a.event.dragProxy);a.tolerance=a.tolerance||a.modes[a.mode];do{if(c=a.data[d]){if(a.tolerance){e=a.tolerance.call(a,a.event,g,c)}else{if(a.contains(c,f)){e=c}}}}while(++d<a.data.length&&!e);a.event.type=(e=e||a.best)?"dropstart":"dropend";if(a.event.type=="dropend"||e.elem!=a.dropping){a.handler.call(e?e.elem:a.dropping,a.event)}if(a.last&&f[0]==a.last.pageX&&f[1]==a.last.pageY){delete a.timer}else{a.timer=setTimeout(a.tolerate,a.delay)}a.last=a.event;a.best=null},locate:function(f){var d=b(f),g=d.offset(),e=d.outerHeight(),c=d.outerWidth();return{elem:f,L:g.left,R:g.left+c,T:g.top,B:g.top+e,W:c,H:e}},contains:function(c,d){return((d[0]||d.L)>=c.L&&(d[0]||d.R)<=c.R&&(d[1]||d.T)>=c.T&&(d[1]||d.B)<=c.B)},modes:{intersect:function(d,c,e){return this.contains(e,[d.pageX,d.pageY])?e:this.modes.overlap.apply(this,arguments)},overlap:function(d,c,e){e.overlap=Math.max(0,Math.min(e.B,c.B)-Math.max(e.T,c.T))*Math.max(0,Math.min(e.R,c.R)-Math.max(e.L,c.L));if(e.overlap>((this.best||{}).overlap||0)){this.best=e}return null},fit:function(d,c,e){return this.contains(e,c)?e:null},middle:function(d,c,e){return this.contains(e,[c.L+c.W/2,c.T+c.H/2])?e:null}}}})(jQuery);var _target=null,_dragx=null,_dragy=null,_rotate=null,_resort=null;var _dragging=false,_sizing=false,_animate=false;var _rotating=0,_width=0,_height=0,_left=0,_top=0,_xspeed=0,_yspeed=0;var _zindex=1000;jQuery.fn.touch=function(a){a=jQuery.extend({animate:true,sticky:false,dragx:true,dragy:true,rotate:false,resort:true,scale:false},a);var b=[];b=$.extend({},$.fn.touch.defaults,a);this.each(function(){this.opts=b;this.ontouchstart=touchstart;this.ontouchend=touchend;this.ontouchmove=touchmove;this.ongesturestart=gesturestart;this.ongesturechange=gesturechange;this.ongestureend=gestureend})};function touchstart(a){_target=this.id;_dragx=this.opts.dragx;_dragy=this.opts.dragy;_resort=this.opts.resort;_animate=this.opts.animate;_xspeed=0;_yspeed=0;$(a.changedTouches).each(function(){var c=($("#"+_target).css("left")=="auto")?this.pageX:parseInt($("#"+_target).css("left"));var b=($("#"+_target).css("top")=="auto")?this.pageY:parseInt($("#"+_target).css("top"));if(!_dragging&&!_sizing){_left=(a.pageX-c);_top=(a.pageY-b);_dragging=[_left,_top];if(_resort){_zindex=($("#"+_target).css("z-index")==_zindex)?_zindex:_zindex+1;$("#"+_target).css({zIndex:_zindex})}}})}function touchmove(c){if(_dragging&&!_sizing&&_animate){var a=(isNaN(parseInt($("#"+_target).css("left"))))?0:parseInt($("#"+_target).css("left"));var b=(isNaN(parseInt($("#"+_target).css("top"))))?0:parseInt($("#"+_target).css("top"))}$(c.changedTouches).each(function(){c.preventDefault();_left=(this.pageX-(parseInt($("#"+_target).css("width"))/2));_top=(this.pageY-(parseInt($("#"+_target).css("height"))/2));if(_dragging&&!_sizing){if(_animate){_xspeed=Math.round((_xspeed+Math.round(_left-a))/1.5);_yspeed=Math.round((_yspeed+Math.round(_top-b))/1.5)}if(_dragx||_dragy){$("#"+_target).css({position:"absolute"})}if(_dragx){$("#"+_target).css({left:_left+"px"})}if(_dragy){$("#"+_target).css({top:_top+"px"})}$("#"+_target).css({backgroundColor:"#4B880B"});$("#"+_target+" b").text("WEEEEEEEE!!!!")}})}function touchend(a){$(a.changedTouches).each(function(){if(!a.targetTouches.length){_dragging=false;if(_animate){_left=($("#"+_target).css("left")=="auto")?this.pageX:parseInt($("#"+_target).css("left"));_top=($("#"+_target).css("top")=="auto")?this.pageY:parseInt($("#"+_target).css("top"));var c=(_dragx)?(_left+_xspeed)+"px":_left+"px";var b=(_dragy)?(_top+_yspeed)+"px":_top+"px";if(_dragx||_dragy){$("#"+_target).animate({left:c,top:b},"fast")}}}});$("#"+_target+" b").text("I am sad :(");$("#"+_target).css({backgroundColor:"#0B4188"});setTimeout(changeBack,5000,_target)}function gesturestart(a){_sizing=[$("#"+this.id).css("width"),$("#"+this.id).css("height")]}function gesturechange(a){if(_sizing){_width=(this.opts.scale)?Math.min(parseInt(_sizing[0])*a.scale,300):_sizing[0];_height=(this.opts.scale)?Math.min(parseInt(_sizing[1])*a.scale,300):_sizing[1];_rotate=(this.opts.rotate)?"rotate("+((_rotating+a.rotation)%360)+"deg)":"0deg";$("#"+this.id).css({width:_width+"px",height:_height+"px",webkitTransform:_rotate});$("#"+this.id+" b").text("TRANSFORM!");$("#"+this.id).css({backgroundColor:"#4B880B"})}}function gestureend(a){_sizing=false;_rotating=(_rotating+a.rotation)%360}function changeBack(a){$("#"+a+" b").text("Touch Me :)");$("#"+a).css({backgroundColor:"#999"})}(function(b){var a=this,c=a.jQExtensionsCSS||{};b(a).load(function(){a.scrollTo(0,0);var g=a.innerWidth<a.innerHeight?"profile":"landscape",f=c.toolbarHeight||b("#jqt .toolbar").outerHeight()||45,e={profile:null,landscape:null},d=b.extend({defaults:".horizontal-scroll, .horizontal-scroll .scroll-container, .horizontal-slide, .horizontal-slide .slide-container { width: {width}px; height: 100%; overflow: hidden; padding: 0; } .vertical-scroll > div, .vertical-slide > div { margin: 0 auto; padding-bottom:{paddingBottom}px; } #jqt.fullscreen .vertical-scroll.use-bottom-toolbar > div, #jqt.fullscreen .vertical-slide.use-bottom-toolbar > div { padding-bottom:0px; } .vertical-scroll, .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .vertical-scroll.use-bottom-toolbar, .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }\n",profile:".profile .horizontal-scroll, .profile .horizontal-scroll .scroll-container, .profile .horizontal-slide, .profile .horizontal-slide .slide-container { width: {width}px; } .profile .vertical-scroll, .profile .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .profile .vertical-scroll.use-bottom-toolbar, .profile .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }",landscape:".landscape .horizontal-scroll, .landscape .horizontal-scroll .scroll-container, .landscape .horizontal-slide, .landscape .horizontal-slide .slide-container { width: {width}px; height: 100%; overflow: hidden; padding: 0; } .landscape .vertical-scroll, .landscape .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .landscape .vertical-scroll.use-bottom-toolbar, .landscape .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }"},c.css||{});e[g]=b.extend({paddingBottom:5,width:a.innerWidth,height:a.innerHeight-f,bottomToolbarHeight:a.innerHeight-(f*2)},c[g]||{});e.defaults=b.extend({},e[g],c.defaults||{});b(document.createElement("style")).prop("type","text/css").html(d.defaults.replace(/\{(\w+)\}/g,function(i,h){return h in e.defaults?e.defaults[h]:i})+d[g].replace(/\{(\w+)\}/g,function(i,h){return h in e[g]?e[g][h]:i})).appendTo("head");b(a).one("orientationchange",function(){var h=a.innerWidth<a.innerHeight?"profile":"landscape";e[h]=b.extend({paddingBottom:5,width:a.innerWidth,height:a.innerHeight-f,bottomToolbarHeight:a.innerHeight-(f*2)},c[h]||{});b(document.createElement("style")).prop("type","text/css").html(d[h].replace(/\{(\w+)\}/g,function(j,i){return i in e[h]?e[h][i]:j})).appendTo("head")})})})(jQuery);(function($){$.Chain={version:"0.2",tag:["{","}"],services:{},service:function(name,proto){this.services[name]=proto;$.fn[name]=function(options){if(!this.length){return this}var instance=this.data("chain-"+name);var args=Array.prototype.slice.call(arguments,1);if(!instance){if(options=="destroy"){return this}instance=$.extend({element:this},$.Chain.services[name]);this.data("chain-"+name,instance);if(instance.init){instance.init()}}var result;if(typeof options=="string"&&instance["$"+options]){result=instance["$"+options].apply(instance,args)}else{if(instance.handler){result=instance.handler.apply(instance,[options].concat(args))}else{result=this}}if(options=="destroy"){this.removeData("chain-"+name)}return result}},extend:function(name,proto){if(this.services[name]){this.services[name]=$.extend(this.services[name],proto)}},jobject:function(obj){return obj&&obj.init==$.fn.init},jidentic:function(j1,j2){if(!j1||!j2||j1.length!=j2.length){return false}var a1=j1.get();var a2=j2.get();for(var i=0;i<a1.length;i++){if(a1[i]!=a2[i]){return false}}return true},parse:function(){var $this={};$this.closure=['function($data, $el){var $text = [];\n$text.print = function(text){this.push((typeof text == "number") ? text : ((typeof text != "undefined") ? text : ""));};\nwith($data){\n','}\nreturn $text.join("");}'];$this.textPrint=function(text){return'$text.print("'+text.split("\\").join("\\\\").split("'").join("\\'").split('"').join('\\"')+'");'};$this.scriptPrint=function(text){return"$text.print("+text+");"};$this.parser=function(text){var tag=$.Chain.tag;var opener,closer,closer2=null,result=[];while(text){opener=text.indexOf(tag[0]);closer=opener+text.substring(opener).indexOf(tag[1]);if(opener!=-1){if(text[opener-1]=="\\"){closer2=opener+tag[0].length+text.substring(opener+tag[0].length).indexOf(tag[0]);if(closer2!=opener+tag[0].length-1&&text[closer2-1]=="\\"){closer2=closer2-1}else{if(closer2==opener+tag[0].length-1){closer2=text.length}}result.push($this.textPrint(text.substring(0,opener-1)));result.push($this.textPrint(text.substring(opener,closer2)))}else{closer2=null;if(closer==opener-1){closer=text.length}result.push($this.textPrint(text.substring(0,opener)));result.push($this.scriptPrint(text.substring(opener+tag[0].length,closer)))}text=text.substring((closer2===null)?closer+tag[1].length:closer2)}else{if(text){result.push($this.textPrint(text));text=""}}}return result.join("\n")};return function($text){var $fn=function(){};try{eval("$fn = "+$this.closure[0]+$this.parser($text)+$this.closure[1])}catch(e){throw"Parsing Error"}return $fn}}()}})(jQuery);(function(a){a.Chain.service("update",{handler:function(b){if(typeof b=="function"){return this.bind(b)}else{return this.trigger(b)}},bind:function(b){return this.element.bind("update",b)},trigger:function(b){this.element.items("update");this.element.item("update");this.element.triggerHandler("preupdate",this.element.item());if(b=="hard"){this.element.items(true).each(function(){a(this).update()})}this.element.triggerHandler("update",this.element.item());return this.element}})})(jQuery);(function(a){a.Chain.service("chain",{init:function(){this.anchor=this.element;this.template=this.anchor.html();this.tplNumber=0;this.builder=this.createBuilder();this.plugins={};this.isActive=false;this.destroyers=[];this.element.addClass("chain-element")},handler:function(b){this.element.items("backup");this.element.item("backup");if(typeof b=="object"){this.handleUpdater(b)}else{if(typeof b=="function"){this.handleBuilder(b)}}this.anchor.empty();this.isActive=true;this.element.update();return this.element},handleUpdater:function(h){var b=h.builder;delete h.builder;if(h.anchor){this.setAnchor(h.anchor)}delete h.anchor;var e=h.override;delete h.override;for(var d in h){if(typeof h[d]=="string"){h[d]=a.Chain.parse(h[d])}else{if(typeof h[d]=="object"){for(var c in h[d]){if(typeof h[d][c]=="string"){h[d][c]=a.Chain.parse(h[d][c])}}}}}var f=function(o,p){var n,q;var k=a(this);for(var m in h){if(m=="self"){n=k}else{n=a(m,k)}if(typeof h[m]=="function"){q=h[m].apply(k,[p,n]);if(typeof q=="string"){n.not(":input").html(q).end().filter(":input").val(q)}}else{if(typeof h[m]=="object"){for(var l in h[m]){if(typeof h[m][l]=="function"){q=h[m][l].apply(k,[p,n]);if(typeof q=="string"){if(l=="content"){n.html(q)}else{if(l=="text"){n.text(q)}else{if(l=="value"){n.val(q)}else{if(l=="class"||l=="className"){n.addClass(q)}else{n.prop(l,q)}}}}}}}}}}};var g=this.defaultBuilder;this.builder=function(i){if(b){b.apply(this,[i])}if(!e){g.apply(this)}this.update(f);return false}},handleBuilder:function(b){this.builder=this.createBuilder(b)},defaultBuilder:function(c,b){var d=c?(c.apply(this,[b])!==false):true;if(d){this.bind("update",function(g,h){var e=a(this);for(var f in h){if(typeof h[f]!="object"&&typeof h[f]!="function"){e.find("> ."+f+", *:not(.chain-element) ."+f).each(function(){var i=a(this);if(i.filter(":input").length){i.val(h[f])}else{if(i.filter("img").length){i.prop("src",h[f])}else{i.html(h[f])}}})}}})}},createBuilder:function(b){var c=this.defaultBuilder;return function(d){c.apply(this,[b,d]);return false}},setAnchor:function(b){this.anchor.html(this.template);this.anchor=b==this.element?b:this.element.find(b).eq(0);this.template=this.anchor.html();this.anchor.empty()},$anchor:function(b){if(b){this.element.items("backup");this.element.item("backup");this.setAnchor(b);this.element.update();return this.element}else{return this.anchor}},$template:function(b){if(!arguments.length){return a("<div>").html(this.template).children().eq(this.tplNumber)}if(b=="raw"){return this.template}if(typeof b=="number"){this.tplNumber=b}else{var c=a("<div>").html(this.template).children();var d=c.filter(b).eq(0);if(d.length){this.tplNumber=c.index(d)}else{return this.element}}this.element.items("backup");this.element.item("backup");this.element.update();return this.element},$builder:function(b){if(b){return this.handler(b)}else{return this.builder}},$active:function(){return this.isActive},$plugin:function(b,c){if(c===null){delete this.plugins[b]}else{if(typeof c=="function"){this.plugins[b]=c}else{if(b&&!c){return this.plugins[b]}else{return this.plugins}}}if(typeof c=="function"){this.element.items(true).each(function(){var d=a(this);c.call(d,d.item("root"))})}this.element.update();return this.element},$clone:function(){var c=this.element.prop("id");this.element.prop("id","");var b=this.element.clone().empty().html(this.template);this.element.prop("id",c);return b},$destroy:function(b){this.element.removeClass("chain-element");if(!b){this.element.items("backup");this.element.item("backup");this.element.find(".chain-element").each(function(){a(this).chain("destroy",true)})}this.element.triggerHandler("destroy");this.isActive=false;this.anchor.html(this.template);return this.element}})})(jQuery);(function(a){a.Chain.service("item",{init:function(){this.isActive=false;this.isBuilt=false;this.root=this.element;this.data=false;this.datafn=this.dataHandler},handler:function(b){if(typeof b=="object"){return this.handleObject(b)}else{if(typeof b=="function"){return this.handleFunction(b)}else{return this.handleDefault()}}},handleObject:function(b){this.setData(b);this.isActive=true;this.update();return this.element},handleFunction:function(b){this.datafn=b;return this.element},handleDefault:function(){if(this.isActive){return this.getData()}else{return false}},getData:function(){this.data=this.datafn.call(this.element,this.data);return this.data},setData:function(d){var c;if(a.Chain.jobject(d)&&d.item()){c=a.extend({},d.item())}else{if(a.Chain.jobject(d)){c={}}else{c=d}}this.data=this.datafn.call(this.element,this.data||c,c);if(this.linkElement&&this.linkElement[0]!=d[0]){var b=this.linkFunction();if(a.Chain.jobject(b)&&b.length&&b.item()){b.item(this.data)}}},dataHandler:function(b,c){if(arguments.length==2){return a.extend(b,c)}else{return b}},update:function(){return this.element.update()},build:function(){var b=this.element.chain("template","raw").replace(/jQuery\d+\=\"null\"/gi,"");this.element.chain("anchor").html(b);if(!a.Chain.jidentic(this.root,this.element)){var c=this.root.chain("plugin");for(var d in c){c[d].apply(this.element,[this.root])}}this.element.chain("builder").apply(this.element,[this.root]);this.isBuilt=true},$update:function(){if(this.element.chain("active")&&this.isActive&&!this.isBuilt&&this.getData()){this.build()}return this.element},$replace:function(b){this.data={};this.setData(b);this.isActive=true;this.update();return this.element},$remove:function(b){this.element.chain("destroy");this.element.remove();this.element.item("link",null);this.element.item("destroy");if(!a.Chain.jidentic(this.root,this.element)&&!b){this.root.update()}},$active:function(){return this.isActive},$root:function(b){if(arguments.length){this.root=b;this.update();return this.element}else{return this.root}},$backup:function(){this.isBuilt=false;return this.element},$link:function(c,d){if(this.linkElement){this.linkElement.unbind("update",this.linkUpdater);this.linkElement=null}c=a(c);if(c.length){var b=this;this.isActive=true;this.linkElement=c;this.linkFunction=function(){if(typeof d=="function"){try{return d.call(b.element,b.linkElement)}catch(f){return a().eq(-1)}}else{if(typeof d=="string"){return b.linkElement.items("collection",d)}else{return a().eq(-1)}}};this.linkUpdater=function(){var e=b.linkFunction();if(e&&e.length){b.element.item(e)}};this.linkElement.bind("update",this.linkUpdater);this.linkUpdater()}return this.element},$destroy:function(){return this.element}})})(jQuery);(function(a){a.Chain.service("items",{collections:{all:function(){return this.element.chain("anchor").children(".chain-item")},visible:function(){return this.element.chain("anchor").children(".chain-item:visible")},hidden:function(){return this.element.chain("anchor").children(".chain-item:hidden")},self:function(){return this.element}},init:function(){this.isActive=false;this.pushBuffer=[];this.shiftBuffer=[];this.collections=a.extend({},this.collections)},handler:function(b){if(b instanceof Array){return this.handleArray(b)}else{if(!this.isActive){return a().eq(-1)}else{if(a.Chain.jobject(b)){return this.handleElement(b)}else{if(typeof b=="object"){return this.handleObject(b)}else{if(typeof b=="number"){return this.handleNumber(b)}else{if(b===true){return this.handleTrue()}else{return this.handleDefault()}}}}}}},handleObject:function(b){return this.collection("all").filter(function(){return a(this).item()==b})},handleElement:function(b){if(!a.Chain.jidentic(b,b.item("root"))&&a.Chain.jidentic(this.element,b.item("root"))){return b}else{return a().eq(-1)}},handleArray:function(b){return this.$merge(b)},handleNumber:function(b){if(b==-1){return this.collection("visible").filter(":last")}else{return this.collection("visible").eq(b)}},handleTrue:function(){return this.collection("all")},handleDefault:function(){return this.collection("visible")},update:function(){this.element.update()},empty:function(){var b=this.collection("all");setTimeout(function(){b.each(function(){a(this).item("remove",true)})},1);this.element.chain("anchor").empty()},collection:function(b,c){if(arguments.length>1){if(typeof c=="function"){this.collections[b]=c}return this.element}else{if(this.collections[b]){return this.collections[b].apply(this)}else{return a().eq(-1)}}},$update:function(){if(!this.element.chain("active")||!this.isActive){return this.element}var c=this;var b=this.element.chain("builder");var f=this.element.chain("template");var d;var e=function(){var g=f.clone()[d?"appendTo":"prependTo"](c.element.chain("anchor")).addClass("chain-item").item("root",c.element);if(c.linkElement&&a.Chain.jobject(this)&&this.item()){g.item("link",this,"self")}else{g.item(this)}g.chain(b)};d=false;a.each(this.shiftBuffer,e);d=true;a.each(this.pushBuffer,e);this.shiftBuffer=[];this.pushBuffer=[];return this.element},$add:function(){if(this.linkElement){return this.element}var d;var c=Array.prototype.slice.call(arguments);if(typeof c[0]=="string"){d=c.shift()}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;this[b]=this[b].concat(c);this.update();return this.element},$merge:function(d,c){if(this.linkElement){return this.element}if(typeof d!="string"){c=d}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;if(a.Chain.jobject(c)){this[b]=this[b].concat(c.map(function(){return a(this)}).get())}else{if(c instanceof Array){this[b]=this[b].concat(c)}}this.update();return this.element},$replace:function(d,c){if(this.linkElement&&arguments.callee.caller!=this.linkUpdater){return this.element}if(typeof d!="string"){c=d}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;this.empty();if(a.Chain.jobject(c)){this[b]=c.map(function(){return a(this)}).get()}else{if(c instanceof Array){this[b]=c}}this.update();return this.element},$remove:function(){if(this.linkElement){return this.element}for(var b=0;b<arguments.length;b++){this.handler(arguments[b]).item("remove",true)}this.update();return this.element},$reorder:function(c,b){if(b){this.handler(c).before(this.handler(b))}else{this.handler(c).appendTo(this.element.chain("anchor"))}this.update();return this.element},$empty:function(){if(this.linkElement){return this.element}this.empty();this.shiftBuffer=[];this.pushBuffer=[];this.update();return this.element},$data:function(b){return this.handler(b).map(function(){return a(this).item()}).get()},$link:function(c,d){if(this.linkElement){this.linkElement.unbind("update",this.linkUpdater);this.linkElement=null}c=a(c);if(c.length){var b=this;this.linkElement=c;this.linkFunction=function(){if(typeof d=="function"){try{return d.call(b.element,b.linkElement)}catch(f){return a().eq(-1)}}else{if(typeof d=="string"){return b.linkElement.items("collection",d)}else{return a().eq(-1)}}};this.linkUpdater=function(){b.$replace(b.linkFunction())};this.linkElement.bind("update",this.linkUpdater);this.linkUpdater()}return this.element},$index:function(b){return this.collection("all").index(this.handler(b))},$collection:function(){return this.collection.apply(this,Array.prototype.slice.call(arguments))},$active:function(){return this.isActive},$backup:function(){if(!this.element.chain("active")||!this.isActive){return this.element}var b=[];this.collection("all").each(function(){var c=a(this).item();if(c){b.push(c)}});this.pushBuffer=b.concat(this.pushBuffer);this.empty();return this.element},$destroy:function(){this.empty();return this.element}});a.Chain.extend("items",{doFilter:function(){var c=this.searchProperties;var d=this.searchText;if(d){if(typeof d=="string"){d=d.toLowerCase()}var b=this.element.items(true).filter(function(){var f=a(this).item();if(c){for(var e=0;e<c.length;e++){if(typeof f[c[e]]=="string"&&!!(typeof d=="string"?f[c[e]].toLowerCase():f[c[e]]).match(d)){return true}}}else{for(var g in f){if(typeof f[g]=="string"&&!!(typeof d=="string"?f[g].toLowerCase():f[g]).match(d)){return true}}}});this.element.items(true).not(b).hide();b.show()}else{this.element.items(true).show();this.element.unbind("preupdate",this.searchBinding);this.searchBinding=null}},$filter:function(d,c){if(!arguments.length){return this.update()}this.searchText=d;if(typeof c=="string"){this.searchProperties=[c]}else{if(c instanceof Array){this.searchProperties=c}else{this.searchProperties=null}}if(!this.searchBinding){var b=this;this.searchBinding=function(f,e){b.doFilter()};this.element.bind("preupdate",this.searchBinding)}return this.update()}});a.Chain.extend("items",{doSort:function(){var b=this.sortName;var d=this.sortOpt;var g={number:function(i,h){return parseFloat((a(i).item()[b]+"").match(/\d+/gi)[0])-parseFloat((a(h).item()[b]+"").match(/\d+/gi)[0])},"default":function(i,h){return a(i).item()[b]>a(h).item()[b]?1:-1}};if(b){var e=d.fn||g[d.type]||g["default"];var f=this.element.items(true).get().sort(e);f=d.desc?f.reverse():f;for(var c=0;c<f.length;c++){this.element.chain("anchor").append(f[c])}d.desc=d.toggle?!d.desc:d.desc}else{this.element.unbind("preupdate",this.sortBinding);this.sortBinding=null}},$sort:function(c,d){if(!c&&c!==null&&c!==false){return this.update()}if(this.sortName!=c){this.sortOpt=a.extend({desc:false,type:"default",toggle:false},d)}else{a.extend(this.sortOpt,d)}this.sortName=c;if(!this.sortBinding){var b=this;this.sortBinding=function(f,e){b.doSort()};this.element.bind("preupdate",this.sortBinding)}return this.update()}})})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(e){var d=".toolbar h1";a(function(){a("#jqt").bind("pageAnimationStart",function(i,g){if(g.direction==="in"){var f=a(d,a(i.target));var h=a(i.target).data("referrer");if(f.length&&h&&f.html()===""){f.html(h.text())}}})});function c(f){d=f}return{setTitleSelector:c}})}})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(f){var m,i;var d=false;function n(p,o,r,q){i=p;if(window.openDatabase){m=openDatabase(p,o,r,q);if(!m){debugTxt=("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota");if(d){c(debugTxt)}}}else{debugTxt=("Couldn't open the database. Please try with a WebKit nightly with this feature enabled");if(d){c(debugTxt)}}}function e(o){for(x=0;x<o.createTables.length;x++){p(o.createTables[x])}function p(r){debugTxt="create table "+r.table;var q="CREATE TABLE "+r.table+" (";nodeSize=r.property.length-1;for(y=0;y<=nodeSize;y++){q+=r.property[y].name+" "+r.property[y].type;if(y!=nodeSize){q+=", "}}q+=")";k(q,debugTxt)}}function j(p,o,q){stringQuery="DELETE FROM "+p+" WHERE "+o+" = "+q;debugTxt="delete row"+o+" "+q;k(stringQuery,debugTxt)}function g(p,o){stringQuery="SELECT * FROM "+p;debugTxt="selecting everything in table "+p;k(stringQuery,debugTxt,o)}function h(o){stringQuery="DROP TABLE "+o;debugTxt="delete table "+o;k(stringQuery,debugTxt)}function l(o){for(x=0;x<o.addRow.length;x++){p(o.addRow[x])}function p(q){debugTxt="create row "+q.table;stringQuery="INSERT INTO "+q.table+" (";nodeSize=q.property.length-1;for(y=0;y<=nodeSize;y++){stringQuery+=q.property[y].name;if(y!=nodeSize){stringQuery+=", "}}stringQuery+=") VALUES (";for(y=0;y<=nodeSize;y++){stringQuery+='"'+q.property[y].value+'"';if(y!=nodeSize){stringQuery+=", "}}stringQuery+=")";k(stringQuery,debugTxt)}}function k(o,p,q){p+="<br> SQL: "+o;callback=q;m.transaction(function(r){r.executeSql(o,[],function(t,s){if(callback){callback(s)}if(d){p+="<br><span style='color:green'>success</span> ";c(p)}},function(s,t){p+="<br><span style='color:red'>"+t.message+"</span> ";if(d){c(p)}})})}function c(o){if(!a("#debugMode")[0]){a("body").append("<div style='position:abolute;top:0 !important;left:0 !important;width:100% !important;min-height:100px !important; height:300px; overflow:scroll;z-index:1000; display:block; opacity:0.8; background:#000;-webkit-backface-visibility:visible ' id='debugMode'></div>")}a("#debugMode").append("<div class='debugerror'>"+o+"</div>")}return{dbOpen:n,dbDeleteRow:j,dbDropTable:h,dbInsertRows:l,dbSelectAll:g,dbExecuteQuery:k,dbCreateTables:e}})}})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(d){function c(g){if(g==null){g=0}var f=e(g);a("body > *").css("min-height",f+"px !important");a("body.fullscreen > *").css("min-height",f+"px !important");a("body.fullscreen.black-translucent > *").css("min-height",f+"px !important");a("body.landscape > *").css("min-height",f+"px !important")}function e(g){var f=0;if(typeof(window.innerWidth)=="number"){f=window.innerHeight}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){f=document.documentElement.clientHeight}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){f=document.body.clientHeight}}}if(f<g){f=g}return f}return{resetHeight:c}})}})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(c){b.fn.makeFloaty=function(d){var f={align:"top",spacing:20,time:".3s"};var e=b.extend({},f,d);e.align=(e.align=="top")?"top":"bottom";return this.each(function(){var g=b(this);g.css({"-webkit-transition":"top "+e.time+" ease-in-out",display:"block","min-height":"0 !important"}).data("settings",e);b(document).bind("scroll",function(){if(g.data("floatyVisible")===true){g.scrollFloaty()}});g.scrollFloaty()})};b.fn.scrollFloaty=function(){return this.each(function(){var d=b(this);var f=d.data("settings");var e=b("html").prop("clientHeight");var g=window.pageYOffset+((f.align=="top")?f.spacing:e-f.spacing-d.get(0).offsetHeight);d.css("top",g).data("floatyVisible",true)})};b.fn.hideFloaty=function(){return this.each(function(){var d=b(this);var e=d.get(0).offsetHeight;d.css("top",-e-10).data("floatyVisible",false)})};b.fn.toggleFloaty=function(){return this.each(function(){var d=b(this);if(d.data("floatyVisible")===true){d.hideFloaty()}else{d.scrollFloaty()}})}})}})(jQuery);(function(c){if(c.jQTouch){function b(f){var i,e,h,i,g=0;h={element:c("#gesture_test"),onGestureStart:null,onGestureChange:null,onGestureEnd:null,};h=c.extend({},h,f);h.element.bind("gesturestart",function(j){j.originalEvent.preventDefault();if(h.onGestureStart){h.onGestureStart(a(j,i),d(j,g),j,h.element)}}).bind("gesturechange",function(j){if(h.onGestureChange){h.onGestureChange(a(j,i),d(j,g),j,h.element)}}).bind("gestureend",function(j){i=j.originalEvent.scale;g=(j.originalEvent.rotation+g)%360;if(h.onGestureEnd){h.onGestureEnd(a(j,i),d(j,g),j,h.element)}})}function d(f,e){return f.originalEvent.rotation+e}function a(f,e){return f.originalEvent.scale+e}c.fn.bindGestures=function(e){e.element=this;b(e)}}})(jQuery);(function(f){var g,j=this,o=j.document,l=this.WebKitCSSMatrix,k={selector:".horizontal-scroll > table",attributesToOptions:e,attributes:{defaultDuration:"slidespeed",preventDefault:"preventdefault",defaultTransform:"defaulttransform",bounce:function(u){return u.prop("bounce")==="false"?false:k.bounce},scrollBar:function(u){return u.hasClass("with-scrollbar")}},ignoreTags:"SELECT,TEXTAREA,BUTTON,INPUT",eventProperty:"pageX",numberOfTouches:1,defaultDuration:500,defaultTransform:"translate3d({0}px,0,0)",defaultOffset:0,bounceSpeed:500,preventDefault:true,maxScrollTime:1000,friction:3,bounceTimingFunction:"cubic-bezier(0,0,.25,1)",bounce:true,scrollBar:true,scrollBarElement:null,scrollBarOptions:{},events:{touchstart:a,touchmove:s,touchend:d,touchcancel:d,webkitTransitionEnd:i,},setPosition:c,reset:t,momentum:m},q=function(){return j.innerWidth+"px"},n=function(u){return(j.innerHeight-u.toolbar)+"px"},h={variables:{toolbar:45},defaults:{".horizontal-scroll":{width:q,height:"100%",overflow:"hidden",padding:"0px",position:"relative",height:n},".horizontal-scroll > table":{height:"100%"},".horizontal-scroll .scrollbar.horizontal":{"-webkit-transition-timing-function":"cubic-bezier(0,0,0.25,1)","-webkit-transform":"translate3d(0,0,0)","-webkit-transition-property":"-webkit-transform,opacity","-webkit-transition-duration":"0,300ms","-webkit-border-radius":"4px","pointer-events":"none",opacity:0,"-webkit-border-image":"-webkit-gradient(radial, 50% 50%, 2, 50% 50%, 8, from(rgba(0,0,0,.5)), to(rgba(0,0,0,.5))) 3 2",position:"absolute","z-index":10,width:"1px",height:"5px",bottom:"1px",left:"1px"}},portrait:{".portrait .horizontal-scroll":{width:q}},landscape:{".landscape .horizontal-scroll":{width:q}}};if(f.jQTouch){f.jQTouch.addExtension(function(v){function u(A,z){var w=z.page.find(k.selector);w.scrollHorizontally(k.attributesToOptions(w,k.attributes))}f(o.body).bind("pageInserted",u);f(function(){f(k.selector).each(function(){f(this).scrollHorizontally(k.attributesToOptions(f(this),k.attributes))})});return{}})}function e(w,u){var v={};f.each(u,function(z,A){if(f.isFunction(A)){v[z]=A(w)}else{if(w.attr(A)!=g){v[z]=w.prop(A)}}});return v}f.fn.scrollHorizontally=function(u){u=f.extend(true,{},k,u||{});return this.each(function(){p(this,u)})};f.fn.scrollHorizontally.defaults=function(u){if(u!==g){k=f.extend(true,k,u)}return f.extend({},k)};f.fn.scrollHorizontally.defaultCSS=function(u){if(u!==g){h=f.extend(true,h,u)}return f.extend({},h)};function p(z,w){var u=f(z).data("jqt-horizontal-scroll-options",w).css("webkitTransform",r(w.defaultTransform,w.defaultOffset)),v=new l(u.css("webkitTransform"));f.each(w.events,function(A,B){z.addEventListener(A,B,false)});w.currentPosition=v.m41;w.parentWidth=u.parent().width();if(w.scrollBar&&w.scrollBar===true&&!w.scrollBarElement){w.scrollBarElement=f.isFunction(w.scrollBar)?w.scrollBar(u.parent(),"horizontal",w.scrollBarOptions||{}):b(u.parent(),"horizontal",w.scrollBarOptions||{})}}function a(C){var D=f(this),w=D.data("jqt-horizontal-scroll-options"),v,B=D.outerWidth(),A=D.parent().width(),z=-(B-A),u=A/6;w.parentWidth=A;if(!!w.ignoreTags&&f(C.target).is(w.ignoreTags)||C.targetTouches.length!==w.numberOfTouches){return null}v=new l(D.css("webkitTransform"));D.data("jqt-horizontal-scroll-current-event",{startLocation:C.touches[0][w.eventProperty],startPosition:v.m41,currentPosition:v.m41,startTime:C.timeStamp,moved:false,lastMoveTime:C.timeStamp,parentWidth:A,endPoint:z,minScroll:!w.bounce?0:u,maxScroll:!w.bounce?z:z-u,timingFunction:w.bounceTimingFunction});if(w.scrollBarElement){w.scrollBarElement.init(A,B)}w.setPosition(D,w,v.m41,"0");if(w.preventDefault){C.preventDefault();return false}else{return true}}function s(z){var B=f(this),w=B.data("jqt-horizontal-scroll-options"),A=B.data("jqt-horizontal-scroll-current-event"),v=A.lastMoveTime,C=A.startLocation-z.touches[0][w.eventProperty],u=A.startPosition-C;A.currentPosition=u;A.moved=true;A.lastMoveTime=z.timeStamp;if((A.lastMoveTime-v)>w.maxScrollTime){A.startTime=A.lastMoveTime}if(w.scrollBarElement&&!w.scrollBarElement.visible){w.scrollBarElement.show()}w.setPosition(B,w,A.currentPosition,0);if(w.preventDefault){z.preventDefault();return false}else{return true}}function d(v){var A=f(this),u=A.data("jqt-horizontal-scroll-options"),w=A.data("jqt-horizontal-scroll-current-event"),z,B;if(!w.moved){if(u.scrollBarElement){u.scrollBarElement.hide()}z=v.target;if(z.nodeType==3){z=z.parentNode}B=o.createEvent("MouseEvents");B.initEvent("click",true,true);z.dispatchEvent(B);if(u.preventDefault){v.preventDefault();v.stopPropagation();return false}}u.momentum(A,u,w,v);u.setPosition(A,u,w.currentPosition,w.duration);if(u.preventDefault){v.preventDefault();v.stopPropagation();return false}else{return true}}function i(z){var w=f(this),u=w.data("jqt-horizontal-scroll-options"),v=w.data("jqt-horizontal-scroll-current-event");if(v){if(v.currentPosition>0){v.currentPosition=0;u.setPosition(w,u,0,u.bounceSpeed)}else{if(v.currentPosition<v.endPoint){v.currentPosition=v.endPoint;u.setPosition(w,u,v.endPoint,u.bounceSpeed)}else{if(u.scrollBarElement){u.scrollBarElement.hide()}}}}else{if(u.scrollBarElement){u.scrollBarElement.hide()}}}function m(C,F,D,v){var z=Math.min(F.maxScrollTime,D.lastMoveTime-D.startTime),u=D.startPosition-D.currentPosition,A=Math.abs(u)/z,B=z*A*F.friction,w=Math.round(u*A),E=Math.round(D.currentPosition-w);if(D.currentPosition>0){E=0}else{if(D.currentPosition<D.endPoint){E=D.endPoint}else{if(E>D.minScroll){B=B*Math.abs(D.minScroll/E);E=D.minScroll}else{if(E<D.maxScroll){B=B*Math.abs(D.maxScroll/E);E=D.maxScroll}}}}D.momentum=E/D.currentPosition;D.currentPosition=E;D.duration=B}function t(v,u){return u.setPosition(v,u,0,u.defaultDuration)}function c(w,v,u,B,A){if(v.scrollBarElement){var z=(w.parent().width()-w.outerWidth());if(u>0){z+=Number(u)}v.scrollBarElement.scrollTo(v.scrollBarElement.maxScroll/z*u,r("{0}ms",B!==g?B:v.defaultDuration))}if(B!==g){w.css("webkitTransitionDuration",r("{0}ms",B))}if(A!==g){w.css("webkitTransitionTimingFunction",A)}v.currentPosition=u||0;return w.css("webkitTransform",r("translate3d({0}px, 0, 0)",v.currentPosition))}function r(v){var u=arguments;return v.replace(/\{(\d+)\}/g,function(z,w){return u[Number(w)+1]+""})}function b(v,w,u){if(!(this instanceof b)){return new b(v,w,u)}this.direction=w;this.bar=f(o.createElement("div")).addClass("scrollbar "+w).appendTo(v)[0]}b.prototype={direction:"horizontal",size:0,maxSize:0,maxScroll:0,visible:false,init:function(u,v){var w=this.direction=="horizontal"?this.bar.offsetWidth-this.bar.clientWidth:this.bar.offsetHeight-this.bar.clientHeight;this.maxSize=u-8;this.size=Math.round(this.maxSize*this.maxSize/v)+w;this.maxScroll=this.maxSize-this.size;this.bar.style[this.direction=="horizontal"?"width":"height"]=(this.size-w)+"px"},setPosition:function(u){u=this.direction=="horizontal"?"translate3d("+Math.round(u)+"px,0,0)":"translate3d(0,"+Math.round(u)+"px,0)";this.bar.style.webkitTransform=u},scrollTo:function(v,u){this.bar.style.webkitTransitionDuration=(u||"400ms")+",300ms";this.setPosition(v)},show:function(){this.visible=true;this.bar.style.opacity="1"},hide:function(){this.visible=false;this.bar.style.opacity="0"},remove:function(){this.bar.parentNode.removeChild(this.bar);return null}};f(function(){j.scrollTo(0,0);var u="",z=h,w=j.innerHeight>j.innerWidth?"portrait":"landscape",A=function(B,C){u+=B+":"+(f.isFunction(C)?C(z.variables):C)+";"},v=function(B,C){u+=B+"{";f.each(C,A);u+="}"};f.each(z.defaults,v);f.each(z[w],v);f(o.createElement("style")).prop({type:"text/css",media:"screen"}).html(u).appendTo("head");f(j).one("orientationchange",function(){setTimeout(function(){j.scrollTo(0,0);u="";f.each(z[j.innerHeight>j.innerWidth?"portrait":"landscape"],v);f(o.createElement("style")).prop({type:"text/css",media:"screen"}).html(u).appendTo("head")},30)})})})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(){var i,f,h;function d(){return navigator.geolocation}function g(j){if(d()){h=j;navigator.geolocation.getCurrentPosition(c);return true}else{console.log("Device not capable of geo-location.");j(false);return false}}function c(j){i=j.coords.latitude;f=j.coords.longitude;if(h){h(e())}}function e(){if(i&&f){return{latitude:i,longitude:f}}else{console.log("No location available. Try calling updateLocation() first.");return false}}return{updateLocation:g,getLocation:e}})}})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(){var c=[];c[0]="uncached";c[1]="idle";c[2]="checking";c[3]="downloading";c[4]="updateready";c[5]="obsolete";var d=window.applicationCache;d.addEventListener("cached",f,false);d.addEventListener("checking",f,false);d.addEventListener("downloading",f,false);d.addEventListener("error",f,false);d.addEventListener("noupdate",f,false);d.addEventListener("obsolete",f,false);d.addEventListener("progress",f,false);d.addEventListener("updateready",f,false);function f(m){var j,i,k,l;j=(h())?"yes":"no";i=c[d.status];k=m.type;l="online: "+j;l+=", event: "+k;l+=", status: "+i;if(k=="error"&&navigator.onLine){l+=" There was an unknown error, check your Cache Manifest."}console.log(l)}function h(){return navigator.onLine}if(!b("html").prop("manifest")){console.log("No Cache Manifest listed on the <html> tag.")}d.addEventListener("updateready",function(i){if(c[d.status]!="idle"){d.swapCache();console.log("Swapped/updated the Cache Manifest.")}},false);function e(){d.update()}function g(){setInterval(function(){d.update()},10000)}return{isOnline:h,checkForUpdates:e,autoCheckForUpdates:g}})}})(jQuery);
1
+ (function(a){a.jQTouch=function(w){var E,t=a("head"),M="",J=[],I=0,m={},j="",v="portrait",U=true,T=0,e=0,i=[],z={},k=351,O=a.jQTouch.prototype.extensions,S=[],s="",F={addGlossToIcon:true,backSelector:".back, .cancel, .goback",cacheGetRequests:true,debug:false,fallback2dAnimation:"fade",fixedViewport:true,formSelector:"form",fullScreen:true,fullScreenClass:"fullscreen",hoverDelay:50,icon:null,iconPad:null,icon4:null,moveThreshold:10,preloadImages:false,pressDelay:1000,startupScreen:null,statusBar:"default",submitSelector:".submit",touchSelector:"a, .touch",useAnimations:true,useFastTouch:true,animations:[{selector:".cube",name:"cubeleft",is3d:true},{selector:".cubeleft",name:"cubeleft",is3d:true},{selector:".cuberight",name:"cuberight",is3d:true},{selector:".dissolve",name:"dissolve",is3d:false},{selector:".fade",name:"fade",is3d:false},{selector:".flip",name:"flipleft",is3d:true},{selector:".flipleft",name:"flipleft",is3d:true},{selector:".flipright",name:"flipright",is3d:true},{selector:".pop",name:"pop",is3d:true},{selector:".slide",name:"slideleft",is3d:false},{selector:".slidedown",name:"slidedown",is3d:false},{selector:".slideleft",name:"slideleft",is3d:false},{selector:".slideright",name:"slideright",is3d:false},{selector:".slideup",name:"slideup",is3d:false},{selector:".swap",name:"swapleft",is3d:true},{selector:"#jqt > * > ul li a",name:"slideleft",is3d:false}]};function A(W){var V=(new Date).getTime();var X=V-T;T=V;if(m.debug){if(W){f(X+": "+W)}else{f(X+": Called "+arguments.callee.caller.name)}}}function f(V){if(window.console!==undefined){console.log(V)}}function b(V){if(typeof(V.selector)==="string"&&typeof(V.name)==="string"){S.push(V)}}function l(W,V){A();J.unshift({page:W,animation:V,hash:"#"+W.attr("id"),id:W.attr("id")})}function o(W){A();if(!U){A("ClickHandler handler aborted because tap is not ready");W.preventDefault();return false}var V=a(W.target);if(!V.is(i.join(", "))){V=a(W.target).closest(i.join(", "))}if(V&&V.attr("href")&&!V.isExternalLink()){A("Need to prevent default click behavior");W.preventDefault()}else{A("No need to prevent default click behavior")}if(a.support.touch){A("Not converting click to a tap event because touch handler is on the job")}else{A("Converting click event to a tap event because touch handlers are not present or off");a(W.target).trigger("tap",W)}}function c(aa,X,Z,W){A();if(X.length===0){a.fn.unselect();A("Target element is missing.");return false}if(X.hasClass("current")){a.fn.unselect();A("You are already on the page you are trying to navigate to.");return false}a(":focus").blur();aa.trigger("pageAnimationStart",{direction:"out"});X.trigger("pageAnimationStart",{direction:"in"});if(a.support.animationEvents&&Z&&m.useAnimations){U=false;if(!a.support.transform3d&&Z.is3d){Z.name=m.fallback2dAnimation}var V;if(W){if(Z.name.indexOf("left")>0){V=Z.name.replace(/left/,"right")}else{if(Z.name.indexOf("right")>0){V=Z.name.replace(/right/,"left")}else{if(Z.name.indexOf("up")>0){V=Z.name.replace(/up/,"down")}else{if(Z.name.indexOf("down")>0){V=Z.name.replace(/down/,"up")}else{V=Z.name}}}}}else{V=Z.name}aa.bind("webkitAnimationEnd",Y);aa.bind("webkitTransitionEnd",Y);scrollTo(0,0);X.addClass(V+" in current");aa.addClass(V+" out")}else{X.addClass("current");Y()}function Y(ab){A();if(a.support.animationEvents&&Z&&m.useAnimations){aa.unbind("webkitAnimationEnd",Y);aa.unbind("webkitTransitionEnd",Y);aa.removeClass(V+" out current");X.removeClass(V+" in")}else{aa.removeClass(V+" out current")}j=X;if(W){J.shift()}else{l(j,Z)}aa.unselect();e=(new Date()).getTime();n(j.attr("id"));U=true;X.trigger("pageAnimationEnd",{direction:"in",animation:Z});aa.trigger("pageAnimationEnd",{direction:"out",animation:Z})}return true}function R(){A();return v}function h(){A();if(J.length<1){A("History is empty.")}if(J.length===1){A("You are on the first panel.")}var W=J[0],V=J[1];if(c(W.page,V.page,W.animation,true)){return z}else{A("Could not go back.");return false}}function N(Z,aa,X){A();if(X){f("The reverse parameter of the goTo() function has been deprecated.")}var ab=J[0].page;if(typeof aa==="string"){for(var Y=0,V=S.length;Y<V;Y++){if(S[Y].name===aa){aa=S[Y];break}}}if(typeof(Z)==="string"){var W=a(Z);if(W.length<1){d(Z,{animation:aa});return}else{Z=W}}if(c(ab,Z,aa)){return z}else{A("Could not animate pages.");return false}}function Q(V){A();if(location.hash===J[0].hash){A("We are on the right panel")}else{A("We are not on the right panel");if(location.hash===J[1].hash){h()}else{A(location.hash+" !== "+J[1].hash)}}}function P(V){A();m=a.extend({},F,V);if(m.preloadImages){for(var W=m.preloadImages.length-1;W>=0;W--){(new Image()).src=m.preloadImages[W]}}var X=(m.addGlossToIcon)?"":"-precomposed";if(m.icon){s+='<link rel="apple-touch-icon'+X+'" href="'+m.icon+'" />'}if(m.iconPad){s+='<link rel="apple-touch-icon'+X+'" sizes="72x72" href="'+m.iconPad+'" />'}if(m.icon4){s+='<link rel="apple-touch-icon'+X+'" sizes="114x114" href="'+m.icon4+'" />'}if(m.startupScreen){s+='<link rel="apple-touch-startup-image" href="'+m.startupScreen+'" />'}if(m.fixedViewport){s+='<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"/>'}if(m.fullScreen){s+='<meta name="apple-mobile-web-app-capable" content="yes" />';if(m.statusBar){s+='<meta name="apple-mobile-web-app-status-bar-style" content="'+m.statusBar+'" />'}}if(s){t.prepend(s)}}function C(V,W){A();var X=null;a(V).each(function(Z,aa){var Y=a(this);if(!Y.attr("id")){Y.attr("id","page-"+(++I))}a("#"+Y.attr("id")).remove();E.trigger("pageInserted",{page:Y.appendTo(E)});if(Y.hasClass("current")||!X){X=Y}});if(X!==null){N(X,W);return X}else{return false}}function B(V){var W=(new Date()).getTime()-e;if(W<k){return false}}function g(){A();v=Math.abs(window.orientation)==90?"landscape":"portrait";E.removeClass("portrait landscape").addClass(v).trigger("turn",{orientation:v})}function n(V){A();V=V.replace(/^#/,""),location.hash="#"+V}function d(V,W){A();var Y={data:null,method:"GET",animation:null,callback:null,$referrer:null};var X=a.extend({},Y,W);if(V!="#"){a.ajax({url:V,data:X.data,type:X.method,success:function(Z,ab){var aa=C(Z,X.animation);if(aa){if(X.method=="GET"&&m.cacheGetRequests===true&&X.$referrer){X.$referrer.attr("href","#"+aa.attr("id"))}if(X.callback){X.callback(true)}}},error:function(Z){if(X.$referrer){X.$referrer.unselect()}if(X.callback){X.callback(false)}}})}else{if(X.$referrer){X.$referrer.unselect()}}}function q(W,X){A();a(":focus").blur();W.preventDefault();var V=(typeof(W)==="string")?a(W).eq(0):(W.target?a(W.target):a(W));A(V.attr("action"));if(V.length&&V.is(m.formSelector)&&V.attr("action")){d(V.attr("action"),{data:V.serialize(),method:V.attr("method")||"POST",animation:S[0]||null,callback:X});return false}return false}function L(X){A();var W=X.closest("form");if(W.length===0){A("No parent form found")}else{A("About to submit parent form");var V=a.Event("submit");V.preventDefault();W.trigger(V);return false}return true}function p(){A();return(typeof WebKitAnimationEvent!="undefined")}function G(){A();return(typeof WebKitCSSMatrix!="undefined")}function K(){A();if(typeof TouchEvent!="undefined"){if(window.navigator.userAgent.indexOf("Mobile")>-1){return true}else{return false}}else{return false}}function D(){A();var X,W,Y,Z,V;X=document.getElementsByTagName("head")[0];W=document.body;Y=document.createElement("style");Y.textContent="@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){#jqtTestFor3dSupport{height:3px}}";Z=document.createElement("div");Z.id="jqtTestFor3dSupport";X.appendChild(Y);W.appendChild(Z);V=Z.offsetHeight===3;Y.parentNode.removeChild(Y);Z.parentNode.removeChild(Z);return V}function H(ab){A();if(!U){A("Tap is not ready");return false}var X=a(ab.target);if(!X.is(i.join(", "))){var X=a(ab.target).closest(i.join(", "))}if(!X.length||!X.attr("href")){A("Could not find a link related to tapped element");return false}var aa=X.attr("target"),Z=X.attr("hash"),Y=null;if(X.isExternalLink()){X.unselect();return true}else{if(X.is(m.backSelector)){h(Z)}else{if(X.is(m.submitSelector)){L(X)}else{if(aa==="_webapp"){window.location=X.attr("href");return false}else{if(X.attr("href")==="#"){X.unselect();return true}else{for(var W=0,V=S.length;W<V;W++){if(X.is(S[W].selector)){Y=S[W];break}}if(!Y){f("Animation could not be found. Using slideleft.");Y="slideleft"}if(Z&&Z!=="#"){X.addClass("active");N(a(Z).data("referrer",X),Y,X.hasClass("reverse"));return false}else{X.addClass("loading active");d(X.attr("href"),{animation:Y,callback:function(){X.removeClass("loading");setTimeout(a.fn.unselect,250,X)},$referrer:X});return false}}}}}}}function u(af){A();if(!U){A("TouchStart handler aborted because tap is not ready");af.preventDefault();return false}var aj=a(af.target);if(!aj.length){A("Could not find target of touchstart event.");return}var X=(new Date).getTime(),V=null,Y=null,ab,ad,ac,aa=0,Z=0,ae=0;if(event.changedTouches&&event.changedTouches.length){ab=event.changedTouches[0];ad=ab.pageX;ac=ab.pageY}aj.bind("touchmove",ag).bind("touchend",W).bind("touchcancel",ah);V=setTimeout(function(){aj.makeActive()},m.hoverDelay);Y=setTimeout(function(){aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah);aj.unselect();clearTimeout(V);aj.trigger("press")},m.pressDelay);function ah(ak){A();clearTimeout(V);aj.unselect();aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah)}function W(ak){A();aj.unbind("touchend",W).unbind("touchcancel",ah);clearTimeout(V);clearTimeout(Y);if(Math.abs(aa)<m.moveThreshold&&Math.abs(Z)<m.moveThreshold&&ae<m.pressDelay){aj.trigger("tap",ak)}else{aj.unselect()}}function ag(an){ai();var am=Math.abs(aa);var ak=Math.abs(Z);var al;if(am>ak&&(am>35)&&ae<1000){if(aa<0){al="left"}else{al="right"}aj.unbind("touchmove",ag).unbind("touchend",W).unbind("touchcancel",ah);aj.trigger("swipe",{direction:al,deltaX:aa,deltaY:Z})}aj.unselect();clearTimeout(V);if(am>m.moveThreshold||ak>m.moveThreshold){clearTimeout(Y)}}function ai(){var ak=event.changedTouches[0]||null;aa=ak.pageX-ad;Z=ak.pageY-ac;ae=(new Date).getTime()-X}}function r(V){A();if(V!==undefined){if(V===true){if(K()){a.support.touch=true}else{f("This device does not support touch events")}}else{a.support.touch=false}}return a.support.touch}P(w);a(document).ready(function(){a.support.animationEvents=p();a.support.cssMatrix=G();a.support.touch=K()&&m.useFastTouch;a.support.transform3d=D();if(!a.support.touch){f("This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable.")}if(!a.support.transform3d){f("This device does not support 3d animation. 2d animations will be used instead.")}a.fn.isExternalLink=function(){var Z=a(this);return(Z.attr("target")=="_blank"||Z.attr("rel")=="external"||Z.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]'))};a.fn.makeActive=function(){return a(this).addClass("active")};a.fn.press=function(Z){if(a.isFunction(Z)){return a(this).live("press",Z)}else{return a(this).trigger("press")}};a.fn.swipe=function(Z){if(a.isFunction(Z)){return a(this).live("swipe",Z)}else{return a(this).trigger("swipe")}};a.fn.tap=function(Z){if(a.isFunction(Z)){return a(this).live("tap",Z)}else{return a(this).trigger("tap")}};a.fn.unselect=function(Z){if(Z){Z.removeClass("active")}else{a(".active").removeClass("active")}};for(var W=0,V=O.length;W<V;W++){var X=O[W];if(a.isFunction(X)){a.extend(z,X(z))}}if(m.cubeSelector){f("NOTE: cubeSelector has been deprecated. Please use cubeleftSelector instead.");m.cubeleftSelector=m.cubeSelector}if(m.flipSelector){f("NOTE: flipSelector has been deprecated. Please use flipleftSelector instead.");m.flipleftSelector=m.flipSelector}if(m.slideSelector){f("NOTE: slideSelector has been deprecated. Please use slideleftSelector instead.");m.slideleftSelector=m.slideSelector}for(var W=0,V=F.animations.length;W<V;W++){var Y=F.animations[W];if(m[Y.name+"Selector"]!==undefined){Y.selector=m[Y.name+"Selector"]}b(Y)}i.push("input");i.push(m.touchSelector);i.push(m.backSelector);i.push(m.submitSelector);a(i.join(", ")).css("-webkit-touch-callout","none");E=a("#jqt");if(E.length===0){f('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.');E=a("body").attr("id","jqt")}if(a.support.transform3d){E.addClass("supports3d")}if(m.fullScreenClass&&window.navigator.standalone==true){E.addClass(m.fullScreenClass+" "+m.statusBar)}if(window.navigator.userAgent.match(/Android/ig)){E.addClass("android")}a(window).bind("hashchange",Q);E.bind("touchstart",u).bind("click",o).bind("mousedown",B).bind("orientationchange",g).bind("submit",q).bind("tap",H).trigger("orientationchange");if(a("#jqt > .current").length==0){j=a("#jqt > *:first")}else{j=a("#jqt > .current:first");a("#jqt > .current").removeClass("current")}a(j).addClass("current");M=a(j).attr("id");n(M);l(j);scrollTo(0,0);a("#jqt > *").css("minHeight",window.innerHeight)});z={addAnimation:b,animations:S,getOrientation:R,goBack:h,goTo:N,hist:J,settings:m,submitForm:q,support:a.support,useFastTouch:r};return z};a.jQTouch.prototype.extensions=[];a.jQTouch.addExtension=function(b){a.jQTouch.prototype.extensions.push(b)}})(jQuery);(function(a){a.fn.transition=function(c,b){return this.each(function(){var e=a(this);var h={speed:"300ms",callback:null,ease:"ease-in-out"};var g=a.extend({},h,b);if(g.speed===0){e.css(c);window.setTimeout(g.callback,0)}else{if(a.browser.safari){var f=[];for(var d in c){f.push(d)}e.css({webkitTransitionProperty:f.join(", "),webkitTransitionDuration:g.speed,webkitTransitionTimingFunction:g.ease});if(g.callback){e.one("webkitTransitionEnd",g.callback)}setTimeout(function(i){i.css(c)},0,e)}else{e.animate(c,g.speed,g.callback)}}})}})(jQuery);var SpinningWheel={cellHeight:44,friction:0.003,slotData:[],handleEvent:function(a){if(a.type=="touchstart"){this.lockScreen(a);if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapDown(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollStart(a)}}}else{if(a.type=="touchmove"){this.lockScreen(a);if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapCancel(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollMove(a)}}}else{if(a.type=="touchend"){if(a.currentTarget.id=="sw-cancel"||a.currentTarget.id=="sw-done"){this.tapUp(a)}else{if(a.currentTarget.id=="sw-frame"){this.scrollEnd(a)}}}else{if(a.type=="webkitTransitionEnd"){if(a.target.id=="sw-wrapper"){}else{this.backWithinBoundaries(a)}}else{if(a.type=="orientationchange"){this.onOrientationChange(a)}else{if(a.type=="scroll"){this.onScroll(a)}}}}}}},onOrientationChange:function(a){window.scrollTo(0,0);this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px";this.calculateSlotsWidth()},onScroll:function(a){this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px"},lockScreen:function(a){a.preventDefault();a.stopPropagation()},reset:function(){this.slotEl=[];this.activeSlot=null;this.swWrapper=undefined;this.swSlotWrapper=undefined;this.swSlots=undefined;this.swFrame=undefined},calculateSlotsWidth:function(){var b=this.swSlots.getElementsByTagName("div");for(var a=0;a<b.length;a+=1){this.slotEl[a].slotWidth=b[a].offsetWidth}},create:function(){var d,a,b,c,e;this.reset();e=document.createElement("div");e.id="sw-wrapper";e.style.top=window.innerHeight+window.pageYOffset+"px";e.style.webkitTransitionProperty="-webkit-transform";e.innerHTML='<div id="sw-slots-wrapper"><div id="sw-slots"></div></div><div id="sw-frame"></div>';document.body.appendChild(e);this.swWrapper=e;this.swSlotWrapper=document.getElementById("sw-slots-wrapper");this.swSlots=document.getElementById("sw-slots");this.swFrame=document.getElementById("sw-frame");for(a=0;a<this.slotData.length;a+=1){c=document.createElement("ul");b="";for(d in this.slotData[a].values){b+="<li>"+this.slotData[a].values[d]+"</li>"}c.innerHTML=b;e=document.createElement("div");e.className=this.slotData[a].style;e.appendChild(c);this.swSlots.appendChild(e);c.slotPosition=a;c.slotYPosition=0;c.slotWidth=0;c.slotMaxScroll=this.swSlotWrapper.clientHeight-c.clientHeight-86;c.style.webkitTransitionTimingFunction="cubic-bezier(0, 0, 0.2, 1)";this.slotEl.push(c);if(this.slotData[a].defaultValue){this.scrollToValue(a,this.slotData[a].defaultValue)}}this.calculateSlotsWidth();document.addEventListener("touchmove",this,false);window.addEventListener("orientationchange",this,true);window.addEventListener("scroll",this,true);document.getElementById("sw-done").addEventListener("touchstart",this,false);this.swFrame.addEventListener("touchstart",this,false)},open:function(){this.create();this.swWrapper.style.webkitTransitionTimingFunction="ease-out";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, -210px, 0)"},destroy:function(){this.swWrapper.removeEventListener("webkitTransitionEnd",this,false);this.swFrame.removeEventListener("touchstart",this,false);document.getElementById("sw-done").removeEventListener("touchstart",this,false);document.removeEventListener("touchmove",this,false);window.removeEventListener("orientationchange",this,true);window.removeEventListener("scroll",this,true);this.slotData=[];this.cancelAction=function(){return false};this.cancelDone=function(){return true};this.reset();document.body.removeChild(document.getElementById("sw-wrapper"))},close:function(){this.swWrapper.style.webkitTransitionTimingFunction="ease-in";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, 0, 0)";this.swWrapper.addEventListener("webkitTransitionEnd",this,false)},addSlot:function(b,d,a){if(!d){d=""}d=d.split(" ");for(var c=0;c<d.length;c+=1){d[c]="sw-"+d[c]}d=d.join(" ");var e={values:b,style:d,defaultValue:a};this.slotData.push(e)},getSelectedValues:function(){var c,f,d,a,e=[],b=[];for(d in this.slotEl){this.slotEl[d].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[d].style.webkitTransitionDuration="0";if(this.slotEl[d].slotYPosition>0){this.setPosition(d,0)}else{if(this.slotEl[d].slotYPosition<this.slotEl[d].slotMaxScroll){this.setPosition(d,this.slotEl[d].slotMaxScroll)}}c=-Math.round(this.slotEl[d].slotYPosition/this.cellHeight);f=0;for(a in this.slotData[d].values){if(f==c){e.push(a);b.push(this.slotData[d].values[a]);break}f+=1}}return{keys:e,values:b}},setPosition:function(b,a){this.slotEl[b].slotYPosition=a;this.slotEl[b].style.webkitTransform="translate3d(0, "+a+"px, 0)"},scrollStart:function(c){var d=c.targetTouches[0].clientX-this.swSlots.offsetLeft;var f=0;for(var a=0;a<this.slotEl.length;a+=1){f+=this.slotEl[a].slotWidth;if(d<f){this.activeSlot=a;break}}if(this.slotData[this.activeSlot].style.match("readonly")){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);return false}this.slotEl[this.activeSlot].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[this.activeSlot].style.webkitTransitionDuration="0";var b=window.getComputedStyle(this.slotEl[this.activeSlot]).webkitTransform;b=new WebKitCSSMatrix(b).m42;if(b!=this.slotEl[this.activeSlot].slotYPosition){this.setPosition(this.activeSlot,b)}this.startY=c.targetTouches[0].clientY;this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=c.timeStamp;this.swFrame.addEventListener("touchmove",this,false);this.swFrame.addEventListener("touchend",this,false);return true},scrollMove:function(b){var a=b.targetTouches[0].clientY-this.startY;if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){a/=2}this.setPosition(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition+a);this.startY=b.targetTouches[0].clientY;if(b.timeStamp-this.scrollStartTime>80){this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=b.timeStamp}},scrollEnd:function(f){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){this.scrollTo(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition>0?0:this.slotEl[this.activeSlot].slotMaxScroll);return false}var b=this.slotEl[this.activeSlot].slotYPosition-this.scrollStartY;if(b<this.cellHeight/1.5&&b>-this.cellHeight/1.5){if(this.slotEl[this.activeSlot].slotYPosition%this.cellHeight){this.scrollTo(this.activeSlot,Math.round(this.slotEl[this.activeSlot].slotYPosition/this.cellHeight)*this.cellHeight,"100ms")}return false}var g=f.timeStamp-this.scrollStartTime;var a=(2*b/g)/this.friction;var d=(this.friction/2)*(a*a);if(a<0){a=-a;d=-d}var c=this.slotEl[this.activeSlot].slotYPosition+d;if(c>0){c/=2;a/=3;if(c>this.swSlotWrapper.clientHeight/4){c=this.swSlotWrapper.clientHeight/4}}else{if(c<this.slotEl[this.activeSlot].slotMaxScroll){c=(c-this.slotEl[this.activeSlot].slotMaxScroll)/2+this.slotEl[this.activeSlot].slotMaxScroll;a/=3;if(c<this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4){c=this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4}}else{c=Math.round(c/this.cellHeight)*this.cellHeight}}this.scrollTo(this.activeSlot,Math.round(c),Math.round(a)+"ms");return true},scrollTo:function(c,a,b){this.slotEl[c].style.webkitTransitionDuration=b?b:"100ms";this.setPosition(c,a?a:0);if(this.slotEl[c].slotYPosition>0||this.slotEl[c].slotYPosition<this.slotEl[c].slotMaxScroll){this.slotEl[c].addEventListener("webkitTransitionEnd",this,false)}},scrollToValue:function(e,d){var c,b,a;this.slotEl[e].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[e].style.webkitTransitionDuration="0";b=0;for(a in this.slotData[e].values){if(a==d){c=b*this.cellHeight;this.setPosition(e,c);break}b-=1}},backWithinBoundaries:function(a){a.target.removeEventListener("webkitTransitionEnd",this,false);this.scrollTo(a.target.slotPosition,a.target.slotYPosition>0?0:a.target.slotMaxScroll,"150ms");return false},tapDown:function(a){a.currentTarget.addEventListener("touchmove",this,false);a.currentTarget.addEventListener("touchend",this,false);a.currentTarget.className="sw-pressed"},tapCancel:function(a){a.currentTarget.removeEventListener("touchmove",this,false);a.currentTarget.removeEventListener("touchend",this,false);a.currentTarget.className=""},tapUp:function(a){this.tapCancel(a);if(a.currentTarget.id=="sw-cancel"){this.cancelAction()}else{this.doneAction()}},setCancelAction:function(a){this.cancelAction=a},setDoneAction:function(a){this.doneAction=a},cancelAction:function(){return false},cancelDone:function(){return true}};(function(){var o=this;var j=Array();var p=Array();function f(u,v){for(var t in v){u[t]=v[t]}}function h(v,t,u){v.style.width=t.toString()+"px";v.style.height=u.toString()+"px"}function s(u,t,v){u.style.left=Math.round(t).toString()+"px";u.style.top=Math.round(v).toString()+"px"}TrayController=function(){return this};TrayController.prototype.init=function(t){this.currentX=0;this.elem=t};TrayController.prototype.touchstart=function(t){this.startX=t.touches[0].pageX-this.currentX;this.touchMoved=false;window.addEventListener("touchmove",this,true);window.addEventListener("touchend",this,true);this.elem.style.webkitTransitionDuration="0s"};TrayController.prototype.touchmove=function(t){this.touchMoved=true;this.lastX=this.currentX;this.lastMoveTime=new Date();this.currentX=event.touches[0].pageX-this.startX;this.delegate.update(this.currentX)};TrayController.prototype.touchend=function(u){window.removeEventListener("touchmove",this,true);window.removeEventListener("touchend",this,true);this.elem.style.webkitTransitionDuration="0.4s";if(this.touchMoved){var v=this.currentX-this.lastX;var t=(new Date())-this.lastMoveTime+1;this.currentX=this.currentX+v*200/t;this.delegate.updateTouchEnd(this)}else{this.delegate.clicked(this.currentX)}};TrayController.prototype.handleEvent=function(t){this[t.type](t);t.preventDefault()};const e=150;const n=e/2;const d=70;const a=n/2;const g=e;const b=e/3;const k="rotateY("+(-d)+"deg)";const c="rotateY("+d+"deg)";const i="translateZ("+g+"px)";FlowDelegate=function(){this.cells=new Array();this.transforms=new Array()};FlowDelegate.prototype.init=function(t){this.elem=t};FlowDelegate.prototype.updateTouchEnd=function(t){this.lastFocus=undefined;var u=this.getFocusedCell(t.currentX);t.currentX=-u*n;this.update(t.currentX)};FlowDelegate.prototype.clicked=function(u){var v=-Math.round(u/n);var t=this.cells[v];galleryCell=v};FlowDelegate.prototype.getFocusedCell=function(t){var u=-Math.round(t/n);return Math.min(Math.max(u,0),this.cells.length-1)};FlowDelegate.prototype.transformForCell=function(u,w,z){var t=(w*n);var v=t+z;if((v<a)&&(v>=-a)){return i+" translateX("+t+"px)"}else{if(v>0){return"translateX("+(t+b)+"px) "+k}else{return"translateX("+(t-b)+"px) "+c}}};FlowDelegate.prototype.setTransformForCell=function(t,v,u){if(this.transforms[v]!=u){t.style.webkitTransform=u;this.transforms[v]=u}};FlowDelegate.prototype.update=function(u){this.elem.style.webkitTransform="translateX("+(u)+"px)";for(var v in this.cells){var t=this.cells[v];this.setTransformForCell(t,v,this.transformForCell(t,v,u));v+=1}};var l=new TrayController();var q=new FlowDelegate();o.zflow=function(v,u){var z=document.querySelector(u);l.init(z);q.init(z);l.delegate=q;var t={top:Math.round(-e*0.65)+"px",left:Math.round(-e/2)+"px",width:e+"px",height:Math.round(e*1.5)+"px",opacity:0,};var w=0;function A(){var B=document.createElement("div");var F=document.createElement("img");var D=document.createElement("canvas");var E=document.createElement("a");var C=document.createElement("caption");B.className="cell";B.appendChild(E);E.appendChild(F);B.appendChild(D);B.appendChild(C);F.src=v[w];j[w]=v[w];E.href="show_image?fName="+v[w];E.className="slide-right";o.afnc=function(){var G=F.width;var J=F.height;var H=Math.min(e/J,e/G);G*=H;J*=H;h(F,G,J);f(B.style,t);s(F,(e-G)/2,e-J);s(D,(e-G)/2,e);s(C,(e-G)/2,e+10);m(F,G,J,D);var I=v[w].match(/(.*)[\/\\]([^\/\\]+)\.\w+$/)[2];I=I.replace(/_/g," ");I=I.replace(/(^|\s)([a-z])/g,function(K,M,L){return M+L.toUpperCase()});p[w]=I;r(C,G,w);q.setTransformForCell(B,q.cells.length,q.transformForCell(B,q.cells.length,l.currentX));q.cells.push(B);z.appendChild(B);B.style.opacity=1;if(w<(v.length-1)){w++;A()}else{window.setTimeout(function(){window.scrollTo(0,0)},100);galleryInit=1}};F.addEventListener("load",afnc,true)}A();z.addEventListener("touchstart",l,false)};o.zflowCleanup=function(t){var u=document.querySelector(t);if(u){if(u.childNodes.length>0){q.transforms.length=0;q.cells.length=0;while(u.hasChildNodes()){var v=u.childNodes[0].childNodes[0].childNodes[0];v.removeEventListener("load",afnc,true);u.removeChild(u.childNodes[0])}var w=document.getElementById("gallery");if(w){w.parentNode.removeChild(w);galleryInit=0;galleryCell=0}}}};o.zflowGetImageSource=function(t,u){var v=document.querySelector(t);var w="";if(v){if(v.childNodes.length>0){while(v.hasChildNodes()){w=v.childNodes[0].childNodes[0].childNodes[u].src}}}return w};function r(u,t,v){u.width=t;u.innerHTML=p[v]}function m(z,u,A,v){v.width=u;v.height=A/2;var t=v.getContext("2d");t.save();t.translate(0,A-1);t.scale(1,-1);t.drawImage(z,0,0,u,A);t.restore();t.globalCompositeOperation="destination-out";var w=t.createLinearGradient(0,0,0,A/2);w.addColorStop(1,"rgba(255, 255, 255, 1.0)");w.addColorStop(0,"rgba(255, 255, 255, 0.5)");t.fillStyle=w;t.fillRect(0,0,u,A/2)}})();var now=new Date();var url_month="month";var url_event="events.htm";function getCalendar(e,c,b){url_month=e;url_event=c;var f=b.getDate();var a=b.getMonth()+1;var g=b.getFullYear();$.get(url_month,{month:a,year:g},function(d){$("#ical").empty();$(d).appendTo("#ical");setBindings();setToday();setSelectedAndLoadEvents(b)})}function getEvents(b){var c=b.getDate();var a=b.getMonth()+1;var e=b.getFullYear();$.get(url_event,{day:c,month:a,year:e},function(d){$("#ical .events").empty();$(d).appendTo("#ical .events")})}function getNoEvents(){var a="<li class='no-event'>No Events</li>";$("#ical .events").empty();$(a).appendTo("#ical .events")}function setBindings(){$("#ical td").bind("click",function(){var b=$(this).prop("class");var a=getClickedDate($(this));RemoveSelectedCell();setToday();if(b.indexOf("date_has_event")!=-1||b.indexOf("today_date_has_event")!=-1){$(this).prop("class","selected_date_has_event");getEvents(a)}if(b==""||b.indexOf("today")!=-1){$(this).prop("class","selected");getNoEvents()}if(b.indexOf("prevmonth")!=-1||b.indexOf("nextmonth")!=-1){getCalendar(url,a)}});$("#ical .bottom-bar .bottom-bar-today").bind("click",function(){getCalendar(url_month,url_event,now)});$("#ical .goto-prevmonth").bind("click",function(){loadPrevNextMonth(-1)});$("#ical .goto-nextmonth").bind("click",function(){loadPrevNextMonth(1)})}function RemoveSelectedCell(){$("#ical .selected_date_has_event").removeClass("selected_date_has_event");$("#ical .selected").removeClass("selected")}function getClickedDate(b){var c=$(b).find("input").val();var a=getDateFromHiddenField(c);return a}function loadPrevNextMonth(c){var b=$("#ical .selected").text();if(b==""){b=$("#ical .selected_date_has_event").text()}var a=parseInt($("#ical > #month").val());var e=$("#ical > #year").val();var d=new Date(e,a-1,b);if(c==1){d.nextMonth()}else{d.prevMonth()}getCalendar(url_month,url_event,d)}function setToday(){$("#ical :hidden").each(function(c){var a=getDateFromHiddenField($(this).val());if(!isNaN(a)){var h=now;var j=now.getDate();var i=a.getDate();var g=now.getMonth();var f=a.getMonth();var e=now.getFullYear();var d=a.getFullYear();if(now.getDate()==a.getDate()&&now.getMonth()==a.getMonth()&&now.getFullYear()==a.getFullYear()){var b=$(this).closest("td");if($(b).attr("class")=="date_has_event"){$(b).prop("class","today_date_has_event")}else{$(b).prop("class","today")}}}})}function getDateFromHiddenField(c){var b=c.split("-");return new Date(b[0],b[1]-1,b[2])}function setSelectedAndLoadEvents(a){RemoveSelectedCell();$("#ical td").each(function(c){var d=$(this).prop("class");var b=getClickedDate($(this));if((d!="prevmonth"&&d!="nextmonth")&&a.getDate()==b.getDate()&&a.getMonth()==b.getMonth()&&a.getFullYear()==b.getFullYear()){if(d=="date_has_event"){$(this).prop("class","selected_date_has_event");getEvents(a)}else{$(this).prop("class","selected");getNoEvents()}}});setToday()}function trim(b,a){return ltrim(rtrim(b,a),a)}function ltrim(b,a){a=a||"\\s";return b.replace(new RegExp("^["+a+"]+","g"),"")}function rtrim(b,a){a=a||"\\s";return b.replace(new RegExp("["+a+"]+$","g"),"")}function dateAddExtention(c,a){var b=new String();c=c.toLowerCase();if(isNaN(a)){throw"The second parameter must be a number. \n You passed: "+a;return false}a=new Number(a);switch(c.toLowerCase()){case"yyyy":this.setFullYear(this.getFullYear()+a);break;case"q":this.setMonth(this.getMonth()+(a*3));break;case"m":this.setMonth(this.getMonth()+a);break;case"y":case"d":case"w":this.setDate(this.getDate()+a);break;case"ww":this.setDate(this.getDate()+(a*7));break;case"h":this.setHours(this.getHours()+a);break;case"n":this.setMinutes(this.getMinutes()+a);break;case"s":this.setSeconds(this.getSeconds()+a);break;case"ms":this.setMilliseconds(this.getMilliseconds()+a);break;default:throw"The first parameter must be a string from this list: \nyyyy, q, m, y, d, w, ww, h, n, s, or ms. You passed: "+c;return false}return this}Date.prototype.dateAdd=dateAddExtention;function prevMonth(){var a=this.getMonth();this.setMonth(a-1);if(this.getMonth()!=a-1&&(this.getMonth()!=11||(a==11&&this.getDate()==1))){this.setDate(0)}}function nextMonth(){var a=this.getMonth();this.setMonth(a+1);if(this.getMonth()!=a+1&&this.getMonth()!=0){this.setDate(0)}}Date.prototype.nextMonth=nextMonth;Date.prototype.prevMonth=prevMonth;(function(c){c.fn.drag=function(f,e,d){if(e){this.bind("dragstart",f)}if(d){this.bind("dragend",d)}return !f?this.trigger("mousedown",{which:1}):this.bind("drag",e?e:f)};var b=c.event.special.drag={distance:0,setup:function(d){d=c.extend({distance:b.distance},d||{});c.event.add(this,"mousedown",b.handler,d)},teardown:function(){c.event.remove(this,"mousedown",b.handler);if(this==b.dragging){b.dragging=b.proxy=null}a(this,true)},handler:function(e){var d;if(e.data.elem){e.dragTarget=e.data.elem;e.dragProxy=b.proxy||e.dragTarget;e.cursorOffsetX=e.data.x-e.data.left;e.cursorOffsetY=e.data.y-e.data.top;e.offsetX=e.pageX-e.cursorOffsetX;e.offsetY=e.pageY-e.cursorOffsetY}switch(e.type){case !b.dragging&&e.which==1&&"mousedown":c.extend(e.data,c(this).offset(),{x:e.pageX,y:e.pageY,elem:this,dist2:Math.pow(e.data.distance,2)});c.event.add(document.body,"mousemove mouseup",b.handler,e.data);a(this,false);return false;case !b.dragging&&"mousemove":if(Math.pow(e.pageX-e.data.x,2)+Math.pow(e.pageY-e.data.y,2)<e.data.dist2){break}b.dragging=e.dragTarget;e.type="dragstart";d=c.event.handle.call(b.dragging,e);b.proxy=c(d)[0]||b.dragging;if(d!==false){break}a(b.dragging,true);b.dragging=b.proxy=null;case"mousemove":if(b.dragging){e.type="drag";d=c.event.handle.call(b.dragging,e);if(c.event.special.drop){c.event.special.drop.allowed=(d!==false);c.event.special.drop.handler(e)}if(d!==false){break}e.type="mouseup"}case"mouseup":c.event.remove(document.body,"mousemove mouseup",b.handler);if(b.dragging){if(c.event.special.drop){c.event.special.drop.handler(e)}e.type="dragend";c.event.handle.call(b.dragging,e);a(b.dragging,true);b.dragging=b.proxy=null;e.data={}}break}}};function a(e,d){if(!e){return}e.unselectable=d?"off":"on";e.onselectstart=function(){return d};if(e.style){e.style.MozUserSelect=d?"":"none"}}})(jQuery);(function(b){b.fn.drop=function(e,d,c){if(d){this.bind("dropstart",e)}if(c){this.bind("dropend",c)}return !e?this.trigger("drop"):this.bind("drop",d?d:e)};b.dropManage=function(c){b.extend(a,{filter:"*",data:[],tolerance:null},c||{});return a.$elements.filter(a.filter).each(function(d){a.data[d]=a.locate(this)})};var a=b.event.special.drop={delay:100,mode:"intersect",$elements:b([]),data:[],setup:function(){a.$elements=a.$elements.add(this);a.data[a.data.length]=a.locate(this)},teardown:function(){var c=this;a.$elements=a.$elements.not(this);a.data=b.grep(a.data,function(d){return(d.elem!==c)})},handler:function(d){var c=null,e;d.dropTarget=a.dropping||undefined;if(a.data.length&&d.dragTarget){switch(d.type){case"drag":a.event=d;if(!a.timer){a.timer=setTimeout(a.tolerate,20)}break;case"mouseup":a.timer=clearTimeout(a.timer);if(!a.dropping){break}if(a.allowed){d.type="drop";e=b.event.handle.call(a.dropping,d)}c=false;case a.dropping&&"dropstart":d.type="dropend";c=c===null&&a.allowed?true:false;case a.dropping&&"dropend":b.event.handle.call(a.dropping,d);a.dropping=null;if(e===false){d.dropTarget=undefined}if(!c){break}d.type="dropstart";case a.allowed&&"dropstart":d.dropTarget=this;a.dropping=b.event.handle.call(this,d)!==false?this:null;break}}},tolerate:function(){var d=0,c,e,f=[a.event.pageX,a.event.pageY],g=a.locate(a.event.dragProxy);a.tolerance=a.tolerance||a.modes[a.mode];do{if(c=a.data[d]){if(a.tolerance){e=a.tolerance.call(a,a.event,g,c)}else{if(a.contains(c,f)){e=c}}}}while(++d<a.data.length&&!e);a.event.type=(e=e||a.best)?"dropstart":"dropend";if(a.event.type=="dropend"||e.elem!=a.dropping){a.handler.call(e?e.elem:a.dropping,a.event)}if(a.last&&f[0]==a.last.pageX&&f[1]==a.last.pageY){delete a.timer}else{a.timer=setTimeout(a.tolerate,a.delay)}a.last=a.event;a.best=null},locate:function(f){var d=b(f),g=d.offset(),e=d.outerHeight(),c=d.outerWidth();return{elem:f,L:g.left,R:g.left+c,T:g.top,B:g.top+e,W:c,H:e}},contains:function(c,d){return((d[0]||d.L)>=c.L&&(d[0]||d.R)<=c.R&&(d[1]||d.T)>=c.T&&(d[1]||d.B)<=c.B)},modes:{intersect:function(d,c,e){return this.contains(e,[d.pageX,d.pageY])?e:this.modes.overlap.apply(this,arguments)},overlap:function(d,c,e){e.overlap=Math.max(0,Math.min(e.B,c.B)-Math.max(e.T,c.T))*Math.max(0,Math.min(e.R,c.R)-Math.max(e.L,c.L));if(e.overlap>((this.best||{}).overlap||0)){this.best=e}return null},fit:function(d,c,e){return this.contains(e,c)?e:null},middle:function(d,c,e){return this.contains(e,[c.L+c.W/2,c.T+c.H/2])?e:null}}}})(jQuery);var _target=null,_dragx=null,_dragy=null,_rotate=null,_resort=null;var _dragging=false,_sizing=false,_animate=false;var _rotating=0,_width=0,_height=0,_left=0,_top=0,_xspeed=0,_yspeed=0;var _zindex=1000;jQuery.fn.touch=function(a){a=jQuery.extend({animate:true,sticky:false,dragx:true,dragy:true,rotate:false,resort:true,scale:false},a);var b=[];b=$.extend({},$.fn.touch.defaults,a);this.each(function(){this.opts=b;this.ontouchstart=touchstart;this.ontouchend=touchend;this.ontouchmove=touchmove;this.ongesturestart=gesturestart;this.ongesturechange=gesturechange;this.ongestureend=gestureend})};function touchstart(a){_target=this.id;_dragx=this.opts.dragx;_dragy=this.opts.dragy;_resort=this.opts.resort;_animate=this.opts.animate;_xspeed=0;_yspeed=0;$(a.changedTouches).each(function(){var c=($("#"+_target).css("left")=="auto")?this.pageX:parseInt($("#"+_target).css("left"));var b=($("#"+_target).css("top")=="auto")?this.pageY:parseInt($("#"+_target).css("top"));if(!_dragging&&!_sizing){_left=(a.pageX-c);_top=(a.pageY-b);_dragging=[_left,_top];if(_resort){_zindex=($("#"+_target).css("z-index")==_zindex)?_zindex:_zindex+1;$("#"+_target).css({zIndex:_zindex})}}})}function touchmove(c){if(_dragging&&!_sizing&&_animate){var a=(isNaN(parseInt($("#"+_target).css("left"))))?0:parseInt($("#"+_target).css("left"));var b=(isNaN(parseInt($("#"+_target).css("top"))))?0:parseInt($("#"+_target).css("top"))}$(c.changedTouches).each(function(){c.preventDefault();_left=(this.pageX-(parseInt($("#"+_target).css("width"))/2));_top=(this.pageY-(parseInt($("#"+_target).css("height"))/2));if(_dragging&&!_sizing){if(_animate){_xspeed=Math.round((_xspeed+Math.round(_left-a))/1.5);_yspeed=Math.round((_yspeed+Math.round(_top-b))/1.5)}if(_dragx||_dragy){$("#"+_target).css({position:"absolute"})}if(_dragx){$("#"+_target).css({left:_left+"px"})}if(_dragy){$("#"+_target).css({top:_top+"px"})}$("#"+_target).css({backgroundColor:"#4B880B"});$("#"+_target+" b").text("WEEEEEEEE!!!!")}})}function touchend(a){$(a.changedTouches).each(function(){if(!a.targetTouches.length){_dragging=false;if(_animate){_left=($("#"+_target).css("left")=="auto")?this.pageX:parseInt($("#"+_target).css("left"));_top=($("#"+_target).css("top")=="auto")?this.pageY:parseInt($("#"+_target).css("top"));var c=(_dragx)?(_left+_xspeed)+"px":_left+"px";var b=(_dragy)?(_top+_yspeed)+"px":_top+"px";if(_dragx||_dragy){$("#"+_target).animate({left:c,top:b},"fast")}}}});$("#"+_target+" b").text("I am sad :(");$("#"+_target).css({backgroundColor:"#0B4188"});setTimeout(changeBack,5000,_target)}function gesturestart(a){_sizing=[$("#"+this.id).css("width"),$("#"+this.id).css("height")]}function gesturechange(a){if(_sizing){_width=(this.opts.scale)?Math.min(parseInt(_sizing[0])*a.scale,300):_sizing[0];_height=(this.opts.scale)?Math.min(parseInt(_sizing[1])*a.scale,300):_sizing[1];_rotate=(this.opts.rotate)?"rotate("+((_rotating+a.rotation)%360)+"deg)":"0deg";$("#"+this.id).css({width:_width+"px",height:_height+"px",webkitTransform:_rotate});$("#"+this.id+" b").text("TRANSFORM!");$("#"+this.id).css({backgroundColor:"#4B880B"})}}function gestureend(a){_sizing=false;_rotating=(_rotating+a.rotation)%360}function changeBack(a){$("#"+a+" b").text("Touch Me :)");$("#"+a).css({backgroundColor:"#999"})}(function(b){var a=this,c=a.jQExtensionsCSS||{};b(a).load(function(){a.scrollTo(0,0);var g=a.innerWidth<a.innerHeight?"profile":"landscape",f=c.toolbarHeight||b("#jqt .toolbar").outerHeight()||45,e={profile:null,landscape:null},d=b.extend({defaults:".horizontal-scroll, .horizontal-scroll .scroll-container, .horizontal-slide, .horizontal-slide .slide-container { width: {width}px; height: 100%; overflow: hidden; padding: 0; } .vertical-scroll > div, .vertical-slide > div { margin: 0 auto; padding-bottom:{paddingBottom}px; } #jqt.fullscreen .vertical-scroll.use-bottom-toolbar > div, #jqt.fullscreen .vertical-slide.use-bottom-toolbar > div { padding-bottom:0px; } .vertical-scroll, .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .vertical-scroll.use-bottom-toolbar, .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }\n",profile:".profile .horizontal-scroll, .profile .horizontal-scroll .scroll-container, .profile .horizontal-slide, .profile .horizontal-slide .slide-container { width: {width}px; } .profile .vertical-scroll, .profile .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .profile .vertical-scroll.use-bottom-toolbar, .profile .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }",landscape:".landscape .horizontal-scroll, .landscape .horizontal-scroll .scroll-container, .landscape .horizontal-slide, .landscape .horizontal-slide .slide-container { width: {width}px; height: 100%; overflow: hidden; padding: 0; } .landscape .vertical-scroll, .landscape .vertical-slide { position: relative; z-index: 1; overflow: hidden; height: {height}px; } .landscape .vertical-scroll.use-bottom-toolbar, .landscape .vertical-slide.use-bottom-toolbar { height: {bottomToolbarHeight}px !important; }"},c.css||{});e[g]=b.extend({paddingBottom:5,width:a.innerWidth,height:a.innerHeight-f,bottomToolbarHeight:a.innerHeight-(f*2)},c[g]||{});e.defaults=b.extend({},e[g],c.defaults||{});b(document.createElement("style")).prop("type","text/css").html(d.defaults.replace(/\{(\w+)\}/g,function(i,h){return h in e.defaults?e.defaults[h]:i})+d[g].replace(/\{(\w+)\}/g,function(i,h){return h in e[g]?e[g][h]:i})).appendTo("head");b(a).one("orientationchange",function(){var h=a.innerWidth<a.innerHeight?"profile":"landscape";e[h]=b.extend({paddingBottom:5,width:a.innerWidth,height:a.innerHeight-f,bottomToolbarHeight:a.innerHeight-(f*2)},c[h]||{});b(document.createElement("style")).prop("type","text/css").html(d[h].replace(/\{(\w+)\}/g,function(j,i){return i in e[h]?e[h][i]:j})).appendTo("head")})})})(jQuery);(function($){$.Chain={version:"0.2",tag:["{","}"],services:{},service:function(name,proto){this.services[name]=proto;$.fn[name]=function(options){if(!this.length){return this}var instance=this.data("chain-"+name);var args=Array.prototype.slice.call(arguments,1);if(!instance){if(options=="destroy"){return this}instance=$.extend({element:this},$.Chain.services[name]);this.data("chain-"+name,instance);if(instance.init){instance.init()}}var result;if(typeof options=="string"&&instance["$"+options]){result=instance["$"+options].apply(instance,args)}else{if(instance.handler){result=instance.handler.apply(instance,[options].concat(args))}else{result=this}}if(options=="destroy"){this.removeData("chain-"+name)}return result}},extend:function(name,proto){if(this.services[name]){this.services[name]=$.extend(this.services[name],proto)}},jobject:function(obj){return obj&&obj.init==$.fn.init},jidentic:function(j1,j2){if(!j1||!j2||j1.length!=j2.length){return false}var a1=j1.get();var a2=j2.get();for(var i=0;i<a1.length;i++){if(a1[i]!=a2[i]){return false}}return true},parse:function(){var $this={};$this.closure=['function($data, $el){var $text = [];\n$text.print = function(text){this.push((typeof text == "number") ? text : ((typeof text != "undefined") ? text : ""));};\nwith($data){\n','}\nreturn $text.join("");}'];$this.textPrint=function(text){return'$text.print("'+text.split("\\").join("\\\\").split("'").join("\\'").split('"').join('\\"')+'");'};$this.scriptPrint=function(text){return"$text.print("+text+");"};$this.parser=function(text){var tag=$.Chain.tag;var opener,closer,closer2=null,result=[];while(text){opener=text.indexOf(tag[0]);closer=opener+text.substring(opener).indexOf(tag[1]);if(opener!=-1){if(text[opener-1]=="\\"){closer2=opener+tag[0].length+text.substring(opener+tag[0].length).indexOf(tag[0]);if(closer2!=opener+tag[0].length-1&&text[closer2-1]=="\\"){closer2=closer2-1}else{if(closer2==opener+tag[0].length-1){closer2=text.length}}result.push($this.textPrint(text.substring(0,opener-1)));result.push($this.textPrint(text.substring(opener,closer2)))}else{closer2=null;if(closer==opener-1){closer=text.length}result.push($this.textPrint(text.substring(0,opener)));result.push($this.scriptPrint(text.substring(opener+tag[0].length,closer)))}text=text.substring((closer2===null)?closer+tag[1].length:closer2)}else{if(text){result.push($this.textPrint(text));text=""}}}return result.join("\n")};return function($text){var $fn=function(){};try{eval("$fn = "+$this.closure[0]+$this.parser($text)+$this.closure[1])}catch(e){throw"Parsing Error"}return $fn}}()}})(jQuery);(function(a){a.Chain.service("update",{handler:function(b){if(typeof b=="function"){return this.bind(b)}else{return this.trigger(b)}},bind:function(b){return this.element.bind("update",b)},trigger:function(b){this.element.items("update");this.element.item("update");this.element.triggerHandler("preupdate",this.element.item());if(b=="hard"){this.element.items(true).each(function(){a(this).update()})}this.element.triggerHandler("update",this.element.item());return this.element}})})(jQuery);(function(a){a.Chain.service("chain",{init:function(){this.anchor=this.element;this.template=this.anchor.html();this.tplNumber=0;this.builder=this.createBuilder();this.plugins={};this.isActive=false;this.destroyers=[];this.element.addClass("chain-element")},handler:function(b){this.element.items("backup");this.element.item("backup");if(typeof b=="object"){this.handleUpdater(b)}else{if(typeof b=="function"){this.handleBuilder(b)}}this.anchor.empty();this.isActive=true;this.element.update();return this.element},handleUpdater:function(h){var b=h.builder;delete h.builder;if(h.anchor){this.setAnchor(h.anchor)}delete h.anchor;var e=h.override;delete h.override;for(var d in h){if(typeof h[d]=="string"){h[d]=a.Chain.parse(h[d])}else{if(typeof h[d]=="object"){for(var c in h[d]){if(typeof h[d][c]=="string"){h[d][c]=a.Chain.parse(h[d][c])}}}}}var f=function(o,p){var n,q;var k=a(this);for(var m in h){if(m=="self"){n=k}else{n=a(m,k)}if(typeof h[m]=="function"){q=h[m].apply(k,[p,n]);if(typeof q=="string"){n.not(":input").html(q).end().filter(":input").val(q)}}else{if(typeof h[m]=="object"){for(var l in h[m]){if(typeof h[m][l]=="function"){q=h[m][l].apply(k,[p,n]);if(typeof q=="string"){if(l=="content"){n.html(q)}else{if(l=="text"){n.text(q)}else{if(l=="value"){n.val(q)}else{if(l=="class"||l=="className"){n.addClass(q)}else{n.prop(l,q)}}}}}}}}}}};var g=this.defaultBuilder;this.builder=function(i){if(b){b.apply(this,[i])}if(!e){g.apply(this)}this.update(f);return false}},handleBuilder:function(b){this.builder=this.createBuilder(b)},defaultBuilder:function(c,b){var d=c?(c.apply(this,[b])!==false):true;if(d){this.bind("update",function(g,h){var e=a(this);for(var f in h){if(typeof h[f]!="object"&&typeof h[f]!="function"){e.find("> ."+f+", *:not(.chain-element) ."+f).each(function(){var i=a(this);if(i.filter(":input").length){i.val(h[f])}else{if(i.filter("img").length){i.prop("src",h[f])}else{i.html(h[f])}}})}}})}},createBuilder:function(b){var c=this.defaultBuilder;return function(d){c.apply(this,[b,d]);return false}},setAnchor:function(b){this.anchor.html(this.template);this.anchor=b==this.element?b:this.element.find(b).eq(0);this.template=this.anchor.html();this.anchor.empty()},$anchor:function(b){if(b){this.element.items("backup");this.element.item("backup");this.setAnchor(b);this.element.update();return this.element}else{return this.anchor}},$template:function(b){if(!arguments.length){return a("<div>").html(this.template).children().eq(this.tplNumber)}if(b=="raw"){return this.template}if(typeof b=="number"){this.tplNumber=b}else{var c=a("<div>").html(this.template).children();var d=c.filter(b).eq(0);if(d.length){this.tplNumber=c.index(d)}else{return this.element}}this.element.items("backup");this.element.item("backup");this.element.update();return this.element},$builder:function(b){if(b){return this.handler(b)}else{return this.builder}},$active:function(){return this.isActive},$plugin:function(b,c){if(c===null){delete this.plugins[b]}else{if(typeof c=="function"){this.plugins[b]=c}else{if(b&&!c){return this.plugins[b]}else{return this.plugins}}}if(typeof c=="function"){this.element.items(true).each(function(){var d=a(this);c.call(d,d.item("root"))})}this.element.update();return this.element},$clone:function(){var c=this.element.prop("id");this.element.prop("id","");var b=this.element.clone().empty().html(this.template);this.element.prop("id",c);return b},$destroy:function(b){this.element.removeClass("chain-element");if(!b){this.element.items("backup");this.element.item("backup");this.element.find(".chain-element").each(function(){a(this).chain("destroy",true)})}this.element.triggerHandler("destroy");this.isActive=false;this.anchor.html(this.template);return this.element}})})(jQuery);(function(a){a.Chain.service("item",{init:function(){this.isActive=false;this.isBuilt=false;this.root=this.element;this.data=false;this.datafn=this.dataHandler},handler:function(b){if(typeof b=="object"){return this.handleObject(b)}else{if(typeof b=="function"){return this.handleFunction(b)}else{return this.handleDefault()}}},handleObject:function(b){this.setData(b);this.isActive=true;this.update();return this.element},handleFunction:function(b){this.datafn=b;return this.element},handleDefault:function(){if(this.isActive){return this.getData()}else{return false}},getData:function(){this.data=this.datafn.call(this.element,this.data);return this.data},setData:function(d){var c;if(a.Chain.jobject(d)&&d.item()){c=a.extend({},d.item())}else{if(a.Chain.jobject(d)){c={}}else{c=d}}this.data=this.datafn.call(this.element,this.data||c,c);if(this.linkElement&&this.linkElement[0]!=d[0]){var b=this.linkFunction();if(a.Chain.jobject(b)&&b.length&&b.item()){b.item(this.data)}}},dataHandler:function(b,c){if(arguments.length==2){return a.extend(b,c)}else{return b}},update:function(){return this.element.update()},build:function(){var b=this.element.chain("template","raw").replace(/jQuery\d+\=\"null\"/gi,"");this.element.chain("anchor").html(b);if(!a.Chain.jidentic(this.root,this.element)){var c=this.root.chain("plugin");for(var d in c){c[d].apply(this.element,[this.root])}}this.element.chain("builder").apply(this.element,[this.root]);this.isBuilt=true},$update:function(){if(this.element.chain("active")&&this.isActive&&!this.isBuilt&&this.getData()){this.build()}return this.element},$replace:function(b){this.data={};this.setData(b);this.isActive=true;this.update();return this.element},$remove:function(b){this.element.chain("destroy");this.element.remove();this.element.item("link",null);this.element.item("destroy");if(!a.Chain.jidentic(this.root,this.element)&&!b){this.root.update()}},$active:function(){return this.isActive},$root:function(b){if(arguments.length){this.root=b;this.update();return this.element}else{return this.root}},$backup:function(){this.isBuilt=false;return this.element},$link:function(c,d){if(this.linkElement){this.linkElement.unbind("update",this.linkUpdater);this.linkElement=null}c=a(c);if(c.length){var b=this;this.isActive=true;this.linkElement=c;this.linkFunction=function(){if(typeof d=="function"){try{return d.call(b.element,b.linkElement)}catch(f){return a().eq(-1)}}else{if(typeof d=="string"){return b.linkElement.items("collection",d)}else{return a().eq(-1)}}};this.linkUpdater=function(){var e=b.linkFunction();if(e&&e.length){b.element.item(e)}};this.linkElement.bind("update",this.linkUpdater);this.linkUpdater()}return this.element},$destroy:function(){return this.element}})})(jQuery);(function(a){a.Chain.service("items",{collections:{all:function(){return this.element.chain("anchor").children(".chain-item")},visible:function(){return this.element.chain("anchor").children(".chain-item:visible")},hidden:function(){return this.element.chain("anchor").children(".chain-item:hidden")},self:function(){return this.element}},init:function(){this.isActive=false;this.pushBuffer=[];this.shiftBuffer=[];this.collections=a.extend({},this.collections)},handler:function(b){if(b instanceof Array){return this.handleArray(b)}else{if(!this.isActive){return a().eq(-1)}else{if(a.Chain.jobject(b)){return this.handleElement(b)}else{if(typeof b=="object"){return this.handleObject(b)}else{if(typeof b=="number"){return this.handleNumber(b)}else{if(b===true){return this.handleTrue()}else{return this.handleDefault()}}}}}}},handleObject:function(b){return this.collection("all").filter(function(){return a(this).item()==b})},handleElement:function(b){if(!a.Chain.jidentic(b,b.item("root"))&&a.Chain.jidentic(this.element,b.item("root"))){return b}else{return a().eq(-1)}},handleArray:function(b){return this.$merge(b)},handleNumber:function(b){if(b==-1){return this.collection("visible").filter(":last")}else{return this.collection("visible").eq(b)}},handleTrue:function(){return this.collection("all")},handleDefault:function(){return this.collection("visible")},update:function(){this.element.update()},empty:function(){var b=this.collection("all");setTimeout(function(){b.each(function(){a(this).item("remove",true)})},1);this.element.chain("anchor").empty()},collection:function(b,c){if(arguments.length>1){if(typeof c=="function"){this.collections[b]=c}return this.element}else{if(this.collections[b]){return this.collections[b].apply(this)}else{return a().eq(-1)}}},$update:function(){if(!this.element.chain("active")||!this.isActive){return this.element}var c=this;var b=this.element.chain("builder");var f=this.element.chain("template");var d;var e=function(){var g=f.clone()[d?"appendTo":"prependTo"](c.element.chain("anchor")).addClass("chain-item").item("root",c.element);if(c.linkElement&&a.Chain.jobject(this)&&this.item()){g.item("link",this,"self")}else{g.item(this)}g.chain(b)};d=false;a.each(this.shiftBuffer,e);d=true;a.each(this.pushBuffer,e);this.shiftBuffer=[];this.pushBuffer=[];return this.element},$add:function(){if(this.linkElement){return this.element}var d;var c=Array.prototype.slice.call(arguments);if(typeof c[0]=="string"){d=c.shift()}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;this[b]=this[b].concat(c);this.update();return this.element},$merge:function(d,c){if(this.linkElement){return this.element}if(typeof d!="string"){c=d}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;if(a.Chain.jobject(c)){this[b]=this[b].concat(c.map(function(){return a(this)}).get())}else{if(c instanceof Array){this[b]=this[b].concat(c)}}this.update();return this.element},$replace:function(d,c){if(this.linkElement&&arguments.callee.caller!=this.linkUpdater){return this.element}if(typeof d!="string"){c=d}var b=(d=="shift")?"shiftBuffer":"pushBuffer";this.isActive=true;this.empty();if(a.Chain.jobject(c)){this[b]=c.map(function(){return a(this)}).get()}else{if(c instanceof Array){this[b]=c}}this.update();return this.element},$remove:function(){if(this.linkElement){return this.element}for(var b=0;b<arguments.length;b++){this.handler(arguments[b]).item("remove",true)}this.update();return this.element},$reorder:function(c,b){if(b){this.handler(c).before(this.handler(b))}else{this.handler(c).appendTo(this.element.chain("anchor"))}this.update();return this.element},$empty:function(){if(this.linkElement){return this.element}this.empty();this.shiftBuffer=[];this.pushBuffer=[];this.update();return this.element},$data:function(b){return this.handler(b).map(function(){return a(this).item()}).get()},$link:function(c,d){if(this.linkElement){this.linkElement.unbind("update",this.linkUpdater);this.linkElement=null}c=a(c);if(c.length){var b=this;this.linkElement=c;this.linkFunction=function(){if(typeof d=="function"){try{return d.call(b.element,b.linkElement)}catch(f){return a().eq(-1)}}else{if(typeof d=="string"){return b.linkElement.items("collection",d)}else{return a().eq(-1)}}};this.linkUpdater=function(){b.$replace(b.linkFunction())};this.linkElement.bind("update",this.linkUpdater);this.linkUpdater()}return this.element},$index:function(b){return this.collection("all").index(this.handler(b))},$collection:function(){return this.collection.apply(this,Array.prototype.slice.call(arguments))},$active:function(){return this.isActive},$backup:function(){if(!this.element.chain("active")||!this.isActive){return this.element}var b=[];this.collection("all").each(function(){var c=a(this).item();if(c){b.push(c)}});this.pushBuffer=b.concat(this.pushBuffer);this.empty();return this.element},$destroy:function(){this.empty();return this.element}});a.Chain.extend("items",{doFilter:function(){var c=this.searchProperties;var d=this.searchText;if(d){if(typeof d=="string"){d=d.toLowerCase()}var b=this.element.items(true).filter(function(){var f=a(this).item();if(c){for(var e=0;e<c.length;e++){if(typeof f[c[e]]=="string"&&!!(typeof d=="string"?f[c[e]].toLowerCase():f[c[e]]).match(d)){return true}}}else{for(var g in f){if(typeof f[g]=="string"&&!!(typeof d=="string"?f[g].toLowerCase():f[g]).match(d)){return true}}}});this.element.items(true).not(b).hide();b.show()}else{this.element.items(true).show();this.element.unbind("preupdate",this.searchBinding);this.searchBinding=null}},$filter:function(d,c){if(!arguments.length){return this.update()}this.searchText=d;if(typeof c=="string"){this.searchProperties=[c]}else{if(c instanceof Array){this.searchProperties=c}else{this.searchProperties=null}}if(!this.searchBinding){var b=this;this.searchBinding=function(f,e){b.doFilter()};this.element.bind("preupdate",this.searchBinding)}return this.update()}});a.Chain.extend("items",{doSort:function(){var b=this.sortName;var d=this.sortOpt;var g={number:function(i,h){return parseFloat((a(i).item()[b]+"").match(/\d+/gi)[0])-parseFloat((a(h).item()[b]+"").match(/\d+/gi)[0])},"default":function(i,h){return a(i).item()[b]>a(h).item()[b]?1:-1}};if(b){var e=d.fn||g[d.type]||g["default"];var f=this.element.items(true).get().sort(e);f=d.desc?f.reverse():f;for(var c=0;c<f.length;c++){this.element.chain("anchor").append(f[c])}d.desc=d.toggle?!d.desc:d.desc}else{this.element.unbind("preupdate",this.sortBinding);this.sortBinding=null}},$sort:function(c,d){if(!c&&c!==null&&c!==false){return this.update()}if(this.sortName!=c){this.sortOpt=a.extend({desc:false,type:"default",toggle:false},d)}else{a.extend(this.sortOpt,d)}this.sortName=c;if(!this.sortBinding){var b=this;this.sortBinding=function(f,e){b.doSort()};this.element.bind("preupdate",this.sortBinding)}return this.update()}})})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(e){var d=".toolbar h1";a(function(){a("#jqt").bind("pageAnimationStart",function(i,g){if(g.direction==="in"){var f=a(d,a(i.target));var h=a(i.target).data("referrer");if(f.length&&h&&f.html()===""){f.html(h.text())}}})});function c(f){d=f}return{setTitleSelector:c}})}})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(f){var m,i;var d=false;function n(p,o,r,q){i=p;if(window.openDatabase){m=openDatabase(p,o,r,q);if(!m){debugTxt=("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota");if(d){c(debugTxt)}}}else{debugTxt=("Couldn't open the database. Please try with a WebKit nightly with this feature enabled");if(d){c(debugTxt)}}}function e(o){for(x=0;x<o.createTables.length;x++){p(o.createTables[x])}function p(r){debugTxt="create table "+r.table;var q="CREATE TABLE "+r.table+" (";nodeSize=r.property.length-1;for(y=0;y<=nodeSize;y++){q+=r.property[y].name+" "+r.property[y].type;if(y!=nodeSize){q+=", "}}q+=")";k(q,debugTxt)}}function j(p,o,q){stringQuery="DELETE FROM "+p+" WHERE "+o+" = "+q;debugTxt="delete row"+o+" "+q;k(stringQuery,debugTxt)}function g(p,o){stringQuery="SELECT * FROM "+p;debugTxt="selecting everything in table "+p;k(stringQuery,debugTxt,o)}function h(o){stringQuery="DROP TABLE "+o;debugTxt="delete table "+o;k(stringQuery,debugTxt)}function l(o){for(x=0;x<o.addRow.length;x++){p(o.addRow[x])}function p(q){debugTxt="create row "+q.table;stringQuery="INSERT INTO "+q.table+" (";nodeSize=q.property.length-1;for(y=0;y<=nodeSize;y++){stringQuery+=q.property[y].name;if(y!=nodeSize){stringQuery+=", "}}stringQuery+=") VALUES (";for(y=0;y<=nodeSize;y++){stringQuery+='"'+q.property[y].value+'"';if(y!=nodeSize){stringQuery+=", "}}stringQuery+=")";k(stringQuery,debugTxt)}}function k(o,p,q){p+="<br> SQL: "+o;callback=q;m.transaction(function(r){r.executeSql(o,[],function(t,s){if(callback){callback(s)}if(d){p+="<br><span style='color:green'>success</span> ";c(p)}},function(s,t){p+="<br><span style='color:red'>"+t.message+"</span> ";if(d){c(p)}})})}function c(o){if(!a("#debugMode")[0]){a("body").append("<div style='position:abolute;top:0 !important;left:0 !important;width:100% !important;min-height:100px !important; height:300px; overflow:scroll;z-index:1000; display:block; opacity:0.8; background:#000;-webkit-backface-visibility:visible ' id='debugMode'></div>")}a("#debugMode").append("<div class='debugerror'>"+o+"</div>")}return{dbOpen:n,dbDeleteRow:j,dbDropTable:h,dbInsertRows:l,dbSelectAll:g,dbExecuteQuery:k,dbCreateTables:e}})}})(jQuery);(function(a){if(a.jQTouch){a.jQTouch.addExtension(function b(d){function c(g){if(g==null){g=0}var f=e(g);a("body > *").css("min-height",f+"px !important");a("body.fullscreen > *").css("min-height",f+"px !important");a("body.fullscreen.black-translucent > *").css("min-height",f+"px !important");a("body.landscape > *").css("min-height",f+"px !important")}function e(g){var f=0;if(typeof(window.innerWidth)=="number"){f=window.innerHeight}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){f=document.documentElement.clientHeight}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){f=document.body.clientHeight}}}if(f<g){f=g}return f}return{resetHeight:c}})}})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(c){b.fn.makeFloaty=function(d){var f={align:"top",spacing:20,time:".3s"};var e=b.extend({},f,d);e.align=(e.align=="top")?"top":"bottom";return this.each(function(){var g=b(this);g.css({"-webkit-transition":"top "+e.time+" ease-in-out",display:"block","min-height":"0 !important"}).data("settings",e);b(document).bind("scroll",function(){if(g.data("floatyVisible")===true){g.scrollFloaty()}});g.scrollFloaty()})};b.fn.scrollFloaty=function(){return this.each(function(){var d=b(this);var f=d.data("settings");var e=b("html").prop("clientHeight");var g=window.pageYOffset+((f.align=="top")?f.spacing:e-f.spacing-d.get(0).offsetHeight);d.css("top",g).data("floatyVisible",true)})};b.fn.hideFloaty=function(){return this.each(function(){var d=b(this);var e=d.get(0).offsetHeight;d.css("top",-e-10).data("floatyVisible",false)})};b.fn.toggleFloaty=function(){return this.each(function(){var d=b(this);if(d.data("floatyVisible")===true){d.hideFloaty()}else{d.scrollFloaty()}})}})}})(jQuery);(function(c){if(c.jQTouch){function b(f){var i,e,h,i,g=0;h={element:c("#gesture_test"),onGestureStart:null,onGestureChange:null,onGestureEnd:null,};h=c.extend({},h,f);h.element.bind("gesturestart",function(j){j.originalEvent.preventDefault();if(h.onGestureStart){h.onGestureStart(a(j,i),d(j,g),j,h.element)}}).bind("gesturechange",function(j){if(h.onGestureChange){h.onGestureChange(a(j,i),d(j,g),j,h.element)}}).bind("gestureend",function(j){i=j.originalEvent.scale;g=(j.originalEvent.rotation+g)%360;if(h.onGestureEnd){h.onGestureEnd(a(j,i),d(j,g),j,h.element)}})}function d(f,e){return f.originalEvent.rotation+e}function a(f,e){return f.originalEvent.scale+e}c.fn.bindGestures=function(e){e.element=this;b(e)}}})(jQuery);(function(f){var g,j=this,o=j.document,l=this.WebKitCSSMatrix,k={selector:".horizontal-scroll > table",attributesToOptions:e,attributes:{defaultDuration:"slidespeed",preventDefault:"preventdefault",defaultTransform:"defaulttransform",bounce:function(u){return u.prop("bounce")==="false"?false:k.bounce},scrollBar:function(u){return u.hasClass("with-scrollbar")}},ignoreTags:"SELECT,TEXTAREA,BUTTON,INPUT",eventProperty:"pageX",numberOfTouches:1,defaultDuration:500,defaultTransform:"translate3d({0}px,0,0)",defaultOffset:0,bounceSpeed:500,preventDefault:true,maxScrollTime:1000,friction:3,bounceTimingFunction:"cubic-bezier(0,0,.25,1)",bounce:true,scrollBar:true,scrollBarElement:null,scrollBarOptions:{},events:{touchstart:a,touchmove:s,touchend:d,touchcancel:d,webkitTransitionEnd:i,},setPosition:c,reset:t,momentum:m},q=function(){return j.innerWidth+"px"},n=function(u){return(j.innerHeight-u.toolbar)+"px"},h={variables:{toolbar:45},defaults:{".horizontal-scroll":{width:q,height:"100%",overflow:"hidden",padding:"0px",position:"relative",height:n},".horizontal-scroll > table":{height:"100%"},".horizontal-scroll .scrollbar.horizontal":{"-webkit-transition-timing-function":"cubic-bezier(0,0,0.25,1)","-webkit-transform":"translate3d(0,0,0)","-webkit-transition-property":"-webkit-transform,opacity","-webkit-transition-duration":"0,300ms","-webkit-border-radius":"4px","pointer-events":"none",opacity:0,"-webkit-border-image":"-webkit-gradient(radial, 50% 50%, 2, 50% 50%, 8, from(rgba(0,0,0,.5)), to(rgba(0,0,0,.5))) 3 2",position:"absolute","z-index":10,width:"1px",height:"5px",bottom:"1px",left:"1px"}},portrait:{".portrait .horizontal-scroll":{width:q}},landscape:{".landscape .horizontal-scroll":{width:q}}};if(f.jQTouch){f.jQTouch.addExtension(function(v){function u(A,z){var w=z.page.find(k.selector);w.scrollHorizontally(k.attributesToOptions(w,k.attributes))}f(o.body).bind("pageInserted",u);f(function(){f(k.selector).each(function(){f(this).scrollHorizontally(k.attributesToOptions(f(this),k.attributes))})});return{}})}function e(w,u){var v={};f.each(u,function(z,A){if(f.isFunction(A)){v[z]=A(w)}else{if(w.attr(A)!=g){v[z]=w.prop(A)}}});return v}f.fn.scrollHorizontally=function(u){u=f.extend(true,{},k,u||{});return this.each(function(){p(this,u)})};f.fn.scrollHorizontally.defaults=function(u){if(u!==g){k=f.extend(true,k,u)}return f.extend({},k)};f.fn.scrollHorizontally.defaultCSS=function(u){if(u!==g){h=f.extend(true,h,u)}return f.extend({},h)};function p(z,w){var u=f(z).data("jqt-horizontal-scroll-options",w).css("webkitTransform",r(w.defaultTransform,w.defaultOffset)),v=new l(u.css("webkitTransform"));f.each(w.events,function(A,B){z.addEventListener(A,B,false)});w.currentPosition=v.m41;w.parentWidth=u.parent().width();if(w.scrollBar&&w.scrollBar===true&&!w.scrollBarElement){w.scrollBarElement=f.isFunction(w.scrollBar)?w.scrollBar(u.parent(),"horizontal",w.scrollBarOptions||{}):b(u.parent(),"horizontal",w.scrollBarOptions||{})}}function a(C){var D=f(this),w=D.data("jqt-horizontal-scroll-options"),v,B=D.outerWidth(),A=D.parent().width(),z=-(B-A),u=A/6;w.parentWidth=A;if(!!w.ignoreTags&&f(C.target).is(w.ignoreTags)||C.targetTouches.length!==w.numberOfTouches){return null}v=new l(D.css("webkitTransform"));D.data("jqt-horizontal-scroll-current-event",{startLocation:C.touches[0][w.eventProperty],startPosition:v.m41,currentPosition:v.m41,startTime:C.timeStamp,moved:false,lastMoveTime:C.timeStamp,parentWidth:A,endPoint:z,minScroll:!w.bounce?0:u,maxScroll:!w.bounce?z:z-u,timingFunction:w.bounceTimingFunction});if(w.scrollBarElement){w.scrollBarElement.init(A,B)}w.setPosition(D,w,v.m41,"0");if(w.preventDefault){C.preventDefault();return false}else{return true}}function s(z){var B=f(this),w=B.data("jqt-horizontal-scroll-options"),A=B.data("jqt-horizontal-scroll-current-event"),v=A.lastMoveTime,C=A.startLocation-z.touches[0][w.eventProperty],u=A.startPosition-C;A.currentPosition=u;A.moved=true;A.lastMoveTime=z.timeStamp;if((A.lastMoveTime-v)>w.maxScrollTime){A.startTime=A.lastMoveTime}if(w.scrollBarElement&&!w.scrollBarElement.visible){w.scrollBarElement.show()}w.setPosition(B,w,A.currentPosition,0);if(w.preventDefault){z.preventDefault();return false}else{return true}}function d(v){var A=f(this),u=A.data("jqt-horizontal-scroll-options"),w=A.data("jqt-horizontal-scroll-current-event"),z,B;if(!w.moved){if(u.scrollBarElement){u.scrollBarElement.hide()}z=v.target;if(z.nodeType==3){z=z.parentNode}B=o.createEvent("MouseEvents");B.initEvent("click",true,true);z.dispatchEvent(B);if(u.preventDefault){v.preventDefault();v.stopPropagation();return false}}u.momentum(A,u,w,v);u.setPosition(A,u,w.currentPosition,w.duration);if(u.preventDefault){v.preventDefault();v.stopPropagation();return false}else{return true}}function i(z){var w=f(this),u=w.data("jqt-horizontal-scroll-options"),v=w.data("jqt-horizontal-scroll-current-event");if(v){if(v.currentPosition>0){v.currentPosition=0;u.setPosition(w,u,0,u.bounceSpeed)}else{if(v.currentPosition<v.endPoint){v.currentPosition=v.endPoint;u.setPosition(w,u,v.endPoint,u.bounceSpeed)}else{if(u.scrollBarElement){u.scrollBarElement.hide()}}}}else{if(u.scrollBarElement){u.scrollBarElement.hide()}}}function m(C,F,D,v){var z=Math.min(F.maxScrollTime,D.lastMoveTime-D.startTime),u=D.startPosition-D.currentPosition,A=Math.abs(u)/z,B=z*A*F.friction,w=Math.round(u*A),E=Math.round(D.currentPosition-w);if(D.currentPosition>0){E=0}else{if(D.currentPosition<D.endPoint){E=D.endPoint}else{if(E>D.minScroll){B=B*Math.abs(D.minScroll/E);E=D.minScroll}else{if(E<D.maxScroll){B=B*Math.abs(D.maxScroll/E);E=D.maxScroll}}}}D.momentum=E/D.currentPosition;D.currentPosition=E;D.duration=B}function t(v,u){return u.setPosition(v,u,0,u.defaultDuration)}function c(w,v,u,B,A){if(v.scrollBarElement){var z=(w.parent().width()-w.outerWidth());if(u>0){z+=Number(u)}v.scrollBarElement.scrollTo(v.scrollBarElement.maxScroll/z*u,r("{0}ms",B!==g?B:v.defaultDuration))}if(B!==g){w.css("webkitTransitionDuration",r("{0}ms",B))}if(A!==g){w.css("webkitTransitionTimingFunction",A)}v.currentPosition=u||0;return w.css("webkitTransform",r("translate3d({0}px, 0, 0)",v.currentPosition))}function r(v){var u=arguments;return v.replace(/\{(\d+)\}/g,function(z,w){return u[Number(w)+1]+""})}function b(v,w,u){if(!(this instanceof b)){return new b(v,w,u)}this.direction=w;this.bar=f(o.createElement("div")).addClass("scrollbar "+w).appendTo(v)[0]}b.prototype={direction:"horizontal",size:0,maxSize:0,maxScroll:0,visible:false,init:function(u,v){var w=this.direction=="horizontal"?this.bar.offsetWidth-this.bar.clientWidth:this.bar.offsetHeight-this.bar.clientHeight;this.maxSize=u-8;this.size=Math.round(this.maxSize*this.maxSize/v)+w;this.maxScroll=this.maxSize-this.size;this.bar.style[this.direction=="horizontal"?"width":"height"]=(this.size-w)+"px"},setPosition:function(u){u=this.direction=="horizontal"?"translate3d("+Math.round(u)+"px,0,0)":"translate3d(0,"+Math.round(u)+"px,0)";this.bar.style.webkitTransform=u},scrollTo:function(v,u){this.bar.style.webkitTransitionDuration=(u||"400ms")+",300ms";this.setPosition(v)},show:function(){this.visible=true;this.bar.style.opacity="1"},hide:function(){this.visible=false;this.bar.style.opacity="0"},remove:function(){this.bar.parentNode.removeChild(this.bar);return null}};f(function(){j.scrollTo(0,0);var u="",z=h,w=j.innerHeight>j.innerWidth?"portrait":"landscape",A=function(B,C){u+=B+":"+(f.isFunction(C)?C(z.variables):C)+";"},v=function(B,C){u+=B+"{";f.each(C,A);u+="}"};f.each(z.defaults,v);f.each(z[w],v);f(o.createElement("style")).prop({type:"text/css",media:"screen"}).html(u).appendTo("head");f(j).one("orientationchange",function(){setTimeout(function(){j.scrollTo(0,0);u="";f.each(z[j.innerHeight>j.innerWidth?"portrait":"landscape"],v);f(o.createElement("style")).prop({type:"text/css",media:"screen"}).html(u).appendTo("head")},30)})})})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(){var i,f,h;function d(){return navigator.geolocation}function g(j){if(d()){h=j;navigator.geolocation.getCurrentPosition(c);return true}else{console.log("Device not capable of geo-location.");j(false);return false}}function c(j){i=j.coords.latitude;f=j.coords.longitude;if(h){h(e())}}function e(){if(i&&f){return{latitude:i,longitude:f}}else{console.log("No location available. Try calling updateLocation() first.");return false}}return{updateLocation:g,getLocation:e}})}})(jQuery);(function(b){if(b.jQTouch){b.jQTouch.addExtension(function a(){var c=[];c[0]="uncached";c[1]="idle";c[2]="checking";c[3]="downloading";c[4]="updateready";c[5]="obsolete";var d=window.applicationCache;d.addEventListener("cached",f,false);d.addEventListener("checking",f,false);d.addEventListener("downloading",f,false);d.addEventListener("error",f,false);d.addEventListener("noupdate",f,false);d.addEventListener("obsolete",f,false);d.addEventListener("progress",f,false);d.addEventListener("updateready",f,false);function f(m){var j,i,k,l;j=(h())?"yes":"no";i=c[d.status];k=m.type;l="online: "+j;l+=", event: "+k;l+=", status: "+i;if(k=="error"&&navigator.onLine){l+=" There was an unknown error, check your Cache Manifest."}console.log(l)}function h(){return navigator.onLine}if(!b("html").prop("manifest")){console.log("No Cache Manifest listed on the <html> tag.")}d.addEventListener("updateready",function(i){if(c[d.status]!="idle"){d.swapCache();console.log("Swapped/updated the Cache Manifest.")}},false);function e(){d.update()}function g(){setInterval(function(){d.update()},10000)}return{isOnline:h,checkForUpdates:e,autoCheckForUpdates:g}})}})(jQuery);
2
2
  /*!*
3
3
  * Provides event handling for iPhone like photo gallery (without thumbnail portion)
4
4
  *
@@ -239,7 +239,7 @@ body {
239
239
  input {
240
240
  &[type="text"], &[type="password"], &[type="tel"], &[type="number"], &[type="search"], &[type="email"], &[type="url"] {
241
241
  color: #777;
242
- background: white url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
242
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
243
243
  border: 0;
244
244
  font: normal 17px "Helvetica Neue", Helvetica;
245
245
  padding: 0;
@@ -249,7 +249,7 @@ body {
249
249
  -webkit-appearance: textarea; } }
250
250
  textarea, select {
251
251
  color: #777;
252
- background: white url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
252
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
253
253
  border: 0;
254
254
  font: normal 17px "Helvetica Neue", Helvetica;
255
255
  padding: 0;
@@ -238,7 +238,7 @@ body {
238
238
  input {
239
239
  &[type="text"], &[type="password"], &[type="tel"], &[type="number"], &[type="search"], &[type="email"], &[type="url"] {
240
240
  color: #777;
241
- background: transparent url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
241
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
242
242
  border: 0;
243
243
  font: normal 17px "Helvetica Neue", Helvetica;
244
244
  padding: 0;
@@ -248,7 +248,7 @@ body {
248
248
  -webkit-appearance: textarea; } }
249
249
  textarea, select {
250
250
  color: #777;
251
- background: transparent url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
251
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
252
252
  border: 0;
253
253
  font: normal 17px "Helvetica Neue", Helvetica;
254
254
  padding: 0;
@@ -1,18 +1,14 @@
1
1
  /*!
2
2
  * Amplify Store - Persistent Client-Side Storage @VERSION
3
- *
3
+ *
4
4
  * Copyright 2011 appendTo LLC. (http://appendto.com/team)
5
5
  * Dual licensed under the MIT or GPL licenses.
6
6
  * http://appendto.com/open-source-licenses
7
- *
7
+ *
8
8
  * http://amplifyjs.com
9
9
  */
10
10
  (function(amplify, undefined) {
11
11
 
12
- // MooTools Compatibility
13
- JSON.stringify = JSON.stringify || JSON.encode;
14
- JSON.parse = JSON.parse || JSON.decode;
15
-
16
12
  var store = amplify.store = function(key, value, options, type) {
17
13
  var type = store.type;
18
14
  if (options && options.type && options.type in store.types) {
@@ -39,63 +35,71 @@
39
35
  return "amplify.store quota exceeded";
40
36
  };
41
37
 
42
- function createSimpleStorage(storageType, storage) {
43
- var values = storage.__amplify__ ? JSON.parse(storage.__amplify__) : {};
38
+ var rprefix = /^__amplify__/;
39
+
40
+ function createFromStorageInterface(storageType, storage) {
44
41
  store.addType(storageType, function(key, value, options) {
45
- var ret = value,
46
- now = (new Date()).getTime(),
47
- storedValue,
48
- parsed;
42
+ var storedValue, parsed, i, remove,
43
+ ret = value,
44
+ now = (new Date()).getTime();
49
45
 
50
46
  if (!key) {
51
47
  ret = {};
52
- for (key in values) {
53
- storedValue = storage[ key ];
54
- parsed = storedValue ? JSON.parse(storedValue) : { expires: -1 };
55
- if (parsed.expires && parsed.expires <= now) {
56
- delete storage[ key ];
57
- delete values[ key ];
58
- } else {
59
- ret[ key.replace(/^__amplify__/, "") ] = parsed.data;
48
+ remove = [];
49
+ i = 0;
50
+ try {
51
+ // accessing the length property works around a localStorage bug
52
+ // in Firefox 4.0 where the keys don't update cross-page
53
+ // we assign to key just to avoid Closure Compiler from removing
54
+ // the access as "useless code"
55
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=662511
56
+ key = storage.length;
57
+
58
+ while (key = storage.key(i++)) {
59
+ if (rprefix.test(key)) {
60
+ parsed = JSON.parse(storage.getItem(key));
61
+ if (parsed.expires && parsed.expires <= now) {
62
+ remove.push(key);
63
+ } else {
64
+ ret[ key.replace(rprefix, "") ] = parsed.data;
65
+ }
66
+ }
67
+ }
68
+ while (key = remove.pop()) {
69
+ storage.removeItem(key);
60
70
  }
71
+ } catch (error) {
61
72
  }
62
- storage.__amplify__ = JSON.stringify(values);
63
73
  return ret;
64
74
  }
65
75
 
66
- // protect against overwriting built-in properties
76
+ // protect against name collisions with direct storage
67
77
  key = "__amplify__" + key;
68
78
 
69
79
  if (value === undefined) {
70
- if (values[ key ]) {
71
- storedValue = storage[ key ];
72
- parsed = storedValue ? JSON.parse(storedValue) : { expires: -1 };
73
- if (parsed.expires && parsed.expires <= now) {
74
- delete storage[ key ];
75
- delete values[ key ];
76
- } else {
77
- return parsed.data;
78
- }
80
+ storedValue = storage.getItem(key);
81
+ parsed = storedValue ? JSON.parse(storedValue) : { expires: -1 };
82
+ if (parsed.expires && parsed.expires <= now) {
83
+ storage.removeItem(key);
84
+ } else {
85
+ return parsed.data;
79
86
  }
80
87
  } else {
81
88
  if (value === null) {
82
- delete storage[ key ];
83
- delete values[ key ];
89
+ storage.removeItem(key);
84
90
  } else {
85
91
  parsed = JSON.stringify({
86
92
  data: value,
87
93
  expires: options.expires ? now + options.expires : null
88
94
  });
89
95
  try {
90
- storage[ key ] = parsed;
91
- values[ key ] = true;
96
+ storage.setItem(key, parsed);
92
97
  // quota exceeded
93
98
  } catch(error) {
94
99
  // expire old data and try again
95
100
  store[ storageType ]();
96
101
  try {
97
- storage[ key ] = parsed;
98
- values[ key ] = true;
102
+ storage.setItem(key, parsed);
99
103
  } catch(error) {
100
104
  throw store.error();
101
105
  }
@@ -103,7 +107,6 @@
103
107
  }
104
108
  }
105
109
 
106
- storage.__amplify__ = JSON.stringify(values);
107
110
  return ret;
108
111
  });
109
112
  }
@@ -114,7 +117,7 @@
114
117
  // try/catch for file protocol in Firefox
115
118
  try {
116
119
  if (window[ webStorageType ].getItem) {
117
- createSimpleStorage(webStorageType, window[ webStorageType ]);
120
+ createFromStorageInterface(webStorageType, window[ webStorageType ]);
118
121
  }
119
122
  } catch(e) {
120
123
  }
@@ -124,13 +127,17 @@
124
127
  // non-standard: Firefox 2+
125
128
  // https://developer.mozilla.org/en/dom/storage#globalStorage
126
129
  if (window.globalStorage) {
127
- createSimpleStorage("globalStorage",
128
- window.globalStorage[ window.location.hostname ]);
129
- // Firefox 2.0 and 3.0 have sessionStorage and globalStorage
130
- // make sure we defualt to globalStorage
131
- // but don't default to globalStorage in 3.5+ which also has localStorage
132
- if (store.type === "sessionStorage") {
133
- store.type = "globalStorage";
130
+ // try/catch for file protocol in Firefox
131
+ try {
132
+ createFromStorageInterface("globalStorage",
133
+ window.globalStorage[ window.location.hostname ]);
134
+ // Firefox 2.0 and 3.0 have sessionStorage and globalStorage
135
+ // make sure we default to globalStorage
136
+ // but don't default to globalStorage in 3.5+ which also has localStorage
137
+ if (store.type === "sessionStorage") {
138
+ store.type = "globalStorage";
139
+ }
140
+ } catch(e) {
134
141
  }
135
142
  }
136
143
 
@@ -138,37 +145,42 @@
138
145
  // non-standard: IE 5+
139
146
  // http://msdn.microsoft.com/en-us/library/ms531424(v=vs.85).aspx
140
147
  (function() {
148
+ // IE 9 has quirks in userData that are a huge pain
149
+ // rather than finding a way to detect these quirks
150
+ // we just don't register userData if we have localStorage
151
+ if (store.types.localStorage) {
152
+ return;
153
+ }
154
+
141
155
  // append to html instead of body so we can do this from the head
142
156
  var div = document.createElement("div"),
143
- attrKey = "amplify",
144
- attrs;
157
+ attrKey = "amplify";
145
158
  div.style.display = "none";
146
159
  document.getElementsByTagName("head")[ 0 ].appendChild(div);
147
160
  if (div.addBehavior) {
148
161
  div.addBehavior("#default#userdata");
149
- div.load(attrKey);
150
- attrs = div.getAttribute(attrKey) ? JSON.parse(div.getAttribute(attrKey)) : {};
151
162
 
152
163
  store.addType("userData", function(key, value, options) {
153
- var ret = value,
154
- now = (new Date()).getTime(),
155
- attr,
156
- parsed,
157
- prevValue;
164
+ div.load(attrKey);
165
+ var attr, parsed, prevValue, i, remove,
166
+ ret = value,
167
+ now = (new Date()).getTime();
158
168
 
159
169
  if (!key) {
160
170
  ret = {};
161
- for (key in attrs) {
162
- attr = div.getAttribute(key);
163
- parsed = attr ? JSON.parse(attr) : { expires: -1 };
171
+ remove = [];
172
+ i = 0;
173
+ while (attr = div.XMLDocument.documentElement.attributes[ i++ ]) {
174
+ parsed = JSON.parse(attr.value);
164
175
  if (parsed.expires && parsed.expires <= now) {
165
- div.removeAttribute(key);
166
- delete attrs[ key ];
176
+ remove.push(attr.name);
167
177
  } else {
168
- ret[ key ] = parsed.data;
178
+ ret[ attr.name ] = parsed.data;
169
179
  }
170
180
  }
171
- div.setAttribute(attrKey, JSON.stringify(attrs));
181
+ while (key = remove.pop()) {
182
+ div.removeAttribute(key);
183
+ }
172
184
  div.save(attrKey);
173
185
  return ret;
174
186
  }
@@ -180,20 +192,16 @@
180
192
  key = key.replace(/[^-._0-9A-Za-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u37f-\u1fff\u200c-\u200d\u203f\u2040\u2070-\u218f]/g, "-");
181
193
 
182
194
  if (value === undefined) {
183
- if (key in attrs) {
184
- attr = div.getAttribute(key);
185
- parsed = attr ? JSON.parse(attr) : { expires: -1 };
186
- if (parsed.expires && parsed.expires <= now) {
187
- div.removeAttribute(key);
188
- delete attrs[ key ];
189
- } else {
190
- return parsed.data;
191
- }
195
+ attr = div.getAttribute(key);
196
+ parsed = attr ? JSON.parse(attr) : { expires: -1 };
197
+ if (parsed.expires && parsed.expires <= now) {
198
+ div.removeAttribute(key);
199
+ } else {
200
+ return parsed.data;
192
201
  }
193
202
  } else {
194
203
  if (value === null) {
195
204
  div.removeAttribute(key);
196
- delete attrs[ key ];
197
205
  } else {
198
206
  // we need to get the previous value in case we need to rollback
199
207
  prevValue = div.getAttribute(key);
@@ -202,11 +210,9 @@
202
210
  expires: (options.expires ? (now + options.expires) : null)
203
211
  });
204
212
  div.setAttribute(key, parsed);
205
- attrs[ key ] = true;
206
213
  }
207
214
  }
208
215
 
209
- div.setAttribute(attrKey, JSON.stringify(attrs));
210
216
  try {
211
217
  div.save(attrKey);
212
218
  // quota exceeded
@@ -214,7 +220,6 @@
214
220
  // roll the value back to the previous value
215
221
  if (prevValue === null) {
216
222
  div.removeAttribute(key);
217
- delete attrs[ key ];
218
223
  } else {
219
224
  div.setAttribute(key, prevValue);
220
225
  }
@@ -223,13 +228,11 @@
223
228
  store.userData();
224
229
  try {
225
230
  div.setAttribute(key, parsed);
226
- attrs[ key ] = true;
227
231
  div.save(attrKey);
228
232
  } catch (error) {
229
233
  // roll the value back to the previous value
230
234
  if (prevValue === null) {
231
235
  div.removeAttribute(key);
232
- delete attrs[ key ];
233
236
  } else {
234
237
  div.setAttribute(key, prevValue);
235
238
  }
@@ -243,6 +246,36 @@
243
246
 
244
247
  // in-memory storage
245
248
  // fallback for all browsers to enable the API even if we can't persist data
246
- createSimpleStorage("memory", {});
249
+ (function() {
250
+ var memory = {};
251
+
252
+ function copy(obj) {
253
+ return obj === undefined ? undefined : JSON.parse(JSON.stringify(obj));
254
+ }
255
+
256
+ store.addType("memory", function(key, value, options) {
257
+ if (!key) {
258
+ return copy(memory);
259
+ }
260
+
261
+ if (value === undefined) {
262
+ return copy(memory[ key ]);
263
+ }
264
+
265
+ if (value === null) {
266
+ delete memory[ key ];
267
+ return null;
268
+ }
269
+
270
+ memory[ key ] = value;
271
+ if (options.expires) {
272
+ setTimeout(function() {
273
+ delete memory[ key ];
274
+ }, options.expires);
275
+ }
276
+
277
+ return value;
278
+ });
279
+ }() );
247
280
 
248
281
  }(this.amplify = this.amplify || {}) );
@@ -1,6 +1,6 @@
1
- (function(n,m){function k(b,c){var a=c.__amplify__?JSON.parse(c.__amplify__):{};f.addType(b,function(d,e,i){var h=e,g=(new Date).getTime();if(!d){h={};for(d in a)e=(e=c[d])?JSON.parse(e):{expires:-1},e.expires&&e.expires<=g?(delete c[d],delete a[d]):h[d.replace(/^__amplify__/,"")]=e.data;c.__amplify__=JSON.stringify(a);return h}d="__amplify__"+d;if(e===m){if(a[d])if(e=(e=c[d])?JSON.parse(e):{expires:-1},e.expires&&e.expires<=g)delete c[d],delete a[d];else return e.data}else if(e===null)delete c[d],
2
- delete a[d];else{e=JSON.stringify({data:e,expires:i.expires?g+i.expires:null});try{c[d]=e,a[d]=!0}catch(j){f[b]();try{c[d]=e,a[d]=!0}catch(k){throw f.error();}}}c.__amplify__=JSON.stringify(a);return h})}JSON.stringify=JSON.stringify||JSON.encode;JSON.parse=JSON.parse||JSON.decode;var f=n.store=function(b,c,a,d){d=f.type;if(a&&a.type&&a.type in f.types)d=a.type;return f.types[d](b,c,a||{})};f.types={};f.type=null;f.addType=function(b,c){if(!f.type)f.type=b;f.types[b]=c;f[b]=function(a,d,c){c=c||{};
3
- c.type=b;return f(a,d,c)}};f.error=function(){return"amplify.store quota exceeded"};for(var l in{localStorage:1,sessionStorage:1})try{window[l].getItem&&k(l,window[l])}catch(o){}if(window.globalStorage&&(k("globalStorage",window.globalStorage[window.location.hostname]),f.type==="sessionStorage"))f.type="globalStorage";(function(){var b=document.createElement("div"),c;b.style.display="none";document.getElementsByTagName("head")[0].appendChild(b);b.addBehavior&&(b.addBehavior("#default#userdata"),b.load("amplify"),
4
- c=b.getAttribute("amplify")?JSON.parse(b.getAttribute("amplify")):{},f.addType("userData",function(a,d,e){var i=d,h=(new Date).getTime(),g,j;if(!a){i={};for(a in c)g=(d=b.getAttribute(a))?JSON.parse(d):{expires:-1},g.expires&&g.expires<=h?(b.removeAttribute(a),delete c[a]):i[a]=g.data;b.setAttribute("amplify",JSON.stringify(c));b.save("amplify");return i}a=a.replace(/[^-._0-9A-Za-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u37f-\u1fff\u200c-\u200d\u203f\u2040\u2070-\u218f]/g,"-");if(d===m){if(a in c)if(g=
5
- (d=b.getAttribute(a))?JSON.parse(d):{expires:-1},g.expires&&g.expires<=h)b.removeAttribute(a),delete c[a];else return g.data}else d===null?(b.removeAttribute(a),delete c[a]):(j=b.getAttribute(a),g=JSON.stringify({data:d,expires:e.expires?h+e.expires:null}),b.setAttribute(a,g),c[a]=!0);b.setAttribute("amplify",JSON.stringify(c));try{b.save("amplify")}catch(k){j===null?(b.removeAttribute(a),delete c[a]):b.setAttribute(a,j);f.userData();try{b.setAttribute(a,g),c[a]=!0,b.save("amplify")}catch(l){throw j===
6
- null?(b.removeAttribute(a),delete c[a]):b.setAttribute(a,j),f.error();}}return i}))})();k("memory",{})})(this.amplify=this.amplify||{});
1
+ (function(m,i){function l(c,a){d.addType(c,function(b,g,e){var f,h=g,j=(new Date).getTime();if(!b){h={};e=[];g=0;try{for(b=a.length;b=a.key(g++);)if(n.test(b))f=JSON.parse(a.getItem(b)),f.expires&&f.expires<=j?e.push(b):h[b.replace(n,"")]=f.data;for(;b=e.pop();)a.removeItem(b)}catch(k){}return h}b="__amplify__"+b;if(g===i)if(f=(f=a.getItem(b))?JSON.parse(f):{expires:-1},f.expires&&f.expires<=j)a.removeItem(b);else return f.data;else if(g===null)a.removeItem(b);else{f=JSON.stringify({data:g,expires:e.expires?
2
+ j+e.expires:null});try{a.setItem(b,f)}catch(l){d[c]();try{a.setItem(b,f)}catch(m){throw d.error();}}}return h})}var d=m.store=function(c,a,b,g){g=d.type;if(b&&b.type&&b.type in d.types)g=b.type;return d.types[g](c,a,b||{})};d.types={};d.type=null;d.addType=function(c,a){if(!d.type)d.type=c;d.types[c]=a;d[c]=function(b,a,e){e=e||{};e.type=c;return d(b,a,e)}};d.error=function(){return"amplify.store quota exceeded"};var n=/^__amplify__/,k;for(k in{localStorage:1,sessionStorage:1})try{window[k].getItem&&
3
+ l(k,window[k])}catch(o){}if(window.globalStorage)try{if(l("globalStorage",window.globalStorage[window.location.hostname]),d.type==="sessionStorage")d.type="globalStorage"}catch(p){}(function(){if(!d.types.localStorage){var c=document.createElement("div");c.style.display="none";document.getElementsByTagName("head")[0].appendChild(c);c.addBehavior&&(c.addBehavior("#default#userdata"),d.addType("userData",function(a,b,g){c.load("amplify");var e,f,h=b,j=(new Date).getTime();if(!a){h={};f=[];for(a=0;b=
4
+ c.XMLDocument.documentElement.attributes[a++];)e=JSON.parse(b.value),e.expires&&e.expires<=j?f.push(b.name):h[b.name]=e.data;for(;a=f.pop();)c.removeAttribute(a);c.save("amplify");return h}a=a.replace(/[^-._0-9A-Za-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u37f-\u1fff\u200c-\u200d\u203f\u2040\u2070-\u218f]/g,"-");if(b===i)if(e=(b=c.getAttribute(a))?JSON.parse(b):{expires:-1},e.expires&&e.expires<=j)c.removeAttribute(a);else return e.data;else b===null?c.removeAttribute(a):(f=c.getAttribute(a),e=JSON.stringify({data:b,
5
+ expires:g.expires?j+g.expires:null}),c.setAttribute(a,e));try{c.save("amplify")}catch(k){f===null?c.removeAttribute(a):c.setAttribute(a,f);d.userData();try{c.setAttribute(a,e),c.save("amplify")}catch(l){throw f===null?c.removeAttribute(a):c.setAttribute(a,f),d.error();}}return h}))}})();(function(){var c={};d.addType("memory",function(a,b,d){if(!a)return c===i?i:JSON.parse(JSON.stringify(c));if(b===i)return c[a]===i?i:JSON.parse(JSON.stringify(c[a]));if(b===null)return delete c[a],null;c[a]=b;d.expires&&
6
+ setTimeout(function(){delete c[a]},d.expires);return b})})()})(this.amplify=this.amplify||{});
@@ -271,12 +271,12 @@
271
271
  (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent) /* disable for versions of iOS before version 4.3 (8F190) */
272
272
  || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent) /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
273
273
  )
274
- ),
274
+ ),
275
275
  hashChange: Boolean(
276
276
  !(('onhashchange' in window) || ('onhashchange' in document))
277
277
  ||
278
278
  (History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8)
279
- )
279
+ )
280
280
  };
281
281
 
282
282
  /**
@@ -1391,7 +1391,7 @@
1391
1391
  return true;
1392
1392
  },
1393
1393
  History.options.doubleCheckInterval
1394
- );
1394
+ );
1395
1395
  }
1396
1396
 
1397
1397
  // Chain
@@ -8,7 +8,7 @@ jQuery(function($) {
8
8
  currentText: 'Vandaag',
9
9
  monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
10
10
  'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
11
- monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
11
+ monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
12
12
  'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
13
13
  dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
14
14
  dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
@@ -1,2 +1,2 @@
1
- jQuery(function(a){a.datepicker.regional.nl={closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","maa","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo",
1
+ jQuery(function(a){a.datepicker.regional.nl={closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo",
2
2
  "do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""};a.datepicker.setDefaults(a.datepicker.regional.nl)});
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery UI 1.8.13
2
+ * jQuery UI 1.8.16
3
3
  *
4
4
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  $.extend($.ui, {
21
- version: "1.8.13",
21
+ version: "1.8.16",
22
22
 
23
23
  keyCode: {
24
24
  ALT: 18,
@@ -58,6 +58,8 @@
58
58
 
59
59
  // plugins
60
60
  $.fn.extend({
61
+ propAttr: $.fn.prop || $.fn.attr,
62
+
61
63
  _focus: $.fn.focus,
62
64
  focus: function(delay, fn) {
63
65
  return typeof delay === "number" ?
@@ -313,7 +315,7 @@
313
315
 
314
316
 
315
317
  /*!
316
- * jQuery UI Widget 1.8.13
318
+ * jQuery UI Widget 1.8.16
317
319
  *
318
320
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
319
321
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -328,7 +330,11 @@
328
330
  var _cleanData = $.cleanData;
329
331
  $.cleanData = function(elems) {
330
332
  for (var i = 0, elem; (elem = elems[i]) != null; i++) {
331
- $(elem).triggerHandler("remove");
333
+ try {
334
+ $(elem).triggerHandler("remove");
335
+ // http://bugs.jquery.com/ticket/8235
336
+ } catch(e) {
337
+ }
332
338
  }
333
339
  _cleanData(elems);
334
340
  };
@@ -339,7 +345,11 @@
339
345
  if (!keepData) {
340
346
  if (!selector || $.filter(selector, [ this ]).length) {
341
347
  $("*", this).add([ this ]).each(function() {
342
- $(this).triggerHandler("remove");
348
+ try {
349
+ $(this).triggerHandler("remove");
350
+ // http://bugs.jquery.com/ticket/8235
351
+ } catch(e) {
352
+ }
343
353
  });
344
354
  }
345
355
  }
@@ -579,7 +589,7 @@
579
589
 
580
590
 
581
591
  /*!
582
- * jQuery UI Mouse 1.8.13
592
+ * jQuery UI Mouse 1.8.16
583
593
  *
584
594
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
585
595
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -593,7 +603,7 @@
593
603
  (function($, undefined) {
594
604
 
595
605
  var mouseHandled = false;
596
- $(document).mousedown(function(e) {
606
+ $(document).mouseup(function(e) {
597
607
  mouseHandled = false;
598
608
  });
599
609
 
@@ -611,12 +621,12 @@
611
621
  return self._mouseDown(event);
612
622
  })
613
623
  .bind('click.' + this.widgetName, function(event) {
614
- if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
615
- $.removeData(event.target, self.widgetName + '.preventClickEvent');
616
- event.stopImmediatePropagation();
617
- return false;
618
- }
619
- });
624
+ if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
625
+ $.removeData(event.target, self.widgetName + '.preventClickEvent');
626
+ event.stopImmediatePropagation();
627
+ return false;
628
+ }
629
+ });
620
630
 
621
631
  this.started = false;
622
632
  },
@@ -641,7 +651,9 @@
641
651
 
642
652
  var self = this,
643
653
  btnIsLeft = (event.which == 1),
644
- elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
654
+ // event.target.nodeName works around a bug in IE 8 with
655
+ // disabled inputs (#7620)
656
+ elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
645
657
  if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
646
658
  return true;
647
659
  }
@@ -725,7 +737,7 @@
725
737
  return (Math.max(
726
738
  Math.abs(this._mouseDownEvent.pageX - event.pageX),
727
739
  Math.abs(this._mouseDownEvent.pageY - event.pageY)
728
- ) >= this.options.distance
740
+ ) >= this.options.distance
729
741
  );
730
742
  },
731
743
 
@@ -749,7 +761,7 @@
749
761
 
750
762
 
751
763
  /*
752
- * jQuery UI Accordion 1.8.13
764
+ * jQuery UI Accordion 1.8.16
753
765
  *
754
766
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
755
767
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -799,29 +811,29 @@
799
811
  self.headers = self.element.find(options.header)
800
812
  .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
801
813
  .bind("mouseenter.accordion", function() {
802
- if (options.disabled) {
803
- return;
804
- }
805
- $(this).addClass("ui-state-hover");
806
- })
814
+ if (options.disabled) {
815
+ return;
816
+ }
817
+ $(this).addClass("ui-state-hover");
818
+ })
807
819
  .bind("mouseleave.accordion", function() {
808
- if (options.disabled) {
809
- return;
810
- }
811
- $(this).removeClass("ui-state-hover");
812
- })
820
+ if (options.disabled) {
821
+ return;
822
+ }
823
+ $(this).removeClass("ui-state-hover");
824
+ })
813
825
  .bind("focus.accordion", function() {
814
- if (options.disabled) {
815
- return;
816
- }
817
- $(this).addClass("ui-state-focus");
818
- })
826
+ if (options.disabled) {
827
+ return;
828
+ }
829
+ $(this).addClass("ui-state-focus");
830
+ })
819
831
  .bind("blur.accordion", function() {
820
- if (options.disabled) {
821
- return;
822
- }
823
- $(this).removeClass("ui-state-focus");
824
- });
832
+ if (options.disabled) {
833
+ return;
834
+ }
835
+ $(this).removeClass("ui-state-focus");
836
+ });
825
837
 
826
838
  self.headers.next()
827
839
  .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
@@ -855,18 +867,18 @@
855
867
  self.headers
856
868
  .attr("role", "tab")
857
869
  .bind("keydown.accordion", function(event) {
858
- return self._keydown(event);
859
- })
870
+ return self._keydown(event);
871
+ })
860
872
  .next()
861
873
  .attr("role", "tabpanel");
862
874
 
863
875
  self.headers
864
876
  .not(self.active || "")
865
877
  .attr({
866
- "aria-expanded": "false",
867
- "aria-selected": "false",
868
- tabIndex: -1
869
- })
878
+ "aria-expanded": "false",
879
+ "aria-selected": "false",
880
+ tabIndex: -1
881
+ })
870
882
  .next()
871
883
  .hide();
872
884
 
@@ -876,10 +888,10 @@
876
888
  } else {
877
889
  self.active
878
890
  .attr({
879
- "aria-expanded": "true",
880
- "aria-selected": "true",
881
- tabIndex: 0
882
- });
891
+ "aria-expanded": "true",
892
+ "aria-selected": "true",
893
+ tabIndex: 0
894
+ });
883
895
  }
884
896
 
885
897
  // only need links in tab order for Safari
@@ -1017,16 +1029,16 @@
1017
1029
 
1018
1030
  this.headers.next()
1019
1031
  .each(function() {
1020
- $(this).height(Math.max(0, maxHeight -
1021
- $(this).innerHeight() + $(this).height()));
1022
- })
1032
+ $(this).height(Math.max(0, maxHeight -
1033
+ $(this).innerHeight() + $(this).height()));
1034
+ })
1023
1035
  .css("overflow", "auto");
1024
1036
  } else if (options.autoHeight) {
1025
1037
  maxHeight = 0;
1026
1038
  this.headers.next()
1027
1039
  .each(function() {
1028
- maxHeight = Math.max(maxHeight, $(this).height("").height());
1029
- })
1040
+ maxHeight = Math.max(maxHeight, $(this).height("").height());
1041
+ })
1030
1042
  .height(maxHeight);
1031
1043
  }
1032
1044
 
@@ -1229,17 +1241,17 @@
1229
1241
  // TODO assert that the blur and focus triggers are really necessary, remove otherwise
1230
1242
  toHide.prev()
1231
1243
  .attr({
1232
- "aria-expanded": "false",
1233
- "aria-selected": "false",
1234
- tabIndex: -1
1235
- })
1244
+ "aria-expanded": "false",
1245
+ "aria-selected": "false",
1246
+ tabIndex: -1
1247
+ })
1236
1248
  .blur();
1237
1249
  toShow.prev()
1238
1250
  .attr({
1239
- "aria-expanded": "true",
1240
- "aria-selected": "true",
1241
- tabIndex: 0
1242
- })
1251
+ "aria-expanded": "true",
1252
+ "aria-selected": "true",
1253
+ tabIndex: 0
1254
+ })
1243
1255
  .focus();
1244
1256
  },
1245
1257
 
@@ -1268,7 +1280,7 @@
1268
1280
  });
1269
1281
 
1270
1282
  $.extend($.ui.accordion, {
1271
- version: "1.8.13",
1283
+ version: "1.8.16",
1272
1284
  animations: {
1273
1285
  slide: function(options, additions) {
1274
1286
  options = $.extend({
@@ -1322,32 +1334,32 @@
1322
1334
  .end()
1323
1335
  .filter(":visible")
1324
1336
  .animate(hideProps, {
1325
- step: function(now, settings) {
1326
- // only calculate the percent when animating height
1327
- // IE gets very inconsistent results when animating elements
1328
- // with small values, which is common for padding
1329
- if (settings.prop == "height") {
1330
- percentDone = ( settings.end - settings.start === 0 ) ? 0 :
1331
- ( settings.now - settings.start ) / ( settings.end - settings.start );
1332
- }
1333
-
1334
- options.toShow[ 0 ].style[ settings.prop ] =
1335
- ( percentDone * showProps[ settings.prop ].value )
1336
- + showProps[ settings.prop ].unit;
1337
- },
1338
- duration: options.duration,
1339
- easing: options.easing,
1340
- complete: function() {
1341
- if (!options.autoHeight) {
1342
- options.toShow.css("height", "");
1343
- }
1344
- options.toShow.css({
1345
- width: originalWidth,
1346
- overflow: overflow
1347
- });
1348
- options.complete();
1349
- }
1350
- });
1337
+ step: function(now, settings) {
1338
+ // only calculate the percent when animating height
1339
+ // IE gets very inconsistent results when animating elements
1340
+ // with small values, which is common for padding
1341
+ if (settings.prop == "height") {
1342
+ percentDone = ( settings.end - settings.start === 0 ) ? 0 :
1343
+ ( settings.now - settings.start ) / ( settings.end - settings.start );
1344
+ }
1345
+
1346
+ options.toShow[ 0 ].style[ settings.prop ] =
1347
+ ( percentDone * showProps[ settings.prop ].value )
1348
+ + showProps[ settings.prop ].unit;
1349
+ },
1350
+ duration: options.duration,
1351
+ easing: options.easing,
1352
+ complete: function() {
1353
+ if (!options.autoHeight) {
1354
+ options.toShow.css("height", "");
1355
+ }
1356
+ options.toShow.css({
1357
+ width: originalWidth,
1358
+ overflow: overflow
1359
+ });
1360
+ options.complete();
1361
+ }
1362
+ });
1351
1363
  },
1352
1364
  bounceslide: function(options) {
1353
1365
  this.slide(options, {
@@ -1362,7 +1374,7 @@
1362
1374
 
1363
1375
 
1364
1376
  /*
1365
- * jQuery UI Autocomplete 1.8.13
1377
+ * jQuery UI Autocomplete 1.8.16
1366
1378
  *
1367
1379
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
1368
1380
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -1406,93 +1418,93 @@
1406
1418
  .attr("autocomplete", "off")
1407
1419
  // TODO verify these actually work as intended
1408
1420
  .attr({
1409
- role: "textbox",
1410
- "aria-autocomplete": "list",
1411
- "aria-haspopup": "true"
1412
- })
1421
+ role: "textbox",
1422
+ "aria-autocomplete": "list",
1423
+ "aria-haspopup": "true"
1424
+ })
1413
1425
  .bind("keydown.autocomplete", function(event) {
1414
- if (self.options.disabled || self.element.attr("readonly")) {
1415
- return;
1416
- }
1426
+ if (self.options.disabled || self.element.propAttr("readOnly")) {
1427
+ return;
1428
+ }
1417
1429
 
1418
- suppressKeyPress = false;
1419
- var keyCode = $.ui.keyCode;
1420
- switch (event.keyCode) {
1421
- case keyCode.PAGE_UP:
1422
- self._move("previousPage", event);
1423
- break;
1424
- case keyCode.PAGE_DOWN:
1425
- self._move("nextPage", event);
1426
- break;
1427
- case keyCode.UP:
1428
- self._move("previous", event);
1429
- // prevent moving cursor to beginning of text field in some browsers
1430
- event.preventDefault();
1431
- break;
1432
- case keyCode.DOWN:
1433
- self._move("next", event);
1434
- // prevent moving cursor to end of text field in some browsers
1435
- event.preventDefault();
1436
- break;
1437
- case keyCode.ENTER:
1438
- case keyCode.NUMPAD_ENTER:
1439
- // when menu is open and has focus
1440
- if (self.menu.active) {
1441
- // #6055 - Opera still allows the keypress to occur
1442
- // which causes forms to submit
1443
- suppressKeyPress = true;
1444
- event.preventDefault();
1445
- }
1446
- //passthrough - ENTER and TAB both select the current element
1447
- case keyCode.TAB:
1448
- if (!self.menu.active) {
1449
- return;
1450
- }
1451
- self.menu.select(event);
1452
- break;
1453
- case keyCode.ESCAPE:
1454
- self.element.val(self.term);
1455
- self.close(event);
1456
- break;
1457
- default:
1458
- // keypress is triggered before the input value is changed
1459
- clearTimeout(self.searching);
1460
- self.searching = setTimeout(function() {
1461
- // only search if the value has changed
1462
- if (self.term != self.element.val()) {
1463
- self.selectedItem = null;
1464
- self.search(null, event);
1465
- }
1466
- }, self.options.delay);
1467
- break;
1468
- }
1469
- })
1430
+ suppressKeyPress = false;
1431
+ var keyCode = $.ui.keyCode;
1432
+ switch (event.keyCode) {
1433
+ case keyCode.PAGE_UP:
1434
+ self._move("previousPage", event);
1435
+ break;
1436
+ case keyCode.PAGE_DOWN:
1437
+ self._move("nextPage", event);
1438
+ break;
1439
+ case keyCode.UP:
1440
+ self._move("previous", event);
1441
+ // prevent moving cursor to beginning of text field in some browsers
1442
+ event.preventDefault();
1443
+ break;
1444
+ case keyCode.DOWN:
1445
+ self._move("next", event);
1446
+ // prevent moving cursor to end of text field in some browsers
1447
+ event.preventDefault();
1448
+ break;
1449
+ case keyCode.ENTER:
1450
+ case keyCode.NUMPAD_ENTER:
1451
+ // when menu is open and has focus
1452
+ if (self.menu.active) {
1453
+ // #6055 - Opera still allows the keypress to occur
1454
+ // which causes forms to submit
1455
+ suppressKeyPress = true;
1456
+ event.preventDefault();
1457
+ }
1458
+ //passthrough - ENTER and TAB both select the current element
1459
+ case keyCode.TAB:
1460
+ if (!self.menu.active) {
1461
+ return;
1462
+ }
1463
+ self.menu.select(event);
1464
+ break;
1465
+ case keyCode.ESCAPE:
1466
+ self.element.val(self.term);
1467
+ self.close(event);
1468
+ break;
1469
+ default:
1470
+ // keypress is triggered before the input value is changed
1471
+ clearTimeout(self.searching);
1472
+ self.searching = setTimeout(function() {
1473
+ // only search if the value has changed
1474
+ if (self.term != self.element.val()) {
1475
+ self.selectedItem = null;
1476
+ self.search(null, event);
1477
+ }
1478
+ }, self.options.delay);
1479
+ break;
1480
+ }
1481
+ })
1470
1482
  .bind("keypress.autocomplete", function(event) {
1471
- if (suppressKeyPress) {
1472
- suppressKeyPress = false;
1473
- event.preventDefault();
1474
- }
1475
- })
1483
+ if (suppressKeyPress) {
1484
+ suppressKeyPress = false;
1485
+ event.preventDefault();
1486
+ }
1487
+ })
1476
1488
  .bind("focus.autocomplete", function() {
1477
- if (self.options.disabled) {
1478
- return;
1479
- }
1489
+ if (self.options.disabled) {
1490
+ return;
1491
+ }
1480
1492
 
1481
- self.selectedItem = null;
1482
- self.previous = self.element.val();
1483
- })
1493
+ self.selectedItem = null;
1494
+ self.previous = self.element.val();
1495
+ })
1484
1496
  .bind("blur.autocomplete", function(event) {
1485
- if (self.options.disabled) {
1486
- return;
1487
- }
1497
+ if (self.options.disabled) {
1498
+ return;
1499
+ }
1488
1500
 
1489
- clearTimeout(self.searching);
1490
- // clicks on the menu (or a button to trigger a search) will cause a blur event
1491
- self.closing = setTimeout(function() {
1492
- self.close(event);
1493
- self._change(event);
1494
- }, 150);
1495
- });
1501
+ clearTimeout(self.searching);
1502
+ // clicks on the menu (or a button to trigger a search) will cause a blur event
1503
+ self.closing = setTimeout(function() {
1504
+ self.close(event);
1505
+ self._change(event);
1506
+ }, 150);
1507
+ });
1496
1508
  this._initSource();
1497
1509
  this.response = function() {
1498
1510
  return self._response.apply(self, arguments);
@@ -1502,74 +1514,74 @@
1502
1514
  .appendTo($(this.options.appendTo || "body", doc)[0])
1503
1515
  // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
1504
1516
  .mousedown(function(event) {
1505
- // clicking on the scrollbar causes focus to shift to the body
1506
- // but we can't detect a mouseup or a click immediately afterward
1507
- // so we have to track the next mousedown and close the menu if
1508
- // the user clicks somewhere outside of the autocomplete
1509
- var menuElement = self.menu.element[ 0 ];
1510
- if (!$(event.target).closest(".ui-menu-item").length) {
1511
- setTimeout(function() {
1512
- $(document).one('mousedown', function(event) {
1513
- if (event.target !== self.element[ 0 ] &&
1514
- event.target !== menuElement &&
1515
- !$.ui.contains(menuElement, event.target)) {
1516
- self.close();
1517
- }
1518
- });
1519
- }, 1);
1520
- }
1517
+ // clicking on the scrollbar causes focus to shift to the body
1518
+ // but we can't detect a mouseup or a click immediately afterward
1519
+ // so we have to track the next mousedown and close the menu if
1520
+ // the user clicks somewhere outside of the autocomplete
1521
+ var menuElement = self.menu.element[ 0 ];
1522
+ if (!$(event.target).closest(".ui-menu-item").length) {
1523
+ setTimeout(function() {
1524
+ $(document).one('mousedown', function(event) {
1525
+ if (event.target !== self.element[ 0 ] &&
1526
+ event.target !== menuElement &&
1527
+ !$.ui.contains(menuElement, event.target)) {
1528
+ self.close();
1529
+ }
1530
+ });
1531
+ }, 1);
1532
+ }
1521
1533
 
1522
- // use another timeout to make sure the blur-event-handler on the input was already triggered
1523
- setTimeout(function() {
1524
- clearTimeout(self.closing);
1525
- }, 13);
1526
- })
1534
+ // use another timeout to make sure the blur-event-handler on the input was already triggered
1535
+ setTimeout(function() {
1536
+ clearTimeout(self.closing);
1537
+ }, 13);
1538
+ })
1527
1539
  .menu({
1528
- focus: function(event, ui) {
1529
- var item = ui.item.data("item.autocomplete");
1530
- if (false !== self._trigger("focus", event, { item: item })) {
1531
- // use value to match what will end up in the input, if it was a key event
1532
- if (/^key/.test(event.originalEvent.type)) {
1533
- self.element.val(item.value);
1534
- }
1535
- }
1536
- },
1537
- selected: function(event, ui) {
1538
- var item = ui.item.data("item.autocomplete"),
1539
- previous = self.previous;
1540
-
1541
- // only trigger when focus was lost (click on menu)
1542
- if (self.element[0] !== doc.activeElement) {
1543
- self.element.focus();
1544
- self.previous = previous;
1545
- // #6109 - IE triggers two focus events and the second
1546
- // is asynchronous, so we need to reset the previous
1547
- // term synchronously and asynchronously :-(
1548
- setTimeout(function() {
1549
- self.previous = previous;
1550
- self.selectedItem = item;
1551
- }, 1);
1552
- }
1540
+ focus: function(event, ui) {
1541
+ var item = ui.item.data("item.autocomplete");
1542
+ if (false !== self._trigger("focus", event, { item: item })) {
1543
+ // use value to match what will end up in the input, if it was a key event
1544
+ if (/^key/.test(event.originalEvent.type)) {
1545
+ self.element.val(item.value);
1546
+ }
1547
+ }
1548
+ },
1549
+ selected: function(event, ui) {
1550
+ var item = ui.item.data("item.autocomplete"),
1551
+ previous = self.previous;
1552
+
1553
+ // only trigger when focus was lost (click on menu)
1554
+ if (self.element[0] !== doc.activeElement) {
1555
+ self.element.focus();
1556
+ self.previous = previous;
1557
+ // #6109 - IE triggers two focus events and the second
1558
+ // is asynchronous, so we need to reset the previous
1559
+ // term synchronously and asynchronously :-(
1560
+ setTimeout(function() {
1561
+ self.previous = previous;
1562
+ self.selectedItem = item;
1563
+ }, 1);
1564
+ }
1553
1565
 
1554
- if (false !== self._trigger("select", event, { item: item })) {
1555
- self.element.val(item.value);
1556
- }
1557
- // reset the term after the select event
1558
- // this allows custom select handling to work properly
1559
- self.term = self.element.val();
1566
+ if (false !== self._trigger("select", event, { item: item })) {
1567
+ self.element.val(item.value);
1568
+ }
1569
+ // reset the term after the select event
1570
+ // this allows custom select handling to work properly
1571
+ self.term = self.element.val();
1560
1572
 
1561
- self.close(event);
1562
- self.selectedItem = item;
1563
- },
1564
- blur: function(event, ui) {
1565
- // don't set the value of the text field if it's already correct
1566
- // this prevents moving the cursor unnecessarily
1567
- if (self.menu.element.is(":visible") &&
1568
- ( self.element.val() !== self.term )) {
1569
- self.element.val(self.term);
1570
- }
1571
- }
1572
- })
1573
+ self.close(event);
1574
+ self.selectedItem = item;
1575
+ },
1576
+ blur: function(event, ui) {
1577
+ // don't set the value of the text field if it's already correct
1578
+ // this prevents moving the cursor unnecessarily
1579
+ if (self.menu.element.is(":visible") &&
1580
+ ( self.element.val() !== self.term )) {
1581
+ self.element.val(self.term);
1582
+ }
1583
+ }
1584
+ })
1573
1585
  .zIndex(this.element.zIndex() + 1)
1574
1586
  // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
1575
1587
  .css({ top: 0, left: 0 })
@@ -1740,7 +1752,7 @@
1740
1752
  ul.outerWidth(Math.max(
1741
1753
  ul.width("").outerWidth(),
1742
1754
  this.element.outerWidth()
1743
- ));
1755
+ ));
1744
1756
  },
1745
1757
 
1746
1758
  _renderMenu: function(ul, items) {
@@ -1815,17 +1827,17 @@
1815
1827
  this.element
1816
1828
  .addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
1817
1829
  .attr({
1818
- role: "listbox",
1819
- "aria-activedescendant": "ui-active-menuitem"
1820
- })
1830
+ role: "listbox",
1831
+ "aria-activedescendant": "ui-active-menuitem"
1832
+ })
1821
1833
  .click(function(event) {
1822
- if (!$(event.target).closest(".ui-menu-item a").length) {
1823
- return;
1824
- }
1825
- // temporary
1826
- event.preventDefault();
1827
- self.select(event);
1828
- });
1834
+ if (!$(event.target).closest(".ui-menu-item a").length) {
1835
+ return;
1836
+ }
1837
+ // temporary
1838
+ event.preventDefault();
1839
+ self.select(event);
1840
+ });
1829
1841
  this.refresh();
1830
1842
  },
1831
1843
 
@@ -1842,11 +1854,11 @@
1842
1854
  .attr("tabindex", -1)
1843
1855
  // mouseenter doesn't work with event delegation
1844
1856
  .mouseenter(function(event) {
1845
- self.activate(event, $(this).parent());
1846
- })
1857
+ self.activate(event, $(this).parent());
1858
+ })
1847
1859
  .mouseleave(function() {
1848
- self.deactivate();
1849
- });
1860
+ self.deactivate();
1861
+ });
1850
1862
  },
1851
1863
 
1852
1864
  activate: function(event, item) {
@@ -1978,7 +1990,7 @@
1978
1990
 
1979
1991
 
1980
1992
  /*
1981
- * jQuery UI Button 1.8.13
1993
+ * jQuery UI Button 1.8.16
1982
1994
  *
1983
1995
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
1984
1996
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -1992,17 +2004,15 @@
1992
2004
  */
1993
2005
  (function($, undefined) {
1994
2006
 
1995
- var lastActive,
2007
+ var lastActive, startXPos, startYPos, clickDragged,
1996
2008
  baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
1997
2009
  stateClasses = "ui-state-hover ui-state-active ",
1998
2010
  typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
1999
- formResetHandler = function(event) {
2000
- $(":ui-button", event.target.form).each(function() {
2001
- var inst = $(this).data("button");
2002
- setTimeout(function() {
2003
- inst.refresh();
2004
- }, 1);
2005
- });
2011
+ formResetHandler = function() {
2012
+ var buttons = $(this).find(":ui-button");
2013
+ setTimeout(function() {
2014
+ buttons.button("refresh");
2015
+ }, 1);
2006
2016
  },
2007
2017
  radioGroup = function(radio) {
2008
2018
  var name = radio.name,
@@ -2014,8 +2024,8 @@
2014
2024
  } else {
2015
2025
  radios = $("[name='" + name + "']", radio.ownerDocument)
2016
2026
  .filter(function() {
2017
- return !this.form;
2018
- });
2027
+ return !this.form;
2028
+ });
2019
2029
  }
2020
2030
  }
2021
2031
  return radios;
@@ -2037,7 +2047,7 @@
2037
2047
  .bind("reset.button", formResetHandler);
2038
2048
 
2039
2049
  if (typeof this.options.disabled !== "boolean") {
2040
- this.options.disabled = this.element.attr("disabled");
2050
+ this.options.disabled = this.element.propAttr("disabled");
2041
2051
  }
2042
2052
 
2043
2053
  this._determineButtonType();
@@ -2061,42 +2071,68 @@
2061
2071
  .addClass(baseClasses)
2062
2072
  .attr("role", "button")
2063
2073
  .bind("mouseenter.button", function() {
2064
- if (options.disabled) {
2065
- return;
2066
- }
2067
- $(this).addClass("ui-state-hover");
2068
- if (this === lastActive) {
2069
- $(this).addClass("ui-state-active");
2070
- }
2071
- })
2074
+ if (options.disabled) {
2075
+ return;
2076
+ }
2077
+ $(this).addClass("ui-state-hover");
2078
+ if (this === lastActive) {
2079
+ $(this).addClass("ui-state-active");
2080
+ }
2081
+ })
2072
2082
  .bind("mouseleave.button", function() {
2073
- if (options.disabled) {
2074
- return;
2075
- }
2076
- $(this).removeClass(hoverClass);
2077
- })
2083
+ if (options.disabled) {
2084
+ return;
2085
+ }
2086
+ $(this).removeClass(hoverClass);
2087
+ })
2088
+ .bind("click.button", function(event) {
2089
+ if (options.disabled) {
2090
+ event.preventDefault();
2091
+ event.stopImmediatePropagation();
2092
+ }
2093
+ });
2094
+
2095
+ this.element
2078
2096
  .bind("focus.button", function() {
2079
2097
  // no need to check disabled, focus won't be triggered anyway
2080
- $(this).addClass(focusClass);
2098
+ self.buttonElement.addClass(focusClass);
2081
2099
  })
2082
2100
  .bind("blur.button", function() {
2083
- $(this).removeClass(focusClass);
2084
- })
2085
- .bind("click.button", function(event) {
2086
- if (options.disabled) {
2087
- event.stopImmediatePropagation();
2088
- }
2089
- });
2101
+ self.buttonElement.removeClass(focusClass);
2102
+ });
2090
2103
 
2091
2104
  if (toggleButton) {
2092
2105
  this.element.bind("change.button", function() {
2106
+ if (clickDragged) {
2107
+ return;
2108
+ }
2093
2109
  self.refresh();
2094
2110
  });
2111
+ // if mouse moves between mousedown and mouseup (drag) set clickDragged flag
2112
+ // prevents issue where button state changes but checkbox/radio checked state
2113
+ // does not in Firefox (see ticket #6970)
2114
+ this.buttonElement
2115
+ .bind("mousedown.button", function(event) {
2116
+ if (options.disabled) {
2117
+ return;
2118
+ }
2119
+ clickDragged = false;
2120
+ startXPos = event.pageX;
2121
+ startYPos = event.pageY;
2122
+ })
2123
+ .bind("mouseup.button", function(event) {
2124
+ if (options.disabled) {
2125
+ return;
2126
+ }
2127
+ if (startXPos !== event.pageX || startYPos !== event.pageY) {
2128
+ clickDragged = true;
2129
+ }
2130
+ });
2095
2131
  }
2096
2132
 
2097
2133
  if (this.type === "checkbox") {
2098
2134
  this.buttonElement.bind("click.button", function() {
2099
- if (options.disabled) {
2135
+ if (options.disabled || clickDragged) {
2100
2136
  return false;
2101
2137
  }
2102
2138
  $(this).toggleClass("ui-state-active");
@@ -2104,20 +2140,20 @@
2104
2140
  });
2105
2141
  } else if (this.type === "radio") {
2106
2142
  this.buttonElement.bind("click.button", function() {
2107
- if (options.disabled) {
2143
+ if (options.disabled || clickDragged) {
2108
2144
  return false;
2109
2145
  }
2110
2146
  $(this).addClass("ui-state-active");
2111
- self.buttonElement.attr("aria-pressed", true);
2147
+ self.buttonElement.attr("aria-pressed", "true");
2112
2148
 
2113
2149
  var radio = self.element[ 0 ];
2114
2150
  radioGroup(radio)
2115
2151
  .not(radio)
2116
2152
  .map(function() {
2117
- return $(this).button("widget")[ 0 ];
2118
- })
2153
+ return $(this).button("widget")[ 0 ];
2154
+ })
2119
2155
  .removeClass("ui-state-active")
2120
- .attr("aria-pressed", false);
2156
+ .attr("aria-pressed", "false");
2121
2157
  });
2122
2158
  } else {
2123
2159
  this.buttonElement
@@ -2132,22 +2168,22 @@
2132
2168
  });
2133
2169
  })
2134
2170
  .bind("mouseup.button", function() {
2135
- if (options.disabled) {
2136
- return false;
2137
- }
2138
- $(this).removeClass("ui-state-active");
2139
- })
2171
+ if (options.disabled) {
2172
+ return false;
2173
+ }
2174
+ $(this).removeClass("ui-state-active");
2175
+ })
2140
2176
  .bind("keydown.button", function(event) {
2141
- if (options.disabled) {
2142
- return false;
2143
- }
2144
- if (event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER) {
2145
- $(this).addClass("ui-state-active");
2146
- }
2147
- })
2177
+ if (options.disabled) {
2178
+ return false;
2179
+ }
2180
+ if (event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER) {
2181
+ $(this).addClass("ui-state-active");
2182
+ }
2183
+ })
2148
2184
  .bind("keyup.button", function() {
2149
- $(this).removeClass("ui-state-active");
2150
- });
2185
+ $(this).removeClass("ui-state-active");
2186
+ });
2151
2187
 
2152
2188
  if (this.buttonElement.is("a")) {
2153
2189
  this.buttonElement.keyup(function(event) {
@@ -2163,6 +2199,7 @@
2163
2199
  // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
2164
2200
  // be overridden by individual plugins
2165
2201
  this._setOption("disabled", options.disabled);
2202
+ this._resetButton();
2166
2203
  },
2167
2204
 
2168
2205
  _determineButtonType: function() {
@@ -2181,7 +2218,7 @@
2181
2218
  // we don't search against the document in case the element
2182
2219
  // is disconnected from the DOM
2183
2220
  var ancestor = this.element.parents().filter(":last"),
2184
- labelSelector = "label[for=" + this.element.attr("id") + "]";
2221
+ labelSelector = "label[for='" + this.element.attr("id") + "']";
2185
2222
  this.buttonElement = ancestor.find(labelSelector);
2186
2223
  if (!this.buttonElement.length) {
2187
2224
  ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
@@ -2226,10 +2263,11 @@
2226
2263
  $.Widget.prototype._setOption.apply(this, arguments);
2227
2264
  if (key === "disabled") {
2228
2265
  if (value) {
2229
- this.element.attr("disabled", true);
2266
+ this.element.propAttr("disabled", true);
2230
2267
  } else {
2231
- this.element.removeAttr("disabled");
2268
+ this.element.propAttr("disabled", false);
2232
2269
  }
2270
+ return;
2233
2271
  }
2234
2272
  this._resetButton();
2235
2273
  },
@@ -2244,22 +2282,22 @@
2244
2282
  if ($(this).is(":checked")) {
2245
2283
  $(this).button("widget")
2246
2284
  .addClass("ui-state-active")
2247
- .attr("aria-pressed", true);
2285
+ .attr("aria-pressed", "true");
2248
2286
  } else {
2249
2287
  $(this).button("widget")
2250
2288
  .removeClass("ui-state-active")
2251
- .attr("aria-pressed", false);
2289
+ .attr("aria-pressed", "false");
2252
2290
  }
2253
2291
  });
2254
2292
  } else if (this.type === "checkbox") {
2255
2293
  if (this.element.is(":checked")) {
2256
2294
  this.buttonElement
2257
2295
  .addClass("ui-state-active")
2258
- .attr("aria-pressed", true);
2296
+ .attr("aria-pressed", "true");
2259
2297
  } else {
2260
2298
  this.buttonElement
2261
2299
  .removeClass("ui-state-active")
2262
- .attr("aria-pressed", false);
2300
+ .attr("aria-pressed", "false");
2263
2301
  }
2264
2302
  }
2265
2303
  },
@@ -2330,6 +2368,8 @@
2330
2368
  },
2331
2369
 
2332
2370
  refresh: function() {
2371
+ var ltr = this.element.css("direction") === "ltr";
2372
+
2333
2373
  this.buttons = this.element.find(this.options.items)
2334
2374
  .filter(":ui-button")
2335
2375
  .button("refresh")
@@ -2338,14 +2378,14 @@
2338
2378
  .button()
2339
2379
  .end()
2340
2380
  .map(function() {
2341
- return $(this).button("widget")[ 0 ];
2342
- })
2381
+ return $(this).button("widget")[ 0 ];
2382
+ })
2343
2383
  .removeClass("ui-corner-all ui-corner-left ui-corner-right")
2344
2384
  .filter(":first")
2345
- .addClass("ui-corner-left")
2385
+ .addClass(ltr ? "ui-corner-left" : "ui-corner-right")
2346
2386
  .end()
2347
2387
  .filter(":last")
2348
- .addClass("ui-corner-right")
2388
+ .addClass(ltr ? "ui-corner-right" : "ui-corner-left")
2349
2389
  .end()
2350
2390
  .end();
2351
2391
  },
@@ -2368,7 +2408,7 @@
2368
2408
 
2369
2409
 
2370
2410
  /*
2371
- * jQuery UI Datepicker 1.8.13
2411
+ * jQuery UI Datepicker 1.8.16
2372
2412
  *
2373
2413
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
2374
2414
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -2381,7 +2421,7 @@
2381
2421
  */
2382
2422
  (function($, undefined) {
2383
2423
 
2384
- $.extend($.ui, { datepicker: { version: "1.8.13" } });
2424
+ $.extend($.ui, { datepicker: { version: "1.8.16" } });
2385
2425
 
2386
2426
  var PROP_NAME = 'datepicker';
2387
2427
  var dpuuid = new Date().getTime();
@@ -2474,7 +2514,8 @@
2474
2514
  altFormat: '', // The date format to use for the alternate field
2475
2515
  constrainInput: true, // The input is constrained by the current date format
2476
2516
  showButtonPanel: false, // True to show button panel, false to not show it
2477
- autoSize: false // True to size the input for the date format, false to leave as is
2517
+ autoSize: false, // True to size the input for the date format, false to leave as is
2518
+ disabled: false // The initial disabled state
2478
2519
  };
2479
2520
  $.extend(this._defaults, this.regional['']);
2480
2521
  this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
@@ -2484,6 +2525,9 @@
2484
2525
  /* Class name added to elements to indicate already configured with a date picker. */
2485
2526
  markerClassName: 'hasDatepicker',
2486
2527
 
2528
+ //Keep track of the maximum number of rows displayed (see #7043)
2529
+ maxRows: 4,
2530
+
2487
2531
  /* Debug logging (if enabled). */
2488
2532
  log: function () {
2489
2533
  if (this.debug)
@@ -2560,10 +2604,14 @@
2560
2604
  function(event, key, value) {
2561
2605
  inst.settings[key] = value;
2562
2606
  }).bind("getData.datepicker", function(event, key) {
2563
- return this._get(inst, key);
2564
- });
2607
+ return this._get(inst, key);
2608
+ });
2565
2609
  this._autoSize(inst);
2566
2610
  $.data(target, PROP_NAME, inst);
2611
+ //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
2612
+ if (inst.settings.disabled) {
2613
+ this._disableDatepicker(target);
2614
+ }
2567
2615
  },
2568
2616
 
2569
2617
  /* Make attachments based on settings. */
@@ -2590,7 +2638,7 @@
2590
2638
  attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
2591
2639
  $('<button type="button"></button>').addClass(this._triggerClass).
2592
2640
  html(buttonImage == '' ? buttonText : $('<img/>').attr(
2593
- { src:buttonImage, alt:buttonText, title:buttonText })));
2641
+ { src:buttonImage, alt:buttonText, title:buttonText })));
2594
2642
  input[isRTL ? 'before' : 'after'](inst.trigger);
2595
2643
  inst.trigger.click(function() {
2596
2644
  if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
@@ -2638,13 +2686,19 @@
2638
2686
  function(event, key, value) {
2639
2687
  inst.settings[key] = value;
2640
2688
  }).bind("getData.datepicker", function(event, key) {
2641
- return this._get(inst, key);
2642
- });
2689
+ return this._get(inst, key);
2690
+ });
2643
2691
  $.data(target, PROP_NAME, inst);
2644
2692
  this._setDate(inst, this._getDefaultDate(inst), true);
2645
2693
  this._updateDatepicker(inst);
2646
2694
  this._updateAlternate(inst);
2647
- inst.dpDiv.show();
2695
+ //If disabled option is true, disable the datepicker before showing it (see ticket #5665)
2696
+ if (inst.settings.disabled) {
2697
+ this._disableDatepicker(target);
2698
+ }
2699
+ // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
2700
+ // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
2701
+ inst.dpDiv.css("display", "block");
2648
2702
  },
2649
2703
 
2650
2704
  /* Pop-up the date picker in a "dialog" box.
@@ -2891,34 +2945,49 @@
2891
2945
  inst._keyEvent = true;
2892
2946
  if ($.datepicker._datepickerShowing)
2893
2947
  switch (event.keyCode) {
2894
- case 9: $.datepicker._hideDatepicker();
2948
+ case 9:
2949
+ $.datepicker._hideDatepicker();
2895
2950
  handled = false;
2896
2951
  break; // hide on tab out
2897
- case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
2898
- $.datepicker._currentClass + ')', inst.dpDiv);
2952
+ case 13:
2953
+ var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
2954
+ $.datepicker._currentClass + ')', inst.dpDiv);
2899
2955
  if (sel[0])
2900
2956
  $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
2957
+ var onSelect = $.datepicker._get(inst, 'onSelect');
2958
+ if (onSelect) {
2959
+ var dateStr = $.datepicker._formatDate(inst);
2960
+
2961
+ // trigger custom callback
2962
+ onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
2963
+ }
2901
2964
  else
2902
2965
  $.datepicker._hideDatepicker();
2903
2966
  return false; // don't submit the form
2904
2967
  break; // select the value on enter
2905
- case 27: $.datepicker._hideDatepicker();
2968
+ case 27:
2969
+ $.datepicker._hideDatepicker();
2906
2970
  break; // hide on escape
2907
- case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
2908
- -$.datepicker._get(inst, 'stepBigMonths') :
2909
- -$.datepicker._get(inst, 'stepMonths')), 'M');
2971
+ case 33:
2972
+ $.datepicker._adjustDate(event.target, (event.ctrlKey ?
2973
+ -$.datepicker._get(inst, 'stepBigMonths') :
2974
+ -$.datepicker._get(inst, 'stepMonths')), 'M');
2910
2975
  break; // previous month/year on page up/+ ctrl
2911
- case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
2912
- +$.datepicker._get(inst, 'stepBigMonths') :
2913
- +$.datepicker._get(inst, 'stepMonths')), 'M');
2976
+ case 34:
2977
+ $.datepicker._adjustDate(event.target, (event.ctrlKey ?
2978
+ +$.datepicker._get(inst, 'stepBigMonths') :
2979
+ +$.datepicker._get(inst, 'stepMonths')), 'M');
2914
2980
  break; // next month/year on page down/+ ctrl
2915
- case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
2981
+ case 35:
2982
+ if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
2916
2983
  handled = event.ctrlKey || event.metaKey;
2917
2984
  break; // clear on ctrl or command +end
2918
- case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
2985
+ case 36:
2986
+ if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
2919
2987
  handled = event.ctrlKey || event.metaKey;
2920
2988
  break; // current on ctrl or command +home
2921
- case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
2989
+ case 37:
2990
+ if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
2922
2991
  handled = event.ctrlKey || event.metaKey;
2923
2992
  // -1 day on ctrl or command +left
2924
2993
  if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
@@ -2926,10 +2995,12 @@
2926
2995
  -$.datepicker._get(inst, 'stepMonths')), 'M');
2927
2996
  // next month/year on alt +left on Mac
2928
2997
  break;
2929
- case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
2998
+ case 38:
2999
+ if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
2930
3000
  handled = event.ctrlKey || event.metaKey;
2931
3001
  break; // -1 week on ctrl or command +up
2932
- case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
3002
+ case 39:
3003
+ if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
2933
3004
  handled = event.ctrlKey || event.metaKey;
2934
3005
  // +1 day on ctrl or command +right
2935
3006
  if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
@@ -2937,10 +3008,12 @@
2937
3008
  +$.datepicker._get(inst, 'stepMonths')), 'M');
2938
3009
  // next month/year on alt +right
2939
3010
  break;
2940
- case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
3011
+ case 40:
3012
+ if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
2941
3013
  handled = event.ctrlKey || event.metaKey;
2942
3014
  break; // +1 week on ctrl or command +down
2943
- default: handled = false;
3015
+ default:
3016
+ handled = false;
2944
3017
  }
2945
3018
  else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
2946
3019
  $.datepicker._showDatepicker(this);
@@ -2985,6 +3058,7 @@
2985
3058
  },
2986
3059
 
2987
3060
  /* Pop-up the date picker for a given input field.
3061
+ If false returned from beforeShow event handler do not show.
2988
3062
  @param input element - the input field attached to the date picker or
2989
3063
  event - if triggered by focus */
2990
3064
  _showDatepicker: function(input) {
@@ -2995,10 +3069,18 @@
2995
3069
  return;
2996
3070
  var inst = $.datepicker._getInst(input);
2997
3071
  if ($.datepicker._curInst && $.datepicker._curInst != inst) {
3072
+ if ($.datepicker._datepickerShowing) {
3073
+ $.datepicker._triggerOnClose($.datepicker._curInst);
3074
+ }
2998
3075
  $.datepicker._curInst.dpDiv.stop(true, true);
2999
3076
  }
3000
3077
  var beforeShow = $.datepicker._get(inst, 'beforeShow');
3001
- extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
3078
+ var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
3079
+ if (beforeShowSettings === false) {
3080
+ //false
3081
+ return;
3082
+ }
3083
+ extendRemove(inst.settings, beforeShowSettings);
3002
3084
  inst.lastVal = null;
3003
3085
  $.datepicker._lastInput = input;
3004
3086
  $.datepicker._setDateFromField(inst);
@@ -3058,6 +3140,7 @@
3058
3140
  /* Generate the date picker content. */
3059
3141
  _updateDatepicker: function(inst) {
3060
3142
  var self = this;
3143
+ self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
3061
3144
  var borders = $.datepicker._getBorders(inst.dpDiv);
3062
3145
  instActive = inst; // for delegate hover events
3063
3146
  inst.dpDiv.empty().append(this._generateHTML(inst));
@@ -3138,6 +3221,14 @@
3138
3221
  return [position.left, position.top];
3139
3222
  },
3140
3223
 
3224
+ /* Trigger custom callback of onClose. */
3225
+ _triggerOnClose: function(inst) {
3226
+ var onClose = this._get(inst, 'onClose');
3227
+ if (onClose)
3228
+ onClose.apply((inst.input ? inst.input[0] : null),
3229
+ [(inst.input ? inst.input.val() : ''), inst]);
3230
+ },
3231
+
3141
3232
  /* Hide the date picker from view.
3142
3233
  @param input element - the input field attached to the date picker */
3143
3234
  _hideDatepicker: function(input) {
@@ -3158,10 +3249,7 @@
3158
3249
  (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
3159
3250
  if (!showAnim)
3160
3251
  postProcess();
3161
- var onClose = this._get(inst, 'onClose');
3162
- if (onClose)
3163
- onClose.apply((inst.input ? inst.input[0] : null),
3164
- [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
3252
+ $.datepicker._triggerOnClose(inst);
3165
3253
  this._datepickerShowing = false;
3166
3254
  this._lastInput = null;
3167
3255
  if (this._inDialog) {
@@ -3229,7 +3317,6 @@
3229
3317
  _selectMonthYear: function(id, select, period) {
3230
3318
  var target = $(id);
3231
3319
  var inst = this._getInst(target[0]);
3232
- inst._selectingMonthYear = false;
3233
3320
  inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
3234
3321
  inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
3235
3322
  parseInt(select.options[select.selectedIndex].value, 10);
@@ -3237,18 +3324,6 @@
3237
3324
  this._adjustDate(target);
3238
3325
  },
3239
3326
 
3240
- /* Restore input focus after not changing month/year. */
3241
- _clickMonthYear: function(id) {
3242
- var target = $(id);
3243
- var inst = this._getInst(target[0]);
3244
- if (inst.input && inst._selectingMonthYear) {
3245
- setTimeout(function() {
3246
- inst.input.focus();
3247
- }, 0);
3248
- }
3249
- inst._selectingMonthYear = !inst._selectingMonthYear;
3250
- },
3251
-
3252
3327
  /* Action for selecting a day. */
3253
3328
  _selectDay: function(id, month, year, td) {
3254
3329
  var target = $(id);
@@ -3385,8 +3460,8 @@
3385
3460
  [k, v]
3386
3461
  ];
3387
3462
  }).sort(function (a, b) {
3388
- return -(a[1].length - b[1].length);
3389
- });
3463
+ return -(a[1].length - b[1].length);
3464
+ });
3390
3465
  var index = -1;
3391
3466
  $.each(names, function (i, pair) {
3392
3467
  var name = pair[1];
@@ -3456,6 +3531,9 @@
3456
3531
  checkLiteral();
3457
3532
  }
3458
3533
  }
3534
+ if (iValue < value.length) {
3535
+ throw "Extra/unparsed characters found in date: " + value.substring(iValue);
3536
+ }
3459
3537
  if (year == -1)
3460
3538
  year = new Date().getFullYear();
3461
3539
  else if (year < 100)
@@ -3567,7 +3645,7 @@
3567
3645
  break;
3568
3646
  case 'o':
3569
3647
  output += formatNumber('o',
3570
- (date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
3648
+ Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
3571
3649
  break;
3572
3650
  case 'm':
3573
3651
  output += formatNumber('m', date.getMonth() + 1, 2);
@@ -3617,11 +3695,15 @@
3617
3695
  chars += format.charAt(iFormat);
3618
3696
  else
3619
3697
  switch (format.charAt(iFormat)) {
3620
- case 'd': case 'm': case 'y': case '@':
3621
- chars += '0123456789';
3622
- break;
3623
- case 'D': case 'M':
3624
- return null; // Accept anything
3698
+ case 'd':
3699
+ case 'm':
3700
+ case 'y':
3701
+ case '@':
3702
+ chars += '0123456789';
3703
+ break;
3704
+ case 'D':
3705
+ case 'M':
3706
+ return null; // Accept anything
3625
3707
  case "'":
3626
3708
  if (lookAhead("'"))
3627
3709
  chars += "'";
@@ -3695,18 +3777,24 @@
3695
3777
  var matches = pattern.exec(offset);
3696
3778
  while (matches) {
3697
3779
  switch (matches[2] || 'd') {
3698
- case 'd' : case 'D' :
3699
- day += parseInt(matches[1], 10); break;
3700
- case 'w' : case 'W' :
3701
- day += parseInt(matches[1], 10) * 7; break;
3702
- case 'm' : case 'M' :
3703
- month += parseInt(matches[1], 10);
3704
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
3705
- break;
3706
- case 'y': case 'Y' :
3707
- year += parseInt(matches[1], 10);
3708
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
3709
- break;
3780
+ case 'd' :
3781
+ case 'D' :
3782
+ day += parseInt(matches[1], 10);
3783
+ break;
3784
+ case 'w' :
3785
+ case 'W' :
3786
+ day += parseInt(matches[1], 10) * 7;
3787
+ break;
3788
+ case 'm' :
3789
+ case 'M' :
3790
+ month += parseInt(matches[1], 10);
3791
+ day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
3792
+ break;
3793
+ case 'y':
3794
+ case 'Y' :
3795
+ year += parseInt(matches[1], 10);
3796
+ day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
3797
+ break;
3710
3798
  }
3711
3799
  matches = pattern.exec(offset);
3712
3800
  }
@@ -3842,6 +3930,7 @@
3842
3930
  var html = '';
3843
3931
  for (var row = 0; row < numMonths[0]; row++) {
3844
3932
  var group = '';
3933
+ this.maxRows = 4;
3845
3934
  for (var col = 0; col < numMonths[1]; col++) {
3846
3935
  var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
3847
3936
  var cornerClass = ' ui-corner-all';
@@ -3850,11 +3939,18 @@
3850
3939
  calender += '<div class="ui-datepicker-group';
3851
3940
  if (numMonths[1] > 1)
3852
3941
  switch (col) {
3853
- case 0: calender += ' ui-datepicker-group-first';
3854
- cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
3855
- case numMonths[1] - 1: calender += ' ui-datepicker-group-last';
3856
- cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
3857
- default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
3942
+ case 0:
3943
+ calender += ' ui-datepicker-group-first';
3944
+ cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left');
3945
+ break;
3946
+ case numMonths[1] - 1:
3947
+ calender += ' ui-datepicker-group-last';
3948
+ cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right');
3949
+ break;
3950
+ default:
3951
+ calender += ' ui-datepicker-group-middle';
3952
+ cornerClass = '';
3953
+ break;
3858
3954
  }
3859
3955
  calender += '">';
3860
3956
  }
@@ -3876,7 +3972,9 @@
3876
3972
  if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
3877
3973
  inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
3878
3974
  var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
3879
- var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
3975
+ var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
3976
+ var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
3977
+ this.maxRows = numRows;
3880
3978
  var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
3881
3979
  for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
3882
3980
  calender += '<tr>';
@@ -3945,7 +4043,6 @@
3945
4043
  var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
3946
4044
  monthHtml += '<select class="ui-datepicker-month" ' +
3947
4045
  'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
3948
- 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
3949
4046
  '>';
3950
4047
  for (var month = 0; month < 12; month++) {
3951
4048
  if ((!inMinYear || month >= minDate.getMonth()) &&
@@ -3979,7 +4076,6 @@
3979
4076
  endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
3980
4077
  inst.yearshtml += '<select class="ui-datepicker-year" ' +
3981
4078
  'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
3982
- 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
3983
4079
  '>';
3984
4080
  for (; year <= endYear; year++) {
3985
4081
  inst.yearshtml += '<option value="' + year + '"' +
@@ -4101,19 +4197,24 @@
4101
4197
  */
4102
4198
  function bindHover(dpDiv) {
4103
4199
  var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
4104
- return dpDiv.delegate(selector, 'mouseout', function() {
4105
- $(this).removeClass('ui-state-hover');
4106
- if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
4107
- if (this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
4108
- })
4109
- .delegate(selector, 'mouseover', function() {
4110
- if (!$.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) {
4111
- $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
4112
- $(this).addClass('ui-state-hover');
4113
- if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
4114
- if (this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
4200
+ return dpDiv.bind('mouseout', function(event) {
4201
+ var elem = $(event.target).closest(selector);
4202
+ if (!elem.length) {
4203
+ return;
4115
4204
  }
4116
- });
4205
+ elem.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover");
4206
+ })
4207
+ .bind('mouseover', function(event) {
4208
+ var elem = $(event.target).closest(selector);
4209
+ if ($.datepicker._isDisabledDatepicker(instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
4210
+ !elem.length) {
4211
+ return;
4212
+ }
4213
+ elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
4214
+ elem.addClass('ui-state-hover');
4215
+ if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
4216
+ if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
4217
+ });
4117
4218
  }
4118
4219
 
4119
4220
  /* jQuery extend now ignores nulls! */
@@ -4171,7 +4272,7 @@
4171
4272
  $.datepicker = new Datepicker(); // singleton instance
4172
4273
  $.datepicker.initialized = false;
4173
4274
  $.datepicker.uuid = new Date().getTime();
4174
- $.datepicker.version = "1.8.13";
4275
+ $.datepicker.version = "1.8.16";
4175
4276
 
4176
4277
  // Workaround for #4055
4177
4278
  // Add another global to avoid noConflict issues with inline event handlers
@@ -4181,7 +4282,7 @@
4181
4282
 
4182
4283
 
4183
4284
  /*
4184
- * jQuery UI Dialog 1.8.13
4285
+ * jQuery UI Dialog 1.8.16
4185
4286
  *
4186
4287
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
4187
4288
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -4287,25 +4388,25 @@
4287
4388
  .hide()
4288
4389
  .addClass(uiDialogClasses + options.dialogClass)
4289
4390
  .css({
4290
- zIndex: options.zIndex
4291
- })
4391
+ zIndex: options.zIndex
4392
+ })
4292
4393
  // setting tabIndex makes the div focusable
4293
4394
  // setting outline to 0 prevents a border on focus in Mozilla
4294
4395
  .attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
4295
- if (options.closeOnEscape && event.keyCode &&
4296
- event.keyCode === $.ui.keyCode.ESCAPE) {
4396
+ if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
4397
+ event.keyCode === $.ui.keyCode.ESCAPE) {
4297
4398
 
4298
- self.close(event);
4299
- event.preventDefault();
4300
- }
4301
- })
4399
+ self.close(event);
4400
+ event.preventDefault();
4401
+ }
4402
+ })
4302
4403
  .attr({
4303
- role: 'dialog',
4304
- 'aria-labelledby': titleId
4305
- })
4404
+ role: 'dialog',
4405
+ 'aria-labelledby': titleId
4406
+ })
4306
4407
  .mousedown(function(event) {
4307
- self.moveToTop(false, event);
4308
- }),
4408
+ self.moveToTop(false, event);
4409
+ }),
4309
4410
 
4310
4411
  uiDialogContent = self.element
4311
4412
  .show()
@@ -4321,14 +4422,14 @@
4321
4422
  'ui-widget-header ' +
4322
4423
  'ui-corner-all ' +
4323
4424
  'ui-helper-clearfix'
4324
- )
4425
+ )
4325
4426
  .prependTo(uiDialog),
4326
4427
 
4327
4428
  uiDialogTitlebarClose = $('<a href="#"></a>')
4328
4429
  .addClass(
4329
4430
  'ui-dialog-titlebar-close ' +
4330
4431
  'ui-corner-all'
4331
- )
4432
+ )
4332
4433
  .attr('role', 'button')
4333
4434
  .hover(
4334
4435
  function() {
@@ -4337,24 +4438,24 @@
4337
4438
  function() {
4338
4439
  uiDialogTitlebarClose.removeClass('ui-state-hover');
4339
4440
  }
4340
- )
4441
+ )
4341
4442
  .focus(function() {
4342
- uiDialogTitlebarClose.addClass('ui-state-focus');
4343
- })
4443
+ uiDialogTitlebarClose.addClass('ui-state-focus');
4444
+ })
4344
4445
  .blur(function() {
4345
- uiDialogTitlebarClose.removeClass('ui-state-focus');
4346
- })
4446
+ uiDialogTitlebarClose.removeClass('ui-state-focus');
4447
+ })
4347
4448
  .click(function(event) {
4348
- self.close(event);
4349
- return false;
4350
- })
4449
+ self.close(event);
4450
+ return false;
4451
+ })
4351
4452
  .appendTo(uiDialogTitlebar),
4352
4453
 
4353
4454
  uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
4354
4455
  .addClass(
4355
4456
  'ui-icon ' +
4356
4457
  'ui-icon-closethick'
4357
- )
4458
+ )
4358
4459
  .text(options.closeText)
4359
4460
  .appendTo(uiDialogTitlebarClose),
4360
4461
 
@@ -4488,7 +4589,7 @@
4488
4589
 
4489
4590
  //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
4490
4591
  // http://ui.jquery.com/bugs/ticket/3193
4491
- saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
4592
+ saveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() };
4492
4593
  $.ui.dialog.maxZ += 1;
4493
4594
  self.uiDialog.css('z-index', $.ui.dialog.maxZ);
4494
4595
  self.element.attr(saveScroll);
@@ -4553,7 +4654,7 @@
4553
4654
  'ui-dialog-buttonpane ' +
4554
4655
  'ui-widget-content ' +
4555
4656
  'ui-helper-clearfix'
4556
- ),
4657
+ ),
4557
4658
  uiButtonSet = $("<div></div>")
4558
4659
  .addClass("ui-dialog-buttonset")
4559
4660
  .appendTo(uiDialogButtonPane);
@@ -4573,8 +4674,8 @@
4573
4674
  props;
4574
4675
  var button = $('<button type="button"></button>')
4575
4676
  .click(function() {
4576
- props.click.apply(self.element[0], arguments);
4577
- })
4677
+ props.click.apply(self.element[0], arguments);
4678
+ })
4578
4679
  .appendTo(uiButtonSet);
4579
4680
  // can't use .attr( props, true ) with jQuery 1.3.2.
4580
4681
  $.each(props, function(key, value) {
@@ -4886,7 +4987,7 @@
4886
4987
  });
4887
4988
 
4888
4989
  $.extend($.ui.dialog, {
4889
- version: "1.8.13",
4990
+ version: "1.8.16",
4890
4991
 
4891
4992
  uuid: 0,
4892
4993
  maxZ: 0,
@@ -4934,7 +5035,7 @@
4934
5035
 
4935
5036
  // allow closing by pressing the escape key
4936
5037
  $(document).bind('keydown.dialog-overlay', function(event) {
4937
- if (dialog.options.closeOnEscape && event.keyCode &&
5038
+ if (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
4938
5039
  event.keyCode === $.ui.keyCode.ESCAPE) {
4939
5040
 
4940
5041
  dialog.close(event);
@@ -4949,9 +5050,9 @@
4949
5050
  var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
4950
5051
  .appendTo(document.body)
4951
5052
  .css({
4952
- width: this.width(),
4953
- height: this.height()
4954
- });
5053
+ width: this.width(),
5054
+ height: this.height()
5055
+ });
4955
5056
 
4956
5057
  if ($.fn.bgiframe) {
4957
5058
  $el.bgiframe();
@@ -4989,11 +5090,11 @@
4989
5090
  scrollHeight = Math.max(
4990
5091
  document.documentElement.scrollHeight,
4991
5092
  document.body.scrollHeight
4992
- );
5093
+ );
4993
5094
  offsetHeight = Math.max(
4994
5095
  document.documentElement.offsetHeight,
4995
5096
  document.body.offsetHeight
4996
- );
5097
+ );
4997
5098
 
4998
5099
  if (scrollHeight < offsetHeight) {
4999
5100
  return $(window).height() + 'px';
@@ -5009,16 +5110,16 @@
5009
5110
  width: function() {
5010
5111
  var scrollWidth,
5011
5112
  offsetWidth;
5012
- // handle IE 6
5013
- if ($.browser.msie && $.browser.version < 7) {
5113
+ // handle IE
5114
+ if ($.browser.msie) {
5014
5115
  scrollWidth = Math.max(
5015
5116
  document.documentElement.scrollWidth,
5016
5117
  document.body.scrollWidth
5017
- );
5118
+ );
5018
5119
  offsetWidth = Math.max(
5019
5120
  document.documentElement.offsetWidth,
5020
5121
  document.body.offsetWidth
5021
- );
5122
+ );
5022
5123
 
5023
5124
  if (scrollWidth < offsetWidth) {
5024
5125
  return $(window).width() + 'px';
@@ -5049,9 +5150,9 @@
5049
5150
  width: 0,
5050
5151
  height: 0
5051
5152
  }).css({
5052
- width: $.ui.dialog.overlay.width(),
5053
- height: $.ui.dialog.overlay.height()
5054
- });
5153
+ width: $.ui.dialog.overlay.width(),
5154
+ height: $.ui.dialog.overlay.height()
5155
+ });
5055
5156
  }
5056
5157
  });
5057
5158
 
@@ -5065,7 +5166,7 @@
5065
5166
 
5066
5167
 
5067
5168
  /*
5068
- * jQuery UI Draggable 1.8.13
5169
+ * jQuery UI Draggable 1.8.16
5069
5170
  *
5070
5171
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5071
5172
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -5146,15 +5247,17 @@
5146
5247
  if (!this.handle)
5147
5248
  return false;
5148
5249
 
5149
- $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
5150
- $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
5151
- .css({
5152
- width: this.offsetWidth + "px", height: this.offsetHeight + "px",
5153
- position: "absolute", opacity: "0.001", zIndex: 1000
5154
- })
5155
- .css($(this).offset())
5156
- .appendTo("body");
5157
- });
5250
+ if (o.iframeFix) {
5251
+ $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
5252
+ $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
5253
+ .css({
5254
+ width: this.offsetWidth + "px", height: this.offsetHeight + "px",
5255
+ position: "absolute", opacity: "0.001", zIndex: 1000
5256
+ })
5257
+ .css($(this).offset())
5258
+ .appendTo("body");
5259
+ });
5260
+ }
5158
5261
 
5159
5262
  return true;
5160
5263
 
@@ -5229,6 +5332,10 @@
5229
5332
 
5230
5333
  this.helper.addClass("ui-draggable-dragging");
5231
5334
  this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
5335
+
5336
+ //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
5337
+ if ($.ui.ddmanager) $.ui.ddmanager.dragStart(this, event);
5338
+
5232
5339
  return true;
5233
5340
  },
5234
5341
 
@@ -5295,6 +5402,9 @@
5295
5402
  }); //Remove frame helpers
5296
5403
  }
5297
5404
 
5405
+ //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
5406
+ if ($.ui.ddmanager) $.ui.ddmanager.dragStop(this, event);
5407
+
5298
5408
  return $.ui.mouse.prototype._mouseUp.call(this, event);
5299
5409
  },
5300
5410
 
@@ -5317,8 +5427,8 @@
5317
5427
  .find("*")
5318
5428
  .andSelf()
5319
5429
  .each(function() {
5320
- if (this == event.target) handle = true;
5321
- });
5430
+ if (this == event.target) handle = true;
5431
+ });
5322
5432
 
5323
5433
  return handle;
5324
5434
 
@@ -5421,8 +5531,8 @@
5421
5531
  var o = this.options;
5422
5532
  if (o.containment == 'parent') o.containment = this.helper[0].parentNode;
5423
5533
  if (o.containment == 'document' || o.containment == 'window') this.containment = [
5424
- (o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,
5425
- (o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,
5534
+ o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
5535
+ o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
5426
5536
  (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
5427
5537
  (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
5428
5538
  ];
@@ -5503,10 +5613,11 @@
5503
5613
  }
5504
5614
 
5505
5615
  if (o.grid) {
5506
- var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
5616
+ //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
5617
+ var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
5507
5618
  pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
5508
5619
 
5509
- var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
5620
+ var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
5510
5621
  pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
5511
5622
  }
5512
5623
 
@@ -5562,7 +5673,7 @@
5562
5673
  });
5563
5674
 
5564
5675
  $.extend($.ui.draggable, {
5565
- version: "1.8.13"
5676
+ version: "1.8.16"
5566
5677
  });
5567
5678
 
5568
5679
  $.ui.plugin.add("draggable", "connectToSortable", {
@@ -5890,7 +6001,7 @@
5890
6001
 
5891
6002
 
5892
6003
  /*
5893
- * jQuery UI Droppable 1.8.13
6004
+ * jQuery UI Droppable 1.8.16
5894
6005
  *
5895
6006
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5896
6007
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -6042,7 +6153,7 @@
6042
6153
  });
6043
6154
 
6044
6155
  $.extend($.ui.droppable, {
6045
- version: "1.8.13"
6156
+ version: "1.8.16"
6046
6157
  });
6047
6158
 
6048
6159
  $.ui.intersect = function(draggable, droppable, toleranceMode) {
@@ -6141,6 +6252,12 @@
6141
6252
  return dropped;
6142
6253
 
6143
6254
  },
6255
+ dragStart: function(draggable, event) {
6256
+ //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
6257
+ draggable.element.parents(":not(body,html)").bind("scroll.droppable", function() {
6258
+ if (!draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
6259
+ });
6260
+ },
6144
6261
  drag: function(draggable, event) {
6145
6262
 
6146
6263
  //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
@@ -6183,6 +6300,11 @@
6183
6300
  }
6184
6301
  });
6185
6302
 
6303
+ },
6304
+ dragStop: function(draggable, event) {
6305
+ draggable.element.parents(":not(body,html)").unbind("scroll.droppable");
6306
+ //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
6307
+ if (!draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
6186
6308
  }
6187
6309
  };
6188
6310
 
@@ -6610,7 +6732,7 @@
6610
6732
 
6611
6733
 
6612
6734
  /*
6613
- * jQuery UI Position 1.8.13
6735
+ * jQuery UI Position 1.8.16
6614
6736
  *
6615
6737
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
6616
6738
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -6866,7 +6988,7 @@
6866
6988
 
6867
6989
 
6868
6990
  /*
6869
- * jQuery UI Progressbar 1.8.13
6991
+ * jQuery UI Progressbar 1.8.16
6870
6992
  *
6871
6993
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
6872
6994
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -6892,11 +7014,11 @@
6892
7014
  this.element
6893
7015
  .addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all")
6894
7016
  .attr({
6895
- role: "progressbar",
6896
- "aria-valuemin": this.min,
6897
- "aria-valuemax": this.options.max,
6898
- "aria-valuenow": this._value()
6899
- });
7017
+ role: "progressbar",
7018
+ "aria-valuemin": this.min,
7019
+ "aria-valuemax": this.options.max,
7020
+ "aria-valuenow": this._value()
7021
+ });
6900
7022
 
6901
7023
  this.valueDiv = $("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>")
6902
7024
  .appendTo(this.element);
@@ -6970,14 +7092,14 @@
6970
7092
  });
6971
7093
 
6972
7094
  $.extend($.ui.progressbar, {
6973
- version: "1.8.13"
7095
+ version: "1.8.16"
6974
7096
  });
6975
7097
 
6976
7098
  })(jQuery);
6977
7099
 
6978
7100
 
6979
7101
  /*
6980
- * jQuery UI Resizable 1.8.13
7102
+ * jQuery UI Resizable 1.8.16
6981
7103
  *
6982
7104
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
6983
7105
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -7041,12 +7163,12 @@
7041
7163
  top: this.element.css('top'),
7042
7164
  left: this.element.css('left')
7043
7165
  })
7044
- );
7166
+ );
7045
7167
 
7046
7168
  //Overwrite the original this.element
7047
7169
  this.element = this.element.parent().data(
7048
7170
  "resizable", this.element.data('resizable')
7049
- );
7171
+ );
7050
7172
 
7051
7173
  this.elementIsWrapper = true;
7052
7174
 
@@ -7156,10 +7278,10 @@
7156
7278
  $(this.element)
7157
7279
  .addClass("ui-resizable-autohide")
7158
7280
  .hover(function() {
7159
- if (o.disabled) return;
7160
- $(this).removeClass("ui-resizable-autohide");
7161
- self._handles.show();
7162
- },
7281
+ if (o.disabled) return;
7282
+ $(this).removeClass("ui-resizable-autohide");
7283
+ self._handles.show();
7284
+ },
7163
7285
  function() {
7164
7286
  if (o.disabled) return;
7165
7287
  if (!self.resizing) {
@@ -7195,7 +7317,7 @@
7195
7317
  top: wrapper.css('top'),
7196
7318
  left: wrapper.css('left')
7197
7319
  })
7198
- ).remove();
7320
+ ).remove();
7199
7321
  }
7200
7322
 
7201
7323
  this.originalElement.css('resize', this.originalResizeStyle);
@@ -7273,6 +7395,8 @@
7273
7395
  // Calculate the attrs that will be change
7274
7396
  var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
7275
7397
 
7398
+ // Put this in the mouseDrag handler since the user can start pressing shift while resizing
7399
+ this._updateVirtualBoundaries(event.shiftKey);
7276
7400
  if (this._aspectRatio || event.shiftKey)
7277
7401
  data = this._updateRatio(data, event);
7278
7402
 
@@ -7331,6 +7455,32 @@
7331
7455
 
7332
7456
  },
7333
7457
 
7458
+ _updateVirtualBoundaries: function(forceAspectRatio) {
7459
+ var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b;
7460
+
7461
+ b = {
7462
+ minWidth: isNumber(o.minWidth) ? o.minWidth : 0,
7463
+ maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,
7464
+ minHeight: isNumber(o.minHeight) ? o.minHeight : 0,
7465
+ maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity
7466
+ };
7467
+
7468
+ if (this._aspectRatio || forceAspectRatio) {
7469
+ // We want to create an enclosing box whose aspect ration is the requested one
7470
+ // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension
7471
+ pMinWidth = b.minHeight * this.aspectRatio;
7472
+ pMinHeight = b.minWidth / this.aspectRatio;
7473
+ pMaxWidth = b.maxHeight * this.aspectRatio;
7474
+ pMaxHeight = b.maxWidth / this.aspectRatio;
7475
+
7476
+ if (pMinWidth > b.minWidth) b.minWidth = pMinWidth;
7477
+ if (pMinHeight > b.minHeight) b.minHeight = pMinHeight;
7478
+ if (pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth;
7479
+ if (pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight;
7480
+ }
7481
+ this._vBoundaries = b;
7482
+ },
7483
+
7334
7484
  _updateCache: function(data) {
7335
7485
  var o = this.options;
7336
7486
  this.offset = this.helper.offset();
@@ -7344,8 +7494,8 @@
7344
7494
 
7345
7495
  var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
7346
7496
 
7347
- if (data.height) data.width = (csize.height * this.aspectRatio);
7348
- else if (data.width) data.height = (csize.width / this.aspectRatio);
7497
+ if (isNumber(data.height)) data.width = (data.height * this.aspectRatio);
7498
+ else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio);
7349
7499
 
7350
7500
  if (a == 'sw') {
7351
7501
  data.left = cpos.left + (csize.width - data.width);
@@ -7361,7 +7511,7 @@
7361
7511
 
7362
7512
  _respectSize: function(data, event) {
7363
7513
 
7364
- var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
7514
+ var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
7365
7515
  ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
7366
7516
  isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
7367
7517
 
@@ -7502,7 +7652,7 @@
7502
7652
  });
7503
7653
 
7504
7654
  $.extend($.ui.resizable, {
7505
- version: "1.8.13"
7655
+ version: "1.8.16"
7506
7656
  });
7507
7657
 
7508
7658
  /*
@@ -7619,26 +7769,26 @@
7619
7769
 
7620
7770
  self.element.animate(
7621
7771
  $.extend(style, top && left ? { top: top, left: left } : {}), {
7622
- duration: o.animateDuration,
7623
- easing: o.animateEasing,
7624
- step: function() {
7625
-
7626
- var data = {
7627
- width: parseInt(self.element.css('width'), 10),
7628
- height: parseInt(self.element.css('height'), 10),
7629
- top: parseInt(self.element.css('top'), 10),
7630
- left: parseInt(self.element.css('left'), 10)
7631
- };
7772
+ duration: o.animateDuration,
7773
+ easing: o.animateEasing,
7774
+ step: function() {
7632
7775
 
7633
- if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
7776
+ var data = {
7777
+ width: parseInt(self.element.css('width'), 10),
7778
+ height: parseInt(self.element.css('height'), 10),
7779
+ top: parseInt(self.element.css('top'), 10),
7780
+ left: parseInt(self.element.css('left'), 10)
7781
+ };
7634
7782
 
7635
- // propagating resize, and updating values for each animation step
7636
- self._updateCache(data);
7637
- self._propagate("resize", event);
7783
+ if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
7638
7784
 
7639
- }
7640
- }
7641
- );
7785
+ // propagating resize, and updating values for each animation step
7786
+ self._updateCache(data);
7787
+ self._propagate("resize", event);
7788
+
7789
+ }
7790
+ }
7791
+ );
7642
7792
  }
7643
7793
 
7644
7794
  });
@@ -7809,7 +7959,7 @@
7809
7959
 
7810
7960
 
7811
7961
  /*
7812
- * jQuery UI Selectable 1.8.13
7962
+ * jQuery UI Selectable 1.8.16
7813
7963
  *
7814
7964
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
7815
7965
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -8078,14 +8228,14 @@
8078
8228
  });
8079
8229
 
8080
8230
  $.extend($.ui.selectable, {
8081
- version: "1.8.13"
8231
+ version: "1.8.16"
8082
8232
  });
8083
8233
 
8084
8234
  })(jQuery);
8085
8235
 
8086
8236
 
8087
8237
  /*
8088
- * jQuery UI selectmenu
8238
+ * jQuery UI selectmenu dev version
8089
8239
  *
8090
8240
  * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
8091
8241
  * Dual licensed under the MIT (MIT-LICENSE.txt)
@@ -8118,7 +8268,7 @@
8118
8268
  format: null,
8119
8269
  bgImage: function() {
8120
8270
  },
8121
- wrapperElement: ""
8271
+ wrapperElement: "<div />"
8122
8272
  },
8123
8273
 
8124
8274
  _create: function() {
@@ -8133,13 +8283,19 @@
8133
8283
  // define safe mouseup for future toggling
8134
8284
  this._safemouseup = true;
8135
8285
 
8136
- // FIXME temp workaround for IE
8137
- if ($.browser.msie) o.typeAhead = "";
8138
-
8139
8286
  // create menu button wrapper
8140
- this.newelement = $('<a class="' + this.widgetBaseClass + ' ui-widget ui-state-default ui-corner-all" id="' + this.ids[0] + '" role="button" href="#" tabindex="0" aria-haspopup="true" aria-owns="' + this.ids[1] + '"></a>')
8287
+ this.newelement = $('<a />', {
8288
+ 'class': this.widgetBaseClass + ' ui-widget ui-state-default ui-corner-all',
8289
+ 'id' : this.ids[ 0 ],
8290
+ 'role': 'button',
8291
+ 'href': '#',
8292
+ 'tabindex': this.element.attr('disabled') ? 1 : 0,
8293
+ 'aria-haspopup': true,
8294
+ 'aria-owns': this.ids[ 1 ]
8295
+ });
8296
+ this.newelementWrap = $(o.wrapperElement)
8297
+ .append(this.newelement)
8141
8298
  .insertAfter(this.element);
8142
- this.newelement.wrap(o.wrapperElement);
8143
8299
 
8144
8300
  // transfer tabindex
8145
8301
  var tabindex = this.element.attr('tabindex');
@@ -8158,12 +8314,12 @@
8158
8314
  this.newelement.prepend('<span class="' + self.widgetBaseClass + '-status" />');
8159
8315
 
8160
8316
  // make associated form label trigger focus
8161
- $('label[for="' + this.element.attr('id') + '"]')
8317
+ $('label[for="' + selectmenuId + '"]')
8162
8318
  .attr('for', this.ids[0])
8163
8319
  .bind('click.selectmenu', function() {
8164
- self.newelement[0].focus();
8165
- return false;
8166
- });
8320
+ self.newelement[0].focus();
8321
+ return false;
8322
+ });
8167
8323
 
8168
8324
  // click toggle for menu visibility
8169
8325
  this.newelement
@@ -8179,57 +8335,59 @@
8179
8335
  return false;
8180
8336
  })
8181
8337
  .bind('click.selectmenu', function() {
8182
- return false;
8183
- })
8338
+ return false;
8339
+ })
8184
8340
  .bind("keydown.selectmenu", function(event) {
8185
- var ret = false;
8186
- switch (event.keyCode) {
8187
- case $.ui.keyCode.ENTER:
8188
- ret = true;
8189
- break;
8190
- case $.ui.keyCode.SPACE:
8191
- self._toggle(event);
8192
- break;
8193
- case $.ui.keyCode.UP:
8194
- if (event.altKey) {
8195
- self.open(event);
8196
- } else {
8197
- self._moveSelection(-1);
8198
- }
8199
- break;
8200
- case $.ui.keyCode.DOWN:
8201
- if (event.altKey) {
8202
- self.open(event);
8203
- } else {
8204
- self._moveSelection(1);
8205
- }
8206
- break;
8207
- case $.ui.keyCode.LEFT:
8208
- self._moveSelection(-1);
8209
- break;
8210
- case $.ui.keyCode.RIGHT:
8211
- self._moveSelection(1);
8212
- break;
8213
- case $.ui.keyCode.TAB:
8214
- ret = true;
8215
- break;
8216
- default:
8217
- ret = true;
8218
- self._typeAhead(event.keyCode, 'mouseup');
8219
- break;
8220
- }
8221
- return ret;
8222
- })
8341
+ var ret = false;
8342
+ switch (event.keyCode) {
8343
+ case $.ui.keyCode.ENTER:
8344
+ ret = true;
8345
+ break;
8346
+ case $.ui.keyCode.SPACE:
8347
+ self._toggle(event);
8348
+ break;
8349
+ case $.ui.keyCode.UP:
8350
+ if (event.altKey) {
8351
+ self.open(event);
8352
+ } else {
8353
+ self._moveSelection(-1);
8354
+ }
8355
+ break;
8356
+ case $.ui.keyCode.DOWN:
8357
+ if (event.altKey) {
8358
+ self.open(event);
8359
+ } else {
8360
+ self._moveSelection(1);
8361
+ }
8362
+ break;
8363
+ case $.ui.keyCode.LEFT:
8364
+ self._moveSelection(-1);
8365
+ break;
8366
+ case $.ui.keyCode.RIGHT:
8367
+ self._moveSelection(1);
8368
+ break;
8369
+ case $.ui.keyCode.TAB:
8370
+ ret = true;
8371
+ break;
8372
+ default:
8373
+ ret = true;
8374
+ }
8375
+ return ret;
8376
+ })
8377
+ .bind('keypress.selectmenu', function(event) {
8378
+ self._typeAhead(event.which, 'mouseup');
8379
+ return true;
8380
+ })
8223
8381
  .bind('mouseover.selectmenu focus.selectmenu', function() {
8224
- if (!o.disabled) {
8225
- $(this).addClass(self.widgetBaseClass + '-focus ui-state-hover');
8226
- }
8227
- })
8382
+ if (!o.disabled) {
8383
+ $(this).addClass(self.widgetBaseClass + '-focus ui-state-hover');
8384
+ }
8385
+ })
8228
8386
  .bind('mouseout.selectmenu blur.selectmenu', function() {
8229
- if (!o.disabled) {
8230
- $(this).removeClass(self.widgetBaseClass + '-focus ui-state-hover');
8231
- }
8232
- });
8387
+ if (!o.disabled) {
8388
+ $(this).removeClass(self.widgetBaseClass + '-focus ui-state-hover');
8389
+ }
8390
+ });
8233
8391
 
8234
8392
  // document click closes menu
8235
8393
  $(document).bind("mousedown.selectmenu", function(event) {
@@ -8244,23 +8402,33 @@
8244
8402
  // FIXME: newelement can be null under unclear circumstances in IE8
8245
8403
  // TODO not sure if this is still a problem (fnagel 20.03.11)
8246
8404
  .bind("focus.selectmenu", function() {
8247
- if (self.newelement) {
8248
- self.newelement[0].focus();
8249
- }
8250
- });
8251
-
8252
- // original selectmenu width
8253
- var selectWidth = this.element.width();
8405
+ if (self.newelement) {
8406
+ self.newelement[0].focus();
8407
+ }
8408
+ });
8254
8409
 
8410
+ // set width when not set via options
8411
+ if (!o.width) {
8412
+ o.width = this.element.outerWidth();
8413
+ }
8255
8414
  // set menu button width
8256
- this.newelement.width(o.width ? o.width : selectWidth);
8415
+ this.newelement.width(o.width);
8257
8416
 
8258
8417
  // hide original selectmenu element
8259
8418
  this.element.hide();
8260
8419
 
8261
8420
  // create menu portion, append to body
8262
- this.list = $('<ul class="' + self.widgetBaseClass + '-menu ui-widget ui-widget-content" aria-hidden="true" role="listbox" aria-labelledby="' + this.ids[0] + '" id="' + this.ids[1] + '"></ul>').appendTo('body');
8263
- this.list.wrap(o.wrapperElement);
8421
+ this.list = $('<ul />', {
8422
+ 'class': 'ui-widget ui-widget-content',
8423
+ 'aria-hidden': true,
8424
+ 'role': 'listbox',
8425
+ 'aria-labelledby': this.ids[0],
8426
+ 'id': this.ids[1]
8427
+ });
8428
+ this.listWrap = $(o.wrapperElement)
8429
+ .addClass(self.widgetBaseClass + '-menu')
8430
+ .append(this.list)
8431
+ .appendTo('body');
8264
8432
 
8265
8433
  // transfer menu click to menu button
8266
8434
  this.list
@@ -8314,14 +8482,22 @@
8314
8482
  break;
8315
8483
  default:
8316
8484
  ret = true;
8317
- self._typeAhead(event.keyCode, 'focus');
8318
- break;
8319
8485
  }
8320
8486
  return ret;
8321
- });
8487
+ })
8488
+ .bind('keypress.selectmenu', function(event) {
8489
+ self._typeAhead(event.which, 'focus');
8490
+ return true;
8491
+ })
8492
+ // this allows for using the scrollbar in an overflowed list
8493
+ .bind('mousedown.selectmenu mouseup.selectmenu', function() {
8494
+ return false;
8495
+ });
8322
8496
 
8323
8497
  // needed when window is resized
8324
- $(window).bind("resize.selectmenu", $.proxy(self._refreshPosition, this));
8498
+ // TODO seems to be useless, but causes errors (fnagel 01.08.11)
8499
+ // see: https://github.com/fnagel/jquery-ui/issues/147
8500
+ // $(window).bind( "resize.selectmenu", $.proxy( self._refreshPosition, this ) );
8325
8501
  },
8326
8502
 
8327
8503
  _init: function() {
@@ -8332,17 +8508,18 @@
8332
8508
  this.element
8333
8509
  .find('option')
8334
8510
  .each(function() {
8335
- selectOptionData.push({
8336
- value: $(this).attr('value'),
8337
- text: self._formatText($(this).text()),
8338
- selected: $(this).attr('selected'),
8339
- disabled: $(this).attr('disabled'),
8340
- classes: $(this).attr('class'),
8341
- typeahead: $(this).attr('typeahead'),
8342
- parentOptGroup: $(this).parent('optgroup'),
8343
- bgImage: o.bgImage.call($(this))
8344
- });
8345
- });
8511
+ var opt = $(this);
8512
+ selectOptionData.push({
8513
+ value: opt.attr('value'),
8514
+ text: self._formatText(opt.text()),
8515
+ selected: opt.attr('selected'),
8516
+ disabled: opt.attr('disabled'),
8517
+ classes: opt.attr('class'),
8518
+ typeahead: opt.attr('typeahead'),
8519
+ parentOptGroup: opt.parent('optgroup'),
8520
+ bgImage: o.bgImage.call(opt)
8521
+ });
8522
+ });
8346
8523
 
8347
8524
  // active state class is only used in popup style
8348
8525
  var activeClass = (self.options.style == "popup") ? " ui-state-active" : "";
@@ -8351,93 +8528,110 @@
8351
8528
  this.list.html("");
8352
8529
 
8353
8530
  // write li's
8354
- for (var i = 0; i < selectOptionData.length; i++) {
8355
- var thisLi = $('<li role="presentation"' + (selectOptionData[i].disabled ? ' class="' + this.namespace + '-state-disabled' + '"' : '' ) + '><a href="#" tabindex="-1" role="option"' + (selectOptionData[i].disabled ? ' aria-disabled="true"' : '' ) + ' aria-selected="false"' + (selectOptionData[i].typeahead ? ' typeahead="' + selectOptionData[i].typeahead + '"' : '' ) + '>' + selectOptionData[i].text + '</a></li>')
8356
- .data('index', i)
8357
- .addClass(selectOptionData[i].classes)
8358
- .data('optionClasses', selectOptionData[i].classes || '')
8359
- .bind("mouseup.selectmenu", function(event) {
8360
- if (self._safemouseup && !self._disabled(event.currentTarget) && !self._disabled($(event.currentTarget).parents("ul>li." + self.widgetBaseClass + "-group "))) {
8361
- var changed = $(this).data('index') != self._selectedIndex();
8362
- self.index($(this).data('index'));
8363
- self.select(event);
8364
- if (changed) {
8365
- self.change(event);
8366
- }
8367
- self.close(event, true);
8531
+ if (selectOptionData.length) {
8532
+ for (var i = 0; i < selectOptionData.length; i++) {
8533
+ var thisLiAttr = { role : 'presentation' };
8534
+ if (selectOptionData[ i ].disabled) {
8535
+ thisLiAttr[ 'class' ] = this.namespace + '-state-disabled';
8368
8536
  }
8369
- return false;
8370
- })
8371
- .bind("click.selectmenu", function() {
8372
- return false;
8373
- })
8374
- .bind('mouseover.selectmenu focus.selectmenu', function(e) {
8375
- // no hover if diabled
8376
- if (!$(e.currentTarget).hasClass(self.namespace + '-state-disabled')) {
8377
- self._selectedOptionLi().addClass(activeClass);
8378
- self._focusedOptionLi().removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8379
- $(this).removeClass('ui-state-active').addClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8537
+ var thisAAttr = {
8538
+ html: selectOptionData[i].text,
8539
+ href : '#',
8540
+ tabindex : -1,
8541
+ role : 'option',
8542
+ 'aria-selected' : false
8543
+ };
8544
+ if (selectOptionData[ i ].disabled) {
8545
+ thisAAttr[ 'aria-disabled' ] = selectOptionData[ i ].disabled;
8380
8546
  }
8381
- })
8382
- .bind('mouseout.selectmenu blur.selectmenu', function() {
8383
- if ($(this).is(self._selectedOptionLi().selector)) {
8384
- $(this).addClass(activeClass);
8547
+ if (selectOptionData[ i ].typeahead) {
8548
+ thisAAttr[ 'typeahead' ] = selectOptionData[ i ].typeahead;
8385
8549
  }
8386
- $(this).removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8387
- });
8550
+ var thisA = $('<a/>', thisAAttr);
8551
+ var thisLi = $('<li/>', thisLiAttr)
8552
+ .append(thisA)
8553
+ .data('index', i)
8554
+ .addClass(selectOptionData[i].classes)
8555
+ .data('optionClasses', selectOptionData[i].classes || '')
8556
+ .bind("mouseup.selectmenu", function(event) {
8557
+ if (self._safemouseup && !self._disabled(event.currentTarget) && !self._disabled($(event.currentTarget).parents("ul>li." + self.widgetBaseClass + "-group "))) {
8558
+ var changed = $(this).data('index') != self._selectedIndex();
8559
+ self.index($(this).data('index'));
8560
+ self.select(event);
8561
+ if (changed) {
8562
+ self.change(event);
8563
+ }
8564
+ self.close(event, true);
8565
+ }
8566
+ return false;
8567
+ })
8568
+ .bind("click.selectmenu", function() {
8569
+ return false;
8570
+ })
8571
+ .bind('mouseover.selectmenu focus.selectmenu', function(e) {
8572
+ // no hover if diabled
8573
+ if (!$(e.currentTarget).hasClass(self.namespace + '-state-disabled') && !$(e.currentTarget).parent("ul").parent("li").hasClass(self.namespace + '-state-disabled')) {
8574
+ self._selectedOptionLi().addClass(activeClass);
8575
+ self._focusedOptionLi().removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8576
+ $(this).removeClass('ui-state-active').addClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8577
+ }
8578
+ })
8579
+ .bind('mouseout.selectmenu blur.selectmenu', function() {
8580
+ if ($(this).is(self._selectedOptionLi().selector)) {
8581
+ $(this).addClass(activeClass);
8582
+ }
8583
+ $(this).removeClass(self.widgetBaseClass + '-item-focus ui-state-hover');
8584
+ });
8388
8585
 
8389
- // optgroup or not...
8390
- if (selectOptionData[i].parentOptGroup.length) {
8391
- var optGroupName = self.widgetBaseClass + '-group-' + this.element.find('optgroup').index(selectOptionData[i].parentOptGroup);
8392
- if (this.list.find('li.' + optGroupName).length) {
8393
- this.list.find('li.' + optGroupName + ':last ul').append(thisLi);
8586
+ // optgroup or not...
8587
+ if (selectOptionData[i].parentOptGroup.length) {
8588
+ var optGroupName = self.widgetBaseClass + '-group-' + this.element.find('optgroup').index(selectOptionData[i].parentOptGroup);
8589
+ if (this.list.find('li.' + optGroupName).length) {
8590
+ this.list.find('li.' + optGroupName + ':last ul').append(thisLi);
8591
+ } else {
8592
+ $(' <li role="presentation" class="' + self.widgetBaseClass + '-group ' + optGroupName + (selectOptionData[i].parentOptGroup.attr("disabled") ? ' ' + this.namespace + '-state-disabled" aria-disabled="true"' : '"' ) + '><span class="' + self.widgetBaseClass + '-group-label">' + selectOptionData[i].parentOptGroup.attr('label') + '</span><ul></ul></li> ')
8593
+ .appendTo(this.list)
8594
+ .find('ul')
8595
+ .append(thisLi);
8596
+ }
8394
8597
  } else {
8395
- $(' <li role="presentation" class="' + self.widgetBaseClass + '-group ' + optGroupName + (selectOptionData[i].parentOptGroup.attr("disabled") ? ' ' + this.namespace + '-state-disabled" aria-disabled="true"' : '"' ) + '><span class="' + self.widgetBaseClass + '-group-label">' + selectOptionData[i].parentOptGroup.attr('label') + '</span><ul></ul></li> ')
8396
- .appendTo(this.list)
8397
- .find('ul')
8398
- .append(thisLi);
8598
+ thisLi.appendTo(this.list);
8399
8599
  }
8400
- } else {
8401
- thisLi.appendTo(this.list);
8402
- }
8403
-
8404
- // this allows for using the scrollbar in an overflowed list
8405
- this.list.bind('mousedown.selectmenu mouseup.selectmenu', function() {
8406
- return false;
8407
- });
8408
8600
 
8409
- // append icon if option is specified
8410
- if (o.icons) {
8411
- for (var j in o.icons) {
8412
- if (thisLi.is(o.icons[j].find)) {
8413
- thisLi
8414
- .data('optionClasses', selectOptionData[i].classes + ' ' + self.widgetBaseClass + '-hasIcon')
8415
- .addClass(self.widgetBaseClass + '-hasIcon');
8416
- var iconClass = o.icons[j].icon || "";
8417
- thisLi
8418
- .find('a:eq(0)')
8419
- .prepend('<span class="' + self.widgetBaseClass + '-item-icon ui-icon ' + iconClass + '"></span>');
8420
- if (selectOptionData[i].bgImage) {
8421
- thisLi.find('span').css('background-image', selectOptionData[i].bgImage);
8601
+ // append icon if option is specified
8602
+ if (o.icons) {
8603
+ for (var j in o.icons) {
8604
+ if (thisLi.is(o.icons[j].find)) {
8605
+ thisLi
8606
+ .data('optionClasses', selectOptionData[i].classes + ' ' + self.widgetBaseClass + '-hasIcon')
8607
+ .addClass(self.widgetBaseClass + '-hasIcon');
8608
+ var iconClass = o.icons[j].icon || "";
8609
+ thisLi
8610
+ .find('a:eq(0)')
8611
+ .prepend('<span class="' + self.widgetBaseClass + '-item-icon ui-icon ' + iconClass + '"></span>');
8612
+ if (selectOptionData[i].bgImage) {
8613
+ thisLi.find('span').css('background-image', selectOptionData[i].bgImage);
8614
+ }
8422
8615
  }
8423
8616
  }
8424
8617
  }
8425
8618
  }
8619
+ } else {
8620
+ $('<li role="presentation"><a href="#" tabindex="-1" role="option"></a></li>').appendTo(this.list);
8426
8621
  }
8427
-
8428
8622
  // we need to set and unset the CSS classes for dropdown and popup style
8429
- var isDropDown = (o.style == 'dropdown');
8623
+ var isDropDown = ( o.style == 'dropdown' );
8430
8624
  this.newelement
8431
- .toggleClass(self.widgetBaseClass + "-dropdown", isDropDown)
8432
- .toggleClass(self.widgetBaseClass + "-popup", !isDropDown);
8625
+ .toggleClass(self.widgetBaseClass + '-dropdown', isDropDown)
8626
+ .toggleClass(self.widgetBaseClass + '-popup', !isDropDown);
8433
8627
  this.list
8434
- .toggleClass(self.widgetBaseClass + "-menu-dropdown ui-corner-bottom", isDropDown)
8435
- .toggleClass(self.widgetBaseClass + "-menu-popup ui-corner-all", !isDropDown)
8628
+ .toggleClass(self.widgetBaseClass + '-menu-dropdown ui-corner-bottom', isDropDown)
8629
+ .toggleClass(self.widgetBaseClass + '-menu-popup ui-corner-all', !isDropDown)
8436
8630
  // add corners to top and bottom menu items
8437
8631
  .find('li:first')
8438
- .toggleClass("ui-corner-top", !isDropDown)
8632
+ .toggleClass('ui-corner-top', !isDropDown)
8439
8633
  .end().find('li:last')
8440
- .addClass("ui-corner-bottom");
8634
+ .addClass('ui-corner-bottom');
8441
8635
  this.selectmenuIcon
8442
8636
  .toggleClass('ui-icon-triangle-1-s', isDropDown)
8443
8637
  .toggleClass('ui-icon-triangle-2-n-s', !isDropDown);
@@ -8448,35 +8642,32 @@
8448
8642
  this.newelement.add(this.list).addClass(transferClasses);
8449
8643
  }
8450
8644
 
8451
- // original selectmenu width
8452
- var selectWidth = this.element.width();
8453
-
8454
8645
  // set menu width to either menuWidth option value, width option value, or select width
8455
8646
  if (o.style == 'dropdown') {
8456
- this.list.width(o.menuWidth ? o.menuWidth : (o.width ? o.width : selectWidth));
8647
+ this.list.width(o.menuWidth ? o.menuWidth : o.width);
8457
8648
  } else {
8458
- this.list.width(o.menuWidth ? o.menuWidth : (o.width ? o.width - o.handleWidth : selectWidth - o.handleWidth));
8649
+ this.list.width(o.menuWidth ? o.menuWidth : o.width - o.handleWidth);
8459
8650
  }
8460
8651
 
8652
+ // reset height to auto
8653
+ this.list.css('height', 'auto');
8654
+ var listH = this.listWrap.height();
8461
8655
  // calculate default max height
8462
- if (o.maxHeight) {
8463
- // set max height from option
8464
- if (o.maxHeight < this.list.height()) {
8465
- this.list.height(o.maxHeight);
8466
- }
8656
+ if (o.maxHeight && o.maxHeight < listH) {
8657
+ this.list.height(o.maxHeight);
8467
8658
  } else {
8468
- if (!o.format && ($(window).height() / 3) < this.list.height()) {
8469
- o.maxHeight = $(window).height() / 3;
8470
- this.list.height(o.maxHeight);
8471
- }
8659
+ var winH = $(window).height() / 3;
8660
+ if (winH < listH) this.list.height(winH);
8472
8661
  }
8473
8662
 
8474
8663
  // save reference to actionable li's (not group label li's)
8475
8664
  this._optionLis = this.list.find('li:not(.' + self.widgetBaseClass + '-group)');
8476
8665
 
8477
8666
  // transfer disabled state
8478
- if (this.element.attr('disabled') === true) {
8667
+ if (this.element.attr('disabled')) {
8479
8668
  this.disable();
8669
+ } else {
8670
+ this.enable()
8480
8671
  }
8481
8672
 
8482
8673
  // update value
@@ -8494,7 +8685,8 @@
8494
8685
  .removeAttr('aria-disabled')
8495
8686
  .unbind(".selectmenu");
8496
8687
 
8497
- $(window).unbind(".selectmenu");
8688
+ // TODO unneded as event binding has been disabled
8689
+ // $( window ).unbind( ".selectmenu" );
8498
8690
  $(document).unbind(".selectmenu");
8499
8691
 
8500
8692
  // unbind click on label, reset its for attr
@@ -8502,13 +8694,9 @@
8502
8694
  .attr('for', this.element.attr('id'))
8503
8695
  .unbind('.selectmenu');
8504
8696
 
8505
- if (this.options.wrapperElement) {
8506
- this.newelement.find(this.options.wrapperElement).remove();
8507
- this.list.find(this.options.wrapperElement).remove();
8508
- } else {
8509
- this.newelement.remove();
8510
- this.list.remove();
8511
- }
8697
+ this.newelementWrap.remove();
8698
+ this.listWrap.remove();
8699
+
8512
8700
  this.element.show();
8513
8701
 
8514
8702
  // call widget destroy function
@@ -8516,7 +8704,7 @@
8516
8704
  },
8517
8705
 
8518
8706
  _typeAhead: function(code, eventType) {
8519
- var self = this, focusFound = false, C = String.fromCharCode(code);
8707
+ var self = this, focusFound = false, C = String.fromCharCode(code).toUpperCase();
8520
8708
  c = C.toLowerCase();
8521
8709
 
8522
8710
  if (self.options.typeAhead == 'sequential') {
@@ -8524,67 +8712,59 @@
8524
8712
  window.clearTimeout('ui.selectmenu-' + self.selectmenuId);
8525
8713
 
8526
8714
  // define our find var
8527
- var find = typeof(self._prevChar) == 'undefined' ? '' : self._prevChar.join('');
8715
+ var find = typeof( self._prevChar ) == 'undefined' ? '' : self._prevChar.join('');
8528
8716
 
8529
8717
  function focusOptSeq(elem, ind, c) {
8530
8718
  focusFound = true;
8531
8719
  $(elem).trigger(eventType);
8532
- typeof(self._prevChar) == 'undefined' ? self._prevChar = [c] : self._prevChar[self._prevChar.length] = c;
8720
+ typeof( self._prevChar ) == 'undefined' ? self._prevChar = [ c ] : self._prevChar[ self._prevChar.length ] = c;
8533
8721
  }
8534
8722
 
8535
8723
  this.list.find('li a').each(function(i) {
8536
8724
  if (!focusFound) {
8537
8725
  // allow the typeahead attribute on the option tag for a more specific lookup
8538
8726
  var thisText = $(this).attr('typeahead') || $(this).text();
8539
- if (thisText.indexOf(find + C) == 0) {
8540
- focusOptSeq(this, i, C)
8541
- } else if (thisText.indexOf(find + c) == 0) {
8542
- focusOptSeq(this, i, c)
8727
+ if (thisText.indexOf(find + C) === 0) {
8728
+ focusOptSeq(this, i, C);
8729
+ } else if (thisText.indexOf(find + c) === 0) {
8730
+ focusOptSeq(this, i, c);
8543
8731
  }
8544
8732
  }
8545
8733
  });
8546
-
8547
- // if we didnt find it clear the prevChar
8548
- // if (!focusFound) {
8549
- //self._prevChar = undefined
8550
- // }
8551
-
8552
8734
  // set a 1 second timeout for sequenctial typeahead
8553
- // keep this set even if we have no matches so it doesnt typeahead somewhere else
8735
+ // keep this set even if we have no matches so it doesnt typeahead somewhere else
8554
8736
  window.setTimeout(function(el) {
8555
- el._prevChar = undefined;
8737
+ self._prevChar = undefined;
8556
8738
  }, 1000, self);
8557
8739
 
8558
8740
  } else {
8559
- //define self._prevChar if needed
8741
+ // define self._prevChar if needed
8560
8742
  if (!self._prevChar) {
8561
- self._prevChar = ['',0];
8743
+ self._prevChar = [ '' , 0 ];
8562
8744
  }
8563
8745
 
8564
- var focusFound = false;
8565
-
8746
+ focusFound = false;
8566
8747
  function focusOpt(elem, ind) {
8567
8748
  focusFound = true;
8568
8749
  $(elem).trigger(eventType);
8569
- self._prevChar[1] = ind;
8750
+ self._prevChar[ 1 ] = ind;
8570
8751
  }
8571
8752
 
8572
8753
  this.list.find('li a').each(function(i) {
8573
8754
  if (!focusFound) {
8574
8755
  var thisText = $(this).text();
8575
- if (thisText.indexOf(C) == 0 || thisText.indexOf(c) == 0) {
8756
+ if (thisText.indexOf(C) === 0 || thisText.indexOf(c) === 0) {
8576
8757
  if (self._prevChar[0] == C) {
8577
- if (self._prevChar[1] < i) {
8758
+ if (self._prevChar[ 1 ] < i) {
8578
8759
  focusOpt(this, i);
8579
8760
  }
8580
- }
8581
- else {
8761
+ } else {
8582
8762
  focusOpt(this, i);
8583
8763
  }
8584
8764
  }
8585
8765
  }
8586
8766
  });
8587
- this._prevChar[0] = C;
8767
+ this._prevChar[ 0 ] = C;
8588
8768
  }
8589
8769
  },
8590
8770
 
@@ -8599,27 +8779,30 @@
8599
8779
  },
8600
8780
 
8601
8781
  open: function(event) {
8602
- var self = this;
8603
- if (this.newelement.attr("aria-disabled") != 'true') {
8604
- // TODO: seems to be useless
8605
- // this._refreshPosition();
8606
- this._closeOthers(event);
8607
- this.newelement
8608
- .addClass('ui-state-active');
8609
- if (self.options.wrapperElement) {
8610
- this.list.parent().appendTo('body');
8611
- } else {
8612
- this.list.appendTo('body');
8782
+ var self = this, o = this.options;
8783
+ if (self.newelement.attr("aria-disabled") != 'true') {
8784
+ self._closeOthers(event);
8785
+ self.newelement.addClass('ui-state-active');
8786
+
8787
+ self.listWrap.appendTo(o.appendTo);
8788
+ self.list.attr('aria-hidden', false);
8789
+
8790
+ if (o.style == "dropdown") {
8791
+ self.newelement.removeClass('ui-corner-all').addClass('ui-corner-top');
8613
8792
  }
8614
8793
 
8615
- this.list.addClass(self.widgetBaseClass + '-open').attr('aria-hidden', false);
8616
- // FIX IE: Refreshing position before focusing the element, prevents IE from scrolling to the focused element before it is in position.
8617
- this._refreshPosition();
8618
- this.list.find('li:not(.' + self.widgetBaseClass + '-group):eq(' + this._selectedIndex() + ') a')[0].focus();
8619
- if (this.options.style == "dropdown") {
8620
- this.newelement.removeClass('ui-corner-all').addClass('ui-corner-top');
8794
+ self.listWrap.addClass(self.widgetBaseClass + '-open');
8795
+ // positioning needed for IE7 (tested 01.08.11 on MS VPC Image)
8796
+ // see https://github.com/fnagel/jquery-ui/issues/147
8797
+ if ($.browser.msie && $.browser.version.substr(0, 1) == 7) {
8798
+ self._refreshPosition();
8621
8799
  }
8622
- this._trigger("open", event, this._uiHash());
8800
+ var selected = self.list.attr('aria-hidden', false).find('li:not(.' + self.widgetBaseClass + '-group):eq(' + self._selectedIndex() + '):visible a');
8801
+ if (selected.length) selected[0].focus();
8802
+ // positioning needed for FF, Chrome, IE8, IE7, IE6 (tested 01.08.11 on MS VPC Image)
8803
+ self._refreshPosition();
8804
+
8805
+ self._trigger("open", event, self._uiHash());
8623
8806
  }
8624
8807
  },
8625
8808
 
@@ -8627,9 +8810,8 @@
8627
8810
  if (this.newelement.is('.ui-state-active')) {
8628
8811
  this.newelement
8629
8812
  .removeClass('ui-state-active');
8630
- this.list
8631
- .attr('aria-hidden', true)
8632
- .removeClass(this.widgetBaseClass + '-open');
8813
+ this.listWrap.removeClass(this.widgetBaseClass + '-open');
8814
+ this.list.attr('aria-hidden', true);
8633
8815
  if (this.options.style == "dropdown") {
8634
8816
  this.newelement.removeClass('ui-corner-top').addClass('ui-corner-all');
8635
8817
  }
@@ -8646,6 +8828,9 @@
8646
8828
  },
8647
8829
 
8648
8830
  select: function(event) {
8831
+ if (this._disabled(event.currentTarget)) {
8832
+ return false;
8833
+ }
8649
8834
  this._trigger("select", event, this._uiHash());
8650
8835
  },
8651
8836
 
@@ -8680,19 +8865,39 @@
8680
8865
  return this.list.find('.' + this.widgetBaseClass + '-item-focus');
8681
8866
  },
8682
8867
 
8683
- _moveSelection: function(amt) {
8684
- var currIndex = parseInt(this._selectedOptionLi().data('index'), 10);
8685
- var newIndex = currIndex + amt;
8686
- // do not loop when using up key
8687
- if (newIndex >= 0) return this._optionLis.eq(newIndex).trigger('mouseup');
8868
+ _moveSelection: function(amt, recIndex) {
8869
+ // do nothing if disabled
8870
+ if (!this.options.disabled) {
8871
+ var currIndex = parseInt(this._selectedOptionLi().data('index') || 0, 10);
8872
+ var newIndex = currIndex + amt;
8873
+ // do not loop when using up key
8874
+
8875
+ if (newIndex < 0) {
8876
+ newIndex = 0;
8877
+ }
8878
+ if (newIndex > this._optionLis.size() - 1) {
8879
+ newIndex = this._optionLis.size() - 1;
8880
+ }
8881
+ // Occurs when a full loop has been made
8882
+ if (newIndex === recIndex) {
8883
+ return false;
8884
+ }
8885
+
8886
+ if (this._optionLis.eq(newIndex).hasClass(this.namespace + '-state-disabled')) {
8887
+ // if option at newIndex is disabled, call _moveFocus, incrementing amt by one
8888
+ (amt > 0) ? ++amt : --amt;
8889
+ this._moveSelection(amt, newIndex);
8890
+ } else {
8891
+ return this._optionLis.eq(newIndex).trigger('mouseup');
8892
+ }
8893
+ }
8688
8894
  },
8689
8895
 
8690
- _moveFocus: function(amt) {
8896
+ _moveFocus: function(amt, recIndex) {
8691
8897
  if (!isNaN(amt)) {
8692
8898
  var currIndex = parseInt(this._focusedOptionLi().data('index') || 0, 10);
8693
8899
  var newIndex = currIndex + amt;
8694
- }
8695
- else {
8900
+ } else {
8696
8901
  var newIndex = parseInt(this._optionLis.filter(amt).data('index'), 10);
8697
8902
  }
8698
8903
 
@@ -8703,13 +8908,18 @@
8703
8908
  newIndex = this._optionLis.size() - 1;
8704
8909
  }
8705
8910
 
8911
+ //Occurs when a full loop has been made
8912
+ if (newIndex === recIndex) {
8913
+ return false;
8914
+ }
8915
+
8706
8916
  var activeID = this.widgetBaseClass + '-item-' + Math.round(Math.random() * 1000);
8707
8917
 
8708
8918
  this._focusedOptionLi().find('a:eq(0)').attr('id', '');
8709
8919
 
8710
8920
  if (this._optionLis.eq(newIndex).hasClass(this.namespace + '-state-disabled')) {
8711
8921
  // if option at newIndex is disabled, call _moveFocus, incrementing amt by one
8712
- (amt > 0) ? amt++ : amt--;
8922
+ (amt > 0) ? ++amt : --amt;
8713
8923
  this._moveFocus(amt, newIndex);
8714
8924
  } else {
8715
8925
  this._optionLis.eq(newIndex).find('a:eq(0)').attr('id', activeID).focus();
@@ -8856,29 +9066,32 @@
8856
9066
  this._selectedOptionLi()
8857
9067
  .find('a:eq(0)')
8858
9068
  .html()
8859
- );
9069
+ );
8860
9070
 
8861
9071
  this.list.attr('aria-activedescendant', activeID);
8862
9072
  },
8863
9073
 
8864
9074
  _refreshPosition: function() {
8865
9075
  var o = this.options;
9076
+
8866
9077
  // if its a native pop-up we need to calculate the position of the selected li
8867
9078
  if (o.style == "popup" && !o.positionOptions.offset) {
8868
9079
  var selected = this._selectedOptionLi();
8869
- var _offset = "0 -" + (selected.outerHeight() + selected.offset().top - this.list.offset().top);
8870
- }
8871
- this.list
8872
- .css({
8873
- zIndex: this.element.zIndex()
8874
- })
8875
- .position({
8876
- // set options for position plugin
8877
- of: o.positionOptions.of || this.newelement,
8878
- my: o.positionOptions.my,
8879
- at: o.positionOptions.at,
8880
- offset: o.positionOptions.offset || _offset
8881
- });
9080
+ var _offset = "0 -" + ( selected.outerHeight() + selected.offset().top - this.list.offset().top );
9081
+ }
9082
+ // update zIndex if jQuery UI is able to process
9083
+ var zIndexElement = this.element.zIndex();
9084
+ if (zIndexElement) {
9085
+ this.listWrap.css('zIndex', zIndexElement);
9086
+ }
9087
+ this.listWrap.position({
9088
+ // set options for position plugin
9089
+ of: o.positionOptions.of || this.newelement,
9090
+ my: o.positionOptions.my,
9091
+ at: o.positionOptions.at,
9092
+ offset: o.positionOptions.offset || _offset,
9093
+ collision: o.positionOptions.collision || 'flip'
9094
+ });
8882
9095
  }
8883
9096
  });
8884
9097
 
@@ -8886,7 +9099,7 @@
8886
9099
 
8887
9100
 
8888
9101
  /*
8889
- * jQuery UI Slider 1.8.13
9102
+ * jQuery UI Slider 1.8.16
8890
9103
  *
8891
9104
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
8892
9105
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -8975,26 +9188,26 @@
8975
9188
 
8976
9189
  this.handles.add(this.range).filter("a")
8977
9190
  .click(function(event) {
8978
- event.preventDefault();
8979
- })
9191
+ event.preventDefault();
9192
+ })
8980
9193
  .hover(function() {
8981
- if (!o.disabled) {
8982
- $(this).addClass("ui-state-hover");
8983
- }
8984
- }, function() {
8985
- $(this).removeClass("ui-state-hover");
8986
- })
9194
+ if (!o.disabled) {
9195
+ $(this).addClass("ui-state-hover");
9196
+ }
9197
+ }, function() {
9198
+ $(this).removeClass("ui-state-hover");
9199
+ })
8987
9200
  .focus(function() {
8988
- if (!o.disabled) {
8989
- $(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
8990
- $(this).addClass("ui-state-focus");
8991
- } else {
8992
- $(this).blur();
8993
- }
8994
- })
9201
+ if (!o.disabled) {
9202
+ $(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
9203
+ $(this).addClass("ui-state-focus");
9204
+ } else {
9205
+ $(this).blur();
9206
+ }
9207
+ })
8995
9208
  .blur(function() {
8996
- $(this).removeClass("ui-state-focus");
8997
- });
9209
+ $(this).removeClass("ui-state-focus");
9210
+ });
8998
9211
 
8999
9212
  this.handles.each(function(i) {
9000
9213
  $(this).data("index.ui-slider-handle", i);
@@ -9076,16 +9289,16 @@
9076
9289
 
9077
9290
  })
9078
9291
  .keyup(function(event) {
9079
- var index = $(this).data("index.ui-slider-handle");
9292
+ var index = $(this).data("index.ui-slider-handle");
9080
9293
 
9081
- if (self._keySliding) {
9082
- self._keySliding = false;
9083
- self._stop(event, index);
9084
- self._change(event, index);
9085
- $(this).removeClass("ui-state-active");
9086
- }
9294
+ if (self._keySliding) {
9295
+ self._keySliding = false;
9296
+ self._stop(event, index);
9297
+ self._change(event, index);
9298
+ $(this).removeClass("ui-state-active");
9299
+ }
9087
9300
 
9088
- });
9301
+ });
9089
9302
 
9090
9303
  this._refreshValue();
9091
9304
 
@@ -9389,10 +9602,10 @@
9389
9602
  if (value) {
9390
9603
  this.handles.filter(".ui-state-focus").blur();
9391
9604
  this.handles.removeClass("ui-state-hover");
9392
- this.handles.attr("disabled", "disabled");
9605
+ this.handles.propAttr("disabled", true);
9393
9606
  this.element.addClass("ui-disabled");
9394
9607
  } else {
9395
- this.handles.removeAttr("disabled");
9608
+ this.handles.propAttr("disabled", false);
9396
9609
  this.element.removeClass("ui-disabled");
9397
9610
  }
9398
9611
  break;
@@ -9463,8 +9676,8 @@
9463
9676
  return this._valueMax();
9464
9677
  }
9465
9678
  var step = ( this.options.step > 0 ) ? this.options.step : 1,
9466
- valModStep = (val - this._valueMin()) % step;
9467
- alignValue = val - valModStep;
9679
+ valModStep = (val - this._valueMin()) % step,
9680
+ alignValue = val - valModStep;
9468
9681
 
9469
9682
  if (Math.abs(valModStep) * 2 >= step) {
9470
9683
  alignValue += ( valModStep > 0 ) ? step : ( -step );
@@ -9547,14 +9760,14 @@
9547
9760
  });
9548
9761
 
9549
9762
  $.extend($.ui.slider, {
9550
- version: "1.8.13"
9763
+ version: "1.8.16"
9551
9764
  });
9552
9765
 
9553
9766
  }(jQuery));
9554
9767
 
9555
9768
 
9556
9769
  /*
9557
- * jQuery UI Sortable 1.8.13
9770
+ * jQuery UI Sortable 1.8.16
9558
9771
  *
9559
9772
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
9560
9773
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -10569,7 +10782,7 @@
10569
10782
 
10570
10783
  // We first have to update the dom position of the actual currentItem
10571
10784
  // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
10572
- if (!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem);
10785
+ if (!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem);
10573
10786
  this._noFinalSort = null;
10574
10787
 
10575
10788
  if (this.helper[0] == this.currentItem[0]) {
@@ -10687,14 +10900,14 @@
10687
10900
  });
10688
10901
 
10689
10902
  $.extend($.ui.sortable, {
10690
- version: "1.8.13"
10903
+ version: "1.8.16"
10691
10904
  });
10692
10905
 
10693
10906
  })(jQuery);
10694
10907
 
10695
10908
 
10696
10909
  /*
10697
- * jQuery UI Tabs 1.8.13
10910
+ * jQuery UI Tabs 1.8.16
10698
10911
  *
10699
10912
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
10700
10913
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -10787,9 +11000,9 @@
10787
11000
  .removeClass("ui-state-processing")
10788
11001
  .find("span:data(label.tabs)")
10789
11002
  .each(function() {
10790
- var el = $(this);
10791
- el.html(el.data("label.tabs")).removeData("label.tabs");
10792
- });
11003
+ var el = $(this);
11004
+ el.html(el.data("label.tabs")).removeData("label.tabs");
11005
+ });
10793
11006
  },
10794
11007
 
10795
11008
  _tabify: function(init) {
@@ -10894,7 +11107,7 @@
10894
11107
  $.map(this.lis.filter(".ui-state-disabled"), function(n, i) {
10895
11108
  return self.lis.index(n);
10896
11109
  })
10897
- )).sort();
11110
+ )).sort();
10898
11111
 
10899
11112
  if ($.inArray(o.selected, o.disabled) != -1) {
10900
11113
  o.disabled.splice($.inArray(o.selected, o.disabled), 1);
@@ -10998,34 +11211,34 @@
10998
11211
  // Show a tab...
10999
11212
  var showTab = showFx
11000
11213
  ? function(clicked, $show) {
11001
- $(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");
11002
- $show.hide().removeClass("ui-tabs-hide")// avoid flicker that way
11003
- .animate(showFx, showFx.duration || "normal", function() {
11214
+ $(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");
11215
+ $show.hide().removeClass("ui-tabs-hide")// avoid flicker that way
11216
+ .animate(showFx, showFx.duration || "normal", function() {
11004
11217
  resetStyle($show, showFx);
11005
11218
  self._trigger("show", null, self._ui(clicked, $show[ 0 ]));
11006
11219
  });
11007
- }
11220
+ }
11008
11221
  : function(clicked, $show) {
11009
- $(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");
11010
- $show.removeClass("ui-tabs-hide");
11011
- self._trigger("show", null, self._ui(clicked, $show[ 0 ]));
11012
- };
11222
+ $(clicked).closest("li").addClass("ui-tabs-selected ui-state-active");
11223
+ $show.removeClass("ui-tabs-hide");
11224
+ self._trigger("show", null, self._ui(clicked, $show[ 0 ]));
11225
+ };
11013
11226
 
11014
11227
  // Hide a tab, $show is optional...
11015
11228
  var hideTab = hideFx
11016
11229
  ? function(clicked, $hide) {
11017
- $hide.animate(hideFx, hideFx.duration || "normal", function() {
11018
- self.lis.removeClass("ui-tabs-selected ui-state-active");
11019
- $hide.addClass("ui-tabs-hide");
11020
- resetStyle($hide, hideFx);
11021
- self.element.dequeue("tabs");
11022
- });
11023
- }
11230
+ $hide.animate(hideFx, hideFx.duration || "normal", function() {
11231
+ self.lis.removeClass("ui-tabs-selected ui-state-active");
11232
+ $hide.addClass("ui-tabs-hide");
11233
+ resetStyle($hide, hideFx);
11234
+ self.element.dequeue("tabs");
11235
+ });
11236
+ }
11024
11237
  : function(clicked, $hide, $show) {
11025
- self.lis.removeClass("ui-tabs-selected ui-state-active");
11026
- $hide.addClass("ui-tabs-hide");
11027
- self.element.dequeue("tabs");
11028
- };
11238
+ self.lis.removeClass("ui-tabs-selected ui-state-active");
11239
+ $hide.addClass("ui-tabs-hide");
11240
+ self.element.dequeue("tabs");
11241
+ };
11029
11242
 
11030
11243
  // attach tab event handler, unbind to avoid duplicates from former tabifying...
11031
11244
  this.anchors.bind(o.event + ".tabs", function() {
@@ -11396,7 +11609,7 @@
11396
11609
  });
11397
11610
 
11398
11611
  $.extend($.ui.tabs, {
11399
- version: "1.8.13"
11612
+ version: "1.8.16"
11400
11613
  });
11401
11614
 
11402
11615
  /*
@@ -11426,14 +11639,14 @@
11426
11639
 
11427
11640
  var stop = self._unrotate || ( self._unrotate = !continuing
11428
11641
  ? function(e) {
11429
- if (e.clientX) { // in case of a true click
11430
- self.rotate(null);
11431
- }
11432
- }
11642
+ if (e.clientX) { // in case of a true click
11643
+ self.rotate(null);
11644
+ }
11645
+ }
11433
11646
  : function(e) {
11434
- t = o.selected;
11435
- rotate();
11436
- });
11647
+ t = o.selected;
11648
+ rotate();
11649
+ });
11437
11650
 
11438
11651
  // start rotation
11439
11652
  if (ms) {
@@ -11457,7 +11670,7 @@
11457
11670
 
11458
11671
 
11459
11672
  /*
11460
- * jQuery UI Effects 1.8.13
11673
+ * jQuery UI Effects 1.8.16
11461
11674
  *
11462
11675
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
11463
11676
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -11708,7 +11921,7 @@ jQuery.effects || (function($, undefined) {
11708
11921
  that.animate(styleDifference(originalStyle, newStyle), {
11709
11922
  queue: false,
11710
11923
  duration: duration,
11711
- easding: easing,
11924
+ easing: easing,
11712
11925
  complete: function() {
11713
11926
  $.each(classAnimationActions, function(i, action) {
11714
11927
  if (value[action]) {
@@ -11788,7 +12001,7 @@ jQuery.effects || (function($, undefined) {
11788
12001
  /******************************************************************************/
11789
12002
 
11790
12003
  $.extend($.effects, {
11791
- version: "1.8.13",
12004
+ version: "1.8.16",
11792
12005
 
11793
12006
  // Saves a set of properties in a data storage
11794
12007
  save: function(element, set) {
@@ -11813,17 +12026,31 @@ jQuery.effects || (function($, undefined) {
11813
12026
  // this should be a little more flexible in the future to handle a string & hash
11814
12027
  var y, x;
11815
12028
  switch (origin[0]) {
11816
- case 'top': y = 0; break;
11817
- case 'middle': y = 0.5; break;
11818
- case 'bottom': y = 1; break;
11819
- default: y = origin[0] / original.height;
12029
+ case 'top':
12030
+ y = 0;
12031
+ break;
12032
+ case 'middle':
12033
+ y = 0.5;
12034
+ break;
12035
+ case 'bottom':
12036
+ y = 1;
12037
+ break;
12038
+ default:
12039
+ y = origin[0] / original.height;
11820
12040
  }
11821
12041
  ;
11822
12042
  switch (origin[1]) {
11823
- case 'left': x = 0; break;
11824
- case 'center': x = 0.5; break;
11825
- case 'right': x = 1; break;
11826
- default: x = origin[1] / original.width;
12043
+ case 'left':
12044
+ x = 0;
12045
+ break;
12046
+ case 'center':
12047
+ x = 0.5;
12048
+ break;
12049
+ case 'right':
12050
+ x = 1;
12051
+ break;
12052
+ default:
12053
+ x = origin[1] / original.width;
11827
12054
  }
11828
12055
  ;
11829
12056
  return {x: x, y: y};
@@ -11846,14 +12073,21 @@ jQuery.effects || (function($, undefined) {
11846
12073
  wrapper = $('<div></div>')
11847
12074
  .addClass('ui-effects-wrapper')
11848
12075
  .css({
11849
- fontSize: '100%',
11850
- background: 'transparent',
11851
- border: 'none',
11852
- margin: 0,
11853
- padding: 0
11854
- });
12076
+ fontSize: '100%',
12077
+ background: 'transparent',
12078
+ border: 'none',
12079
+ margin: 0,
12080
+ padding: 0
12081
+ }),
12082
+ active = document.activeElement;
11855
12083
 
11856
12084
  element.wrap(wrapper);
12085
+
12086
+ // Fixes #7595 - Elements lose focus when wrapped.
12087
+ if (element[ 0 ] === active || $.contains(element[ 0 ], active)) {
12088
+ $(active).focus();
12089
+ }
12090
+
11857
12091
  wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
11858
12092
 
11859
12093
  // transfer positioning properties to the wrapper
@@ -11878,8 +12112,18 @@ jQuery.effects || (function($, undefined) {
11878
12112
  },
11879
12113
 
11880
12114
  removeWrapper: function(element) {
11881
- if (element.parent().is('.ui-effects-wrapper'))
11882
- return element.parent().replaceWith(element);
12115
+ var parent,
12116
+ active = document.activeElement;
12117
+
12118
+ if (element.parent().is('.ui-effects-wrapper')) {
12119
+ parent = element.parent().replaceWith(element);
12120
+ // Fixes #7595 - Elements lose focus when wrapped.
12121
+ if (element[ 0 ] === active || $.contains(element[ 0 ], active)) {
12122
+ $(active).focus();
12123
+ }
12124
+ return parent;
12125
+ }
12126
+
11883
12127
  return element;
11884
12128
  },
11885
12129
 
@@ -12061,158 +12305,158 @@ jQuery.effects || (function($, undefined) {
12061
12305
  $.easing.jswing = $.easing.swing;
12062
12306
 
12063
12307
  $.extend($.easing,
12064
- {
12065
- def: 'easeOutQuad',
12066
- swing: function (x, t, b, c, d) {
12067
- //alert($.easing.default);
12068
- return $.easing[$.easing.def](x, t, b, c, d);
12069
- },
12070
- easeInQuad: function (x, t, b, c, d) {
12071
- return c * (t /= d) * t + b;
12072
- },
12073
- easeOutQuad: function (x, t, b, c, d) {
12074
- return -c * (t /= d) * (t - 2) + b;
12075
- },
12076
- easeInOutQuad: function (x, t, b, c, d) {
12077
- if ((t /= d / 2) < 1) return c / 2 * t * t + b;
12078
- return -c / 2 * ((--t) * (t - 2) - 1) + b;
12079
- },
12080
- easeInCubic: function (x, t, b, c, d) {
12081
- return c * (t /= d) * t * t + b;
12082
- },
12083
- easeOutCubic: function (x, t, b, c, d) {
12084
- return c * ((t = t / d - 1) * t * t + 1) + b;
12085
- },
12086
- easeInOutCubic: function (x, t, b, c, d) {
12087
- if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
12088
- return c / 2 * ((t -= 2) * t * t + 2) + b;
12089
- },
12090
- easeInQuart: function (x, t, b, c, d) {
12091
- return c * (t /= d) * t * t * t + b;
12092
- },
12093
- easeOutQuart: function (x, t, b, c, d) {
12094
- return -c * ((t = t / d - 1) * t * t * t - 1) + b;
12095
- },
12096
- easeInOutQuart: function (x, t, b, c, d) {
12097
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
12098
- return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
12099
- },
12100
- easeInQuint: function (x, t, b, c, d) {
12101
- return c * (t /= d) * t * t * t * t + b;
12102
- },
12103
- easeOutQuint: function (x, t, b, c, d) {
12104
- return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
12105
- },
12106
- easeInOutQuint: function (x, t, b, c, d) {
12107
- if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
12108
- return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
12109
- },
12110
- easeInSine: function (x, t, b, c, d) {
12111
- return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
12112
- },
12113
- easeOutSine: function (x, t, b, c, d) {
12114
- return c * Math.sin(t / d * (Math.PI / 2)) + b;
12115
- },
12116
- easeInOutSine: function (x, t, b, c, d) {
12117
- return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
12118
- },
12119
- easeInExpo: function (x, t, b, c, d) {
12120
- return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
12121
- },
12122
- easeOutExpo: function (x, t, b, c, d) {
12123
- return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
12124
- },
12125
- easeInOutExpo: function (x, t, b, c, d) {
12126
- if (t == 0) return b;
12127
- if (t == d) return b + c;
12128
- if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
12129
- return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
12130
- },
12131
- easeInCirc: function (x, t, b, c, d) {
12132
- return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
12133
- },
12134
- easeOutCirc: function (x, t, b, c, d) {
12135
- return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
12136
- },
12137
- easeInOutCirc: function (x, t, b, c, d) {
12138
- if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
12139
- return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
12140
- },
12141
- easeInElastic: function (x, t, b, c, d) {
12142
- var s = 1.70158;
12143
- var p = 0;
12144
- var a = c;
12145
- if (t == 0) return b;
12146
- if ((t /= d) == 1) return b + c;
12147
- if (!p) p = d * .3;
12148
- if (a < Math.abs(c)) {
12149
- a = c;
12150
- var s = p / 4;
12151
- }
12152
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
12153
- return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
12154
- },
12155
- easeOutElastic: function (x, t, b, c, d) {
12156
- var s = 1.70158;
12157
- var p = 0;
12158
- var a = c;
12159
- if (t == 0) return b;
12160
- if ((t /= d) == 1) return b + c;
12161
- if (!p) p = d * .3;
12162
- if (a < Math.abs(c)) {
12163
- a = c;
12164
- var s = p / 4;
12165
- }
12166
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
12167
- return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
12168
- },
12169
- easeInOutElastic: function (x, t, b, c, d) {
12170
- var s = 1.70158;
12171
- var p = 0;
12172
- var a = c;
12173
- if (t == 0) return b;
12174
- if ((t /= d / 2) == 2) return b + c;
12175
- if (!p) p = d * (.3 * 1.5);
12176
- if (a < Math.abs(c)) {
12177
- a = c;
12178
- var s = p / 4;
12179
- }
12180
- else var s = p / (2 * Math.PI) * Math.asin(c / a);
12181
- if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
12182
- return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
12183
- },
12184
- easeInBack: function (x, t, b, c, d, s) {
12185
- if (s == undefined) s = 1.70158;
12186
- return c * (t /= d) * t * ((s + 1) * t - s) + b;
12187
- },
12188
- easeOutBack: function (x, t, b, c, d, s) {
12189
- if (s == undefined) s = 1.70158;
12190
- return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
12191
- },
12192
- easeInOutBack: function (x, t, b, c, d, s) {
12193
- if (s == undefined) s = 1.70158;
12194
- if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
12195
- return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
12196
- },
12197
- easeInBounce: function (x, t, b, c, d) {
12198
- return c - $.easing.easeOutBounce(x, d - t, 0, c, d) + b;
12199
- },
12200
- easeOutBounce: function (x, t, b, c, d) {
12201
- if ((t /= d) < (1 / 2.75)) {
12202
- return c * (7.5625 * t * t) + b;
12203
- } else if (t < (2 / 2.75)) {
12204
- return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
12205
- } else if (t < (2.5 / 2.75)) {
12206
- return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
12207
- } else {
12208
- return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
12209
- }
12210
- },
12211
- easeInOutBounce: function (x, t, b, c, d) {
12212
- if (t < d / 2) return $.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;
12213
- return $.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;
12214
- }
12215
- });
12308
+ {
12309
+ def: 'easeOutQuad',
12310
+ swing: function (x, t, b, c, d) {
12311
+ //alert($.easing.default);
12312
+ return $.easing[$.easing.def](x, t, b, c, d);
12313
+ },
12314
+ easeInQuad: function (x, t, b, c, d) {
12315
+ return c * (t /= d) * t + b;
12316
+ },
12317
+ easeOutQuad: function (x, t, b, c, d) {
12318
+ return -c * (t /= d) * (t - 2) + b;
12319
+ },
12320
+ easeInOutQuad: function (x, t, b, c, d) {
12321
+ if ((t /= d / 2) < 1) return c / 2 * t * t + b;
12322
+ return -c / 2 * ((--t) * (t - 2) - 1) + b;
12323
+ },
12324
+ easeInCubic: function (x, t, b, c, d) {
12325
+ return c * (t /= d) * t * t + b;
12326
+ },
12327
+ easeOutCubic: function (x, t, b, c, d) {
12328
+ return c * ((t = t / d - 1) * t * t + 1) + b;
12329
+ },
12330
+ easeInOutCubic: function (x, t, b, c, d) {
12331
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
12332
+ return c / 2 * ((t -= 2) * t * t + 2) + b;
12333
+ },
12334
+ easeInQuart: function (x, t, b, c, d) {
12335
+ return c * (t /= d) * t * t * t + b;
12336
+ },
12337
+ easeOutQuart: function (x, t, b, c, d) {
12338
+ return -c * ((t = t / d - 1) * t * t * t - 1) + b;
12339
+ },
12340
+ easeInOutQuart: function (x, t, b, c, d) {
12341
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
12342
+ return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
12343
+ },
12344
+ easeInQuint: function (x, t, b, c, d) {
12345
+ return c * (t /= d) * t * t * t * t + b;
12346
+ },
12347
+ easeOutQuint: function (x, t, b, c, d) {
12348
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
12349
+ },
12350
+ easeInOutQuint: function (x, t, b, c, d) {
12351
+ if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
12352
+ return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
12353
+ },
12354
+ easeInSine: function (x, t, b, c, d) {
12355
+ return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
12356
+ },
12357
+ easeOutSine: function (x, t, b, c, d) {
12358
+ return c * Math.sin(t / d * (Math.PI / 2)) + b;
12359
+ },
12360
+ easeInOutSine: function (x, t, b, c, d) {
12361
+ return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
12362
+ },
12363
+ easeInExpo: function (x, t, b, c, d) {
12364
+ return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
12365
+ },
12366
+ easeOutExpo: function (x, t, b, c, d) {
12367
+ return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
12368
+ },
12369
+ easeInOutExpo: function (x, t, b, c, d) {
12370
+ if (t == 0) return b;
12371
+ if (t == d) return b + c;
12372
+ if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
12373
+ return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
12374
+ },
12375
+ easeInCirc: function (x, t, b, c, d) {
12376
+ return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
12377
+ },
12378
+ easeOutCirc: function (x, t, b, c, d) {
12379
+ return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
12380
+ },
12381
+ easeInOutCirc: function (x, t, b, c, d) {
12382
+ if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
12383
+ return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
12384
+ },
12385
+ easeInElastic: function (x, t, b, c, d) {
12386
+ var s = 1.70158;
12387
+ var p = 0;
12388
+ var a = c;
12389
+ if (t == 0) return b;
12390
+ if ((t /= d) == 1) return b + c;
12391
+ if (!p) p = d * .3;
12392
+ if (a < Math.abs(c)) {
12393
+ a = c;
12394
+ var s = p / 4;
12395
+ }
12396
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
12397
+ return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
12398
+ },
12399
+ easeOutElastic: function (x, t, b, c, d) {
12400
+ var s = 1.70158;
12401
+ var p = 0;
12402
+ var a = c;
12403
+ if (t == 0) return b;
12404
+ if ((t /= d) == 1) return b + c;
12405
+ if (!p) p = d * .3;
12406
+ if (a < Math.abs(c)) {
12407
+ a = c;
12408
+ var s = p / 4;
12409
+ }
12410
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
12411
+ return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
12412
+ },
12413
+ easeInOutElastic: function (x, t, b, c, d) {
12414
+ var s = 1.70158;
12415
+ var p = 0;
12416
+ var a = c;
12417
+ if (t == 0) return b;
12418
+ if ((t /= d / 2) == 2) return b + c;
12419
+ if (!p) p = d * (.3 * 1.5);
12420
+ if (a < Math.abs(c)) {
12421
+ a = c;
12422
+ var s = p / 4;
12423
+ }
12424
+ else var s = p / (2 * Math.PI) * Math.asin(c / a);
12425
+ if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
12426
+ return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
12427
+ },
12428
+ easeInBack: function (x, t, b, c, d, s) {
12429
+ if (s == undefined) s = 1.70158;
12430
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
12431
+ },
12432
+ easeOutBack: function (x, t, b, c, d, s) {
12433
+ if (s == undefined) s = 1.70158;
12434
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
12435
+ },
12436
+ easeInOutBack: function (x, t, b, c, d, s) {
12437
+ if (s == undefined) s = 1.70158;
12438
+ if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
12439
+ return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
12440
+ },
12441
+ easeInBounce: function (x, t, b, c, d) {
12442
+ return c - $.easing.easeOutBounce(x, d - t, 0, c, d) + b;
12443
+ },
12444
+ easeOutBounce: function (x, t, b, c, d) {
12445
+ if ((t /= d) < (1 / 2.75)) {
12446
+ return c * (7.5625 * t * t) + b;
12447
+ } else if (t < (2 / 2.75)) {
12448
+ return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
12449
+ } else if (t < (2.5 / 2.75)) {
12450
+ return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
12451
+ } else {
12452
+ return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
12453
+ }
12454
+ },
12455
+ easeInOutBounce: function (x, t, b, c, d) {
12456
+ if (t < d / 2) return $.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;
12457
+ return $.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;
12458
+ }
12459
+ });
12216
12460
 
12217
12461
  /*
12218
12462
  *
@@ -12251,7 +12495,7 @@ jQuery.effects || (function($, undefined) {
12251
12495
 
12252
12496
 
12253
12497
  /*
12254
- * jQuery UI Effects Blind 1.8.13
12498
+ * jQuery UI Effects Blind 1.8.16
12255
12499
  *
12256
12500
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12257
12501
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12304,7 +12548,7 @@ jQuery.effects || (function($, undefined) {
12304
12548
 
12305
12549
 
12306
12550
  /*
12307
- * jQuery UI Effects Bounce 1.8.13
12551
+ * jQuery UI Effects Bounce 1.8.16
12308
12552
  *
12309
12553
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12310
12554
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12392,7 +12636,7 @@ jQuery.effects || (function($, undefined) {
12392
12636
 
12393
12637
 
12394
12638
  /*
12395
- * jQuery UI Effects Clip 1.8.13
12639
+ * jQuery UI Effects Clip 1.8.16
12396
12640
  *
12397
12641
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12398
12642
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12453,7 +12697,7 @@ jQuery.effects || (function($, undefined) {
12453
12697
 
12454
12698
 
12455
12699
  /*
12456
- * jQuery UI Effects Drop 1.8.13
12700
+ * jQuery UI Effects Drop 1.8.16
12457
12701
  *
12458
12702
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12459
12703
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12507,7 +12751,7 @@ jQuery.effects || (function($, undefined) {
12507
12751
 
12508
12752
 
12509
12753
  /*
12510
- * jQuery UI Effects Explode 1.8.13
12754
+ * jQuery UI Effects Explode 1.8.16
12511
12755
  *
12512
12756
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12513
12757
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12545,26 +12789,26 @@ jQuery.effects || (function($, undefined) {
12545
12789
  .appendTo('body')
12546
12790
  .wrap('<div></div>')
12547
12791
  .css({
12548
- position: 'absolute',
12549
- visibility: 'visible',
12550
- left: -j * (width / cells),
12551
- top: -i * (height / rows)
12552
- })
12792
+ position: 'absolute',
12793
+ visibility: 'visible',
12794
+ left: -j * (width / cells),
12795
+ top: -i * (height / rows)
12796
+ })
12553
12797
  .parent()
12554
12798
  .addClass('ui-effects-explode')
12555
12799
  .css({
12556
- position: 'absolute',
12557
- overflow: 'hidden',
12558
- width: width / cells,
12559
- height: height / rows,
12560
- left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? (j - Math.floor(cells / 2)) * (width / cells) : 0),
12561
- top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? (i - Math.floor(rows / 2)) * (height / rows) : 0),
12562
- opacity: o.options.mode == 'show' ? 0 : 1
12563
- }).animate({
12564
- left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? 0 : (j - Math.floor(cells / 2)) * (width / cells)),
12565
- top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? 0 : (i - Math.floor(rows / 2)) * (height / rows)),
12566
- opacity: o.options.mode == 'show' ? 1 : 0
12567
- }, o.duration || 500);
12800
+ position: 'absolute',
12801
+ overflow: 'hidden',
12802
+ width: width / cells,
12803
+ height: height / rows,
12804
+ left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? (j - Math.floor(cells / 2)) * (width / cells) : 0),
12805
+ top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? (i - Math.floor(rows / 2)) * (height / rows) : 0),
12806
+ opacity: o.options.mode == 'show' ? 0 : 1
12807
+ }).animate({
12808
+ left: offset.left + j * (width / cells) + (o.options.mode == 'show' ? 0 : (j - Math.floor(cells / 2)) * (width / cells)),
12809
+ top: offset.top + i * (height / rows) + (o.options.mode == 'show' ? 0 : (i - Math.floor(rows / 2)) * (height / rows)),
12810
+ opacity: o.options.mode == 'show' ? 1 : 0
12811
+ }, o.duration || 500);
12568
12812
  }
12569
12813
  }
12570
12814
 
@@ -12588,7 +12832,7 @@ jQuery.effects || (function($, undefined) {
12588
12832
 
12589
12833
 
12590
12834
  /*
12591
- * jQuery UI Effects Fade 1.8.13
12835
+ * jQuery UI Effects Fade 1.8.16
12592
12836
  *
12593
12837
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12594
12838
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12622,7 +12866,7 @@ jQuery.effects || (function($, undefined) {
12622
12866
 
12623
12867
 
12624
12868
  /*
12625
- * jQuery UI Effects Fold 1.8.13
12869
+ * jQuery UI Effects Fold 1.8.16
12626
12870
  *
12627
12871
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12628
12872
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12667,12 +12911,12 @@ jQuery.effects || (function($, undefined) {
12667
12911
  // Animate
12668
12912
  wrapper.animate(animation1, duration, o.options.easing)
12669
12913
  .animate(animation2, duration, o.options.easing, function() {
12670
- if (mode == 'hide') el.hide(); // Hide
12671
- $.effects.restore(el, props);
12672
- $.effects.removeWrapper(el); // Restore
12673
- if (o.callback) o.callback.apply(el[0], arguments); // Callback
12674
- el.dequeue();
12675
- });
12914
+ if (mode == 'hide') el.hide(); // Hide
12915
+ $.effects.restore(el, props);
12916
+ $.effects.removeWrapper(el); // Restore
12917
+ if (o.callback) o.callback.apply(el[0], arguments); // Callback
12918
+ el.dequeue();
12919
+ });
12676
12920
 
12677
12921
  });
12678
12922
 
@@ -12682,7 +12926,7 @@ jQuery.effects || (function($, undefined) {
12682
12926
 
12683
12927
 
12684
12928
  /*
12685
- * jQuery UI Effects Highlight 1.8.13
12929
+ * jQuery UI Effects Highlight 1.8.16
12686
12930
  *
12687
12931
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12688
12932
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12712,21 +12956,21 @@ jQuery.effects || (function($, undefined) {
12712
12956
  elem
12713
12957
  .show()
12714
12958
  .css({
12715
- backgroundImage: 'none',
12716
- backgroundColor: o.options.color || '#ffff99'
12717
- })
12959
+ backgroundImage: 'none',
12960
+ backgroundColor: o.options.color || '#ffff99'
12961
+ })
12718
12962
  .animate(animation, {
12719
- queue: false,
12720
- duration: o.duration,
12721
- easing: o.options.easing,
12722
- complete: function() {
12723
- (mode == 'hide' && elem.hide());
12724
- $.effects.restore(elem, props);
12725
- (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
12726
- (o.callback && o.callback.apply(this, arguments));
12727
- elem.dequeue();
12728
- }
12729
- });
12963
+ queue: false,
12964
+ duration: o.duration,
12965
+ easing: o.options.easing,
12966
+ complete: function() {
12967
+ (mode == 'hide' && elem.hide());
12968
+ $.effects.restore(elem, props);
12969
+ (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
12970
+ (o.callback && o.callback.apply(this, arguments));
12971
+ elem.dequeue();
12972
+ }
12973
+ });
12730
12974
  });
12731
12975
  };
12732
12976
 
@@ -12734,7 +12978,7 @@ jQuery.effects || (function($, undefined) {
12734
12978
 
12735
12979
 
12736
12980
  /*
12737
- * jQuery UI Effects Pulsate 1.8.13
12981
+ * jQuery UI Effects Pulsate 1.8.16
12738
12982
  *
12739
12983
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12740
12984
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12789,7 +13033,7 @@ jQuery.effects || (function($, undefined) {
12789
13033
 
12790
13034
 
12791
13035
  /*
12792
- * jQuery UI Effects Scale 1.8.13
13036
+ * jQuery UI Effects Scale 1.8.16
12793
13037
  *
12794
13038
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12795
13039
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12991,7 +13235,7 @@ jQuery.effects || (function($, undefined) {
12991
13235
 
12992
13236
 
12993
13237
  /*
12994
- * jQuery UI Effects Shake 1.8.13
13238
+ * jQuery UI Effects Shake 1.8.16
12995
13239
  *
12996
13240
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
12997
13241
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -13039,10 +13283,10 @@ jQuery.effects || (function($, undefined) {
13039
13283
  ;
13040
13284
  el.animate(animation1, speed, o.options.easing).
13041
13285
  animate(animation, speed / 2, o.options.easing, function() { // Last shake
13042
- $.effects.restore(el, props);
13043
- $.effects.removeWrapper(el); // Restore
13044
- if (o.callback) o.callback.apply(this, arguments); // Callback
13045
- });
13286
+ $.effects.restore(el, props);
13287
+ $.effects.removeWrapper(el); // Restore
13288
+ if (o.callback) o.callback.apply(this, arguments); // Callback
13289
+ });
13046
13290
  el.queue('fx', function() {
13047
13291
  el.dequeue();
13048
13292
  });
@@ -13055,7 +13299,7 @@ jQuery.effects || (function($, undefined) {
13055
13299
 
13056
13300
 
13057
13301
  /*
13058
- * jQuery UI Effects Slide 1.8.13
13302
+ * jQuery UI Effects Slide 1.8.16
13059
13303
  *
13060
13304
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
13061
13305
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -13109,7 +13353,7 @@ jQuery.effects || (function($, undefined) {
13109
13353
 
13110
13354
 
13111
13355
  /*
13112
- * jQuery UI Effects Transfer 1.8.13
13356
+ * jQuery UI Effects Transfer 1.8.16
13113
13357
  *
13114
13358
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
13115
13359
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -13138,17 +13382,17 @@ jQuery.effects || (function($, undefined) {
13138
13382
  .appendTo(document.body)
13139
13383
  .addClass(o.options.className)
13140
13384
  .css({
13141
- top: startPosition.top,
13142
- left: startPosition.left,
13143
- height: elem.innerHeight(),
13144
- width: elem.innerWidth(),
13145
- position: 'absolute'
13146
- })
13385
+ top: startPosition.top,
13386
+ left: startPosition.left,
13387
+ height: elem.innerHeight(),
13388
+ width: elem.innerWidth(),
13389
+ position: 'absolute'
13390
+ })
13147
13391
  .animate(animation, o.duration, o.options.easing, function() {
13148
- transfer.remove();
13149
- (o.callback && o.callback.apply(elem[0], arguments));
13150
- elem.dequeue();
13151
- });
13392
+ transfer.remove();
13393
+ (o.callback && o.callback.apply(elem[0], arguments));
13394
+ elem.dequeue();
13395
+ });
13152
13396
  });
13153
13397
  };
13154
13398