├── GanttView ├── down_arrow.png ├── example │ ├── example.css │ └── reset.css ├── index.html ├── jquery.ganttView.css ├── jquery.ganttView.js ├── lib │ ├── flick │ │ └── jquery-ui-1.8.2.custom.css │ ├── gantt-date.js │ ├── holidays.js │ ├── jquery-1.4.2.min.js │ └── jquery-ui-1.8.2.custom.min.js ├── star.png └── today_task.png ├── README.md ├── describe.txt └── describeJPG ├── 1.png ├── 2.png ├── 3.png ├── 4.png └── 5.png /GanttView/down_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/GanttView/down_arrow.png -------------------------------------------------------------------------------- /GanttView/example/example.css: -------------------------------------------------------------------------------- 1 | body{font-family:微软雅黑;font-size:.8em;padding:10px}div.ganttview-block{cursor:move}div.ganttData-item{margin:10px;height:20px;width:250px}div.ganttData-header{line-height:20px;height:20px;width:100px;float:left}div.ganttData-input{height:20px;width:150px;float:left}div.ganttData-input input{width:150px} -------------------------------------------------------------------------------- /GanttView/example/reset.css: -------------------------------------------------------------------------------- 1 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:0 0}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0} -------------------------------------------------------------------------------- /GanttView/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | jQuery Gantt 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 56 | 57 | 269 | -------------------------------------------------------------------------------- /GanttView/jquery.ganttView.css: -------------------------------------------------------------------------------- 1 | /* 2 | jQuery.ganttView v.1.0.0 3 | Copyright (c) 2019/07 ::liuhuajun 4 | MIT License Applies 5 | base on CSS 6 | */ 7 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:0 0}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0} 8 | 9 | div.ganttview-hzheader-month,div.ganttview-hzheader-day,div.ganttview-hzheader-dow,div.ganttview-vtheader,div.ganttview-vtheader-item-name,div.ganttview-vtheader-series,div.ganttview-grid,div.ganttview-grid-row-cell,div.ganttview-hzheader-hour,div.ganttview-hzheader-week,div.ganttview-vtheader-series-box{ 10 | float: left 11 | } 12 | 13 | .ganttview-vtheader-series .ganttview-vtheader-box:last-child,.ganttview-vtheader-series div.ganttview-vtheader-series-name:last-child,.ganttview-vtheader-content div.ganttview-vtheader-series-name:last-child{ 14 | border: none; 15 | } 16 | 17 | #ganttChart div,#ganttChart i{ 18 | box-sizing: initial; 19 | } 20 | 21 | body { 22 | font-family: 微软雅黑; 23 | font-size: .8em; 24 | padding: 10px 25 | } 26 | 27 | div.ganttview-block { 28 | cursor: move 29 | } 30 | 31 | div.ganttData-item { 32 | margin: 10px; 33 | height: 20px; 34 | width: 250px 35 | } 36 | 37 | div.ganttData-header { 38 | line-height: 20px; 39 | height: 20px; 40 | width: 100px; 41 | float: left 42 | } 43 | 44 | div.ganttData-input { 45 | height: 20px; 46 | width: 150px; 47 | float: left 48 | } 49 | 50 | div.ganttData-input input { 51 | width: 150px 52 | } 53 | 54 | div.ganttview-hzheader-month,div.ganttview-hzheader-day { 55 | text-align: center 56 | } 57 | 58 | div.ganttview-grid-row-cell.last,div.ganttview-hzheader-day.last,div.ganttview-hzheader-month.last { 59 | border-right: 0 60 | } 61 | 62 | div.ganttview { 63 | border: 1px solid #999 64 | } 65 | 66 | div.ganttview-hzheader-month { 67 | width: 60px; 68 | height: 20px; 69 | border-right: 1px solid #d0d0d0; 70 | line-height: 20px 71 | } 72 | 73 | div.ganttview-hzheader-dow,div.ganttview-hzheader-day,div.ganttview-hzheader-hour,div.ganttview-hzheader-week{ 74 | width: 20px; 75 | height: 20px; 76 | border-right: 1px solid #f0f0f0; 77 | border-top: 1px solid #d0d0d0; 78 | line-height: 20px; 79 | color: #777; 80 | text-align: center 81 | } 82 | div.ganttview-hzheader-hour,.ganttview-hzheader-week{ 83 | position: relative; 84 | box-sizing: initial; 85 | } 86 | div.ganttview-hzheader-hour-before{ 87 | background: #EBEBEB 88 | } 89 | div.ganttview-hzcontent-hour-before{ 90 | background: #FAFAFA !important 91 | } 92 | .ganttview-hzheader-week-cellBack{ 93 | background: url(../today_task.png) no-repeat; 94 | width: 17px; 95 | height: 18px; 96 | display: inline-block; 97 | vertical-align: sub; 98 | } 99 | div.ganttview-hzheader-hour .ganttview-grid-row-cell-line{ 100 | position: absolute; 101 | top: 0px; 102 | border-right: 2px solid #A6D7FF; 103 | border-left: none; 104 | background: #EBEBEB; 105 | z-index: -1; 106 | } 107 | 108 | div.ganttview-hzheader-dow.ganttview-saturday,div.ganttview-hzheader-day.ganttview-saturday { 109 | background-color: #f0f8ff 110 | } 111 | 112 | div.ganttview-hzheader-dow.ganttview-sunday,div.ganttview-hzheader-day.ganttview-sunday { 113 | background-color: #ffe4e1 114 | } 115 | 116 | div.ganttview-vtheader { 117 | width: 240px; 118 | overflow: hidden 119 | } 120 | 121 | div.ganttview-vtheader-item { 122 | overflow: hidden; 123 | color: #666; 124 | border-top:1px solid #CCCCCC; 125 | display: flex; 126 | justify-content: center; 127 | align-items: center; 128 | } 129 | div.ganttview-vtheader-item:last-child{ 130 | border-bottom:1px solid #CCCCCC 131 | } 132 | 133 | div.ganttview-vtheader-item-name { 134 | width: 39%; 135 | padding-left: 5px; 136 | font-weight: bold; 137 | text-align: center 138 | } 139 | div.ganttview-vtheader-series{ 140 | width: 58%; 141 | float: right; 142 | border-left: 1px solid #EDEDED 143 | } 144 | 145 | div.ganttview-vtheader-series-name { 146 | border-bottom: 1px solid #EDEDED; 147 | line-height: 16px; 148 | padding-left: 5px; 149 | font-weight: bold; 150 | text-align: center 151 | } 152 | 153 | div.ganttview-vtheader-item-name-selected { 154 | background-color: #fff5ee!important 155 | } 156 | 157 | div.ganttview-vtheader-series-name-selected { 158 | background-color: #fff5ee!important 159 | } 160 | 161 | div.ganttview-slide-container { 162 | overflow: auto; 163 | border-left: 1px solid #999 164 | } 165 | 166 | div.ganttview-grid-row{ 167 | overflow: hidden; 168 | position: relative 169 | } 170 | div.ganttview-grid-row[data-lastChild='true']+div.ganttview-grid-row .ganttview-grid-row-cell{ 171 | border-top: 1px solid #CCCCCC; 172 | } 173 | div.ganttview-grid-row-cell { 174 | border-top: 1px solid #f0f0f0; 175 | border-right: 1px solid #f0f0f0; 176 | box-sizing: initial; 177 | background: white; 178 | } 179 | div.ganttview-grid-row-cell.ganttview-weekend { 180 | background-color: #fafafa 181 | } 182 | 183 | div.ganttview-grid-row-cell.ganttview-saturday { 184 | background-color: #f0f8ff 185 | } 186 | 187 | div.ganttview-grid-row-cell.ganttview-sunday { 188 | background-color: #ffe4e1 189 | } 190 | 191 | div.ganttview-grid-row-cell-selected { 192 | background-color: #FAFAFA !important 193 | } 194 | 195 | div.ganttview-hzcontent-hour-before.ganttview-grid-row-cell-hover{ 196 | background-color: #f5f5f5 !important 197 | } 198 | div.ganttview-hzcontent-hour-before.ganttview-grid-row-row-hover{ 199 | background-color: #f5f5f5 !important 200 | } 201 | div.ganttview-grid-row-cell-hover{ 202 | background-color: #FAFAFA !important 203 | } 204 | div.ganttview-grid-row-row-hover{ 205 | background-color: #FAFAFA !important 206 | } 207 | 208 | div.ganttview-blocks { 209 | margin-top: 40px 210 | } 211 | 212 | div.ganttview-block-container { 213 | height: 18px; 214 | padding-top: 4px 215 | } 216 | 217 | div.ganttview-block { 218 | position: relative; 219 | height: 15px; 220 | background-color: #e5ecf9; 221 | border-radius: 3px; 222 | -moz-border-radius: 3px; 223 | -webkit-border-radius: 3px 224 | } 225 | 226 | div.ganttview-block.ganttview-readOnly { 227 | background-color: #f5f5f5 228 | } 229 | 230 | div.ganttview-block-text { 231 | position: absolute; 232 | font-size: 12px; 233 | margin-left: 5px; 234 | max-width: 80%; 235 | overflow: hidden; 236 | text-overflow: ellipsis; 237 | white-space: nowrap; 238 | height: 100%; 239 | color: #5C5C5C; 240 | } 241 | #ganttChart{ 242 | width: 100%; 243 | } 244 | 245 | .ganttview-grid-row-cell-line{ 246 | border-right: 2px solid #A6D7FF; 247 | height: 100%; 248 | background: #FAFAFA 249 | } 250 | .ganttview-vtheader-box{ 251 | overflow: hidden; 252 | border-bottom: 1px solid #EDEDED; 253 | display: flex; 254 | justify-content: center; 255 | align-items: center; 256 | } 257 | 258 | .ganttview-vtheader-content{ 259 | float: right; 260 | width: 50%; 261 | border-left: 1px solid #EDEDED; 262 | } 263 | .ganttview-vtheader-tit{ 264 | float: left; 265 | width: 48%; 266 | font-weight: bold; 267 | text-align: center; 268 | } 269 | 270 | .ganttview-block-text-blue{ 271 | background-color: #DBEFFF !important; 272 | } 273 | .ganttview-block-text-yellow{ 274 | background-color: #FFE2E2 !important; 275 | } 276 | .ganttview-block-text-green{ 277 | background-color: #DEF9F1 !important; 278 | } 279 | .ganttview-block-text-gray{ 280 | background-color: #EBEBEB !important; 281 | } 282 | .ganttview-block-text-blue:hover{ 283 | box-shadow: 0px 2px 4px #6EA8DC; 284 | } 285 | .ganttview-block-text-yellow:hover{ 286 | box-shadow: 0px 2px 4px #FDAFB9; 287 | } 288 | .ganttview-block-text-green:hover{ 289 | box-shadow: 0px 2px 4px #78e0c4 290 | } 291 | .ganttview-block-text-gray:hover{ 292 | box-shadow: 0px 2px 4px #a2a2a2 293 | } 294 | 295 | .ganttview-block-text-green div.ganttview-block-text{ 296 | text-decoration: line-through; 297 | color: #999999 298 | } 299 | 300 | .gattview-icon-box{ 301 | height: 100%; 302 | position: absolute; 303 | left: -23px; 304 | width: auto; 305 | } 306 | .ganttview-block-icon{ 307 | width:18px; 308 | height:18px; 309 | border-radius:2px; 310 | display: inline-block; 311 | color: white; 312 | text-align: center; 313 | line-height: 19px; 314 | margin-top: 3px; 315 | } 316 | .ganttview-block-cycle{ 317 | background:rgba(110,168,220,1); 318 | } 319 | .ganttview-block-delay{ 320 | background-color: #FC8495 321 | } 322 | .ganttview-block-approve{ 323 | background-color: #FBA673 324 | } 325 | .ganttview-block-private{ 326 | background-color: #7493AF 327 | } 328 | 329 | .ganttview-block-schedule{ 330 | position: absolute; 331 | right: 0px; 332 | width:33px; 333 | text-align: center; 334 | height:16px; 335 | line-height: 17px; 336 | border-radius:4px; 337 | color: white; 338 | margin-top: 4px; 339 | margin-right: 5px; 340 | font-size: 12px; 341 | } 342 | .ganttview-block-schedule-blue{ 343 | background-color: #6EA8DC 344 | } 345 | .ganttview-block-schedule-yellow{ 346 | background-color: #FC8495 347 | } 348 | .ganttview-block-schedule-green{ 349 | background-color: #6DE8C7 350 | } 351 | .ganttview-block-schedule-gray{ 352 | background-color: #bfbebe 353 | } 354 | .ganttview-block-schedule-line{ 355 | height: 0px; 356 | position: absolute; 357 | left: 0px; 358 | bottom: 0px; 359 | display: inline-block; 360 | } 361 | 362 | .ganttview-block-star{ 363 | width: auto; 364 | float: left; 365 | } 366 | .ganttview-block-star i{ 367 | background: url(../star.png) no-repeat center; 368 | width: 12px; 369 | height: 12px; 370 | display: inline-block; 371 | padding-left: 5px; 372 | padding-right: 5px; 373 | } 374 | 375 | span.unfold{ 376 | position: absolute; 377 | left: 10px; 378 | bottom: 0px; 379 | cursor: pointer; 380 | color: #318BCD; 381 | background: url(../down_arrow.png) no-repeat center left; 382 | background-size: 10px 5px; 383 | padding-left: 11px; 384 | font-size: 12px; 385 | } -------------------------------------------------------------------------------- /GanttView/lib/flick/jquery-ui-1.8.2.custom.css: -------------------------------------------------------------------------------- 1 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.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:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}.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-widget{font-family:Helvetica,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:Helvetica,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#444}.ui-widget-content a{color:#444}.ui-widget-header{border:1px solid #ddd;background:#ddd url(images/ui-bg_highlight-soft_50_dddddd_1x100.png) 50% 50% repeat-x;color:#444;font-weight:700}.ui-widget-header a{color:#444}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ddd;background:#f6f6f6 url(images/ui-bg_highlight-soft_100_f6f6f6_1x100.png) 50% 50% repeat-x;font-weight:700;color:#0073ea}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#0073ea;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 #0073ea;background:#0073ea url(images/ui-bg_highlight-soft_25_0073ea_1x100.png) 50% 50% repeat-x;font-weight:700;color:#fff}.ui-state-hover a,.ui-state-hover a:hover{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #ddd;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:700;color:#ff0084}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#ff0084;text-decoration:none}.ui-widget :active{outline:0}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #ccc;background:#fff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x;color:#444}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#444}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #ff0084;background:#fff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#222}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#222}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.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-icon{width:16px;height:16px;background-image:url(images/ui-icons_ff0084_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_ff0084_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_0073ea_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_666666_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_0073ea_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ff0084_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-off{background-position:-96px -144px}.ui-icon-radio-on{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-tl{-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px}.ui-corner-tr{-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px}.ui-corner-bl{-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.ui-corner-br{-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.ui-corner-top{-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px}.ui-corner-bottom{-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.ui-corner-right{-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.ui-corner-left{-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.ui-corner-all{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.ui-widget-overlay{background:#eee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x;opacity:.8;filter:Alpha(Opacity=80)}.ui-widget-shadow{margin:-4px 0 0 -4px;padding:4px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.6;filter:Alpha(Opacity=60);-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px} -------------------------------------------------------------------------------- /GanttView/lib/gantt-date.js: -------------------------------------------------------------------------------- 1 | Date.CultureInfo = { 2 | name: "en-US", 3 | englishName: "English (United States)", 4 | nativeName: "English (United States)", 5 | dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 6 | abbreviatedDayNames: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 7 | shortestDayNames: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], 8 | firstLetterDayNames: ["S", "M", "T", "W", "T", "F", "S"], 9 | monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], 10 | abbreviatedMonthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 11 | amDesignator: "AM", 12 | pmDesignator: "PM", 13 | firstDayOfWeek: 0, 14 | twoDigitYearMax: 2029, 15 | dateElementOrder: "mdy", 16 | formatPatterns: { 17 | shortDate: "M/d/yyyy", 18 | longDate: "dddd, MMMM dd, yyyy", 19 | shortTime: "h:mm tt", 20 | longTime: "h:mm:ss tt", 21 | fullDateTime: "dddd, MMMM dd, yyyy h:mm:ss tt", 22 | sortableDateTime: "yyyy-MM-ddTHH:mm:ss", 23 | universalSortableDateTime: "yyyy-MM-dd HH:mm:ssZ", 24 | rfc1123: "ddd, dd MMM yyyy HH:mm:ss GMT", 25 | monthDay: "MMMM dd", 26 | yearMonth: "MMMM, yyyy" 27 | }, 28 | regexPatterns: { 29 | jan: /^jan(uary)?/i, 30 | feb: /^feb(ruary)?/i, 31 | mar: /^mar(ch)?/i, 32 | apr: /^apr(il)?/i, 33 | may: /^may/i, 34 | jun: /^jun(e)?/i, 35 | jul: /^jul(y)?/i, 36 | aug: /^aug(ust)?/i, 37 | sep: /^sep(t(ember)?)?/i, 38 | oct: /^oct(ober)?/i, 39 | nov: /^nov(ember)?/i, 40 | dec: /^dec(ember)?/i, 41 | sun: /^su(n(day)?)?/i, 42 | mon: /^mo(n(day)?)?/i, 43 | tue: /^tu(e(s(day)?)?)?/i, 44 | wed: /^we(d(nesday)?)?/i, 45 | thu: /^th(u(r(s(day)?)?)?)?/i, 46 | fri: /^fr(i(day)?)?/i, 47 | sat: /^sa(t(urday)?)?/i, 48 | future: /^next/i, 49 | past: /^last|past|prev(ious)?/i, 50 | add: /^(\+|aft(er)?|from|hence)/i, 51 | subtract: /^(\-|bef(ore)?|ago)/i, 52 | yesterday: /^yes(terday)?/i, 53 | today: /^t(od(ay)?)?/i, 54 | tomorrow: /^tom(orrow)?/i, 55 | now: /^n(ow)?/i, 56 | millisecond: /^ms|milli(second)?s?/i, 57 | second: /^sec(ond)?s?/i, 58 | minute: /^mn|min(ute)?s?/i, 59 | hour: /^h(our)?s?/i, 60 | week: /^w(eek)?s?/i, 61 | month: /^m(onth)?s?/i, 62 | day: /^d(ay)?s?/i, 63 | year: /^y(ear)?s?/i, 64 | shortMeridian: /^(a|p)/i, 65 | longMeridian: /^(a\.?m?\.?|p\.?m?\.?)/i, 66 | timezone: /^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i, 67 | ordinalSuffix: /^\s*(st|nd|rd|th)/i, 68 | timeContext: /^\s*(\:|a(?!u|p)|p)/i 69 | }, 70 | timezones: [{ 71 | name: "UTC", 72 | offset: "-000" 73 | }, 74 | { 75 | name: "GMT", 76 | offset: "-000" 77 | }, 78 | { 79 | name: "EST", 80 | offset: "-0500" 81 | }, 82 | { 83 | name: "EDT", 84 | offset: "-0400" 85 | }, 86 | { 87 | name: "CST", 88 | offset: "-0600" 89 | }, 90 | { 91 | name: "CDT", 92 | offset: "-0500" 93 | }, 94 | { 95 | name: "MST", 96 | offset: "-0700" 97 | }, 98 | { 99 | name: "MDT", 100 | offset: "-0600" 101 | }, 102 | { 103 | name: "PST", 104 | offset: "-0800" 105 | }, 106 | { 107 | name: "PDT", 108 | offset: "-0700" 109 | }] 110 | }; (function() { 111 | var $D = Date, 112 | $P = $D.prototype, 113 | $C = $D.CultureInfo, 114 | p = function(s, l) { 115 | if (!l) { 116 | l = 2; 117 | } 118 | return ("000" + s).slice(l * -1); 119 | }; 120 | $P.clearTime = function() { 121 | this.setHours(0); 122 | this.setMinutes(0); 123 | this.setSeconds(0); 124 | this.setMilliseconds(0); 125 | return this; 126 | }; 127 | $P.setTimeToNow = function() { 128 | var n = new Date(); 129 | this.setHours(n.getHours()); 130 | this.setMinutes(n.getMinutes()); 131 | this.setSeconds(n.getSeconds()); 132 | this.setMilliseconds(n.getMilliseconds()); 133 | return this; 134 | }; 135 | $D.today = function() { 136 | return new Date().clearTime(); 137 | }; 138 | $D.compare = function(date1, date2) { 139 | if (isNaN(date1) || isNaN(date2)) { 140 | throw new Error(date1 + " - " + date2); 141 | } else if (date1 instanceof Date && date2 instanceof Date) { 142 | return (date1 < date2) ? -1 : (date1 > date2) ? 1 : 0; 143 | } else { 144 | throw new TypeError(date1 + " - " + date2); 145 | } 146 | }; 147 | $D.equals = function(date1, date2) { 148 | return (date1.compareTo(date2) === 0); 149 | }; 150 | $D.getDayNumberFromName = function(name) { 151 | var n = $C.dayNames, 152 | m = $C.abbreviatedDayNames, 153 | o = $C.shortestDayNames, 154 | s = name.toLowerCase(); 155 | for (var i = 0; i < n.length; i++) { 156 | if (n[i].toLowerCase() == s || m[i].toLowerCase() == s || o[i].toLowerCase() == s) { 157 | return i; 158 | } 159 | } 160 | return - 1; 161 | }; 162 | $D.getMonthNumberFromName = function(name) { 163 | var n = $C.monthNames, 164 | m = $C.abbreviatedMonthNames, 165 | s = name.toLowerCase(); 166 | for (var i = 0; i < n.length; i++) { 167 | if (n[i].toLowerCase() == s || m[i].toLowerCase() == s) { 168 | return i; 169 | } 170 | } 171 | return - 1; 172 | }; 173 | $D.isLeapYear = function(year) { 174 | return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); 175 | }; 176 | $D.getDaysInMonth = function(year, month) { 177 | return [31, ($D.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; 178 | }; 179 | $D.getTimezoneAbbreviation = function(offset) { 180 | var z = $C.timezones, 181 | p; 182 | for (var i = 0; i < z.length; i++) { 183 | if (z[i].offset === offset) { 184 | return z[i].name; 185 | } 186 | } 187 | return null; 188 | }; 189 | $D.getTimezoneOffset = function(name) { 190 | var z = $C.timezones, 191 | p; 192 | for (var i = 0; i < z.length; i++) { 193 | if (z[i].name === name.toUpperCase()) { 194 | return z[i].offset; 195 | } 196 | } 197 | return null; 198 | }; 199 | $P.clone = function() { 200 | return new Date(this.getTime()); 201 | }; 202 | $P.compareTo = function(date) { 203 | return Date.compare(this, date); 204 | }; 205 | $P.equals = function(date) { 206 | return Date.equals(this, date || new Date()); 207 | }; 208 | $P.between = function(start, end) { 209 | return this.getTime() >= start.getTime() && this.getTime() <= end.getTime(); 210 | }; 211 | $P.isAfter = function(date) { 212 | return this.compareTo(date || new Date()) === 1; 213 | }; 214 | $P.isBefore = function(date) { 215 | return (this.compareTo(date || new Date()) === -1); 216 | }; 217 | $P.isToday = function() { 218 | return this.isSameDay(new Date()); 219 | }; 220 | $P.isSameDay = function(date) { 221 | return this.clone().clearTime().equals(date.clone().clearTime()); 222 | }; 223 | $P.addMilliseconds = function(value) { 224 | this.setMilliseconds(this.getMilliseconds() + value); 225 | return this; 226 | }; 227 | $P.addSeconds = function(value) { 228 | return this.addMilliseconds(value * 1000); 229 | }; 230 | $P.addMinutes = function(value) { 231 | return this.addMilliseconds(value * 60000); 232 | }; 233 | $P.addHours = function(value) { 234 | return this.addMilliseconds(value * 3600000); 235 | }; 236 | $P.addDays = function(value) { 237 | this.setDate(this.getDate() + value); 238 | return this; 239 | }; 240 | $P.addWeeks = function(value) { 241 | return this.addDays(value * 7); 242 | }; 243 | $P.addMonths = function(value) { 244 | var n = this.getDate(); 245 | this.setDate(1); 246 | this.setMonth(this.getMonth() + value); 247 | this.setDate(Math.min(n, $D.getDaysInMonth(this.getFullYear(), this.getMonth()))); 248 | return this; 249 | }; 250 | $P.addYears = function(value) { 251 | return this.addMonths(value * 12); 252 | }; 253 | $P.add = function(config) { 254 | if (typeof config == "number") { 255 | this._orient = config; 256 | return this; 257 | } 258 | var x = config; 259 | if (x.milliseconds) { 260 | this.addMilliseconds(x.milliseconds); 261 | } 262 | if (x.seconds) { 263 | this.addSeconds(x.seconds); 264 | } 265 | if (x.minutes) { 266 | this.addMinutes(x.minutes); 267 | } 268 | if (x.hours) { 269 | this.addHours(x.hours); 270 | } 271 | if (x.weeks) { 272 | this.addWeeks(x.weeks); 273 | } 274 | if (x.months) { 275 | this.addMonths(x.months); 276 | } 277 | if (x.years) { 278 | this.addYears(x.years); 279 | } 280 | if (x.days) { 281 | this.addDays(x.days); 282 | } 283 | return this; 284 | }; 285 | var $y, $m, $d; 286 | $P.getWeek = function() { 287 | var a, b, c, d, e, f, g, n, s, w; 288 | $y = (!$y) ? this.getFullYear() : $y; 289 | $m = (!$m) ? this.getMonth() + 1 : $m; 290 | $d = (!$d) ? this.getDate() : $d; 291 | if ($m <= 2) { 292 | a = $y - 1; 293 | b = (a / 4 | 0) - (a / 100 | 0) + (a / 400 | 0); 294 | c = ((a - 1) / 4 | 0) - ((a - 1) / 100 | 0) + ((a - 1) / 400 | 0); 295 | s = b - c; 296 | e = 0; 297 | f = $d - 1 + (31 * ($m - 1)); 298 | } else { 299 | a = $y; 300 | b = (a / 4 | 0) - (a / 100 | 0) + (a / 400 | 0); 301 | c = ((a - 1) / 4 | 0) - ((a - 1) / 100 | 0) + ((a - 1) / 400 | 0); 302 | s = b - c; 303 | e = s + 1; 304 | f = $d + ((153 * ($m - 3) + 2) / 5) + 58 + s; 305 | } 306 | g = (a + b) % 7; 307 | d = (f + g - e) % 7; 308 | n = (f + 3 - d) | 0; 309 | if (n < 0) { 310 | w = 53 - ((g - s) / 5 | 0); 311 | } else if (n > 364 + s) { 312 | w = 1; 313 | } else { 314 | w = (n / 7 | 0) + 1; 315 | } 316 | $y = $m = $d = null; 317 | return w; 318 | }; 319 | $P.getISOWeek = function() { 320 | $y = this.getUTCFullYear(); 321 | $m = this.getUTCMonth() + 1; 322 | $d = this.getUTCDate(); 323 | return p(this.getWeek()); 324 | }; 325 | $P.setWeek = function(n) { 326 | return this.moveToDayOfWeek(1).addWeeks(n - this.getWeek()); 327 | }; 328 | $D._validate = function(n, min, max, name) { 329 | if (typeof n == "undefined") { 330 | return false; 331 | } else if (typeof n != "number") { 332 | throw new TypeError(n + " is not a Number."); 333 | } else if (n < min || n > max) { 334 | throw new RangeError(n + " is not a valid value for " + name + "."); 335 | } 336 | return true; 337 | }; 338 | $D.validateMillisecond = function(value) { 339 | return $D._validate(value, 0, 999, "millisecond"); 340 | }; 341 | $D.validateSecond = function(value) { 342 | return $D._validate(value, 0, 59, "second"); 343 | }; 344 | $D.validateMinute = function(value) { 345 | return $D._validate(value, 0, 59, "minute"); 346 | }; 347 | $D.validateHour = function(value) { 348 | return $D._validate(value, 0, 23, "hour"); 349 | }; 350 | $D.validateDay = function(value, year, month) { 351 | return $D._validate(value, 1, $D.getDaysInMonth(year, month), "day"); 352 | }; 353 | $D.validateMonth = function(value) { 354 | return $D._validate(value, 0, 11, "month"); 355 | }; 356 | $D.validateYear = function(value) { 357 | return $D._validate(value, 0, 9999, "year"); 358 | }; 359 | $P.set = function(config) { 360 | if ($D.validateMillisecond(config.millisecond)) { 361 | this.addMilliseconds(config.millisecond - this.getMilliseconds()); 362 | } 363 | if ($D.validateSecond(config.second)) { 364 | this.addSeconds(config.second - this.getSeconds()); 365 | } 366 | if ($D.validateMinute(config.minute)) { 367 | this.addMinutes(config.minute - this.getMinutes()); 368 | } 369 | if ($D.validateHour(config.hour)) { 370 | this.addHours(config.hour - this.getHours()); 371 | } 372 | if ($D.validateMonth(config.month)) { 373 | this.addMonths(config.month - this.getMonth()); 374 | } 375 | if ($D.validateYear(config.year)) { 376 | this.addYears(config.year - this.getFullYear()); 377 | } 378 | if ($D.validateDay(config.day, this.getFullYear(), this.getMonth())) { 379 | this.addDays(config.day - this.getDate()); 380 | } 381 | if (config.timezone) { 382 | this.setTimezone(config.timezone); 383 | } 384 | if (config.timezoneOffset) { 385 | this.setTimezoneOffset(config.timezoneOffset); 386 | } 387 | if (config.week && $D._validate(config.week, 0, 53, "week")) { 388 | this.setWeek(config.week); 389 | } 390 | return this; 391 | }; 392 | $P.moveToFirstDayOfMonth = function() { 393 | return this.set({ 394 | day: 1 395 | }); 396 | }; 397 | $P.moveToLastDayOfMonth = function() { 398 | return this.set({ 399 | day: $D.getDaysInMonth(this.getFullYear(), this.getMonth()) 400 | }); 401 | }; 402 | $P.moveToNthOccurrence = function(dayOfWeek, occurrence) { 403 | var shift = 0; 404 | if (occurrence > 0) { 405 | shift = occurrence - 1; 406 | } else if (occurrence === -1) { 407 | this.moveToLastDayOfMonth(); 408 | if (this.getDay() !== dayOfWeek) { 409 | this.moveToDayOfWeek(dayOfWeek, -1); 410 | } 411 | return this; 412 | } 413 | return this.moveToFirstDayOfMonth().addDays( - 1).moveToDayOfWeek(dayOfWeek, +1).addWeeks(shift); 414 | }; 415 | $P.moveToDayOfWeek = function(dayOfWeek, orient) { 416 | var diff = (dayOfWeek - this.getDay() + 7 * (orient || +1)) % 7; 417 | return this.addDays((diff === 0) ? diff += 7 * (orient || +1) : diff); 418 | }; 419 | $P.moveToMonth = function(month, orient) { 420 | var diff = (month - this.getMonth() + 12 * (orient || +1)) % 12; 421 | return this.addMonths((diff === 0) ? diff += 12 * (orient || +1) : diff); 422 | }; 423 | $P.getOrdinalNumber = function() { 424 | return Math.ceil((this.clone().clearTime() - new Date(this.getFullYear(), 0, 1)) / 86400000) + 1; 425 | }; 426 | $P.getTimezone = function() { 427 | return $D.getTimezoneAbbreviation(this.getUTCOffset()); 428 | }; 429 | $P.setTimezoneOffset = function(offset) { 430 | var here = this.getTimezoneOffset(), 431 | there = Number(offset) * -6 / 10; 432 | return this.addMinutes(there - here); 433 | }; 434 | $P.setTimezone = function(offset) { 435 | return this.setTimezoneOffset($D.getTimezoneOffset(offset)); 436 | }; 437 | $P.hasDaylightSavingTime = function() { 438 | return (Date.today().set({ 439 | month: 0, 440 | day: 1 441 | }).getTimezoneOffset() !== Date.today().set({ 442 | month: 6, 443 | day: 1 444 | }).getTimezoneOffset()); 445 | }; 446 | $P.isDaylightSavingTime = function() { 447 | return (this.hasDaylightSavingTime() && new Date().getTimezoneOffset() === Date.today().set({ 448 | month: 6, 449 | day: 1 450 | }).getTimezoneOffset()); 451 | }; 452 | $P.getUTCOffset = function() { 453 | var n = this.getTimezoneOffset() * -10 / 6, 454 | r; 455 | if (n < 0) { 456 | r = (n - 10000).toString(); 457 | return r.charAt(0) + r.substr(2); 458 | } else { 459 | r = (n + 10000).toString(); 460 | return "+" + r.substr(1); 461 | } 462 | }; 463 | $P.getElapsed = function(date) { 464 | return (date || new Date()) - this; 465 | }; 466 | if (!$P.toISOString) { 467 | $P.toISOString = function() { 468 | function f(n) { 469 | return n < 10 ? '0' + n: n; 470 | } 471 | return '"' + this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z"'; 472 | }; 473 | } 474 | $P._toString = $P.toString; 475 | $P.toString = function(format) { 476 | var x = this; 477 | if (format && format.length == 1) { 478 | var c = $C.formatPatterns; 479 | x.t = x.toString; 480 | switch (format) { 481 | case "d": 482 | return x.t(c.shortDate); 483 | case "D": 484 | return x.t(c.longDate); 485 | case "F": 486 | return x.t(c.fullDateTime); 487 | case "m": 488 | return x.t(c.monthDay); 489 | case "r": 490 | return x.t(c.rfc1123); 491 | case "s": 492 | return x.t(c.sortableDateTime); 493 | case "t": 494 | return x.t(c.shortTime); 495 | case "T": 496 | return x.t(c.longTime); 497 | case "u": 498 | return x.t(c.universalSortableDateTime); 499 | case "y": 500 | return x.t(c.yearMonth); 501 | } 502 | } 503 | var ord = function(n) { 504 | switch (n * 1) { 505 | case 1: 506 | case 21: 507 | case 31: 508 | return "st"; 509 | case 2: 510 | case 22: 511 | return "nd"; 512 | case 3: 513 | case 23: 514 | return "rd"; 515 | default: 516 | return "th"; 517 | } 518 | }; 519 | return format ? format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g, 520 | function(m) { 521 | if (m.charAt(0) === "\\") { 522 | return m.replace("\\", ""); 523 | } 524 | x.h = x.getHours; 525 | switch (m) { 526 | case "hh": 527 | return p(x.h() < 13 ? (x.h() === 0 ? 12 : x.h()) : (x.h() - 12)); 528 | case "h": 529 | return x.h() < 13 ? (x.h() === 0 ? 12 : x.h()) : (x.h() - 12); 530 | case "HH": 531 | return p(x.h()); 532 | case "H": 533 | return x.h(); 534 | case "mm": 535 | return p(x.getMinutes()); 536 | case "m": 537 | return x.getMinutes(); 538 | case "ss": 539 | return p(x.getSeconds()); 540 | case "s": 541 | return x.getSeconds(); 542 | case "yyyy": 543 | return p(x.getFullYear(), 4); 544 | case "yy": 545 | return p(x.getFullYear()); 546 | case "dddd": 547 | return $C.dayNames[x.getDay()]; 548 | case "ddd": 549 | return $C.abbreviatedDayNames[x.getDay()]; 550 | case "dd": 551 | return p(x.getDate()); 552 | case "d": 553 | return x.getDate(); 554 | case "MMMM": 555 | return $C.monthNames[x.getMonth()]; 556 | case "MMM": 557 | return $C.abbreviatedMonthNames[x.getMonth()]; 558 | case "MM": 559 | return p((x.getMonth() + 1)); 560 | case "M": 561 | return x.getMonth() + 1; 562 | case "t": 563 | return x.h() < 12 ? $C.amDesignator.substring(0, 1) : $C.pmDesignator.substring(0, 1); 564 | case "tt": 565 | return x.h() < 12 ? $C.amDesignator: $C.pmDesignator; 566 | case "S": 567 | return ord(x.getDate()); 568 | default: 569 | return m; 570 | } 571 | }): 572 | this._toString(); 573 | }; 574 | } ()); (function() { 575 | var $D = Date, 576 | $P = $D.prototype, 577 | $C = $D.CultureInfo, 578 | $N = Number.prototype; 579 | $P._orient = +1; 580 | $P._nth = null; 581 | $P._is = false; 582 | $P._same = false; 583 | $P._isSecond = false; 584 | $N._dateElement = "day"; 585 | $P.next = function() { 586 | this._orient = +1; 587 | return this; 588 | }; 589 | $D.next = function() { 590 | return $D.today().next(); 591 | }; 592 | $P.last = $P.prev = $P.previous = function() { 593 | this._orient = -1; 594 | return this; 595 | }; 596 | $D.last = $D.prev = $D.previous = function() { 597 | return $D.today().last(); 598 | }; 599 | $P.is = function() { 600 | this._is = true; 601 | return this; 602 | }; 603 | $P.same = function() { 604 | this._same = true; 605 | this._isSecond = false; 606 | return this; 607 | }; 608 | $P.today = function() { 609 | return this.same().day(); 610 | }; 611 | $P.weekday = function() { 612 | if (this._is) { 613 | this._is = false; 614 | return (!this.is().sat() && !this.is().sun()); 615 | } 616 | return false; 617 | }; 618 | $P.at = function(time) { 619 | return (typeof time === "string") ? $D.parse(this.toString("d") + " " + time) : this.set(time); 620 | }; 621 | $N.fromNow = $N.after = function(date) { 622 | var c = {}; 623 | c[this._dateElement] = this; 624 | return ((!date) ? new Date() : date.clone()).add(c); 625 | }; 626 | $N.ago = $N.before = function(date) { 627 | var c = {}; 628 | c[this._dateElement] = this * -1; 629 | return ((!date) ? new Date() : date.clone()).add(c); 630 | }; 631 | var dx = ("sunday monday tuesday wednesday thursday friday saturday").split(/\s/), 632 | mx = ("january february march april may june july august september october november december").split(/\s/), 633 | px = ("Millisecond Second Minute Hour Day Week Month Year").split(/\s/), 634 | pxf = ("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/), 635 | nth = ("final first second third fourth fifth").split(/\s/), 636 | de; 637 | $P.toObject = function() { 638 | var o = {}; 639 | for (var i = 0; i < px.length; i++) { 640 | o[px[i].toLowerCase()] = this["get" + pxf[i]](); 641 | } 642 | return o; 643 | }; 644 | $D.fromObject = function(config) { 645 | config.week = null; 646 | return Date.today().set(config); 647 | }; 648 | var df = function(n) { 649 | return function() { 650 | if (this._is) { 651 | this._is = false; 652 | return this.getDay() == n; 653 | } 654 | if (this._nth !== null) { 655 | if (this._isSecond) { 656 | this.addSeconds(this._orient * -1); 657 | } 658 | this._isSecond = false; 659 | var ntemp = this._nth; 660 | this._nth = null; 661 | var temp = this.clone().moveToLastDayOfMonth(); 662 | this.moveToNthOccurrence(n, ntemp); 663 | if (this > temp) { 664 | throw new RangeError($D.getDayName(n) + " does not occur " + ntemp + " times in the month of " + $D.getMonthName(temp.getMonth()) + " " + temp.getFullYear() + "."); 665 | } 666 | return this; 667 | } 668 | return this.moveToDayOfWeek(n, this._orient); 669 | }; 670 | }; 671 | var sdf = function(n) { 672 | return function() { 673 | var t = $D.today(), 674 | shift = n - t.getDay(); 675 | if (n === 0 && $C.firstDayOfWeek === 1 && t.getDay() !== 0) { 676 | shift = shift + 7; 677 | } 678 | return t.addDays(shift); 679 | }; 680 | }; 681 | for (var i = 0; i < dx.length; i++) { 682 | $D[dx[i].toUpperCase()] = $D[dx[i].toUpperCase().substring(0, 3)] = i; 683 | $D[dx[i]] = $D[dx[i].substring(0, 3)] = sdf(i); 684 | $P[dx[i]] = $P[dx[i].substring(0, 3)] = df(i); 685 | } 686 | var mf = function(n) { 687 | return function() { 688 | if (this._is) { 689 | this._is = false; 690 | return this.getMonth() === n; 691 | } 692 | return this.moveToMonth(n, this._orient); 693 | }; 694 | }; 695 | var smf = function(n) { 696 | return function() { 697 | return $D.today().set({ 698 | month: n, 699 | day: 1 700 | }); 701 | }; 702 | }; 703 | for (var j = 0; j < mx.length; j++) { 704 | $D[mx[j].toUpperCase()] = $D[mx[j].toUpperCase().substring(0, 3)] = j; 705 | $D[mx[j]] = $D[mx[j].substring(0, 3)] = smf(j); 706 | $P[mx[j]] = $P[mx[j].substring(0, 3)] = mf(j); 707 | } 708 | var ef = function(j) { 709 | return function() { 710 | if (this._isSecond) { 711 | this._isSecond = false; 712 | return this; 713 | } 714 | if (this._same) { 715 | this._same = this._is = false; 716 | var o1 = this.toObject(), 717 | o2 = (arguments[0] || new Date()).toObject(), 718 | v = "", 719 | k = j.toLowerCase(); 720 | for (var m = (px.length - 1); m > -1; m--) { 721 | v = px[m].toLowerCase(); 722 | if (o1[v] != o2[v]) { 723 | return false; 724 | } 725 | if (k == v) { 726 | break; 727 | } 728 | } 729 | return true; 730 | } 731 | if (j.substring(j.length - 1) != "s") { 732 | j += "s"; 733 | } 734 | return this["add" + j](this._orient); 735 | }; 736 | }; 737 | var nf = function(n) { 738 | return function() { 739 | this._dateElement = n; 740 | return this; 741 | }; 742 | }; 743 | for (var k = 0; k < px.length; k++) { 744 | de = px[k].toLowerCase(); 745 | $P[de] = $P[de + "s"] = ef(px[k]); 746 | $N[de] = $N[de + "s"] = nf(de); 747 | } 748 | $P._ss = ef("Second"); 749 | var nthfn = function(n) { 750 | return function(dayOfWeek) { 751 | if (this._same) { 752 | return this._ss(arguments[0]); 753 | } 754 | if (dayOfWeek || dayOfWeek === 0) { 755 | return this.moveToNthOccurrence(dayOfWeek, n); 756 | } 757 | this._nth = n; 758 | if (n === 2 && (dayOfWeek === undefined || dayOfWeek === null)) { 759 | this._isSecond = true; 760 | return this.addSeconds(this._orient); 761 | } 762 | return this; 763 | }; 764 | }; 765 | for (var l = 0; l < nth.length; l++) { 766 | $P[nth[l]] = (l === 0) ? nthfn( - 1) : nthfn(l); 767 | } 768 | } ()); (function() { 769 | Date.Parsing = { 770 | Exception: function(s) { 771 | this.message = "Parse error at '" + s.substring(0, 10) + " ...'"; 772 | } 773 | }; 774 | var $P = Date.Parsing; 775 | var _ = $P.Operators = { 776 | rtoken: function(r) { 777 | return function(s) { 778 | var mx = s.match(r); 779 | if (mx) { 780 | return ([mx[0], s.substring(mx[0].length)]); 781 | } else { 782 | throw new $P.Exception(s); 783 | } 784 | }; 785 | }, 786 | token: function(s) { 787 | return function(s) { 788 | return _.rtoken(new RegExp("^\s*" + s + "\s*"))(s); 789 | }; 790 | }, 791 | stoken: function(s) { 792 | return _.rtoken(new RegExp("^" + s)); 793 | }, 794 | until: function(p) { 795 | return function(s) { 796 | var qx = [], 797 | rx = null; 798 | while (s.length) { 799 | try { 800 | rx = p.call(this, s); 801 | } catch(e) { 802 | qx.push(rx[0]); 803 | s = rx[1]; 804 | continue; 805 | } 806 | break; 807 | } 808 | return [qx, s]; 809 | }; 810 | }, 811 | many: function(p) { 812 | return function(s) { 813 | var rx = [], 814 | r = null; 815 | while (s.length) { 816 | try { 817 | r = p.call(this, s); 818 | } catch(e) { 819 | return [rx, s]; 820 | } 821 | rx.push(r[0]); 822 | s = r[1]; 823 | } 824 | return [rx, s]; 825 | }; 826 | }, 827 | optional: function(p) { 828 | return function(s) { 829 | var r = null; 830 | try { 831 | r = p.call(this, s); 832 | } catch(e) { 833 | return [null, s]; 834 | } 835 | return [r[0], r[1]]; 836 | }; 837 | }, 838 | not: function(p) { 839 | return function(s) { 840 | try { 841 | p.call(this, s); 842 | } catch(e) { 843 | return [null, s]; 844 | } 845 | throw new $P.Exception(s); 846 | }; 847 | }, 848 | ignore: function(p) { 849 | return p ? 850 | function(s) { 851 | var r = null; 852 | r = p.call(this, s); 853 | return [null, r[1]]; 854 | }: null; 855 | }, 856 | product: function() { 857 | var px = arguments[0], 858 | qx = Array.prototype.slice.call(arguments, 1), 859 | rx = []; 860 | for (var i = 0; i < px.length; i++) { 861 | rx.push(_.each(px[i], qx)); 862 | } 863 | return rx; 864 | }, 865 | cache: function(rule) { 866 | var cache = {}, 867 | r = null; 868 | return function(s) { 869 | try { 870 | r = cache[s] = (cache[s] || rule.call(this, s)); 871 | } catch(e) { 872 | r = cache[s] = e; 873 | } 874 | if (r instanceof $P.Exception) { 875 | throw r; 876 | } else { 877 | return r; 878 | } 879 | }; 880 | }, 881 | any: function() { 882 | var px = arguments; 883 | return function(s) { 884 | var r = null; 885 | for (var i = 0; i < px.length; i++) { 886 | if (px[i] == null) { 887 | continue; 888 | } 889 | try { 890 | r = (px[i].call(this, s)); 891 | } catch(e) { 892 | r = null; 893 | } 894 | if (r) { 895 | return r; 896 | } 897 | } 898 | throw new $P.Exception(s); 899 | }; 900 | }, 901 | each: function() { 902 | var px = arguments; 903 | return function(s) { 904 | var rx = [], 905 | r = null; 906 | for (var i = 0; i < px.length; i++) { 907 | if (px[i] == null) { 908 | continue; 909 | } 910 | try { 911 | r = (px[i].call(this, s)); 912 | } catch(e) { 913 | throw new $P.Exception(s); 914 | } 915 | rx.push(r[0]); 916 | s = r[1]; 917 | } 918 | return [rx, s]; 919 | }; 920 | }, 921 | all: function() { 922 | var px = arguments, 923 | _ = _; 924 | return _.each(_.optional(px)); 925 | }, 926 | sequence: function(px, d, c) { 927 | d = d || _.rtoken(/^\s*/); 928 | c = c || null; 929 | if (px.length == 1) { 930 | return px[0]; 931 | } 932 | return function(s) { 933 | var r = null, 934 | q = null; 935 | var rx = []; 936 | for (var i = 0; i < px.length; i++) { 937 | try { 938 | r = px[i].call(this, s); 939 | } catch(e) { 940 | break; 941 | } 942 | rx.push(r[0]); 943 | try { 944 | q = d.call(this, r[1]); 945 | } catch(ex) { 946 | q = null; 947 | break; 948 | } 949 | s = q[1]; 950 | } 951 | if (!r) { 952 | throw new $P.Exception(s); 953 | } 954 | if (q) { 955 | throw new $P.Exception(q[1]); 956 | } 957 | if (c) { 958 | try { 959 | r = c.call(this, r[1]); 960 | } catch(ey) { 961 | throw new $P.Exception(r[1]); 962 | } 963 | } 964 | return [rx, (r ? r[1] : s)]; 965 | }; 966 | }, 967 | between: function(d1, p, d2) { 968 | d2 = d2 || d1; 969 | var _fn = _.each(_.ignore(d1), p, _.ignore(d2)); 970 | return function(s) { 971 | var rx = _fn.call(this, s); 972 | return [[rx[0][0], r[0][2]], rx[1]]; 973 | }; 974 | }, 975 | list: function(p, d, c) { 976 | d = d || _.rtoken(/^\s*/); 977 | c = c || null; 978 | return (p instanceof Array ? _.each(_.product(p.slice(0, -1), _.ignore(d)), p.slice( - 1), _.ignore(c)) : _.each(_.many(_.each(p, _.ignore(d))), px, _.ignore(c))); 979 | }, 980 | set: function(px, d, c) { 981 | d = d || _.rtoken(/^\s*/); 982 | c = c || null; 983 | return function(s) { 984 | var r = null, 985 | p = null, 986 | q = null, 987 | rx = null, 988 | best = [[], s], 989 | last = false; 990 | for (var i = 0; i < px.length; i++) { 991 | q = null; 992 | p = null; 993 | r = null; 994 | last = (px.length == 1); 995 | try { 996 | r = px[i].call(this, s); 997 | } catch(e) { 998 | continue; 999 | } 1000 | rx = [[r[0]], r[1]]; 1001 | if (r[1].length > 0 && !last) { 1002 | try { 1003 | q = d.call(this, r[1]); 1004 | } catch(ex) { 1005 | last = true; 1006 | } 1007 | } else { 1008 | last = true; 1009 | } 1010 | if (!last && q[1].length === 0) { 1011 | last = true; 1012 | } 1013 | if (!last) { 1014 | var qx = []; 1015 | for (var j = 0; j < px.length; j++) { 1016 | if (i != j) { 1017 | qx.push(px[j]); 1018 | } 1019 | } 1020 | p = _.set(qx, d).call(this, q[1]); 1021 | if (p[0].length > 0) { 1022 | rx[0] = rx[0].concat(p[0]); 1023 | rx[1] = p[1]; 1024 | } 1025 | } 1026 | if (rx[1].length < best[1].length) { 1027 | best = rx; 1028 | } 1029 | if (best[1].length === 0) { 1030 | break; 1031 | } 1032 | } 1033 | if (best[0].length === 0) { 1034 | return best; 1035 | } 1036 | if (c) { 1037 | try { 1038 | q = c.call(this, best[1]); 1039 | } catch(ey) { 1040 | throw new $P.Exception(best[1]); 1041 | } 1042 | best[1] = q[1]; 1043 | } 1044 | return best; 1045 | }; 1046 | }, 1047 | forward: function(gr, fname) { 1048 | return function(s) { 1049 | return gr[fname].call(this, s); 1050 | }; 1051 | }, 1052 | replace: function(rule, repl) { 1053 | return function(s) { 1054 | var r = rule.call(this, s); 1055 | return [repl, r[1]]; 1056 | }; 1057 | }, 1058 | process: function(rule, fn) { 1059 | return function(s) { 1060 | var r = rule.call(this, s); 1061 | return [fn.call(this, r[0]), r[1]]; 1062 | }; 1063 | }, 1064 | min: function(min, rule) { 1065 | return function(s) { 1066 | var rx = rule.call(this, s); 1067 | if (rx[0].length < min) { 1068 | throw new $P.Exception(s); 1069 | } 1070 | return rx; 1071 | }; 1072 | } 1073 | }; 1074 | var _generator = function(op) { 1075 | return function() { 1076 | var args = null, 1077 | rx = []; 1078 | if (arguments.length > 1) { 1079 | args = Array.prototype.slice.call(arguments); 1080 | } else if (arguments[0] instanceof Array) { 1081 | args = arguments[0]; 1082 | } 1083 | if (args) { 1084 | for (var i = 0, 1085 | px = args.shift(); i < px.length; i++) { 1086 | args.unshift(px[i]); 1087 | rx.push(op.apply(null, args)); 1088 | args.shift(); 1089 | return rx; 1090 | } 1091 | } else { 1092 | return op.apply(null, arguments); 1093 | } 1094 | }; 1095 | }; 1096 | var gx = "optional not ignore cache".split(/\s/); 1097 | for (var i = 0; i < gx.length; i++) { 1098 | _[gx[i]] = _generator(_[gx[i]]); 1099 | } 1100 | var _vector = function(op) { 1101 | return function() { 1102 | if (arguments[0] instanceof Array) { 1103 | return op.apply(null, arguments[0]); 1104 | } else { 1105 | return op.apply(null, arguments); 1106 | } 1107 | }; 1108 | }; 1109 | var vx = "each any all".split(/\s/); 1110 | for (var j = 0; j < vx.length; j++) { 1111 | _[vx[j]] = _vector(_[vx[j]]); 1112 | } 1113 | } ()); (function() { 1114 | var $D = Date, 1115 | $P = $D.prototype, 1116 | $C = $D.CultureInfo; 1117 | var flattenAndCompact = function(ax) { 1118 | var rx = []; 1119 | for (var i = 0; i < ax.length; i++) { 1120 | if (ax[i] instanceof Array) { 1121 | rx = rx.concat(flattenAndCompact(ax[i])); 1122 | } else { 1123 | if (ax[i]) { 1124 | rx.push(ax[i]); 1125 | } 1126 | } 1127 | } 1128 | return rx; 1129 | }; 1130 | $D.Grammar = {}; 1131 | $D.Translator = { 1132 | hour: function(s) { 1133 | return function() { 1134 | this.hour = Number(s); 1135 | }; 1136 | }, 1137 | minute: function(s) { 1138 | return function() { 1139 | this.minute = Number(s); 1140 | }; 1141 | }, 1142 | second: function(s) { 1143 | return function() { 1144 | this.second = Number(s); 1145 | }; 1146 | }, 1147 | meridian: function(s) { 1148 | return function() { 1149 | this.meridian = s.slice(0, 1).toLowerCase(); 1150 | }; 1151 | }, 1152 | timezone: function(s) { 1153 | return function() { 1154 | var n = s.replace(/[^\d\+\-]/g, ""); 1155 | if (n.length) { 1156 | this.timezoneOffset = Number(n); 1157 | } else { 1158 | this.timezone = s.toLowerCase(); 1159 | } 1160 | }; 1161 | }, 1162 | day: function(x) { 1163 | var s = x[0]; 1164 | return function() { 1165 | this.day = Number(s.match(/\d+/)[0]); 1166 | }; 1167 | }, 1168 | month: function(s) { 1169 | return function() { 1170 | this.month = (s.length == 3) ? "jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s) / 4 : Number(s) - 1; 1171 | }; 1172 | }, 1173 | year: function(s) { 1174 | return function() { 1175 | var n = Number(s); 1176 | this.year = ((s.length > 2) ? n: (n + (((n + 2000) < $C.twoDigitYearMax) ? 2000 : 1900))); 1177 | }; 1178 | }, 1179 | rday: function(s) { 1180 | return function() { 1181 | switch (s) { 1182 | case "yesterday": 1183 | this.days = -1; 1184 | break; 1185 | case "tomorrow": 1186 | this.days = 1; 1187 | break; 1188 | case "today": 1189 | this.days = 0; 1190 | break; 1191 | case "now": 1192 | this.days = 0; 1193 | this.now = true; 1194 | break; 1195 | } 1196 | }; 1197 | }, 1198 | finishExact: function(x) { 1199 | x = (x instanceof Array) ? x: [x]; 1200 | for (var i = 0; i < x.length; i++) { 1201 | if (x[i]) { 1202 | x[i].call(this); 1203 | } 1204 | } 1205 | var now = new Date(); 1206 | if ((this.hour || this.minute) && (!this.month && !this.year && !this.day)) { 1207 | this.day = now.getDate(); 1208 | } 1209 | if (!this.year) { 1210 | this.year = now.getFullYear(); 1211 | } 1212 | if (!this.month && this.month !== 0) { 1213 | this.month = now.getMonth(); 1214 | } 1215 | if (!this.day) { 1216 | this.day = 1; 1217 | } 1218 | if (!this.hour) { 1219 | this.hour = 0; 1220 | } 1221 | if (!this.minute) { 1222 | this.minute = 0; 1223 | } 1224 | if (!this.second) { 1225 | this.second = 0; 1226 | } 1227 | if (this.meridian && this.hour) { 1228 | if (this.meridian == "p" && this.hour < 12) { 1229 | this.hour = this.hour + 12; 1230 | } else if (this.meridian == "a" && this.hour == 12) { 1231 | this.hour = 0; 1232 | } 1233 | } 1234 | if (this.day > $D.getDaysInMonth(this.year, this.month)) { 1235 | throw new RangeError(this.day + " is not a valid value for days."); 1236 | } 1237 | var r = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second); 1238 | if (this.timezone) { 1239 | r.set({ 1240 | timezone: this.timezone 1241 | }); 1242 | } else if (this.timezoneOffset) { 1243 | r.set({ 1244 | timezoneOffset: this.timezoneOffset 1245 | }); 1246 | } 1247 | return r; 1248 | }, 1249 | finish: function(x) { 1250 | x = (x instanceof Array) ? flattenAndCompact(x) : [x]; 1251 | if (x.length === 0) { 1252 | return null; 1253 | } 1254 | for (var i = 0; i < x.length; i++) { 1255 | if (typeof x[i] == "function") { 1256 | x[i].call(this); 1257 | } 1258 | } 1259 | var today = $D.today(); 1260 | if (this.now && !this.unit && !this.operator) { 1261 | return new Date(); 1262 | } else if (this.now) { 1263 | today = new Date(); 1264 | } 1265 | var expression = !!(this.days && this.days !== null || this.orient || this.operator); 1266 | var gap, mod, orient; 1267 | orient = ((this.orient == "past" || this.operator == "subtract") ? -1 : 1); 1268 | if (!this.now && "hour minute second".indexOf(this.unit) != -1) { 1269 | today.setTimeToNow(); 1270 | } 1271 | if (this.month || this.month === 0) { 1272 | if ("year day hour minute second".indexOf(this.unit) != -1) { 1273 | this.value = this.month + 1; 1274 | this.month = null; 1275 | expression = true; 1276 | } 1277 | } 1278 | if (!expression && this.weekday && !this.day && !this.days) { 1279 | var temp = Date[this.weekday](); 1280 | this.day = temp.getDate(); 1281 | if (!this.month) { 1282 | this.month = temp.getMonth(); 1283 | } 1284 | this.year = temp.getFullYear(); 1285 | } 1286 | if (expression && this.weekday && this.unit != "month") { 1287 | this.unit = "day"; 1288 | gap = ($D.getDayNumberFromName(this.weekday) - today.getDay()); 1289 | mod = 7; 1290 | this.days = gap ? ((gap + (orient * mod)) % mod) : (orient * mod); 1291 | } 1292 | if (this.month && this.unit == "day" && this.operator) { 1293 | this.value = (this.month + 1); 1294 | this.month = null; 1295 | } 1296 | if (this.value != null && this.month != null && this.year != null) { 1297 | this.day = this.value * 1; 1298 | } 1299 | if (this.month && !this.day && this.value) { 1300 | today.set({ 1301 | day: this.value * 1 1302 | }); 1303 | if (!expression) { 1304 | this.day = this.value * 1; 1305 | } 1306 | } 1307 | if (!this.month && this.value && this.unit == "month" && !this.now) { 1308 | this.month = this.value; 1309 | expression = true; 1310 | } 1311 | if (expression && (this.month || this.month === 0) && this.unit != "year") { 1312 | this.unit = "month"; 1313 | gap = (this.month - today.getMonth()); 1314 | mod = 12; 1315 | this.months = gap ? ((gap + (orient * mod)) % mod) : (orient * mod); 1316 | this.month = null; 1317 | } 1318 | if (!this.unit) { 1319 | this.unit = "day"; 1320 | } 1321 | if (!this.value && this.operator && this.operator !== null && this[this.unit + "s"] && this[this.unit + "s"] !== null) { 1322 | this[this.unit + "s"] = this[this.unit + "s"] + ((this.operator == "add") ? 1 : -1) + (this.value || 0) * orient; 1323 | } else if (this[this.unit + "s"] == null || this.operator != null) { 1324 | if (!this.value) { 1325 | this.value = 1; 1326 | } 1327 | this[this.unit + "s"] = this.value * orient; 1328 | } 1329 | if (this.meridian && this.hour) { 1330 | if (this.meridian == "p" && this.hour < 12) { 1331 | this.hour = this.hour + 12; 1332 | } else if (this.meridian == "a" && this.hour == 12) { 1333 | this.hour = 0; 1334 | } 1335 | } 1336 | if (this.weekday && !this.day && !this.days) { 1337 | var temp = Date[this.weekday](); 1338 | this.day = temp.getDate(); 1339 | if (temp.getMonth() !== today.getMonth()) { 1340 | this.month = temp.getMonth(); 1341 | } 1342 | } 1343 | if ((this.month || this.month === 0) && !this.day) { 1344 | this.day = 1; 1345 | } 1346 | if (!this.orient && !this.operator && this.unit == "week" && this.value && !this.day && !this.month) { 1347 | return Date.today().setWeek(this.value); 1348 | } 1349 | if (expression && this.timezone && this.day && this.days) { 1350 | this.day = this.days; 1351 | } 1352 | return (expression) ? today.add(this) : today.set(this); 1353 | } 1354 | }; 1355 | var _ = $D.Parsing.Operators, 1356 | g = $D.Grammar, 1357 | t = $D.Translator, 1358 | _fn; 1359 | g.datePartDelimiter = _.rtoken(/^([\s\-\.\,\/\x27]+)/); 1360 | g.timePartDelimiter = _.stoken(":"); 1361 | g.whiteSpace = _.rtoken(/^\s*/); 1362 | g.generalDelimiter = _.rtoken(/^(([\s\,]|at|@|on)+)/); 1363 | var _C = {}; 1364 | g.ctoken = function(keys) { 1365 | var fn = _C[keys]; 1366 | if (!fn) { 1367 | var c = $C.regexPatterns; 1368 | var kx = keys.split(/\s+/), 1369 | px = []; 1370 | for (var i = 0; i < kx.length; i++) { 1371 | px.push(_.replace(_.rtoken(c[kx[i]]), kx[i])); 1372 | } 1373 | fn = _C[keys] = _.any.apply(null, px); 1374 | } 1375 | return fn; 1376 | }; 1377 | g.ctoken2 = function(key) { 1378 | return _.rtoken($C.regexPatterns[key]); 1379 | }; 1380 | g.h = _.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/), t.hour)); 1381 | g.hh = _.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/), t.hour)); 1382 | g.H = _.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/), t.hour)); 1383 | g.HH = _.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/), t.hour)); 1384 | g.m = _.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/), t.minute)); 1385 | g.mm = _.cache(_.process(_.rtoken(/^[0-5][0-9]/), t.minute)); 1386 | g.s = _.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/), t.second)); 1387 | g.ss = _.cache(_.process(_.rtoken(/^[0-5][0-9]/), t.second)); 1388 | g.hms = _.cache(_.sequence([g.H, g.m, g.s], g.timePartDelimiter)); 1389 | g.t = _.cache(_.process(g.ctoken2("shortMeridian"), t.meridian)); 1390 | g.tt = _.cache(_.process(g.ctoken2("longMeridian"), t.meridian)); 1391 | g.z = _.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/), t.timezone)); 1392 | g.zz = _.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/), t.timezone)); 1393 | g.zzz = _.cache(_.process(g.ctoken2("timezone"), t.timezone)); 1394 | g.timeSuffix = _.each(_.ignore(g.whiteSpace), _.set([g.tt, g.zzz])); 1395 | g.time = _.each(_.optional(_.ignore(_.stoken("T"))), g.hms, g.timeSuffix); 1396 | g.d = _.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/), _.optional(g.ctoken2("ordinalSuffix"))), t.day)); 1397 | g.dd = _.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/), _.optional(g.ctoken2("ordinalSuffix"))), t.day)); 1398 | g.ddd = g.dddd = _.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"), 1399 | function(s) { 1400 | return function() { 1401 | this.weekday = s; 1402 | }; 1403 | })); 1404 | g.M = _.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/), t.month)); 1405 | g.MM = _.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/), t.month)); 1406 | g.MMM = g.MMMM = _.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"), t.month)); 1407 | g.y = _.cache(_.process(_.rtoken(/^(\d\d?)/), t.year)); 1408 | g.yy = _.cache(_.process(_.rtoken(/^(\d\d)/), t.year)); 1409 | g.yyy = _.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/), t.year)); 1410 | g.yyyy = _.cache(_.process(_.rtoken(/^(\d\d\d\d)/), t.year)); 1411 | _fn = function() { 1412 | return _.each(_.any.apply(null, arguments), _.not(g.ctoken2("timeContext"))); 1413 | }; 1414 | g.day = _fn(g.d, g.dd); 1415 | g.month = _fn(g.M, g.MMM); 1416 | g.year = _fn(g.yyyy, g.yy); 1417 | g.orientation = _.process(g.ctoken("past future"), 1418 | function(s) { 1419 | return function() { 1420 | this.orient = s; 1421 | }; 1422 | }); 1423 | g.operator = _.process(g.ctoken("add subtract"), 1424 | function(s) { 1425 | return function() { 1426 | this.operator = s; 1427 | }; 1428 | }); 1429 | g.rday = _.process(g.ctoken("yesterday tomorrow today now"), t.rday); 1430 | g.unit = _.process(g.ctoken("second minute hour day week month year"), 1431 | function(s) { 1432 | return function() { 1433 | this.unit = s; 1434 | }; 1435 | }); 1436 | g.value = _.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/), 1437 | function(s) { 1438 | return function() { 1439 | this.value = s.replace(/\D/g, ""); 1440 | }; 1441 | }); 1442 | g.expression = _.set([g.rday, g.operator, g.value, g.unit, g.orientation, g.ddd, g.MMM]); 1443 | _fn = function() { 1444 | return _.set(arguments, g.datePartDelimiter); 1445 | }; 1446 | g.mdy = _fn(g.ddd, g.month, g.day, g.year); 1447 | g.ymd = _fn(g.ddd, g.year, g.month, g.day); 1448 | g.dmy = _fn(g.ddd, g.day, g.month, g.year); 1449 | g.date = function(s) { 1450 | return ((g[$C.dateElementOrder] || g.mdy).call(this, s)); 1451 | }; 1452 | g.format = _.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/), 1453 | function(fmt) { 1454 | if (g[fmt]) { 1455 | return g[fmt]; 1456 | } else { 1457 | throw $D.Parsing.Exception(fmt); 1458 | } 1459 | }), _.process(_.rtoken(/^[^dMyhHmstz]+/), 1460 | function(s) { 1461 | return _.ignore(_.stoken(s)); 1462 | }))), 1463 | function(rules) { 1464 | return _.process(_.each.apply(null, rules), t.finishExact); 1465 | }); 1466 | var _F = {}; 1467 | var _get = function(f) { 1468 | return _F[f] = (_F[f] || g.format(f)[0]); 1469 | }; 1470 | g.formats = function(fx) { 1471 | if (fx instanceof Array) { 1472 | var rx = []; 1473 | for (var i = 0; i < fx.length; i++) { 1474 | rx.push(_get(fx[i])); 1475 | } 1476 | return _.any.apply(null, rx); 1477 | } else { 1478 | return _get(fx); 1479 | } 1480 | }; 1481 | g._formats = g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"", "yyyy-MM-ddTHH:mm:ssZ", "yyyy-MM-ddTHH:mm:ssz", "yyyy-MM-ddTHH:mm:ss", "yyyy-MM-ddTHH:mmZ", "yyyy-MM-ddTHH:mmz", "yyyy-MM-ddTHH:mm", "ddd, MMM dd, yyyy H:mm:ss tt", "ddd MMM d yyyy HH:mm:ss zzz", "MMddyyyy", "ddMMyyyy", "Mddyyyy", "ddMyyyy", "Mdyyyy", "dMyyyy", "yyyy", "Mdyy", "dMyy", "d"]); 1482 | g._start = _.process(_.set([g.date, g.time, g.expression], g.generalDelimiter, g.whiteSpace), t.finish); 1483 | g.start = function(s) { 1484 | try { 1485 | var r = g._formats.call({}, 1486 | s); 1487 | if (r[1].length === 0) { 1488 | return r; 1489 | } 1490 | } catch(e) {} 1491 | return g._start.call({}, 1492 | s); 1493 | }; 1494 | $D._parse = $D.parse; 1495 | $D.parse = function(s) { 1496 | var r = null; 1497 | if (!s) { 1498 | return null; 1499 | } 1500 | if (s instanceof Date) { 1501 | return s; 1502 | } 1503 | try { 1504 | r = $D.Grammar.start.call({}, 1505 | s.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1")); 1506 | } catch(e) { 1507 | return null; 1508 | } 1509 | return ((r[1].length === 0) ? r[0] : null); 1510 | }; 1511 | $D.getParseFunction = function(fx) { 1512 | var fn = $D.Grammar.formats(fx); 1513 | return function(s) { 1514 | var r = null; 1515 | try { 1516 | r = fn.call({}, 1517 | s); 1518 | } catch(e) { 1519 | return null; 1520 | } 1521 | return ((r[1].length === 0) ? r[0] : null); 1522 | }; 1523 | }; 1524 | $D.parseExact = function(s, fx) { 1525 | return $D.getParseFunction(fx)(s); 1526 | }; 1527 | } ()); -------------------------------------------------------------------------------- /GanttView/lib/holidays.js: -------------------------------------------------------------------------------- 1 | const Holidays = [{ 2 | name: "元旦", 3 | at: new Date(2010, 00, 01), 4 | color: "#777777", 5 | backgroundColor: "#ffe4e1" 6 | }, 7 | { 8 | name: "成人の日", 9 | at: new Date(2010, 00, 11), 10 | color: "#777777", 11 | backgroundColor: "#ffe4e1" 12 | }, 13 | { 14 | name: "建国記念日", 15 | at: new Date(2010, 01, 11), 16 | color: "#777777", 17 | backgroundColor: "#ffe4e1" 18 | }, 19 | { 20 | name: "春分の日", 21 | at: new Date(2010, 02, 21), 22 | color: "#777777", 23 | backgroundColor: "#ffe4e1" 24 | }, 25 | { 26 | name: "振替休日", 27 | at: new Date(2010, 02, 22), 28 | color: "#777777", 29 | backgroundColor: "#ffe4e1" 30 | }, 31 | { 32 | name: "昭和の日", 33 | at: new Date(2010, 03, 29), 34 | color: "#777777", 35 | backgroundColor: "#ffe4e1" 36 | }, 37 | { 38 | name: "憲法記念日", 39 | at: new Date(2010, 04, 03), 40 | color: "#777777", 41 | backgroundColor: "#ffe4e1" 42 | }, 43 | { 44 | name: "みどりの日", 45 | at: new Date(2010, 04, 04), 46 | color: "#777777", 47 | backgroundColor: "#ffe4e1" 48 | }, 49 | { 50 | name: "こどもの日", 51 | at: new Date(2010, 04, 05), 52 | color: "#777777", 53 | backgroundColor: "#ffe4e1" 54 | }, 55 | { 56 | name: "海の日", 57 | at: new Date(2010, 06, 19), 58 | color: "#777777", 59 | backgroundColor: "#ffe4e1" 60 | }, 61 | { 62 | name: "敬老の日", 63 | at: new Date(2010, 08, 20), 64 | color: "#777777", 65 | backgroundColor: "#ffe4e1" 66 | }, 67 | { 68 | name: "秋分の日", 69 | at: new Date(2010, 08, 23), 70 | color: "#777777", 71 | backgroundColor: "#ffe4e1" 72 | }, 73 | { 74 | name: "体育の日", 75 | at: new Date(2010, 09, 11), 76 | color: "#777777", 77 | backgroundColor: "#ffe4e1" 78 | }, 79 | { 80 | name: "文化の日", 81 | at: new Date(2010, 10, 03), 82 | color: "#777777", 83 | backgroundColor: "#ffe4e1" 84 | }, 85 | { 86 | name: "勤労感謝の日", 87 | at: new Date(2010, 10, 23), 88 | color: "#777777", 89 | backgroundColor: "#ffe4e1" 90 | }, 91 | { 92 | name: "天皇誕生日", 93 | at: new Date(2010, 11, 23), 94 | color: "#777777", 95 | backgroundColor: "#ffe4e1" 96 | }, 97 | { 98 | name: "元旦", 99 | at: new Date(2011, 00, 01), 100 | color: "#777777", 101 | backgroundColor: "#ffe4e1" 102 | }, 103 | { 104 | name: "成人の日", 105 | at: new Date(2011, 00, 10), 106 | color: "#777777", 107 | backgroundColor: "#ffe4e1" 108 | }, 109 | { 110 | name: "建国記念日", 111 | at: new Date(2011, 01, 11), 112 | color: "#777777", 113 | backgroundColor: "#ffe4e1" 114 | }, 115 | { 116 | name: "春分の日", 117 | at: new Date(2011, 02, 21), 118 | color: "#777777", 119 | backgroundColor: "#ffe4e1" 120 | }, 121 | { 122 | name: "昭和の日", 123 | at: new Date(2011, 03, 29), 124 | color: "#777777", 125 | backgroundColor: "#ffe4e1" 126 | }, 127 | { 128 | name: "憲法記念日", 129 | at: new Date(2011, 04, 03), 130 | color: "#777777", 131 | backgroundColor: "#ffe4e1" 132 | }, 133 | { 134 | name: "みどりの日", 135 | at: new Date(2011, 04, 04), 136 | color: "#777777", 137 | backgroundColor: "#ffe4e1" 138 | }, 139 | { 140 | name: "こどもの日", 141 | at: new Date(2011, 04, 05), 142 | color: "#777777", 143 | backgroundColor: "#ffe4e1" 144 | }, 145 | { 146 | name: "海の日", 147 | at: new Date(2011, 06, 18), 148 | color: "#777777", 149 | backgroundColor: "#ffe4e1" 150 | }, 151 | { 152 | name: "敬老の日", 153 | at: new Date(2011, 08, 19), 154 | color: "#777777", 155 | backgroundColor: "#ffe4e1" 156 | }, 157 | { 158 | name: "秋分の日", 159 | at: new Date(2011, 08, 23), 160 | color: "#777777", 161 | backgroundColor: "#ffe4e1" 162 | }, 163 | { 164 | name: "体育の日", 165 | at: new Date(2011, 09, 10), 166 | color: "#777777", 167 | backgroundColor: "#ffe4e1" 168 | }, 169 | { 170 | name: "文化の日", 171 | at: new Date(2011, 10, 03), 172 | color: "#777777", 173 | backgroundColor: "#ffe4e1" 174 | }, 175 | { 176 | name: "勤労感謝の日", 177 | at: new Date(2011, 10, 23), 178 | color: "#777777", 179 | backgroundColor: "#ffe4e1" 180 | }, 181 | { 182 | name: "天皇誕生日", 183 | at: new Date(2011, 11, 23), 184 | color: "#777777", 185 | backgroundColor: "#ffe4e1" 186 | }]; -------------------------------------------------------------------------------- /GanttView/lib/jquery-1.4.2.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery JavaScript Library v1.4.2 3 | * http://jquery.com/ 4 | * 5 | * Copyright 2010, John Resig 6 | * Dual licensed under the MIT or GPL Version 2 licenses. 7 | * http://jquery.org/license 8 | * 9 | * Includes Sizzle.js 10 | * http://sizzlejs.com/ 11 | * Copyright 2010, The Dojo Foundation 12 | * Released under the MIT, BSD, and GPL Licenses. 13 | * 14 | * Date: Sat Feb 13 22:33:48 2010 -0500 15 | */ 16 | (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, 21 | Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& 22 | (d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, 23 | a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== 24 | "find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, 25 | function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; 34 | var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, 35 | parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= 36 | false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= 37 | s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, 38 | applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; 39 | else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, 40 | a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== 41 | w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, 42 | cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= 47 | c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); 48 | a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, 49 | function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); 50 | k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), 51 | C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= 53 | e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& 54 | f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; 55 | if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", 63 | e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, 64 | "_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, 65 | d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, 71 | e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); 72 | t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| 73 | g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, 80 | CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, 81 | g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, 82 | text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, 83 | setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= 84 | h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== 86 | "="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, 87 | h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& 90 | q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; 91 | if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); 92 | (function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: 93 | function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= 96 | {},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== 97 | "string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", 98 | d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? 99 | a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== 100 | 1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= 102 | c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, 103 | wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, 104 | prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, 105 | this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); 106 | return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, 107 | ""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); 111 | return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", 112 | ""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= 113 | c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? 114 | c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= 115 | function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= 116 | Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, 117 | "border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= 118 | a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= 119 | a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== 120 | "string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, 121 | serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), 122 | function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, 123 | global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& 124 | e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? 125 | "&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== 126 | false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= 127 | false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", 128 | c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| 129 | d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); 130 | g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== 131 | 1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== 132 | "json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; 133 | if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== 139 | "number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| 140 | c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; 141 | this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= 142 | this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, 143 | e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; 149 | a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); 150 | c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, 151 | d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- 152 | f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": 153 | "pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in 154 | e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); 155 | -------------------------------------------------------------------------------- /GanttView/lib/jquery-ui-1.8.2.custom.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI 1.8.2 3 | * 4 | * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) 5 | * Dual licensed under the MIT (MIT-LICENSE.txt) 6 | * and GPL (GPL-LICENSE.txt) licenses. 7 | * 8 | * http://docs.jquery.com/UI 9 | */ 10 | (function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=0)&&c(a).is(":focusable")}})}})(jQuery); 16 | ;/*! 17 | * jQuery UI Widget 1.8.2 18 | * 19 | * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) 20 | * Dual licensed under the MIT (MIT-LICENSE.txt) 21 | * and GPL (GPL-LICENSE.txt) licenses. 22 | * 23 | * http://docs.jquery.com/UI/Widget 24 | */ 25 | (function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype= 26 | b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g= 27 | b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create(); 28 | this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f, 29 | h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a= 30 | b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); 31 | ;/*! 32 | * jQuery UI Mouse 1.8.2 33 | * 34 | * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) 35 | * Dual licensed under the MIT (MIT-LICENSE.txt) 36 | * and GPL (GPL-LICENSE.txt) licenses. 37 | * 38 | * http://docs.jquery.com/UI/Mouse 39 | * 40 | * Depends: 41 | * jquery.ui.widget.js 42 | */ 43 | (function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&& 44 | this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault(); 45 | return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&& 46 | this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX- 47 | a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); 48 | ;/* 49 | * jQuery UI Draggable 1.8.2 50 | * 51 | * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) 52 | * Dual licensed under the MIT (MIT-LICENSE.txt) 53 | * and GPL (GPL-LICENSE.txt) licenses. 54 | * 55 | * http://docs.jquery.com/UI/Draggables 56 | * 57 | * Depends: 58 | * jquery.ui.core.js 59 | * jquery.ui.mouse.js 60 | * jquery.ui.widget.js 61 | */ 62 | (function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== 63 | "original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= 64 | this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- 65 | this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); 66 | d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| 67 | this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element, 68 | b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== 69 | a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| 70 | 0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], 71 | this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- 72 | (parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== 73 | "parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&& 74 | a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"), 75 | 10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], 76 | this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft(): 77 | f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options; 88 | if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!= 89 | "HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), 113 | top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= 114 | this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", 115 | nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== 116 | String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection(); 117 | this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; 118 | if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), 119 | e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset= 120 | this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: 121 | this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", 122 | b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height; 123 | g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", 124 | b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top= 125 | a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidthb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, 126 | l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ 129 | a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this, 130 | arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable, 131 | {version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)}); 132 | else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&& 133 | d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a= 134 | d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing, 135 | step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= 136 | d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset; 137 | var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left: 138 | a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top- 139 | e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition, 140 | g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, 141 | display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b= 142 | d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height= 143 | e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); 144 | ; -------------------------------------------------------------------------------- /GanttView/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/GanttView/star.png -------------------------------------------------------------------------------- /GanttView/today_task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/GanttView/today_task.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GanttView 2 | 基于JQ的一款灵活高效,支持自定义拓展的甘特图/日程图插件 3 | > 支持月/周/小时等显示方式 4 | > 支持拖动改变时间 5 | > 展开与收起 6 | > 添加/删除,刷新 7 | > 节假日高亮 8 | > clicked,dblClicked,changed事件 9 | > ... 10 | > 如果显示不出来图片信息,请转移到https://www.jq22.com/jquery-info22001 11 | 12 | ![](describeJPG/1.jpg) 13 | 14 | #### 调用方式:
# 15 |
16 |   
17 |        $("#ganttChart").ganttView({
18 |             ganttScale: "hours",// months  weeks days  hours
19 |             showWeekends: true, //是否显示周末高亮
20 |             showLine: true,//是否显示 当前时间线(为"周"时显示背景颜色)
21 |             data: ganttData2, //数据来源
22 |             vtHeaderWidth: 300,//左侧任务模块宽度
23 |             cellWidth: 50, //格子宽度(ganttScale = hours/weeks:宽度重新计算 最小为50)
24 |             cellHeight: 40,//格子行高
25 |             titileHeight: 40,//标题行高
26 |             start: new Date(2019, 06, 14), //范围最小时间(请根据 ganttScale 参数调节初始时间范围)
27 |             end: new Date(2019, 06, 20), //范围最大时间
28 |             slideWidth: '100%',//甘特图宽度
29 |             excludeWeekends: true,//排除星期的最后一天
30 |             showDayOfWeek: true,//是否显示星期
31 |             showHolidays: false,//显示节假日
32 |             excludeHolidays: false,//排除节假日
33 |             gridHoverL:true,//是否显示鼠标移入效果(列)
34 |             gridHoverH:true,//是否显示鼠标移入效果(行)
35 |             isUnfold:true,//模块下任务超过2条 显示展开收起按钮
36 |             unfoldConfig:false,//初始化展开/收起(模块下任务超过2条 显示展开收起按钮) true:收起
37 |             clicked: function (o) {
38 |                 selectedObj = o;
39 |                 var data = selectedObj.data('block-data');
40 |                 var itemName = data.itemName ? data.itemName : "";
41 |                 var seriesName = data.seriesName ? data.seriesName : "";
42 |                 var text = data.text ? data.text : "";
43 |                 var sYYYY = data.start.getYear();
44 |                 sYYYY = sYYYY < 1000 ? sYYYY + 1900 : sYYYY;
45 |                 var sMM = data.start.getMonth() + 1;
46 |                 var sDD = data.start.getDate();
47 |                 var eYYYY = data.end.getYear();
48 |                 eYYYY = eYYYY < 1000 ? eYYYY + 1900 : eYYYY;
49 |                 var eMM = data.end.getMonth() + 1;
50 |                 var eDD = data.end.getDate();
51 |                 $('#ganttData-item-id').val(data.itemId);
52 |                 $('#ganttData-item-name').val(itemName);
53 |                 $('#ganttData-series-id').val(data.seriesId);
54 |                 $('#ganttData-series-name').val(seriesName);
55 |                 $('#ganttData-series-start').val(sYYYY + "/" + sMM + "/" + sDD);
56 |                 $('#ganttData-series-end').val(eYYYY + "/" + eMM + "/" + eDD);
57 |                 $('#ganttData-series-text').val(text);
58 |                 console.log(`${data.itemId} ${itemName} ${data.seriesId} ${seriesName} ${sYYYY + "/" + sMM + "/" + sDD} ${eYYYY + "/" + eMM + "/" + eDD}`)
59 |             },
60 | 
61 |             dblClicked: function (o) {
62 |                 if (selectedObj == null) { return; }
63 |                 if (selectedObj.data('block-data').seriesId == o.data('block-data').seriesId) {
64 |                     $('#ganttData-reset').trigger("click");
65 |                 }
66 |             },
67 |             changed: function (o) {
68 |                 o.trigger("click");
69 |             }
70 |         });
71 |   
72 | 
73 | 74 | #### 注意事项:
# 75 | 76 | * 支持月,周,小时 77 | * 选择月时,注意调整start/end时间(时间月份默认从0开始) 78 | * 选择周/小时,插件自动忽略年份与月份 79 | * 插件支持模块下任务超过2条数据自动显示展开/收起按钮 80 | * 插件支持节假日Holidays表格高亮,excludeHolidays:true 81 | * cellWidth表格宽度(ganttScale = hours/weeks:宽度重新计算 最小为50) 避免未撑满整个屏幕 82 | * showLine是否显示当前时间节点(小时为线条展示,周/月为表格高亮) 83 | * 关于版本问题(jquery-ui-1.8.2/jquery-1.4.2)JQ版本可为高版本,JQ-ui版本暂不支持高版本 84 | * 图表上所有样式可自定义或取消 85 | 86 | -------------------------------------------------------------------------------- /describe.txt: -------------------------------------------------------------------------------- 1 | GanttView: 2 | HTTPS:https://github.com/WalkerHJ/GanttView.git 3 | SSH:git@github.com:WalkerHJ/GanttView.git -------------------------------------------------------------------------------- /describeJPG/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/describeJPG/1.png -------------------------------------------------------------------------------- /describeJPG/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/describeJPG/2.png -------------------------------------------------------------------------------- /describeJPG/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/describeJPG/3.png -------------------------------------------------------------------------------- /describeJPG/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/describeJPG/4.png -------------------------------------------------------------------------------- /describeJPG/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WalkerHJ/GanttView/bede6ac792586d9b86670d4fb7767e78f0310b6e/describeJPG/5.png --------------------------------------------------------------------------------