compass-jquery-plugin 0.3.3.0 → 0.3.3.1

Sign up to get free protection for your applications and to get access to all the features.
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