Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

first version

  • Loading branch information...
commit d5bf5933fea93250dbe0fcc8babb5d9f963c2ea7 1 parent e5bd920
Adamansky Anton authored November 12, 2012

Showing 24 changed files with 6,248 additions and 3,570 deletions. Show diff stats Hide diff stats

  1. 5  .gitignore
  2. 17  Makefile
  3. 3  README.md
  4. BIN  css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
  5. BIN  css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
  6. BIN  css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
  7. BIN  css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
  8. BIN  css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
  9. BIN  css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
  10. BIN  css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
  11. BIN  css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
  12. BIN  css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
  13. BIN  css/ui-lightness/images/ui-icons_222222_256x240.png
  14. BIN  css/ui-lightness/images/ui-icons_228ef1_256x240.png
  15. BIN  css/ui-lightness/images/ui-icons_ef8c08_256x240.png
  16. BIN  css/ui-lightness/images/ui-icons_ffd27a_256x240.png
  17. BIN  css/ui-lightness/images/ui-icons_ffffff_256x240.png
  18. 325  css/ui-lightness/jquery-ui-1.9.1.custom.css
  19. 5  css/ui-lightness/jquery-ui-1.9.1.custom.min.css
  20. 75  index.html
  21. 7,114  js/{jquery-1.7.2.js → jquery-1.8.2.js}
  22. 2,171  js/jquery-ui-1.9.1.custom.js
  23. 6  js/jquery-ui-1.9.1.custom.min.js
  24. 97  js/main.js
5  .gitignore
... ...
@@ -0,0 +1,5 @@
  1
+/addressbook
  2
+/addressbook_contacts
  3
+/node_modules
  4
+
  5
+
17  Makefile
... ...
@@ -0,0 +1,17 @@
  1
+
  2
+
  3
+all: ejdb;
  4
+
  5
+
  6
+ejdb: node_modules
  7
+	test -d node_modules/ejdb || npm install ejdb
  8
+	test -d node_modules/ejdb && npm update ejdb
  9
+
  10
+node_modules:
  11
+	mkdir -p node_modules
  12
+
  13
+clean:
  14
+	rm -rf node_modules
  15
+
  16
+
  17
+.PHONY: all ejdb
3  README.md
Source Rendered
... ...
@@ -1,4 +1,5 @@
1 1
 nwk-ejdb-address-book
2 2
 =====================
3 3
 
4  
-Simple address book implemented with EJDB and node-webkit
  4
+Simple address book implemented with [EJDB](https://github.com/Softmotions/ejdb) and [node-webkit](https://github.com/rogerwang/node-webkit)
  5
+
BIN  css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
BIN  css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
BIN  css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
BIN  css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
BIN  css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
BIN  css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
BIN  css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
BIN  css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
BIN  css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
BIN  css/ui-lightness/images/ui-icons_222222_256x240.png
BIN  css/ui-lightness/images/ui-icons_228ef1_256x240.png
BIN  css/ui-lightness/images/ui-icons_ef8c08_256x240.png
BIN  css/ui-lightness/images/ui-icons_ffd27a_256x240.png
BIN  css/ui-lightness/images/ui-icons_ffffff_256x240.png
325  css/ui-lightness/jquery-ui-1.9.1.custom.css
... ...
@@ -0,0 +1,325 @@
  1
+/*! jQuery UI - v1.9.1 - 2012-11-11
  2
+* http://jqueryui.com
  3
+* Includes: jquery.ui.core.css, jquery.ui.datepicker.css
  4
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
  5
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
  6
+
  7
+/* Layout helpers
  8
+----------------------------------*/
  9
+.ui-helper-hidden { display: none; }
  10
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
  11
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
  12
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
  13
+.ui-helper-clearfix:after { clear: both; }
  14
+.ui-helper-clearfix { zoom: 1; }
  15
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
  16
+
  17
+
  18
+/* Interaction Cues
  19
+----------------------------------*/
  20
+.ui-state-disabled { cursor: default !important; }
  21
+
  22
+
  23
+/* Icons
  24
+----------------------------------*/
  25
+
  26
+/* states and images */
  27
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
  28
+
  29
+
  30
+/* Misc visuals
  31
+----------------------------------*/
  32
+
  33
+/* Overlays */
  34
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
  35
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
  36
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
  37
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
  38
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
  39
+.ui-datepicker .ui-datepicker-prev { left:2px; }
  40
+.ui-datepicker .ui-datepicker-next { right:2px; }
  41
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
  42
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
  43
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
  44
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
  45
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
  46
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
  47
+.ui-datepicker select.ui-datepicker-month, 
  48
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
  49
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
  50
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
  51
+.ui-datepicker td { border: 0; padding: 1px; }
  52
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
  53
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
  54
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
  55
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
  56
+
  57
+/* with multiple calendars */
  58
+.ui-datepicker.ui-datepicker-multi { width:auto; }
  59
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
  60
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
  61
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
  62
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
  63
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
  64
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
  65
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
  66
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
  67
+.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
  68
+
  69
+/* RTL support */
  70
+.ui-datepicker-rtl { direction: rtl; }
  71
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
  72
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
  73
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
  74
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
  75
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
  76
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
  77
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
  78
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
  79
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
  80
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
  81
+
  82
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
  83
+.ui-datepicker-cover {
  84
+    position: absolute; /*must have*/
  85
+    z-index: -1; /*must have*/
  86
+    filter: mask(); /*must have*/
  87
+    top: -4px; /*must have*/
  88
+    left: -4px; /*must have*/
  89
+    width: 200px; /*must have*/
  90
+    height: 200px; /*must have*/
  91
+}
  92
+/* Component containers
  93
+----------------------------------*/
  94
+.ui-widget { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1.1em; }
  95
+.ui-widget .ui-widget { font-size: 1em; }
  96
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1em; }
  97
+.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
  98
+.ui-widget-content a { color: #333333; }
  99
+.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
  100
+.ui-widget-header a { color: #ffffff; }
  101
+
  102
+/* Interaction states
  103
+----------------------------------*/
  104
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
  105
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
  106
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
  107
+.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #c77405; text-decoration: none; }
  108
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
  109
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
  110
+
  111
+/* Interaction Cues
  112
+----------------------------------*/
  113
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
  114
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
  115
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
  116
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
  117
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
  118
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
  119
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
  120
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
  121
+.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
  122
+
  123
+/* Icons
  124
+----------------------------------*/
  125
+
  126
+/* states and images */
  127
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
  128
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
  129
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
  130
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
  131
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
  132
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
  133
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
  134
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
  135
+
  136
+/* positioning */
  137
+.ui-icon-carat-1-n { background-position: 0 0; }
  138
+.ui-icon-carat-1-ne { background-position: -16px 0; }
  139
+.ui-icon-carat-1-e { background-position: -32px 0; }
  140
+.ui-icon-carat-1-se { background-position: -48px 0; }
  141
+.ui-icon-carat-1-s { background-position: -64px 0; }
  142
+.ui-icon-carat-1-sw { background-position: -80px 0; }
  143
+.ui-icon-carat-1-w { background-position: -96px 0; }
  144
+.ui-icon-carat-1-nw { background-position: -112px 0; }
  145
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
  146
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
  147
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
  148
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
  149
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
  150
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
  151
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
  152
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
  153
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
  154
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
  155
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
  156
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
  157
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
  158
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
  159
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
  160
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
  161
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
  162
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
  163
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
  164
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
  165
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
  166
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
  167
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
  168
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
  169
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
  170
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
  171
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
  172
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
  173
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
  174
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
  175
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
  176
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
  177
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
  178
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
  179
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
  180
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
  181
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
  182
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
  183
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
  184
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
  185
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
  186
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
  187
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
  188
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
  189
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
  190
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
  191
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
  192
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
  193
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
  194
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
  195
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
  196
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
  197
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
  198
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
  199
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
  200
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
  201
+.ui-icon-arrow-4 { background-position: 0 -80px; }
  202
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
  203
+.ui-icon-extlink { background-position: -32px -80px; }
  204
+.ui-icon-newwin { background-position: -48px -80px; }
  205
+.ui-icon-refresh { background-position: -64px -80px; }
  206
+.ui-icon-shuffle { background-position: -80px -80px; }
  207
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
  208
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
  209
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
  210
+.ui-icon-folder-open { background-position: -16px -96px; }
  211
+.ui-icon-document { background-position: -32px -96px; }
  212
+.ui-icon-document-b { background-position: -48px -96px; }
  213
+.ui-icon-note { background-position: -64px -96px; }
  214
+.ui-icon-mail-closed { background-position: -80px -96px; }
  215
+.ui-icon-mail-open { background-position: -96px -96px; }
  216
+.ui-icon-suitcase { background-position: -112px -96px; }
  217
+.ui-icon-comment { background-position: -128px -96px; }
  218
+.ui-icon-person { background-position: -144px -96px; }
  219
+.ui-icon-print { background-position: -160px -96px; }
  220
+.ui-icon-trash { background-position: -176px -96px; }
  221
+.ui-icon-locked { background-position: -192px -96px; }
  222
+.ui-icon-unlocked { background-position: -208px -96px; }
  223
+.ui-icon-bookmark { background-position: -224px -96px; }
  224
+.ui-icon-tag { background-position: -240px -96px; }
  225
+.ui-icon-home { background-position: 0 -112px; }
  226
+.ui-icon-flag { background-position: -16px -112px; }
  227
+.ui-icon-calendar { background-position: -32px -112px; }
  228
+.ui-icon-cart { background-position: -48px -112px; }
  229
+.ui-icon-pencil { background-position: -64px -112px; }
  230
+.ui-icon-clock { background-position: -80px -112px; }
  231
+.ui-icon-disk { background-position: -96px -112px; }
  232
+.ui-icon-calculator { background-position: -112px -112px; }
  233
+.ui-icon-zoomin { background-position: -128px -112px; }
  234
+.ui-icon-zoomout { background-position: -144px -112px; }
  235
+.ui-icon-search { background-position: -160px -112px; }
  236
+.ui-icon-wrench { background-position: -176px -112px; }
  237
+.ui-icon-gear { background-position: -192px -112px; }
  238
+.ui-icon-heart { background-position: -208px -112px; }
  239
+.ui-icon-star { background-position: -224px -112px; }
  240
+.ui-icon-link { background-position: -240px -112px; }
  241
+.ui-icon-cancel { background-position: 0 -128px; }
  242
+.ui-icon-plus { background-position: -16px -128px; }
  243
+.ui-icon-plusthick { background-position: -32px -128px; }
  244
+.ui-icon-minus { background-position: -48px -128px; }
  245
+.ui-icon-minusthick { background-position: -64px -128px; }
  246
+.ui-icon-close { background-position: -80px -128px; }
  247
+.ui-icon-closethick { background-position: -96px -128px; }
  248
+.ui-icon-key { background-position: -112px -128px; }
  249
+.ui-icon-lightbulb { background-position: -128px -128px; }
  250
+.ui-icon-scissors { background-position: -144px -128px; }
  251
+.ui-icon-clipboard { background-position: -160px -128px; }
  252
+.ui-icon-copy { background-position: -176px -128px; }
  253
+.ui-icon-contact { background-position: -192px -128px; }
  254
+.ui-icon-image { background-position: -208px -128px; }
  255
+.ui-icon-video { background-position: -224px -128px; }
  256
+.ui-icon-script { background-position: -240px -128px; }
  257
+.ui-icon-alert { background-position: 0 -144px; }
  258
+.ui-icon-info { background-position: -16px -144px; }
  259
+.ui-icon-notice { background-position: -32px -144px; }
  260
+.ui-icon-help { background-position: -48px -144px; }
  261
+.ui-icon-check { background-position: -64px -144px; }
  262
+.ui-icon-bullet { background-position: -80px -144px; }
  263
+.ui-icon-radio-on { background-position: -96px -144px; }
  264
+.ui-icon-radio-off { background-position: -112px -144px; }
  265
+.ui-icon-pin-w { background-position: -128px -144px; }
  266
+.ui-icon-pin-s { background-position: -144px -144px; }
  267
+.ui-icon-play { background-position: 0 -160px; }
  268
+.ui-icon-pause { background-position: -16px -160px; }
  269
+.ui-icon-seek-next { background-position: -32px -160px; }
  270
+.ui-icon-seek-prev { background-position: -48px -160px; }
  271
+.ui-icon-seek-end { background-position: -64px -160px; }
  272
+.ui-icon-seek-start { background-position: -80px -160px; }
  273
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
  274
+.ui-icon-seek-first { background-position: -80px -160px; }
  275
+.ui-icon-stop { background-position: -96px -160px; }
  276
+.ui-icon-eject { background-position: -112px -160px; }
  277
+.ui-icon-volume-off { background-position: -128px -160px; }
  278
+.ui-icon-volume-on { background-position: -144px -160px; }
  279
+.ui-icon-power { background-position: 0 -176px; }
  280
+.ui-icon-signal-diag { background-position: -16px -176px; }
  281
+.ui-icon-signal { background-position: -32px -176px; }
  282
+.ui-icon-battery-0 { background-position: -48px -176px; }
  283
+.ui-icon-battery-1 { background-position: -64px -176px; }
  284
+.ui-icon-battery-2 { background-position: -80px -176px; }
  285
+.ui-icon-battery-3 { background-position: -96px -176px; }
  286
+.ui-icon-circle-plus { background-position: 0 -192px; }
  287
+.ui-icon-circle-minus { background-position: -16px -192px; }
  288
+.ui-icon-circle-close { background-position: -32px -192px; }
  289
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
  290
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
  291
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
  292
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
  293
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
  294
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
  295
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
  296
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
  297
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
  298
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
  299
+.ui-icon-circle-check { background-position: -208px -192px; }
  300
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
  301
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
  302
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
  303
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
  304
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
  305
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
  306
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
  307
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
  308
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
  309
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
  310
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
  311
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
  312
+
  313
+
  314
+/* Misc visuals
  315
+----------------------------------*/
  316
+
  317
+/* Corner radius */
  318
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
  319
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
  320
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
  321
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
  322
+
  323
+/* Overlays */
  324
+.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .5;filter:Alpha(Opacity=50); }
  325
+.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .2;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
5  css/ui-lightness/jquery-ui-1.9.1.custom.min.css
... ...
@@ -0,0 +1,5 @@
  1
+/*! jQuery UI - v1.9.1 - 2012-11-11
  2
+* http://jqueryui.com
  3
+* Includes: jquery.ui.core.css, jquery.ui.datepicker.css
  4
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
  5
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}
75  index.html
@@ -16,7 +16,8 @@
16 16
     </style>
17 17
     <link href="css/bootstrap-responsive.css" rel="stylesheet">
18 18
 
19  
-    <script src="js/jquery-1.7.2.js"></script>
  19
+    <script src="js/jquery-1.8.2.js"></script>
  20
+    <script src="js/jquery-ui-1.9.1.custom.min.js"></script>
20 21
     <script src="js/bootstrap.js"></script>
21 22
     <script src="js/main.js"></script>
22 23
 </head>
@@ -45,53 +46,69 @@
45 46
 
46 47
     <h3>Search results</h3>
47 48
 
48  
-
49 49
     <div id="results">
50  
-        <table class="table table-striped">
  50
+        <table class="table table-striped" id="contacts">
51 51
             <thead>
52 52
             <tr>
53  
-                <th>#</th>
54  
-                <th>First Name</th>
55  
-                <th>Last Name</th>
56  
-                <th>Username</th>
  53
+                <th>Name</th>
  54
+                <th>Email</th>
  55
+                <th>Address</th>
  56
+                <th>Birthdate</th>
57 57
             </tr>
58 58
             </thead>
59 59
             <tbody>
60  
-            <tr>
61  
-                <td>1</td>
62  
-                <td>Mark</td>
63  
-                <td>Otto</td>
64  
-                <td>@mdo</td>
65  
-            </tr>
66  
-            <tr>
67  
-                <td>2</td>
68  
-                <td>Jacob</td>
69  
-                <td>Thornton</td>
70  
-                <td>@fat</td>
71  
-            </tr>
72  
-            <tr>
73  
-                <td>3</td>
74  
-                <td>Larry</td>
75  
-                <td>the Bird</td>
76  
-                <td>@twitter</td>
77  
-            </tr>
78 60
             </tbody>
  61
+        </table>
79 62
     </div>
80  
-    </table>
81 63
 </div>
82 64
 
83 65
 
84 66
 <div id="addContact" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
85 67
     <div class="modal-header">
86 68
         <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
87  
-        <h3 id="myModalLabel">Modal header</h3>
  69
+        <h3>New contact</h3>
  70
+    </div>
  71
+
  72
+    <div class="alert alert-error fade hide in">
  73
+        <button type="button" class="close" data-dismiss="alert">&times;</button>
  74
+        <span id="saverr"></span>
88 75
     </div>
  76
+
89 77
     <div class="modal-body">
90  
-        <p>One fine body…</p>
  78
+        <form class="form-horizontal" id="contactform">
  79
+            <div class="control-group">
  80
+                <label class="control-label" for="name">Name</label>
  81
+
  82
+                <div class="controls">
  83
+                    <input type="text" id="name" placeholder="">
  84
+                </div>
  85
+            </div>
  86
+            <div class="control-group">
  87
+                <label class="control-label" for="email">Email</label>
  88
+
  89
+                <div class="controls">
  90
+                    <input type="text" id="email" placeholder="">
  91
+                </div>
  92
+            </div>
  93
+            <div class="control-group">
  94
+                <label class="control-label" for="address">Address</label>
  95
+
  96
+                <div class="controls">
  97
+                    <input type="text" id="address" placeholder="">
  98
+                </div>
  99
+            </div>
  100
+            <div class="control-group">
  101
+                <label class="control-label" for="birthdate">Birthdate</label>
  102
+
  103
+                <div class="controls">
  104
+                    <input type="text" id="birthdate" placeholder="">
  105
+                </div>
  106
+            </div>
  107
+        </form>
91 108
     </div>
92 109
     <div class="modal-footer">
93 110
         <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
94  
-        <button class="btn btn-primary">Save changes</button>
  111
+        <button class="btn btn-primary" id="newcontact">Save changes</button>
95 112
     </div>
96 113
 </div>
97 114
 
7,114  js/jquery-1.7.2.js → js/jquery-1.8.2.js
3575 additions, 3539 deletions not shown
2,171  js/jquery-ui-1.9.1.custom.js
... ...
@@ -0,0 +1,2171 @@
  1
+/*! jQuery UI - v1.9.1 - 2012-11-11
  2
+* http://jqueryui.com
  3
+* Includes: jquery.ui.core.js, jquery.ui.datepicker.js
  4
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
  5
+
  6
+(function( $, undefined ) {
  7
+
  8
+var uuid = 0,
  9
+	runiqueId = /^ui-id-\d+$/;
  10
+
  11
+// prevent duplicate loading
  12
+// this is only a problem because we proxy existing functions
  13
+// and we don't want to double proxy them
  14
+$.ui = $.ui || {};
  15
+if ( $.ui.version ) {
  16
+	return;
  17
+}
  18
+
  19
+$.extend( $.ui, {
  20
+	version: "1.9.1",
  21
+
  22
+	keyCode: {
  23
+		BACKSPACE: 8,
  24
+		COMMA: 188,
  25
+		DELETE: 46,
  26
+		DOWN: 40,
  27
+		END: 35,
  28
+		ENTER: 13,
  29
+		ESCAPE: 27,
  30
+		HOME: 36,
  31
+		LEFT: 37,
  32
+		NUMPAD_ADD: 107,
  33
+		NUMPAD_DECIMAL: 110,
  34
+		NUMPAD_DIVIDE: 111,
  35
+		NUMPAD_ENTER: 108,
  36
+		NUMPAD_MULTIPLY: 106,
  37
+		NUMPAD_SUBTRACT: 109,
  38
+		PAGE_DOWN: 34,
  39
+		PAGE_UP: 33,
  40
+		PERIOD: 190,
  41
+		RIGHT: 39,
  42
+		SPACE: 32,
  43
+		TAB: 9,
  44
+		UP: 38
  45
+	}
  46
+});
  47
+
  48
+// plugins
  49
+$.fn.extend({
  50
+	_focus: $.fn.focus,
  51
+	focus: function( delay, fn ) {
  52
+		return typeof delay === "number" ?
  53
+			this.each(function() {
  54
+				var elem = this;
  55
+				setTimeout(function() {
  56
+					$( elem ).focus();
  57
+					if ( fn ) {
  58
+						fn.call( elem );
  59
+					}
  60
+				}, delay );
  61
+			}) :
  62
+			this._focus.apply( this, arguments );
  63
+	},
  64
+
  65
+	scrollParent: function() {
  66
+		var scrollParent;
  67
+		if (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
  68
+			scrollParent = this.parents().filter(function() {
  69
+				return (/(relative|absolute|fixed)/).test($.css(this,'position')) && (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x'));
  70
+			}).eq(0);
  71
+		} else {
  72
+			scrollParent = this.parents().filter(function() {
  73
+				return (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x'));
  74
+			}).eq(0);
  75
+		}
  76
+
  77
+		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
  78
+	},
  79
+
  80
+	zIndex: function( zIndex ) {
  81
+		if ( zIndex !== undefined ) {
  82
+			return this.css( "zIndex", zIndex );
  83
+		}
  84
+
  85
+		if ( this.length ) {
  86
+			var elem = $( this[ 0 ] ), position, value;
  87
+			while ( elem.length && elem[ 0 ] !== document ) {
  88
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
  89
+				// This makes behavior of this function consistent across browsers
  90
+				// WebKit always returns auto if the element is positioned
  91
+				position = elem.css( "position" );
  92
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
  93
+					// IE returns 0 when zIndex is not specified
  94
+					// other browsers return a string
  95
+					// we ignore the case of nested elements with an explicit value of 0
  96
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
  97
+					value = parseInt( elem.css( "zIndex" ), 10 );
  98
+					if ( !isNaN( value ) && value !== 0 ) {
  99
+						return value;
  100
+					}
  101
+				}
  102
+				elem = elem.parent();
  103
+			}
  104
+		}
  105
+
  106
+		return 0;
  107
+	},
  108
+
  109
+	uniqueId: function() {
  110
+		return this.each(function() {
  111
+			if ( !this.id ) {
  112
+				this.id = "ui-id-" + (++uuid);
  113
+			}
  114
+		});
  115
+	},
  116
+
  117
+	removeUniqueId: function() {
  118
+		return this.each(function() {
  119
+			if ( runiqueId.test( this.id ) ) {
  120
+				$( this ).removeAttr( "id" );
  121
+			}
  122
+		});
  123
+	}
  124
+});
  125
+
  126
+// support: jQuery <1.8
  127
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
  128
+	$.each( [ "Width", "Height" ], function( i, name ) {
  129
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
  130
+			type = name.toLowerCase(),
  131
+			orig = {
  132
+				innerWidth: $.fn.innerWidth,
  133
+				innerHeight: $.fn.innerHeight,
  134
+				outerWidth: $.fn.outerWidth,
  135
+				outerHeight: $.fn.outerHeight
  136
+			};
  137
+
  138
+		function reduce( elem, size, border, margin ) {
  139
+			$.each( side, function() {
  140
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
  141
+				if ( border ) {
  142
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
  143
+				}
  144
+				if ( margin ) {
  145
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
  146
+				}
  147
+			});
  148
+			return size;
  149
+		}
  150
+
  151
+		$.fn[ "inner" + name ] = function( size ) {
  152
+			if ( size === undefined ) {
  153
+				return orig[ "inner" + name ].call( this );
  154
+			}
  155
+
  156
+			return this.each(function() {
  157
+				$( this ).css( type, reduce( this, size ) + "px" );
  158
+			});
  159
+		};
  160
+
  161
+		$.fn[ "outer" + name] = function( size, margin ) {
  162
+			if ( typeof size !== "number" ) {
  163
+				return orig[ "outer" + name ].call( this, size );
  164
+			}
  165
+
  166
+			return this.each(function() {
  167
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
  168
+			});
  169
+		};
  170
+	});
  171
+}
  172
+
  173
+// selectors
  174
+function focusable( element, isTabIndexNotNaN ) {
  175
+	var map, mapName, img,
  176
+		nodeName = element.nodeName.toLowerCase();
  177
+	if ( "area" === nodeName ) {
  178
+		map = element.parentNode;
  179
+		mapName = map.name;
  180
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
  181
+			return false;
  182
+		}
  183
+		img = $( "img[usemap=#" + mapName + "]" )[0];
  184
+		return !!img && visible( img );
  185
+	}
  186
+	return ( /input|select|textarea|button|object/.test( nodeName ) ?
  187
+		!element.disabled :
  188
+		"a" === nodeName ?
  189
+			element.href || isTabIndexNotNaN :
  190
+			isTabIndexNotNaN) &&
  191
+		// the element and all of its ancestors must be visible
  192
+		visible( element );
  193
+}
  194
+
  195
+function visible( element ) {
  196
+	return $.expr.filters.visible( element ) &&
  197
+		!$( element ).parents().andSelf().filter(function() {
  198
+			return $.css( this, "visibility" ) === "hidden";
  199
+		}).length;
  200
+}
  201
+
  202
+$.extend( $.expr[ ":" ], {
  203
+	data: $.expr.createPseudo ?
  204
+		$.expr.createPseudo(function( dataName ) {
  205
+			return function( elem ) {
  206
+				return !!$.data( elem, dataName );
  207
+			};
  208
+		}) :
  209
+		// support: jQuery <1.8
  210
+		function( elem, i, match ) {
  211
+			return !!$.data( elem, match[ 3 ] );
  212
+		},
  213
+
  214
+	focusable: function( element ) {
  215
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
  216
+	},
  217
+
  218
+	tabbable: function( element ) {
  219
+		var tabIndex = $.attr( element, "tabindex" ),
  220
+			isTabIndexNaN = isNaN( tabIndex );
  221
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
  222
+	}
  223
+});
  224
+
  225
+// support
  226
+$(function() {
  227
+	var body = document.body,
  228
+		div = body.appendChild( div = document.createElement( "div" ) );
  229
+
  230
+	// access offsetHeight before setting the style to prevent a layout bug
  231
+	// in IE 9 which causes the element to continue to take up space even
  232
+	// after it is removed from the DOM (#8026)
  233
+	div.offsetHeight;
  234
+
  235
+	$.extend( div.style, {
  236
+		minHeight: "100px",
  237
+		height: "auto",
  238
+		padding: 0,
  239
+		borderWidth: 0
  240
+	});
  241
+
  242
+	$.support.minHeight = div.offsetHeight === 100;
  243
+	$.support.selectstart = "onselectstart" in div;
  244
+
  245
+	// set display to none to avoid a layout bug in IE
  246
+	// http://dev.jquery.com/ticket/4014
  247
+	body.removeChild( div ).style.display = "none";
  248
+});
  249
+
  250
+
  251
+
  252
+
  253
+
  254
+// deprecated
  255
+
  256
+(function() {
  257
+	var uaMatch = /msie ([\w.]+)/.exec( navigator.userAgent.toLowerCase() ) || [];
  258
+	$.ui.ie = uaMatch.length ? true : false;
  259
+	$.ui.ie6 = parseFloat( uaMatch[ 1 ], 10 ) === 6;
  260
+})();
  261
+
  262
+$.fn.extend({
  263
+	disableSelection: function() {
  264
+		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
  265
+			".ui-disableSelection", function( event ) {
  266
+				event.preventDefault();
  267
+			});
  268
+	},
  269
+
  270
+	enableSelection: function() {
  271
+		return this.unbind( ".ui-disableSelection" );
  272
+	}
  273
+});
  274
+
  275
+$.extend( $.ui, {
  276
+	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
  277
+	plugin: {
  278
+		add: function( module, option, set ) {
  279
+			var i,
  280
+				proto = $.ui[ module ].prototype;
  281
+			for ( i in set ) {
  282
+				proto.plugins[ i ] = proto.plugins[ i ] || [];
  283
+				proto.plugins[ i ].push( [ option, set[ i ] ] );
  284
+			}
  285
+		},
  286
+		call: function( instance, name, args ) {
  287
+			var i,
  288
+				set = instance.plugins[ name ];
  289
+			if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
  290
+				return;
  291
+			}
  292
+
  293
+			for ( i = 0; i < set.length; i++ ) {
  294
+				if ( instance.options[ set[ i ][ 0 ] ] ) {
  295
+					set[ i ][ 1 ].apply( instance.element, args );
  296
+				}
  297
+			}
  298
+		}
  299
+	},
  300
+
  301
+	contains: $.contains,
  302
+
  303
+	// only used by resizable
  304
+	hasScroll: function( el, a ) {
  305
+
  306
+		//If overflow is hidden, the element might have extra content, but the user wants to hide it
  307
+		if ( $( el ).css( "overflow" ) === "hidden") {
  308
+			return false;
  309
+		}
  310
+
  311
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
  312
+			has = false;
  313
+
  314
+		if ( el[ scroll ] > 0 ) {
  315
+			return true;
  316
+		}
  317
+
  318
+		// TODO: determine which cases actually cause this to happen
  319
+		// if the element doesn't have the scroll set, see if it's possible to
  320
+		// set the scroll
  321
+		el[ scroll ] = 1;
  322
+		has = ( el[ scroll ] > 0 );
  323
+		el[ scroll ] = 0;
  324
+		return has;
  325
+	},
  326
+
  327
+	// these are odd functions, fix the API or move into individual plugins
  328
+	isOverAxis: function( x, reference, size ) {
  329
+		//Determines when x coordinate is over "b" element axis
  330
+		return ( x > reference ) && ( x < ( reference + size ) );
  331
+	},
  332
+	isOver: function( y, x, top, left, height, width ) {
  333
+		//Determines when x, y coordinates is over "b" element
  334
+		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
  335
+	}
  336
+});
  337
+
  338
+})( jQuery );
  339
+(function( $, undefined ) {
  340
+
  341
+$.extend($.ui, { datepicker: { version: "1.9.1" } });
  342
+
  343
+var PROP_NAME = 'datepicker';
  344
+var dpuuid = new Date().getTime();
  345
+var instActive;
  346
+
  347
+/* Date picker manager.
  348
+   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
  349
+   Settings for (groups of) date pickers are maintained in an instance object,
  350
+   allowing multiple different settings on the same page. */
  351
+
  352
+function Datepicker() {
  353
+	this.debug = false; // Change this to true to start debugging
  354
+	this._curInst = null; // The current instance in use
  355
+	this._keyEvent = false; // If the last event was a key event
  356
+	this._disabledInputs = []; // List of date picker inputs that have been disabled
  357
+	this._datepickerShowing = false; // True if the popup picker is showing , false if not
  358
+	this._inDialog = false; // True if showing within a "dialog", false if not
  359
+	this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
  360
+	this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
  361
+	this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
  362
+	this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
  363
+	this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
  364
+	this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
  365
+	this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
  366
+	this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
  367
+	this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
  368
+	this.regional = []; // Available regional settings, indexed by language code
  369
+	this.regional[''] = { // Default regional settings
  370
+		closeText: 'Done', // Display text for close link
  371
+		prevText: 'Prev', // Display text for previous month link
  372
+		nextText: 'Next', // Display text for next month link
  373
+		currentText: 'Today', // Display text for current month link
  374
+		monthNames: ['January','February','March','April','May','June',
  375
+			'July','August','September','October','November','December'], // Names of months for drop-down and formatting
  376
+		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
  377
+		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
  378
+		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
  379
+		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
  380
+		weekHeader: 'Wk', // Column header for week of the year
  381
+		dateFormat: 'mm/dd/yy', // See format options on parseDate
  382
+		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
  383
+		isRTL: false, // True if right-to-left language, false if left-to-right
  384
+		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
  385
+		yearSuffix: '' // Additional text to append to the year in the month headers
  386
+	};
  387
+	this._defaults = { // Global defaults for all the date picker instances
  388
+		showOn: 'focus', // 'focus' for popup on focus,
  389
+			// 'button' for trigger button, or 'both' for either
  390
+		showAnim: 'fadeIn', // Name of jQuery animation for popup
  391
+		showOptions: {}, // Options for enhanced animations
  392
+		defaultDate: null, // Used when field is blank: actual date,
  393
+			// +/-number for offset from today, null for today
  394
+		appendText: '', // Display text following the input box, e.g. showing the format
  395
+		buttonText: '...', // Text for trigger button
  396
+		buttonImage: '', // URL for trigger button image
  397
+		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
  398
+		hideIfNoPrevNext: false, // True to hide next/previous month links
  399
+			// if not applicable, false to just disable them
  400
+		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
  401
+		gotoCurrent: false, // True if today link goes back to current selection instead
  402
+		changeMonth: false, // True if month can be selected directly, false if only prev/next
  403
+		changeYear: false, // True if year can be selected directly, false if only prev/next
  404
+		yearRange: 'c-10:c+10', // Range of years to display in drop-down,
  405
+			// either relative to today's year (-nn:+nn), relative to currently displayed year
  406
+			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
  407
+		showOtherMonths: false, // True to show dates in other months, false to leave blank
  408
+		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
  409
+		showWeek: false, // True to show week of the year, false to not show it
  410
+		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
  411
+			// takes a Date and returns the number of the week for it
  412
+		shortYearCutoff: '+10', // Short year values < this are in the current century,
  413
+			// > this are in the previous century,
  414
+			// string value starting with '+' for current year + value
  415
+		minDate: null, // The earliest selectable date, or null for no limit
  416
+		maxDate: null, // The latest selectable date, or null for no limit
  417
+		duration: 'fast', // Duration of display/closure
  418
+		beforeShowDay: null, // Function that takes a date and returns an array with
  419
+			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
  420
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
  421
+		beforeShow: null, // Function that takes an input field and
  422
+			// returns a set of custom settings for the date picker
  423
+		onSelect: null, // Define a callback function when a date is selected
  424
+		onChangeMonthYear: null, // Define a callback function when the month or year is changed
  425
+		onClose: null, // Define a callback function when the datepicker is closed
  426
+		numberOfMonths: 1, // Number of months to show at a time
  427
+		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
  428
+		stepMonths: 1, // Number of months to step back/forward
  429
+		stepBigMonths: 12, // Number of months to step back/forward for the big links
  430
+		altField: '', // Selector for an alternate field to store selected dates into
  431
+		altFormat: '', // The date format to use for the alternate field
  432
+		constrainInput: true, // The input is constrained by the current date format
  433
+		showButtonPanel: false, // True to show button panel, false to not show it
  434
+		autoSize: false, // True to size the input for the date format, false to leave as is
  435
+		disabled: false // The initial disabled state
  436
+	};
  437
+	$.extend(this._defaults, this.regional['']);
  438
+	this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
  439
+}
  440
+
  441
+$.extend(Datepicker.prototype, {
  442
+	/* Class name added to elements to indicate already configured with a date picker. */
  443
+	markerClassName: 'hasDatepicker',
  444
+
  445
+	//Keep track of the maximum number of rows displayed (see #7043)
  446
+	maxRows: 4,
  447
+
  448
+	/* Debug logging (if enabled). */
  449
+	log: function () {
  450
+		if (this.debug)
  451
+			console.log.apply('', arguments);
  452
+	},
  453
+
  454
+	// TODO rename to "widget" when switching to widget factory
  455
+	_widgetDatepicker: function() {
  456
+		return this.dpDiv;
  457
+	},
  458
+
  459
+	/* Override the default settings for all instances of the date picker.
  460
+	   @param  settings  object - the new settings to use as defaults (anonymous object)
  461
+	   @return the manager object */
  462
+	setDefaults: function(settings) {
  463
+		extendRemove(this._defaults, settings || {});
  464
+		return this;
  465
+	},
  466
+
  467
+	/* Attach the date picker to a jQuery selection.
  468
+	   @param  target    element - the target input field or division or span
  469
+	   @param  settings  object - the new settings to use for this date picker instance (anonymous) */
  470
+	_attachDatepicker: function(target, settings) {
  471
+		// check for settings on the control itself - in namespace 'date:'
  472
+		var inlineSettings = null;
  473
+		for (var attrName in this._defaults) {
  474
+			var attrValue = target.getAttribute('date:' + attrName);
  475
+			if (attrValue) {
  476
+				inlineSettings = inlineSettings || {};
  477
+				try {
  478
+					inlineSettings[attrName] = eval(attrValue);
  479
+				} catch (err) {
  480
+					inlineSettings[attrName] = attrValue;
  481
+				}
  482
+			}
  483
+		}
  484
+		var nodeName = target.nodeName.toLowerCase();
  485
+		var inline = (nodeName == 'div' || nodeName == 'span');
  486
+		if (!target.id) {
  487
+			this.uuid += 1;
  488
+			target.id = 'dp' + this.uuid;
  489
+		}
  490
+		var inst = this._newInst($(target), inline);
  491
+		inst.settings = $.extend({}, settings || {}, inlineSettings || {});
  492
+		if (nodeName == 'input') {
  493
+			this._connectDatepicker(target, inst);
  494
+		} else if (inline) {
  495
+			this._inlineDatepicker(target, inst);
  496
+		}
  497
+	},
  498
+
  499
+	/* Create a new instance object. */
  500
+	_newInst: function(target, inline) {
  501
+		var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
  502
+		return {id: id, input: target, // associated target
  503
+			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
  504
+			drawMonth: 0, drawYear: 0, // month being drawn
  505
+			inline: inline, // is datepicker inline or not
  506
+			dpDiv: (!inline ? this.dpDiv : // presentation div
  507
+			bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
  508
+	},
  509
+
  510
+	/* Attach the date picker to an input field. */
  511
+	_connectDatepicker: function(target, inst) {
  512
+		var input = $(target);
  513
+		inst.append = $([]);
  514
+		inst.trigger = $([]);
  515
+		if (input.hasClass(this.markerClassName))
  516
+			return;
  517
+		this._attachments(input, inst);
  518
+		input.addClass(this.markerClassName).keydown(this._doKeyDown).
  519
+			keypress(this._doKeyPress).keyup(this._doKeyUp).
  520
+			bind("setData.datepicker", function(event, key, value) {
  521
+				inst.settings[key] = value;
  522
+			}).bind("getData.datepicker", function(event, key) {
  523
+				return this._get(inst, key);
  524
+			});
  525
+		this._autoSize(inst);
  526
+		$.data(target, PROP_NAME, inst);
  527
+		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
  528
+		if( inst.settings.disabled ) {
  529
+			this._disableDatepicker( target );
  530
+		}
  531
+	},
  532
+
  533
+	/* Make attachments based on settings. */
  534
+	_attachments: function(input, inst) {
  535
+		var appendText = this._get(inst, 'appendText');
  536
+		var isRTL = this._get(inst, 'isRTL');
  537
+		if (inst.append)
  538
+			inst.append.remove();
  539
+		if (appendText) {
  540
+			inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
  541
+			input[isRTL ? 'before' : 'after'](inst.append);
  542
+		}
  543
+		input.unbind('focus', this._showDatepicker);
  544
+		if (inst.trigger)
  545
+			inst.trigger.remove();
  546
+		var showOn = this._get(inst, 'showOn');
  547
+		if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
  548
+			input.focus(this._showDatepicker);
  549
+		if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
  550
+			var buttonText = this._get(inst, 'buttonText');
  551
+			var buttonImage = this._get(inst, 'buttonImage');
  552
+			inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
  553
+				$('<img/>').addClass(this._triggerClass).
  554
+					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
  555
+				$('<button type="button"></button>').addClass(this._triggerClass).
  556
+					html(buttonImage == '' ? buttonText : $('<img/>').attr(
  557
+					{ src:buttonImage, alt:buttonText, title:buttonText })));
  558
+			input[isRTL ? 'before' : 'after'](inst.trigger);
  559
+			inst.trigger.click(function() {
  560
+				if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
  561
+					$.datepicker._hideDatepicker();
  562
+				else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
  563
+					$.datepicker._hideDatepicker();
  564
+					$.datepicker._showDatepicker(input[0]);
  565
+				} else
  566
+					$.datepicker._showDatepicker(input[0]);
  567
+				return false;
  568
+			});
  569
+		}