diff options
Diffstat (limited to 'framework/Web/Javascripts/source')
66 files changed, 10801 insertions, 255 deletions
| diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_0_aaaaaa_40x100.pngBinary files differ new file mode 100755 index 00000000..b3fe56f2 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_75_ffffff_40x100.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_75_ffffff_40x100.pngBinary files differ new file mode 100755 index 00000000..f63829ae --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_55_fbf9ee_1x400.pngBinary files differ new file mode 100755 index 00000000..e67a294e --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_65_ffffff_1x400.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_65_ffffff_1x400.pngBinary files differ new file mode 100755 index 00000000..6a436ad1 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_dadada_1x400.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_dadada_1x400.pngBinary files differ new file mode 100755 index 00000000..a3582dbf --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_dadada_1x400.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_e6e6e6_1x400.pngBinary files differ new file mode 100755 index 00000000..1bc15208 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_95_fef1ec_1x400.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_95_fef1ec_1x400.pngBinary files differ new file mode 100755 index 00000000..6d540320 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.pngBinary files differ new file mode 100755 index 00000000..c07fd06d --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_222222_256x240.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_222222_256x240.pngBinary files differ new file mode 100755 index 00000000..e1994df2 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_222222_256x240.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_2e83ff_256x240.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_2e83ff_256x240.pngBinary files differ new file mode 100755 index 00000000..42d63dbf --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_2e83ff_256x240.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_454545_256x240.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_454545_256x240.pngBinary files differ new file mode 100755 index 00000000..f076a41d --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_454545_256x240.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_888888_256x240.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_888888_256x240.pngBinary files differ new file mode 100755 index 00000000..b53b7301 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_888888_256x240.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_cd0a0a_256x240.png b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_cd0a0a_256x240.pngBinary files differ new file mode 100755 index 00000000..3b8d7377 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/images/ui-icons_cd0a0a_256x240.png diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery-ui.css b/framework/Web/Javascripts/source/jquery/css/base/jquery-ui.css new file mode 100755 index 00000000..151bd495 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery-ui.css @@ -0,0 +1,10 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css +* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;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}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.theme.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_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_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.accordion.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.accordion.css new file mode 100755 index 00000000..17bee6ba --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.accordion.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.accordion.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.autocomplete.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.autocomplete.css new file mode 100755 index 00000000..60b97935 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.autocomplete.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.autocomplete.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.button.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.button.css new file mode 100755 index 00000000..34604d3a --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.button.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.button.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.core.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.core.css new file mode 100755 index 00000000..4928115e --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.core.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.core.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.datepicker.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.datepicker.css new file mode 100755 index 00000000..fb1bc69b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.datepicker.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.datepicker.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.dialog.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.dialog.css new file mode 100755 index 00000000..2d0053eb --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.dialog.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.dialog.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-dialog{position:absolute;top:0;left:0;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.menu.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.menu.css new file mode 100755 index 00000000..ca837dde --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.menu.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.menu.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.progressbar.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.progressbar.css new file mode 100755 index 00000000..aba49f88 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.progressbar.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.progressbar.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.resizable.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.resizable.css new file mode 100755 index 00000000..4ce6a91b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.resizable.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.resizable.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;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}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.selectable.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.selectable.css new file mode 100755 index 00000000..63023d66 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.selectable.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.selectable.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.slider.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.slider.css new file mode 100755 index 00000000..d8f5cf9c --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.slider.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.slider.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.spinner.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.spinner.css new file mode 100755 index 00000000..de61669b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.spinner.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.spinner.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tabs.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tabs.css new file mode 100755 index 00000000..c7864527 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tabs.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.tabs.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.theme.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.theme.css new file mode 100755 index 00000000..0f44c5ab --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.theme.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.theme.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_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_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tooltip.css b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tooltip.css new file mode 100755 index 00000000..1306b0dc --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/base/jquery.ui.tooltip.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.tooltip.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery-ui.css b/framework/Web/Javascripts/source/jquery/css/jquery-ui.css new file mode 100755 index 00000000..151bd495 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery-ui.css @@ -0,0 +1,10 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css +* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;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}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.theme.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_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_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.accordion.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.accordion.css new file mode 100755 index 00000000..17bee6ba --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.accordion.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.accordion.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.autocomplete.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.autocomplete.css new file mode 100755 index 00000000..60b97935 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.autocomplete.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.autocomplete.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.button.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.button.css new file mode 100755 index 00000000..34604d3a --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.button.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.button.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.core.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.core.css new file mode 100755 index 00000000..4928115e --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.core.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.core.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.datepicker.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.datepicker.css new file mode 100755 index 00000000..fb1bc69b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.datepicker.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.datepicker.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.dialog.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.dialog.css new file mode 100755 index 00000000..2d0053eb --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.dialog.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.dialog.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-dialog{position:absolute;top:0;left:0;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.menu.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.menu.css new file mode 100755 index 00000000..ca837dde --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.menu.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.menu.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.progressbar.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.progressbar.css new file mode 100755 index 00000000..aba49f88 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.progressbar.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.progressbar.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.resizable.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.resizable.css new file mode 100755 index 00000000..4ce6a91b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.resizable.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.resizable.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;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}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.selectable.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.selectable.css new file mode 100755 index 00000000..63023d66 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.selectable.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.selectable.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.slider.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.slider.css new file mode 100755 index 00000000..d8f5cf9c --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.slider.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.slider.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.spinner.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.spinner.css new file mode 100755 index 00000000..de61669b --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.spinner.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.spinner.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.tabs.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.tabs.css new file mode 100755 index 00000000..c7864527 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.tabs.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.tabs.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.theme.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.theme.css new file mode 100755 index 00000000..0f44c5ab --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.theme.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.theme.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;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 #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_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_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/css/jquery.ui.tooltip.css b/framework/Web/Javascripts/source/jquery/css/jquery.ui.tooltip.css new file mode 100755 index 00000000..1306b0dc --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/css/jquery.ui.tooltip.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.tooltip.css +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/jquery-ui-i18n.min.js b/framework/Web/Javascripts/source/jquery/jquery-ui-i18n.min.js new file mode 100755 index 00000000..8a7f2896 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/jquery-ui-i18n.min.js @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.datepicker-af.js, jquery.ui.datepicker-ar-DZ.js, jquery.ui.datepicker-ar.js, jquery.ui.datepicker-az.js, jquery.ui.datepicker-bg.js, jquery.ui.datepicker-bs.js, jquery.ui.datepicker-ca.js, jquery.ui.datepicker-cs.js, jquery.ui.datepicker-cy-GB.js, jquery.ui.datepicker-da.js, jquery.ui.datepicker-de.js, jquery.ui.datepicker-el.js, jquery.ui.datepicker-en-AU.js, jquery.ui.datepicker-en-GB.js, jquery.ui.datepicker-en-NZ.js, jquery.ui.datepicker-eo.js, jquery.ui.datepicker-es.js, jquery.ui.datepicker-et.js, jquery.ui.datepicker-eu.js, jquery.ui.datepicker-fa.js, jquery.ui.datepicker-fi.js, jquery.ui.datepicker-fo.js, jquery.ui.datepicker-fr-CH.js, jquery.ui.datepicker-fr.js, jquery.ui.datepicker-gl.js, jquery.ui.datepicker-he.js, jquery.ui.datepicker-hi.js, jquery.ui.datepicker-hr.js, jquery.ui.datepicker-hu.js, jquery.ui.datepicker-hy.js, jquery.ui.datepicker-id.js, jquery.ui.datepicker-is.js, jquery.ui.datepicker-it.js, jquery.ui.datepicker-ja.js, jquery.ui.datepicker-ka.js, jquery.ui.datepicker-kk.js, jquery.ui.datepicker-km.js, jquery.ui.datepicker-ko.js, jquery.ui.datepicker-lb.js, jquery.ui.datepicker-lt.js, jquery.ui.datepicker-lv.js, jquery.ui.datepicker-mk.js, jquery.ui.datepicker-ml.js, jquery.ui.datepicker-ms.js, jquery.ui.datepicker-nl-BE.js, jquery.ui.datepicker-nl.js, jquery.ui.datepicker-no.js, jquery.ui.datepicker-pl.js, jquery.ui.datepicker-pt-BR.js, jquery.ui.datepicker-pt.js, jquery.ui.datepicker-rm.js, jquery.ui.datepicker-ro.js, jquery.ui.datepicker-ru.js, jquery.ui.datepicker-sk.js, jquery.ui.datepicker-sl.js, jquery.ui.datepicker-sq.js, jquery.ui.datepicker-sr-SR.js, jquery.ui.datepicker-sr.js, jquery.ui.datepicker-sv.js, jquery.ui.datepicker-ta.js, jquery.ui.datepicker-th.js, jquery.ui.datepicker-tj.js, jquery.ui.datepicker-tr.js, jquery.ui.datepicker-uk.js, jquery.ui.datepicker-vi.js, jquery.ui.datepicker-zh-CN.js, jquery.ui.datepicker-zh-HK.js, jquery.ui.datepicker-zh-TW.js +* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */ +jQuery(function(e){e.datepicker.regional.af={closeText:"Selekteer",prevText:"Vorige",nextText:"Volgende",currentText:"Vandag",monthNames:["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNames:["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"],dayNamesShort:["Son","Maa","Din","Woe","Don","Vry","Sat"],dayNamesMin:["So","Ma","Di","Wo","Do","Vr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.af)}),jQuery(function(e){e.datepicker.regional["ar-DZ"]={closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["ar-DZ"])}),jQuery(function(e){e.datepicker.regional.ar={closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ar)}),jQuery(function(e){e.datepicker.regional.az={closeText:"Bağla",prevText:"<Geri",nextText:"İrəli>",currentText:"Bugün",monthNames:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthNamesShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],dayNames:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],dayNamesShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayNamesMin:["B","B","Ç","С","Ç","C","Ş"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.az)}),jQuery(function(e){e.datepicker.regional.bg={closeText:"затвори",prevText:"<назад",nextText:"напред>",nextBigText:">>",currentText:"днес",monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек"],dayNames:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],dayNamesShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.bg)}),jQuery(function(e){e.datepicker.regional.bs={closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.bs)}),jQuery(function(e){e.datepicker.regional.ca={closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ca)}),jQuery(function(e){e.datepicker.regional.cs={closeText:"Zavřít",prevText:"<Dříve",nextText:"Později>",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.cs)}),jQuery(function(e){e.datepicker.regional["cy-GB"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin","Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthNamesShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tac","Rha"],dayNames:["Dydd Sul","Dydd Llun","Dydd Mawrth","Dydd Mercher","Dydd Iau","Dydd Gwener","Dydd Sadwrn"],dayNamesShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad"],dayNamesMin:["Su","Ll","Ma","Me","Ia","Gw","Sa"],weekHeader:"Wy",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["cy-GB"])}),jQuery(function(e){e.datepicker.regional.da={closeText:"Luk",prevText:"<Forrige",nextText:"Næste>",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.da)}),jQuery(function(e){e.datepicker.regional.de={closeText:"schließen",prevText:"<zurück",nextText:"Vor>",currentText:"heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.de)}),jQuery(function(e){e.datepicker.regional.el={closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Τρέχων Μήνας",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.el)}),jQuery(function(e){e.datepicker.regional["en-AU"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["en-AU"])}),jQuery(function(e){e.datepicker.regional["en-GB"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["en-GB"])}),jQuery(function(e){e.datepicker.regional["en-NZ"]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["en-NZ"])}),jQuery(function(e){e.datepicker.regional.eo={closeText:"Fermi",prevText:"<Anta",nextText:"Sekv>",currentText:"Nuna",monthNames:["Januaro","Februaro","Marto","Aprilo","Majo","Junio","Julio","Aŭgusto","Septembro","Oktobro","Novembro","Decembro"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aŭg","Sep","Okt","Nov","Dec"],dayNames:["Dimanĉo","Lundo","Mardo","Merkredo","Ĵaŭdo","Vendredo","Sabato"],dayNamesShort:["Dim","Lun","Mar","Mer","Ĵaŭ","Ven","Sab"],dayNamesMin:["Di","Lu","Ma","Me","Ĵa","Ve","Sa"],weekHeader:"Sb",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.eo)}),jQuery(function(e){e.datepicker.regional.es={closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthNamesShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],dayNames:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mié","Juv","Vie","Sáb"],dayNamesMin:["Do","Lu","Ma","Mi","Ju","Vi","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.es)}),jQuery(function(e){e.datepicker.regional.et={closeText:"Sulge",prevText:"Eelnev",nextText:"Järgnev",currentText:"Täna",monthNames:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthNamesShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],dayNames:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],dayNamesShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],dayNamesMin:["P","E","T","K","N","R","L"],weekHeader:"näd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.et)}),jQuery(function(e){e.datepicker.regional.eu={closeText:"Egina",prevText:"<Aur",nextText:"Hur>",currentText:"Gaur",monthNames:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthNamesShort:["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],dayNames:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],dayNamesShort:["ig.","al.","ar.","az.","og.","ol.","lr."],dayNamesMin:["ig","al","ar","az","og","ol","lr"],weekHeader:"As",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.eu)}),jQuery(function(e){e.datepicker.regional.fa={closeText:"بستن",prevText:"<قبلی",nextText:"بعدی>",currentText:"امروز",monthNames:["فروردين","ارديبهشت","خرداد","تير","مرداد","شهريور","مهر","آبان","آذر","دی","بهمن","اسفند"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ی","د","س","چ","پ","ج","ش"],dayNamesMin:["ی","د","س","چ","پ","ج","ش"],weekHeader:"هف",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.fa)}),jQuery(function(e){e.datepicker.regional.fi={closeText:"Sulje",prevText:"«Edellinen",nextText:"Seuraava»",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.fi)}),jQuery(function(e){e.datepicker.regional.fo={closeText:"Lat aftur",prevText:"<Fyrra",nextText:"Næsta>",currentText:"Í dag",monthNames:["Januar","Februar","Mars","Apríl","Mei","Juni","Juli","August","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNames:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leyardagur"],dayNamesShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],dayNamesMin:["Su","Má","Tý","Mi","Hó","Fr","Le"],weekHeader:"Vk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.fo)}),jQuery(function(e){e.datepicker.regional["fr-CH"]={closeText:"Fermer",prevText:"<Préc",nextText:"Suiv>",currentText:"Courant",monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthNamesShort:["Jan","Fév","Mar","Avr","Mai","Jun","Jul","Aoû","Sep","Oct","Nov","Déc"],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayNamesMin:["Di","Lu","Ma","Me","Je","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["fr-CH"])}),jQuery(function(e){e.datepicker.regional.fr={closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthNamesShort:["Janv.","Févr.","Mars","Avril","Mai","Juin","Juil.","Août","Sept.","Oct.","Nov.","Déc."],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim.","Lun.","Mar.","Mer.","Jeu.","Ven.","Sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.fr)}),jQuery(function(e){e.datepicker.regional.gl={closeText:"Pechar",prevText:"<Ant",nextText:"Seg>",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],dayNamesMin:["Do","Lu","Ma","Mé","Xo","Ve","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.gl)}),jQuery(function(e){e.datepicker.regional.he={closeText:"סגור",prevText:"<הקודם",nextText:"הבא>",currentText:"היום",monthNames:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","אפר","מאי","יוני","יולי","אוג","ספט","אוק","נוב","דצמ"],dayNames:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayNamesMin:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.he)}),jQuery(function(e){e.datepicker.regional.hi={closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून","जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthNamesShort:["जन","फर","मार्च","अप्रेल","मई","जून","जूलाई","अग","सित","अक्ट","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],dayNamesMin:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],weekHeader:"हफ्ता",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.hi)}),jQuery(function(e){e.datepicker.regional.hr={closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.hr)}),jQuery(function(e){e.datepicker.regional.hu={closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.hu)}),jQuery(function(e){e.datepicker.regional.hy={closeText:"Փակել",prevText:"<Նախ.",nextText:"Հաջ.>",currentText:"Այսօր",monthNames:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthNamesShort:["Հունվ","Փետր","Մարտ","Ապր","Մայիս","Հունիս","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],dayNames:["կիրակի","եկուշաբթի","երեքշաբթի","չորեքշաբթի","հինգշաբթի","ուրբաթ","շաբաթ"],dayNamesShort:["կիր","երկ","երք","չրք","հնգ","ուրբ","շբթ"],dayNamesMin:["կիր","երկ","երք","չրք","հնգ","ուրբ","շբթ"],weekHeader:"ՇԲՏ",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.hy)}),jQuery(function(e){e.datepicker.regional.id={closeText:"Tutup",prevText:"<mundur",nextText:"maju>",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.id)}),jQuery(function(e){e.datepicker.regional.is={closeText:"Loka",prevText:"< Fyrri",nextText:"Næsti >",currentText:"Í dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.is)}),jQuery(function(e){e.datepicker.regional.it={closeText:"Chiudi",prevText:"<Prec",nextText:"Succ>",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.it)}),jQuery(function(e){e.datepicker.regional.ja={closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"},e.datepicker.setDefaults(e.datepicker.regional.ja)}),jQuery(function(e){e.datepicker.regional.ka={closeText:"დახურვა",prevText:"< წინა",nextText:"შემდეგი >",currentText:"დღეს",monthNames:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthNamesShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],dayNames:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],dayNamesShort:["კვ","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],dayNamesMin:["კვ","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],weekHeader:"კვირა",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ka)}),jQuery(function(e){e.datepicker.regional.kk={closeText:"Жабу",prevText:"<Алдыңғы",nextText:"Келесі>",currentText:"Бүгін",monthNames:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthNamesShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],dayNames:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],dayNamesShort:["жкс","дсн","ссн","срс","бсн","жма","снб"],dayNamesMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],weekHeader:"Не",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.kk)}),jQuery(function(e){e.datepicker.regional.km={closeText:"ធ្វើរួច",prevText:"មុន",nextText:"បន្ទាប់",currentText:"ថ្ងៃនេះ",monthNames:["មករា","កុម្ភៈ","មីនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthNamesShort:["មករា","កុម្ភៈ","មីនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],dayNames:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],dayNamesShort:["អា","ច","អ","ពុ","ព្រហ","សុ","សៅ"],dayNamesMin:["អា","ច","អ","ពុ","ព្រហ","សុ","សៅ"],weekHeader:"សប្ដាហ៍",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.km)}),jQuery(function(e){e.datepicker.regional.ko={closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"},e.datepicker.setDefaults(e.datepicker.regional.ko)}),jQuery(function(e){e.datepicker.regional.lb={closeText:"Fäerdeg",prevText:"Zréck",nextText:"Weider",currentText:"Haut",monthNames:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"],dayNamesShort:["Son","Méi","Dën","Mët","Don","Fre","Sam"],dayNamesMin:["So","Mé","Dë","Më","Do","Fr","Sa"],weekHeader:"W",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.lb)}),jQuery(function(e){e.datepicker.regional.lt={closeText:"Uždaryti",prevText:"<Atgal",nextText:"Pirmyn>",currentText:"Šiandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","šeš"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Še"],weekHeader:"Wk",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.lt)}),jQuery(function(e){e.datepicker.regional.lv={closeText:"Aizvērt",prevText:"Iepr",nextText:"Nāka",currentText:"Šodien",monthNames:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],dayNames:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Nav",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.lv)}),jQuery(function(e){e.datepicker.regional.mk={closeText:"Затвори",prevText:"<",nextText:">",currentText:"Денес",monthNames:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],dayNames:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],dayNamesShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Са"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.mk)}),jQuery(function(e){e.datepicker.regional.ml={closeText:"ശരി",prevText:"മുന്നത്തെ",nextText:"അടുത്തത് ",currentText:"ഇന്ന്",monthNames:["ജനുവരി","ഫെബ്രുവരി","മാര്ച്ച്","ഏപ്രില്","മേയ്","ജൂണ്","ജൂലൈ","ആഗസ്റ്റ്","സെപ്റ്റംബര്","ഒക്ടോബര്","നവംബര്","ഡിസംബര്"],monthNamesShort:["ജനു","ഫെബ്","മാര്","ഏപ്രി","മേയ്","ജൂണ്","ജൂലാ","ആഗ","സെപ്","ഒക്ടോ","നവം","ഡിസ"],dayNames:["ഞായര്","തിങ്കള്","ചൊവ്വ","ബുധന്","വ്യാഴം","വെള്ളി","ശനി"],dayNamesShort:["ഞായ","തിങ്ക","ചൊവ്വ","ബുധ","വ്യാഴം","വെള്ളി","ശനി"],dayNamesMin:["ഞാ","തി","ചൊ","ബു","വ്യാ","വെ","ശ"],weekHeader:"ആ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ml)}),jQuery(function(e){e.datepicker.regional.ms={closeText:"Tutup",prevText:"<Sebelum",nextText:"Selepas>",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ms)}),jQuery(function(e){e.datepicker.regional["nl-BE"]={closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["nl-BE"])}),jQuery(function(e){e.datepicker.regional.nl={closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.nl)}),jQuery(function(e){e.datepicker.regional.no={closeText:"Lukk",prevText:"«Forrige",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.no)}),jQuery(function(e){e.datepicker.regional.pl={closeText:"Zamknij",prevText:"<Poprzedni",nextText:"Następny>",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.pl)}),jQuery(function(e){e.datepicker.regional["pt-BR"]={closeText:"Fechar",prevText:"<Anterior",nextText:"Próximo>",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["pt-BR"])}),jQuery(function(e){e.datepicker.regional.pt={closeText:"Fechar",prevText:"<Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.pt)}),jQuery(function(e){e.datepicker.regional.rm={closeText:"Serrar",prevText:"<Suandant",nextText:"Precedent>",currentText:"Actual",monthNames:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],monthNamesShort:["Scha","Fev","Mar","Avr","Matg","Zer","Fan","Avu","Sett","Oct","Nov","Dec"],dayNames:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"],dayNamesShort:["Dum","Gli","Mar","Mes","Gie","Ven","Som"],dayNamesMin:["Du","Gl","Ma","Me","Gi","Ve","So"],weekHeader:"emna",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.rm)}),jQuery(function(e){e.datepicker.regional.ro={closeText:"Închide",prevText:"« Luna precedentă",nextText:"Luna următoare »",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ro)}),jQuery(function(e){e.datepicker.regional.ru={closeText:"Закрыть",prevText:"<Пред",nextText:"След>",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ru)}),jQuery(function(e){e.datepicker.regional.sk={closeText:"Zavrieť",prevText:"<Predchádzajúci",nextText:"Nasledujúci>",currentText:"Dnes",monthNames:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Št","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.sk)}),jQuery(function(e){e.datepicker.regional.sl={closeText:"Zapri",prevText:"<Prejšnji",nextText:"Naslednji>",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","Če","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.sl)}),jQuery(function(e){e.datepicker.regional.sq={closeText:"mbylle",prevText:"<mbrapa",nextText:"Përpara>",currentText:"sot",monthNames:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthNamesShort:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","Nën","Dhj"],dayNames:["E Diel","E Hënë","E Martë","E Mërkurë","E Enjte","E Premte","E Shtune"],dayNamesShort:["Di","Hë","Ma","Më","En","Pr","Sh"],dayNamesMin:["Di","Hë","Ma","Më","En","Pr","Sh"],weekHeader:"Ja",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.sq)}),jQuery(function(e){e.datepicker.regional["sr-SR"]={closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Sed",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional["sr-SR"])}),jQuery(function(e){e.datepicker.regional.sr={closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.sr)}),jQuery(function(e){e.datepicker.regional.sv={closeText:"Stäng",prevText:"«Förra",nextText:"Nästa»",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.sv)}),jQuery(function(e){e.datepicker.regional.ta={closeText:"மூடு",prevText:"முன்னையது",nextText:"அடுத்தது",currentText:"இன்று",monthNames:["தை","மாசி","பங்குனி","சித்திரை","வைகாசி","ஆனி","ஆடி","ஆவணி","புரட்டாசி","ஐப்பசி","கார்த்திகை","மார்கழி"],monthNamesShort:["தை","மாசி","பங்","சித்","வைகா","ஆனி","ஆடி","ஆவ","புர","ஐப்","கார்","மார்"],dayNames:["ஞாயிற்றுக்கிழமை","திங்கட்கிழமை","செவ்வாய்க்கிழமை","புதன்கிழமை","வியாழக்கிழமை","வெள்ளிக்கிழமை","சனிக்கிழமை"],dayNamesShort:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],dayNamesMin:["ஞா","தி","செ","பு","வி","வெ","ச"],weekHeader:"Не",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.ta)}),jQuery(function(e){e.datepicker.regional.th={closeText:"ปิด",prevText:"« ย้อน",nextText:"ถัดไป »",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.th)}),jQuery(function(e){e.datepicker.regional.tj={closeText:"Идома",prevText:"<Қафо",nextText:"Пеш>",currentText:"Имрӯз",monthNames:["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["якшанбе","душанбе","сешанбе","чоршанбе","панҷшанбе","ҷумъа","шанбе"],dayNamesShort:["якш","душ","сеш","чор","пан","ҷум","шан"],dayNamesMin:["Як","Дш","Сш","Чш","Пш","Ҷм","Шн"],weekHeader:"Хф",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.tj)}),jQuery(function(e){e.datepicker.regional.tr={closeText:"kapat",prevText:"<geri",nextText:"ileri>",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.tr)}),jQuery(function(e){e.datepicker.regional.uk={closeText:"Закрити",prevText:"<",nextText:">",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],dayNames:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"],dayNamesShort:["нед","пнд","вів","срд","чтв","птн","сбт"],dayNamesMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.uk)}),jQuery(function(e){e.datepicker.regional.vi={closeText:"Đóng",prevText:"<Trước",nextText:"Tiếp>",currentText:"Hôm nay",monthNames:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},e.datepicker.setDefaults(e.datepicker.regional.vi)}),jQuery(function(e){e.datepicker.regional["zh-CN"]={closeText:"关闭",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"},e.datepicker.setDefaults(e.datepicker.regional["zh-CN"])}),jQuery(function(e){e.datepicker.regional["zh-HK"]={closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"dd-mm-yy",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"},e.datepicker.setDefaults(e.datepicker.regional["zh-HK"])}),jQuery(function(e){e.datepicker.regional["zh-TW"]={closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"},e.datepicker.setDefaults(e.datepicker.regional["zh-TW"])});
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/jquery-ui.min.js b/framework/Web/Javascripts/source/jquery/jquery-ui.min.js new file mode 100755 index 00000000..9b3b84de --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/jquery-ui.min.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.9.2 - 2012-11-23 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.slider.js, jquery.ui.sortable.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js +* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ + +(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),function(){var t=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];e.ui.ie=t.length?!0:!1,e.ui.ie6=parseFloat(t[1],10)===6}(),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r<i.length;r++)e.options[i[r][0]]&&i[r][1].apply(e.element,n)}},contains:e.contains,hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e<t+n},isOver:function(t,n,r,i,s,o){return e.ui.isOverAxis(t,r,s)&&e.ui.isOverAxis(n,i,o)}})})(jQuery);(function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n=0,r;(r=t[n])!=null;n++)try{e(r).triggerHandler("remove")}catch(s){}i(t)},e.widget=function(t,n,r){var i,s,o,u,a=t.split(".")[0];t=t.split(".")[1],i=a+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[a]=e[a]||{},s=e[a][t],o=e[a][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,i){e.isFunction(i)&&(r[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},r=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=r,s=i.apply(this,arguments),this._super=t,this._superApply=n,s}}())}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix:t},r,{constructor:o,namespace:a,widgetName:t,widgetBaseClass:i,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o)},e.widget.extend=function(n){var i=r.call(arguments,1),s=0,o=i.length,u,a;for(;s<o;s++)for(u in i[s])a=i[s][u],i[s].hasOwnProperty(u)&&a!==t&&(e.isPlainObject(a)?n[u]=e.isPlainObject(n[u])?e.widget.extend({},n[u],a):e.widget.extend({},a):n[u]=a);return n},e.widget.bridge=function(n,i){var s=i.prototype.widgetFullName||n;e.fn[n]=function(o){var u=typeof o=="string",a=r.call(arguments,1),f=this;return o=!u&&a.length?e.widget.extend.apply(null,[o].concat(a)):o,u?this.each(function(){var r,i=e.data(this,s);if(!i)return e.error("cannot call methods on "+n+" prior to initialization; "+"attempted to call method '"+o+"'");if(!e.isFunction(i[o])||o.charAt(0)==="_")return e.error("no such method '"+o+"' for "+n+" widget instance");r=i[o].apply(i,a);if(r!==i&&r!==t)return f=r&&r.jquery?f.pushStack(r.get()):r,!1}):this.each(function(){var t=e.data(this,s);t?t.option(o||{})._init():e.data(this,s,new i(o,this))}),f}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u<s.length-1;u++)o[s[u]]=o[s[u]]||{},o=o[s[u]];n=s.pop();if(r===t)return o[n]===t?null:o[n];o[n]=r}else{if(r===t)return this.options[n]===t?null:this.options[n];i[n]=r}}return this._setOptions(i),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^(\w+)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&(e.effects.effect[u]||e.uiBackCompat!==!1&&e.effects[u])?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}}),e.uiBackCompat!==!1&&(e.Widget.prototype._getCreateOptions=function(){return e.metadata&&e.metadata.get(this.element[0])[this.widgetName]})})(jQuery);(function(e,t){var n=!1;e(document).mouseup(function(e){n=!1}),e.widget("ui.mouse",{version:"1.9.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(n)return;this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var r=this,i=t.which===1,s=typeof this.options.cancel=="string"&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(t))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)){this._mouseStarted=this._mouseStart(t)!==!1;if(!this._mouseStarted)return t.preventDefault(),!0}return!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),n=!0,!0},_mouseMove:function(t){return!e.ui.ie||document.documentMode>=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:i?e.position.scrollbarWidth():0,height:s?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]);return{element:n,isWindow:r,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r?n.width():n.outerWidth(),height:r?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var n,l,d,v,m,g=e(t.of),y=e.position.getWithinInfo(t.within),b=e.position.getScrollInfo(y),w=g[0],E=(t.collision||"flip").split(" "),S={};return w.nodeType===9?(l=g.width(),d=g.height(),v={top:0,left:0}):e.isWindow(w)?(l=g.width(),d=g.height(),v={top:g.scrollTop(),left:g.scrollLeft()}):w.preventDefault?(t.at="left top",l=d=0,v={top:w.pageY,left:w.pageX}):(l=g.outerWidth(),d=g.outerHeight(),v=g.offset()),m=e.extend({},v),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),S[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),E.length===1&&(E[1]=E[0]),t.at[0]==="right"?m.left+=l:t.at[0]==="center"&&(m.left+=l/2),t.at[1]==="bottom"?m.top+=d:t.at[1]==="center"&&(m.top+=d/2),n=h(S.at,l,d),m.left+=n[0],m.top+=n[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),w=p(this,"marginLeft"),x=p(this,"marginTop"),T=f+w+p(this,"marginRight")+b.width,N=c+x+p(this,"marginBottom")+b.height,C=e.extend({},m),k=h(S.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?C.left-=f:t.my[0]==="center"&&(C.left-=f/2),t.my[1]==="bottom"?C.top-=c:t.my[1]==="center"&&(C.top-=c/2),C.left+=k[0],C.top+=k[1],e.support.offsetFractions||(C.left=s(C.left),C.top=s(C.top)),o={marginLeft:w,marginTop:x},e.each(["left","top"],function(r,i){e.ui.position[E[r]]&&e.ui.position[E[r]][i](C,{targetWidth:l,targetHeight:d,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:T,collisionHeight:N,offset:[n[0]+k[0],n[1]+k[1]],my:t.my,at:t.at,within:y,elem:a})}),e.fn.bgiframe&&a.bgiframe(),t.using&&(u=function(e){var n=v.left-C.left,s=n+l-f,o=v.top-C.top,u=o+d-c,h={target:{element:g,left:v.left,top:v.top,width:l,height:d},element:{element:a,left:C.left,top:C.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};l<f&&i(n+s)<l&&(h.horizontal="center"),d<c&&i(o+u)<d&&(h.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;a<0?(v=e.top+c+h+p+t.collisionHeight-s-r,e.top+c+h+p>a&&(v<0||v<i(a))&&(e.top+=c+h+p)):f>0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)<f)&&(e.top+=c+h+p))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,n,r,i,s,o=document.getElementsByTagName("body")[0],u=document.createElement("div");t=document.createElement(o?"div":"body"),r={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&e.extend(r,{position:"absolute",left:"-1000px",top:"-1000px"});for(s in r)t.style[s]=r[s];t.appendChild(u),n=o||document.documentElement,n.insertBefore(t,n.firstChild),u.style.cssText="position: absolute; left: 10.7432222px;",i=e(u).offset().left,e.support.offsetFractions=i>10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);(function(e,t){var n=0,r={},i={};r.height=r.paddingTop=r.paddingBottom=r.borderTopWidth=r.borderBottomWidth="hide",i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.9.2",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&(r.active===!1||r.active==null)&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()<t.index()),c=this.options.animate||{},h=l&&c.down||c,p=function(){a._toggleComplete(n)};typeof h=="number"&&(u=h),typeof h=="string"&&(o=h),o=o||h.easing||c.easing,u=u||h.duration||c.duration;if(!t.length)return e.animate(i,u,o,p);if(!e.length)return t.animate(r,u,o,p);s=e.show().outerHeight(),t.animate(r,{duration:u,easing:o,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(i,{duration:u,easing:o,complete:p,step:function(e,n){n.now=Math.round(e),n.prop!=="height"?f+=n.now:a.options.heightStyle!=="content"&&(n.now=Math.round(s-t.outerHeight()-f),f=0)}})},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.uiBackCompat!==!1&&(function(e,t){e.extend(t.options,{navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}});var n=t._create;t._create=function(){if(this.options.navigation){var t=this,r=this.element.find(this.options.header),i=r.next(),s=r.add(i).find("a").filter(this.options.navigationFilter)[0];s&&r.add(i).each(function(n){if(e.contains(this,s))return t.options.active=Math.floor(n/2),!1})}n.call(this)}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options,{heightStyle:null,autoHeight:!0,clearStyle:!1,fillSpace:!1});var n=t._create,r=t._setOption;e.extend(t,{_create:function(){this.options.heightStyle=this.options.heightStyle||this._mergeHeightStyle(),n.call(this)},_setOption:function(e){if(e==="autoHeight"||e==="clearStyle"||e==="fillSpace")this.options.heightStyle=this._mergeHeightStyle();r.apply(this,arguments)},_mergeHeightStyle:function(){var e=this.options;if(e.fillSpace)return"fill";if(e.clearStyle)return"content";if(e.autoHeight)return"auto"}})}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options.icons,{activeHeader:null,headerSelected:"ui-icon-triangle-1-s"});var n=t._createIcons;t._createIcons=function(){this.options.icons&&(this.options.icons.activeHeader=this.options.icons.activeHeader||this.options.icons.headerSelected),n.call(this)}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){t.activate=t._activate;var n=t._findActive;t._findActive=function(e){return e===-1&&(e=!1),e&&typeof e!="number"&&(e=this.headers.index(this.headers.filter(e)),e===-1&&(e=!1)),n.call(this,e)}}(jQuery,jQuery.ui.accordion.prototype),jQuery.ui.accordion.prototype.resize=jQuery.ui.accordion.prototype.refresh,function(e,t){e.extend(t.options,{change:null,changestart:null});var n=t._trigger;t._trigger=function(e,t,r){var i=n.apply(this,arguments);return i?(e==="beforeActivate"?i=n.call(this,"changestart",t,{oldHeader:r.oldHeader,oldContent:r.oldPanel,newHeader:r.newHeader,newContent:r.newPanel}):e==="activate"&&(i=n.call(this,"change",t,{oldHeader:r.oldHeader,oldContent:r.oldPanel,newHeader:r.newHeader,newContent:r.newPanel})),i):!1}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options,{animate:null,animated:"slide"});var n=t._create;t._create=function(){var e=this.options;e.animate===null&&(e.animated?e.animated==="slide"?e.animate=300:e.animated==="bounceslide"?e.animate={duration:200,down:{easing:"easeOutBounce",duration:1e3}}:e.animate=e.animated:e.animate=!1),n.call(this)}}(jQuery,jQuery.ui.accordion.prototype))})(jQuery);(function(e,t){var n=0;e.widget("ui.autocomplete",{version:"1.9.2",defaultElement:"<input>",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo||"body")[0]).menu({input:e(),role:null}).zIndex(this.element.zIndex()+1).hide().data("menu"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var n=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(r){r.target!==t.element[0]&&r.target!==n&&!e.contains(n,r.target)&&t.close()})})},menufocus:function(t,n){if(this.isNewMenu){this.isNewMenu=!1;if(t.originalEvent&&/^mouse/.test(t.originalEvent.type)){this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)});return}}var r=n.item.data("ui-autocomplete-item")||n.item.data("item.autocomplete");!1!==this._trigger("focus",t,{item:r})?t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(r.value):this.liveRegion.text(r.value)},menuselect:function(e,t){var n=t.item.data("ui-autocomplete-item")||t.item.data("item.autocomplete"),r=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=r,this._delay(function(){this.previous=r,this.selectedItem=n})),!1!==this._trigger("select",e,{item:n})&&this._value(n.value),this.term=this._value(),this.close(e),this.selectedItem=n}}),this.liveRegion=e("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertAfter(this.element),e.fn.bgiframe&&this.menu.element.bgiframe(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),e==="source"&&this._initSource(),e==="appendTo"&&this.menu.element.appendTo(this.document.find(t||"body")[0]),e==="disabled"&&t&&this.xhr&&this.xhr.abort()},_isMultiLine:function(){return this.element.is("textarea")?!0:this.element.is("input")?!1:this.element.prop("isContentEditable")},_initSource:function(){var t,n,r=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(n,r){r(e.ui.autocomplete.filter(t,n.term))}):typeof this.options.source=="string"?(n=this.options.source,this.source=function(t,i){r.xhr&&r.xhr.abort(),r.xhr=e.ajax({url:n,data:t,dataType:"json",success:function(e){i(e)},error:function(){i([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){e=e!=null?e:this._value(),this.term=this._value();if(e.length<this.options.minLength)return this.close(t);if(this._trigger("search",t)===!1)return;return this._search(e)},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var e=this,t=++n;return function(r){t===n&&e.__response(r),e.pending--,e.pending||e.element.removeClass("ui-autocomplete-loading")}},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return typeof t=="string"?{label:t,value:t}:e.extend({label:t.label||t.value,value:t.value||t.label},t)})},_suggest:function(t){var n=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(n,t),this.menu.refresh(),n.show(),this._resizeMenu(),n.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,n){var r=this;e.each(n,function(e,n){r._renderItemData(t,n)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,n){return e("<li>").append(e("<a>").text(n.label)).appendTo(t)},_move:function(e,t){if(!this.menu.element.is(":visible")){this.search(null,t);return}if(this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)){this._value(this.term),this.menu.blur();return}this.menu[e](t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(e,t),t.preventDefault()}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp(e.ui.autocomplete.escapeRegex(n),"i");return e.grep(t,function(e){return r.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var t;this._superApply(arguments);if(this.options.disabled||this.cancelSearch)return;e&&e.length?t=this.options.messages.results(e.length):t=this.options.messages.noResults,this.liveRegion.text(t)}})})(jQuery);(function(e,t){var n,r,i,s,o="ui-button ui-widget ui-state-default ui-corner-all",u="ui-state-hover ui-state-active ",a="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",f=function(){var t=e(this).find(":ui-button");setTimeout(function(){t.button("refresh")},1)},l=function(t){var n=t.name,r=t.form,i=e([]);return n&&(r?i=e(r).find("[name='"+n+"']"):i=e("[name='"+n+"']",t.ownerDocument).filter(function(){return!this.form})),i};e.widget("ui.button",{version:"1.9.2",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,f),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,u=this.options,a=this.type==="checkbox"||this.type==="radio",c=a?"":"ui-state-active",h="ui-state-focus";u.label===null&&(u.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(o).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(u.disabled)return;this===n&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){if(u.disabled)return;e(this).removeClass(c)}).bind("click"+this.eventNamespace,function(e){u.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this.element.bind("focus"+this.eventNamespace,function(){t.buttonElement.addClass(h)}).bind("blur"+this.eventNamespace,function(){t.buttonElement.removeClass(h)}),a&&(this.element.bind("change"+this.eventNamespace,function(){if(s)return;t.refresh()}),this.buttonElement.bind("mousedown"+this.eventNamespace,function(e){if(u.disabled)return;s=!1,r=e.pageX,i=e.pageY}).bind("mouseup"+this.eventNamespace,function(e){if(u.disabled)return;if(r!==e.pageX||i!==e.pageY)s=!0})),this.type==="checkbox"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(u.disabled||s)return!1;e(this).toggleClass("ui-state-active"),t.buttonElement.attr("aria-pressed",t.element[0].checked)}):this.type==="radio"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(u.disabled||s)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var n=t.element[0];l(n).not(n).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(u.disabled)return!1;e(this).addClass("ui-state-active"),n=this,t.document.one("mouseup",function(){n=null})}).bind("mouseup"+this.eventNamespace,function(){if(u.disabled)return!1;e(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){if(u.disabled)return!1;(t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active")}).bind("keyup"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",u.disabled),this._resetButton()},_determineButtonType:function(){var e,t,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button",this.type==="checkbox"||this.type==="radio"?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(o+" "+u+" "+a).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){this._super(e,t);if(e==="disabled"){t?this.element.prop("disabled",!0):this.element.prop("disabled",!1);return}this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),this.type==="radio"?l(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var t=this.buttonElement.removeClass(a),n=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),r=this.options.icons,i=r.primary&&r.secondary,s=[];r.primary||r.secondary?(this.options.text&&s.push("ui-button-text-icon"+(i?"s":r.primary?"-primary":"-secondary")),r.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+r.primary+"'></span>"),r.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+r.secondary+"'></span>"),this.options.text||(s.push(i?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(n)))):s.push("ui-button-text-only"),t.addClass(s.join(" "))}}),e.widget("ui.buttonset",{version:"1.9.2",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){e==="disabled"&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}})})(jQuery);(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function bindHover(e){var t="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(t,"mouseout",function(){$(this).removeClass("ui-state-hover"),this.className.indexOf("ui-datepicker-prev")!=-1&&$(this).removeClass("ui-datepicker-prev-hover"),this.className.indexOf("ui-datepicker-next")!=-1&&$(this).removeClass("ui-datepicker-next-hover")}).delegate(t,"mouseover",function(){$.datepicker._isDisabledDatepicker(instActive.inline?e.parent()[0]:instActive.input[0])||($(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),$(this).addClass("ui-state-hover"),this.className.indexOf("ui-datepicker-prev")!=-1&&$(this).addClass("ui-datepicker-prev-hover"),this.className.indexOf("ui-datepicker-next")!=-1&&$(this).addClass("ui-datepicker-next-hover"))})}function extendRemove(e,t){$.extend(e,t);for(var n in t)if(t[n]==null||t[n]==undefined)e[n]=t[n];return e}$.extend($.ui,{datepicker:{version:"1.9.2"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return extendRemove(this._defaults,e||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(e,t){var n=e[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:n,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:t,dpDiv:t?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(e,t){var n=$(e);t.append=$([]),t.trigger=$([]);if(n.hasClass(this.markerClassName))return;this._attachments(n,t),n.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,n,r){t.settings[n]=r}).bind("getData.datepicker",function(e,n){return this._get(t,n)}),this._autoSize(t),$.data(e,PROP_NAME,t),t.settings.disabled&&this._disableDatepicker(e)},_attachments:function(e,t){var n=this._get(t,"appendText"),r=this._get(t,"isRTL");t.append&&t.append.remove(),n&&(t.append=$('<span class="'+this._appendClass+'">'+n+"</span>"),e[r?"before":"after"](t.append)),e.unbind("focus",this._showDatepicker),t.trigger&&t.trigger.remove();var i=this._get(t,"showOn");(i=="focus"||i=="both")&&e.focus(this._showDatepicker);if(i=="button"||i=="both"){var s=this._get(t,"buttonText"),o=this._get(t,"buttonImage");t.trigger=$(this._get(t,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:o,alt:s,title:s}):$('<button type="button"></button>').addClass(this._triggerClass).html(o==""?s:$("<img/>").attr({src:o,alt:s,title:s}))),e[r?"before":"after"](t.trigger),t.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==e[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=e[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(e[0])):$.datepicker._showDatepicker(e[0]),!1})}},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t=new Date(2009,11,20),n=this._get(e,"dateFormat");if(n.match(/[DM]/)){var r=function(e){var t=0,n=0;for(var r=0;r<e.length;r++)e[r].length>t&&(t=e[r].length,n=r);return n};t.setMonth(r(this._get(e,n.match(/MM/)?"monthNames":"monthNamesShort"))),t.setDate(r(this._get(e,n.match(/DD/)?"dayNames":"dayNamesShort"))+20-t.getDay())}e.input.attr("size",this._formatDate(e,t).length)}},_inlineDatepicker:function(e,t){var n=$(e);if(n.hasClass(this.markerClassName))return;n.addClass(this.markerClassName).append(t.dpDiv).bind("setData.datepicker",function(e,n,r){t.settings[n]=r}).bind("getData.datepicker",function(e,n){return this._get(t,n)}),$.data(e,PROP_NAME,t),this._setDate(t,this._getDefaultDate(t),!0),this._updateDatepicker(t),this._updateAlternate(t),t.settings.disabled&&this._disableDatepicker(e),t.dpDiv.css("display","block")},_dialogDatepicker:function(e,t,n,r,i){var s=this._dialogInst;if(!s){this.uuid+=1;var o="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+o+'" style="position: absolute; top: -100px; width: 0px;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),s=this._dialogInst=this._newInst(this._dialogInput,!1),s.settings={},$.data(this._dialogInput[0],PROP_NAME,s)}extendRemove(s.settings,r||{}),t=t&&t.constructor==Date?this._formatDate(s,t):t,this._dialogInput.val(t),this._pos=i?i.length?i:[i.pageX,i.pageY]:null;if(!this._pos){var u=document.documentElement.clientWidth,a=document.documentElement.clientHeight,f=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[u/2-100+f,a/2-150+l]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),s.settings.onSelect=n,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,s),this},_destroyDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();$.removeData(e,PROP_NAME),r=="input"?(n.append.remove(),n.trigger.remove(),t.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(r=="div"||r=="span")&&t.removeClass(this.markerClassName).empty()},_enableDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();if(r=="input")e.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(r=="div"||r=="span"){var i=t.children("."+this._inlineClass);i.children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)}this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t})},_disableDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();if(r=="input")e.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(r=="div"||r=="span"){var i=t.children("."+this._inlineClass);i.children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)}this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t}),this._disabledInputs[this._disabledInputs.length]=e},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;t<this._disabledInputs.length;t++)if(this._disabledInputs[t]==e)return!0;return!1},_getInst:function(e){try{return $.data(e,PROP_NAME)}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,t,n){var r=this._getInst(e);if(arguments.length==2&&typeof t=="string")return t=="defaults"?$.extend({},$.datepicker._defaults):r?t=="all"?$.extend({},r.settings):this._get(r,t):null;var i=t||{};typeof t=="string"&&(i={},i[t]=n);if(r){this._curInst==r&&this._hideDatepicker();var s=this._getDateDatepicker(e,!0),o=this._getMinMaxDate(r,"min"),u=this._getMinMaxDate(r,"max");extendRemove(r.settings,i),o!==null&&i.dateFormat!==undefined&&i.minDate===undefined&&(r.settings.minDate=this._formatDate(r,o)),u!==null&&i.dateFormat!==undefined&&i.maxDate===undefined&&(r.settings.maxDate=this._formatDate(r,u)),this._attachments($(e),r),this._autoSize(r),this._setDate(r,s),this._updateAlternate(r),this._updateDatepicker(r)}},_changeDatepicker:function(e,t,n){this._optionDatepicker(e,t,n)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var n=this._getInst(e);n&&(this._setDate(n,t),this._updateDatepicker(n),this._updateAlternate(n))},_getDateDatepicker:function(e,t){var n=this._getInst(e);return n&&!n.inline&&this._setDateFromField(n,t),n?this._getDate(n):null},_doKeyDown:function(e){var t=$.datepicker._getInst(e.target),n=!0,r=t.dpDiv.is(".ui-datepicker-rtl");t._keyEvent=!0;if($.datepicker._datepickerShowing)switch(e.keyCode){case 9:$.datepicker._hideDatepicker(),n=!1;break;case 13:var i=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",t.dpDiv);i[0]&&$.datepicker._selectDay(e.target,t.selectedMonth,t.selectedYear,i[0]);var s=$.datepicker._get(t,"onSelect");if(s){var o=$.datepicker._formatDate(t);s.apply(t.input?t.input[0]:null,[o,t])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(e.target,e.ctrlKey?-$.datepicker._get(t,"stepBigMonths"):-$.datepicker._get(t,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(e.target,e.ctrlKey?+$.datepicker._get(t,"stepBigMonths"):+$.datepicker._get(t,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&$.datepicker._clearDate(e.target),n=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&$.datepicker._gotoToday(e.target),n=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,r?1:-1,"D"),n=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&$.datepicker._adjustDate(e.target,e.ctrlKey?-$.datepicker._get(t,"stepBigMonths"):-$.datepicker._get(t,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,-7,"D"),n=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,r?-1:1,"D"),n=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&$.datepicker._adjustDate(e.target,e.ctrlKey?+$.datepicker._get(t,"stepBigMonths"):+$.datepicker._get(t,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,7,"D"),n=e.ctrlKey||e.metaKey;break;default:n=!1}else e.keyCode==36&&e.ctrlKey?$.datepicker._showDatepicker(this):n=!1;n&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var t=$.datepicker._getInst(e.target);if($.datepicker._get(t,"constrainInput")){var n=$.datepicker._possibleChars($.datepicker._get(t,"dateFormat")),r=String.fromCharCode(e.charCode==undefined?e.keyCode:e.charCode);return e.ctrlKey||e.metaKey||r<" "||!n||n.indexOf(r)>-1}},_doKeyUp:function(e){var t=$.datepicker._getInst(e.target);if(t.input.val()!=t.lastVal)try{var n=$.datepicker.parseDate($.datepicker._get(t,"dateFormat"),t.input?t.input.val():null,$.datepicker._getFormatConfig(t));n&&($.datepicker._setDateFromField(t),$.datepicker._updateAlternate(t),$.datepicker._updateDatepicker(t))}catch(r){$.datepicker.log(r)}return!0},_showDatepicker:function(e){e=e.target||e,e.nodeName.toLowerCase()!="input"&&(e=$("input",e.parentNode)[0]);if($.datepicker._isDisabledDatepicker(e)||$.datepicker._lastInput==e)return;var t=$.datepicker._getInst(e);$.datepicker._curInst&&$.datepicker._curInst!=t&&($.datepicker._curInst.dpDiv.stop(!0,!0),t&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var n=$.datepicker._get(t,"beforeShow"),r=n?n.apply(e,[e,t]):{};if(r===!1)return;extendRemove(t.settings,r),t.lastVal=null,$.datepicker._lastInput=e,$.datepicker._setDateFromField(t),$.datepicker._inDialog&&(e.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(e),$.datepicker._pos[1]+=e.offsetHeight);var i=!1;$(e).parents().each(function(){return i|=$(this).css("position")=="fixed",!i});var s={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,t.dpDiv.empty(),t.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(t),s=$.datepicker._checkOffset(t,s,i),t.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":i?"fixed":"absolute",display:"none",left:s.left+"px",top:s.top+"px"});if(!t.inline){var o=$.datepicker._get(t,"showAnim"),u=$.datepicker._get(t,"duration"),a=function(){var e=t.dpDiv.find("iframe.ui-datepicker-cover");if(!!e.length){var n=$.datepicker._getBorders(t.dpDiv);e.css({left:-n[0],top:-n[1],width:t.dpDiv.outerWidth(),height:t.dpDiv.outerHeight()})}};t.dpDiv.zIndex($(e).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&($.effects.effect[o]||$.effects[o])?t.dpDiv.show(o,$.datepicker._get(t,"showOptions"),u,a):t.dpDiv[o||"show"](o?u:null,a),(!o||!u)&&a(),t.input.is(":visible")&&!t.input.is(":disabled")&&t.input.focus(),$.datepicker._curInst=t}},_updateDatepicker:function(e){this.maxRows=4;var t=$.datepicker._getBorders(e.dpDiv);instActive=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var n=e.dpDiv.find("iframe.ui-datepicker-cover");!n.length||n.css({left:-t[0],top:-t[1],width:e.dpDiv.outerWidth(),height:e.dpDiv.outerHeight()}),e.dpDiv.find("."+this._dayOverClass+" a").mouseover();var r=this._getNumberOfMonths(e),i=r[1],s=17;e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),i>1&&e.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",s*i+"em"),e.dpDiv[(r[0]!=1||r[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e==$.datepicker._curInst&&$.datepicker._datepickerShowing&&e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&e.input[0]!=document.activeElement&&e.input.focus();if(e.yearshtml){var o=e.yearshtml;setTimeout(function(){o===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),o=e.yearshtml=null},0)}},_getBorders:function(e){var t=function(e){return{thin:1,medium:2,thick:3}[e]||e};return[parseFloat(t(e.css("border-left-width"))),parseFloat(t(e.css("border-top-width")))]},_checkOffset:function(e,t,n){var r=e.dpDiv.outerWidth(),i=e.dpDiv.outerHeight(),s=e.input?e.input.outerWidth():0,o=e.input?e.input.outerHeight():0,u=document.documentElement.clientWidth+(n?0:$(document).scrollLeft()),a=document.documentElement.clientHeight+(n?0:$(document).scrollTop());return t.left-=this._get(e,"isRTL")?r-s:0,t.left-=n&&t.left==e.input.offset().left?$(document).scrollLeft():0,t.top-=n&&t.top==e.input.offset().top+o?$(document).scrollTop():0,t.left-=Math.min(t.left,t.left+r>u&&u>r?Math.abs(t.left+r-u):0),t.top-=Math.min(t.top,t.top+i>a&&a>i?Math.abs(i+o):0),t},_findPos:function(e){var t=this._getInst(e),n=this._get(t,"isRTL");while(e&&(e.type=="hidden"||e.nodeType!=1||$.expr.filters.hidden(e)))e=e[n?"previousSibling":"nextSibling"];var r=$(e).offset();return[r.left,r.top]},_hideDatepicker:function(e){var t=this._curInst;if(!t||e&&t!=$.data(e,PROP_NAME))return;if(this._datepickerShowing){var n=this._get(t,"showAnim"),r=this._get(t,"duration"),i=function(){$.datepicker._tidyDialog(t)};$.effects&&($.effects.effect[n]||$.effects[n])?t.dpDiv.hide(n,$.datepicker._get(t,"showOptions"),r,i):t.dpDiv[n=="slideDown"?"slideUp":n=="fadeIn"?"fadeOut":"hide"](n?r:null,i),n||i(),this._datepickerShowing=!1;var s=this._get(t,"onClose");s&&s.apply(t.input?t.input[0]:null,[t.input?t.input.val():"",t]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(!$.datepicker._curInst)return;var t=$(e.target),n=$.datepicker._getInst(t[0]);(t[0].id!=$.datepicker._mainDivId&&t.parents("#"+$.datepicker._mainDivId).length==0&&!t.hasClass($.datepicker.markerClassName)&&!t.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||t.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=n)&&$.datepicker._hideDatepicker()},_adjustDate:function(e,t,n){var r=$(e),i=this._getInst(r[0]);if(this._isDisabledDatepicker(r[0]))return;this._adjustInstDate(i,t+(n=="M"?this._get(i,"showCurrentAtPos"):0),n),this._updateDatepicker(i)},_gotoToday:function(e){var t=$(e),n=this._getInst(t[0]);if(this._get(n,"gotoCurrent")&&n.currentDay)n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear;else{var r=new Date;n.selectedDay=r.getDate(),n.drawMonth=n.selectedMonth=r.getMonth(),n.drawYear=n.selectedYear=r.getFullYear()}this._notifyChange(n),this._adjustDate(t)},_selectMonthYear:function(e,t,n){var r=$(e),i=this._getInst(r[0]);i["selected"+(n=="M"?"Month":"Year")]=i["draw"+(n=="M"?"Month":"Year")]=parseInt(t.options[t.selectedIndex].value,10),this._notifyChange(i),this._adjustDate(r)},_selectDay:function(e,t,n,r){var i=$(e);if($(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(i[0]))return;var s=this._getInst(i[0]);s.selectedDay=s.currentDay=$("a",r).html(),s.selectedMonth=s.currentMonth=t,s.selectedYear=s.currentYear=n,this._selectDate(e,this._formatDate(s,s.currentDay,s.currentMonth,s.currentYear))},_clearDate:function(e){var t=$(e),n=this._getInst(t[0]);this._selectDate(t,"")},_selectDate:function(e,t){var n=$(e),r=this._getInst(n[0]);t=t!=null?t:this._formatDate(r),r.input&&r.input.val(t),this._updateAlternate(r);var i=this._get(r,"onSelect");i?i.apply(r.input?r.input[0]:null,[t,r]):r.input&&r.input.trigger("change"),r.inline?this._updateDatepicker(r):(this._hideDatepicker(),this._lastInput=r.input[0],typeof r.input[0]!="object"&&r.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var t=this._get(e,"altField");if(t){var n=this._get(e,"altFormat")||this._get(e,"dateFormat"),r=this._getDate(e),i=this.formatDate(n,r,this._getFormatConfig(e));$(t).each(function(){$(this).val(i)})}},noWeekends:function(e){var t=e.getDay();return[t>0&&t<6,""]},iso8601Week:function(e){var t=new Date(e.getTime());t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1},parseDate:function(e,t,n){if(e==null||t==null)throw"Invalid arguments";t=typeof t=="object"?t.toString():t+"";if(t=="")return null;var r=(n?n.shortYearCutoff:null)||this._defaults.shortYearCutoff;r=typeof r!="string"?r:(new Date).getFullYear()%100+parseInt(r,10);var i=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,s=(n?n.dayNames:null)||this._defaults.dayNames,o=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,u=(n?n.monthNames:null)||this._defaults.monthNames,a=-1,f=-1,l=-1,c=-1,h=!1,p=function(t){var n=y+1<e.length&&e.charAt(y+1)==t;return n&&y++,n},d=function(e){var n=p(e),r=e=="@"?14:e=="!"?20:e=="y"&&n?4:e=="o"?3:2,i=new RegExp("^\\d{1,"+r+"}"),s=t.substring(g).match(i);if(!s)throw"Missing number at position "+g;return g+=s[0].length,parseInt(s[0],10)},v=function(e,n,r){var i=$.map(p(e)?r:n,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)}),s=-1;$.each(i,function(e,n){var r=n[1];if(t.substr(g,r.length).toLowerCase()==r.toLowerCase())return s=n[0],g+=r.length,!1});if(s!=-1)return s+1;throw"Unknown name at position "+g},m=function(){if(t.charAt(g)!=e.charAt(y))throw"Unexpected literal at position "+g;g++},g=0;for(var y=0;y<e.length;y++)if(h)e.charAt(y)=="'"&&!p("'")?h=!1:m();else switch(e.charAt(y)){case"d":l=d("d");break;case"D":v("D",i,s);break;case"o":c=d("o");break;case"m":f=d("m");break;case"M":f=v("M",o,u);break;case"y":a=d("y");break;case"@":var b=new Date(d("@"));a=b.getFullYear(),f=b.getMonth()+1,l=b.getDate();break;case"!":var b=new Date((d("!")-this._ticksTo1970)/1e4);a=b.getFullYear(),f=b.getMonth()+1,l=b.getDate();break;case"'":p("'")?m():h=!0;break;default:m()}if(g<t.length){var w=t.substr(g);if(!/^\s+/.test(w))throw"Extra/unparsed characters found in date: "+w}a==-1?a=(new Date).getFullYear():a<100&&(a+=(new Date).getFullYear()-(new Date).getFullYear()%100+(a<=r?0:-100));if(c>-1){f=1,l=c;do{var E=this._getDaysInMonth(a,f-1);if(l<=E)break;f++,l-=E}while(!0)}var b=this._daylightSavingAdjust(new Date(a,f-1,l));if(b.getFullYear()!=a||b.getMonth()+1!=f||b.getDate()!=l)throw"Invalid date";return b},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(e,t,n){if(!t)return"";var r=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,i=(n?n.dayNames:null)||this._defaults.dayNames,s=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,o=(n?n.monthNames:null)||this._defaults.monthNames,u=function(t){var n=h+1<e.length&&e.charAt(h+1)==t;return n&&h++,n},a=function(e,t,n){var r=""+t;if(u(e))while(r.length<n)r="0"+r;return r},f=function(e,t,n,r){return u(e)?r[t]:n[t]},l="",c=!1;if(t)for(var h=0;h<e.length;h++)if(c)e.charAt(h)=="'"&&!u("'")?c=!1:l+=e.charAt(h);else switch(e.charAt(h)){case"d":l+=a("d",t.getDate(),2);break;case"D":l+=f("D",t.getDay(),r,i);break;case"o":l+=a("o",Math.round(((new Date(t.getFullYear(),t.getMonth(),t.getDate())).getTime()-(new Date(t.getFullYear(),0,0)).getTime())/864e5),3);break;case"m":l+=a("m",t.getMonth()+1,2);break;case"M":l+=f("M",t.getMonth(),s,o);break;case"y":l+=u("y")?t.getFullYear():(t.getYear()%100<10?"0":"")+t.getYear()%100;break;case"@":l+=t.getTime();break;case"!":l+=t.getTime()*1e4+this._ticksTo1970;break;case"'":u("'")?l+="'":c=!0;break;default:l+=e.charAt(h)}return l},_possibleChars:function(e){var t="",n=!1,r=function(t){var n=i+1<e.length&&e.charAt(i+1)==t;return n&&i++,n};for(var i=0;i<e.length;i++)if(n)e.charAt(i)=="'"&&!r("'")?n=!1:t+=e.charAt(i);else switch(e.charAt(i)){case"d":case"m":case"y":case"@":t+="0123456789";break;case"D":case"M":return null;case"'":r("'")?t+="'":n=!0;break;default:t+=e.charAt(i)}return t},_get:function(e,t){return e.settings[t]!==undefined?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()==e.lastVal)return;var n=this._get(e,"dateFormat"),r=e.lastVal=e.input?e.input.val():null,i,s;i=s=this._getDefaultDate(e);var o=this._getFormatConfig(e);try{i=this.parseDate(n,r,o)||s}catch(u){this.log(u),r=t?"":r}e.selectedDay=i.getDate(),e.drawMonth=e.selectedMonth=i.getMonth(),e.drawYear=e.selectedYear=i.getFullYear(),e.currentDay=r?i.getDate():0,e.currentMonth=r?i.getMonth():0,e.currentYear=r?i.getFullYear():0,this._adjustInstDate(e)},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(e,t,n){var r=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},i=function(t){try{return $.datepicker.parseDate($.datepicker._get(e,"dateFormat"),t,$.datepicker._getFormatConfig(e))}catch(n){}var r=(t.toLowerCase().match(/^c/)?$.datepicker._getDate(e):null)||new Date,i=r.getFullYear(),s=r.getMonth(),o=r.getDate(),u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,a=u.exec(t);while(a){switch(a[2]||"d"){case"d":case"D":o+=parseInt(a[1],10);break;case"w":case"W":o+=parseInt(a[1],10)*7;break;case"m":case"M":s+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(i,s));break;case"y":case"Y":i+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(i,s))}a=u.exec(t)}return new Date(i,s,o)},s=t==null||t===""?n:typeof t=="string"?i(t):typeof t=="number"?isNaN(t)?n:r(t):new Date(t.getTime());return s=s&&s.toString()=="Invalid Date"?n:s,s&&(s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)),this._daylightSavingAdjust(s)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,n){var r=!t,i=e.selectedMonth,s=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),(i!=e.selectedMonth||s!=e.selectedYear)&&!n&&this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(r?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&e.input.val()==""?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(e){var t=this._get(e,"stepMonths"),n="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(n,-t,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(n,+t,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(n)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(n,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(n,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(n,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t=new Date;t=this._daylightSavingAdjust(new Date(t.getFullYear(),t.getMonth(),t.getDate()));var n=this._get(e,"isRTL"),r=this._get(e,"showButtonPanel"),i=this._get(e,"hideIfNoPrevNext"),s=this._get(e,"navigationAsDateFormat"),o=this._getNumberOfMonths(e),u=this._get(e,"showCurrentAtPos"),a=this._get(e,"stepMonths"),f=o[0]!=1||o[1]!=1,l=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),c=this._getMinMaxDate(e,"min"),h=this._getMinMaxDate(e,"max"),p=e.drawMonth-u,d=e.drawYear;p<0&&(p+=12,d--);if(h){var v=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth()-o[0]*o[1]+1,h.getDate()));v=c&&v<c?c:v;while(this._daylightSavingAdjust(new Date(d,p,1))>v)p--,p<0&&(p=11,d--)}e.drawMonth=p,e.drawYear=d;var m=this._get(e,"prevText");m=s?this.formatDate(m,this._daylightSavingAdjust(new Date(d,p-a,1)),this._getFormatConfig(e)):m;var g=this._canAdjustMonth(e,-1,d,p)?'<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="'+m+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"e":"w")+'">'+m+"</span></a>":i?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+m+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"e":"w")+'">'+m+"</span></a>",y=this._get(e,"nextText");y=s?this.formatDate(y,this._daylightSavingAdjust(new Date(d,p+a,1)),this._getFormatConfig(e)):y;var b=this._canAdjustMonth(e,1,d,p)?'<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="'+y+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"w":"e")+'">'+y+"</span></a>":i?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+y+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"w":"e")+'">'+y+"</span></a>",w=this._get(e,"currentText"),E=this._get(e,"gotoCurrent")&&e.currentDay?l:t;w=s?this.formatDate(w,E,this._getFormatConfig(e)):w;var S=e.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">'+this._get(e,"closeText")+"</button>",x=r?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(n?S:"")+(this._isInRange(e,E)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">'+w+"</button>":"")+(n?"":S)+"</div>":"",T=parseInt(this._get(e,"firstDay"),10);T=isNaN(T)?0:T;var N=this._get(e,"showWeek"),C=this._get(e,"dayNames"),k=this._get(e,"dayNamesShort"),L=this._get(e,"dayNamesMin"),A=this._get(e,"monthNames"),O=this._get(e,"monthNamesShort"),M=this._get(e,"beforeShowDay"),_=this._get(e,"showOtherMonths"),D=this._get(e,"selectOtherMonths"),P=this._get(e,"calculateWeek")||this.iso8601Week,H=this._getDefaultDate(e),B="";for(var j=0;j<o[0];j++){var F="";this.maxRows=4;for(var I=0;I<o[1];I++){var q=this._daylightSavingAdjust(new Date(d,p,e.selectedDay)),R=" ui-corner-all",U="";if(f){U+='<div class="ui-datepicker-group';if(o[1]>1)switch(I){case 0:U+=" ui-datepicker-group-first",R=" ui-corner-"+(n?"right":"left");break;case o[1]-1:U+=" ui-datepicker-group-last",R=" ui-corner-"+(n?"left":"right");break;default:U+=" ui-datepicker-group-middle",R=""}U+='">'}U+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+R+'">'+(/all|left/.test(R)&&j==0?n?b:g:"")+(/all|right/.test(R)&&j==0?n?g:b:"")+this._generateMonthYearHeader(e,p,d,c,h,j>0||I>0,A,O)+'</div><table class="ui-datepicker-calendar"><thead>'+"<tr>";var z=N?'<th class="ui-datepicker-week-col">'+this._get(e,"weekHeader")+"</th>":"";for(var W=0;W<7;W++){var X=(W+T)%7;z+="<th"+((W+T+6)%7>=5?' class="ui-datepicker-week-end"':"")+">"+'<span title="'+C[X]+'">'+L[X]+"</span></th>"}U+=z+"</tr></thead><tbody>";var V=this._getDaysInMonth(d,p);d==e.selectedYear&&p==e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,V));var J=(this._getFirstDayOfMonth(d,p)-T+7)%7,K=Math.ceil((J+V)/7),Q=f?this.maxRows>K?this.maxRows:K:K;this.maxRows=Q;var G=this._daylightSavingAdjust(new Date(d,p,1-J));for(var Y=0;Y<Q;Y++){U+="<tr>";var Z=N?'<td class="ui-datepicker-week-col">'+this._get(e,"calculateWeek")(G)+"</td>":"";for(var W=0;W<7;W++){var et=M?M.apply(e.input?e.input[0]:null,[G]):[!0,""],tt=G.getMonth()!=p,nt=tt&&!D||!et[0]||c&&G<c||h&&G>h;Z+='<td class="'+((W+T+6)%7>=5?" ui-datepicker-week-end":"")+(tt?" ui-datepicker-other-month":"")+(G.getTime()==q.getTime()&&p==e.selectedMonth&&e._keyEvent||H.getTime()==G.getTime()&&H.getTime()==q.getTime()?" "+this._dayOverClass:"")+(nt?" "+this._unselectableClass+" ui-state-disabled":"")+(tt&&!_?"":" "+et[1]+(G.getTime()==l.getTime()?" "+this._currentClass:"")+(G.getTime()==t.getTime()?" ui-datepicker-today":""))+'"'+((!tt||_)&&et[2]?' title="'+et[2]+'"':"")+(nt?"":' data-handler="selectDay" data-event="click" data-month="'+G.getMonth()+'" data-year="'+G.getFullYear()+'"')+">"+(tt&&!_?" ":nt?'<span class="ui-state-default">'+G.getDate()+"</span>":'<a class="ui-state-default'+(G.getTime()==t.getTime()?" ui-state-highlight":"")+(G.getTime()==l.getTime()?" ui-state-active":"")+(tt?" ui-priority-secondary":"")+'" href="#">'+G.getDate()+"</a>")+"</td>",G.setDate(G.getDate()+1),G=this._daylightSavingAdjust(G)}U+=Z+"</tr>"}p++,p>11&&(p=0,d++),U+="</tbody></table>"+(f?"</div>"+(o[0]>0&&I==o[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),F+=U}B+=F}return B+=x+($.ui.ie6&&!e.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='<div class="ui-datepicker-title">',h="";if(s||!a)h+='<span class="ui-datepicker-month">'+o[t]+"</span>";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';for(var v=0;v<12;v++)(!p||v>=r.getMonth())&&(!d||v<=i.getMonth())&&(h+='<option value="'+v+'"'+(v==t?' selected="selected"':"")+">"+u[v]+"</option>");h+="</select>"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+='<span class="ui-datepicker-year">'+n+"</span>";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';for(;b<=w;b++)e.yearshtml+='<option value="'+b+'"'+(b==n?' selected="selected"':"")+">"+b+"</option>";e.yearshtml+="</select>",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="</div>",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&t<n?n:t;return i=r&&i>r?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s,o,u,a,f;s=(this.uiDialog=e("<div>")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("<div>")).addClass("ui-dialog-titlebar  ui-widget-header  ui-corner-all  ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("<a href='#'></a>").addClass("ui-dialog-titlebar-close  ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("<span>")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("<span>").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("<div>")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("<div>")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("<button></button>",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||" "))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()<e.ui.dialog.overlay.maxZ)return!1})},1),e(window).bind("resize.dialog-overlay",e.ui.dialog.overlay.resize));var n=this.oldInstances.pop()||e("<div>").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t<n?e(window).height()+"px":t+"px"):e(document).height()+"px"},width:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),n=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),t<n?e(window).width()+"px":t+"px"):e(document).width()+"px"},resize:function(){var t=e([]);e.each(e.ui.dialog.overlay.instances,function(){t=t.add(this)}),t.css({width:0,height:0}).css({width:e.ui.dialog.overlay.width(),height:e.ui.dialog.overlay.height()})}}),e.extend(e.ui.dialog.overlay.prototype,{destroy:function(){e.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);(function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="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(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.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-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}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,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.left<u[0]&&(s=u[0]+this.offset.click.left),t.pageY-this.offset.click.top<u[1]&&(o=u[1]+this.offset.click.top),t.pageX-this.offset.click.left>u[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.top<u[1]||f-this.offset.click.top>u[3]?f-this.offset.click.top<u[1]?f+n.grid[1]:f-n.grid[1]:f:f;var l=n.grid[0]?this.originalPageX+Math.round((s-this.originalPageX)/n.grid[0])*n.grid[0]:this.originalPageX;s=u?l-this.offset.click.left<u[0]||l-this.offset.click.left>u[2]?l-this.offset.click.left<u[0]?l+n.grid[0]:l-n.grid[0]:l:l}}return{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():i?0:r.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:r.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r]),t=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(e){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n){var r=e(this).data("draggable"),i=r.options,s=e.extend({},n,{item:r.element});r.sortables=[],e(i.connectToSortable).each(function(){var n=e.data(this,"sortable");n&&!n.options.disabled&&(r.sortables.push({instance:n,shouldRevert:n.options.revert}),n.refreshPositions(),n._trigger("activate",t,s))})},stop:function(t,n){var r=e(this).data("draggable"),i=e.extend({},n,{item:r.element});e.each(r.sortables,function(){this.instance.isOver?(this.instance.isOver=0,r.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,r.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,i))})},drag:function(t,n){var r=e(this).data("draggable"),i=this,s=function(t){var n=this.offset.click.top,r=this.offset.click.left,i=this.positionAbs.top,s=this.positionAbs.left,o=t.height,u=t.width,a=t.top,f=t.left;return e.ui.isOver(i+n,s+r,a,f,o,u)};e.each(r.sortables,function(s){var o=!1,u=this;this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(o=!0,e.each(r.sortables,function(){return this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this!=u&&this.instance._intersectsWith(this.instance.containerCache)&&e.ui.contains(u.instance.element[0],this.instance.element[0])&&(o=!1),o})),o?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(i).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return n.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=r.offset.click.top,this.instance.offset.click.left=r.offset.click.left,this.instance.offset.parent.left-=r.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=r.offset.parent.top-this.instance.offset.parent.top,r._trigger("toSortable",t),r.dropped=this.instance.element,r.currentItem=r.element,this.instance.fromOutside=r),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),r._trigger("fromSortable",t),r.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n){var r=e("body"),i=e(this).data("draggable").options;r.css("cursor")&&(i._cursor=r.css("cursor")),r.css("cursor",i.cursor)},stop:function(t,n){var r=e(this).data("draggable").options;r._cursor&&e("body").css("cursor",r._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n){var r=e(n.helper),i=e(this).data("draggable").options;r.css("opacity")&&(i._opacity=r.css("opacity")),r.css("opacity",i.opacity)},stop:function(t,n){var r=e(this).data("draggable").options;r._opacity&&e(n.helper).css("opacity",r._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(t,n){var r=e(this).data("draggable");r.scrollParent[0]!=document&&r.scrollParent[0].tagName!="HTML"&&(r.overflowOffset=r.scrollParent.offset())},drag:function(t,n){var r=e(this).data("draggable"),i=r.options,s=!1;if(r.scrollParent[0]!=document&&r.scrollParent[0].tagName!="HTML"){if(!i.axis||i.axis!="x")r.overflowOffset.top+r.scrollParent[0].offsetHeight-t.pageY<i.scrollSensitivity?r.scrollParent[0].scrollTop=s=r.scrollParent[0].scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(r.scrollParent[0].scrollTop=s=r.scrollParent[0].scrollTop-i.scrollSpeed);if(!i.axis||i.axis!="y")r.overflowOffset.left+r.scrollParent[0].offsetWidth-t.pageX<i.scrollSensitivity?r.scrollParent[0].scrollLeft=s=r.scrollParent[0].scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(r.scrollParent[0].scrollLeft=s=r.scrollParent[0].scrollLeft-i.scrollSpeed)}else{if(!i.axis||i.axis!="x")t.pageY-e(document).scrollTop()<i.scrollSensitivity?s=e(document).scrollTop(e(document).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<i.scrollSensitivity&&(s=e(document).scrollTop(e(document).scrollTop()+i.scrollSpeed));if(!i.axis||i.axis!="y")t.pageX-e(document).scrollLeft()<i.scrollSensitivity?s=e(document).scrollLeft(e(document).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<i.scrollSensitivity&&(s=e(document).scrollLeft(e(document).scrollLeft()+i.scrollSpeed))}s!==!1&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n){var r=e(this).data("draggable"),i=r.options;r.snapElements=[],e(i.snap.constructor!=String?i.snap.items||":data(draggable)":i.snap).each(function(){var t=e(this),n=t.offset();this!=r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n){var r=e(this).data("draggable"),i=r.options,s=i.snapTolerance,o=n.offset.left,u=o+r.helperProportions.width,a=n.offset.top,f=a+r.helperProportions.height;for(var l=r.snapElements.length-1;l>=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s<o&&o<h+s&&p-s<a&&a<d+s||c-s<o&&o<h+s&&p-s<f&&f<d+s||c-s<u&&u<h+s&&p-s<a&&a<d+s||c-s<u&&u<h+s&&p-s<f&&f<d+s)){r.snapElements[l].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[l].item})),r.snapElements[l].snapping=!1;continue}if(i.snapMode!="inner"){var v=Math.abs(p-f)<=s,m=Math.abs(d-a)<=s,g=Math.abs(c-u)<=s,y=Math.abs(h-o)<=s;v&&(n.position.top=r._convertPositionTo("relative",{top:p-r.helperProportions.height,left:0}).top-r.margins.top),m&&(n.position.top=r._convertPositionTo("relative",{top:d,left:0}).top-r.margins.top),g&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c-r.helperProportions.width}).left-r.margins.left),y&&(n.position.left=r._convertPositionTo("relative",{top:0,left:h}).left-r.margins.left)}var b=v||m||g||y;if(i.snapMode!="outer"){var v=Math.abs(p-a)<=s,m=Math.abs(d-f)<=s,g=Math.abs(c-o)<=s,y=Math.abs(h-u)<=s;v&&(n.position.top=r._convertPositionTo("relative",{top:p,left:0}).top-r.margins.top),m&&(n.position.top=r._convertPositionTo("relative",{top:d-r.helperProportions.height,left:0}).top-r.margins.top),g&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c}).left-r.margins.left),y&&(n.position.left=r._convertPositionTo("relative",{top:0,left:h-r.helperProportions.width}).left-r.margins.left)}!r.snapElements[l].snapping&&(v||m||g||y||b)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[l].item})),r.snapElements[l].snapping=v||m||g||y||b}}}),e.ui.plugin.add("draggable","stack",{start:function(t,n){var r=e(this).data("draggable").options,i=e.makeArray(e(r.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!i.length)return;var s=parseInt(i[0].style.zIndex)||0;e(i).each(function(e){this.style.zIndex=s+e}),this[0].style.zIndex=s+i.length}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n){var r=e(n.helper),i=e(this).data("draggable").options;r.css("zIndex")&&(i._zIndex=r.css("zIndex")),r.css("zIndex",i.zIndex)},stop:function(t,n){var r=e(this).data("draggable").options;r._zIndex&&e(n.helper).css("zIndex",r._zIndex)}})})(jQuery);(function(e,t){e.widget("ui.droppable",{version:"1.9.2",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var t=this.options,n=t.accept;this.isover=0,this.isout=1,this.accept=e.isFunction(n)?n:function(e){return e.is(n)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},e.ui.ddmanager.droppables[t.scope]=e.ui.ddmanager.droppables[t.scope]||[],e.ui.ddmanager.droppables[t.scope].push(this),t.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];for(var n=0;n<t.length;n++)t[n]==this&&t.splice(n,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,n){t=="accept"&&(this.accept=e.isFunction(n)?n:function(e){return e.is(n)}),e.Widget.prototype._setOption.apply(this,arguments)},_activate:function(t){var n=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),n&&this._trigger("activate",t,this.ui(n))},_deactivate:function(t){var n=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),n&&this._trigger("deactivate",t,this.ui(n))},_over:function(t){var n=e.ui.ddmanager.current;if(!n||(n.currentItem||n.element)[0]==this.element[0])return;this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(n)))},_out:function(t){var n=e.ui.ddmanager.current;if(!n||(n.currentItem||n.element)[0]==this.element[0])return;this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(n)))},_drop:function(t,n){var r=n||e.ui.ddmanager.current;if(!r||(r.currentItem||r.element)[0]==this.element[0])return!1;var i=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var t=e.data(this,"droppable");if(t.options.greedy&&!t.options.disabled&&t.options.scope==r.options.scope&&t.accept.call(t.element[0],r.currentItem||r.element)&&e.ui.intersect(r,e.extend(t,{offset:t.element.offset()}),t.options.tolerance))return i=!0,!1}),i?!1:this.accept.call(this.element[0],r.currentItem||r.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(r)),this.element):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(t,n,r){if(!n.offset)return!1;var i=(t.positionAbs||t.position.absolute).left,s=i+t.helperProportions.width,o=(t.positionAbs||t.position.absolute).top,u=o+t.helperProportions.height,a=n.offset.left,f=a+n.proportions.width,l=n.offset.top,c=l+n.proportions.height;switch(r){case"fit":return a<=i&&s<=f&&l<=o&&u<=c;case"intersect":return a<i+t.helperProportions.width/2&&s-t.helperProportions.width/2<f&&l<o+t.helperProportions.height/2&&u-t.helperProportions.height/2<c;case"pointer":var h=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,p=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,d=e.ui.isOver(p,h,l,a,n.proportions.height,n.proportions.width);return d;case"touch":return(o>=l&&o<=c||u>=l&&u<=c||o<l&&u>c)&&(i>=a&&i<=f||s>=a&&s<=f||i<a&&s>f);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;o<r.length;o++){if(r[o].options.disabled||t&&!r[o].accept.call(r[o].element[0],t.currentItem||t.element))continue;for(var u=0;u<s.length;u++)if(s[u]==r[o].element[0]){r[o].proportions.height=0;continue e}r[o].visible=r[o].element.css("display")!="none";if(!r[o].visible)continue;i=="mousedown"&&r[o]._activate.call(r[o],n),r[o].offset=r[o].element.offset(),r[o].proportions={width:r[o].element[0].offsetWidth,height:r[o].element[0].offsetHeight}}},drop:function(t,n){var r=!1;return e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(r=this._drop.call(this,n)||r),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,n))}),r},dragStart:function(t,n){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)})},drag:function(t,n){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,n),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var r=e.ui.intersect(t,this,this.options.tolerance),i=!r&&this.isover==1?"isout":r&&this.isover==0?"isover":null;if(!i)return;var s;if(this.options.greedy){var o=this.options.scope,u=this.element.parents(":data(droppable)").filter(function(){return e.data(this,"droppable").options.scope===o});u.length&&(s=e.data(u[0],"droppable"),s.greedyChild=i=="isover"?1:0)}s&&i=="isover"&&(s.isover=0,s.isout=1,s._out.call(s,n)),this[i]=1,this[i=="isout"?"isover":"isout"]=0,this[i=="isover"?"_over":"_out"].call(this,n),s&&i=="isout"&&(s.isout=0,s.isover=1,s._over.call(s,n))})},dragStop:function(t,n){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)}}})(jQuery);jQuery.effects||function(e,t){var n=e.uiBackCompat!==!1,r="ui-effects-";e.effects={effect:{}},function(t,n){function p(e,t,n){var r=a[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max<e?r.max:e)}function d(e){var n=o(),r=n._rgba=[];return e=e.toLowerCase(),h(s,function(t,i){var s,o=i.re.exec(e),a=o&&i.parse(o),f=i.space||"rgba";if(a)return s=n[f](a),n[u[f].cache]=s[u[f].cache],r=n._rgba=s._rgba,!1}),r.length?(r.join()==="0,0,0,0"&&t.extend(r,c.transparent),n):c[e]}function v(e,t,n){return n=(n+1)%1,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}var r="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "),i=/^([\-+])=\s*(\d+\.?\d*)/,s=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1]*2.55,e[2]*2.55,e[3]*2.55,e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],o=t.Color=function(e,n,r,i){return new t.Color.fn.parse(e,n,r,i)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},a={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},f=o.support={},l=t("<p>")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n<t.length;n++)t[n]!==null&&e.data(r+t[n],e[0].style[t[n]])},restore:function(e,n){var i,s;for(s=0;s<n.length;s++)n[s]!==null&&(i=e.data(r+n[s]),i===t&&(i=""),e.css(n[s],i))},setMode:function(e,t){return t==="toggle"&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var n,r;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":r=0;break;case"center":r=.5;break;case"right":r=1;break;default:r=e[1]/t.width}return{x:r,y:n}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var n={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},r=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m<l;m++)g={},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p).animate(y,h,p),f=o?f*2:f/2;o&&(g={opacity:0},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p)),r.queue(function(){o&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),w>1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h<r;h++){v=a.top+h*l,g=h-(r-1)/2;for(p=0;p<i;p++)d=a.left+p*f,m=p-(i-1)/2,s.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p<a;p++)r.animate({opacity:l},f,t.easing),l=1-l;r.animate({opacity:l},f,t.easing),r.queue(function(){o&&r.hide(),n()}),h>1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m<a;m++)r.animate(d,l,t.easing).animate(v,l,t.easing);r.animate(d,l,t.easing).animate(p,l/2,t.easing).queue(function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),y>1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);(function(e,t){var n=!1;e.widget("ui.menu",{version:"1.9.2",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var n={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,n)}})})(jQuery);(function(e,t){e.widget("ui.progressbar",{version:"1.9.2",options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){e.widget("ui.resizable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var t=this,n=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,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=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=n.handles||(e(".ui-resizable-handle",this.element).length?{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",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i<r.length;i++){var s=e.trim(r[i]),o="ui-resizable-"+s,u=e('<div class="ui-resizable-handle '+o+'"></div>');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")}).insertAfter(n),n.remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.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(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),i<u.maxWidth&&(u.maxWidth=i),o<u.maxHeight&&(u.maxHeight=o);this._vBoundaries=u},_updateCache:function(e){var t=this.options;this.offset=this.helper.offset(),r(e.left)&&(this.position.left=e.left),r(e.top)&&(this.position.top=e.top),r(e.height)&&(this.size.height=e.height),r(e.width)&&(this.size.width=e.width)},_updateRatio:function(e,t){var n=this.options,i=this.position,s=this.size,o=this.axis;return r(e.height)?e.width=e.height*this.aspectRatio:r(e.width)&&(e.height=e.width/this.aspectRatio),o=="sw"&&(e.left=i.left+(s.width-e.width),e.top=null),o=="nw"&&(e.top=i.top+(s.height-e.height),e.left=i.left+(s.width-e.width)),e},_respectSize:function(e,t){var n=this.helper,i=this._vBoundaries,s=this._aspectRatio||t.shiftKey,o=this.axis,u=r(e.width)&&i.maxWidth&&i.maxWidth<e.width,a=r(e.height)&&i.maxHeight&&i.maxHeight<e.height,f=r(e.width)&&i.minWidth&&i.minWidth>e.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r<this._proportionallyResizeElements.length;r++){var i=this._proportionallyResizeElements[r];if(!this.borderDif){var s=[i.css("borderTopWidth"),i.css("borderRightWidth"),i.css("borderBottomWidth"),i.css("borderLeftWidth")],o=[i.css("paddingTop"),i.css("paddingRight"),i.css("paddingBottom"),i.css("paddingLeft")];this.borderDif=e.map(s,function(e,t){var n=parseInt(e,10)||0,r=parseInt(o[t],10)||0;return n+r})}i.css({height:n.height()-this.borderDif[0]-this.borderDif[2]||0,width:n.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var r=e.ui.ie6?1:0,i=e.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+i,height:this.element.outerHeight()+i,position:"absolute",left:this.elementOffset.left-r+"px",top:this.elementOffset.top-r+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,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}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.right<i||a.top>u||a.bottom<s):r.tolerance=="fit"&&(f=a.left>i&&a.right<o&&a.top>s&&a.bottom<u),f?(a.selected&&(a.$element.removeClass("ui-selected"),a.selected=!1),a.unselecting&&(a.$element.removeClass("ui-unselecting"),a.unselecting=!1),a.selecting||(a.$element.addClass("ui-selecting"),a.selecting=!0,n._trigger("selecting",t,{selecting:a.element}))):(a.selecting&&((t.metaKey||t.ctrlKey)&&a.startselected?(a.$element.removeClass("ui-selecting"),a.selecting=!1,a.$element.addClass("ui-selected"),a.selected=!0):(a.$element.removeClass("ui-selecting"),a.selecting=!1,a.startselected&&(a.$element.addClass("ui-unselecting"),a.unselecting=!0),n._trigger("unselecting",t,{unselecting:a.element}))),a.selected&&!t.metaKey&&!t.ctrlKey&&!a.startselected&&(a.$element.removeClass("ui-selected"),a.selected=!1,a.$element.addClass("ui-unselecting"),a.unselecting=!0,n._trigger("unselecting",t,{unselecting:a.element})))}),!1},_mouseStop:function(t){var n=this;this.dragged=!1;var r=this.options;return e(".ui-unselecting",this.element[0]).each(function(){var r=e.data(this,"selectable-item");r.$element.removeClass("ui-unselecting"),r.unselecting=!1,r.startselected=!1,n._trigger("unselected",t,{unselected:r.element})}),e(".ui-selecting",this.element[0]).each(function(){var r=e.data(this,"selectable-item");r.$element.removeClass("ui-selecting").addClass("ui-selected"),r.selecting=!1,r.selected=!0,r.startselected=!0,n._trigger("selected",t,{selected:r.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery);(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var t,r,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",u=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(i.disabled?" ui-slider-disabled ui-disabled":"")),this.range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[this._valueMin(),this._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])),this.range=e("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;t<r;t++)u.push(o);this.handles=s.add(e(u.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(e){e.preventDefault()}).mouseenter(function(){i.disabled||e(this).addClass("ui-state-hover")}).mouseleave(function(){e(this).removeClass("ui-state-hover")}).focus(function(){i.disabled?e(this).blur():(e(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),e(this).addClass("ui-state-focus"))}).blur(function(){e(this).removeClass("ui-state-focus")}),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)}),this._on(this.handles,{keydown:function(t){var r,i,s,o,u=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:t.preventDefault();if(!this._keySliding){this._keySliding=!0,e(t.target).addClass("ui-state-active"),r=this._start(t,u);if(r===!1)return}}o=this.options.step,this.options.values&&this.options.values.length?i=s=this.values(u):i=s=this.value();switch(t.keyCode){case e.ui.keyCode.HOME:s=this._valueMin();break;case e.ui.keyCode.END:s=this._valueMax();break;case e.ui.keyCode.PAGE_UP:s=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.PAGE_DOWN:s=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(i===this._valueMax())return;s=this._trimAlignValue(i+o);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(i===this._valueMin())return;s=this._trimAlignValue(i-o)}this._slide(t,u,s)},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),e(t.target).removeClass("ui-state-active"))}}),this._refreshValue(),this._animateOff=!1},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var n,r,i,s,o,u,a,f,l=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:t.pageX,y:t.pageY},r=this._normValueFromMouse(n),i=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var n=Math.abs(r-l.values(t));i>n&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n<r)&&(n=r),n!==this.values(t)&&(i=this.values(),i[t]=n,s=this._trigger("slide",e,{handle:this.handles[t],value:n,values:i}),r=this.values(t?0:1),s!==!1&&this.values(t,n,!0))):n!==this.value()&&(s=this._trigger("slide",e,{handle:this.handles[t],value:n}),s!==!1&&this.value(n))},_stop:function(e,t){var n={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("stop",e,n)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var n={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("change",e,n)}},value:function(e){if(arguments.length){this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(t,n){var r,i,s;if(arguments.length>1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s<r.length;s+=1)r[s]=this._trimAlignValue(i[s]),this._change(null,s);this._refreshValue()},_setOption:function(t,n){var r,i=0;e.isArray(this.options.values)&&(i=this.options.values.length),e.Widget.prototype._setOption.apply(this,arguments);switch(t){case"disabled":n?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.prop("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.prop("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(r=0;r<i;r+=1)this._change(null,r);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e),e},_values:function(e){var t,n,r;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t),t;n=this.options.values.slice();for(r=0;r<n.length;r+=1)n[r]=this._trimAlignValue(n[r]);return n},_trimAlignValue:function(e){if(e<=this._valueMin())return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e,t){e.widget("ui.sortable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<n.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+n.scrollSpeed:t.pageY-this.overflowOffset.top<n.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-n.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<n.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+n.scrollSpeed:t.pageX-this.overflowOffset.left<n.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-n.scrollSpeed)):(t.pageY-e(document).scrollTop()<n.scrollSensitivity?r=e(document).scrollTop(e(document).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<n.scrollSensitivity&&(r=e(document).scrollTop(e(document).scrollTop()+n.scrollSpeed)),t.pageX-e(document).scrollLeft()<n.scrollSensitivity?r=e(document).scrollLeft(e(document).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<n.scrollSensitivity&&(r=e(document).scrollLeft(e(document).scrollLeft()+n.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var i=this.items.length-1;i>=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+f<a&&t+l>s&&t+l<o;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?c:s<t+this.helperProportions.width/2&&n-this.helperProportions.width/2<o&&u<r+this.helperProportions.height/2&&i-this.helperProportions.height/2<a},_intersectsWithPointer:function(t){var n=this.options.axis==="x"||e.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),r=this.options.axis==="y"||e.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),i=n&&r,s=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return i?this.floating?o&&o=="right"||s=="down"?2:1:s&&(s=="down"?2:1):!1},_intersectsWithSides:function(t){var n=e.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),r=e.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),i=this._getDragVerticalDirection(),s=this._getDragHorizontalDirection();return this.floating&&s?s=="right"&&r||s=="left"&&!r:i&&(i=="down"&&n||i=="up"&&!n)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return e!=0&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n<t.length;n++)if(t[n]==e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var n=this.items,r=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],i=this._connectWith();if(i&&this.ready)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u<c;u++){var h=e(l[u]);h.data(this.widgetName+"-item",f),n.push({item:h,instance:f,width:0,height:0,left:0,top:0})}}},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var n=this.items.length-1;n>=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else{var s=1e4,o=null,u=this.containers[r].floating?"left":"top",a=this.containers[r].floating?"width":"height",f=this.positionAbs[u]+this.offset.click[u];for(var l=this.items.length-1;l>=0;l--){if(!e.contains(this.containers[r].element[0],this.items[l].item[0]))continue;if(this.items[l].item[0]==this.currentItem[0])continue;var c=this.items[l].item.offset()[u],h=!1;Math.abs(c-f)>Math.abs(c+this.items[l][a]-f)&&(h=!0,c+=this.items[l][a]),Math.abs(c-f)<s&&(s=Math.abs(c-f),o=this.items[l],this.direction=h?"up":"down")}if(!o&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[r],o?this._rearrange(t,o,null,!0):this._rearrange(t,null,this.containers[r].element,!0),this._trigger("change",t,this._uiHash()),this.containers[r]._trigger("change",t,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):n.helper=="clone"?this.currentItem.clone():this.currentItem;return r.parents("body").length||e(n.appendTo!="parent"?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(r[0].style.width==""||n.forceHelperSize)&&r.width(this.currentItem.width()),(r[0].style.height==""||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)){var n=e(t.containment)[0],r=e(t.containment).offset(),i=e(n).css("overflow")!="hidden";this.containment=[r.left+(parseInt(e(n).css("borderLeftWidth"),10)||0)+(parseInt(e(n).css("paddingLeft"),10)||0)-this.margins.left,r.top+(parseInt(e(n).css("borderTopWidth"),10)||0)+(parseInt(e(n).css("paddingTop"),10)||0)-this.margins.top,r.left+(i?Math.max(n.scrollWidth,n.offsetWidth):n.offsetWidth)-(parseInt(e(n).css("borderLeftWidth"),10)||0)-(parseInt(e(n).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,r.top+(i?Math.max(n.scrollHeight,n.offsetHeight):n.offsetHeight)-(parseInt(e(n).css("borderTopWidth"),10)||0)-(parseInt(e(n).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var s=t.pageX,o=t.pageY;if(this.originalPosition){this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(s=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.top<this.containment[1]||u-this.offset.click.top>this.containment[3]?u-this.offset.click.top<this.containment[1]?u+n.grid[1]:u-n.grid[1]:u:u;var a=this.originalPageX+Math.round((s-this.originalPageX)/n.grid[0])*n.grid[0];s=this.containment?a-this.offset.click.left<this.containment[0]||a-this.offset.click.left>this.containment[2]?a-this.offset.click.left<this.containment[0]?a+n.grid[0]:a-n.grid[0]:a:a}}return{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():i?0:r.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:r.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay(function(){i==this.counter&&this.refreshPositions(!r)})},_clear:function(t,n){this.reverting=!1;var r=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var i in this._storedCSS)if(this._storedCSS[i]=="auto"||this._storedCSS[i]=="static")this._storedCSS[i]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!n&&r.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!n&&r.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(n||(r.push(function(e){this._trigger("remove",e,this._uiHash())}),r.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer))));for(var i=this.containers.length-1;i>=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}n||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!n){for(var i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var n=t||this;return{helper:n.helper,placeholder:n.placeholder||e([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:t?t.element:null}}})})(jQuery);(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.9.2",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>▲</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>▼</span>"+"</a>"},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e<r.min?r.min:e},_stop:function(e){if(!this.spinning)return;clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e)},_setOption:function(e,t){if(e==="culture"||e==="numberFormat"){var n=this._parse(this.element.val());this.options[e]=t,this.element.val(this._format(n));return}(e==="max"||e==="min"||e==="step")&&typeof t=="string"&&(t=this._parse(t)),this._super(e,t),e==="disabled"&&(t?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:t(function(e){this._super(e),this._value(this.element.val())}),_parse:function(e){return typeof e=="string"&&e!==""&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),e===""||isNaN(e)?null:e},_format:function(e){return e===""?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(e,t){var n;e!==""&&(n=this._parse(e),n!==null&&(t||(n=this._adjustValue(n)),e=this._format(n))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:t(function(e){this._stepUp(e)}),_stepUp:function(e){this._spin((e||1)*this.options.step)},stepDown:t(function(e){this._stepDown(e)}),_stepDown:function(e){this._spin((e||1)*-this.options.step)},pageUp:t(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:t(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){if(!arguments.length)return this._parse(this.element.val());t(this._value).call(this,e)},widget:function(){return this.uiSpinner}})})(jQuery);(function(e,t){function i(){return++n}function s(e){return e.hash.length>1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"<em>Loading…</em>"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1<this.anchors.length?1:-1)),n.disabled=e.map(e.grep(n.disabled,function(e){return e!==t}),function(e){return e>=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"<div></div>"},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("<div>").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery);
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/jquery/jquery.js b/framework/Web/Javascripts/source/jquery/jquery.js new file mode 100755 index 00000000..8c24ffc6 --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/jquery.js @@ -0,0 +1,9472 @@ +/*! + * jQuery JavaScript Library v1.8.3 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: Tue Nov 13 2012 08:20:33 GMT-0500 (Eastern Standard Time) + */ +(function( window, undefined ) { +var +	// A central reference to the root jQuery(document) +	rootjQuery, + +	// The deferred used on DOM ready +	readyList, + +	// Use the correct document accordingly with window argument (sandbox) +	document = window.document, +	location = window.location, +	navigator = window.navigator, + +	// Map over jQuery in case of overwrite +	_jQuery = window.jQuery, + +	// Map over the $ in case of overwrite +	_$ = window.$, + +	// Save a reference to some core methods +	core_push = Array.prototype.push, +	core_slice = Array.prototype.slice, +	core_indexOf = Array.prototype.indexOf, +	core_toString = Object.prototype.toString, +	core_hasOwn = Object.prototype.hasOwnProperty, +	core_trim = String.prototype.trim, + +	// Define a local copy of jQuery +	jQuery = function( selector, context ) { +		// The jQuery object is actually just the init constructor 'enhanced' +		return new jQuery.fn.init( selector, context, rootjQuery ); +	}, + +	// Used for matching numbers +	core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, + +	// Used for detecting and trimming whitespace +	core_rnotwhite = /\S/, +	core_rspace = /\s+/, + +	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) +	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + +	// A simple way to check for HTML strings +	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521) +	rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + +	// Match a standalone tag +	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + +	// JSON RegExp +	rvalidchars = /^[\],:{}\s]*$/, +	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, +	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, +	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, + +	// Matches dashed string for camelizing +	rmsPrefix = /^-ms-/, +	rdashAlpha = /-([\da-z])/gi, + +	// Used by jQuery.camelCase as callback to replace() +	fcamelCase = function( all, letter ) { +		return ( letter + "" ).toUpperCase(); +	}, + +	// The ready event handler and self cleanup method +	DOMContentLoaded = function() { +		if ( document.addEventListener ) { +			document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); +			jQuery.ready(); +		} else if ( document.readyState === "complete" ) { +			// we're here because readyState === "complete" in oldIE +			// which is good enough for us to call the dom ready! +			document.detachEvent( "onreadystatechange", DOMContentLoaded ); +			jQuery.ready(); +		} +	}, + +	// [[Class]] -> type pairs +	class2type = {}; + +jQuery.fn = jQuery.prototype = { +	constructor: jQuery, +	init: function( selector, context, rootjQuery ) { +		var match, elem, ret, doc; + +		// Handle $(""), $(null), $(undefined), $(false) +		if ( !selector ) { +			return this; +		} + +		// Handle $(DOMElement) +		if ( selector.nodeType ) { +			this.context = this[0] = selector; +			this.length = 1; +			return this; +		} + +		// Handle HTML strings +		if ( typeof selector === "string" ) { +			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { +				// Assume that strings that start and end with <> are HTML and skip the regex check +				match = [ null, selector, null ]; + +			} else { +				match = rquickExpr.exec( selector ); +			} + +			// Match html or make sure no context is specified for #id +			if ( match && (match[1] || !context) ) { + +				// HANDLE: $(html) -> $(array) +				if ( match[1] ) { +					context = context instanceof jQuery ? context[0] : context; +					doc = ( context && context.nodeType ? context.ownerDocument || context : document ); + +					// scripts is true for back-compat +					selector = jQuery.parseHTML( match[1], doc, true ); +					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { +						this.attr.call( selector, context, true ); +					} + +					return jQuery.merge( this, selector ); + +				// HANDLE: $(#id) +				} else { +					elem = document.getElementById( match[2] ); + +					// Check parentNode to catch when Blackberry 4.6 returns +					// nodes that are no longer in the document #6963 +					if ( elem && elem.parentNode ) { +						// Handle the case where IE and Opera return items +						// by name instead of ID +						if ( elem.id !== match[2] ) { +							return rootjQuery.find( selector ); +						} + +						// Otherwise, we inject the element directly into the jQuery object +						this.length = 1; +						this[0] = elem; +					} + +					this.context = document; +					this.selector = selector; +					return this; +				} + +			// HANDLE: $(expr, $(...)) +			} else if ( !context || context.jquery ) { +				return ( context || rootjQuery ).find( selector ); + +			// HANDLE: $(expr, context) +			// (which is just equivalent to: $(context).find(expr) +			} else { +				return this.constructor( context ).find( selector ); +			} + +		// HANDLE: $(function) +		// Shortcut for document ready +		} else if ( jQuery.isFunction( selector ) ) { +			return rootjQuery.ready( selector ); +		} + +		if ( selector.selector !== undefined ) { +			this.selector = selector.selector; +			this.context = selector.context; +		} + +		return jQuery.makeArray( selector, this ); +	}, + +	// Start with an empty selector +	selector: "", + +	// The current version of jQuery being used +	jquery: "1.8.3", + +	// The default length of a jQuery object is 0 +	length: 0, + +	// The number of elements contained in the matched element set +	size: function() { +		return this.length; +	}, + +	toArray: function() { +		return core_slice.call( this ); +	}, + +	// Get the Nth element in the matched element set OR +	// Get the whole matched element set as a clean array +	get: function( num ) { +		return num == null ? + +			// Return a 'clean' array +			this.toArray() : + +			// Return just the object +			( num < 0 ? this[ this.length + num ] : this[ num ] ); +	}, + +	// Take an array of elements and push it onto the stack +	// (returning the new matched element set) +	pushStack: function( elems, name, selector ) { + +		// Build a new jQuery matched element set +		var ret = jQuery.merge( this.constructor(), elems ); + +		// Add the old object onto the stack (as a reference) +		ret.prevObject = this; + +		ret.context = this.context; + +		if ( name === "find" ) { +			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; +		} else if ( name ) { +			ret.selector = this.selector + "." + name + "(" + selector + ")"; +		} + +		// Return the newly-formed element set +		return ret; +	}, + +	// Execute a callback for every element in the matched set. +	// (You can seed the arguments with an array of args, but this is +	// only used internally.) +	each: function( callback, args ) { +		return jQuery.each( this, callback, args ); +	}, + +	ready: function( fn ) { +		// Add the callback +		jQuery.ready.promise().done( fn ); + +		return this; +	}, + +	eq: function( i ) { +		i = +i; +		return i === -1 ? +			this.slice( i ) : +			this.slice( i, i + 1 ); +	}, + +	first: function() { +		return this.eq( 0 ); +	}, + +	last: function() { +		return this.eq( -1 ); +	}, + +	slice: function() { +		return this.pushStack( core_slice.apply( this, arguments ), +			"slice", core_slice.call(arguments).join(",") ); +	}, + +	map: function( callback ) { +		return this.pushStack( jQuery.map(this, function( elem, i ) { +			return callback.call( elem, i, elem ); +		})); +	}, + +	end: function() { +		return this.prevObject || this.constructor(null); +	}, + +	// For internal use only. +	// Behaves like an Array's method, not like a jQuery method. +	push: core_push, +	sort: [].sort, +	splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { +	var options, name, src, copy, copyIsArray, clone, +		target = arguments[0] || {}, +		i = 1, +		length = arguments.length, +		deep = false; + +	// Handle a deep copy situation +	if ( typeof target === "boolean" ) { +		deep = target; +		target = arguments[1] || {}; +		// skip the boolean and the target +		i = 2; +	} + +	// Handle case when target is a string or something (possible in deep copy) +	if ( typeof target !== "object" && !jQuery.isFunction(target) ) { +		target = {}; +	} + +	// extend jQuery itself if only one argument is passed +	if ( length === i ) { +		target = this; +		--i; +	} + +	for ( ; i < length; i++ ) { +		// Only deal with non-null/undefined values +		if ( (options = arguments[ i ]) != null ) { +			// Extend the base object +			for ( name in options ) { +				src = target[ name ]; +				copy = options[ name ]; + +				// Prevent never-ending loop +				if ( target === copy ) { +					continue; +				} + +				// Recurse if we're merging plain objects or arrays +				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { +					if ( copyIsArray ) { +						copyIsArray = false; +						clone = src && jQuery.isArray(src) ? src : []; + +					} else { +						clone = src && jQuery.isPlainObject(src) ? src : {}; +					} + +					// Never move original objects, clone them +					target[ name ] = jQuery.extend( deep, clone, copy ); + +				// Don't bring in undefined values +				} else if ( copy !== undefined ) { +					target[ name ] = copy; +				} +			} +		} +	} + +	// Return the modified object +	return target; +}; + +jQuery.extend({ +	noConflict: function( deep ) { +		if ( window.$ === jQuery ) { +			window.$ = _$; +		} + +		if ( deep && window.jQuery === jQuery ) { +			window.jQuery = _jQuery; +		} + +		return jQuery; +	}, + +	// Is the DOM ready to be used? Set to true once it occurs. +	isReady: false, + +	// A counter to track how many items to wait for before +	// the ready event fires. See #6781 +	readyWait: 1, + +	// Hold (or release) the ready event +	holdReady: function( hold ) { +		if ( hold ) { +			jQuery.readyWait++; +		} else { +			jQuery.ready( true ); +		} +	}, + +	// Handle when the DOM is ready +	ready: function( wait ) { + +		// Abort if there are pending holds or we're already ready +		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { +			return; +		} + +		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). +		if ( !document.body ) { +			return setTimeout( jQuery.ready, 1 ); +		} + +		// Remember that the DOM is ready +		jQuery.isReady = true; + +		// If a normal DOM Ready event fired, decrement, and wait if need be +		if ( wait !== true && --jQuery.readyWait > 0 ) { +			return; +		} + +		// If there are functions bound, to execute +		readyList.resolveWith( document, [ jQuery ] ); + +		// Trigger any bound ready events +		if ( jQuery.fn.trigger ) { +			jQuery( document ).trigger("ready").off("ready"); +		} +	}, + +	// See test/unit/core.js for details concerning isFunction. +	// Since version 1.3, DOM methods and functions like alert +	// aren't supported. They return false on IE (#2968). +	isFunction: function( obj ) { +		return jQuery.type(obj) === "function"; +	}, + +	isArray: Array.isArray || function( obj ) { +		return jQuery.type(obj) === "array"; +	}, + +	isWindow: function( obj ) { +		return obj != null && obj == obj.window; +	}, + +	isNumeric: function( obj ) { +		return !isNaN( parseFloat(obj) ) && isFinite( obj ); +	}, + +	type: function( obj ) { +		return obj == null ? +			String( obj ) : +			class2type[ core_toString.call(obj) ] || "object"; +	}, + +	isPlainObject: function( obj ) { +		// Must be an Object. +		// Because of IE, we also have to check the presence of the constructor property. +		// Make sure that DOM nodes and window objects don't pass through, as well +		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { +			return false; +		} + +		try { +			// Not own constructor property must be Object +			if ( obj.constructor && +				!core_hasOwn.call(obj, "constructor") && +				!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { +				return false; +			} +		} catch ( e ) { +			// IE8,9 Will throw exceptions on certain host objects #9897 +			return false; +		} + +		// Own properties are enumerated firstly, so to speed up, +		// if last one is own, then all properties are own. + +		var key; +		for ( key in obj ) {} + +		return key === undefined || core_hasOwn.call( obj, key ); +	}, + +	isEmptyObject: function( obj ) { +		var name; +		for ( name in obj ) { +			return false; +		} +		return true; +	}, + +	error: function( msg ) { +		throw new Error( msg ); +	}, + +	// data: string of html +	// context (optional): If specified, the fragment will be created in this context, defaults to document +	// scripts (optional): If true, will include scripts passed in the html string +	parseHTML: function( data, context, scripts ) { +		var parsed; +		if ( !data || typeof data !== "string" ) { +			return null; +		} +		if ( typeof context === "boolean" ) { +			scripts = context; +			context = 0; +		} +		context = context || document; + +		// Single tag +		if ( (parsed = rsingleTag.exec( data )) ) { +			return [ context.createElement( parsed[1] ) ]; +		} + +		parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] ); +		return jQuery.merge( [], +			(parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes ); +	}, + +	parseJSON: function( data ) { +		if ( !data || typeof data !== "string") { +			return null; +		} + +		// Make sure leading/trailing whitespace is removed (IE can't handle it) +		data = jQuery.trim( data ); + +		// Attempt to parse using the native JSON parser first +		if ( window.JSON && window.JSON.parse ) { +			return window.JSON.parse( data ); +		} + +		// Make sure the incoming data is actual JSON +		// Logic borrowed from http://json.org/json2.js +		if ( rvalidchars.test( data.replace( rvalidescape, "@" ) +			.replace( rvalidtokens, "]" ) +			.replace( rvalidbraces, "")) ) { + +			return ( new Function( "return " + data ) )(); + +		} +		jQuery.error( "Invalid JSON: " + data ); +	}, + +	// Cross-browser xml parsing +	parseXML: function( data ) { +		var xml, tmp; +		if ( !data || typeof data !== "string" ) { +			return null; +		} +		try { +			if ( window.DOMParser ) { // Standard +				tmp = new DOMParser(); +				xml = tmp.parseFromString( data , "text/xml" ); +			} else { // IE +				xml = new ActiveXObject( "Microsoft.XMLDOM" ); +				xml.async = "false"; +				xml.loadXML( data ); +			} +		} catch( e ) { +			xml = undefined; +		} +		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { +			jQuery.error( "Invalid XML: " + data ); +		} +		return xml; +	}, + +	noop: function() {}, + +	// Evaluates a script in a global context +	// Workarounds based on findings by Jim Driscoll +	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context +	globalEval: function( data ) { +		if ( data && core_rnotwhite.test( data ) ) { +			// We use execScript on Internet Explorer +			// We use an anonymous function so that context is window +			// rather than jQuery in Firefox +			( window.execScript || function( data ) { +				window[ "eval" ].call( window, data ); +			} )( data ); +		} +	}, + +	// Convert dashed to camelCase; used by the css and data modules +	// Microsoft forgot to hump their vendor prefix (#9572) +	camelCase: function( string ) { +		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +	}, + +	nodeName: function( elem, name ) { +		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); +	}, + +	// args is for internal usage only +	each: function( obj, callback, args ) { +		var name, +			i = 0, +			length = obj.length, +			isObj = length === undefined || jQuery.isFunction( obj ); + +		if ( args ) { +			if ( isObj ) { +				for ( name in obj ) { +					if ( callback.apply( obj[ name ], args ) === false ) { +						break; +					} +				} +			} else { +				for ( ; i < length; ) { +					if ( callback.apply( obj[ i++ ], args ) === false ) { +						break; +					} +				} +			} + +		// A special, fast, case for the most common use of each +		} else { +			if ( isObj ) { +				for ( name in obj ) { +					if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { +						break; +					} +				} +			} else { +				for ( ; i < length; ) { +					if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { +						break; +					} +				} +			} +		} + +		return obj; +	}, + +	// Use native String.trim function wherever possible +	trim: core_trim && !core_trim.call("\uFEFF\xA0") ? +		function( text ) { +			return text == null ? +				"" : +				core_trim.call( text ); +		} : + +		// Otherwise use our own trimming functionality +		function( text ) { +			return text == null ? +				"" : +				( text + "" ).replace( rtrim, "" ); +		}, + +	// results is for internal usage only +	makeArray: function( arr, results ) { +		var type, +			ret = results || []; + +		if ( arr != null ) { +			// The window, strings (and functions) also have 'length' +			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 +			type = jQuery.type( arr ); + +			if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { +				core_push.call( ret, arr ); +			} else { +				jQuery.merge( ret, arr ); +			} +		} + +		return ret; +	}, + +	inArray: function( elem, arr, i ) { +		var len; + +		if ( arr ) { +			if ( core_indexOf ) { +				return core_indexOf.call( arr, elem, i ); +			} + +			len = arr.length; +			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + +			for ( ; i < len; i++ ) { +				// Skip accessing in sparse arrays +				if ( i in arr && arr[ i ] === elem ) { +					return i; +				} +			} +		} + +		return -1; +	}, + +	merge: function( first, second ) { +		var l = second.length, +			i = first.length, +			j = 0; + +		if ( typeof l === "number" ) { +			for ( ; j < l; j++ ) { +				first[ i++ ] = second[ j ]; +			} + +		} else { +			while ( second[j] !== undefined ) { +				first[ i++ ] = second[ j++ ]; +			} +		} + +		first.length = i; + +		return first; +	}, + +	grep: function( elems, callback, inv ) { +		var retVal, +			ret = [], +			i = 0, +			length = elems.length; +		inv = !!inv; + +		// Go through the array, only saving the items +		// that pass the validator function +		for ( ; i < length; i++ ) { +			retVal = !!callback( elems[ i ], i ); +			if ( inv !== retVal ) { +				ret.push( elems[ i ] ); +			} +		} + +		return ret; +	}, + +	// arg is for internal usage only +	map: function( elems, callback, arg ) { +		var value, key, +			ret = [], +			i = 0, +			length = elems.length, +			// jquery objects are treated as arrays +			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + +		// Go through the array, translating each of the items to their +		if ( isArray ) { +			for ( ; i < length; i++ ) { +				value = callback( elems[ i ], i, arg ); + +				if ( value != null ) { +					ret[ ret.length ] = value; +				} +			} + +		// Go through every key on the object, +		} else { +			for ( key in elems ) { +				value = callback( elems[ key ], key, arg ); + +				if ( value != null ) { +					ret[ ret.length ] = value; +				} +			} +		} + +		// Flatten any nested arrays +		return ret.concat.apply( [], ret ); +	}, + +	// A global GUID counter for objects +	guid: 1, + +	// Bind a function to a context, optionally partially applying any +	// arguments. +	proxy: function( fn, context ) { +		var tmp, args, proxy; + +		if ( typeof context === "string" ) { +			tmp = fn[ context ]; +			context = fn; +			fn = tmp; +		} + +		// Quick check to determine if target is callable, in the spec +		// this throws a TypeError, but we will just return undefined. +		if ( !jQuery.isFunction( fn ) ) { +			return undefined; +		} + +		// Simulated bind +		args = core_slice.call( arguments, 2 ); +		proxy = function() { +			return fn.apply( context, args.concat( core_slice.call( arguments ) ) ); +		}; + +		// Set the guid of unique handler to the same of original handler, so it can be removed +		proxy.guid = fn.guid = fn.guid || jQuery.guid++; + +		return proxy; +	}, + +	// Multifunctional method to get and set values of a collection +	// The value/s can optionally be executed if it's a function +	access: function( elems, fn, key, value, chainable, emptyGet, pass ) { +		var exec, +			bulk = key == null, +			i = 0, +			length = elems.length; + +		// Sets many values +		if ( key && typeof key === "object" ) { +			for ( i in key ) { +				jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); +			} +			chainable = 1; + +		// Sets one value +		} else if ( value !== undefined ) { +			// Optionally, function values get executed if exec is true +			exec = pass === undefined && jQuery.isFunction( value ); + +			if ( bulk ) { +				// Bulk operations only iterate when executing function values +				if ( exec ) { +					exec = fn; +					fn = function( elem, key, value ) { +						return exec.call( jQuery( elem ), value ); +					}; + +				// Otherwise they run against the entire set +				} else { +					fn.call( elems, value ); +					fn = null; +				} +			} + +			if ( fn ) { +				for (; i < length; i++ ) { +					fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); +				} +			} + +			chainable = 1; +		} + +		return chainable ? +			elems : + +			// Gets +			bulk ? +				fn.call( elems ) : +				length ? fn( elems[0], key ) : emptyGet; +	}, + +	now: function() { +		return ( new Date() ).getTime(); +	} +}); + +jQuery.ready.promise = function( obj ) { +	if ( !readyList ) { + +		readyList = jQuery.Deferred(); + +		// Catch cases where $(document).ready() is called after the browser event has already occurred. +		// we once tried to use readyState "interactive" here, but it caused issues like the one +		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 +		if ( document.readyState === "complete" ) { +			// Handle it asynchronously to allow scripts the opportunity to delay ready +			setTimeout( jQuery.ready, 1 ); + +		// Standards-based browsers support DOMContentLoaded +		} else if ( document.addEventListener ) { +			// Use the handy event callback +			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + +			// A fallback to window.onload, that will always work +			window.addEventListener( "load", jQuery.ready, false ); + +		// If IE event model is used +		} else { +			// Ensure firing before onload, maybe late but safe also for iframes +			document.attachEvent( "onreadystatechange", DOMContentLoaded ); + +			// A fallback to window.onload, that will always work +			window.attachEvent( "onload", jQuery.ready ); + +			// If IE and not a frame +			// continually check to see if the document is ready +			var top = false; + +			try { +				top = window.frameElement == null && document.documentElement; +			} catch(e) {} + +			if ( top && top.doScroll ) { +				(function doScrollCheck() { +					if ( !jQuery.isReady ) { + +						try { +							// Use the trick by Diego Perini +							// http://javascript.nwbox.com/IEContentLoaded/ +							top.doScroll("left"); +						} catch(e) { +							return setTimeout( doScrollCheck, 50 ); +						} + +						// and execute any waiting functions +						jQuery.ready(); +					} +				})(); +			} +		} +	} +	return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { +	class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { +	var object = optionsCache[ options ] = {}; +	jQuery.each( options.split( core_rspace ), function( _, flag ) { +		object[ flag ] = true; +	}); +	return object; +} + +/* + * Create a callback list using the following parameters: + * + *	options: an optional list of space-separated options that will change how + *			the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + *	once:			will ensure the callback list can only be fired once (like a Deferred) + * + *	memory:			will keep track of previous values and will call any callback added + *					after the list has been fired right away with the latest "memorized" + *					values (like a Deferred) + * + *	unique:			will ensure a callback can only be added once (no duplicate in the list) + * + *	stopOnFalse:	interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + +	// Convert options from String-formatted to Object-formatted if needed +	// (we check in cache first) +	options = typeof options === "string" ? +		( optionsCache[ options ] || createOptions( options ) ) : +		jQuery.extend( {}, options ); + +	var // Last fire value (for non-forgettable lists) +		memory, +		// Flag to know if list was already fired +		fired, +		// Flag to know if list is currently firing +		firing, +		// First callback to fire (used internally by add and fireWith) +		firingStart, +		// End of the loop when firing +		firingLength, +		// Index of currently firing callback (modified by remove if needed) +		firingIndex, +		// Actual callback list +		list = [], +		// Stack of fire calls for repeatable lists +		stack = !options.once && [], +		// Fire callbacks +		fire = function( data ) { +			memory = options.memory && data; +			fired = true; +			firingIndex = firingStart || 0; +			firingStart = 0; +			firingLength = list.length; +			firing = true; +			for ( ; list && firingIndex < firingLength; firingIndex++ ) { +				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { +					memory = false; // To prevent further calls using add +					break; +				} +			} +			firing = false; +			if ( list ) { +				if ( stack ) { +					if ( stack.length ) { +						fire( stack.shift() ); +					} +				} else if ( memory ) { +					list = []; +				} else { +					self.disable(); +				} +			} +		}, +		// Actual Callbacks object +		self = { +			// Add a callback or a collection of callbacks to the list +			add: function() { +				if ( list ) { +					// First, we save the current length +					var start = list.length; +					(function add( args ) { +						jQuery.each( args, function( _, arg ) { +							var type = jQuery.type( arg ); +							if ( type === "function" ) { +								if ( !options.unique || !self.has( arg ) ) { +									list.push( arg ); +								} +							} else if ( arg && arg.length && type !== "string" ) { +								// Inspect recursively +								add( arg ); +							} +						}); +					})( arguments ); +					// Do we need to add the callbacks to the +					// current firing batch? +					if ( firing ) { +						firingLength = list.length; +					// With memory, if we're not firing then +					// we should call right away +					} else if ( memory ) { +						firingStart = start; +						fire( memory ); +					} +				} +				return this; +			}, +			// Remove a callback from the list +			remove: function() { +				if ( list ) { +					jQuery.each( arguments, function( _, arg ) { +						var index; +						while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { +							list.splice( index, 1 ); +							// Handle firing indexes +							if ( firing ) { +								if ( index <= firingLength ) { +									firingLength--; +								} +								if ( index <= firingIndex ) { +									firingIndex--; +								} +							} +						} +					}); +				} +				return this; +			}, +			// Control if a given callback is in the list +			has: function( fn ) { +				return jQuery.inArray( fn, list ) > -1; +			}, +			// Remove all callbacks from the list +			empty: function() { +				list = []; +				return this; +			}, +			// Have the list do nothing anymore +			disable: function() { +				list = stack = memory = undefined; +				return this; +			}, +			// Is it disabled? +			disabled: function() { +				return !list; +			}, +			// Lock the list in its current state +			lock: function() { +				stack = undefined; +				if ( !memory ) { +					self.disable(); +				} +				return this; +			}, +			// Is it locked? +			locked: function() { +				return !stack; +			}, +			// Call all callbacks with the given context and arguments +			fireWith: function( context, args ) { +				args = args || []; +				args = [ context, args.slice ? args.slice() : args ]; +				if ( list && ( !fired || stack ) ) { +					if ( firing ) { +						stack.push( args ); +					} else { +						fire( args ); +					} +				} +				return this; +			}, +			// Call all the callbacks with the given arguments +			fire: function() { +				self.fireWith( this, arguments ); +				return this; +			}, +			// To know if the callbacks have already been called at least once +			fired: function() { +				return !!fired; +			} +		}; + +	return self; +}; +jQuery.extend({ + +	Deferred: function( func ) { +		var tuples = [ +				// action, add listener, listener list, final state +				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], +				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], +				[ "notify", "progress", jQuery.Callbacks("memory") ] +			], +			state = "pending", +			promise = { +				state: function() { +					return state; +				}, +				always: function() { +					deferred.done( arguments ).fail( arguments ); +					return this; +				}, +				then: function( /* fnDone, fnFail, fnProgress */ ) { +					var fns = arguments; +					return jQuery.Deferred(function( newDefer ) { +						jQuery.each( tuples, function( i, tuple ) { +							var action = tuple[ 0 ], +								fn = fns[ i ]; +							// deferred[ done | fail | progress ] for forwarding actions to newDefer +							deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? +								function() { +									var returned = fn.apply( this, arguments ); +									if ( returned && jQuery.isFunction( returned.promise ) ) { +										returned.promise() +											.done( newDefer.resolve ) +											.fail( newDefer.reject ) +											.progress( newDefer.notify ); +									} else { +										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); +									} +								} : +								newDefer[ action ] +							); +						}); +						fns = null; +					}).promise(); +				}, +				// Get a promise for this deferred +				// If obj is provided, the promise aspect is added to the object +				promise: function( obj ) { +					return obj != null ? jQuery.extend( obj, promise ) : promise; +				} +			}, +			deferred = {}; + +		// Keep pipe for back-compat +		promise.pipe = promise.then; + +		// Add list-specific methods +		jQuery.each( tuples, function( i, tuple ) { +			var list = tuple[ 2 ], +				stateString = tuple[ 3 ]; + +			// promise[ done | fail | progress ] = list.add +			promise[ tuple[1] ] = list.add; + +			// Handle state +			if ( stateString ) { +				list.add(function() { +					// state = [ resolved | rejected ] +					state = stateString; + +				// [ reject_list | resolve_list ].disable; progress_list.lock +				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); +			} + +			// deferred[ resolve | reject | notify ] = list.fire +			deferred[ tuple[0] ] = list.fire; +			deferred[ tuple[0] + "With" ] = list.fireWith; +		}); + +		// Make the deferred a promise +		promise.promise( deferred ); + +		// Call given func if any +		if ( func ) { +			func.call( deferred, deferred ); +		} + +		// All done! +		return deferred; +	}, + +	// Deferred helper +	when: function( subordinate /* , ..., subordinateN */ ) { +		var i = 0, +			resolveValues = core_slice.call( arguments ), +			length = resolveValues.length, + +			// the count of uncompleted subordinates +			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + +			// the master Deferred. If resolveValues consist of only a single Deferred, just use that. +			deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + +			// Update function for both resolve and progress values +			updateFunc = function( i, contexts, values ) { +				return function( value ) { +					contexts[ i ] = this; +					values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; +					if( values === progressValues ) { +						deferred.notifyWith( contexts, values ); +					} else if ( !( --remaining ) ) { +						deferred.resolveWith( contexts, values ); +					} +				}; +			}, + +			progressValues, progressContexts, resolveContexts; + +		// add listeners to Deferred subordinates; treat others as resolved +		if ( length > 1 ) { +			progressValues = new Array( length ); +			progressContexts = new Array( length ); +			resolveContexts = new Array( length ); +			for ( ; i < length; i++ ) { +				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { +					resolveValues[ i ].promise() +						.done( updateFunc( i, resolveContexts, resolveValues ) ) +						.fail( deferred.reject ) +						.progress( updateFunc( i, progressContexts, progressValues ) ); +				} else { +					--remaining; +				} +			} +		} + +		// if we're not waiting on anything, resolve the master +		if ( !remaining ) { +			deferred.resolveWith( resolveContexts, resolveValues ); +		} + +		return deferred.promise(); +	} +}); +jQuery.support = (function() { + +	var support, +		all, +		a, +		select, +		opt, +		input, +		fragment, +		eventName, +		i, +		isSupported, +		clickFn, +		div = document.createElement("div"); + +	// Setup +	div.setAttribute( "className", "t" ); +	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + +	// Support tests won't run in some limited or non-browser environments +	all = div.getElementsByTagName("*"); +	a = div.getElementsByTagName("a")[ 0 ]; +	if ( !all || !a || !all.length ) { +		return {}; +	} + +	// First batch of tests +	select = document.createElement("select"); +	opt = select.appendChild( document.createElement("option") ); +	input = div.getElementsByTagName("input")[ 0 ]; + +	a.style.cssText = "top:1px;float:left;opacity:.5"; +	support = { +		// IE strips leading whitespace when .innerHTML is used +		leadingWhitespace: ( div.firstChild.nodeType === 3 ), + +		// Make sure that tbody elements aren't automatically inserted +		// IE will insert them into empty tables +		tbody: !div.getElementsByTagName("tbody").length, + +		// Make sure that link elements get serialized correctly by innerHTML +		// This requires a wrapper element in IE +		htmlSerialize: !!div.getElementsByTagName("link").length, + +		// Get the style information from getAttribute +		// (IE uses .cssText instead) +		style: /top/.test( a.getAttribute("style") ), + +		// Make sure that URLs aren't manipulated +		// (IE normalizes it by default) +		hrefNormalized: ( a.getAttribute("href") === "/a" ), + +		// Make sure that element opacity exists +		// (IE uses filter instead) +		// Use a regex to work around a WebKit issue. See #5145 +		opacity: /^0.5/.test( a.style.opacity ), + +		// Verify style float existence +		// (IE uses styleFloat instead of cssFloat) +		cssFloat: !!a.style.cssFloat, + +		// Make sure that if no value is specified for a checkbox +		// that it defaults to "on". +		// (WebKit defaults to "" instead) +		checkOn: ( input.value === "on" ), + +		// Make sure that a selected-by-default option has a working selected property. +		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup) +		optSelected: opt.selected, + +		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) +		getSetAttribute: div.className !== "t", + +		// Tests for enctype support on a form (#6743) +		enctype: !!document.createElement("form").enctype, + +		// Makes sure cloning an html5 element does not cause problems +		// Where outerHTML is undefined, this still works +		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>", + +		// jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode +		boxModel: ( document.compatMode === "CSS1Compat" ), + +		// Will be defined later +		submitBubbles: true, +		changeBubbles: true, +		focusinBubbles: false, +		deleteExpando: true, +		noCloneEvent: true, +		inlineBlockNeedsLayout: false, +		shrinkWrapBlocks: false, +		reliableMarginRight: true, +		boxSizingReliable: true, +		pixelPosition: false +	}; + +	// Make sure checked status is properly cloned +	input.checked = true; +	support.noCloneChecked = input.cloneNode( true ).checked; + +	// Make sure that the options inside disabled selects aren't marked as disabled +	// (WebKit marks them as disabled) +	select.disabled = true; +	support.optDisabled = !opt.disabled; + +	// Test to see if it's possible to delete an expando from an element +	// Fails in Internet Explorer +	try { +		delete div.test; +	} catch( e ) { +		support.deleteExpando = false; +	} + +	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { +		div.attachEvent( "onclick", clickFn = function() { +			// Cloning a node shouldn't copy over any +			// bound event handlers (IE does this) +			support.noCloneEvent = false; +		}); +		div.cloneNode( true ).fireEvent("onclick"); +		div.detachEvent( "onclick", clickFn ); +	} + +	// Check if a radio maintains its value +	// after being appended to the DOM +	input = document.createElement("input"); +	input.value = "t"; +	input.setAttribute( "type", "radio" ); +	support.radioValue = input.value === "t"; + +	input.setAttribute( "checked", "checked" ); + +	// #11217 - WebKit loses check when the name is after the checked attribute +	input.setAttribute( "name", "t" ); + +	div.appendChild( input ); +	fragment = document.createDocumentFragment(); +	fragment.appendChild( div.lastChild ); + +	// WebKit doesn't clone checked state correctly in fragments +	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + +	// Check if a disconnected checkbox will retain its checked +	// value of true after appended to the DOM (IE6/7) +	support.appendChecked = input.checked; + +	fragment.removeChild( input ); +	fragment.appendChild( div ); + +	// Technique from Juriy Zaytsev +	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ +	// We only care about the case where non-standard event systems +	// are used, namely in IE. Short-circuiting here helps us to +	// avoid an eval call (in setAttribute) which can cause CSP +	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP +	if ( div.attachEvent ) { +		for ( i in { +			submit: true, +			change: true, +			focusin: true +		}) { +			eventName = "on" + i; +			isSupported = ( eventName in div ); +			if ( !isSupported ) { +				div.setAttribute( eventName, "return;" ); +				isSupported = ( typeof div[ eventName ] === "function" ); +			} +			support[ i + "Bubbles" ] = isSupported; +		} +	} + +	// Run tests that need a body at doc ready +	jQuery(function() { +		var container, div, tds, marginDiv, +			divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;", +			body = document.getElementsByTagName("body")[0]; + +		if ( !body ) { +			// Return for frameset docs that don't have a body +			return; +		} + +		container = document.createElement("div"); +		container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px"; +		body.insertBefore( container, body.firstChild ); + +		// Construct the test element +		div = document.createElement("div"); +		container.appendChild( div ); + +		// Check if table cells still have offsetWidth/Height when they are set +		// to display:none and there are still other visible table cells in a +		// table row; if so, offsetWidth/Height are not reliable for use when +		// determining if an element has been hidden directly using +		// display:none (it is still safe to use offsets if a parent element is +		// hidden; don safety goggles and see bug #4512 for more information). +		// (only IE 8 fails this test) +		div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; +		tds = div.getElementsByTagName("td"); +		tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; +		isSupported = ( tds[ 0 ].offsetHeight === 0 ); + +		tds[ 0 ].style.display = ""; +		tds[ 1 ].style.display = "none"; + +		// Check if empty table cells still have offsetWidth/Height +		// (IE <= 8 fail this test) +		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + +		// Check box-sizing and margin behavior +		div.innerHTML = ""; +		div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; +		support.boxSizing = ( div.offsetWidth === 4 ); +		support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + +		// NOTE: To any future maintainer, we've window.getComputedStyle +		// because jsdom on node.js will break without it. +		if ( window.getComputedStyle ) { +			support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; +			support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + +			// Check if div with explicit width and no margin-right incorrectly +			// gets computed margin-right based on width of container. For more +			// info see bug #3333 +			// Fails in WebKit before Feb 2011 nightlies +			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right +			marginDiv = document.createElement("div"); +			marginDiv.style.cssText = div.style.cssText = divReset; +			marginDiv.style.marginRight = marginDiv.style.width = "0"; +			div.style.width = "1px"; +			div.appendChild( marginDiv ); +			support.reliableMarginRight = +				!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); +		} + +		if ( typeof div.style.zoom !== "undefined" ) { +			// Check if natively block-level elements act like inline-block +			// elements when setting their display to 'inline' and giving +			// them layout +			// (IE < 8 does this) +			div.innerHTML = ""; +			div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; +			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + +			// Check if elements with layout shrink-wrap their children +			// (IE 6 does this) +			div.style.display = "block"; +			div.style.overflow = "visible"; +			div.innerHTML = "<div></div>"; +			div.firstChild.style.width = "5px"; +			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + +			container.style.zoom = 1; +		} + +		// Null elements to avoid leaks in IE +		body.removeChild( container ); +		container = div = tds = marginDiv = null; +	}); + +	// Null elements to avoid leaks in IE +	fragment.removeChild( div ); +	all = a = select = opt = input = fragment = div = null; + +	return support; +})(); +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, +	rmultiDash = /([A-Z])/g; + +jQuery.extend({ +	cache: {}, + +	deletedIds: [], + +	// Remove at next major release (1.9/2.0) +	uuid: 0, + +	// Unique for each copy of jQuery on the page +	// Non-digits removed to match rinlinejQuery +	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + +	// The following elements throw uncatchable exceptions if you +	// attempt to add expando properties to them. +	noData: { +		"embed": true, +		// Ban all objects except for Flash (which handle expandos) +		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", +		"applet": true +	}, + +	hasData: function( elem ) { +		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; +		return !!elem && !isEmptyDataObject( elem ); +	}, + +	data: function( elem, name, data, pvt /* Internal Use Only */ ) { +		if ( !jQuery.acceptData( elem ) ) { +			return; +		} + +		var thisCache, ret, +			internalKey = jQuery.expando, +			getByName = typeof name === "string", + +			// We have to handle DOM nodes and JS objects differently because IE6-7 +			// can't GC object references properly across the DOM-JS boundary +			isNode = elem.nodeType, + +			// Only DOM nodes need the global jQuery cache; JS object data is +			// attached directly to the object so GC can occur automatically +			cache = isNode ? jQuery.cache : elem, + +			// Only defining an ID for JS objects if its cache already exists allows +			// the code to shortcut on the same path as a DOM node with no cache +			id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + +		// Avoid doing any more work than we need to when trying to get data on an +		// object that has no data at all +		if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { +			return; +		} + +		if ( !id ) { +			// Only DOM nodes need a new unique ID for each element since their data +			// ends up in the global cache +			if ( isNode ) { +				elem[ internalKey ] = id = jQuery.deletedIds.pop() || jQuery.guid++; +			} else { +				id = internalKey; +			} +		} + +		if ( !cache[ id ] ) { +			cache[ id ] = {}; + +			// Avoids exposing jQuery metadata on plain JS objects when the object +			// is serialized using JSON.stringify +			if ( !isNode ) { +				cache[ id ].toJSON = jQuery.noop; +			} +		} + +		// An object can be passed to jQuery.data instead of a key/value pair; this gets +		// shallow copied over onto the existing cache +		if ( typeof name === "object" || typeof name === "function" ) { +			if ( pvt ) { +				cache[ id ] = jQuery.extend( cache[ id ], name ); +			} else { +				cache[ id ].data = jQuery.extend( cache[ id ].data, name ); +			} +		} + +		thisCache = cache[ id ]; + +		// jQuery data() is stored in a separate object inside the object's internal data +		// cache in order to avoid key collisions between internal data and user-defined +		// data. +		if ( !pvt ) { +			if ( !thisCache.data ) { +				thisCache.data = {}; +			} + +			thisCache = thisCache.data; +		} + +		if ( data !== undefined ) { +			thisCache[ jQuery.camelCase( name ) ] = data; +		} + +		// Check for both converted-to-camel and non-converted data property names +		// If a data property was specified +		if ( getByName ) { + +			// First Try to find as-is property data +			ret = thisCache[ name ]; + +			// Test for null|undefined property data +			if ( ret == null ) { + +				// Try to find the camelCased property +				ret = thisCache[ jQuery.camelCase( name ) ]; +			} +		} else { +			ret = thisCache; +		} + +		return ret; +	}, + +	removeData: function( elem, name, pvt /* Internal Use Only */ ) { +		if ( !jQuery.acceptData( elem ) ) { +			return; +		} + +		var thisCache, i, l, + +			isNode = elem.nodeType, + +			// See jQuery.data for more information +			cache = isNode ? jQuery.cache : elem, +			id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + +		// If there is already no cache entry for this object, there is no +		// purpose in continuing +		if ( !cache[ id ] ) { +			return; +		} + +		if ( name ) { + +			thisCache = pvt ? cache[ id ] : cache[ id ].data; + +			if ( thisCache ) { + +				// Support array or space separated string names for data keys +				if ( !jQuery.isArray( name ) ) { + +					// try the string as a key before any manipulation +					if ( name in thisCache ) { +						name = [ name ]; +					} else { + +						// split the camel cased version by spaces unless a key with the spaces exists +						name = jQuery.camelCase( name ); +						if ( name in thisCache ) { +							name = [ name ]; +						} else { +							name = name.split(" "); +						} +					} +				} + +				for ( i = 0, l = name.length; i < l; i++ ) { +					delete thisCache[ name[i] ]; +				} + +				// If there is no data left in the cache, we want to continue +				// and let the cache object itself get destroyed +				if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { +					return; +				} +			} +		} + +		// See jQuery.data for more information +		if ( !pvt ) { +			delete cache[ id ].data; + +			// Don't destroy the parent cache unless the internal data object +			// had been the only thing left in it +			if ( !isEmptyDataObject( cache[ id ] ) ) { +				return; +			} +		} + +		// Destroy the cache +		if ( isNode ) { +			jQuery.cleanData( [ elem ], true ); + +		// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) +		} else if ( jQuery.support.deleteExpando || cache != cache.window ) { +			delete cache[ id ]; + +		// When all else fails, null +		} else { +			cache[ id ] = null; +		} +	}, + +	// For internal use only. +	_data: function( elem, name, data ) { +		return jQuery.data( elem, name, data, true ); +	}, + +	// A method for determining if a DOM node can handle the data expando +	acceptData: function( elem ) { +		var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + +		// nodes accept data unless otherwise specified; rejection can be conditional +		return !noData || noData !== true && elem.getAttribute("classid") === noData; +	} +}); + +jQuery.fn.extend({ +	data: function( key, value ) { +		var parts, part, attr, name, l, +			elem = this[0], +			i = 0, +			data = null; + +		// Gets all values +		if ( key === undefined ) { +			if ( this.length ) { +				data = jQuery.data( elem ); + +				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { +					attr = elem.attributes; +					for ( l = attr.length; i < l; i++ ) { +						name = attr[i].name; + +						if ( !name.indexOf( "data-" ) ) { +							name = jQuery.camelCase( name.substring(5) ); + +							dataAttr( elem, name, data[ name ] ); +						} +					} +					jQuery._data( elem, "parsedAttrs", true ); +				} +			} + +			return data; +		} + +		// Sets multiple values +		if ( typeof key === "object" ) { +			return this.each(function() { +				jQuery.data( this, key ); +			}); +		} + +		parts = key.split( ".", 2 ); +		parts[1] = parts[1] ? "." + parts[1] : ""; +		part = parts[1] + "!"; + +		return jQuery.access( this, function( value ) { + +			if ( value === undefined ) { +				data = this.triggerHandler( "getData" + part, [ parts[0] ] ); + +				// Try to fetch any internally stored data first +				if ( data === undefined && elem ) { +					data = jQuery.data( elem, key ); +					data = dataAttr( elem, key, data ); +				} + +				return data === undefined && parts[1] ? +					this.data( parts[0] ) : +					data; +			} + +			parts[1] = value; +			this.each(function() { +				var self = jQuery( this ); + +				self.triggerHandler( "setData" + part, parts ); +				jQuery.data( this, key, value ); +				self.triggerHandler( "changeData" + part, parts ); +			}); +		}, null, value, arguments.length > 1, null, false ); +	}, + +	removeData: function( key ) { +		return this.each(function() { +			jQuery.removeData( this, key ); +		}); +	} +}); + +function dataAttr( elem, key, data ) { +	// If nothing was found internally, try to fetch any +	// data from the HTML5 data-* attribute +	if ( data === undefined && elem.nodeType === 1 ) { + +		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + +		data = elem.getAttribute( name ); + +		if ( typeof data === "string" ) { +			try { +				data = data === "true" ? true : +				data === "false" ? false : +				data === "null" ? null : +				// Only convert to a number if it doesn't change the string +				+data + "" === data ? +data : +				rbrace.test( data ) ? jQuery.parseJSON( data ) : +					data; +			} catch( e ) {} + +			// Make sure we set the data so it isn't changed later +			jQuery.data( elem, key, data ); + +		} else { +			data = undefined; +		} +	} + +	return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { +	var name; +	for ( name in obj ) { + +		// if the public data object is empty, the private is still empty +		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { +			continue; +		} +		if ( name !== "toJSON" ) { +			return false; +		} +	} + +	return true; +} +jQuery.extend({ +	queue: function( elem, type, data ) { +		var queue; + +		if ( elem ) { +			type = ( type || "fx" ) + "queue"; +			queue = jQuery._data( elem, type ); + +			// Speed up dequeue by getting out quickly if this is just a lookup +			if ( data ) { +				if ( !queue || jQuery.isArray(data) ) { +					queue = jQuery._data( elem, type, jQuery.makeArray(data) ); +				} else { +					queue.push( data ); +				} +			} +			return queue || []; +		} +	}, + +	dequeue: function( elem, type ) { +		type = type || "fx"; + +		var queue = jQuery.queue( elem, type ), +			startLength = queue.length, +			fn = queue.shift(), +			hooks = jQuery._queueHooks( elem, type ), +			next = function() { +				jQuery.dequeue( elem, type ); +			}; + +		// If the fx queue is dequeued, always remove the progress sentinel +		if ( fn === "inprogress" ) { +			fn = queue.shift(); +			startLength--; +		} + +		if ( fn ) { + +			// Add a progress sentinel to prevent the fx queue from being +			// automatically dequeued +			if ( type === "fx" ) { +				queue.unshift( "inprogress" ); +			} + +			// clear up the last queue stop function +			delete hooks.stop; +			fn.call( elem, next, hooks ); +		} + +		if ( !startLength && hooks ) { +			hooks.empty.fire(); +		} +	}, + +	// not intended for public consumption - generates a queueHooks object, or returns the current one +	_queueHooks: function( elem, type ) { +		var key = type + "queueHooks"; +		return jQuery._data( elem, key ) || jQuery._data( elem, key, { +			empty: jQuery.Callbacks("once memory").add(function() { +				jQuery.removeData( elem, type + "queue", true ); +				jQuery.removeData( elem, key, true ); +			}) +		}); +	} +}); + +jQuery.fn.extend({ +	queue: function( type, data ) { +		var setter = 2; + +		if ( typeof type !== "string" ) { +			data = type; +			type = "fx"; +			setter--; +		} + +		if ( arguments.length < setter ) { +			return jQuery.queue( this[0], type ); +		} + +		return data === undefined ? +			this : +			this.each(function() { +				var queue = jQuery.queue( this, type, data ); + +				// ensure a hooks for this queue +				jQuery._queueHooks( this, type ); + +				if ( type === "fx" && queue[0] !== "inprogress" ) { +					jQuery.dequeue( this, type ); +				} +			}); +	}, +	dequeue: function( type ) { +		return this.each(function() { +			jQuery.dequeue( this, type ); +		}); +	}, +	// Based off of the plugin by Clint Helfers, with permission. +	// http://blindsignals.com/index.php/2009/07/jquery-delay/ +	delay: function( time, type ) { +		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; +		type = type || "fx"; + +		return this.queue( type, function( next, hooks ) { +			var timeout = setTimeout( next, time ); +			hooks.stop = function() { +				clearTimeout( timeout ); +			}; +		}); +	}, +	clearQueue: function( type ) { +		return this.queue( type || "fx", [] ); +	}, +	// Get a promise resolved when queues of a certain type +	// are emptied (fx is the type by default) +	promise: function( type, obj ) { +		var tmp, +			count = 1, +			defer = jQuery.Deferred(), +			elements = this, +			i = this.length, +			resolve = function() { +				if ( !( --count ) ) { +					defer.resolveWith( elements, [ elements ] ); +				} +			}; + +		if ( typeof type !== "string" ) { +			obj = type; +			type = undefined; +		} +		type = type || "fx"; + +		while( i-- ) { +			tmp = jQuery._data( elements[ i ], type + "queueHooks" ); +			if ( tmp && tmp.empty ) { +				count++; +				tmp.empty.add( resolve ); +			} +		} +		resolve(); +		return defer.promise( obj ); +	} +}); +var nodeHook, boolHook, fixSpecified, +	rclass = /[\t\r\n]/g, +	rreturn = /\r/g, +	rtype = /^(?:button|input)$/i, +	rfocusable = /^(?:button|input|object|select|textarea)$/i, +	rclickable = /^a(?:rea|)$/i, +	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, +	getSetAttribute = jQuery.support.getSetAttribute; + +jQuery.fn.extend({ +	attr: function( name, value ) { +		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); +	}, + +	removeAttr: function( name ) { +		return this.each(function() { +			jQuery.removeAttr( this, name ); +		}); +	}, + +	prop: function( name, value ) { +		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); +	}, + +	removeProp: function( name ) { +		name = jQuery.propFix[ name ] || name; +		return this.each(function() { +			// try/catch handles cases where IE balks (such as removing a property on window) +			try { +				this[ name ] = undefined; +				delete this[ name ]; +			} catch( e ) {} +		}); +	}, + +	addClass: function( value ) { +		var classNames, i, l, elem, +			setClass, c, cl; + +		if ( jQuery.isFunction( value ) ) { +			return this.each(function( j ) { +				jQuery( this ).addClass( value.call(this, j, this.className) ); +			}); +		} + +		if ( value && typeof value === "string" ) { +			classNames = value.split( core_rspace ); + +			for ( i = 0, l = this.length; i < l; i++ ) { +				elem = this[ i ]; + +				if ( elem.nodeType === 1 ) { +					if ( !elem.className && classNames.length === 1 ) { +						elem.className = value; + +					} else { +						setClass = " " + elem.className + " "; + +						for ( c = 0, cl = classNames.length; c < cl; c++ ) { +							if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) { +								setClass += classNames[ c ] + " "; +							} +						} +						elem.className = jQuery.trim( setClass ); +					} +				} +			} +		} + +		return this; +	}, + +	removeClass: function( value ) { +		var removes, className, elem, c, cl, i, l; + +		if ( jQuery.isFunction( value ) ) { +			return this.each(function( j ) { +				jQuery( this ).removeClass( value.call(this, j, this.className) ); +			}); +		} +		if ( (value && typeof value === "string") || value === undefined ) { +			removes = ( value || "" ).split( core_rspace ); + +			for ( i = 0, l = this.length; i < l; i++ ) { +				elem = this[ i ]; +				if ( elem.nodeType === 1 && elem.className ) { + +					className = (" " + elem.className + " ").replace( rclass, " " ); + +					// loop over each item in the removal list +					for ( c = 0, cl = removes.length; c < cl; c++ ) { +						// Remove until there is nothing to remove, +						while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) { +							className = className.replace( " " + removes[ c ] + " " , " " ); +						} +					} +					elem.className = value ? jQuery.trim( className ) : ""; +				} +			} +		} + +		return this; +	}, + +	toggleClass: function( value, stateVal ) { +		var type = typeof value, +			isBool = typeof stateVal === "boolean"; + +		if ( jQuery.isFunction( value ) ) { +			return this.each(function( i ) { +				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); +			}); +		} + +		return this.each(function() { +			if ( type === "string" ) { +				// toggle individual class names +				var className, +					i = 0, +					self = jQuery( this ), +					state = stateVal, +					classNames = value.split( core_rspace ); + +				while ( (className = classNames[ i++ ]) ) { +					// check each className given, space separated list +					state = isBool ? state : !self.hasClass( className ); +					self[ state ? "addClass" : "removeClass" ]( className ); +				} + +			} else if ( type === "undefined" || type === "boolean" ) { +				if ( this.className ) { +					// store className if set +					jQuery._data( this, "__className__", this.className ); +				} + +				// toggle whole className +				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; +			} +		}); +	}, + +	hasClass: function( selector ) { +		var className = " " + selector + " ", +			i = 0, +			l = this.length; +		for ( ; i < l; i++ ) { +			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { +				return true; +			} +		} + +		return false; +	}, + +	val: function( value ) { +		var hooks, ret, isFunction, +			elem = this[0]; + +		if ( !arguments.length ) { +			if ( elem ) { +				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + +				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { +					return ret; +				} + +				ret = elem.value; + +				return typeof ret === "string" ? +					// handle most common string cases +					ret.replace(rreturn, "") : +					// handle cases where value is null/undef or number +					ret == null ? "" : ret; +			} + +			return; +		} + +		isFunction = jQuery.isFunction( value ); + +		return this.each(function( i ) { +			var val, +				self = jQuery(this); + +			if ( this.nodeType !== 1 ) { +				return; +			} + +			if ( isFunction ) { +				val = value.call( this, i, self.val() ); +			} else { +				val = value; +			} + +			// Treat null/undefined as ""; convert numbers to string +			if ( val == null ) { +				val = ""; +			} else if ( typeof val === "number" ) { +				val += ""; +			} else if ( jQuery.isArray( val ) ) { +				val = jQuery.map(val, function ( value ) { +					return value == null ? "" : value + ""; +				}); +			} + +			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + +			// If set returns undefined, fall back to normal setting +			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { +				this.value = val; +			} +		}); +	} +}); + +jQuery.extend({ +	valHooks: { +		option: { +			get: function( elem ) { +				// attributes.value is undefined in Blackberry 4.7 but +				// uses .value. See #6932 +				var val = elem.attributes.value; +				return !val || val.specified ? elem.value : elem.text; +			} +		}, +		select: { +			get: function( elem ) { +				var value, option, +					options = elem.options, +					index = elem.selectedIndex, +					one = elem.type === "select-one" || index < 0, +					values = one ? null : [], +					max = one ? index + 1 : options.length, +					i = index < 0 ? +						max : +						one ? index : 0; + +				// Loop through all the selected options +				for ( ; i < max; i++ ) { +					option = options[ i ]; + +					// oldIE doesn't update selected after form reset (#2551) +					if ( ( option.selected || i === index ) && +							// Don't return options that are disabled or in a disabled optgroup +							( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && +							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + +						// Get the specific value for the option +						value = jQuery( option ).val(); + +						// We don't need an array for one selects +						if ( one ) { +							return value; +						} + +						// Multi-Selects return an array +						values.push( value ); +					} +				} + +				return values; +			}, + +			set: function( elem, value ) { +				var values = jQuery.makeArray( value ); + +				jQuery(elem).find("option").each(function() { +					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; +				}); + +				if ( !values.length ) { +					elem.selectedIndex = -1; +				} +				return values; +			} +		} +	}, + +	// Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9 +	attrFn: {}, + +	attr: function( elem, name, value, pass ) { +		var ret, hooks, notxml, +			nType = elem.nodeType; + +		// don't get/set attributes on text, comment and attribute nodes +		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { +			return; +		} + +		if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) { +			return jQuery( elem )[ name ]( value ); +		} + +		// Fallback to prop when attributes are not supported +		if ( typeof elem.getAttribute === "undefined" ) { +			return jQuery.prop( elem, name, value ); +		} + +		notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + +		// All attributes are lowercase +		// Grab necessary hook if one is defined +		if ( notxml ) { +			name = name.toLowerCase(); +			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); +		} + +		if ( value !== undefined ) { + +			if ( value === null ) { +				jQuery.removeAttr( elem, name ); +				return; + +			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { +				return ret; + +			} else { +				elem.setAttribute( name, value + "" ); +				return value; +			} + +		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { +			return ret; + +		} else { + +			ret = elem.getAttribute( name ); + +			// Non-existent attributes return null, we normalize to undefined +			return ret === null ? +				undefined : +				ret; +		} +	}, + +	removeAttr: function( elem, value ) { +		var propName, attrNames, name, isBool, +			i = 0; + +		if ( value && elem.nodeType === 1 ) { + +			attrNames = value.split( core_rspace ); + +			for ( ; i < attrNames.length; i++ ) { +				name = attrNames[ i ]; + +				if ( name ) { +					propName = jQuery.propFix[ name ] || name; +					isBool = rboolean.test( name ); + +					// See #9699 for explanation of this approach (setting first, then removal) +					// Do not do this for boolean attributes (see #10870) +					if ( !isBool ) { +						jQuery.attr( elem, name, "" ); +					} +					elem.removeAttribute( getSetAttribute ? name : propName ); + +					// Set corresponding property to false for boolean attributes +					if ( isBool && propName in elem ) { +						elem[ propName ] = false; +					} +				} +			} +		} +	}, + +	attrHooks: { +		type: { +			set: function( elem, value ) { +				// We can't allow the type property to be changed (since it causes problems in IE) +				if ( rtype.test( elem.nodeName ) && elem.parentNode ) { +					jQuery.error( "type property can't be changed" ); +				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { +					// Setting the type on a radio button after the value resets the value in IE6-9 +					// Reset value to it's default in case type is set after value +					// This is for element creation +					var val = elem.value; +					elem.setAttribute( "type", value ); +					if ( val ) { +						elem.value = val; +					} +					return value; +				} +			} +		}, +		// Use the value property for back compat +		// Use the nodeHook for button elements in IE6/7 (#1954) +		value: { +			get: function( elem, name ) { +				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { +					return nodeHook.get( elem, name ); +				} +				return name in elem ? +					elem.value : +					null; +			}, +			set: function( elem, value, name ) { +				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { +					return nodeHook.set( elem, value, name ); +				} +				// Does not return so that setAttribute is also used +				elem.value = value; +			} +		} +	}, + +	propFix: { +		tabindex: "tabIndex", +		readonly: "readOnly", +		"for": "htmlFor", +		"class": "className", +		maxlength: "maxLength", +		cellspacing: "cellSpacing", +		cellpadding: "cellPadding", +		rowspan: "rowSpan", +		colspan: "colSpan", +		usemap: "useMap", +		frameborder: "frameBorder", +		contenteditable: "contentEditable" +	}, + +	prop: function( elem, name, value ) { +		var ret, hooks, notxml, +			nType = elem.nodeType; + +		// don't get/set properties on text, comment and attribute nodes +		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { +			return; +		} + +		notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + +		if ( notxml ) { +			// Fix name and attach hooks +			name = jQuery.propFix[ name ] || name; +			hooks = jQuery.propHooks[ name ]; +		} + +		if ( value !== undefined ) { +			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { +				return ret; + +			} else { +				return ( elem[ name ] = value ); +			} + +		} else { +			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { +				return ret; + +			} else { +				return elem[ name ]; +			} +		} +	}, + +	propHooks: { +		tabIndex: { +			get: function( elem ) { +				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set +				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ +				var attributeNode = elem.getAttributeNode("tabindex"); + +				return attributeNode && attributeNode.specified ? +					parseInt( attributeNode.value, 10 ) : +					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? +						0 : +						undefined; +			} +		} +	} +}); + +// Hook for boolean attributes +boolHook = { +	get: function( elem, name ) { +		// Align boolean attributes with corresponding properties +		// Fall back to attribute presence where some booleans are not supported +		var attrNode, +			property = jQuery.prop( elem, name ); +		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? +			name.toLowerCase() : +			undefined; +	}, +	set: function( elem, value, name ) { +		var propName; +		if ( value === false ) { +			// Remove boolean attributes when set to false +			jQuery.removeAttr( elem, name ); +		} else { +			// value is true since we know at this point it's type boolean and not false +			// Set boolean attributes to the same name and set the DOM property +			propName = jQuery.propFix[ name ] || name; +			if ( propName in elem ) { +				// Only set the IDL specifically if it already exists on the element +				elem[ propName ] = true; +			} + +			elem.setAttribute( name, name.toLowerCase() ); +		} +		return name; +	} +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + +	fixSpecified = { +		name: true, +		id: true, +		coords: true +	}; + +	// Use this for any attribute in IE6/7 +	// This fixes almost every IE6/7 issue +	nodeHook = jQuery.valHooks.button = { +		get: function( elem, name ) { +			var ret; +			ret = elem.getAttributeNode( name ); +			return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ? +				ret.value : +				undefined; +		}, +		set: function( elem, value, name ) { +			// Set the existing or create a new attribute node +			var ret = elem.getAttributeNode( name ); +			if ( !ret ) { +				ret = document.createAttribute( name ); +				elem.setAttributeNode( ret ); +			} +			return ( ret.value = value + "" ); +		} +	}; + +	// Set width and height to auto instead of 0 on empty string( Bug #8150 ) +	// This is for removals +	jQuery.each([ "width", "height" ], function( i, name ) { +		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { +			set: function( elem, value ) { +				if ( value === "" ) { +					elem.setAttribute( name, "auto" ); +					return value; +				} +			} +		}); +	}); + +	// Set contenteditable to false on removals(#10429) +	// Setting to empty string throws an error as an invalid value +	jQuery.attrHooks.contenteditable = { +		get: nodeHook.get, +		set: function( elem, value, name ) { +			if ( value === "" ) { +				value = "false"; +			} +			nodeHook.set( elem, value, name ); +		} +	}; +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { +	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { +		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { +			get: function( elem ) { +				var ret = elem.getAttribute( name, 2 ); +				return ret === null ? undefined : ret; +			} +		}); +	}); +} + +if ( !jQuery.support.style ) { +	jQuery.attrHooks.style = { +		get: function( elem ) { +			// Return undefined in the case of empty string +			// Normalize to lowercase since IE uppercases css property names +			return elem.style.cssText.toLowerCase() || undefined; +		}, +		set: function( elem, value ) { +			return ( elem.style.cssText = value + "" ); +		} +	}; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { +	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { +		get: function( elem ) { +			var parent = elem.parentNode; + +			if ( parent ) { +				parent.selectedIndex; + +				// Make sure that it also works with optgroups, see #5701 +				if ( parent.parentNode ) { +					parent.parentNode.selectedIndex; +				} +			} +			return null; +		} +	}); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { +	jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { +	jQuery.each([ "radio", "checkbox" ], function() { +		jQuery.valHooks[ this ] = { +			get: function( elem ) { +				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified +				return elem.getAttribute("value") === null ? "on" : elem.value; +			} +		}; +	}); +} +jQuery.each([ "radio", "checkbox" ], function() { +	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { +		set: function( elem, value ) { +			if ( jQuery.isArray( value ) ) { +				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); +			} +		} +	}); +}); +var rformElems = /^(?:textarea|input|select)$/i, +	rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/, +	rhoverHack = /(?:^|\s)hover(\.\S+|)\b/, +	rkeyEvent = /^key/, +	rmouseEvent = /^(?:mouse|contextmenu)|click/, +	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, +	hoverHack = function( events ) { +		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); +	}; + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + +	add: function( elem, types, handler, data, selector ) { + +		var elemData, eventHandle, events, +			t, tns, type, namespaces, handleObj, +			handleObjIn, handlers, special; + +		// Don't attach events to noData or text/comment nodes (allow plain objects tho) +		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { +			return; +		} + +		// Caller can pass in an object of custom data in lieu of the handler +		if ( handler.handler ) { +			handleObjIn = handler; +			handler = handleObjIn.handler; +			selector = handleObjIn.selector; +		} + +		// Make sure that the handler has a unique ID, used to find/remove it later +		if ( !handler.guid ) { +			handler.guid = jQuery.guid++; +		} + +		// Init the element's event structure and main handler, if this is the first +		events = elemData.events; +		if ( !events ) { +			elemData.events = events = {}; +		} +		eventHandle = elemData.handle; +		if ( !eventHandle ) { +			elemData.handle = eventHandle = function( e ) { +				// Discard the second event of a jQuery.event.trigger() and +				// when an event is called after a page has unloaded +				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? +					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : +					undefined; +			}; +			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events +			eventHandle.elem = elem; +		} + +		// Handle multiple events separated by a space +		// jQuery(...).bind("mouseover mouseout", fn); +		types = jQuery.trim( hoverHack(types) ).split( " " ); +		for ( t = 0; t < types.length; t++ ) { + +			tns = rtypenamespace.exec( types[t] ) || []; +			type = tns[1]; +			namespaces = ( tns[2] || "" ).split( "." ).sort(); + +			// If event changes its type, use the special event handlers for the changed type +			special = jQuery.event.special[ type ] || {}; + +			// If selector defined, determine special event api type, otherwise given type +			type = ( selector ? special.delegateType : special.bindType ) || type; + +			// Update special based on newly reset type +			special = jQuery.event.special[ type ] || {}; + +			// handleObj is passed to all event handlers +			handleObj = jQuery.extend({ +				type: type, +				origType: tns[1], +				data: data, +				handler: handler, +				guid: handler.guid, +				selector: selector, +				needsContext: selector && jQuery.expr.match.needsContext.test( selector ), +				namespace: namespaces.join(".") +			}, handleObjIn ); + +			// Init the event handler queue if we're the first +			handlers = events[ type ]; +			if ( !handlers ) { +				handlers = events[ type ] = []; +				handlers.delegateCount = 0; + +				// Only use addEventListener/attachEvent if the special events handler returns false +				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { +					// Bind the global event handler to the element +					if ( elem.addEventListener ) { +						elem.addEventListener( type, eventHandle, false ); + +					} else if ( elem.attachEvent ) { +						elem.attachEvent( "on" + type, eventHandle ); +					} +				} +			} + +			if ( special.add ) { +				special.add.call( elem, handleObj ); + +				if ( !handleObj.handler.guid ) { +					handleObj.handler.guid = handler.guid; +				} +			} + +			// Add to the element's handler list, delegates in front +			if ( selector ) { +				handlers.splice( handlers.delegateCount++, 0, handleObj ); +			} else { +				handlers.push( handleObj ); +			} + +			// Keep track of which events have ever been used, for event optimization +			jQuery.event.global[ type ] = true; +		} + +		// Nullify elem to prevent memory leaks in IE +		elem = null; +	}, + +	global: {}, + +	// Detach an event or set of events from an element +	remove: function( elem, types, handler, selector, mappedTypes ) { + +		var t, tns, type, origType, namespaces, origCount, +			j, events, special, eventType, handleObj, +			elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + +		if ( !elemData || !(events = elemData.events) ) { +			return; +		} + +		// Once for each type.namespace in types; type may be omitted +		types = jQuery.trim( hoverHack( types || "" ) ).split(" "); +		for ( t = 0; t < types.length; t++ ) { +			tns = rtypenamespace.exec( types[t] ) || []; +			type = origType = tns[1]; +			namespaces = tns[2]; + +			// Unbind all events (on this namespace, if provided) for the element +			if ( !type ) { +				for ( type in events ) { +					jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); +				} +				continue; +			} + +			special = jQuery.event.special[ type ] || {}; +			type = ( selector? special.delegateType : special.bindType ) || type; +			eventType = events[ type ] || []; +			origCount = eventType.length; +			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + +			// Remove matching events +			for ( j = 0; j < eventType.length; j++ ) { +				handleObj = eventType[ j ]; + +				if ( ( mappedTypes || origType === handleObj.origType ) && +					 ( !handler || handler.guid === handleObj.guid ) && +					 ( !namespaces || namespaces.test( handleObj.namespace ) ) && +					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { +					eventType.splice( j--, 1 ); + +					if ( handleObj.selector ) { +						eventType.delegateCount--; +					} +					if ( special.remove ) { +						special.remove.call( elem, handleObj ); +					} +				} +			} + +			// Remove generic event handler if we removed something and no more handlers exist +			// (avoids potential for endless recursion during removal of special event handlers) +			if ( eventType.length === 0 && origCount !== eventType.length ) { +				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { +					jQuery.removeEvent( elem, type, elemData.handle ); +				} + +				delete events[ type ]; +			} +		} + +		// Remove the expando if it's no longer used +		if ( jQuery.isEmptyObject( events ) ) { +			delete elemData.handle; + +			// removeData also checks for emptiness and clears the expando if empty +			// so use it instead of delete +			jQuery.removeData( elem, "events", true ); +		} +	}, + +	// Events that are safe to short-circuit if no handlers are attached. +	// Native DOM events should not be added, they may have inline handlers. +	customEvent: { +		"getData": true, +		"setData": true, +		"changeData": true +	}, + +	trigger: function( event, data, elem, onlyHandlers ) { +		// Don't do events on text and comment nodes +		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { +			return; +		} + +		// Event object or event type +		var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType, +			type = event.type || event, +			namespaces = []; + +		// focus/blur morphs to focusin/out; ensure we're not firing them right now +		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { +			return; +		} + +		if ( type.indexOf( "!" ) >= 0 ) { +			// Exclusive events trigger only for the exact event (no namespaces) +			type = type.slice(0, -1); +			exclusive = true; +		} + +		if ( type.indexOf( "." ) >= 0 ) { +			// Namespaced trigger; create a regexp to match event type in handle() +			namespaces = type.split("."); +			type = namespaces.shift(); +			namespaces.sort(); +		} + +		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { +			// No jQuery handlers for this event type, and it can't have inline handlers +			return; +		} + +		// Caller can pass in an Event, Object, or just an event type string +		event = typeof event === "object" ? +			// jQuery.Event object +			event[ jQuery.expando ] ? event : +			// Object literal +			new jQuery.Event( type, event ) : +			// Just the event type (string) +			new jQuery.Event( type ); + +		event.type = type; +		event.isTrigger = true; +		event.exclusive = exclusive; +		event.namespace = namespaces.join( "." ); +		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; +		ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; + +		// Handle a global trigger +		if ( !elem ) { + +			// TODO: Stop taunting the data cache; remove global events and always attach to document +			cache = jQuery.cache; +			for ( i in cache ) { +				if ( cache[ i ].events && cache[ i ].events[ type ] ) { +					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); +				} +			} +			return; +		} + +		// Clean up the event in case it is being reused +		event.result = undefined; +		if ( !event.target ) { +			event.target = elem; +		} + +		// Clone any incoming data and prepend the event, creating the handler arg list +		data = data != null ? jQuery.makeArray( data ) : []; +		data.unshift( event ); + +		// Allow special events to draw outside the lines +		special = jQuery.event.special[ type ] || {}; +		if ( special.trigger && special.trigger.apply( elem, data ) === false ) { +			return; +		} + +		// Determine event propagation path in advance, per W3C events spec (#9951) +		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724) +		eventPath = [[ elem, special.bindType || type ]]; +		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + +			bubbleType = special.delegateType || type; +			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; +			for ( old = elem; cur; cur = cur.parentNode ) { +				eventPath.push([ cur, bubbleType ]); +				old = cur; +			} + +			// Only add window if we got to document (e.g., not plain obj or detached DOM) +			if ( old === (elem.ownerDocument || document) ) { +				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); +			} +		} + +		// Fire handlers on the event path +		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { + +			cur = eventPath[i][0]; +			event.type = eventPath[i][1]; + +			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); +			if ( handle ) { +				handle.apply( cur, data ); +			} +			// Note that this is a bare JS function and not a jQuery handler +			handle = ontype && cur[ ontype ]; +			if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { +				event.preventDefault(); +			} +		} +		event.type = type; + +		// If nobody prevented the default action, do it now +		if ( !onlyHandlers && !event.isDefaultPrevented() ) { + +			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && +				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + +				// Call a native DOM method on the target with the same name name as the event. +				// Can't use an .isFunction() check here because IE6/7 fails that test. +				// Don't do default actions on window, that's where global variables be (#6170) +				// IE<9 dies on focus/blur to hidden element (#1486) +				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { + +					// Don't re-trigger an onFOO event when we call its FOO() method +					old = elem[ ontype ]; + +					if ( old ) { +						elem[ ontype ] = null; +					} + +					// Prevent re-triggering of the same event, since we already bubbled it above +					jQuery.event.triggered = type; +					elem[ type ](); +					jQuery.event.triggered = undefined; + +					if ( old ) { +						elem[ ontype ] = old; +					} +				} +			} +		} + +		return event.result; +	}, + +	dispatch: function( event ) { + +		// Make a writable jQuery.Event from the native event object +		event = jQuery.event.fix( event || window.event ); + +		var i, j, cur, ret, selMatch, matched, matches, handleObj, sel, related, +			handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), +			delegateCount = handlers.delegateCount, +			args = core_slice.call( arguments ), +			run_all = !event.exclusive && !event.namespace, +			special = jQuery.event.special[ event.type ] || {}, +			handlerQueue = []; + +		// Use the fix-ed jQuery.Event rather than the (read-only) native event +		args[0] = event; +		event.delegateTarget = this; + +		// Call the preDispatch hook for the mapped type, and let it bail if desired +		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { +			return; +		} + +		// Determine handlers that should run if there are delegated events +		// Avoid non-left-click bubbling in Firefox (#3861) +		if ( delegateCount && !(event.button && event.type === "click") ) { + +			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { + +				// Don't process clicks (ONLY) on disabled elements (#6911, #8165, #11382, #11764) +				if ( cur.disabled !== true || event.type !== "click" ) { +					selMatch = {}; +					matches = []; +					for ( i = 0; i < delegateCount; i++ ) { +						handleObj = handlers[ i ]; +						sel = handleObj.selector; + +						if ( selMatch[ sel ] === undefined ) { +							selMatch[ sel ] = handleObj.needsContext ? +								jQuery( sel, this ).index( cur ) >= 0 : +								jQuery.find( sel, this, null, [ cur ] ).length; +						} +						if ( selMatch[ sel ] ) { +							matches.push( handleObj ); +						} +					} +					if ( matches.length ) { +						handlerQueue.push({ elem: cur, matches: matches }); +					} +				} +			} +		} + +		// Add the remaining (directly-bound) handlers +		if ( handlers.length > delegateCount ) { +			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); +		} + +		// Run delegates first; they may want to stop propagation beneath us +		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { +			matched = handlerQueue[ i ]; +			event.currentTarget = matched.elem; + +			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { +				handleObj = matched.matches[ j ]; + +				// Triggered event must either 1) be non-exclusive and have no namespace, or +				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). +				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { + +					event.data = handleObj.data; +					event.handleObj = handleObj; + +					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) +							.apply( matched.elem, args ); + +					if ( ret !== undefined ) { +						event.result = ret; +						if ( ret === false ) { +							event.preventDefault(); +							event.stopPropagation(); +						} +					} +				} +			} +		} + +		// Call the postDispatch hook for the mapped type +		if ( special.postDispatch ) { +			special.postDispatch.call( this, event ); +		} + +		return event.result; +	}, + +	// Includes some event props shared by KeyEvent and MouseEvent +	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 *** +	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + +	fixHooks: {}, + +	keyHooks: { +		props: "char charCode key keyCode".split(" "), +		filter: function( event, original ) { + +			// Add which for key events +			if ( event.which == null ) { +				event.which = original.charCode != null ? original.charCode : original.keyCode; +			} + +			return event; +		} +	}, + +	mouseHooks: { +		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), +		filter: function( event, original ) { +			var eventDoc, doc, body, +				button = original.button, +				fromElement = original.fromElement; + +			// Calculate pageX/Y if missing and clientX/Y available +			if ( event.pageX == null && original.clientX != null ) { +				eventDoc = event.target.ownerDocument || document; +				doc = eventDoc.documentElement; +				body = eventDoc.body; + +				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); +				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 ); +			} + +			// Add relatedTarget, if necessary +			if ( !event.relatedTarget && fromElement ) { +				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; +			} + +			// Add which for click: 1 === left; 2 === middle; 3 === right +			// Note: button is not normalized, so don't use it +			if ( !event.which && button !== undefined ) { +				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); +			} + +			return event; +		} +	}, + +	fix: function( event ) { +		if ( event[ jQuery.expando ] ) { +			return event; +		} + +		// Create a writable copy of the event object and normalize some properties +		var i, prop, +			originalEvent = event, +			fixHook = jQuery.event.fixHooks[ event.type ] || {}, +			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + +		event = jQuery.Event( originalEvent ); + +		for ( i = copy.length; i; ) { +			prop = copy[ --i ]; +			event[ prop ] = originalEvent[ prop ]; +		} + +		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) +		if ( !event.target ) { +			event.target = originalEvent.srcElement || document; +		} + +		// Target should not be a text node (#504, Safari) +		if ( event.target.nodeType === 3 ) { +			event.target = event.target.parentNode; +		} + +		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8) +		event.metaKey = !!event.metaKey; + +		return fixHook.filter? fixHook.filter( event, originalEvent ) : event; +	}, + +	special: { +		load: { +			// Prevent triggered image.load events from bubbling to window.load +			noBubble: true +		}, + +		focus: { +			delegateType: "focusin" +		}, +		blur: { +			delegateType: "focusout" +		}, + +		beforeunload: { +			setup: function( data, namespaces, eventHandle ) { +				// We only want to do this special case on windows +				if ( jQuery.isWindow( this ) ) { +					this.onbeforeunload = eventHandle; +				} +			}, + +			teardown: function( namespaces, eventHandle ) { +				if ( this.onbeforeunload === eventHandle ) { +					this.onbeforeunload = null; +				} +			} +		} +	}, + +	simulate: function( type, elem, event, bubble ) { +		// Piggyback on a donor event to simulate a different one. +		// Fake originalEvent to avoid donor's stopPropagation, but if the +		// simulated event prevents default then we do the same on the donor. +		var e = jQuery.extend( +			new jQuery.Event(), +			event, +			{ type: type, +				isSimulated: true, +				originalEvent: {} +			} +		); +		if ( bubble ) { +			jQuery.event.trigger( e, null, elem ); +		} else { +			jQuery.event.dispatch.call( elem, e ); +		} +		if ( e.isDefaultPrevented() ) { +			event.preventDefault(); +		} +	} +}; + +// Some plugins are using, but it's undocumented/deprecated and will be removed. +// The 1.7 special event interface should provide all the hooks needed now. +jQuery.event.handle = jQuery.event.dispatch; + +jQuery.removeEvent = document.removeEventListener ? +	function( elem, type, handle ) { +		if ( elem.removeEventListener ) { +			elem.removeEventListener( type, handle, false ); +		} +	} : +	function( elem, type, handle ) { +		var name = "on" + type; + +		if ( elem.detachEvent ) { + +			// #8545, #7054, preventing memory leaks for custom events in IE6-8 +			// detachEvent needed property on element, by name of that event, to properly expose it to GC +			if ( typeof elem[ name ] === "undefined" ) { +				elem[ name ] = null; +			} + +			elem.detachEvent( name, handle ); +		} +	}; + +jQuery.Event = function( src, props ) { +	// Allow instantiation without the 'new' keyword +	if ( !(this instanceof jQuery.Event) ) { +		return new jQuery.Event( src, props ); +	} + +	// Event object +	if ( src && src.type ) { +		this.originalEvent = src; +		this.type = src.type; + +		// Events bubbling up the document may have been marked as prevented +		// by a handler lower down the tree; reflect the correct value. +		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || +			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + +	// Event type +	} else { +		this.type = src; +	} + +	// Put explicitly provided properties onto the event object +	if ( props ) { +		jQuery.extend( this, props ); +	} + +	// Create a timestamp if incoming event doesn't have one +	this.timeStamp = src && src.timeStamp || jQuery.now(); + +	// Mark it as fixed +	this[ jQuery.expando ] = true; +}; + +function returnFalse() { +	return false; +} +function returnTrue() { +	return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { +	preventDefault: function() { +		this.isDefaultPrevented = returnTrue; + +		var e = this.originalEvent; +		if ( !e ) { +			return; +		} + +		// if preventDefault exists run it on the original event +		if ( e.preventDefault ) { +			e.preventDefault(); + +		// otherwise set the returnValue property of the original event to false (IE) +		} else { +			e.returnValue = false; +		} +	}, +	stopPropagation: function() { +		this.isPropagationStopped = returnTrue; + +		var e = this.originalEvent; +		if ( !e ) { +			return; +		} +		// if stopPropagation exists run it on the original event +		if ( e.stopPropagation ) { +			e.stopPropagation(); +		} +		// otherwise set the cancelBubble property of the original event to true (IE) +		e.cancelBubble = true; +	}, +	stopImmediatePropagation: function() { +		this.isImmediatePropagationStopped = returnTrue; +		this.stopPropagation(); +	}, +	isDefaultPrevented: returnFalse, +	isPropagationStopped: returnFalse, +	isImmediatePropagationStopped: returnFalse +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ +	mouseenter: "mouseover", +	mouseleave: "mouseout" +}, function( orig, fix ) { +	jQuery.event.special[ orig ] = { +		delegateType: fix, +		bindType: fix, + +		handle: function( event ) { +			var ret, +				target = this, +				related = event.relatedTarget, +				handleObj = event.handleObj, +				selector = handleObj.selector; + +			// For mousenter/leave call the handler if related is outside the target. +			// NB: No relatedTarget if the mouse left/entered the browser window +			if ( !related || (related !== target && !jQuery.contains( target, related )) ) { +				event.type = handleObj.origType; +				ret = handleObj.handler.apply( this, arguments ); +				event.type = fix; +			} +			return ret; +		} +	}; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + +	jQuery.event.special.submit = { +		setup: function() { +			// Only need this for delegated form submit events +			if ( jQuery.nodeName( this, "form" ) ) { +				return false; +			} + +			// Lazy-add a submit handler when a descendant form may potentially be submitted +			jQuery.event.add( this, "click._submit keypress._submit", function( e ) { +				// Node name check avoids a VML-related crash in IE (#9807) +				var elem = e.target, +					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; +				if ( form && !jQuery._data( form, "_submit_attached" ) ) { +					jQuery.event.add( form, "submit._submit", function( event ) { +						event._submit_bubble = true; +					}); +					jQuery._data( form, "_submit_attached", true ); +				} +			}); +			// return undefined since we don't need an event listener +		}, + +		postDispatch: function( event ) { +			// If form was submitted by the user, bubble the event up the tree +			if ( event._submit_bubble ) { +				delete event._submit_bubble; +				if ( this.parentNode && !event.isTrigger ) { +					jQuery.event.simulate( "submit", this.parentNode, event, true ); +				} +			} +		}, + +		teardown: function() { +			// Only need this for delegated form submit events +			if ( jQuery.nodeName( this, "form" ) ) { +				return false; +			} + +			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above +			jQuery.event.remove( this, "._submit" ); +		} +	}; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + +	jQuery.event.special.change = { + +		setup: function() { + +			if ( rformElems.test( this.nodeName ) ) { +				// IE doesn't fire change on a check/radio until blur; trigger it on click +				// after a propertychange. Eat the blur-change in special.change.handle. +				// This still fires onchange a second time for check/radio after blur. +				if ( this.type === "checkbox" || this.type === "radio" ) { +					jQuery.event.add( this, "propertychange._change", function( event ) { +						if ( event.originalEvent.propertyName === "checked" ) { +							this._just_changed = true; +						} +					}); +					jQuery.event.add( this, "click._change", function( event ) { +						if ( this._just_changed && !event.isTrigger ) { +							this._just_changed = false; +						} +						// Allow triggered, simulated change events (#11500) +						jQuery.event.simulate( "change", this, event, true ); +					}); +				} +				return false; +			} +			// Delegated event; lazy-add a change handler on descendant inputs +			jQuery.event.add( this, "beforeactivate._change", function( e ) { +				var elem = e.target; + +				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) { +					jQuery.event.add( elem, "change._change", function( event ) { +						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { +							jQuery.event.simulate( "change", this.parentNode, event, true ); +						} +					}); +					jQuery._data( elem, "_change_attached", true ); +				} +			}); +		}, + +		handle: function( event ) { +			var elem = event.target; + +			// Swallow native change events from checkbox/radio, we already triggered them above +			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { +				return event.handleObj.handler.apply( this, arguments ); +			} +		}, + +		teardown: function() { +			jQuery.event.remove( this, "._change" ); + +			return !rformElems.test( this.nodeName ); +		} +	}; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { +	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + +		// Attach a single capturing handler while someone wants focusin/focusout +		var attaches = 0, +			handler = function( event ) { +				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); +			}; + +		jQuery.event.special[ fix ] = { +			setup: function() { +				if ( attaches++ === 0 ) { +					document.addEventListener( orig, handler, true ); +				} +			}, +			teardown: function() { +				if ( --attaches === 0 ) { +					document.removeEventListener( orig, handler, true ); +				} +			} +		}; +	}); +} + +jQuery.fn.extend({ + +	on: function( types, selector, data, fn, /*INTERNAL*/ one ) { +		var origFn, type; + +		// Types can be a map of types/handlers +		if ( typeof types === "object" ) { +			// ( types-Object, selector, data ) +			if ( typeof selector !== "string" ) { // && selector != null +				// ( types-Object, data ) +				data = data || selector; +				selector = undefined; +			} +			for ( type in types ) { +				this.on( type, selector, data, types[ type ], one ); +			} +			return this; +		} + +		if ( data == null && fn == null ) { +			// ( types, fn ) +			fn = selector; +			data = selector = undefined; +		} else if ( fn == null ) { +			if ( typeof selector === "string" ) { +				// ( types, selector, fn ) +				fn = data; +				data = undefined; +			} else { +				// ( types, data, fn ) +				fn = data; +				data = selector; +				selector = undefined; +			} +		} +		if ( fn === false ) { +			fn = returnFalse; +		} else if ( !fn ) { +			return this; +		} + +		if ( one === 1 ) { +			origFn = fn; +			fn = function( event ) { +				// Can use an empty set, since event contains the info +				jQuery().off( event ); +				return origFn.apply( this, arguments ); +			}; +			// Use same guid so caller can remove using origFn +			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); +		} +		return this.each( function() { +			jQuery.event.add( this, types, fn, data, selector ); +		}); +	}, +	one: function( types, selector, data, fn ) { +		return this.on( types, selector, data, fn, 1 ); +	}, +	off: function( types, selector, fn ) { +		var handleObj, type; +		if ( types && types.preventDefault && types.handleObj ) { +			// ( event )  dispatched jQuery.Event +			handleObj = types.handleObj; +			jQuery( types.delegateTarget ).off( +				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, +				handleObj.selector, +				handleObj.handler +			); +			return this; +		} +		if ( typeof types === "object" ) { +			// ( types-object [, selector] ) +			for ( type in types ) { +				this.off( type, selector, types[ type ] ); +			} +			return this; +		} +		if ( selector === false || typeof selector === "function" ) { +			// ( types [, fn] ) +			fn = selector; +			selector = undefined; +		} +		if ( fn === false ) { +			fn = returnFalse; +		} +		return this.each(function() { +			jQuery.event.remove( this, types, fn, selector ); +		}); +	}, + +	bind: function( types, data, fn ) { +		return this.on( types, null, data, fn ); +	}, +	unbind: function( types, fn ) { +		return this.off( types, null, fn ); +	}, + +	live: function( types, data, fn ) { +		jQuery( this.context ).on( types, this.selector, data, fn ); +		return this; +	}, +	die: function( types, fn ) { +		jQuery( this.context ).off( types, this.selector || "**", fn ); +		return this; +	}, + +	delegate: function( selector, types, data, fn ) { +		return this.on( types, selector, data, fn ); +	}, +	undelegate: function( selector, types, fn ) { +		// ( namespace ) or ( selector, types [, fn] ) +		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); +	}, + +	trigger: function( type, data ) { +		return this.each(function() { +			jQuery.event.trigger( type, data, this ); +		}); +	}, +	triggerHandler: function( type, data ) { +		if ( this[0] ) { +			return jQuery.event.trigger( type, data, this[0], true ); +		} +	}, + +	toggle: function( fn ) { +		// Save reference to arguments for access in closure +		var args = arguments, +			guid = fn.guid || jQuery.guid++, +			i = 0, +			toggler = function( event ) { +				// Figure out which function to execute +				var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; +				jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + +				// Make sure that clicks stop +				event.preventDefault(); + +				// and execute the function +				return args[ lastToggle ].apply( this, arguments ) || false; +			}; + +		// link all the functions, so any of them can unbind this click handler +		toggler.guid = guid; +		while ( i < args.length ) { +			args[ i++ ].guid = guid; +		} + +		return this.click( toggler ); +	}, + +	hover: function( fnOver, fnOut ) { +		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); +	} +}); + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + +	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + +	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + +	// Handle event binding +	jQuery.fn[ name ] = function( data, fn ) { +		if ( fn == null ) { +			fn = data; +			data = null; +		} + +		return arguments.length > 0 ? +			this.on( name, null, data, fn ) : +			this.trigger( name ); +	}; + +	if ( rkeyEvent.test( name ) ) { +		jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; +	} + +	if ( rmouseEvent.test( name ) ) { +		jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; +	} +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var cachedruns, +	assertGetIdNotName, +	Expr, +	getText, +	isXML, +	contains, +	compile, +	sortOrder, +	hasDuplicate, +	outermostContext, + +	baseHasDuplicate = true, +	strundefined = "undefined", + +	expando = ( "sizcache" + Math.random() ).replace( ".", "" ), + +	Token = String, +	document = window.document, +	docElem = document.documentElement, +	dirruns = 0, +	done = 0, +	pop = [].pop, +	push = [].push, +	slice = [].slice, +	// Use a stripped-down indexOf if a native one is unavailable +	indexOf = [].indexOf || function( elem ) { +		var i = 0, +			len = this.length; +		for ( ; i < len; i++ ) { +			if ( this[i] === elem ) { +				return i; +			} +		} +		return -1; +	}, + +	// Augment a function for special use by Sizzle +	markFunction = function( fn, value ) { +		fn[ expando ] = value == null || value; +		return fn; +	}, + +	createCache = function() { +		var cache = {}, +			keys = []; + +		return markFunction(function( key, value ) { +			// Only keep the most recent entries +			if ( keys.push( key ) > Expr.cacheLength ) { +				delete cache[ keys.shift() ]; +			} + +			// Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157) +			return (cache[ key + " " ] = value); +		}, cache ); +	}, + +	classCache = createCache(), +	tokenCache = createCache(), +	compilerCache = createCache(), + +	// Regex + +	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace +	whitespace = "[\\x20\\t\\r\\n\\f]", +	// http://www.w3.org/TR/css3-syntax/#characters +	characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + +	// Loosely modeled on CSS identifier characters +	// An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) +	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier +	identifier = characterEncoding.replace( "w", "w#" ), + +	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors +	operators = "([*^$|!~]?=)", +	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + +		"*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + +	// Prefer arguments not in parens/brackets, +	//   then attribute selectors and non-pseudos (denoted by :), +	//   then anything else +	// These preferences are here to reduce the number of selectors +	//   needing tokenize in the PSEUDO preFilter +	pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)", + +	// For matchExpr.POS and matchExpr.needsContext +	pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + +		"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", + +	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter +	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + +	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), +	rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), +	rpseudo = new RegExp( pseudos ), + +	// Easily-parseable/retrievable ID or TAG or CLASS selectors +	rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + +	rnot = /^:not/, +	rsibling = /[\x20\t\r\n\f]*[+~]/, +	rendsWithNot = /:not\($/, + +	rheader = /h\d/i, +	rinputs = /input|select|textarea|button/i, + +	rbackslash = /\\(?!\\)/g, + +	matchExpr = { +		"ID": new RegExp( "^#(" + characterEncoding + ")" ), +		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), +		"NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), +		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), +		"ATTR": new RegExp( "^" + attributes ), +		"PSEUDO": new RegExp( "^" + pseudos ), +		"POS": new RegExp( pos, "i" ), +		"CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace + +			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + +			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ), +		// For use in libraries implementing .is() +		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" ) +	}, + +	// Support + +	// Used for testing something on an element +	assert = function( fn ) { +		var div = document.createElement("div"); + +		try { +			return fn( div ); +		} catch (e) { +			return false; +		} finally { +			// release memory in IE +			div = null; +		} +	}, + +	// Check if getElementsByTagName("*") returns only elements +	assertTagNameNoComments = assert(function( div ) { +		div.appendChild( document.createComment("") ); +		return !div.getElementsByTagName("*").length; +	}), + +	// Check if getAttribute returns normalized href attributes +	assertHrefNotNormalized = assert(function( div ) { +		div.innerHTML = "<a href='#'></a>"; +		return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && +			div.firstChild.getAttribute("href") === "#"; +	}), + +	// Check if attributes should be retrieved by attribute nodes +	assertAttributes = assert(function( div ) { +		div.innerHTML = "<select></select>"; +		var type = typeof div.lastChild.getAttribute("multiple"); +		// IE8 returns a string for some attributes even when not present +		return type !== "boolean" && type !== "string"; +	}), + +	// Check if getElementsByClassName can be trusted +	assertUsableClassName = assert(function( div ) { +		// Opera can't find a second classname (in 9.6) +		div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; +		if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { +			return false; +		} + +		// Safari 3.2 caches class attributes and doesn't catch changes +		div.lastChild.className = "e"; +		return div.getElementsByClassName("e").length === 2; +	}), + +	// Check if getElementById returns elements by name +	// Check if getElementsByName privileges form controls or returns elements by ID +	assertUsableName = assert(function( div ) { +		// Inject content +		div.id = expando + 0; +		div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>"; +		docElem.insertBefore( div, docElem.firstChild ); + +		// Test +		var pass = document.getElementsByName && +			// buggy browsers will return fewer than the correct 2 +			document.getElementsByName( expando ).length === 2 + +			// buggy browsers will return more than the correct 0 +			document.getElementsByName( expando + 0 ).length; +		assertGetIdNotName = !document.getElementById( expando ); + +		// Cleanup +		docElem.removeChild( div ); + +		return pass; +	}); + +// If slice is not available, provide a backup +try { +	slice.call( docElem.childNodes, 0 )[0].nodeType; +} catch ( e ) { +	slice = function( i ) { +		var elem, +			results = []; +		for ( ; (elem = this[i]); i++ ) { +			results.push( elem ); +		} +		return results; +	}; +} + +function Sizzle( selector, context, results, seed ) { +	results = results || []; +	context = context || document; +	var match, elem, xml, m, +		nodeType = context.nodeType; + +	if ( !selector || typeof selector !== "string" ) { +		return results; +	} + +	if ( nodeType !== 1 && nodeType !== 9 ) { +		return []; +	} + +	xml = isXML( context ); + +	if ( !xml && !seed ) { +		if ( (match = rquickExpr.exec( selector )) ) { +			// Speed-up: Sizzle("#ID") +			if ( (m = match[1]) ) { +				if ( nodeType === 9 ) { +					elem = context.getElementById( m ); +					// Check parentNode to catch when Blackberry 4.6 returns +					// nodes that are no longer in the document #6963 +					if ( elem && elem.parentNode ) { +						// Handle the case where IE, Opera, and Webkit return items +						// by name instead of ID +						if ( elem.id === m ) { +							results.push( elem ); +							return results; +						} +					} else { +						return results; +					} +				} else { +					// Context is not a document +					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && +						contains( context, elem ) && elem.id === m ) { +						results.push( elem ); +						return results; +					} +				} + +			// Speed-up: Sizzle("TAG") +			} else if ( match[2] ) { +				push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); +				return results; + +			// Speed-up: Sizzle(".CLASS") +			} else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { +				push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); +				return results; +			} +		} +	} + +	// All others +	return select( selector.replace( rtrim, "$1" ), context, results, seed, xml ); +} + +Sizzle.matches = function( expr, elements ) { +	return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { +	return Sizzle( expr, null, null, [ elem ] ).length > 0; +}; + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { +	return function( elem ) { +		var name = elem.nodeName.toLowerCase(); +		return name === "input" && elem.type === type; +	}; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { +	return function( elem ) { +		var name = elem.nodeName.toLowerCase(); +		return (name === "input" || name === "button") && elem.type === type; +	}; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { +	return markFunction(function( argument ) { +		argument = +argument; +		return markFunction(function( seed, matches ) { +			var j, +				matchIndexes = fn( [], seed.length, argument ), +				i = matchIndexes.length; + +			// Match elements found at the specified indexes +			while ( i-- ) { +				if ( seed[ (j = matchIndexes[i]) ] ) { +					seed[j] = !(matches[j] = seed[j]); +				} +			} +		}); +	}); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { +	var node, +		ret = "", +		i = 0, +		nodeType = elem.nodeType; + +	if ( nodeType ) { +		if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { +			// Use textContent for elements +			// innerText usage removed for consistency of new lines (see #11153) +			if ( typeof elem.textContent === "string" ) { +				return elem.textContent; +			} else { +				// Traverse its children +				for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { +					ret += getText( elem ); +				} +			} +		} else if ( nodeType === 3 || nodeType === 4 ) { +			return elem.nodeValue; +		} +		// Do not include comment or processing instruction nodes +	} else { + +		// If no nodeType, this is expected to be an array +		for ( ; (node = elem[i]); i++ ) { +			// Do not traverse comment nodes +			ret += getText( node ); +		} +	} +	return ret; +}; + +isXML = Sizzle.isXML = function( elem ) { +	// documentElement is verified for cases where it doesn't yet exist +	// (such as loading iframes in IE - #4833) +	var documentElement = elem && (elem.ownerDocument || elem).documentElement; +	return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Element contains another +contains = Sizzle.contains = docElem.contains ? +	function( a, b ) { +		var adown = a.nodeType === 9 ? a.documentElement : a, +			bup = b && b.parentNode; +		return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) ); +	} : +	docElem.compareDocumentPosition ? +	function( a, b ) { +		return b && !!( a.compareDocumentPosition( b ) & 16 ); +	} : +	function( a, b ) { +		while ( (b = b.parentNode) ) { +			if ( b === a ) { +				return true; +			} +		} +		return false; +	}; + +Sizzle.attr = function( elem, name ) { +	var val, +		xml = isXML( elem ); + +	if ( !xml ) { +		name = name.toLowerCase(); +	} +	if ( (val = Expr.attrHandle[ name ]) ) { +		return val( elem ); +	} +	if ( xml || assertAttributes ) { +		return elem.getAttribute( name ); +	} +	val = elem.getAttributeNode( name ); +	return val ? +		typeof elem[ name ] === "boolean" ? +			elem[ name ] ? name : null : +			val.specified ? val.value : null : +		null; +}; + +Expr = Sizzle.selectors = { + +	// Can be adjusted by the user +	cacheLength: 50, + +	createPseudo: markFunction, + +	match: matchExpr, + +	// IE6/7 return a modified href +	attrHandle: assertHrefNotNormalized ? +		{} : +		{ +			"href": function( elem ) { +				return elem.getAttribute( "href", 2 ); +			}, +			"type": function( elem ) { +				return elem.getAttribute("type"); +			} +		}, + +	find: { +		"ID": assertGetIdNotName ? +			function( id, context, xml ) { +				if ( typeof context.getElementById !== strundefined && !xml ) { +					var m = context.getElementById( id ); +					// Check parentNode to catch when Blackberry 4.6 returns +					// nodes that are no longer in the document #6963 +					return m && m.parentNode ? [m] : []; +				} +			} : +			function( id, context, xml ) { +				if ( typeof context.getElementById !== strundefined && !xml ) { +					var m = context.getElementById( id ); + +					return m ? +						m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? +							[m] : +							undefined : +						[]; +				} +			}, + +		"TAG": assertTagNameNoComments ? +			function( tag, context ) { +				if ( typeof context.getElementsByTagName !== strundefined ) { +					return context.getElementsByTagName( tag ); +				} +			} : +			function( tag, context ) { +				var results = context.getElementsByTagName( tag ); + +				// Filter out possible comments +				if ( tag === "*" ) { +					var elem, +						tmp = [], +						i = 0; + +					for ( ; (elem = results[i]); i++ ) { +						if ( elem.nodeType === 1 ) { +							tmp.push( elem ); +						} +					} + +					return tmp; +				} +				return results; +			}, + +		"NAME": assertUsableName && function( tag, context ) { +			if ( typeof context.getElementsByName !== strundefined ) { +				return context.getElementsByName( name ); +			} +		}, + +		"CLASS": assertUsableClassName && function( className, context, xml ) { +			if ( typeof context.getElementsByClassName !== strundefined && !xml ) { +				return context.getElementsByClassName( className ); +			} +		} +	}, + +	relative: { +		">": { dir: "parentNode", first: true }, +		" ": { dir: "parentNode" }, +		"+": { dir: "previousSibling", first: true }, +		"~": { dir: "previousSibling" } +	}, + +	preFilter: { +		"ATTR": function( match ) { +			match[1] = match[1].replace( rbackslash, "" ); + +			// Move the given value to match[3] whether quoted or unquoted +			match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" ); + +			if ( match[2] === "~=" ) { +				match[3] = " " + match[3] + " "; +			} + +			return match.slice( 0, 4 ); +		}, + +		"CHILD": function( match ) { +			/* matches from matchExpr["CHILD"] +				1 type (only|nth|...) +				2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) +				3 xn-component of xn+y argument ([+-]?\d*n|) +				4 sign of xn-component +				5 x of xn-component +				6 sign of y-component +				7 y of y-component +			*/ +			match[1] = match[1].toLowerCase(); + +			if ( match[1] === "nth" ) { +				// nth-child requires argument +				if ( !match[2] ) { +					Sizzle.error( match[0] ); +				} + +				// numeric x and y parameters for Expr.filter.CHILD +				// remember that false/true cast respectively to 0/1 +				match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) ); +				match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" ); + +			// other types prohibit arguments +			} else if ( match[2] ) { +				Sizzle.error( match[0] ); +			} + +			return match; +		}, + +		"PSEUDO": function( match ) { +			var unquoted, excess; +			if ( matchExpr["CHILD"].test( match[0] ) ) { +				return null; +			} + +			if ( match[3] ) { +				match[2] = match[3]; +			} else if ( (unquoted = match[4]) ) { +				// Only check arguments that contain a pseudo +				if ( rpseudo.test(unquoted) && +					// Get excess from tokenize (recursively) +					(excess = tokenize( unquoted, true )) && +					// advance to the next closing parenthesis +					(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + +					// excess is a negative index +					unquoted = unquoted.slice( 0, excess ); +					match[0] = match[0].slice( 0, excess ); +				} +				match[2] = unquoted; +			} + +			// Return only captures needed by the pseudo filter method (type and argument) +			return match.slice( 0, 3 ); +		} +	}, + +	filter: { +		"ID": assertGetIdNotName ? +			function( id ) { +				id = id.replace( rbackslash, "" ); +				return function( elem ) { +					return elem.getAttribute("id") === id; +				}; +			} : +			function( id ) { +				id = id.replace( rbackslash, "" ); +				return function( elem ) { +					var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); +					return node && node.value === id; +				}; +			}, + +		"TAG": function( nodeName ) { +			if ( nodeName === "*" ) { +				return function() { return true; }; +			} +			nodeName = nodeName.replace( rbackslash, "" ).toLowerCase(); + +			return function( elem ) { +				return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; +			}; +		}, + +		"CLASS": function( className ) { +			var pattern = classCache[ expando ][ className + " " ]; + +			return pattern || +				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && +				classCache( className, function( elem ) { +					return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); +				}); +		}, + +		"ATTR": function( name, operator, check ) { +			return function( elem, context ) { +				var result = Sizzle.attr( elem, name ); + +				if ( result == null ) { +					return operator === "!="; +				} +				if ( !operator ) { +					return true; +				} + +				result += ""; + +				return operator === "=" ? result === check : +					operator === "!=" ? result !== check : +					operator === "^=" ? check && result.indexOf( check ) === 0 : +					operator === "*=" ? check && result.indexOf( check ) > -1 : +					operator === "$=" ? check && result.substr( result.length - check.length ) === check : +					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : +					operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" : +					false; +			}; +		}, + +		"CHILD": function( type, argument, first, last ) { + +			if ( type === "nth" ) { +				return function( elem ) { +					var node, diff, +						parent = elem.parentNode; + +					if ( first === 1 && last === 0 ) { +						return true; +					} + +					if ( parent ) { +						diff = 0; +						for ( node = parent.firstChild; node; node = node.nextSibling ) { +							if ( node.nodeType === 1 ) { +								diff++; +								if ( elem === node ) { +									break; +								} +							} +						} +					} + +					// Incorporate the offset (or cast to NaN), then check against cycle size +					diff -= last; +					return diff === first || ( diff % first === 0 && diff / first >= 0 ); +				}; +			} + +			return function( elem ) { +				var node = elem; + +				switch ( type ) { +					case "only": +					case "first": +						while ( (node = node.previousSibling) ) { +							if ( node.nodeType === 1 ) { +								return false; +							} +						} + +						if ( type === "first" ) { +							return true; +						} + +						node = elem; + +						/* falls through */ +					case "last": +						while ( (node = node.nextSibling) ) { +							if ( node.nodeType === 1 ) { +								return false; +							} +						} + +						return true; +				} +			}; +		}, + +		"PSEUDO": function( pseudo, argument ) { +			// pseudo-class names are case-insensitive +			// http://www.w3.org/TR/selectors/#pseudo-classes +			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters +			// Remember that setFilters inherits from pseudos +			var args, +				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || +					Sizzle.error( "unsupported pseudo: " + pseudo ); + +			// The user may use createPseudo to indicate that +			// arguments are needed to create the filter function +			// just as Sizzle does +			if ( fn[ expando ] ) { +				return fn( argument ); +			} + +			// But maintain support for old signatures +			if ( fn.length > 1 ) { +				args = [ pseudo, pseudo, "", argument ]; +				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? +					markFunction(function( seed, matches ) { +						var idx, +							matched = fn( seed, argument ), +							i = matched.length; +						while ( i-- ) { +							idx = indexOf.call( seed, matched[i] ); +							seed[ idx ] = !( matches[ idx ] = matched[i] ); +						} +					}) : +					function( elem ) { +						return fn( elem, 0, args ); +					}; +			} + +			return fn; +		} +	}, + +	pseudos: { +		"not": markFunction(function( selector ) { +			// Trim the selector passed to compile +			// to avoid treating leading and trailing +			// spaces as combinators +			var input = [], +				results = [], +				matcher = compile( selector.replace( rtrim, "$1" ) ); + +			return matcher[ expando ] ? +				markFunction(function( seed, matches, context, xml ) { +					var elem, +						unmatched = matcher( seed, null, xml, [] ), +						i = seed.length; + +					// Match elements unmatched by `matcher` +					while ( i-- ) { +						if ( (elem = unmatched[i]) ) { +							seed[i] = !(matches[i] = elem); +						} +					} +				}) : +				function( elem, context, xml ) { +					input[0] = elem; +					matcher( input, null, xml, results ); +					return !results.pop(); +				}; +		}), + +		"has": markFunction(function( selector ) { +			return function( elem ) { +				return Sizzle( selector, elem ).length > 0; +			}; +		}), + +		"contains": markFunction(function( text ) { +			return function( elem ) { +				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; +			}; +		}), + +		"enabled": function( elem ) { +			return elem.disabled === false; +		}, + +		"disabled": function( elem ) { +			return elem.disabled === true; +		}, + +		"checked": function( elem ) { +			// In CSS3, :checked should return both checked and selected elements +			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked +			var nodeName = elem.nodeName.toLowerCase(); +			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); +		}, + +		"selected": function( elem ) { +			// Accessing this property makes selected-by-default +			// options in Safari work properly +			if ( elem.parentNode ) { +				elem.parentNode.selectedIndex; +			} + +			return elem.selected === true; +		}, + +		"parent": function( elem ) { +			return !Expr.pseudos["empty"]( elem ); +		}, + +		"empty": function( elem ) { +			// http://www.w3.org/TR/selectors/#empty-pseudo +			// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), +			//   not comment, processing instructions, or others +			// Thanks to Diego Perini for the nodeName shortcut +			//   Greater than "@" means alpha characters (specifically not starting with "#" or "?") +			var nodeType; +			elem = elem.firstChild; +			while ( elem ) { +				if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) { +					return false; +				} +				elem = elem.nextSibling; +			} +			return true; +		}, + +		"header": function( elem ) { +			return rheader.test( elem.nodeName ); +		}, + +		"text": function( elem ) { +			var type, attr; +			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) +			// use getAttribute instead to test this case +			return elem.nodeName.toLowerCase() === "input" && +				(type = elem.type) === "text" && +				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type ); +		}, + +		// Input types +		"radio": createInputPseudo("radio"), +		"checkbox": createInputPseudo("checkbox"), +		"file": createInputPseudo("file"), +		"password": createInputPseudo("password"), +		"image": createInputPseudo("image"), + +		"submit": createButtonPseudo("submit"), +		"reset": createButtonPseudo("reset"), + +		"button": function( elem ) { +			var name = elem.nodeName.toLowerCase(); +			return name === "input" && elem.type === "button" || name === "button"; +		}, + +		"input": function( elem ) { +			return rinputs.test( elem.nodeName ); +		}, + +		"focus": function( elem ) { +			var doc = elem.ownerDocument; +			return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); +		}, + +		"active": function( elem ) { +			return elem === elem.ownerDocument.activeElement; +		}, + +		// Positional types +		"first": createPositionalPseudo(function() { +			return [ 0 ]; +		}), + +		"last": createPositionalPseudo(function( matchIndexes, length ) { +			return [ length - 1 ]; +		}), + +		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) { +			return [ argument < 0 ? argument + length : argument ]; +		}), + +		"even": createPositionalPseudo(function( matchIndexes, length ) { +			for ( var i = 0; i < length; i += 2 ) { +				matchIndexes.push( i ); +			} +			return matchIndexes; +		}), + +		"odd": createPositionalPseudo(function( matchIndexes, length ) { +			for ( var i = 1; i < length; i += 2 ) { +				matchIndexes.push( i ); +			} +			return matchIndexes; +		}), + +		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) { +			for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) { +				matchIndexes.push( i ); +			} +			return matchIndexes; +		}), + +		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) { +			for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) { +				matchIndexes.push( i ); +			} +			return matchIndexes; +		}) +	} +}; + +function siblingCheck( a, b, ret ) { +	if ( a === b ) { +		return ret; +	} + +	var cur = a.nextSibling; + +	while ( cur ) { +		if ( cur === b ) { +			return -1; +		} + +		cur = cur.nextSibling; +	} + +	return 1; +} + +sortOrder = docElem.compareDocumentPosition ? +	function( a, b ) { +		if ( a === b ) { +			hasDuplicate = true; +			return 0; +		} + +		return ( !a.compareDocumentPosition || !b.compareDocumentPosition ? +			a.compareDocumentPosition : +			a.compareDocumentPosition(b) & 4 +		) ? -1 : 1; +	} : +	function( a, b ) { +		// The nodes are identical, we can exit early +		if ( a === b ) { +			hasDuplicate = true; +			return 0; + +		// Fallback to using sourceIndex (in IE) if it's available on both nodes +		} else if ( a.sourceIndex && b.sourceIndex ) { +			return a.sourceIndex - b.sourceIndex; +		} + +		var al, bl, +			ap = [], +			bp = [], +			aup = a.parentNode, +			bup = b.parentNode, +			cur = aup; + +		// If the nodes are siblings (or identical) we can do a quick check +		if ( aup === bup ) { +			return siblingCheck( a, b ); + +		// If no parents were found then the nodes are disconnected +		} else if ( !aup ) { +			return -1; + +		} else if ( !bup ) { +			return 1; +		} + +		// Otherwise they're somewhere else in the tree so we need +		// to build up a full list of the parentNodes for comparison +		while ( cur ) { +			ap.unshift( cur ); +			cur = cur.parentNode; +		} + +		cur = bup; + +		while ( cur ) { +			bp.unshift( cur ); +			cur = cur.parentNode; +		} + +		al = ap.length; +		bl = bp.length; + +		// Start walking down the tree looking for a discrepancy +		for ( var i = 0; i < al && i < bl; i++ ) { +			if ( ap[i] !== bp[i] ) { +				return siblingCheck( ap[i], bp[i] ); +			} +		} + +		// We ended someplace up the tree so do a sibling check +		return i === al ? +			siblingCheck( a, bp[i], -1 ) : +			siblingCheck( ap[i], b, 1 ); +	}; + +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +baseHasDuplicate = !hasDuplicate; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { +	var elem, +		duplicates = [], +		i = 1, +		j = 0; + +	hasDuplicate = baseHasDuplicate; +	results.sort( sortOrder ); + +	if ( hasDuplicate ) { +		for ( ; (elem = results[i]); i++ ) { +			if ( elem === results[ i - 1 ] ) { +				j = duplicates.push( i ); +			} +		} +		while ( j-- ) { +			results.splice( duplicates[ j ], 1 ); +		} +	} + +	return results; +}; + +Sizzle.error = function( msg ) { +	throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +function tokenize( selector, parseOnly ) { +	var matched, match, tokens, type, +		soFar, groups, preFilters, +		cached = tokenCache[ expando ][ selector + " " ]; + +	if ( cached ) { +		return parseOnly ? 0 : cached.slice( 0 ); +	} + +	soFar = selector; +	groups = []; +	preFilters = Expr.preFilter; + +	while ( soFar ) { + +		// Comma and first run +		if ( !matched || (match = rcomma.exec( soFar )) ) { +			if ( match ) { +				// Don't consume trailing commas as valid +				soFar = soFar.slice( match[0].length ) || soFar; +			} +			groups.push( tokens = [] ); +		} + +		matched = false; + +		// Combinators +		if ( (match = rcombinators.exec( soFar )) ) { +			tokens.push( matched = new Token( match.shift() ) ); +			soFar = soFar.slice( matched.length ); + +			// Cast descendant combinators to space +			matched.type = match[0].replace( rtrim, " " ); +		} + +		// Filters +		for ( type in Expr.filter ) { +			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || +				(match = preFilters[ type ]( match ))) ) { + +				tokens.push( matched = new Token( match.shift() ) ); +				soFar = soFar.slice( matched.length ); +				matched.type = type; +				matched.matches = match; +			} +		} + +		if ( !matched ) { +			break; +		} +	} + +	// Return the length of the invalid excess +	// if we're just parsing +	// Otherwise, throw an error or return tokens +	return parseOnly ? +		soFar.length : +		soFar ? +			Sizzle.error( selector ) : +			// Cache the tokens +			tokenCache( selector, groups ).slice( 0 ); +} + +function addCombinator( matcher, combinator, base ) { +	var dir = combinator.dir, +		checkNonElements = base && combinator.dir === "parentNode", +		doneName = done++; + +	return combinator.first ? +		// Check against closest ancestor/preceding element +		function( elem, context, xml ) { +			while ( (elem = elem[ dir ]) ) { +				if ( checkNonElements || elem.nodeType === 1  ) { +					return matcher( elem, context, xml ); +				} +			} +		} : + +		// Check against all ancestor/preceding elements +		function( elem, context, xml ) { +			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching +			if ( !xml ) { +				var cache, +					dirkey = dirruns + " " + doneName + " ", +					cachedkey = dirkey + cachedruns; +				while ( (elem = elem[ dir ]) ) { +					if ( checkNonElements || elem.nodeType === 1 ) { +						if ( (cache = elem[ expando ]) === cachedkey ) { +							return elem.sizset; +						} else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) { +							if ( elem.sizset ) { +								return elem; +							} +						} else { +							elem[ expando ] = cachedkey; +							if ( matcher( elem, context, xml ) ) { +								elem.sizset = true; +								return elem; +							} +							elem.sizset = false; +						} +					} +				} +			} else { +				while ( (elem = elem[ dir ]) ) { +					if ( checkNonElements || elem.nodeType === 1 ) { +						if ( matcher( elem, context, xml ) ) { +							return elem; +						} +					} +				} +			} +		}; +} + +function elementMatcher( matchers ) { +	return matchers.length > 1 ? +		function( elem, context, xml ) { +			var i = matchers.length; +			while ( i-- ) { +				if ( !matchers[i]( elem, context, xml ) ) { +					return false; +				} +			} +			return true; +		} : +		matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { +	var elem, +		newUnmatched = [], +		i = 0, +		len = unmatched.length, +		mapped = map != null; + +	for ( ; i < len; i++ ) { +		if ( (elem = unmatched[i]) ) { +			if ( !filter || filter( elem, context, xml ) ) { +				newUnmatched.push( elem ); +				if ( mapped ) { +					map.push( i ); +				} +			} +		} +	} + +	return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { +	if ( postFilter && !postFilter[ expando ] ) { +		postFilter = setMatcher( postFilter ); +	} +	if ( postFinder && !postFinder[ expando ] ) { +		postFinder = setMatcher( postFinder, postSelector ); +	} +	return markFunction(function( seed, results, context, xml ) { +		var temp, i, elem, +			preMap = [], +			postMap = [], +			preexisting = results.length, + +			// Get initial elements from seed or context +			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + +			// Prefilter to get matcher input, preserving a map for seed-results synchronization +			matcherIn = preFilter && ( seed || !selector ) ? +				condense( elems, preMap, preFilter, context, xml ) : +				elems, + +			matcherOut = matcher ? +				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, +				postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + +					// ...intermediate processing is necessary +					[] : + +					// ...otherwise use results directly +					results : +				matcherIn; + +		// Find primary matches +		if ( matcher ) { +			matcher( matcherIn, matcherOut, context, xml ); +		} + +		// Apply postFilter +		if ( postFilter ) { +			temp = condense( matcherOut, postMap ); +			postFilter( temp, [], context, xml ); + +			// Un-match failing elements by moving them back to matcherIn +			i = temp.length; +			while ( i-- ) { +				if ( (elem = temp[i]) ) { +					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); +				} +			} +		} + +		if ( seed ) { +			if ( postFinder || preFilter ) { +				if ( postFinder ) { +					// Get the final matcherOut by condensing this intermediate into postFinder contexts +					temp = []; +					i = matcherOut.length; +					while ( i-- ) { +						if ( (elem = matcherOut[i]) ) { +							// Restore matcherIn since elem is not yet a final match +							temp.push( (matcherIn[i] = elem) ); +						} +					} +					postFinder( null, (matcherOut = []), temp, xml ); +				} + +				// Move matched elements from seed to results to keep them synchronized +				i = matcherOut.length; +				while ( i-- ) { +					if ( (elem = matcherOut[i]) && +						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + +						seed[temp] = !(results[temp] = elem); +					} +				} +			} + +		// Add elements to results, through postFinder if defined +		} else { +			matcherOut = condense( +				matcherOut === results ? +					matcherOut.splice( preexisting, matcherOut.length ) : +					matcherOut +			); +			if ( postFinder ) { +				postFinder( null, results, matcherOut, xml ); +			} else { +				push.apply( results, matcherOut ); +			} +		} +	}); +} + +function matcherFromTokens( tokens ) { +	var checkContext, matcher, j, +		len = tokens.length, +		leadingRelative = Expr.relative[ tokens[0].type ], +		implicitRelative = leadingRelative || Expr.relative[" "], +		i = leadingRelative ? 1 : 0, + +		// The foundational matcher ensures that elements are reachable from top-level context(s) +		matchContext = addCombinator( function( elem ) { +			return elem === checkContext; +		}, implicitRelative, true ), +		matchAnyContext = addCombinator( function( elem ) { +			return indexOf.call( checkContext, elem ) > -1; +		}, implicitRelative, true ), +		matchers = [ function( elem, context, xml ) { +			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( +				(checkContext = context).nodeType ? +					matchContext( elem, context, xml ) : +					matchAnyContext( elem, context, xml ) ); +		} ]; + +	for ( ; i < len; i++ ) { +		if ( (matcher = Expr.relative[ tokens[i].type ]) ) { +			matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; +		} else { +			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + +			// Return special upon seeing a positional matcher +			if ( matcher[ expando ] ) { +				// Find the next relative operator (if any) for proper handling +				j = ++i; +				for ( ; j < len; j++ ) { +					if ( Expr.relative[ tokens[j].type ] ) { +						break; +					} +				} +				return setMatcher( +					i > 1 && elementMatcher( matchers ), +					i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ), +					matcher, +					i < j && matcherFromTokens( tokens.slice( i, j ) ), +					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), +					j < len && tokens.join("") +				); +			} +			matchers.push( matcher ); +		} +	} + +	return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { +	var bySet = setMatchers.length > 0, +		byElement = elementMatchers.length > 0, +		superMatcher = function( seed, context, xml, results, expandContext ) { +			var elem, j, matcher, +				setMatched = [], +				matchedCount = 0, +				i = "0", +				unmatched = seed && [], +				outermost = expandContext != null, +				contextBackup = outermostContext, +				// We must always have either seed elements or context +				elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), +				// Nested matchers should use non-integer dirruns +				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E); + +			if ( outermost ) { +				outermostContext = context !== document && context; +				cachedruns = superMatcher.el; +			} + +			// Add elements passing elementMatchers directly to results +			for ( ; (elem = elems[i]) != null; i++ ) { +				if ( byElement && elem ) { +					for ( j = 0; (matcher = elementMatchers[j]); j++ ) { +						if ( matcher( elem, context, xml ) ) { +							results.push( elem ); +							break; +						} +					} +					if ( outermost ) { +						dirruns = dirrunsUnique; +						cachedruns = ++superMatcher.el; +					} +				} + +				// Track unmatched elements for set filters +				if ( bySet ) { +					// They will have gone through all possible matchers +					if ( (elem = !matcher && elem) ) { +						matchedCount--; +					} + +					// Lengthen the array for every element, matched or not +					if ( seed ) { +						unmatched.push( elem ); +					} +				} +			} + +			// Apply set filters to unmatched elements +			matchedCount += i; +			if ( bySet && i !== matchedCount ) { +				for ( j = 0; (matcher = setMatchers[j]); j++ ) { +					matcher( unmatched, setMatched, context, xml ); +				} + +				if ( seed ) { +					// Reintegrate element matches to eliminate the need for sorting +					if ( matchedCount > 0 ) { +						while ( i-- ) { +							if ( !(unmatched[i] || setMatched[i]) ) { +								setMatched[i] = pop.call( results ); +							} +						} +					} + +					// Discard index placeholder values to get only actual matches +					setMatched = condense( setMatched ); +				} + +				// Add matches to results +				push.apply( results, setMatched ); + +				// Seedless set matches succeeding multiple successful matchers stipulate sorting +				if ( outermost && !seed && setMatched.length > 0 && +					( matchedCount + setMatchers.length ) > 1 ) { + +					Sizzle.uniqueSort( results ); +				} +			} + +			// Override manipulation of globals by nested matchers +			if ( outermost ) { +				dirruns = dirrunsUnique; +				outermostContext = contextBackup; +			} + +			return unmatched; +		}; + +	superMatcher.el = 0; +	return bySet ? +		markFunction( superMatcher ) : +		superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { +	var i, +		setMatchers = [], +		elementMatchers = [], +		cached = compilerCache[ expando ][ selector + " " ]; + +	if ( !cached ) { +		// Generate a function of recursive functions that can be used to check each element +		if ( !group ) { +			group = tokenize( selector ); +		} +		i = group.length; +		while ( i-- ) { +			cached = matcherFromTokens( group[i] ); +			if ( cached[ expando ] ) { +				setMatchers.push( cached ); +			} else { +				elementMatchers.push( cached ); +			} +		} + +		// Cache the compiled function +		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); +	} +	return cached; +}; + +function multipleContexts( selector, contexts, results ) { +	var i = 0, +		len = contexts.length; +	for ( ; i < len; i++ ) { +		Sizzle( selector, contexts[i], results ); +	} +	return results; +} + +function select( selector, context, results, seed, xml ) { +	var i, tokens, token, type, find, +		match = tokenize( selector ), +		j = match.length; + +	if ( !seed ) { +		// Try to minimize operations if there is only one group +		if ( match.length === 1 ) { + +			// Take a shortcut and set the context if the root selector is an ID +			tokens = match[0] = match[0].slice( 0 ); +			if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && +					context.nodeType === 9 && !xml && +					Expr.relative[ tokens[1].type ] ) { + +				context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0]; +				if ( !context ) { +					return results; +				} + +				selector = selector.slice( tokens.shift().length ); +			} + +			// Fetch a seed set for right-to-left matching +			for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) { +				token = tokens[i]; + +				// Abort if we hit a combinator +				if ( Expr.relative[ (type = token.type) ] ) { +					break; +				} +				if ( (find = Expr.find[ type ]) ) { +					// Search, expanding context for leading sibling combinators +					if ( (seed = find( +						token.matches[0].replace( rbackslash, "" ), +						rsibling.test( tokens[0].type ) && context.parentNode || context, +						xml +					)) ) { + +						// If seed is empty or no tokens remain, we can return early +						tokens.splice( i, 1 ); +						selector = seed.length && tokens.join(""); +						if ( !selector ) { +							push.apply( results, slice.call( seed, 0 ) ); +							return results; +						} + +						break; +					} +				} +			} +		} +	} + +	// Compile and execute a filtering function +	// Provide `match` to avoid retokenization if we modified the selector above +	compile( selector, match )( +		seed, +		context, +		xml, +		results, +		rsibling.test( selector ) +	); +	return results; +} + +if ( document.querySelectorAll ) { +	(function() { +		var disconnectedMatch, +			oldSelect = select, +			rescape = /'|\\/g, +			rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + +			// qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA +			// A support test would require too much code (would include document ready) +			rbuggyQSA = [ ":focus" ], + +			// matchesSelector(:active) reports false when true (IE9/Opera 11.5) +			// A support test would require too much code (would include document ready) +			// just skip matchesSelector for :active +			rbuggyMatches = [ ":active" ], +			matches = docElem.matchesSelector || +				docElem.mozMatchesSelector || +				docElem.webkitMatchesSelector || +				docElem.oMatchesSelector || +				docElem.msMatchesSelector; + +		// Build QSA regex +		// Regex strategy adopted from Diego Perini +		assert(function( div ) { +			// Select is set to empty string on purpose +			// This is to test IE's treatment of not explictly +			// setting a boolean content attribute, +			// since its presence should be enough +			// http://bugs.jquery.com/ticket/12359 +			div.innerHTML = "<select><option selected=''></option></select>"; + +			// IE8 - Some boolean attributes are not treated correctly +			if ( !div.querySelectorAll("[selected]").length ) { +				rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); +			} + +			// Webkit/Opera - :checked should return selected option elements +			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked +			// IE8 throws error here (do not put tests after this one) +			if ( !div.querySelectorAll(":checked").length ) { +				rbuggyQSA.push(":checked"); +			} +		}); + +		assert(function( div ) { + +			// Opera 10-12/IE9 - ^= $= *= and empty values +			// Should not select anything +			div.innerHTML = "<p test=''></p>"; +			if ( div.querySelectorAll("[test^='']").length ) { +				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); +			} + +			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) +			// IE8 throws error here (do not put tests after this one) +			div.innerHTML = "<input type='hidden'/>"; +			if ( !div.querySelectorAll(":enabled").length ) { +				rbuggyQSA.push(":enabled", ":disabled"); +			} +		}); + +		// rbuggyQSA always contains :focus, so no need for a length check +		rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") ); + +		select = function( selector, context, results, seed, xml ) { +			// Only use querySelectorAll when not filtering, +			// when this is not xml, +			// and when no QSA bugs apply +			if ( !seed && !xml && !rbuggyQSA.test( selector ) ) { +				var groups, i, +					old = true, +					nid = expando, +					newContext = context, +					newSelector = context.nodeType === 9 && selector; + +				// qSA works strangely on Element-rooted queries +				// We can work around this by specifying an extra ID on the root +				// and working up from there (Thanks to Andrew Dupont for the technique) +				// IE 8 doesn't work on object elements +				if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { +					groups = tokenize( selector ); + +					if ( (old = context.getAttribute("id")) ) { +						nid = old.replace( rescape, "\\$&" ); +					} else { +						context.setAttribute( "id", nid ); +					} +					nid = "[id='" + nid + "'] "; + +					i = groups.length; +					while ( i-- ) { +						groups[i] = nid + groups[i].join(""); +					} +					newContext = rsibling.test( selector ) && context.parentNode || context; +					newSelector = groups.join(","); +				} + +				if ( newSelector ) { +					try { +						push.apply( results, slice.call( newContext.querySelectorAll( +							newSelector +						), 0 ) ); +						return results; +					} catch(qsaError) { +					} finally { +						if ( !old ) { +							context.removeAttribute("id"); +						} +					} +				} +			} + +			return oldSelect( selector, context, results, seed, xml ); +		}; + +		if ( matches ) { +			assert(function( div ) { +				// Check to see if it's possible to do matchesSelector +				// on a disconnected node (IE 9) +				disconnectedMatch = matches.call( div, "div" ); + +				// This should fail with an exception +				// Gecko does not error, returns false instead +				try { +					matches.call( div, "[test!='']:sizzle" ); +					rbuggyMatches.push( "!=", pseudos ); +				} catch ( e ) {} +			}); + +			// rbuggyMatches always contains :active and :focus, so no need for a length check +			rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") ); + +			Sizzle.matchesSelector = function( elem, expr ) { +				// Make sure that attribute selectors are quoted +				expr = expr.replace( rattributeQuotes, "='$1']" ); + +				// rbuggyMatches always contains :active, so no need for an existence check +				if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) { +					try { +						var ret = matches.call( elem, expr ); + +						// IE 9's matchesSelector returns false on disconnected nodes +						if ( ret || disconnectedMatch || +								// As well, disconnected nodes are said to be in a document +								// fragment in IE 9 +								elem.document && elem.document.nodeType !== 11 ) { +							return ret; +						} +					} catch(e) {} +				} + +				return Sizzle( expr, null, null, [ elem ] ).length > 0; +			}; +		} +	})(); +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Back-compat +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, +	rparentsprev = /^(?:parents|prev(?:Until|All))/, +	isSimple = /^.[^:#\[\.,]*$/, +	rneedsContext = jQuery.expr.match.needsContext, +	// methods guaranteed to produce a unique set when starting from a unique set +	guaranteedUnique = { +		children: true, +		contents: true, +		next: true, +		prev: true +	}; + +jQuery.fn.extend({ +	find: function( selector ) { +		var i, l, length, n, r, ret, +			self = this; + +		if ( typeof selector !== "string" ) { +			return jQuery( selector ).filter(function() { +				for ( i = 0, l = self.length; i < l; i++ ) { +					if ( jQuery.contains( self[ i ], this ) ) { +						return true; +					} +				} +			}); +		} + +		ret = this.pushStack( "", "find", selector ); + +		for ( i = 0, l = this.length; i < l; i++ ) { +			length = ret.length; +			jQuery.find( selector, this[i], ret ); + +			if ( i > 0 ) { +				// Make sure that the results are unique +				for ( n = length; n < ret.length; n++ ) { +					for ( r = 0; r < length; r++ ) { +						if ( ret[r] === ret[n] ) { +							ret.splice(n--, 1); +							break; +						} +					} +				} +			} +		} + +		return ret; +	}, + +	has: function( target ) { +		var i, +			targets = jQuery( target, this ), +			len = targets.length; + +		return this.filter(function() { +			for ( i = 0; i < len; i++ ) { +				if ( jQuery.contains( this, targets[i] ) ) { +					return true; +				} +			} +		}); +	}, + +	not: function( selector ) { +		return this.pushStack( winnow(this, selector, false), "not", selector); +	}, + +	filter: function( selector ) { +		return this.pushStack( winnow(this, selector, true), "filter", selector ); +	}, + +	is: function( selector ) { +		return !!selector && ( +			typeof selector === "string" ? +				// If this is a positional/relative selector, check membership in the returned set +				// so $("p:first").is("p:last") won't return true for a doc with two "p". +				rneedsContext.test( selector ) ? +					jQuery( selector, this.context ).index( this[0] ) >= 0 : +					jQuery.filter( selector, this ).length > 0 : +				this.filter( selector ).length > 0 ); +	}, + +	closest: function( selectors, context ) { +		var cur, +			i = 0, +			l = this.length, +			ret = [], +			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? +				jQuery( selectors, context || this.context ) : +				0; + +		for ( ; i < l; i++ ) { +			cur = this[i]; + +			while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { +				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { +					ret.push( cur ); +					break; +				} +				cur = cur.parentNode; +			} +		} + +		ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + +		return this.pushStack( ret, "closest", selectors ); +	}, + +	// Determine the position of an element within +	// the matched set of elements +	index: function( elem ) { + +		// No argument, return index in parent +		if ( !elem ) { +			return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; +		} + +		// index in selector +		if ( typeof elem === "string" ) { +			return jQuery.inArray( this[0], jQuery( elem ) ); +		} + +		// Locate the position of the desired element +		return jQuery.inArray( +			// If it receives a jQuery object, the first element is used +			elem.jquery ? elem[0] : elem, this ); +	}, + +	add: function( selector, context ) { +		var set = typeof selector === "string" ? +				jQuery( selector, context ) : +				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), +			all = jQuery.merge( this.get(), set ); + +		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? +			all : +			jQuery.unique( all ) ); +	}, + +	addBack: function( selector ) { +		return this.add( selector == null ? +			this.prevObject : this.prevObject.filter(selector) +		); +	} +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { +	return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +function sibling( cur, dir ) { +	do { +		cur = cur[ dir ]; +	} while ( cur && cur.nodeType !== 1 ); + +	return cur; +} + +jQuery.each({ +	parent: function( elem ) { +		var parent = elem.parentNode; +		return parent && parent.nodeType !== 11 ? parent : null; +	}, +	parents: function( elem ) { +		return jQuery.dir( elem, "parentNode" ); +	}, +	parentsUntil: function( elem, i, until ) { +		return jQuery.dir( elem, "parentNode", until ); +	}, +	next: function( elem ) { +		return sibling( elem, "nextSibling" ); +	}, +	prev: function( elem ) { +		return sibling( elem, "previousSibling" ); +	}, +	nextAll: function( elem ) { +		return jQuery.dir( elem, "nextSibling" ); +	}, +	prevAll: function( elem ) { +		return jQuery.dir( elem, "previousSibling" ); +	}, +	nextUntil: function( elem, i, until ) { +		return jQuery.dir( elem, "nextSibling", until ); +	}, +	prevUntil: function( elem, i, until ) { +		return jQuery.dir( elem, "previousSibling", until ); +	}, +	siblings: function( elem ) { +		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); +	}, +	children: function( elem ) { +		return jQuery.sibling( elem.firstChild ); +	}, +	contents: function( elem ) { +		return jQuery.nodeName( elem, "iframe" ) ? +			elem.contentDocument || elem.contentWindow.document : +			jQuery.merge( [], elem.childNodes ); +	} +}, function( name, fn ) { +	jQuery.fn[ name ] = function( until, selector ) { +		var ret = jQuery.map( this, fn, until ); + +		if ( !runtil.test( name ) ) { +			selector = until; +		} + +		if ( selector && typeof selector === "string" ) { +			ret = jQuery.filter( selector, ret ); +		} + +		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + +		if ( this.length > 1 && rparentsprev.test( name ) ) { +			ret = ret.reverse(); +		} + +		return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); +	}; +}); + +jQuery.extend({ +	filter: function( expr, elems, not ) { +		if ( not ) { +			expr = ":not(" + expr + ")"; +		} + +		return elems.length === 1 ? +			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : +			jQuery.find.matches(expr, elems); +	}, + +	dir: function( elem, dir, until ) { +		var matched = [], +			cur = elem[ dir ]; + +		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { +			if ( cur.nodeType === 1 ) { +				matched.push( cur ); +			} +			cur = cur[dir]; +		} +		return matched; +	}, + +	sibling: function( n, elem ) { +		var r = []; + +		for ( ; n; n = n.nextSibling ) { +			if ( n.nodeType === 1 && n !== elem ) { +				r.push( n ); +			} +		} + +		return r; +	} +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + +	// Can't pass null or undefined to indexOf in Firefox 4 +	// Set to 0 to skip string check +	qualifier = qualifier || 0; + +	if ( jQuery.isFunction( qualifier ) ) { +		return jQuery.grep(elements, function( elem, i ) { +			var retVal = !!qualifier.call( elem, i, elem ); +			return retVal === keep; +		}); + +	} else if ( qualifier.nodeType ) { +		return jQuery.grep(elements, function( elem, i ) { +			return ( elem === qualifier ) === keep; +		}); + +	} else if ( typeof qualifier === "string" ) { +		var filtered = jQuery.grep(elements, function( elem ) { +			return elem.nodeType === 1; +		}); + +		if ( isSimple.test( qualifier ) ) { +			return jQuery.filter(qualifier, filtered, !keep); +		} else { +			qualifier = jQuery.filter( qualifier, filtered ); +		} +	} + +	return jQuery.grep(elements, function( elem, i ) { +		return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; +	}); +} +function createSafeFragment( document ) { +	var list = nodeNames.split( "|" ), +	safeFrag = document.createDocumentFragment(); + +	if ( safeFrag.createElement ) { +		while ( list.length ) { +			safeFrag.createElement( +				list.pop() +			); +		} +	} +	return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + +		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", +	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, +	rleadingWhitespace = /^\s+/, +	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, +	rtagName = /<([\w:]+)/, +	rtbody = /<tbody/i, +	rhtml = /<|&#?\w+;/, +	rnoInnerhtml = /<(?:script|style|link)/i, +	rnocache = /<(?:script|object|embed|option|style)/i, +	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), +	rcheckableType = /^(?:checkbox|radio)$/, +	// checked="checked" or checked +	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, +	rscriptType = /\/(java|ecma)script/i, +	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g, +	wrapMap = { +		option: [ 1, "<select multiple='multiple'>", "</select>" ], +		legend: [ 1, "<fieldset>", "</fieldset>" ], +		thead: [ 1, "<table>", "</table>" ], +		tr: [ 2, "<table><tbody>", "</tbody></table>" ], +		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], +		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], +		area: [ 1, "<map>", "</map>" ], +		_default: [ 0, "", "" ] +	}, +	safeFragment = createSafeFragment( document ), +	fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, +// unless wrapped in a div with non-breaking characters in front of it. +if ( !jQuery.support.htmlSerialize ) { +	wrapMap._default = [ 1, "X<div>", "</div>" ]; +} + +jQuery.fn.extend({ +	text: function( value ) { +		return jQuery.access( this, function( value ) { +			return value === undefined ? +				jQuery.text( this ) : +				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); +		}, null, value, arguments.length ); +	}, + +	wrapAll: function( html ) { +		if ( jQuery.isFunction( html ) ) { +			return this.each(function(i) { +				jQuery(this).wrapAll( html.call(this, i) ); +			}); +		} + +		if ( this[0] ) { +			// The elements to wrap the target around +			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + +			if ( this[0].parentNode ) { +				wrap.insertBefore( this[0] ); +			} + +			wrap.map(function() { +				var elem = this; + +				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { +					elem = elem.firstChild; +				} + +				return elem; +			}).append( this ); +		} + +		return this; +	}, + +	wrapInner: function( html ) { +		if ( jQuery.isFunction( html ) ) { +			return this.each(function(i) { +				jQuery(this).wrapInner( html.call(this, i) ); +			}); +		} + +		return this.each(function() { +			var self = jQuery( this ), +				contents = self.contents(); + +			if ( contents.length ) { +				contents.wrapAll( html ); + +			} else { +				self.append( html ); +			} +		}); +	}, + +	wrap: function( html ) { +		var isFunction = jQuery.isFunction( html ); + +		return this.each(function(i) { +			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); +		}); +	}, + +	unwrap: function() { +		return this.parent().each(function() { +			if ( !jQuery.nodeName( this, "body" ) ) { +				jQuery( this ).replaceWith( this.childNodes ); +			} +		}).end(); +	}, + +	append: function() { +		return this.domManip(arguments, true, function( elem ) { +			if ( this.nodeType === 1 || this.nodeType === 11 ) { +				this.appendChild( elem ); +			} +		}); +	}, + +	prepend: function() { +		return this.domManip(arguments, true, function( elem ) { +			if ( this.nodeType === 1 || this.nodeType === 11 ) { +				this.insertBefore( elem, this.firstChild ); +			} +		}); +	}, + +	before: function() { +		if ( !isDisconnected( this[0] ) ) { +			return this.domManip(arguments, false, function( elem ) { +				this.parentNode.insertBefore( elem, this ); +			}); +		} + +		if ( arguments.length ) { +			var set = jQuery.clean( arguments ); +			return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); +		} +	}, + +	after: function() { +		if ( !isDisconnected( this[0] ) ) { +			return this.domManip(arguments, false, function( elem ) { +				this.parentNode.insertBefore( elem, this.nextSibling ); +			}); +		} + +		if ( arguments.length ) { +			var set = jQuery.clean( arguments ); +			return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); +		} +	}, + +	// keepData is for internal use only--do not document +	remove: function( selector, keepData ) { +		var elem, +			i = 0; + +		for ( ; (elem = this[i]) != null; i++ ) { +			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { +				if ( !keepData && elem.nodeType === 1 ) { +					jQuery.cleanData( elem.getElementsByTagName("*") ); +					jQuery.cleanData( [ elem ] ); +				} + +				if ( elem.parentNode ) { +					elem.parentNode.removeChild( elem ); +				} +			} +		} + +		return this; +	}, + +	empty: function() { +		var elem, +			i = 0; + +		for ( ; (elem = this[i]) != null; i++ ) { +			// Remove element nodes and prevent memory leaks +			if ( elem.nodeType === 1 ) { +				jQuery.cleanData( elem.getElementsByTagName("*") ); +			} + +			// Remove any remaining nodes +			while ( elem.firstChild ) { +				elem.removeChild( elem.firstChild ); +			} +		} + +		return this; +	}, + +	clone: function( dataAndEvents, deepDataAndEvents ) { +		dataAndEvents = dataAndEvents == null ? false : dataAndEvents; +		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + +		return this.map( function () { +			return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); +		}); +	}, + +	html: function( value ) { +		return jQuery.access( this, function( value ) { +			var elem = this[0] || {}, +				i = 0, +				l = this.length; + +			if ( value === undefined ) { +				return elem.nodeType === 1 ? +					elem.innerHTML.replace( rinlinejQuery, "" ) : +					undefined; +			} + +			// See if we can take a shortcut and just use innerHTML +			if ( typeof value === "string" && !rnoInnerhtml.test( value ) && +				( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) && +				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && +				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + +				value = value.replace( rxhtmlTag, "<$1></$2>" ); + +				try { +					for (; i < l; i++ ) { +						// Remove element nodes and prevent memory leaks +						elem = this[i] || {}; +						if ( elem.nodeType === 1 ) { +							jQuery.cleanData( elem.getElementsByTagName( "*" ) ); +							elem.innerHTML = value; +						} +					} + +					elem = 0; + +				// If using innerHTML throws an exception, use the fallback method +				} catch(e) {} +			} + +			if ( elem ) { +				this.empty().append( value ); +			} +		}, null, value, arguments.length ); +	}, + +	replaceWith: function( value ) { +		if ( !isDisconnected( this[0] ) ) { +			// Make sure that the elements are removed from the DOM before they are inserted +			// this can help fix replacing a parent with child elements +			if ( jQuery.isFunction( value ) ) { +				return this.each(function(i) { +					var self = jQuery(this), old = self.html(); +					self.replaceWith( value.call( this, i, old ) ); +				}); +			} + +			if ( typeof value !== "string" ) { +				value = jQuery( value ).detach(); +			} + +			return this.each(function() { +				var next = this.nextSibling, +					parent = this.parentNode; + +				jQuery( this ).remove(); + +				if ( next ) { +					jQuery(next).before( value ); +				} else { +					jQuery(parent).append( value ); +				} +			}); +		} + +		return this.length ? +			this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : +			this; +	}, + +	detach: function( selector ) { +		return this.remove( selector, true ); +	}, + +	domManip: function( args, table, callback ) { + +		// Flatten any nested arrays +		args = [].concat.apply( [], args ); + +		var results, first, fragment, iNoClone, +			i = 0, +			value = args[0], +			scripts = [], +			l = this.length; + +		// We can't cloneNode fragments that contain checked, in WebKit +		if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) { +			return this.each(function() { +				jQuery(this).domManip( args, table, callback ); +			}); +		} + +		if ( jQuery.isFunction(value) ) { +			return this.each(function(i) { +				var self = jQuery(this); +				args[0] = value.call( this, i, table ? self.html() : undefined ); +				self.domManip( args, table, callback ); +			}); +		} + +		if ( this[0] ) { +			results = jQuery.buildFragment( args, this, scripts ); +			fragment = results.fragment; +			first = fragment.firstChild; + +			if ( fragment.childNodes.length === 1 ) { +				fragment = first; +			} + +			if ( first ) { +				table = table && jQuery.nodeName( first, "tr" ); + +				// Use the original fragment for the last item instead of the first because it can end up +				// being emptied incorrectly in certain situations (#8070). +				// Fragments from the fragment cache must always be cloned and never used in place. +				for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) { +					callback.call( +						table && jQuery.nodeName( this[i], "table" ) ? +							findOrAppend( this[i], "tbody" ) : +							this[i], +						i === iNoClone ? +							fragment : +							jQuery.clone( fragment, true, true ) +					); +				} +			} + +			// Fix #11809: Avoid leaking memory +			fragment = first = null; + +			if ( scripts.length ) { +				jQuery.each( scripts, function( i, elem ) { +					if ( elem.src ) { +						if ( jQuery.ajax ) { +							jQuery.ajax({ +								url: elem.src, +								type: "GET", +								dataType: "script", +								async: false, +								global: false, +								"throws": true +							}); +						} else { +							jQuery.error("no ajax"); +						} +					} else { +						jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) ); +					} + +					if ( elem.parentNode ) { +						elem.parentNode.removeChild( elem ); +					} +				}); +			} +		} + +		return this; +	} +}); + +function findOrAppend( elem, tag ) { +	return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +function cloneCopyEvent( src, dest ) { + +	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { +		return; +	} + +	var type, i, l, +		oldData = jQuery._data( src ), +		curData = jQuery._data( dest, oldData ), +		events = oldData.events; + +	if ( events ) { +		delete curData.handle; +		curData.events = {}; + +		for ( type in events ) { +			for ( i = 0, l = events[ type ].length; i < l; i++ ) { +				jQuery.event.add( dest, type, events[ type ][ i ] ); +			} +		} +	} + +	// make the cloned public data object a copy from the original +	if ( curData.data ) { +		curData.data = jQuery.extend( {}, curData.data ); +	} +} + +function cloneFixAttributes( src, dest ) { +	var nodeName; + +	// We do not need to do anything for non-Elements +	if ( dest.nodeType !== 1 ) { +		return; +	} + +	// clearAttributes removes the attributes, which we don't want, +	// but also removes the attachEvent events, which we *do* want +	if ( dest.clearAttributes ) { +		dest.clearAttributes(); +	} + +	// mergeAttributes, in contrast, only merges back on the +	// original attributes, not the events +	if ( dest.mergeAttributes ) { +		dest.mergeAttributes( src ); +	} + +	nodeName = dest.nodeName.toLowerCase(); + +	if ( nodeName === "object" ) { +		// IE6-10 improperly clones children of object elements using classid. +		// IE10 throws NoModificationAllowedError if parent is null, #12132. +		if ( dest.parentNode ) { +			dest.outerHTML = src.outerHTML; +		} + +		// This path appears unavoidable for IE9. When cloning an object +		// element in IE9, the outerHTML strategy above is not sufficient. +		// If the src has innerHTML and the destination does not, +		// copy the src.innerHTML into the dest.innerHTML. #10324 +		if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) { +			dest.innerHTML = src.innerHTML; +		} + +	} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { +		// IE6-8 fails to persist the checked state of a cloned checkbox +		// or radio button. Worse, IE6-7 fail to give the cloned element +		// a checked appearance if the defaultChecked value isn't also set + +		dest.defaultChecked = dest.checked = src.checked; + +		// IE6-7 get confused and end up setting the value of a cloned +		// checkbox/radio button to an empty string instead of "on" +		if ( dest.value !== src.value ) { +			dest.value = src.value; +		} + +	// IE6-8 fails to return the selected option to the default selected +	// state when cloning options +	} else if ( nodeName === "option" ) { +		dest.selected = src.defaultSelected; + +	// IE6-8 fails to set the defaultValue to the correct value when +	// cloning other types of input fields +	} else if ( nodeName === "input" || nodeName === "textarea" ) { +		dest.defaultValue = src.defaultValue; + +	// IE blanks contents when cloning scripts +	} else if ( nodeName === "script" && dest.text !== src.text ) { +		dest.text = src.text; +	} + +	// Event data gets referenced instead of copied if the expando +	// gets copied too +	dest.removeAttribute( jQuery.expando ); +} + +jQuery.buildFragment = function( args, context, scripts ) { +	var fragment, cacheable, cachehit, +		first = args[ 0 ]; + +	// Set context from what may come in as undefined or a jQuery collection or a node +	// Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 & +	// also doubles as fix for #8950 where plain objects caused createDocumentFragment exception +	context = context || document; +	context = !context.nodeType && context[0] || context; +	context = context.ownerDocument || context; + +	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document +	// Cloning options loses the selected state, so don't cache them +	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment +	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache +	// Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 +	if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && +		first.charAt(0) === "<" && !rnocache.test( first ) && +		(jQuery.support.checkClone || !rchecked.test( first )) && +		(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { + +		// Mark cacheable and look for a hit +		cacheable = true; +		fragment = jQuery.fragments[ first ]; +		cachehit = fragment !== undefined; +	} + +	if ( !fragment ) { +		fragment = context.createDocumentFragment(); +		jQuery.clean( args, context, fragment, scripts ); + +		// Update the cache, but only store false +		// unless this is a second parsing of the same content +		if ( cacheable ) { +			jQuery.fragments[ first ] = cachehit && fragment; +		} +	} + +	return { fragment: fragment, cacheable: cacheable }; +}; + +jQuery.fragments = {}; + +jQuery.each({ +	appendTo: "append", +	prependTo: "prepend", +	insertBefore: "before", +	insertAfter: "after", +	replaceAll: "replaceWith" +}, function( name, original ) { +	jQuery.fn[ name ] = function( selector ) { +		var elems, +			i = 0, +			ret = [], +			insert = jQuery( selector ), +			l = insert.length, +			parent = this.length === 1 && this[0].parentNode; + +		if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { +			insert[ original ]( this[0] ); +			return this; +		} else { +			for ( ; i < l; i++ ) { +				elems = ( i > 0 ? this.clone(true) : this ).get(); +				jQuery( insert[i] )[ original ]( elems ); +				ret = ret.concat( elems ); +			} + +			return this.pushStack( ret, name, insert.selector ); +		} +	}; +}); + +function getAll( elem ) { +	if ( typeof elem.getElementsByTagName !== "undefined" ) { +		return elem.getElementsByTagName( "*" ); + +	} else if ( typeof elem.querySelectorAll !== "undefined" ) { +		return elem.querySelectorAll( "*" ); + +	} else { +		return []; +	} +} + +// Used in clean, fixes the defaultChecked property +function fixDefaultChecked( elem ) { +	if ( rcheckableType.test( elem.type ) ) { +		elem.defaultChecked = elem.checked; +	} +} + +jQuery.extend({ +	clone: function( elem, dataAndEvents, deepDataAndEvents ) { +		var srcElements, +			destElements, +			i, +			clone; + +		if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { +			clone = elem.cloneNode( true ); + +		// IE<=8 does not properly clone detached, unknown element nodes +		} else { +			fragmentDiv.innerHTML = elem.outerHTML; +			fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); +		} + +		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && +				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { +			// IE copies events bound via attachEvent when using cloneNode. +			// Calling detachEvent on the clone will also remove the events +			// from the original. In order to get around this, we use some +			// proprietary methods to clear the events. Thanks to MooTools +			// guys for this hotness. + +			cloneFixAttributes( elem, clone ); + +			// Using Sizzle here is crazy slow, so we use getElementsByTagName instead +			srcElements = getAll( elem ); +			destElements = getAll( clone ); + +			// Weird iteration because IE will replace the length property +			// with an element if you are cloning the body and one of the +			// elements on the page has a name or id of "length" +			for ( i = 0; srcElements[i]; ++i ) { +				// Ensure that the destination node is not null; Fixes #9587 +				if ( destElements[i] ) { +					cloneFixAttributes( srcElements[i], destElements[i] ); +				} +			} +		} + +		// Copy the events from the original to the clone +		if ( dataAndEvents ) { +			cloneCopyEvent( elem, clone ); + +			if ( deepDataAndEvents ) { +				srcElements = getAll( elem ); +				destElements = getAll( clone ); + +				for ( i = 0; srcElements[i]; ++i ) { +					cloneCopyEvent( srcElements[i], destElements[i] ); +				} +			} +		} + +		srcElements = destElements = null; + +		// Return the cloned set +		return clone; +	}, + +	clean: function( elems, context, fragment, scripts ) { +		var i, j, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags, +			safe = context === document && safeFragment, +			ret = []; + +		// Ensure that context is a document +		if ( !context || typeof context.createDocumentFragment === "undefined" ) { +			context = document; +		} + +		// Use the already-created safe fragment if context permits +		for ( i = 0; (elem = elems[i]) != null; i++ ) { +			if ( typeof elem === "number" ) { +				elem += ""; +			} + +			if ( !elem ) { +				continue; +			} + +			// Convert html string into DOM nodes +			if ( typeof elem === "string" ) { +				if ( !rhtml.test( elem ) ) { +					elem = context.createTextNode( elem ); +				} else { +					// Ensure a safe container in which to render the html +					safe = safe || createSafeFragment( context ); +					div = context.createElement("div"); +					safe.appendChild( div ); + +					// Fix "XHTML"-style tags in all browsers +					elem = elem.replace(rxhtmlTag, "<$1></$2>"); + +					// Go to html and back, then peel off extra wrappers +					tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); +					wrap = wrapMap[ tag ] || wrapMap._default; +					depth = wrap[0]; +					div.innerHTML = wrap[1] + elem + wrap[2]; + +					// Move to the right depth +					while ( depth-- ) { +						div = div.lastChild; +					} + +					// Remove IE's autoinserted <tbody> from table fragments +					if ( !jQuery.support.tbody ) { + +						// String was a <table>, *may* have spurious <tbody> +						hasBody = rtbody.test(elem); +							tbody = tag === "table" && !hasBody ? +								div.firstChild && div.firstChild.childNodes : + +								// String was a bare <thead> or <tfoot> +								wrap[1] === "<table>" && !hasBody ? +									div.childNodes : +									[]; + +						for ( j = tbody.length - 1; j >= 0 ; --j ) { +							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { +								tbody[ j ].parentNode.removeChild( tbody[ j ] ); +							} +						} +					} + +					// IE completely kills leading whitespace when innerHTML is used +					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { +						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); +					} + +					elem = div.childNodes; + +					// Take out of fragment container (we need a fresh div each time) +					div.parentNode.removeChild( div ); +				} +			} + +			if ( elem.nodeType ) { +				ret.push( elem ); +			} else { +				jQuery.merge( ret, elem ); +			} +		} + +		// Fix #11356: Clear elements from safeFragment +		if ( div ) { +			elem = div = safe = null; +		} + +		// Reset defaultChecked for any radios and checkboxes +		// about to be appended to the DOM in IE 6/7 (#8060) +		if ( !jQuery.support.appendChecked ) { +			for ( i = 0; (elem = ret[i]) != null; i++ ) { +				if ( jQuery.nodeName( elem, "input" ) ) { +					fixDefaultChecked( elem ); +				} else if ( typeof elem.getElementsByTagName !== "undefined" ) { +					jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); +				} +			} +		} + +		// Append elements to a provided document fragment +		if ( fragment ) { +			// Special handling of each script element +			handleScript = function( elem ) { +				// Check if we consider it executable +				if ( !elem.type || rscriptType.test( elem.type ) ) { +					// Detach the script and store it in the scripts array (if provided) or the fragment +					// Return truthy to indicate that it has been handled +					return scripts ? +						scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) : +						fragment.appendChild( elem ); +				} +			}; + +			for ( i = 0; (elem = ret[i]) != null; i++ ) { +				// Check if we're done after handling an executable script +				if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) { +					// Append to fragment and handle embedded scripts +					fragment.appendChild( elem ); +					if ( typeof elem.getElementsByTagName !== "undefined" ) { +						// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration +						jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript ); + +						// Splice the scripts into ret after their former ancestor and advance our index beyond them +						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); +						i += jsTags.length; +					} +				} +			} +		} + +		return ret; +	}, + +	cleanData: function( elems, /* internal */ acceptData ) { +		var data, id, elem, type, +			i = 0, +			internalKey = jQuery.expando, +			cache = jQuery.cache, +			deleteExpando = jQuery.support.deleteExpando, +			special = jQuery.event.special; + +		for ( ; (elem = elems[i]) != null; i++ ) { + +			if ( acceptData || jQuery.acceptData( elem ) ) { + +				id = elem[ internalKey ]; +				data = id && cache[ id ]; + +				if ( data ) { +					if ( data.events ) { +						for ( type in data.events ) { +							if ( special[ type ] ) { +								jQuery.event.remove( elem, type ); + +							// This is a shortcut to avoid jQuery.event.remove's overhead +							} else { +								jQuery.removeEvent( elem, type, data.handle ); +							} +						} +					} + +					// Remove cache only if it was not already removed by jQuery.event.remove +					if ( cache[ id ] ) { + +						delete cache[ id ]; + +						// IE does not allow us to delete expando properties from nodes, +						// nor does it have a removeAttribute function on Document nodes; +						// we must handle all of these cases +						if ( deleteExpando ) { +							delete elem[ internalKey ]; + +						} else if ( elem.removeAttribute ) { +							elem.removeAttribute( internalKey ); + +						} else { +							elem[ internalKey ] = null; +						} + +						jQuery.deletedIds.push( id ); +					} +				} +			} +		} +	} +}); +// Limit scope pollution from any deprecated API +(function() { + +var matched, browser; + +// Use of jQuery.browser is frowned upon. +// More details: http://api.jquery.com/jQuery.browser +// jQuery.uaMatch maintained for back-compat +jQuery.uaMatch = function( ua ) { +	ua = ua.toLowerCase(); + +	var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || +		/(webkit)[ \/]([\w.]+)/.exec( ua ) || +		/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || +		/(msie) ([\w.]+)/.exec( ua ) || +		ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || +		[]; + +	return { +		browser: match[ 1 ] || "", +		version: match[ 2 ] || "0" +	}; +}; + +matched = jQuery.uaMatch( navigator.userAgent ); +browser = {}; + +if ( matched.browser ) { +	browser[ matched.browser ] = true; +	browser.version = matched.version; +} + +// Chrome is Webkit, but Webkit is also Safari. +if ( browser.chrome ) { +	browser.webkit = true; +} else if ( browser.webkit ) { +	browser.safari = true; +} + +jQuery.browser = browser; + +jQuery.sub = function() { +	function jQuerySub( selector, context ) { +		return new jQuerySub.fn.init( selector, context ); +	} +	jQuery.extend( true, jQuerySub, this ); +	jQuerySub.superclass = this; +	jQuerySub.fn = jQuerySub.prototype = this(); +	jQuerySub.fn.constructor = jQuerySub; +	jQuerySub.sub = this.sub; +	jQuerySub.fn.init = function init( selector, context ) { +		if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { +			context = jQuerySub( context ); +		} + +		return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); +	}; +	jQuerySub.fn.init.prototype = jQuerySub.fn; +	var rootjQuerySub = jQuerySub(document); +	return jQuerySub; +}; + +})(); +var curCSS, iframe, iframeDoc, +	ralpha = /alpha\([^)]*\)/i, +	ropacity = /opacity=([^)]*)/, +	rposition = /^(top|right|bottom|left)$/, +	// swappable if display is none or starts with table except "table", "table-cell", or "table-caption" +	// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display +	rdisplayswap = /^(none|table(?!-c[ea]).+)/, +	rmargin = /^margin/, +	rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), +	rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), +	rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ), +	elemdisplay = { BODY: "block" }, + +	cssShow = { position: "absolute", visibility: "hidden", display: "block" }, +	cssNormalTransform = { +		letterSpacing: 0, +		fontWeight: 400 +	}, + +	cssExpand = [ "Top", "Right", "Bottom", "Left" ], +	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], + +	eventsToggle = jQuery.fn.toggle; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + +	// shortcut for names that are not vendor prefixed +	if ( name in style ) { +		return name; +	} + +	// check for vendor prefixed names +	var capName = name.charAt(0).toUpperCase() + name.slice(1), +		origName = name, +		i = cssPrefixes.length; + +	while ( i-- ) { +		name = cssPrefixes[ i ] + capName; +		if ( name in style ) { +			return name; +		} +	} + +	return origName; +} + +function isHidden( elem, el ) { +	elem = el || elem; +	return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { +	var elem, display, +		values = [], +		index = 0, +		length = elements.length; + +	for ( ; index < length; index++ ) { +		elem = elements[ index ]; +		if ( !elem.style ) { +			continue; +		} +		values[ index ] = jQuery._data( elem, "olddisplay" ); +		if ( show ) { +			// Reset the inline display of this element to learn if it is +			// being hidden by cascaded rules or not +			if ( !values[ index ] && elem.style.display === "none" ) { +				elem.style.display = ""; +			} + +			// Set elements which have been overridden with display: none +			// in a stylesheet to whatever the default browser style is +			// for such an element +			if ( elem.style.display === "" && isHidden( elem ) ) { +				values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); +			} +		} else { +			display = curCSS( elem, "display" ); + +			if ( !values[ index ] && display !== "none" ) { +				jQuery._data( elem, "olddisplay", display ); +			} +		} +	} + +	// Set the display of most of the elements in a second loop +	// to avoid the constant reflow +	for ( index = 0; index < length; index++ ) { +		elem = elements[ index ]; +		if ( !elem.style ) { +			continue; +		} +		if ( !show || elem.style.display === "none" || elem.style.display === "" ) { +			elem.style.display = show ? values[ index ] || "" : "none"; +		} +	} + +	return elements; +} + +jQuery.fn.extend({ +	css: function( name, value ) { +		return jQuery.access( this, function( elem, name, value ) { +			return value !== undefined ? +				jQuery.style( elem, name, value ) : +				jQuery.css( elem, name ); +		}, name, value, arguments.length > 1 ); +	}, +	show: function() { +		return showHide( this, true ); +	}, +	hide: function() { +		return showHide( this ); +	}, +	toggle: function( state, fn2 ) { +		var bool = typeof state === "boolean"; + +		if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) { +			return eventsToggle.apply( this, arguments ); +		} + +		return this.each(function() { +			if ( bool ? state : isHidden( this ) ) { +				jQuery( this ).show(); +			} else { +				jQuery( this ).hide(); +			} +		}); +	} +}); + +jQuery.extend({ +	// Add in style property hooks for overriding the default +	// behavior of getting and setting a style property +	cssHooks: { +		opacity: { +			get: function( elem, computed ) { +				if ( computed ) { +					// We should always get a number back from opacity +					var ret = curCSS( elem, "opacity" ); +					return ret === "" ? "1" : ret; + +				} +			} +		} +	}, + +	// Exclude the following css properties to add px +	cssNumber: { +		"fillOpacity": true, +		"fontWeight": true, +		"lineHeight": true, +		"opacity": true, +		"orphans": true, +		"widows": true, +		"zIndex": true, +		"zoom": true +	}, + +	// Add in properties whose names you wish to fix before +	// setting or getting the value +	cssProps: { +		// normalize float css property +		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" +	}, + +	// Get and set the style property on a DOM Node +	style: function( elem, name, value, extra ) { +		// Don't set styles on text and comment nodes +		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { +			return; +		} + +		// Make sure that we're working with the right name +		var ret, type, hooks, +			origName = jQuery.camelCase( name ), +			style = elem.style; + +		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + +		// gets hook for the prefixed version +		// followed by the unprefixed version +		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + +		// Check if we're setting a value +		if ( value !== undefined ) { +			type = typeof value; + +			// convert relative number strings (+= or -=) to relative numbers. #7345 +			if ( type === "string" && (ret = rrelNum.exec( value )) ) { +				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); +				// Fixes bug #9237 +				type = "number"; +			} + +			// Make sure that NaN and null values aren't set. See: #7116 +			if ( value == null || type === "number" && isNaN( value ) ) { +				return; +			} + +			// If a number was passed in, add 'px' to the (except for certain CSS properties) +			if ( type === "number" && !jQuery.cssNumber[ origName ] ) { +				value += "px"; +			} + +			// If a hook was provided, use that value, otherwise just set the specified value +			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { +				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided +				// Fixes bug #5509 +				try { +					style[ name ] = value; +				} catch(e) {} +			} + +		} else { +			// If a hook was provided get the non-computed value from there +			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { +				return ret; +			} + +			// Otherwise just get the value from the style object +			return style[ name ]; +		} +	}, + +	css: function( elem, name, numeric, extra ) { +		var val, num, hooks, +			origName = jQuery.camelCase( name ); + +		// Make sure that we're working with the right name +		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + +		// gets hook for the prefixed version +		// followed by the unprefixed version +		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + +		// If a hook was provided get the computed value from there +		if ( hooks && "get" in hooks ) { +			val = hooks.get( elem, true, extra ); +		} + +		// Otherwise, if a way to get the computed value exists, use that +		if ( val === undefined ) { +			val = curCSS( elem, name ); +		} + +		//convert "normal" to computed value +		if ( val === "normal" && name in cssNormalTransform ) { +			val = cssNormalTransform[ name ]; +		} + +		// Return, converting to number if forced or a qualifier was provided and val looks numeric +		if ( numeric || extra !== undefined ) { +			num = parseFloat( val ); +			return numeric || jQuery.isNumeric( num ) ? num || 0 : val; +		} +		return val; +	}, + +	// A method for quickly swapping in/out CSS properties to get correct calculations +	swap: function( elem, options, callback ) { +		var ret, name, +			old = {}; + +		// Remember the old values, and insert the new ones +		for ( name in options ) { +			old[ name ] = elem.style[ name ]; +			elem.style[ name ] = options[ name ]; +		} + +		ret = callback.call( elem ); + +		// Revert the old values +		for ( name in options ) { +			elem.style[ name ] = old[ name ]; +		} + +		return ret; +	} +}); + +// NOTE: To any future maintainer, we've window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { +	curCSS = function( elem, name ) { +		var ret, width, minWidth, maxWidth, +			computed = window.getComputedStyle( elem, null ), +			style = elem.style; + +		if ( computed ) { + +			// getPropertyValue is only needed for .css('filter') in IE9, see #12537 +			ret = computed.getPropertyValue( name ) || computed[ name ]; + +			if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { +				ret = jQuery.style( elem, name ); +			} + +			// A tribute to the "awesome hack by Dean Edwards" +			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right +			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels +			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values +			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { +				width = style.width; +				minWidth = style.minWidth; +				maxWidth = style.maxWidth; + +				style.minWidth = style.maxWidth = style.width = ret; +				ret = computed.width; + +				style.width = width; +				style.minWidth = minWidth; +				style.maxWidth = maxWidth; +			} +		} + +		return ret; +	}; +} else if ( document.documentElement.currentStyle ) { +	curCSS = function( elem, name ) { +		var left, rsLeft, +			ret = elem.currentStyle && elem.currentStyle[ name ], +			style = elem.style; + +		// Avoid setting ret to empty string here +		// so we don't default to auto +		if ( ret == null && style && style[ name ] ) { +			ret = style[ name ]; +		} + +		// From the awesome hack by Dean Edwards +		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + +		// If we're not dealing with a regular pixel number +		// but a number that has a weird ending, we need to convert it to pixels +		// but not position css attributes, as those are proportional to the parent element instead +		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem +		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + +			// Remember the original values +			left = style.left; +			rsLeft = elem.runtimeStyle && elem.runtimeStyle.left; + +			// Put in the new values to get a computed value out +			if ( rsLeft ) { +				elem.runtimeStyle.left = elem.currentStyle.left; +			} +			style.left = name === "fontSize" ? "1em" : ret; +			ret = style.pixelLeft + "px"; + +			// Revert the changed values +			style.left = left; +			if ( rsLeft ) { +				elem.runtimeStyle.left = rsLeft; +			} +		} + +		return ret === "" ? "auto" : ret; +	}; +} + +function setPositiveNumber( elem, value, subtract ) { +	var matches = rnumsplit.exec( value ); +	return matches ? +			Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : +			value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox ) { +	var i = extra === ( isBorderBox ? "border" : "content" ) ? +		// If we already have the right measurement, avoid augmentation +		4 : +		// Otherwise initialize for horizontal or vertical properties +		name === "width" ? 1 : 0, + +		val = 0; + +	for ( ; i < 4; i += 2 ) { +		// both box models exclude margin, so add it if we want it +		if ( extra === "margin" ) { +			// we use jQuery.css instead of curCSS here +			// because of the reliableMarginRight CSS hook! +			val += jQuery.css( elem, extra + cssExpand[ i ], true ); +		} + +		// From this point on we use curCSS for maximum performance (relevant in animations) +		if ( isBorderBox ) { +			// border-box includes padding, so remove it if we want content +			if ( extra === "content" ) { +				val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; +			} + +			// at this point, extra isn't border nor margin, so remove border +			if ( extra !== "margin" ) { +				val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; +			} +		} else { +			// at this point, extra isn't content, so add padding +			val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + +			// at this point, extra isn't content nor padding, so add border +			if ( extra !== "padding" ) { +				val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; +			} +		} +	} + +	return val; +} + +function getWidthOrHeight( elem, name, extra ) { + +	// Start with offset property, which is equivalent to the border-box value +	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, +		valueIsBorderBox = true, +		isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"; + +	// some non-html elements return undefined for offsetWidth, so check for null/undefined +	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 +	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 +	if ( val <= 0 || val == null ) { +		// Fall back to computed then uncomputed css if necessary +		val = curCSS( elem, name ); +		if ( val < 0 || val == null ) { +			val = elem.style[ name ]; +		} + +		// Computed unit is not pixels. Stop here and return. +		if ( rnumnonpx.test(val) ) { +			return val; +		} + +		// we need the check for style in case a browser which returns unreliable values +		// for getComputedStyle silently falls back to the reliable elem.style +		valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + +		// Normalize "", auto, and prepare for extra +		val = parseFloat( val ) || 0; +	} + +	// use the active box-sizing model to add/subtract irrelevant styles +	return ( val + +		augmentWidthOrHeight( +			elem, +			name, +			extra || ( isBorderBox ? "border" : "content" ), +			valueIsBorderBox +		) +	) + "px"; +} + + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { +	if ( elemdisplay[ nodeName ] ) { +		return elemdisplay[ nodeName ]; +	} + +	var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ), +		display = elem.css("display"); +	elem.remove(); + +	// If the simple way fails, +	// get element's real default display by attaching it to a temp iframe +	if ( display === "none" || display === "" ) { +		// Use the already-created iframe if possible +		iframe = document.body.appendChild( +			iframe || jQuery.extend( document.createElement("iframe"), { +				frameBorder: 0, +				width: 0, +				height: 0 +			}) +		); + +		// Create a cacheable copy of the iframe document on first call. +		// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML +		// document to it; WebKit & Firefox won't allow reusing the iframe document. +		if ( !iframeDoc || !iframe.createElement ) { +			iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; +			iframeDoc.write("<!doctype html><html><body>"); +			iframeDoc.close(); +		} + +		elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) ); + +		display = curCSS( elem, "display" ); +		document.body.removeChild( iframe ); +	} + +	// Store the correct default display +	elemdisplay[ nodeName ] = display; + +	return display; +} + +jQuery.each([ "height", "width" ], function( i, name ) { +	jQuery.cssHooks[ name ] = { +		get: function( elem, computed, extra ) { +			if ( computed ) { +				// certain elements can have dimension info if we invisibly show them +				// however, it must have a current display style that would benefit from this +				if ( elem.offsetWidth === 0 && rdisplayswap.test( curCSS( elem, "display" ) ) ) { +					return jQuery.swap( elem, cssShow, function() { +						return getWidthOrHeight( elem, name, extra ); +					}); +				} else { +					return getWidthOrHeight( elem, name, extra ); +				} +			} +		}, + +		set: function( elem, value, extra ) { +			return setPositiveNumber( elem, value, extra ? +				augmentWidthOrHeight( +					elem, +					name, +					extra, +					jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box" +				) : 0 +			); +		} +	}; +}); + +if ( !jQuery.support.opacity ) { +	jQuery.cssHooks.opacity = { +		get: function( elem, computed ) { +			// IE uses filters for opacity +			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? +				( 0.01 * parseFloat( RegExp.$1 ) ) + "" : +				computed ? "1" : ""; +		}, + +		set: function( elem, value ) { +			var style = elem.style, +				currentStyle = elem.currentStyle, +				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", +				filter = currentStyle && currentStyle.filter || style.filter || ""; + +			// IE has trouble with opacity if it does not have layout +			// Force it by setting the zoom level +			style.zoom = 1; + +			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 +			if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" && +				style.removeAttribute ) { + +				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText +				// if "filter:" is present at all, clearType is disabled, we want to avoid this +				// style.removeAttribute is IE Only, but so apparently is this code path... +				style.removeAttribute( "filter" ); + +				// if there there is no filter style applied in a css rule, we are done +				if ( currentStyle && !currentStyle.filter ) { +					return; +				} +			} + +			// otherwise, set new filter values +			style.filter = ralpha.test( filter ) ? +				filter.replace( ralpha, opacity ) : +				filter + " " + opacity; +		} +	}; +} + +// These hooks cannot be added until DOM ready because the support test +// for it is not run until after DOM ready +jQuery(function() { +	if ( !jQuery.support.reliableMarginRight ) { +		jQuery.cssHooks.marginRight = { +			get: function( elem, computed ) { +				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right +				// Work around by temporarily setting element display to inline-block +				return jQuery.swap( elem, { "display": "inline-block" }, function() { +					if ( computed ) { +						return curCSS( elem, "marginRight" ); +					} +				}); +			} +		}; +	} + +	// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +	// getComputedStyle returns percent when specified for top/left/bottom/right +	// rather than make the css module depend on the offset module, we just check for it here +	if ( !jQuery.support.pixelPosition && jQuery.fn.position ) { +		jQuery.each( [ "top", "left" ], function( i, prop ) { +			jQuery.cssHooks[ prop ] = { +				get: function( elem, computed ) { +					if ( computed ) { +						var ret = curCSS( elem, prop ); +						// if curCSS returns percentage, fallback to offset +						return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret; +					} +				} +			}; +		}); +	} + +}); + +if ( jQuery.expr && jQuery.expr.filters ) { +	jQuery.expr.filters.hidden = function( elem ) { +		return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none"); +	}; + +	jQuery.expr.filters.visible = function( elem ) { +		return !jQuery.expr.filters.hidden( elem ); +	}; +} + +// These hooks are used by animate to expand properties +jQuery.each({ +	margin: "", +	padding: "", +	border: "Width" +}, function( prefix, suffix ) { +	jQuery.cssHooks[ prefix + suffix ] = { +		expand: function( value ) { +			var i, + +				// assumes a single number if not a string +				parts = typeof value === "string" ? value.split(" ") : [ value ], +				expanded = {}; + +			for ( i = 0; i < 4; i++ ) { +				expanded[ prefix + cssExpand[ i ] + suffix ] = +					parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; +			} + +			return expanded; +		} +	}; + +	if ( !rmargin.test( prefix ) ) { +		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; +	} +}); +var r20 = /%20/g, +	rbracket = /\[\]$/, +	rCRLF = /\r?\n/g, +	rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, +	rselectTextarea = /^(?:select|textarea)/i; + +jQuery.fn.extend({ +	serialize: function() { +		return jQuery.param( this.serializeArray() ); +	}, +	serializeArray: function() { +		return this.map(function(){ +			return this.elements ? jQuery.makeArray( this.elements ) : this; +		}) +		.filter(function(){ +			return this.name && !this.disabled && +				( this.checked || rselectTextarea.test( this.nodeName ) || +					rinput.test( this.type ) ); +		}) +		.map(function( i, elem ){ +			var val = jQuery( this ).val(); + +			return val == null ? +				null : +				jQuery.isArray( val ) ? +					jQuery.map( val, function( val, i ){ +						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; +					}) : +					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; +		}).get(); +	} +}); + +//Serialize an array of form elements or a set of +//key/values into a query string +jQuery.param = function( a, traditional ) { +	var prefix, +		s = [], +		add = function( key, value ) { +			// If value is a function, invoke it and return its value +			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); +			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); +		}; + +	// Set traditional to true for jQuery <= 1.3.2 behavior. +	if ( traditional === undefined ) { +		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; +	} + +	// If an array was passed in, assume that it is an array of form elements. +	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { +		// Serialize the form elements +		jQuery.each( a, function() { +			add( this.name, this.value ); +		}); + +	} else { +		// If traditional, encode the "old" way (the way 1.3.2 or older +		// did it), otherwise encode params recursively. +		for ( prefix in a ) { +			buildParams( prefix, a[ prefix ], traditional, add ); +		} +	} + +	// Return the resulting serialization +	return s.join( "&" ).replace( r20, "+" ); +}; + +function buildParams( prefix, obj, traditional, add ) { +	var name; + +	if ( jQuery.isArray( obj ) ) { +		// Serialize array item. +		jQuery.each( obj, function( i, v ) { +			if ( traditional || rbracket.test( prefix ) ) { +				// Treat each array item as a scalar. +				add( prefix, v ); + +			} else { +				// If array item is non-scalar (array or object), encode its +				// numeric index to resolve deserialization ambiguity issues. +				// Note that rack (as of 1.0.0) can't currently deserialize +				// nested arrays properly, and attempting to do so may cause +				// a server error. Possible fixes are to modify rack's +				// deserialization algorithm or to provide an option or flag +				// to force array serialization to be shallow. +				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); +			} +		}); + +	} else if ( !traditional && jQuery.type( obj ) === "object" ) { +		// Serialize object item. +		for ( name in obj ) { +			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); +		} + +	} else { +		// Serialize scalar item. +		add( prefix, obj ); +	} +} +var +	// Document location +	ajaxLocParts, +	ajaxLocation, + +	rhash = /#.*$/, +	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL +	// #7653, #8125, #8152: local protocol detection +	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, +	rnoContent = /^(?:GET|HEAD)$/, +	rprotocol = /^\/\//, +	rquery = /\?/, +	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, +	rts = /([?&])_=[^&]*/, +	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, + +	// Keep a copy of the old load method +	_load = jQuery.fn.load, + +	/* Prefilters +	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) +	 * 2) These are called: +	 *    - BEFORE asking for a transport +	 *    - AFTER param serialization (s.data is a string if s.processData is true) +	 * 3) key is the dataType +	 * 4) the catchall symbol "*" can be used +	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed +	 */ +	prefilters = {}, + +	/* Transports bindings +	 * 1) key is the dataType +	 * 2) the catchall symbol "*" can be used +	 * 3) selection will start with transport dataType and THEN go to "*" if needed +	 */ +	transports = {}, + +	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression +	allTypes = ["*/"] + ["*"]; + +// #8138, IE may throw an exception when accessing +// a field from window.location if document.domain has been set +try { +	ajaxLocation = location.href; +} catch( e ) { +	// Use the href attribute of an A element +	// since IE will modify it given document.location +	ajaxLocation = document.createElement( "a" ); +	ajaxLocation.href = ""; +	ajaxLocation = ajaxLocation.href; +} + +// Segment location into parts +ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + +	// dataTypeExpression is optional and defaults to "*" +	return function( dataTypeExpression, func ) { + +		if ( typeof dataTypeExpression !== "string" ) { +			func = dataTypeExpression; +			dataTypeExpression = "*"; +		} + +		var dataType, list, placeBefore, +			dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), +			i = 0, +			length = dataTypes.length; + +		if ( jQuery.isFunction( func ) ) { +			// For each dataType in the dataTypeExpression +			for ( ; i < length; i++ ) { +				dataType = dataTypes[ i ]; +				// We control if we're asked to add before +				// any existing element +				placeBefore = /^\+/.test( dataType ); +				if ( placeBefore ) { +					dataType = dataType.substr( 1 ) || "*"; +				} +				list = structure[ dataType ] = structure[ dataType ] || []; +				// then we add to the structure accordingly +				list[ placeBefore ? "unshift" : "push" ]( func ); +			} +		} +	}; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, +		dataType /* internal */, inspected /* internal */ ) { + +	dataType = dataType || options.dataTypes[ 0 ]; +	inspected = inspected || {}; + +	inspected[ dataType ] = true; + +	var selection, +		list = structure[ dataType ], +		i = 0, +		length = list ? list.length : 0, +		executeOnly = ( structure === prefilters ); + +	for ( ; i < length && ( executeOnly || !selection ); i++ ) { +		selection = list[ i ]( options, originalOptions, jqXHR ); +		// If we got redirected to another dataType +		// we try there if executing only and not done already +		if ( typeof selection === "string" ) { +			if ( !executeOnly || inspected[ selection ] ) { +				selection = undefined; +			} else { +				options.dataTypes.unshift( selection ); +				selection = inspectPrefiltersOrTransports( +						structure, options, originalOptions, jqXHR, selection, inspected ); +			} +		} +	} +	// If we're only executing or nothing was selected +	// we try the catchall dataType if not done already +	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { +		selection = inspectPrefiltersOrTransports( +				structure, options, originalOptions, jqXHR, "*", inspected ); +	} +	// unnecessary when only executing (prefilters) +	// but it'll be ignored by the caller in that case +	return selection; +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { +	var key, deep, +		flatOptions = jQuery.ajaxSettings.flatOptions || {}; +	for ( key in src ) { +		if ( src[ key ] !== undefined ) { +			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; +		} +	} +	if ( deep ) { +		jQuery.extend( true, target, deep ); +	} +} + +jQuery.fn.load = function( url, params, callback ) { +	if ( typeof url !== "string" && _load ) { +		return _load.apply( this, arguments ); +	} + +	// Don't do a request if no elements are being requested +	if ( !this.length ) { +		return this; +	} + +	var selector, type, response, +		self = this, +		off = url.indexOf(" "); + +	if ( off >= 0 ) { +		selector = url.slice( off, url.length ); +		url = url.slice( 0, off ); +	} + +	// If it's a function +	if ( jQuery.isFunction( params ) ) { + +		// We assume that it's the callback +		callback = params; +		params = undefined; + +	// Otherwise, build a param string +	} else if ( params && typeof params === "object" ) { +		type = "POST"; +	} + +	// Request the remote document +	jQuery.ajax({ +		url: url, + +		// if "type" variable is undefined, then "GET" method will be used +		type: type, +		dataType: "html", +		data: params, +		complete: function( jqXHR, status ) { +			if ( callback ) { +				self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); +			} +		} +	}).done(function( responseText ) { + +		// Save response for use in complete callback +		response = arguments; + +		// See if a selector was specified +		self.html( selector ? + +			// Create a dummy div to hold the results +			jQuery("<div>") + +				// inject the contents of the document in, removing the scripts +				// to avoid any 'Permission Denied' errors in IE +				.append( responseText.replace( rscript, "" ) ) + +				// Locate the specified elements +				.find( selector ) : + +			// If not, just inject the full result +			responseText ); + +	}); + +	return this; +}; + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ +	jQuery.fn[ o ] = function( f ){ +		return this.on( o, f ); +	}; +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { +	jQuery[ method ] = function( url, data, callback, type ) { +		// shift arguments if data argument was omitted +		if ( jQuery.isFunction( data ) ) { +			type = type || callback; +			callback = data; +			data = undefined; +		} + +		return jQuery.ajax({ +			type: method, +			url: url, +			data: data, +			success: callback, +			dataType: type +		}); +	}; +}); + +jQuery.extend({ + +	getScript: function( url, callback ) { +		return jQuery.get( url, undefined, callback, "script" ); +	}, + +	getJSON: function( url, data, callback ) { +		return jQuery.get( url, data, callback, "json" ); +	}, + +	// Creates a full fledged settings object into target +	// with both ajaxSettings and settings fields. +	// If target is omitted, writes into ajaxSettings. +	ajaxSetup: function( target, settings ) { +		if ( settings ) { +			// Building a settings object +			ajaxExtend( target, jQuery.ajaxSettings ); +		} else { +			// Extending ajaxSettings +			settings = target; +			target = jQuery.ajaxSettings; +		} +		ajaxExtend( target, settings ); +		return target; +	}, + +	ajaxSettings: { +		url: ajaxLocation, +		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), +		global: true, +		type: "GET", +		contentType: "application/x-www-form-urlencoded; charset=UTF-8", +		processData: true, +		async: true, +		/* +		timeout: 0, +		data: null, +		dataType: null, +		username: null, +		password: null, +		cache: null, +		throws: false, +		traditional: false, +		headers: {}, +		*/ + +		accepts: { +			xml: "application/xml, text/xml", +			html: "text/html", +			text: "text/plain", +			json: "application/json, text/javascript", +			"*": allTypes +		}, + +		contents: { +			xml: /xml/, +			html: /html/, +			json: /json/ +		}, + +		responseFields: { +			xml: "responseXML", +			text: "responseText" +		}, + +		// List of data converters +		// 1) key format is "source_type destination_type" (a single space in-between) +		// 2) the catchall symbol "*" can be used for source_type +		converters: { + +			// Convert anything to text +			"* text": window.String, + +			// Text to html (true = no transformation) +			"text html": true, + +			// Evaluate text as a json expression +			"text json": jQuery.parseJSON, + +			// Parse text as xml +			"text xml": jQuery.parseXML +		}, + +		// For options that shouldn't be deep extended: +		// you can add your own custom options here if +		// and when you create one that shouldn't be +		// deep extended (see ajaxExtend) +		flatOptions: { +			context: true, +			url: true +		} +	}, + +	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), +	ajaxTransport: addToPrefiltersOrTransports( transports ), + +	// Main method +	ajax: function( url, options ) { + +		// If url is an object, simulate pre-1.5 signature +		if ( typeof url === "object" ) { +			options = url; +			url = undefined; +		} + +		// Force options to be an object +		options = options || {}; + +		var // ifModified key +			ifModifiedKey, +			// Response headers +			responseHeadersString, +			responseHeaders, +			// transport +			transport, +			// timeout handle +			timeoutTimer, +			// Cross-domain detection vars +			parts, +			// To know if global events are to be dispatched +			fireGlobals, +			// Loop variable +			i, +			// Create the final options object +			s = jQuery.ajaxSetup( {}, options ), +			// Callbacks context +			callbackContext = s.context || s, +			// Context for global events +			// It's the callbackContext if one was provided in the options +			// and if it's a DOM node or a jQuery collection +			globalEventContext = callbackContext !== s && +				( callbackContext.nodeType || callbackContext instanceof jQuery ) ? +						jQuery( callbackContext ) : jQuery.event, +			// Deferreds +			deferred = jQuery.Deferred(), +			completeDeferred = jQuery.Callbacks( "once memory" ), +			// Status-dependent callbacks +			statusCode = s.statusCode || {}, +			// Headers (they are sent all at once) +			requestHeaders = {}, +			requestHeadersNames = {}, +			// The jqXHR state +			state = 0, +			// Default abort message +			strAbort = "canceled", +			// Fake xhr +			jqXHR = { + +				readyState: 0, + +				// Caches the header +				setRequestHeader: function( name, value ) { +					if ( !state ) { +						var lname = name.toLowerCase(); +						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; +						requestHeaders[ name ] = value; +					} +					return this; +				}, + +				// Raw string +				getAllResponseHeaders: function() { +					return state === 2 ? responseHeadersString : null; +				}, + +				// Builds headers hashtable if needed +				getResponseHeader: function( key ) { +					var match; +					if ( state === 2 ) { +						if ( !responseHeaders ) { +							responseHeaders = {}; +							while( ( match = rheaders.exec( responseHeadersString ) ) ) { +								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; +							} +						} +						match = responseHeaders[ key.toLowerCase() ]; +					} +					return match === undefined ? null : match; +				}, + +				// Overrides response content-type header +				overrideMimeType: function( type ) { +					if ( !state ) { +						s.mimeType = type; +					} +					return this; +				}, + +				// Cancel the request +				abort: function( statusText ) { +					statusText = statusText || strAbort; +					if ( transport ) { +						transport.abort( statusText ); +					} +					done( 0, statusText ); +					return this; +				} +			}; + +		// Callback for when everything is done +		// It is defined here because jslint complains if it is declared +		// at the end of the function (which would be more logical and readable) +		function done( status, nativeStatusText, responses, headers ) { +			var isSuccess, success, error, response, modified, +				statusText = nativeStatusText; + +			// Called once +			if ( state === 2 ) { +				return; +			} + +			// State is "done" now +			state = 2; + +			// Clear timeout if it exists +			if ( timeoutTimer ) { +				clearTimeout( timeoutTimer ); +			} + +			// Dereference transport for early garbage collection +			// (no matter how long the jqXHR object will be used) +			transport = undefined; + +			// Cache response headers +			responseHeadersString = headers || ""; + +			// Set readyState +			jqXHR.readyState = status > 0 ? 4 : 0; + +			// Get response data +			if ( responses ) { +				response = ajaxHandleResponses( s, jqXHR, responses ); +			} + +			// If successful, handle type chaining +			if ( status >= 200 && status < 300 || status === 304 ) { + +				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. +				if ( s.ifModified ) { + +					modified = jqXHR.getResponseHeader("Last-Modified"); +					if ( modified ) { +						jQuery.lastModified[ ifModifiedKey ] = modified; +					} +					modified = jqXHR.getResponseHeader("Etag"); +					if ( modified ) { +						jQuery.etag[ ifModifiedKey ] = modified; +					} +				} + +				// If not modified +				if ( status === 304 ) { + +					statusText = "notmodified"; +					isSuccess = true; + +				// If we have data +				} else { + +					isSuccess = ajaxConvert( s, response ); +					statusText = isSuccess.state; +					success = isSuccess.data; +					error = isSuccess.error; +					isSuccess = !error; +				} +			} else { +				// We extract error from statusText +				// then normalize statusText and status for non-aborts +				error = statusText; +				if ( !statusText || status ) { +					statusText = "error"; +					if ( status < 0 ) { +						status = 0; +					} +				} +			} + +			// Set data for the fake xhr object +			jqXHR.status = status; +			jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + +			// Success/Error +			if ( isSuccess ) { +				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); +			} else { +				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); +			} + +			// Status-dependent callbacks +			jqXHR.statusCode( statusCode ); +			statusCode = undefined; + +			if ( fireGlobals ) { +				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), +						[ jqXHR, s, isSuccess ? success : error ] ); +			} + +			// Complete +			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + +			if ( fireGlobals ) { +				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); +				// Handle the global AJAX counter +				if ( !( --jQuery.active ) ) { +					jQuery.event.trigger( "ajaxStop" ); +				} +			} +		} + +		// Attach deferreds +		deferred.promise( jqXHR ); +		jqXHR.success = jqXHR.done; +		jqXHR.error = jqXHR.fail; +		jqXHR.complete = completeDeferred.add; + +		// Status-dependent callbacks +		jqXHR.statusCode = function( map ) { +			if ( map ) { +				var tmp; +				if ( state < 2 ) { +					for ( tmp in map ) { +						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; +					} +				} else { +					tmp = map[ jqXHR.status ]; +					jqXHR.always( tmp ); +				} +			} +			return this; +		}; + +		// Remove hash character (#7531: and string promotion) +		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls) +		// We also use the url parameter if available +		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + +		// Extract dataTypes list +		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace ); + +		// A cross-domain request is in order when we have a protocol:host:port mismatch +		if ( s.crossDomain == null ) { +			parts = rurl.exec( s.url.toLowerCase() ); +			s.crossDomain = !!( parts && +				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || +					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != +						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) +			); +		} + +		// Convert data if not already a string +		if ( s.data && s.processData && typeof s.data !== "string" ) { +			s.data = jQuery.param( s.data, s.traditional ); +		} + +		// Apply prefilters +		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + +		// If request was aborted inside a prefilter, stop there +		if ( state === 2 ) { +			return jqXHR; +		} + +		// We can fire global events as of now if asked to +		fireGlobals = s.global; + +		// Uppercase the type +		s.type = s.type.toUpperCase(); + +		// Determine if request has content +		s.hasContent = !rnoContent.test( s.type ); + +		// Watch for a new set of requests +		if ( fireGlobals && jQuery.active++ === 0 ) { +			jQuery.event.trigger( "ajaxStart" ); +		} + +		// More options handling for requests with no content +		if ( !s.hasContent ) { + +			// If data is available, append data to url +			if ( s.data ) { +				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; +				// #9682: remove data so that it's not used in an eventual retry +				delete s.data; +			} + +			// Get ifModifiedKey before adding the anti-cache parameter +			ifModifiedKey = s.url; + +			// Add anti-cache in url if needed +			if ( s.cache === false ) { + +				var ts = jQuery.now(), +					// try replacing _= if it is there +					ret = s.url.replace( rts, "$1_=" + ts ); + +				// if nothing was replaced, add timestamp to the end +				s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); +			} +		} + +		// Set the correct header, if data is being sent +		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { +			jqXHR.setRequestHeader( "Content-Type", s.contentType ); +		} + +		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. +		if ( s.ifModified ) { +			ifModifiedKey = ifModifiedKey || s.url; +			if ( jQuery.lastModified[ ifModifiedKey ] ) { +				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); +			} +			if ( jQuery.etag[ ifModifiedKey ] ) { +				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); +			} +		} + +		// Set the Accepts header for the server, depending on the dataType +		jqXHR.setRequestHeader( +			"Accept", +			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? +				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : +				s.accepts[ "*" ] +		); + +		// Check for headers option +		for ( i in s.headers ) { +			jqXHR.setRequestHeader( i, s.headers[ i ] ); +		} + +		// Allow custom headers/mimetypes and early abort +		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { +				// Abort if not done already and return +				return jqXHR.abort(); + +		} + +		// aborting is no longer a cancellation +		strAbort = "abort"; + +		// Install callbacks on deferreds +		for ( i in { success: 1, error: 1, complete: 1 } ) { +			jqXHR[ i ]( s[ i ] ); +		} + +		// Get transport +		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + +		// If no transport, we auto-abort +		if ( !transport ) { +			done( -1, "No Transport" ); +		} else { +			jqXHR.readyState = 1; +			// Send global event +			if ( fireGlobals ) { +				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); +			} +			// Timeout +			if ( s.async && s.timeout > 0 ) { +				timeoutTimer = setTimeout( function(){ +					jqXHR.abort( "timeout" ); +				}, s.timeout ); +			} + +			try { +				state = 1; +				transport.send( requestHeaders, done ); +			} catch (e) { +				// Propagate exception as error if not done +				if ( state < 2 ) { +					done( -1, e ); +				// Simply rethrow otherwise +				} else { +					throw e; +				} +			} +		} + +		return jqXHR; +	}, + +	// Counter for holding the number of active queries +	active: 0, + +	// Last-Modified header cache for next request +	lastModified: {}, +	etag: {} + +}); + +/* Handles responses to an ajax request: + * - sets all responseXXX fields accordingly + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + +	var ct, type, finalDataType, firstDataType, +		contents = s.contents, +		dataTypes = s.dataTypes, +		responseFields = s.responseFields; + +	// Fill responseXXX fields +	for ( type in responseFields ) { +		if ( type in responses ) { +			jqXHR[ responseFields[type] ] = responses[ type ]; +		} +	} + +	// Remove auto dataType and get content-type in the process +	while( dataTypes[ 0 ] === "*" ) { +		dataTypes.shift(); +		if ( ct === undefined ) { +			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" ); +		} +	} + +	// Check if we're dealing with a known content-type +	if ( ct ) { +		for ( type in contents ) { +			if ( contents[ type ] && contents[ type ].test( ct ) ) { +				dataTypes.unshift( type ); +				break; +			} +		} +	} + +	// Check to see if we have a response for the expected dataType +	if ( dataTypes[ 0 ] in responses ) { +		finalDataType = dataTypes[ 0 ]; +	} else { +		// Try convertible dataTypes +		for ( type in responses ) { +			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { +				finalDataType = type; +				break; +			} +			if ( !firstDataType ) { +				firstDataType = type; +			} +		} +		// Or just use first one +		finalDataType = finalDataType || firstDataType; +	} + +	// If we found a dataType +	// We add the dataType to the list if needed +	// and return the corresponding response +	if ( finalDataType ) { +		if ( finalDataType !== dataTypes[ 0 ] ) { +			dataTypes.unshift( finalDataType ); +		} +		return responses[ finalDataType ]; +	} +} + +// Chain conversions given the request and the original response +function ajaxConvert( s, response ) { + +	var conv, conv2, current, tmp, +		// Work with a copy of dataTypes in case we need to modify it for conversion +		dataTypes = s.dataTypes.slice(), +		prev = dataTypes[ 0 ], +		converters = {}, +		i = 0; + +	// Apply the dataFilter if provided +	if ( s.dataFilter ) { +		response = s.dataFilter( response, s.dataType ); +	} + +	// Create converters map with lowercased keys +	if ( dataTypes[ 1 ] ) { +		for ( conv in s.converters ) { +			converters[ conv.toLowerCase() ] = s.converters[ conv ]; +		} +	} + +	// Convert to each sequential dataType, tolerating list modification +	for ( ; (current = dataTypes[++i]); ) { + +		// There's only work to do if current dataType is non-auto +		if ( current !== "*" ) { + +			// Convert response if prev dataType is non-auto and differs from current +			if ( prev !== "*" && prev !== current ) { + +				// Seek a direct converter +				conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + +				// If none found, seek a pair +				if ( !conv ) { +					for ( conv2 in converters ) { + +						// If conv2 outputs current +						tmp = conv2.split(" "); +						if ( tmp[ 1 ] === current ) { + +							// If prev can be converted to accepted input +							conv = converters[ prev + " " + tmp[ 0 ] ] || +								converters[ "* " + tmp[ 0 ] ]; +							if ( conv ) { +								// Condense equivalence converters +								if ( conv === true ) { +									conv = converters[ conv2 ]; + +								// Otherwise, insert the intermediate dataType +								} else if ( converters[ conv2 ] !== true ) { +									current = tmp[ 0 ]; +									dataTypes.splice( i--, 0, current ); +								} + +								break; +							} +						} +					} +				} + +				// Apply converter (if not an equivalence) +				if ( conv !== true ) { + +					// Unless errors are allowed to bubble, catch and return them +					if ( conv && s["throws"] ) { +						response = conv( response ); +					} else { +						try { +							response = conv( response ); +						} catch ( e ) { +							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; +						} +					} +				} +			} + +			// Update prev for next iteration +			prev = current; +		} +	} + +	return { state: "success", data: response }; +} +var oldCallbacks = [], +	rquestion = /\?/, +	rjsonp = /(=)\?(?=&|$)|\?\?/, +	nonce = jQuery.now(); + +// Default jsonp settings +jQuery.ajaxSetup({ +	jsonp: "callback", +	jsonpCallback: function() { +		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); +		this[ callback ] = true; +		return callback; +	} +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + +	var callbackName, overwritten, responseContainer, +		data = s.data, +		url = s.url, +		hasCallback = s.jsonp !== false, +		replaceInUrl = hasCallback && rjsonp.test( url ), +		replaceInData = hasCallback && !replaceInUrl && typeof data === "string" && +			!( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && +			rjsonp.test( data ); + +	// Handle iff the expected data type is "jsonp" or we have a parameter to set +	if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) { + +		// Get callback name, remembering preexisting value associated with it +		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? +			s.jsonpCallback() : +			s.jsonpCallback; +		overwritten = window[ callbackName ]; + +		// Insert callback into url or form data +		if ( replaceInUrl ) { +			s.url = url.replace( rjsonp, "$1" + callbackName ); +		} else if ( replaceInData ) { +			s.data = data.replace( rjsonp, "$1" + callbackName ); +		} else if ( hasCallback ) { +			s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; +		} + +		// Use data converter to retrieve json after script execution +		s.converters["script json"] = function() { +			if ( !responseContainer ) { +				jQuery.error( callbackName + " was not called" ); +			} +			return responseContainer[ 0 ]; +		}; + +		// force json dataType +		s.dataTypes[ 0 ] = "json"; + +		// Install callback +		window[ callbackName ] = function() { +			responseContainer = arguments; +		}; + +		// Clean-up function (fires after converters) +		jqXHR.always(function() { +			// Restore preexisting value +			window[ callbackName ] = overwritten; + +			// Save back as free +			if ( s[ callbackName ] ) { +				// make sure that re-using the options doesn't screw things around +				s.jsonpCallback = originalSettings.jsonpCallback; + +				// save the callback name for future use +				oldCallbacks.push( callbackName ); +			} + +			// Call if it was a function and we have a response +			if ( responseContainer && jQuery.isFunction( overwritten ) ) { +				overwritten( responseContainer[ 0 ] ); +			} + +			responseContainer = overwritten = undefined; +		}); + +		// Delegate to script +		return "script"; +	} +}); +// Install script dataType +jQuery.ajaxSetup({ +	accepts: { +		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" +	}, +	contents: { +		script: /javascript|ecmascript/ +	}, +	converters: { +		"text script": function( text ) { +			jQuery.globalEval( text ); +			return text; +		} +	} +}); + +// Handle cache's special case and global +jQuery.ajaxPrefilter( "script", function( s ) { +	if ( s.cache === undefined ) { +		s.cache = false; +	} +	if ( s.crossDomain ) { +		s.type = "GET"; +		s.global = false; +	} +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function(s) { + +	// This transport only deals with cross domain requests +	if ( s.crossDomain ) { + +		var script, +			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement; + +		return { + +			send: function( _, callback ) { + +				script = document.createElement( "script" ); + +				script.async = "async"; + +				if ( s.scriptCharset ) { +					script.charset = s.scriptCharset; +				} + +				script.src = s.url; + +				// Attach handlers for all browsers +				script.onload = script.onreadystatechange = function( _, isAbort ) { + +					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { + +						// Handle memory leak in IE +						script.onload = script.onreadystatechange = null; + +						// Remove the script +						if ( head && script.parentNode ) { +							head.removeChild( script ); +						} + +						// Dereference the script +						script = undefined; + +						// Callback if not abort +						if ( !isAbort ) { +							callback( 200, "success" ); +						} +					} +				}; +				// Use insertBefore instead of appendChild  to circumvent an IE6 bug. +				// This arises when a base node is used (#2709 and #4378). +				head.insertBefore( script, head.firstChild ); +			}, + +			abort: function() { +				if ( script ) { +					script.onload( 0, 1 ); +				} +			} +		}; +	} +}); +var xhrCallbacks, +	// #5280: Internet Explorer will keep connections alive if we don't abort on unload +	xhrOnUnloadAbort = window.ActiveXObject ? function() { +		// Abort all pending requests +		for ( var key in xhrCallbacks ) { +			xhrCallbacks[ key ]( 0, 1 ); +		} +	} : false, +	xhrId = 0; + +// Functions to create xhrs +function createStandardXHR() { +	try { +		return new window.XMLHttpRequest(); +	} catch( e ) {} +} + +function createActiveXHR() { +	try { +		return new window.ActiveXObject( "Microsoft.XMLHTTP" ); +	} catch( e ) {} +} + +// Create the request object +// (This is still attached to ajaxSettings for backward compatibility) +jQuery.ajaxSettings.xhr = window.ActiveXObject ? +	/* Microsoft failed to properly +	 * implement the XMLHttpRequest in IE7 (can't request local files), +	 * so we use the ActiveXObject when it is available +	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so +	 * we need a fallback. +	 */ +	function() { +		return !this.isLocal && createStandardXHR() || createActiveXHR(); +	} : +	// For all other browsers, use the standard XMLHttpRequest object +	createStandardXHR; + +// Determine support properties +(function( xhr ) { +	jQuery.extend( jQuery.support, { +		ajax: !!xhr, +		cors: !!xhr && ( "withCredentials" in xhr ) +	}); +})( jQuery.ajaxSettings.xhr() ); + +// Create transport if the browser can provide an xhr +if ( jQuery.support.ajax ) { + +	jQuery.ajaxTransport(function( s ) { +		// Cross domain only allowed if supported through XMLHttpRequest +		if ( !s.crossDomain || jQuery.support.cors ) { + +			var callback; + +			return { +				send: function( headers, complete ) { + +					// Get a new xhr +					var handle, i, +						xhr = s.xhr(); + +					// Open the socket +					// Passing null username, generates a login popup on Opera (#2865) +					if ( s.username ) { +						xhr.open( s.type, s.url, s.async, s.username, s.password ); +					} else { +						xhr.open( s.type, s.url, s.async ); +					} + +					// Apply custom fields if provided +					if ( s.xhrFields ) { +						for ( i in s.xhrFields ) { +							xhr[ i ] = s.xhrFields[ i ]; +						} +					} + +					// Override mime type if needed +					if ( s.mimeType && xhr.overrideMimeType ) { +						xhr.overrideMimeType( s.mimeType ); +					} + +					// X-Requested-With header +					// For cross-domain requests, seeing as conditions for a preflight are +					// akin to a jigsaw puzzle, we simply never set it to be sure. +					// (it can always be set on a per-request basis or even using ajaxSetup) +					// For same-domain requests, won't change header if already provided. +					if ( !s.crossDomain && !headers["X-Requested-With"] ) { +						headers[ "X-Requested-With" ] = "XMLHttpRequest"; +					} + +					// Need an extra try/catch for cross domain requests in Firefox 3 +					try { +						for ( i in headers ) { +							xhr.setRequestHeader( i, headers[ i ] ); +						} +					} catch( _ ) {} + +					// Do send the request +					// This may raise an exception which is actually +					// handled in jQuery.ajax (so no try/catch here) +					xhr.send( ( s.hasContent && s.data ) || null ); + +					// Listener +					callback = function( _, isAbort ) { + +						var status, +							statusText, +							responseHeaders, +							responses, +							xml; + +						// Firefox throws exceptions when accessing properties +						// of an xhr when a network error occurred +						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) +						try { + +							// Was never called and is aborted or complete +							if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + +								// Only called once +								callback = undefined; + +								// Do not keep as active anymore +								if ( handle ) { +									xhr.onreadystatechange = jQuery.noop; +									if ( xhrOnUnloadAbort ) { +										delete xhrCallbacks[ handle ]; +									} +								} + +								// If it's an abort +								if ( isAbort ) { +									// Abort it manually if needed +									if ( xhr.readyState !== 4 ) { +										xhr.abort(); +									} +								} else { +									status = xhr.status; +									responseHeaders = xhr.getAllResponseHeaders(); +									responses = {}; +									xml = xhr.responseXML; + +									// Construct response list +									if ( xml && xml.documentElement /* #4958 */ ) { +										responses.xml = xml; +									} + +									// When requesting binary data, IE6-9 will throw an exception +									// on any attempt to access responseText (#11426) +									try { +										responses.text = xhr.responseText; +									} catch( e ) { +									} + +									// Firefox throws an exception when accessing +									// statusText for faulty cross-domain requests +									try { +										statusText = xhr.statusText; +									} catch( e ) { +										// We normalize with Webkit giving an empty statusText +										statusText = ""; +									} + +									// Filter status for non standard behaviors + +									// If the request is local and we have data: assume a success +									// (success with no data won't get notified, that's the best we +									// can do given current implementations) +									if ( !status && s.isLocal && !s.crossDomain ) { +										status = responses.text ? 200 : 404; +									// IE - #1450: sometimes returns 1223 when it should be 204 +									} else if ( status === 1223 ) { +										status = 204; +									} +								} +							} +						} catch( firefoxAccessException ) { +							if ( !isAbort ) { +								complete( -1, firefoxAccessException ); +							} +						} + +						// Call complete if needed +						if ( responses ) { +							complete( status, statusText, responses, responseHeaders ); +						} +					}; + +					if ( !s.async ) { +						// if we're in sync mode we fire the callback +						callback(); +					} else if ( xhr.readyState === 4 ) { +						// (IE6 & IE7) if it's in cache and has been +						// retrieved directly we need to fire the callback +						setTimeout( callback, 0 ); +					} else { +						handle = ++xhrId; +						if ( xhrOnUnloadAbort ) { +							// Create the active xhrs callbacks list if needed +							// and attach the unload handler +							if ( !xhrCallbacks ) { +								xhrCallbacks = {}; +								jQuery( window ).unload( xhrOnUnloadAbort ); +							} +							// Add to list of active xhrs callbacks +							xhrCallbacks[ handle ] = callback; +						} +						xhr.onreadystatechange = callback; +					} +				}, + +				abort: function() { +					if ( callback ) { +						callback(0,1); +					} +				} +			}; +		} +	}); +} +var fxNow, timerId, +	rfxtypes = /^(?:toggle|show|hide)$/, +	rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ), +	rrun = /queueHooks$/, +	animationPrefilters = [ defaultPrefilter ], +	tweeners = { +		"*": [function( prop, value ) { +			var end, unit, +				tween = this.createTween( prop, value ), +				parts = rfxnum.exec( value ), +				target = tween.cur(), +				start = +target || 0, +				scale = 1, +				maxIterations = 20; + +			if ( parts ) { +				end = +parts[2]; +				unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + +				// We need to compute starting value +				if ( unit !== "px" && start ) { +					// Iteratively approximate from a nonzero starting point +					// Prefer the current property, because this process will be trivial if it uses the same units +					// Fallback to end or a simple constant +					start = jQuery.css( tween.elem, prop, true ) || end || 1; + +					do { +						// If previous iteration zeroed out, double until we get *something* +						// Use a string for doubling factor so we don't accidentally see scale as unchanged below +						scale = scale || ".5"; + +						// Adjust and apply +						start = start / scale; +						jQuery.style( tween.elem, prop, start + unit ); + +					// Update scale, tolerating zero or NaN from tween.cur() +					// And breaking the loop if scale is unchanged or perfect, or if we've just had enough +					} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); +				} + +				tween.unit = unit; +				tween.start = start; +				// If a +=/-= token was provided, we're doing a relative animation +				tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end; +			} +			return tween; +		}] +	}; + +// Animations created synchronously will run synchronously +function createFxNow() { +	setTimeout(function() { +		fxNow = undefined; +	}, 0 ); +	return ( fxNow = jQuery.now() ); +} + +function createTweens( animation, props ) { +	jQuery.each( props, function( prop, value ) { +		var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), +			index = 0, +			length = collection.length; +		for ( ; index < length; index++ ) { +			if ( collection[ index ].call( animation, prop, value ) ) { + +				// we're done with this property +				return; +			} +		} +	}); +} + +function Animation( elem, properties, options ) { +	var result, +		index = 0, +		tweenerIndex = 0, +		length = animationPrefilters.length, +		deferred = jQuery.Deferred().always( function() { +			// don't match elem in the :animated selector +			delete tick.elem; +		}), +		tick = function() { +			var currentTime = fxNow || createFxNow(), +				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), +				// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) +				temp = remaining / animation.duration || 0, +				percent = 1 - temp, +				index = 0, +				length = animation.tweens.length; + +			for ( ; index < length ; index++ ) { +				animation.tweens[ index ].run( percent ); +			} + +			deferred.notifyWith( elem, [ animation, percent, remaining ]); + +			if ( percent < 1 && length ) { +				return remaining; +			} else { +				deferred.resolveWith( elem, [ animation ] ); +				return false; +			} +		}, +		animation = deferred.promise({ +			elem: elem, +			props: jQuery.extend( {}, properties ), +			opts: jQuery.extend( true, { specialEasing: {} }, options ), +			originalProperties: properties, +			originalOptions: options, +			startTime: fxNow || createFxNow(), +			duration: options.duration, +			tweens: [], +			createTween: function( prop, end, easing ) { +				var tween = jQuery.Tween( elem, animation.opts, prop, end, +						animation.opts.specialEasing[ prop ] || animation.opts.easing ); +				animation.tweens.push( tween ); +				return tween; +			}, +			stop: function( gotoEnd ) { +				var index = 0, +					// if we are going to the end, we want to run all the tweens +					// otherwise we skip this part +					length = gotoEnd ? animation.tweens.length : 0; + +				for ( ; index < length ; index++ ) { +					animation.tweens[ index ].run( 1 ); +				} + +				// resolve when we played the last frame +				// otherwise, reject +				if ( gotoEnd ) { +					deferred.resolveWith( elem, [ animation, gotoEnd ] ); +				} else { +					deferred.rejectWith( elem, [ animation, gotoEnd ] ); +				} +				return this; +			} +		}), +		props = animation.props; + +	propFilter( props, animation.opts.specialEasing ); + +	for ( ; index < length ; index++ ) { +		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); +		if ( result ) { +			return result; +		} +	} + +	createTweens( animation, props ); + +	if ( jQuery.isFunction( animation.opts.start ) ) { +		animation.opts.start.call( elem, animation ); +	} + +	jQuery.fx.timer( +		jQuery.extend( tick, { +			anim: animation, +			queue: animation.opts.queue, +			elem: elem +		}) +	); + +	// attach callbacks from options +	return animation.progress( animation.opts.progress ) +		.done( animation.opts.done, animation.opts.complete ) +		.fail( animation.opts.fail ) +		.always( animation.opts.always ); +} + +function propFilter( props, specialEasing ) { +	var index, name, easing, value, hooks; + +	// camelCase, specialEasing and expand cssHook pass +	for ( index in props ) { +		name = jQuery.camelCase( index ); +		easing = specialEasing[ name ]; +		value = props[ index ]; +		if ( jQuery.isArray( value ) ) { +			easing = value[ 1 ]; +			value = props[ index ] = value[ 0 ]; +		} + +		if ( index !== name ) { +			props[ name ] = value; +			delete props[ index ]; +		} + +		hooks = jQuery.cssHooks[ name ]; +		if ( hooks && "expand" in hooks ) { +			value = hooks.expand( value ); +			delete props[ name ]; + +			// not quite $.extend, this wont overwrite keys already present. +			// also - reusing 'index' from above because we have the correct "name" +			for ( index in value ) { +				if ( !( index in props ) ) { +					props[ index ] = value[ index ]; +					specialEasing[ index ] = easing; +				} +			} +		} else { +			specialEasing[ name ] = easing; +		} +	} +} + +jQuery.Animation = jQuery.extend( Animation, { + +	tweener: function( props, callback ) { +		if ( jQuery.isFunction( props ) ) { +			callback = props; +			props = [ "*" ]; +		} else { +			props = props.split(" "); +		} + +		var prop, +			index = 0, +			length = props.length; + +		for ( ; index < length ; index++ ) { +			prop = props[ index ]; +			tweeners[ prop ] = tweeners[ prop ] || []; +			tweeners[ prop ].unshift( callback ); +		} +	}, + +	prefilter: function( callback, prepend ) { +		if ( prepend ) { +			animationPrefilters.unshift( callback ); +		} else { +			animationPrefilters.push( callback ); +		} +	} +}); + +function defaultPrefilter( elem, props, opts ) { +	var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire, +		anim = this, +		style = elem.style, +		orig = {}, +		handled = [], +		hidden = elem.nodeType && isHidden( elem ); + +	// handle queue: false promises +	if ( !opts.queue ) { +		hooks = jQuery._queueHooks( elem, "fx" ); +		if ( hooks.unqueued == null ) { +			hooks.unqueued = 0; +			oldfire = hooks.empty.fire; +			hooks.empty.fire = function() { +				if ( !hooks.unqueued ) { +					oldfire(); +				} +			}; +		} +		hooks.unqueued++; + +		anim.always(function() { +			// doing this makes sure that the complete handler will be called +			// before this completes +			anim.always(function() { +				hooks.unqueued--; +				if ( !jQuery.queue( elem, "fx" ).length ) { +					hooks.empty.fire(); +				} +			}); +		}); +	} + +	// height/width overflow pass +	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { +		// Make sure that nothing sneaks out +		// Record all 3 overflow attributes because IE does not +		// change the overflow attribute when overflowX and +		// overflowY are set to the same value +		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + +		// Set display property to inline-block for height/width +		// animations on inline elements that are having width/height animated +		if ( jQuery.css( elem, "display" ) === "inline" && +				jQuery.css( elem, "float" ) === "none" ) { + +			// inline-level elements accept inline-block; +			// block-level elements need to be inline with layout +			if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) { +				style.display = "inline-block"; + +			} else { +				style.zoom = 1; +			} +		} +	} + +	if ( opts.overflow ) { +		style.overflow = "hidden"; +		if ( !jQuery.support.shrinkWrapBlocks ) { +			anim.done(function() { +				style.overflow = opts.overflow[ 0 ]; +				style.overflowX = opts.overflow[ 1 ]; +				style.overflowY = opts.overflow[ 2 ]; +			}); +		} +	} + + +	// show/hide pass +	for ( index in props ) { +		value = props[ index ]; +		if ( rfxtypes.exec( value ) ) { +			delete props[ index ]; +			toggle = toggle || value === "toggle"; +			if ( value === ( hidden ? "hide" : "show" ) ) { +				continue; +			} +			handled.push( index ); +		} +	} + +	length = handled.length; +	if ( length ) { +		dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} ); +		if ( "hidden" in dataShow ) { +			hidden = dataShow.hidden; +		} + +		// store state if its toggle - enables .stop().toggle() to "reverse" +		if ( toggle ) { +			dataShow.hidden = !hidden; +		} +		if ( hidden ) { +			jQuery( elem ).show(); +		} else { +			anim.done(function() { +				jQuery( elem ).hide(); +			}); +		} +		anim.done(function() { +			var prop; +			jQuery.removeData( elem, "fxshow", true ); +			for ( prop in orig ) { +				jQuery.style( elem, prop, orig[ prop ] ); +			} +		}); +		for ( index = 0 ; index < length ; index++ ) { +			prop = handled[ index ]; +			tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 ); +			orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop ); + +			if ( !( prop in dataShow ) ) { +				dataShow[ prop ] = tween.start; +				if ( hidden ) { +					tween.end = tween.start; +					tween.start = prop === "width" || prop === "height" ? 1 : 0; +				} +			} +		} +	} +} + +function Tween( elem, options, prop, end, easing ) { +	return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { +	constructor: Tween, +	init: function( elem, options, prop, end, easing, unit ) { +		this.elem = elem; +		this.prop = prop; +		this.easing = easing || "swing"; +		this.options = options; +		this.start = this.now = this.cur(); +		this.end = end; +		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); +	}, +	cur: function() { +		var hooks = Tween.propHooks[ this.prop ]; + +		return hooks && hooks.get ? +			hooks.get( this ) : +			Tween.propHooks._default.get( this ); +	}, +	run: function( percent ) { +		var eased, +			hooks = Tween.propHooks[ this.prop ]; + +		if ( this.options.duration ) { +			this.pos = eased = jQuery.easing[ this.easing ]( +				percent, this.options.duration * percent, 0, 1, this.options.duration +			); +		} else { +			this.pos = eased = percent; +		} +		this.now = ( this.end - this.start ) * eased + this.start; + +		if ( this.options.step ) { +			this.options.step.call( this.elem, this.now, this ); +		} + +		if ( hooks && hooks.set ) { +			hooks.set( this ); +		} else { +			Tween.propHooks._default.set( this ); +		} +		return this; +	} +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { +	_default: { +		get: function( tween ) { +			var result; + +			if ( tween.elem[ tween.prop ] != null && +				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { +				return tween.elem[ tween.prop ]; +			} + +			// passing any value as a 4th parameter to .css will automatically +			// attempt a parseFloat and fallback to a string if the parse fails +			// so, simple values such as "10px" are parsed to Float. +			// complex values such as "rotate(1rad)" are returned as is. +			result = jQuery.css( tween.elem, tween.prop, false, "" ); +			// Empty strings, null, undefined and "auto" are converted to 0. +			return !result || result === "auto" ? 0 : result; +		}, +		set: function( tween ) { +			// use step hook for back compat - use cssHook if its there - use .style if its +			// available and use plain properties where available +			if ( jQuery.fx.step[ tween.prop ] ) { +				jQuery.fx.step[ tween.prop ]( tween ); +			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { +				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); +			} else { +				tween.elem[ tween.prop ] = tween.now; +			} +		} +	} +}; + +// Remove in 2.0 - this supports IE8's panic based approach +// to setting things on disconnected nodes + +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { +	set: function( tween ) { +		if ( tween.elem.nodeType && tween.elem.parentNode ) { +			tween.elem[ tween.prop ] = tween.now; +		} +	} +}; + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { +	var cssFn = jQuery.fn[ name ]; +	jQuery.fn[ name ] = function( speed, easing, callback ) { +		return speed == null || typeof speed === "boolean" || +			// special check for .toggle( handler, handler, ... ) +			( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? +			cssFn.apply( this, arguments ) : +			this.animate( genFx( name, true ), speed, easing, callback ); +	}; +}); + +jQuery.fn.extend({ +	fadeTo: function( speed, to, easing, callback ) { + +		// show any hidden elements after setting opacity to 0 +		return this.filter( isHidden ).css( "opacity", 0 ).show() + +			// animate to the value specified +			.end().animate({ opacity: to }, speed, easing, callback ); +	}, +	animate: function( prop, speed, easing, callback ) { +		var empty = jQuery.isEmptyObject( prop ), +			optall = jQuery.speed( speed, easing, callback ), +			doAnimation = function() { +				// Operate on a copy of prop so per-property easing won't be lost +				var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + +				// Empty animations resolve immediately +				if ( empty ) { +					anim.stop( true ); +				} +			}; + +		return empty || optall.queue === false ? +			this.each( doAnimation ) : +			this.queue( optall.queue, doAnimation ); +	}, +	stop: function( type, clearQueue, gotoEnd ) { +		var stopQueue = function( hooks ) { +			var stop = hooks.stop; +			delete hooks.stop; +			stop( gotoEnd ); +		}; + +		if ( typeof type !== "string" ) { +			gotoEnd = clearQueue; +			clearQueue = type; +			type = undefined; +		} +		if ( clearQueue && type !== false ) { +			this.queue( type || "fx", [] ); +		} + +		return this.each(function() { +			var dequeue = true, +				index = type != null && type + "queueHooks", +				timers = jQuery.timers, +				data = jQuery._data( this ); + +			if ( index ) { +				if ( data[ index ] && data[ index ].stop ) { +					stopQueue( data[ index ] ); +				} +			} else { +				for ( index in data ) { +					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { +						stopQueue( data[ index ] ); +					} +				} +			} + +			for ( index = timers.length; index--; ) { +				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { +					timers[ index ].anim.stop( gotoEnd ); +					dequeue = false; +					timers.splice( index, 1 ); +				} +			} + +			// start the next in the queue if the last step wasn't forced +			// timers currently will call their complete callbacks, which will dequeue +			// but only if they were gotoEnd +			if ( dequeue || !gotoEnd ) { +				jQuery.dequeue( this, type ); +			} +		}); +	} +}); + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { +	var which, +		attrs = { height: type }, +		i = 0; + +	// if we include width, step value is 1 to do all cssExpand values, +	// if we don't include width, step value is 2 to skip over Left and Right +	includeWidth = includeWidth? 1 : 0; +	for( ; i < 4 ; i += 2 - includeWidth ) { +		which = cssExpand[ i ]; +		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; +	} + +	if ( includeWidth ) { +		attrs.opacity = attrs.width = type; +	} + +	return attrs; +} + +// Generate shortcuts for custom animations +jQuery.each({ +	slideDown: genFx("show"), +	slideUp: genFx("hide"), +	slideToggle: genFx("toggle"), +	fadeIn: { opacity: "show" }, +	fadeOut: { opacity: "hide" }, +	fadeToggle: { opacity: "toggle" } +}, function( name, props ) { +	jQuery.fn[ name ] = function( speed, easing, callback ) { +		return this.animate( props, speed, easing, callback ); +	}; +}); + +jQuery.speed = function( speed, easing, fn ) { +	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { +		complete: fn || !fn && easing || +			jQuery.isFunction( speed ) && speed, +		duration: speed, +		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing +	}; + +	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : +		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + +	// normalize opt.queue - true/undefined/null -> "fx" +	if ( opt.queue == null || opt.queue === true ) { +		opt.queue = "fx"; +	} + +	// Queueing +	opt.old = opt.complete; + +	opt.complete = function() { +		if ( jQuery.isFunction( opt.old ) ) { +			opt.old.call( this ); +		} + +		if ( opt.queue ) { +			jQuery.dequeue( this, opt.queue ); +		} +	}; + +	return opt; +}; + +jQuery.easing = { +	linear: function( p ) { +		return p; +	}, +	swing: function( p ) { +		return 0.5 - Math.cos( p*Math.PI ) / 2; +	} +}; + +jQuery.timers = []; +jQuery.fx = Tween.prototype.init; +jQuery.fx.tick = function() { +	var timer, +		timers = jQuery.timers, +		i = 0; + +	fxNow = jQuery.now(); + +	for ( ; i < timers.length; i++ ) { +		timer = timers[ i ]; +		// Checks the timer has not already been removed +		if ( !timer() && timers[ i ] === timer ) { +			timers.splice( i--, 1 ); +		} +	} + +	if ( !timers.length ) { +		jQuery.fx.stop(); +	} +	fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { +	if ( timer() && jQuery.timers.push( timer ) && !timerId ) { +		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); +	} +}; + +jQuery.fx.interval = 13; + +jQuery.fx.stop = function() { +	clearInterval( timerId ); +	timerId = null; +}; + +jQuery.fx.speeds = { +	slow: 600, +	fast: 200, +	// Default speed +	_default: 400 +}; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + +if ( jQuery.expr && jQuery.expr.filters ) { +	jQuery.expr.filters.animated = function( elem ) { +		return jQuery.grep(jQuery.timers, function( fn ) { +			return elem === fn.elem; +		}).length; +	}; +} +var rroot = /^(?:body|html)$/i; + +jQuery.fn.offset = function( options ) { +	if ( arguments.length ) { +		return options === undefined ? +			this : +			this.each(function( i ) { +				jQuery.offset.setOffset( this, options, i ); +			}); +	} + +	var docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, +		box = { top: 0, left: 0 }, +		elem = this[ 0 ], +		doc = elem && elem.ownerDocument; + +	if ( !doc ) { +		return; +	} + +	if ( (body = doc.body) === elem ) { +		return jQuery.offset.bodyOffset( elem ); +	} + +	docElem = doc.documentElement; + +	// Make sure it's not a disconnected DOM node +	if ( !jQuery.contains( docElem, elem ) ) { +		return box; +	} + +	// If we don't have gBCR, just use 0,0 rather than error +	// BlackBerry 5, iOS 3 (original iPhone) +	if ( typeof elem.getBoundingClientRect !== "undefined" ) { +		box = elem.getBoundingClientRect(); +	} +	win = getWindow( doc ); +	clientTop  = docElem.clientTop  || body.clientTop  || 0; +	clientLeft = docElem.clientLeft || body.clientLeft || 0; +	scrollTop  = win.pageYOffset || docElem.scrollTop; +	scrollLeft = win.pageXOffset || docElem.scrollLeft; +	return { +		top: box.top  + scrollTop  - clientTop, +		left: box.left + scrollLeft - clientLeft +	}; +}; + +jQuery.offset = { + +	bodyOffset: function( body ) { +		var top = body.offsetTop, +			left = body.offsetLeft; + +		if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) { +			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0; +			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; +		} + +		return { top: top, left: left }; +	}, + +	setOffset: function( elem, options, i ) { +		var position = jQuery.css( elem, "position" ); + +		// set position first, in-case top/left are set even on static elem +		if ( position === "static" ) { +			elem.style.position = "relative"; +		} + +		var curElem = jQuery( elem ), +			curOffset = curElem.offset(), +			curCSSTop = jQuery.css( elem, "top" ), +			curCSSLeft = jQuery.css( elem, "left" ), +			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, +			props = {}, curPosition = {}, curTop, curLeft; + +		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed +		if ( calculatePosition ) { +			curPosition = curElem.position(); +			curTop = curPosition.top; +			curLeft = curPosition.left; +		} else { +			curTop = parseFloat( curCSSTop ) || 0; +			curLeft = parseFloat( curCSSLeft ) || 0; +		} + +		if ( jQuery.isFunction( options ) ) { +			options = options.call( elem, i, curOffset ); +		} + +		if ( options.top != null ) { +			props.top = ( options.top - curOffset.top ) + curTop; +		} +		if ( options.left != null ) { +			props.left = ( options.left - curOffset.left ) + curLeft; +		} + +		if ( "using" in options ) { +			options.using.call( elem, props ); +		} else { +			curElem.css( props ); +		} +	} +}; + + +jQuery.fn.extend({ + +	position: function() { +		if ( !this[0] ) { +			return; +		} + +		var elem = this[0], + +		// Get *real* offsetParent +		offsetParent = this.offsetParent(), + +		// Get correct offsets +		offset       = this.offset(), +		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + +		// Subtract element margins +		// note: when an element has margin: auto the offsetLeft and marginLeft +		// are the same in Safari causing offset.left to incorrectly be 0 +		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; +		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; + +		// Add offsetParent borders +		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; +		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; + +		// Subtract the two offsets +		return { +			top:  offset.top  - parentOffset.top, +			left: offset.left - parentOffset.left +		}; +	}, + +	offsetParent: function() { +		return this.map(function() { +			var offsetParent = this.offsetParent || document.body; +			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { +				offsetParent = offsetParent.offsetParent; +			} +			return offsetParent || document.body; +		}); +	} +}); + + +// Create scrollLeft and scrollTop methods +jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) { +	var top = /Y/.test( prop ); + +	jQuery.fn[ method ] = function( val ) { +		return jQuery.access( this, function( elem, method, val ) { +			var win = getWindow( elem ); + +			if ( val === undefined ) { +				return win ? (prop in win) ? win[ prop ] : +					win.document.documentElement[ method ] : +					elem[ method ]; +			} + +			if ( win ) { +				win.scrollTo( +					!top ? val : jQuery( win ).scrollLeft(), +					 top ? val : jQuery( win ).scrollTop() +				); + +			} else { +				elem[ method ] = val; +			} +		}, method, val, arguments.length, null ); +	}; +}); + +function getWindow( elem ) { +	return jQuery.isWindow( elem ) ? +		elem : +		elem.nodeType === 9 ? +			elem.defaultView || elem.parentWindow : +			false; +} +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { +	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { +		// margin is only for outerHeight, outerWidth +		jQuery.fn[ funcName ] = function( margin, value ) { +			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), +				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + +			return jQuery.access( this, function( elem, type, value ) { +				var doc; + +				if ( jQuery.isWindow( elem ) ) { +					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there +					// isn't a whole lot we can do. See pull request at this URL for discussion: +					// https://github.com/jquery/jquery/pull/764 +					return elem.document.documentElement[ "client" + name ]; +				} + +				// Get document width or height +				if ( elem.nodeType === 9 ) { +					doc = elem.documentElement; + +					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest +					// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. +					return Math.max( +						elem.body[ "scroll" + name ], doc[ "scroll" + name ], +						elem.body[ "offset" + name ], doc[ "offset" + name ], +						doc[ "client" + name ] +					); +				} + +				return value === undefined ? +					// Get width or height on the element, requesting but not forcing parseFloat +					jQuery.css( elem, type, value, extra ) : + +					// Set width or height on the element +					jQuery.style( elem, type, value, extra ); +			}, type, chainable ? margin : undefined, chainable, null ); +		}; +	}); +}); +// Expose jQuery to the global object +window.jQuery = window.$ = jQuery; + +// Expose jQuery as an AMD module, but only for AMD loaders that +// understand the issues with loading multiple versions of jQuery +// in a page that all might call define(). The loader will indicate +// they have special allowances for multiple jQuery versions by +// specifying define.amd.jQuery = true. Register as a named module, +// since jQuery can be concatenated with other files that may use define, +// but not use a proper concatenation script that understands anonymous +// AMD modules. A named AMD is safest and most robust way to register. +// Lowercase jquery is used because AMD module names are derived from +// file names, and jQuery is normally delivered in a lowercase file name. +// Do this after creating the global so that if an AMD module wants to call +// noConflict to hide this version of jQuery, it will work. +if ( typeof define === "function" && define.amd && define.amd.jQuery ) { +	define( "jquery", [], function () { return jQuery; } ); +} + +})( window ); diff --git a/framework/Web/Javascripts/source/jquery/lowpro.jquery.js b/framework/Web/Javascripts/source/jquery/lowpro.jquery.js new file mode 100755 index 00000000..0613808c --- /dev/null +++ b/framework/Web/Javascripts/source/jquery/lowpro.jquery.js @@ -0,0 +1,216 @@ +(function($) { + +  var addMethods = function(source) { +    var ancestor   = this.superclass && this.superclass.prototype; +    var properties = $.keys(source); + +    if (!$.keys({ toString: true }).length) properties.push("toString", "valueOf"); + +    for (var i = 0, length = properties.length; i < length; i++) { +      var property = properties[i], value = source[property]; +      if (ancestor && $.isFunction(value) && $.argumentNames(value)[0] == "$super") { + +        var method = value, value = $.extend($.wrap((function(m) { +          return function() { return ancestor[m].apply(this, arguments) }; +        })(property), method), { +          valueOf:  function() { return method }, +          toString: function() { return method.toString() } +        }); +      } +      this.prototype[property] = value; +    } + +    return this; +  }; + +  $.extend({ +    keys: function(obj) { +      var keys = []; +      for (var key in obj) keys.push(key); +      return keys; +    }, + +    argumentNames: function(func) { +      var names = func.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(/, ?/); +      return names.length == 1 && !names[0] ? [] : names; +    }, + +    bind: function(func, scope) { +      return function() { +        return func.apply(scope, $.makeArray(arguments)); +      }; +    }, + +    wrap: function(func, wrapper) { +      var __method = func; +      return function() { +        return wrapper.apply(this, [$.bind(__method, this)].concat($.makeArray(arguments))); +      }; +    }, + +    klass: function() { +      var parent = null, properties = $.makeArray(arguments); +      if ($.isFunction(properties[0])) parent = properties.shift(); + +      var klass = function() { +        this.initialize.apply(this, arguments); +      }; + +      klass.superclass = parent; +      klass.subclasses = []; +      klass.addMethods = addMethods; + +      if (parent) { +        var subclass = function() { }; +        subclass.prototype = parent.prototype; +        klass.prototype = new subclass; +        parent.subclasses.push(klass); +      } + +      for (var i = 0; i < properties.length; i++) +        klass.addMethods(properties[i]); + +      if (!klass.prototype.initialize) +        klass.prototype.initialize = function() {}; + +      klass.prototype.constructor = klass; + +      return klass; +    }, +    delegate: function(rules) { +      return function(e) { +        var target = $(e.target), parent = null; +        for (var selector in rules) { +          if (target.is(selector) || ((parent = target.parents(selector)) && parent.length > 0)) { +            return rules[selector].apply(this, [parent || target].concat($.makeArray(arguments))); +          } +          parent = null; +        } +      }; +    } +  }); + +  var bindEvents = function(instance) { +    for (var member in instance) { +      if (member.match(/^on(.+)/) && typeof instance[member] == 'function') { +        instance.element.live(RegExp.$1, {'behavior': instance}, instance[member]); +      } +    } +  }; + +  var behaviorWrapper = function(behavior) { +    return $.klass(behavior, { +      initialize: function($super, element, args) { +        this.element = element; +        if ($super) $super.apply(this, args); +      }, +      trigger: function(eventType, extraParameters) { +        var parameters = [this].concat(extraParameters); +        this.element.trigger(eventType, parameters); +      } +    }); +  }; + +  var attachBehavior = function(el, behavior, args) { +      var wrapper = behaviorWrapper(behavior); +      var instance = new wrapper(el, args); + +      bindEvents(instance); + +      if (!behavior.instances) behavior.instances = []; + +      behavior.instances.push(instance); + +      return instance; +  }; + + +  $.fn.extend({ +    attach: function() { +      var args = $.makeArray(arguments), behavior = args.shift(); +      attachBehavior(this, behavior, args); +      return this; +    }, +    delegate: function(type, rules) { +      return this.bind(type, $.delegate(rules)); +    }, +    attached: function(behavior) { +      var instances = []; + +      if (!behavior.instances) return instances; + +      this.each(function(i, element) { +        $.each(behavior.instances, function(i, instance) { +          if (instance.element.get(0) == element) instances.push(instance); +        }); +      }); + +      return instances; +    }, +    firstAttached: function(behavior) { +      return this.attached(behavior)[0]; +    } +  }); + +  Remote = $.klass({ +    initialize: function(options) { +      if (this.element.attr('nodeName') == 'FORM') this.element.attach(Remote.Form, options); +      else this.element.attach(Remote.Link, options); +    } +  }); + +  Remote.Base = $.klass({ +    initialize : function(options) { +      this.options = $.extend(true, {}, options || {}); +    }, +    _makeRequest : function(options) { +      $.ajax(options); +      return false; +    } +  }); + +  Remote.Link = $.klass(Remote.Base, { +    onclick: function(e) { +      var options = $.extend({  +        url: $(this).attr('href'),  +        type: 'GET'  +      }, this.options); +      return e.data.behavior._makeRequest(e.data.behavior.options); +    } +  }); + +  Remote.Form = $.klass(Remote.Base, { +    onclick: function(e) { +      var target = e.target; + +      if ($.inArray(target.nodeName.toLowerCase(), ['input', 'button']) >= 0 && target.type.match(/submit|image/)) +        e.data.behavior._submitButton = target; +    }, +    onsubmit: function(e) { +      var elm = $(this), data = elm.serializeArray(); + +      if (e.data.behavior._submitButton) data.push({  +        name: e.data.behavior._submitButton.name,  +        value: e.data.behavior._submitButton.value  +      }); + +      var options = $.extend({ +        url : elm.attr('action'), +        type : elm.attr('method') || 'GET', +        data : data +      }, e.data.behavior.options); + +      e.data.behavior._makeRequest(options); + +      return false; +    } +  }); + +  $.ajaxSetup({ +    beforeSend: function(xhr) { +      if (!this.dataType) +        xhr.setRequestHeader("Accept", "text/javascript, text/html, application/xml, text/xml, */*"); +    } +  }); + +})(jQuery);
\ No newline at end of file diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js index 3e6fe5b7..1b94ef7c 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/activecontrols3.js @@ -80,7 +80,7 @@ Prado.WebUI.TActiveTextBox = Class.extend(Prado.WebUI.TTextBox,  		if(options['TextMode'] != 'MultiLine')  			this.observe(this.element, "keydown", this.handleReturnKey.bind(this));  		if(this.options['AutoPostBack']==true) -			this.observe(this.element, "change", this.doCallback.bindEvent(this,options)); +			this.observe(this.element, "change", jQuery.proxy(this.doCallback,this,options));  	},  	doCallback : function(event, options) @@ -178,7 +178,7 @@ Prado.WebUI.TAutoComplete = Class.extend(Prado.WebUI.TAutoComplete,  /**   * Time Triggered Callback class.   */ -Prado.WebUI.TTimeTriggeredCallback = Class.create(Prado.WebUI.Control, +Prado.WebUI.TTimeTriggeredCallback = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{ @@ -262,7 +262,7 @@ Object.extend(Prado.WebUI.TTimeTriggeredCallback,  	}  }); -Prado.WebUI.ActiveListControl = Class.create(Prado.WebUI.Control, +Prado.WebUI.ActiveListControl = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{ @@ -281,13 +281,13 @@ Prado.WebUI.ActiveListControl = Class.create(Prado.WebUI.Control,  	}  }); -Prado.WebUI.TActiveDropDownList = Class.create(Prado.WebUI.ActiveListControl); -Prado.WebUI.TActiveListBox = Class.create(Prado.WebUI.ActiveListControl); +Prado.WebUI.TActiveDropDownList = jQuery.klass(Prado.WebUI.ActiveListControl); +Prado.WebUI.TActiveListBox = jQuery.klass(Prado.WebUI.ActiveListControl);  /**   * Observe event of a particular control to trigger a callback request.   */ -Prado.WebUI.TEventTriggeredCallback = Class.create(Prado.WebUI.Control, +Prado.WebUI.TEventTriggeredCallback = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{ @@ -327,7 +327,7 @@ Prado.WebUI.TEventTriggeredCallback = Class.create(Prado.WebUI.Control,  /**   * Observe changes to a property of a particular control to trigger a callback.   */ -Prado.WebUI.TValueTriggeredCallback = Class.create(Prado.WebUI.Control, +Prado.WebUI.TValueTriggeredCallback = jQuery.klass(Prado.WebUI.Control,  {  	count : 1, @@ -406,5 +406,5 @@ Object.extend(Prado.WebUI.TValueTriggeredCallback,  	}  }); -Prado.WebUI.TActiveTableCell = Class.create(Prado.WebUI.CallbackControl); -Prado.WebUI.TActiveTableRow = Class.create(Prado.WebUI.CallbackControl); +Prado.WebUI.TActiveTableCell = jQuery.klass(Prado.WebUI.CallbackControl); +Prado.WebUI.TActiveTableRow = jQuery.klass(Prado.WebUI.CallbackControl); diff --git a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js index f7f63026..b6d94b0b 100755 --- a/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/activedatepicker.js @@ -1,7 +1,7 @@  /**   * TActiveDatePicker control   */ -Prado.WebUI.TActiveDatePicker = Class.create(Prado.WebUI.TDatePicker, +Prado.WebUI.TActiveDatePicker = jQuery.klass(Prado.WebUI.TDatePicker,  {  	onInit : function(options)  	{ @@ -35,21 +35,21 @@ Prado.WebUI.TActiveDatePicker = Class.create(Prado.WebUI.TDatePicker,  		Object.extend(this,options);  		if (this.options.ShowCalendar) -			this.observe(this.trigger, triggerEvent, this.show.bindEvent(this)); +			this.observe(this.trigger, triggerEvent, jQuery.proxy(this.show,this));  		// Listen to change event   		if(this.options.InputMode == "TextBox")  		{ -			this.observe(this.control, "change", this.onDateChanged.bindEvent(this)); +			this.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));  		}   		else  		{  			var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);  			var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control);  			var year = Prado.WebUI.TDatePicker.getYearListControl(this.control); -			if (day) this.observe (day, "change", this.onDateChanged.bindEvent(this)); -			if (month) this.observe (month, "change", this.onDateChanged.bindEvent(this)); -			if (year) this.observe (year, "change", this.onDateChanged.bindEvent(this)); +			if (day) this.observe (day, "change", jQuery.proxy(this.onDateChanged,this)); +			if (month) this.observe (month, "change", jQuery.proxy(this.onDateChanged,this)); +			if (year) this.observe (year, "change", jQuery.proxy(this.onDateChanged,this));  		} diff --git a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js index e19f5d49..10f4fae6 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/ajax3.js @@ -1,5 +1,5 @@ -Prado.AjaxRequest = Class.create(); +Prado.AjaxRequest = jQuery.klass();  Prado.AjaxRequest.prototype = Object.clone(Ajax.Request.prototype);  /** @@ -127,7 +127,7 @@ Object.extend(Prado.AjaxRequest.prototype,  /**   * Prado Callback client-side request handler.   */ -Prado.CallbackRequest = Class.create(); +Prado.CallbackRequest = jQuery.klass();  /**   * Static definitions. @@ -970,7 +970,7 @@ Prado.Callback = function(UniqueID, parameter, onSuccess, options)  if (typeof(Prado.AssetManagerClass)=="undefined") { -  Prado.AssetManagerClass = Class.create(); +  Prado.AssetManagerClass = jQuery.klass();    Prado.AssetManagerClass.prototype = {  	initialize: function() { diff --git a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js index 511c2ab9..7fa9e791 100755 --- a/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/dragdrop.js @@ -2,7 +2,7 @@   * DropContainer control   */ -Prado.WebUI.DropContainer = Class.create(Prado.WebUI.CallbackControl, +Prado.WebUI.DropContainer = jQuery.klass(Prado.WebUI.CallbackControl,  {  	onInit: function(options)  	{ diff --git a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js index 0260c219..d2a17c8d 100644 --- a/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js +++ b/framework/Web/Javascripts/source/prado/activecontrols/inlineeditor.js @@ -1,4 +1,4 @@ -Prado.WebUI.TInPlaceTextBox = Class.create(Prado.WebUI.Control, +Prado.WebUI.TInPlaceTextBox = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{ diff --git a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js index 5f20944e..388bc7b0 100755 --- a/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js +++ b/framework/Web/Javascripts/source/prado/activefileupload/activefileupload.js @@ -1,4 +1,4 @@ -Prado.WebUI.TActiveFileUpload = Class.create(Prado.WebUI.Control, +Prado.WebUI.TActiveFileUpload = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{ diff --git a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js index 142745cf..14195090 100644 --- a/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js +++ b/framework/Web/Javascripts/source/prado/colorpicker/colorpicker.js @@ -1,7 +1,7 @@  //-------------------- ricoColor.js  if(typeof(Rico) == "undefined") Rico = {}; -Rico.Color = Class.create(); +Rico.Color = jQuery.klass();  Rico.Color.prototype = { @@ -242,7 +242,7 @@ Rico.Color.RGBtoHSB = function(r, g, b) {  }; -Prado.WebUI.TColorPicker = Class.create(); +Prado.WebUI.TColorPicker = jQuery.klass();  Object.extend(Prado.WebUI.TColorPicker,  { @@ -573,7 +573,7 @@ Object.extend(Prado.WebUI.TColorPicker.prototype,  		for(var type in this.inputs)  		{  			Event.observe(this.inputs[type], "change", -				this.onInputChanged.bindEvent(this,type)); +				jQuery.proxy(this.onInputChanged,this,type));  			i++;  			if(i > 6) break; @@ -596,7 +596,7 @@ Object.extend(Prado.WebUI.TColorPicker.prototype,  		this.observeMouseMovement(); -		Event.observe(this.buttons.Cancel, "click", this.hide.bindEvent(this,this.options['Mode'])); +		Event.observe(this.buttons.Cancel, "click", jQuery.proxy(this.hide,this,this.options['Mode']));  		Event.observe(this.buttons.OK, "click", this.onOKClicked.bind(this));  	}, diff --git a/framework/Web/Javascripts/source/prado/controls/accordion.js b/framework/Web/Javascripts/source/prado/controls/accordion.js index 90d01316..28075cd6 100644 --- a/framework/Web/Javascripts/source/prado/controls/accordion.js +++ b/framework/Web/Javascripts/source/prado/controls/accordion.js @@ -7,7 +7,7 @@   * http://creativecommons.org/licenses/by-sa/3.0/us/   */ -Prado.WebUI.TAccordion = Class.create(Prado.WebUI.Control, +Prado.WebUI.TAccordion = jQuery.klass(Prado.WebUI.Control,  {      	onInit : function(options)  	{ @@ -32,7 +32,7 @@ Prado.WebUI.TAccordion = Class.create(Prado.WebUI.Control,  			var header = $(view+'_0');  			if(header)  			{ -				this.observe(header, "click", this.elementClicked.bindEvent(this,view)); +				this.observe(header, "click", jQuery.proxy(this.elementClicked,this,view));  				if(this.hiddenField.value == i)  				{  					this.currentView = view; diff --git a/framework/Web/Javascripts/source/prado/controls/controls.js b/framework/Web/Javascripts/source/prado/controls/controls.js index 8ea6afe3..d2e796e1 100644 --- a/framework/Web/Javascripts/source/prado/controls/controls.js +++ b/framework/Web/Javascripts/source/prado/controls/controls.js @@ -1,21 +1,21 @@ -Prado.WebUI = Class.create(); +Prado.WebUI = jQuery.klass(); -Prado.WebUI.Control = Class.create({ +Prado.WebUI.Control = jQuery.klass({  	initialize : function(options)  	{  	    this.registered = false;  		this.ID = options.ID; -		this.element = $(this.ID); +		this.element = jQuery("#" + this.ID).get(0);  		this.observers = new Array();  		this.intervals = new Array();  		var e; -		if (e = Prado.Registry.get(this.ID)) -			this.replace(e, options); -		else +		if (jQuery.inArray(this.ID, Prado.Registry) == -1)  			this.register(options); +		else +			this.replace(Prado.Registry[this.ID], options); -		if (this === Prado.Registry.get(this.ID)) +		if (this === Prado.Registry[this.ID])  		{  			this.registered = true;  			if(this.onInit) @@ -29,7 +29,7 @@ Prado.WebUI.Control = Class.create({  	 */  	register : function(options)  	{ -		return Prado.Registry.set(options.ID, this); +		return Prado.Registry[options.ID] = this;  	},  	/** @@ -38,8 +38,12 @@ Prado.WebUI.Control = Class.create({  	deregister : function()  	{  		// extra check so we don't ever deregister another wrapper -		if (Prado.Registry.get(this.ID)===this) -			return Prado.Registry.unset(this.ID); +		var value = Prado.Registry[this.ID]; +		if (value===this) +		{ +			delete Prado.Registry[this.ID]; +			return value; +		}  		else  			debugger; // invoke debugger - this should never happen  	}, @@ -76,11 +80,11 @@ Prado.WebUI.Control = Class.create({  	 * @param string event name to observe           * @param handler event handler function  	 */ -	observe: function(element, eventName, handler) +	observe: function(element, eventName, handler, options)  	{  		var e = { _element: element, _eventName: eventName, _handler: handler };  		this.observers.push(e); -		return Event.observe(e._element,e._eventName,e._handler); +		return jQuery(e._element).bind(e._eventName, options, e._handler);  	},  	/** @@ -121,7 +125,7 @@ Prado.WebUI.Control = Class.create({  		else  			debugger; // shouldn't happen -		return Event.stopObserving(element,eventName,handler); +		return jQuery(element).unbind(eventName, handler);  	},  	/** @@ -133,7 +137,7 @@ Prado.WebUI.Control = Class.create({  	 */  	setTimeout: function(func, delay)  	{ -		if (!Object.isFunction(func))  +		if (!jQuery.isFunction(func))   		{  			var expr = func;  			func = function() { return eval(expr); } @@ -164,7 +168,7 @@ Prado.WebUI.Control = Class.create({  	 */  	setInterval: function(func, delay)  	{ -		if (!Object.isFunction(func)) func = function() { eval(func); }; +		if (!jQuery.isFunction(func)) func = function() { eval(func); };  		var obj = this;  		var h = window.setInterval(function() {  			if (!obj.isLingering()) @@ -212,7 +216,7 @@ Prado.WebUI.Control = Class.create({  				while (this.observers.length>0)	  				{  					var e = this.observers.pop(); -					Event.stopObserving(e._element,e._eventName,e._handler); +					jQuery(e._element).unbind(e._eventName, e._handler);  				}  			}  		else @@ -225,7 +229,7 @@ Prado.WebUI.Control = Class.create({  }); -Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, { +Prado.WebUI.PostBackControl = jQuery.klass(Prado.WebUI.Control, {  	onInit : function(options)  	{ @@ -241,13 +245,13 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {  					this._elementOnClick = this.element.onclick.bind(this.element);  					this.element.onclick = null;  				} -				this.observe(this.element, "click", this.elementClicked.bindEvent(this,options)); +				this.observe(this.element, "click", jQuery.proxy(this.elementClicked,this,options));  			}  	}, -	elementClicked : function(event, options) +	elementClicked : function(options, event)  	{ -		var src = Event.element(event); +		var src = event.target;  		var doPostBack = true;  		var onclicked = null; @@ -258,29 +262,29 @@ Prado.WebUI.PostBackControl = Class.create(Prado.WebUI.Control, {  				doPostBack = onclicked;  		}  		if(doPostBack && !Prado.Element.isDisabled(src)) -			this.onPostBack(event,options); +			this.onPostBack(options,event);  		if(typeof(onclicked) == "boolean" && !onclicked) -			Event.stop(event); +			event.stopPropagation();  	}, -	onPostBack : function(event, options) +	onPostBack : function(options, event)  	{ -		Prado.PostBack(event,options); +		Prado.PostBack(options, event);  	}  }); -Prado.WebUI.TButton = Class.create(Prado.WebUI.PostBackControl); -Prado.WebUI.TLinkButton = Class.create(Prado.WebUI.PostBackControl); -Prado.WebUI.TCheckBox = Class.create(Prado.WebUI.PostBackControl); -Prado.WebUI.TBulletedList = Class.create(Prado.WebUI.PostBackControl); -Prado.WebUI.TImageMap = Class.create(Prado.WebUI.PostBackControl); +Prado.WebUI.TButton = jQuery.klass(Prado.WebUI.PostBackControl); +Prado.WebUI.TLinkButton = jQuery.klass(Prado.WebUI.PostBackControl); +Prado.WebUI.TCheckBox = jQuery.klass(Prado.WebUI.PostBackControl); +Prado.WebUI.TBulletedList = jQuery.klass(Prado.WebUI.PostBackControl); +Prado.WebUI.TImageMap = jQuery.klass(Prado.WebUI.PostBackControl);  /**   * TImageButton client-side behaviour. With validation, Firefox needs   * to capture the x,y point of the clicked image in hidden form fields.   */ -Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,  +Prado.WebUI.TImageButton = jQuery.klass(Prado.WebUI.PostBackControl,   {  	/**  	 * Override parent onPostBack function, tried to add hidden forms @@ -346,11 +350,11 @@ Prado.WebUI.TImageButton = Class.create(Prado.WebUI.PostBackControl,  /**   * Radio button, only initialize if not already checked.   */ -Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl, +Prado.WebUI.TRadioButton = jQuery.klass(Prado.WebUI.PostBackControl,  {  	initialize : function($super, options)  	{ -		this.element = $(options['ID']); +		this.element = $("#" + options['ID']).get(0);  		if(this.element)  		{  			if(!this.element.checked) @@ -360,7 +364,7 @@ Prado.WebUI.TRadioButton = Class.create(Prado.WebUI.PostBackControl,  }); -Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl, +Prado.WebUI.TTextBox = jQuery.klass(Prado.WebUI.PostBackControl,  {  	onInit : function(options)  	{ @@ -368,27 +372,27 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,  		if(this.options['TextMode'] != 'MultiLine')  			this.observe(this.element, "keydown", this.handleReturnKey.bind(this));  		if(this.options['AutoPostBack']==true) -			this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options)); +			this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));  	},  	handleReturnKey : function(e)  	{ -		 if(Event.keyCode(e) == Event.KEY_RETURN) +		 if(e.keyCode == 13) // KEY_RETURN          { -			var target = Event.element(e); +			var target = e.target;  			if(target)  			{  				if(this.options['AutoPostBack']==true)  				{ -					Event.fireEvent(target, "change"); -					Event.stop(e); +					$(target).trigger( "change" ); +					e.stopPropagation();  				}  				else  				{  					if(this.options['CausesValidation'] && typeof(Prado.Validation) != "undefined")  					{  						if(!Prado.Validation.validate(this.options['FormID'], this.options['ValidationGroup'], $(this.options['ID']))) -							return Event.stop(e); +							return e.stopPropagation();  					}  				}  			} @@ -396,23 +400,23 @@ Prado.WebUI.TTextBox = Class.create(Prado.WebUI.PostBackControl,  	}  }); -Prado.WebUI.TListControl = Class.create(Prado.WebUI.PostBackControl, +Prado.WebUI.TListControl = jQuery.klass(Prado.WebUI.PostBackControl,  {  	onInit : function(options)  	{ -		this.observe(this.element, "change", Prado.PostBack.bindEvent(this,options)); +		this.observe(this.element, "change", jQuery.proxy(Prado.PostBack,this,options));  	}  }); -Prado.WebUI.TListBox = Class.create(Prado.WebUI.TListControl); -Prado.WebUI.TDropDownList = Class.create(Prado.WebUI.TListControl); +Prado.WebUI.TListBox = jQuery.klass(Prado.WebUI.TListControl); +Prado.WebUI.TDropDownList = jQuery.klass(Prado.WebUI.TListControl); -Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control, +Prado.WebUI.DefaultButton = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{  		this.options = options; -		this.observe(options['Panel'], 'keydown', this.triggerEvent.bindEvent(this)); +		this.observe(options['Panel'], "keydown", jQuery.proxy(this.triggerEvent,this));  	},  	triggerEvent : function(ev, target) @@ -435,7 +439,7 @@ Prado.WebUI.DefaultButton = Class.create(Prado.WebUI.Control,  	}  }); -Prado.WebUI.TTextHighlighter = Class.create(); +Prado.WebUI.TTextHighlighter = jQuery.klass();  Prado.WebUI.TTextHighlighter.prototype =  {  	initialize:function(id) @@ -453,7 +457,7 @@ Prado.WebUI.TTextHighlighter.prototype =  	}  }; -Object.extend(Prado.WebUI.TTextHighlighter, +jQuery.klass(Prado.WebUI.TTextHighlighter,  {  	copy : function(obj)  	{ @@ -483,14 +487,14 @@ Object.extend(Prado.WebUI.TTextHighlighter,  }); -Prado.WebUI.TCheckBoxList = Base.extend( +Prado.WebUI.TCheckBoxList = jQuery.klass(Prado.WebUI.Control,  {  	constructor : function(options)  	{  		Prado.Registry.set(options.ListID, this);  		for(var i = 0; i<options.ItemCount; i++)  		{ -			var checkBoxOptions = Object.extend( +			var checkBoxOptions = jQuery.extend(  			{  				ID : options.ListID+"_c"+i,  				EventTarget : options.ListName+"$c"+i @@ -500,14 +504,14 @@ Prado.WebUI.TCheckBoxList = Base.extend(  	}  }); -Prado.WebUI.TRadioButtonList = Base.extend( +Prado.WebUI.TRadioButtonList = jQuery.klass(Prado.WebUI.Control,  {  	constructor : function(options)  	{  		Prado.Registry.set(options.ListID, this);  		for(var i = 0; i<options.ItemCount; i++)  		{ -			var radioButtonOptions = Object.extend( +			var radioButtonOptions = jQuery.extend(  			{  				ID : options.ListID+"_c"+i,  				EventTarget : options.ListName+"$c"+i diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea.js b/framework/Web/Javascripts/source/prado/controls/htmlarea.js index 5cba4f6c..a425e697 100644 --- a/framework/Web/Javascripts/source/prado/controls/htmlarea.js +++ b/framework/Web/Javascripts/source/prado/controls/htmlarea.js @@ -8,7 +8,7 @@  */ -Prado.WebUI.THtmlArea = Class.create(Prado.WebUI.Control, +Prado.WebUI.THtmlArea = jQuery.klass(Prado.WebUI.Control,  {  	initialize: function($super, options)  	{ diff --git a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js index cd3c6a0e..418a6e19 100644 --- a/framework/Web/Javascripts/source/prado/controls/htmlarea4.js +++ b/framework/Web/Javascripts/source/prado/controls/htmlarea4.js @@ -8,7 +8,7 @@  */ -Prado.WebUI.THtmlArea4 = Class.create(Prado.WebUI.Control, +Prado.WebUI.THtmlArea4 = jQuery.klass(Prado.WebUI.Control,  {  	initialize: function($super, options)  	{ diff --git a/framework/Web/Javascripts/source/prado/controls/keyboard.js b/framework/Web/Javascripts/source/prado/controls/keyboard.js index 25541074..768b8d8d 100644 --- a/framework/Web/Javascripts/source/prado/controls/keyboard.js +++ b/framework/Web/Javascripts/source/prado/controls/keyboard.js @@ -1,4 +1,4 @@ -Prado.WebUI.TKeyboard = Class.create(Prado.WebUI.Control, +Prado.WebUI.TKeyboard = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)      { diff --git a/framework/Web/Javascripts/source/prado/controls/tabpanel.js b/framework/Web/Javascripts/source/prado/controls/tabpanel.js index bd0a7494..78f6478c 100644 --- a/framework/Web/Javascripts/source/prado/controls/tabpanel.js +++ b/framework/Web/Javascripts/source/prado/controls/tabpanel.js @@ -1,58 +1,58 @@ -Prado.WebUI.TTabPanel = Class.create(Prado.WebUI.Control, +Prado.WebUI.TTabPanel = jQuery.klass(Prado.WebUI.Control,  {  	onInit : function(options)  	{  		this.views = options.Views;  		this.viewsvis = options.ViewsVis; -		this.hiddenField = $(options.ID+'_1'); +		this.hiddenField = $("#"+options.ID+'_1').get(0);  		this.activeCssClass = options.ActiveCssClass;  		this.normalCssClass = options.NormalCssClass;  		var length = options.Views.length;  		for(var i = 0; i<length; i++)  		{  			var item = options.Views[i]; -			var element = $(item+'_0'); +			var element = jQuery("#"+item+'_0').get(0);  			if (element && options.ViewsVis[i])  			{ -				this.observe(element, "click", this.elementClicked.bindEvent(this,item)); +				this.observe(element, "click", jQuery.proxy(this.elementClicked,this,item));  				if (options.AutoSwitch) -					this.observe(element, "mouseenter", this.elementClicked.bindEvent(this,item)); +					this.observe(element, "mouseenter", jQuery.proxy(this.elementClicked,this,item));  			}  			if(element)  			{ -				var view = $(options.Views[i]); +				var view = $("#"+options.Views[i]).get(0);  				if (view)  					if(this.hiddenField.value == i)  					{  						element.className=this.activeCssClass; -						view.show(); +						jQuery(view).show();  					} else {  						element.className=this.normalCssClass; -						view.hide(); +						jQuery(view).hide();  					}  			}  		}  	}, -	elementClicked : function(event,viewID) +	elementClicked : function(viewID, event)  	{  		var length = this.views.length;  		for(var i = 0; i<length; i++)  		{  			var item = this.views[i]; -			if ($(item)) +			if (jQuery("#"+item))  			{  				if(item == viewID)  				{ -					$(item+'_0').className=this.activeCssClass; -					$(item).show(); +					jQuery("#"+item+'_0').removeClass(this.normalCssClass).addClass(this.activeCssClass); +					jQuery("#"+item).show();  					this.hiddenField.value=i;  				}  				else  				{ -					$(item+'_0').className=this.normalCssClass; -					$(item).hide(); +					jQuery("#"+item+'_0').removeClass(this.activeCssClass).addClass(this.normalCssClass); +					jQuery("#"+item).hide();  				}  			}  		} diff --git a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js index ae1ad4b9..bb581751 100644 --- a/framework/Web/Javascripts/source/prado/datepicker/datepicker.js +++ b/framework/Web/Javascripts/source/prado/datepicker/datepicker.js @@ -1,4 +1,4 @@ -Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control, +Prado.WebUI.TDatePicker = jQuery.klass(Prado.WebUI.Control,  {  	MonthNames : [	"January",		"February",		"March",	"April",  		"May",			"June",			"July",		"August", @@ -52,23 +52,23 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,  		// generate default date _after_ extending options  		this.selectedDate = this.newDate(); -		Event.observe(this.trigger, triggerEvent, this.show.bindEvent(this)); +		Event.observe(this.trigger, triggerEvent, jQuery.proxy(this.show,this));  		// Listen to change event if needed  		if (typeof(this.options.OnDateChanged) == "function")  		{  			if(this.options.InputMode == "TextBox")  			{ -				Event.observe(this.control, "change", this.onDateChanged.bindEvent(this)); +				Event.observe(this.control, "change", jQuery.proxy(this.onDateChanged,this));  			}   			else  			{  				var day = Prado.WebUI.TDatePicker.getDayListControl(this.control);  				var month = Prado.WebUI.TDatePicker.getMonthListControl(this.control);  				var year = Prado.WebUI.TDatePicker.getYearListControl(this.control); -				Event.observe (day, "change", this.onDateChanged.bindEvent(this)); -				Event.observe (month, "change", this.onDateChanged.bindEvent(this)); -				Event.observe (year, "change", this.onDateChanged.bindEvent(this)); +				Event.observe (day, "change", jQuery.proxy(this.onDateChanged,this)); +				Event.observe (month, "change", jQuery.proxy(this.onDateChanged,this)); +				Event.observe (year, "change", jQuery.proxy(this.onDateChanged,this));  			} @@ -214,8 +214,8 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,  				tmp.data = text;  				this.dateSlot[(week*7)+day] = tmp; -				Event.observe(td, "mouseover", this.hover.bindEvent(this)); -				Event.observe(td, "mouseout", this.hover.bindEvent(this)); +				Event.observe(td, "mouseover", jQuery.proxy(this.hover,this)); +				Event.observe(td, "mouseout", jQuery.proxy(this.hover,this));  			}  		} @@ -257,19 +257,19 @@ Prado.WebUI.TDatePicker = Class.create(Prado.WebUI.Control,  		// end IE55+ extension  		// hook up events -		Event.observe(previousMonth, "click", this.prevMonth.bindEvent(this)); -		Event.observe(nextMonth, "click", this.nextMonth.bindEvent(this)); -		Event.observe(todayButton, "click", this.selectToday.bindEvent(this)); -		//Event.observe(clearButton, "click", this.clearSelection.bindEvent(this)); -		Event.observe(this._monthSelect, "change", this.monthSelect.bindEvent(this)); -		Event.observe(this._yearSelect, "change", this.yearSelect.bindEvent(this)); +		Event.observe(previousMonth, "click", jQuery.proxy(this.prevMonth,this)); +		Event.observe(nextMonth, "click", jQuery.proxy(this.nextMonth,this)); +		Event.observe(todayButton, "click", jQuery.proxy(this.selectToday,this)); +		//Event.observe(clearButton, "click", jQuery.proxy(this.clearSelection,this)); +		Event.observe(this._monthSelect, "change", jQuery.proxy(this.monthSelect,this)); +		Event.observe(this._yearSelect, "change", jQuery.proxy(this.yearSelect,this));  		// ie, opera -		Event.observe(this._calDiv, "mousewheel", this.mouseWheelChange.bindEvent(this)); +		Event.observe(this._calDiv, "mousewheel", jQuery.proxy(this.mouseWheelChange,this));  		// ff -		Event.observe(this._calDiv, "DOMMouseScroll", this.mouseWheelChange.bindEvent(this)); +		Event.observe(this._calDiv, "DOMMouseScroll", jQuery.proxy(this.mouseWheelChange,this)); -		Event.observe(calendarBody, "click", this.selectDate.bindEvent(this)); +		Event.observe(calendarBody, "click", jQuery.proxy(this.selectDate,this));  		Prado.Element.focus(this.control); diff --git a/framework/Web/Javascripts/source/prado/logger/logger.js b/framework/Web/Javascripts/source/prado/logger/logger.js index 55cc1aa3..c5cea3ca 100644 --- a/framework/Web/Javascripts/source/prado/logger/logger.js +++ b/framework/Web/Javascripts/source/prado/logger/logger.js @@ -13,7 +13,7 @@ Use it all you want. Just remember to give me some credit :)  // Custom Event  // ------------ -CustomEvent = Class.create(); +CustomEvent = jQuery.klass();  CustomEvent.prototype = {    initialize : function() {    	this.listeners = [] @@ -179,7 +179,7 @@ Logger = {  	}  }; -LogEntry = Class.create() +LogEntry = jQuery.klass()  LogEntry.prototype = {      initialize : function(message, tag) {        this.message = message @@ -187,7 +187,7 @@ LogEntry.prototype = {      }  }; -LogConsole = Class.create(); +LogConsole = jQuery.klass();  LogConsole.prototype = {    // Properties diff --git a/framework/Web/Javascripts/source/prado/prado.js b/framework/Web/Javascripts/source/prado/prado.js index 05f11dcd..00c65a92 100644 --- a/framework/Web/Javascripts/source/prado/prado.js +++ b/framework/Web/Javascripts/source/prado/prado.js @@ -14,81 +14,722 @@ var Prado =  	 * Registry for Prado components  	 * @var Registry  	 */ -	Registry: $H(), +	Registry: {}, +}; + +/** + * Performs a PostBack using javascript. + * @function Prado.PostBack + * @param options - Postback options + * @param event - Event that triggered this postback + * @... {string} FormID - Form that should be posted back + * @... {optional boolean} CausesValidation - Validate before PostBack if true + * @... {optional string} ValidationGroup - Group to Validate  + * @... {optional string} ID - Validation ID  + * @... {optional string} PostBackUrl - Postback URL + * @... {optional boolean} TrackFocus - Keep track of focused element if true + * @... {string} EventTarget - Id of element that triggered PostBack + * @... {string} EventParameter - EventParameter for PostBack + */ +Prado.PostBack = function(options, event) +{ +	var form = jQuery("#" + options['FormID']).get(0); +	var canSubmit = true; + +	if(options['CausesValidation'] && typeof(Prado.Validation) != "undefined") +	{ +		if(!Prado.Validation.validate(options['FormID'], options['ValidationGroup'], $(options['ID']))) +			return event.preventDefault(); +	} + +	if(options['PostBackUrl'] && options['PostBackUrl'].length > 0) +		form.action = options['PostBackUrl']; + +	if(options['TrackFocus']) +	{ +		var lastFocus = $('PRADO_LASTFOCUS'); +		if(lastFocus) +		{ +			var active = document.activeElement; //where did this come from +			if(active) +				lastFocus.value = active.id; +			else +				lastFocus.value = options['EventTarget']; +		} +	} + +	$('PRADO_POSTBACK_TARGET').value = options['EventTarget']; +	$('PRADO_POSTBACK_PARAMETER').value = options['EventParameter']; +	/** +	 * Since google toolbar prevents browser default action, +	 * we will always disable default client-side browser action +	 */ +	/*if(options['StopEvent']) */ +		event.preventDefault(); +	form.submit(); + +	$('PRADO_POSTBACK_TARGET').value = ''; +	$('PRADO_POSTBACK_PARAMETER').value = ''; +}; + +/** + * Prado utilities to manipulate DOM elements. + * @object Prado.Element + */ +Prado.Element = +{ +	/** +	 * Set the value of a particular element. +	 * @function ? +	 * @param {string} element - Element id +	 * @param {string} value - New element value +	 */ +	setValue : function(element, value) +	{ +		var el = jQuery("#" + element).get(0); +		if(el && typeof(el.value) != "undefined") +			el.value = value; +	},  	/** -	 * Returns browser information.  +	 * Select options from a selectable element. +	 * @function ? +	 * @param {string} element - Element id +	 * @param {string} method - Name of any {@link Prado.Element.Selection} method +	 * @param {array|boolean|string} value - Values that should be selected +	 * @param {int} total - Number of elements  +	 */ +	select : function(element, method, value, total) +	{ +		var el = jQuery("#" + element).get(0); +		if(!el) return; +		var selection = Prado.Element.Selection; +		if(typeof(selection[method]) == "function") +		{ +			var control = selection.isSelectable(el) ? [el] : selection.getListElements(element,total); +			selection[method](control, value); +		} +	}, + +	/** +	 * Trigger a click event on a DOM element. +	 * @function ? +	 * @param {string} element - Element id +	 */ +	click : function(element) +	{ +		var el = jQuery("#" + element).get(0); +		if(el) +			el.click(); +	}, +	 +	/** +	 * Check if an DOM element is disabled. +	 * @function {boolean} ? +	 * @param {string} element - Element id +	 * @returns true if element is disabled +	 */ +	isDisabled : function(element) +	{ +		if(!element.attributes['disabled']) //FF +			return false; +		var value = element.attributes['disabled'].nodeValue; +		if(typeof(value)=="string") +			return value.toLowerCase() == "disabled"; +		else +			return value == true; +	}, + +	/** +	 * Sets an attribute of a DOM element. +	 * @function ? +	 * @param {string} element - Element id +	 * @param {string} attribute - Name of attribute +	 * @param {string} value - Value of attribute +	 */ +	setAttribute : function(element, attribute, value) +	{ +		var el = jQuery("#" + element).get(0); +		if(!el) return; +		if((attribute == "disabled" || attribute == "multiple" || attribute == "readonly" || attribute == "href") && value==false) +			el.removeAttribute(attribute); +		else if(attribute.match(/^on/i)) //event methods +		{ +			try +			{ +				eval("(func = function(event){"+value+"})"); +				el[attribute] = func; +			} +			catch(e) +			{ +				debugger; +				throw "Error in evaluating '"+value+"' for attribute "+attribute+" for element "+element.id; +			} +		} +		else +			el.setAttribute(attribute, value); +	}, + +	/** +	 * Sets the options for a select element.  +	 * @function ? +	 * @param {string} element - Element id +	 * @param {array[]} options - Array of options, each an array of structure  +	 *   [ "optionText" , "optionValue" , "optionGroup" ] +	 */ +	setOptions : function(element, options) +	{ +		var el = jQuery("#" + element).get(0); +		if(!el) return; +		var previousGroup = null; +		var optGroup=null; +		if(el && el.tagName.toLowerCase() == "select") +		{ +			while(el.childNodes.length > 0) +				el.removeChild(el.lastChild); + +			var optDom = Prado.Element.createOptions(options); +			for(var i = 0; i < optDom.length; i++) +				el.appendChild(optDom[i]); +		} +	}, + +	/** +	 * Create opt-group options from an array of options.  +	 * @function {array} ? +	 * @param {array[]} options - Array of options, each an array of structure  +	 *   [ "optionText" , "optionValue" , "optionGroup" ] +	 * @returns Array of option DOM elements +	 */ +	createOptions : function(options) +	{ +		var previousGroup = null; +		var optgroup=null; +		var result = []; +		for(var i = 0; i<options.length; i++) +		{ +			var option = options[i]; +			if(option.length > 2) +			{ +				var group = option[2]; +				if(group!=previousGroup) +				{ +					if(previousGroup!=null && optgroup!=null) +					{ +						result.push(optgroup); +						previousGroup=null; +						optgroup=null; +					} +					optgroup = document.createElement('optgroup'); +					optgroup.label = group; +					previousGroup = group; +				} +			} +			var opt = document.createElement('option'); +			opt.text = option[0]; +			opt.innerHTML = option[0]; +			opt.value = option[1]; +			if(optgroup!=null) +				optgroup.appendChild(opt); +			else +				result.push(opt); +		} +		if(optgroup!=null) +			result.push(optgroup); +		return result; +	}, + +	/** +	 * Set focus (delayed) on a particular element. +	 * @function ? +	 * @param {string} element - Element id +	 */ +	focus : function(element) +	{ +		var obj = jQuery("#" + element).get(0); +		if(typeof(obj) != "undefined" && typeof(obj.focus) != "undefined") +			setTimeout(function(){ obj.focus(); }, 100); +		return false; +	}, + +	/** +	 * Replace a DOM element either with given content or +	 * with content from a CallBack response boundary +	 * using a replacement method. +	 * @function ? +	 * @param {string|element} element - DOM element or element id +	 * @param {string} method - Name of method to use for replacement +	 * @param {optional string} content - New content of element +	 * @param {optional string} boundary - Boundary of new content +	 */ +	replace : function(element, method, content, boundary) +	{ +		if(boundary) +		{ +			var result = Prado.Element.extractContent(this.transport.responseText, boundary); +			if(result != null) +				content = result; +		} +		if(typeof(element) == "string") +		{ +			if(jQuery("#" + element).get(0)) +				method.toFunction().apply(this,[element,""+content]); +		} +		else +		{ +			method.toFunction().apply(this,[""+content]); +		} +	}, + +	/** +	 * Appends a javascript block to the document. +	 * @function ? +	 * @param {string} boundary - Boundary containing the javascript code +	 */ +	appendScriptBlock : function(boundary) +	{ +		var content = Prado.Element.extractContent(this.transport.responseText, boundary); +		if(content == null) +			return; + +		var el   = document.createElement("script"); +		el.type  = "text/javascript"; +		el.id    = 'inline_' + boundary; +		el.text  = content; + +		(document.getElementsByTagName('head')[0] || document.documentElement).appendChild(el); +		el.parentNode.removeChild(el); +	}, + +	/** +	 * Extract content from a text by its boundary id. +	 * Boundaries have this form:  	 * <pre> -	 * var browser = Prado.Browser(); -	 * alert(browser.ie); //should ouput true if IE, false otherwise +	 * <!--123456-->Democontent<!--//123456-->  	 * </pre> -	 * @function {object} ? -	 * @version 1.0 -	 * @returns browserinfo -	 * @... {string} agent - Reported user agent -	 * @... {string} ver - Reported agent version -	 * @... {0|1} dom - 1 for DOM browsers  -	 * @... {0|1} ns4 - 1 for Netscape 4 -	 * @... {0|1} ns6 - 1 for Netscape 6 and Firefox -	 * @... {boolean} ie3 - true for IE 3 -	 * @... {0|1} ie5 - 1 for IE 5 -	 * @... {0|1} ie6 - 1 for IE 6 -	 * @... {0|1} ie4 - 1 for IE 4 -	 * @... {0|1} ie - 1 for IE 4-6 -	 * @... {0|1} hotjava - 1 for HotJava -	 * @... {0|1} ver3 - 1 for IE3 and HotJava -	 * @... {0|1} opera - 1 for Opera -	 * @... {boolean} opera7 - true for Opera 7 -	 * @... {0|1} operaOld - 1 for older Opera     -	 * @... {0|1} bw - 1 for IE 4-6, Netscape 4&6, Firefox and Opera -	 * @... {boolean} mac - true for mac systems  -	 * @... {static} Version - Version of returned structure (1.0) +	 * @function {string} ? +	 * @param {string} text - Text that contains boundaries +	 * @param {string} boundary - Boundary id +	 * @returns Content from given boundaries  	 */ -	Browser : function() +	extractContent : function(text, boundary)  	{ -		var info = { Version : "1.0" }; -		var is_major = parseInt( navigator.appVersion ); -		info.nver = is_major; -		info.ver = navigator.appVersion; -		info.agent = navigator.userAgent; -		info.dom = document.getElementById ? 1 : 0; -		info.opera = window.opera ? 1 : 0; -		info.ie5 = ( info.ver.indexOf( "MSIE 5" ) > -1 && info.dom && !info.opera ) ? 1 : 0; -		info.ie6 = ( info.ver.indexOf( "MSIE 6" ) > -1 && info.dom && !info.opera ) ? 1 : 0; -		info.ie4 = ( document.all && !info.dom && !info.opera ) ? 1 : 0; -		info.ie = info.ie4 || info.ie5 || info.ie6; -		info.mac = info.agent.indexOf( "Mac" ) > -1; -		info.ns6 = ( info.dom && parseInt( info.ver ) >= 5 ) ? 1 : 0; -		info.ie3 = ( info.ver.indexOf( "MSIE" ) && ( is_major < 4 ) ); -		info.hotjava = ( info.agent.toLowerCase().indexOf( 'hotjava' ) != -1 ) ? 1 : 0; -		info.ns4 = ( document.layers && !info.dom && !info.hotjava ) ? 1 : 0; -		info.bw = ( info.ie6 || info.ie5 || info.ie4 || info.ns4 || info.ns6 || info.opera ); -		info.ver3 = ( info.hotjava || info.ie3 ); -		info.opera7 = ( ( info.agent.toLowerCase().indexOf( 'opera 7' ) > -1 ) || ( info.agent.toLowerCase().indexOf( 'opera/7' ) > -1 ) ); -		info.operaOld = info.opera && !info.opera7; -		return info; +		var tagStart = '<!--'+boundary+'-->'; +		var tagEnd = '<!--//'+boundary+'-->'; +		var start = text.indexOf(tagStart); +		if(start > -1) +		{ +			start += tagStart.length; +			var end = text.indexOf(tagEnd,start); +			if(end > -1) +				return text.substring(start,end); +		} +		return null; +		/*var f = RegExp('(?:<!--'+boundary+'-->)((?:.|\n|\r)+?)(?:<!--//'+boundary+'-->)',"m"); +		var result = text.match(f); +		if(result && result.length >= 2) +			return result[1]; +		else +			return null;*/  	},  	/** -	 * Import CSS from Url. +	 * Evaluate a javascript snippet from a string. +	 * @function ? +	 * @param {string} content - String containing the script +	 */ +	evaluateScript : function(content) +	{ +		try +		{ +			content.evalScripts(); +		} +		catch(e) +		{ +			if(typeof(Logger) != "undefined") +				Logger.error('Error during evaluation of script "'+content+'"'); +			else +				debugger; +			throw e; +		} +	}, +	 +	/** +	 * Set CSS style with Camelized keys. + 	 * See <a href="http://www.prototypejs.org/api/element/setstyle" target="_blank">Prototype's  + 	 * Element.setStyle</a> for details.  	 * @function ? -	 * @param doc - document DOM object -	 * @param css_file - Url to CSS file +	 * @param {string|element} element - DOM element or element id +	 * @param {object} styles - Object with style properties/values  	 */ -	ImportCss : function(doc, css_file) +	setStyle : function (element, styles)  	{ -		if (Prado.Browser().ie) -			var styleSheet = doc.createStyleSheet(css_file); +		var s = {} +		// Camelize all styles keys +		for (var property in styles) +		{ +			s[property.camelize()]=styles[property].camelize(); +		} +		Element.setStyle(element, s); +	} +}; + +jQuery.extend(String.prototype, { + +	/** +	 * Add padding to string +	 * @function {string} ? +	 * @param {string} side - "left" to pad the string on the left, "right" to pad right. +	 * @param {int} len - Minimum string length. +	 * @param {string} chr - Character(s) to pad +	 * @returns Padded string +	 */ +	pad : function(side, len, chr) { +		if (!chr) chr = ' '; +		var s = this; +		var left = side.toLowerCase()=='left'; +		while (s.length<len) s = left? chr + s : s + chr; +		return s; +	}, + +	/** +	 * Add left padding to string +	 * @function {string} ? +	 * @param {int} len - Minimum string length. +	 * @param {string} chr - Character(s) to pad +	 * @returns Padded string +	 */ +	padLeft : function(len, chr) { +		return this.pad('left',len,chr); +	}, + +	/** +	 * Add right padding to string +	 * @function {string} ? +	 * @param {int} len - Minimum string length. +	 * @param {string} chr - Character(s) to pad +	 * @returns Padded string +	 */ +	padRight : function(len, chr) { +		return this.pad('right',len,chr); +	}, + +	/** +	 * Add zeros to the right of string +	 * @function {string} ? +	 * @param {int} len - Minimum string length. +	 * @returns Padded string +	 */ +	zerofill : function(len) { +		return this.padLeft(len,'0'); +	}, + +	/** +	 * Remove white spaces from both ends of string. +	 * @function {string} ? +	 * @returns Trimmed string +	 */ +	trim : function() { +		return this.replace(/^\s+|\s+$/g,''); +	}, + +	/** +	 * Remove white spaces from the left side of string. +	 * @function {string} ? +	 * @returns Trimmed string +	 */ +	trimLeft : function() { +		return this.replace(/^\s+/,''); +	}, + +	/** +	 * Remove white spaces from the right side of string. +	 * @function {string} ? +	 * @returns Trimmed string +	 */ +	trimRight : function() { +		return this.replace(/\s+$/,''); +	}, + +	/** +	 * Convert period separated function names into a function reference. +	 * <br />Example: +	 * <pre>  +	 * "Prado.AJAX.Callback.Action.setValue".toFunction() +	 * </pre> +	 * @function {function} ? +	 * @returns Reference to the corresponding function +	 */ +	toFunction : function() +	{ +		var commands = this.split(/\./); +		var command = window; +		jQuery(commands).each(function(idx, action) +		{ +			if(command[new String(action)]) +				command=command[new String(action)]; +		}); +		if(typeof(command) == "function") +			return command;  		else  		{ -			var elm = doc.createElement("link"); +			if(typeof Logger != "undefined") +				Logger.error("Missing function", this); + +			throw new Error	("Missing function '"+this+"'"); +		} +	}, + +	/** +	 * Convert string into integer, returns null if not integer. +	 * @function {int} ? +	 * @returns Integer, null if string does not represent an integer. +	 */ +	toInteger : function() +	{ +		var exp = /^\s*[-\+]?\d+\s*$/; +		if (this.match(exp) == null) +			return null; +		var num = parseInt(this, 10); +		return (isNaN(num) ? null : num); +	}, + +	/** +	 * Convert string into a double/float value. <b>Internationalization +	 * is not supported</b> +	 * @function {double} ? +	 * @param {string} decimalchar - Decimal character, defaults to "." +	 * @returns Double, null if string does not represent a float value +	 */ +	toDouble : function(decimalchar) +	{ +		if(this.length <= 0) return null; +		decimalchar = decimalchar || "."; +		var exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + decimalchar + "(\\d+))?\\s*$"); +		var m = this.match(exp); -			elm.rel = "stylesheet"; -			elm.href = css_file; -			var headArr; +		if (m == null) +			return null; +		m[1] = m[1] || ""; +		m[2] = m[2] || "0"; +		m[4] = m[4] || "0"; -			if (headArr = doc.getElementsByTagName("head")) -				headArr[0].appendChild(elm); +		var cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4]; +		var num = parseFloat(cleanInput); +		return (isNaN(num) ? null : num); +	}, + +	/** +	 * Convert strings that represent a currency value to float. +	 * E.g. "10,000.50" will become "10000.50". The number +	 * of dicimal digits, grouping and decimal characters can be specified. +	 * <i>The currency input format is <b>very</b> strict, null will be returned if +	 * the pattern does not match</i>. +	 * @function {double} ? +	 * @param {string} groupchar - Grouping character, defaults to "," +	 * @param {int} digits - Number of decimal digits +	 * @param {string} decimalchar - Decimal character, defaults to "." +	 * @returns Double, null if string does not represent a currency value +	 */ +	toCurrency : function(groupchar, digits, decimalchar) +	{ +		groupchar = groupchar || ","; +		decimalchar = decimalchar || "."; +		digits = typeof(digits) == "undefined" ? 2 : digits; + +		var exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + groupchar + ")*)(\\d+)" +			+ ((digits > 0) ? "(\\" + decimalchar + "(\\d{1," + digits + "}))?" : "") +			+ "\\s*$"); +		var m = this.match(exp); +		if (m == null) +			return null; +		var intermed = m[2] + m[5] ; +		var cleanInput = m[1] + intermed.replace( +				new RegExp("(\\" + groupchar + ")", "g"), "") +								+ ((digits > 0) ? "." + m[7] : ""); +		var num = parseFloat(cleanInput); +		return (isNaN(num) ? null : num); +	}, + +	/** +	 * Converts the string to a date by finding values that matches the +	 * date format pattern. +	 * @function {Date} ? +	 * @param {string} format - Date format pattern, e.g. MM-dd-yyyy +	 * @returns Date extracted from the string +	 */ +	toDate : function(format) +	{ +		return Date.SimpleParse(this, format); +	} +}); + +jQuery.extend(Date.prototype, +{ +	/** +	 * SimpleFormat +	 * @function ? +	 * @param {string} format - TODO +	 * @param {string} data - TODO +	 * @returns TODO +	 */ +	SimpleFormat: function(format, data) +	{ +		data = data || {}; +		var bits = new Array(); +		bits['d'] = this.getDate(); +		bits['dd'] = String(this.getDate()).zerofill(2); + +		bits['M'] = this.getMonth()+1; +		bits['MM'] = String(this.getMonth()+1).zerofill(2); +		if(data.AbbreviatedMonthNames) +			bits['MMM'] = data.AbbreviatedMonthNames[this.getMonth()]; +		if(data.MonthNames) +			bits['MMMM'] = data.MonthNames[this.getMonth()]; +		var yearStr = "" + this.getFullYear(); +		yearStr = (yearStr.length == 2) ? '19' + yearStr: yearStr; +		bits['yyyy'] = yearStr; +		bits['yy'] = bits['yyyy'].toString().substr(2,2); + +		// do some funky regexs to replace the format string +		// with the real values +		var frm = new String(format); +		for (var sect in bits) +		{ +			var reg = new RegExp("\\b"+sect+"\\b" ,"g"); +			frm = frm.replace(reg, bits[sect]);  		} +		return frm; +	}, + +	/** +	 * toISODate +	 * @function {string} ? +	 * @returns TODO +	 */ +	toISODate : function() +	{ +		var y = this.getFullYear(); +		var m = String(this.getMonth() + 1).zerofill(2); +		var d = String(this.getDate()).zerofill(2); +		return String(y) + String(m) + String(d);  	} -}; +}); + +jQuery.extend(Date, +{ +	/** +	 * SimpleParse +	 * @function ? +	 * @param {string} format - TODO +	 * @param {string} data - TODO +	 * @returns TODO +	 */ +	SimpleParse: function(value, format) +	{ +		var val=String(value); +		format=String(format); + +		if(val.length <= 0) return null; + +		if(format.length <= 0) return new Date(value); + +		var isInteger = function (val) +		{ +			var digits="1234567890"; +			for (var i=0; i < val.length; i++) +			{ +				if (digits.indexOf(val.charAt(i))==-1) { return false; } +			} +			return true; +		}; + +		var getInt = function(str,i,minlength,maxlength) +		{ +			for (var x=maxlength; x>=minlength; x--) +			{ +				var token=str.substring(i,i+x); +				if (token.length < minlength) { return null; } +				if (isInteger(token)) { return token; } +			} +			return null; +		}; + +		var i_val=0; +		var i_format=0; +		var c=""; +		var token=""; +		var token2=""; +		var x,y; +		var now=new Date(); +		var year=now.getFullYear(); +		var month=now.getMonth()+1; +		var date=1; + +		while (i_format < format.length) +		{ +			// Get next token from format string +			c=format.charAt(i_format); +			token=""; +			while ((format.charAt(i_format)==c) && (i_format < format.length)) +			{ +				token += format.charAt(i_format++); +			} + +			// Extract contents of value based on format token +			if (token=="yyyy" || token=="yy" || token=="y") +			{ +				if (token=="yyyy") { x=4;y=4; } +				if (token=="yy")   { x=2;y=2; } +				if (token=="y")    { x=2;y=4; } +				year=getInt(val,i_val,x,y); +				if (year==null) { return null; } +				i_val += year.length; +				if (year.length==2) +				{ +					if (year > 70) { year=1900+(year-0); } +					else { year=2000+(year-0); } +				} +			} + +			else if (token=="MM"||token=="M") +			{ +				month=getInt(val,i_val,token.length,2); +				if(month==null||(month<1)||(month>12)){return null;} +				i_val+=month.length; +			} +			else if (token=="dd"||token=="d") +			{ +				date=getInt(val,i_val,token.length,2); +				if(date==null||(date<1)||(date>31)){return null;} +				i_val+=date.length; +			} +			else +			{ +				if (val.substring(i_val,i_val+token.length)!=token) {return null;} +				else {i_val+=token.length;} +			} +		} + +		// If there are any trailing characters left in the value, it doesn't match +		if (i_val != val.length) { return null; } + +		// Is date valid for month? +		if (month==2) +		{ +			// Check for leap year +			if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year +				if (date > 29){ return null; } +			} +			else { if (date > 28) { return null; } } +		} + +		if ((month==4)||(month==6)||(month==9)||(month==11)) +		{ +			if (date > 30) { return null; } +		} + +		var newdate=new Date(year,month-1,date, 0, 0, 0); +		return newdate; +	} +}); diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js index 0361389f..c820b610 100644 --- a/framework/Web/Javascripts/source/prado/validator/validation3.js +++ b/framework/Web/Javascripts/source/prado/validator/validation3.js @@ -61,7 +61,7 @@   * @module validation   */ -Prado.Validation =  Class.create(); +Prado.Validation =  jQuery.klass();  /**   * Global Validation Object. @@ -76,7 +76,7 @@ Prado.Validation =  Class.create();   *    * @object {static} Prado.Validation   */ -Object.extend(Prado.Validation, +jQuery.extend(Prado.Validation,  {  	/**  	 * Hash of registered validation managers @@ -133,8 +133,10 @@ Object.extend(Prado.Validation,  	 */  	getForm : function()  	{ -		var keys = $H(this.managers).keys(); -		return keys[0]; +		var keys = jQuery.map(this.managers, function(value, key) { +			return key; +		}); +		return keys.length>0 ? keys[0] : null;  	},  	/** @@ -201,14 +203,14 @@ Object.extend(Prado.Validation,  	setErrorMessage : function(validatorID, message)  	{ -		$H(Prado.Validation.managers).each(function(manager) +		jQuery.each(Prado.Validation.managers, function(manager)  		{ -			manager[1].validators.each(function(validator) +			jQuery.each(manager[1].validators, function(validator)  			{  				if(validator.options.ID == validatorID)  				{  					validator.options.ErrorMessage = message; -					$(validatorID).innerHTML = message; +					jQuery("#" + validatorID).get(0).innerHTML = message;  				}  			});  		}); @@ -216,9 +218,9 @@ Object.extend(Prado.Validation,  	updateActiveCustomValidator : function(validatorID, isValid)  	{ -		$H(Prado.Validation.managers).each(function(manager) +		jQuery.each(Prado.Validation.managers, function(idx, manager)  		{ -			manager[1].validators.each(function(validator) +			jQuery.each(manager[1].validators, function(idx, validator)  			{  				if(validator.options.ID == validatorID)  				{ @@ -239,7 +241,7 @@ Object.extend(Prado.Validation,   *    * @class Prado.ValidationManager   */ -Prado.ValidationManager = Class.create(); +Prado.ValidationManager = jQuery.klass();  Prado.ValidationManager.prototype =  {  	/** @@ -301,7 +303,10 @@ Prado.ValidationManager.prototype =  	 */  	reset : function(group)  	{ -		this.validatorPartition(group)[0].invoke('reset'); +		var vals = this.validatorPartition(group)[0]; +		for(var i = 0; i < vals.length; i++) +			vals[i].reset(); +  		this.updateSummary(group, true);  	}, @@ -316,9 +321,14 @@ Prado.ValidationManager.prototype =  	validate : function(group, source)  	{  		var partition = this.validatorPartition(group); -		var valid = partition[0].invoke('validate', source).all(); +		var valid=true; +		for(var i = 0; i < partition[0].length; i++) +		{ +			if(!partition[0][i].validate(source)) +				valid=false; +		}  		this.focusOnError(partition[0]); -		partition[1].invoke('hide'); +		jQuery(partition[1]).hide();  		this.updateSummary(group, true);  		return valid;  	}, @@ -374,12 +384,16 @@ Prado.ValidationManager.prototype =  	 */  	validatorsInGroup : function(groupID)  	{ -		if(this.groups.include(groupID)) +		if(jQuery.inArray(groupID, this.groups)!=-1)  		{ -			return this.validators.partition(function(val) -			{ -				return val.group == groupID; +			var trues = [], falses = []; +			jQuery.each(this.validators, function(idx, val) { +				if(val.group == groupID) +					trues.push(val); +				else +					falses.push(val);  			}); +			return [trues, falses];  		}  		else  			return [[],[]]; @@ -396,10 +410,14 @@ Prado.ValidationManager.prototype =  	 */  	validatorsWithoutGroup : function()  	{ -		return this.validators.partition(function(val) -		{ -			return !val.group; +		var trues = [], falses = []; +		jQuery.each(this.validators, function(idx, val) { +			if(!val.group) +				trues.push(val); +			else +				falses.push(val);  		}); +		return [trues, falses];  	},  	/** @@ -412,7 +430,13 @@ Prado.ValidationManager.prototype =  	 */  	isValid : function(group)  	{ -		return this.validatorPartition(group)[0].pluck('isValid').all(); +		for(var i = 0; i < this.validatorPartition(group)[0]; i++) +		{ +			if(!this.validatorPartition(group)[0].isValid()) +				return false; +		} + +		return true;  	},  	/** @@ -427,7 +451,7 @@ Prado.ValidationManager.prototype =          this.removeValidator(validator);  		this.validators.push(validator); -		if(validator.group && !this.groups.include(validator.group)) +		if(validator.group && jQuery.inArray(validator.group, this.groups)==-1)  			this.groups.push(validator.group);          if (typeof this.controls[validator.control.id] === 'undefined') @@ -452,14 +476,15 @@ Prado.ValidationManager.prototype =  	 */      removeValidator : function(validator)      { -		this.validators = this.validators.reject(function(v) +		this.validators = jQuery.grep(this.validators, function(v)  		{ -			return (v.options.ID==validator.options.ID); +			return (v.options.ID!=validator.options.ID);  		}); +		// WTF?          if (this.controls[validator.control.id]) -            this.controls[validator.control.id].reject( function(v) +            jQuery.grep(this.controls[validator.control.id],  function(v)              { -                return (v.options.ID==validator.options.ID) +                return (v.options.ID!=validator.options.ID)              });      }, @@ -473,7 +498,7 @@ Prado.ValidationManager.prototype =  	 */  	getValidatorsWithError : function(group)  	{ -		return this.validatorPartition(group)[0].findAll(function(validator) +		return jQuery.grep(this.validatorPartition(group)[0], function(validator)  		{  			return !validator.isValid;  		}); @@ -491,7 +516,7 @@ Prado.ValidationManager.prototype =  	updateSummary : function(group, refresh)  	{  		var validators = this.getValidatorsWithError(group); -		this.summaries.each(function(summary) +		jQuery.each(this.summaries, function(idx, summary)  		{  			var inGroup = group && summary.group == group;  			var noGroup = !group || !summary.group; @@ -522,7 +547,7 @@ Prado.ValidationManager.prototype =   *    * @class Prado.WebUI.TValidationSummary   */ -Prado.WebUI.TValidationSummary = Class.create(); +Prado.WebUI.TValidationSummary = jQuery.klass();  Prado.WebUI.TValidationSummary.prototype =  {  	/** @@ -558,8 +583,8 @@ Prado.WebUI.TValidationSummary.prototype =  		 * Summary DOM element  		 * @var {element} messages  		 */ -		this.messages = $(options.ID); -		Prado.Registry.set(options.ID, this); +		this.messages = jQuery("#" + options.ID).get(0); +		Prado.Registry[options.ID] = this;  		if(this.messages)  		{  			/** @@ -592,7 +617,14 @@ Prado.WebUI.TValidationSummary.prototype =  		var refresh = update || this.visible == false || this.options.Refresh != false;  		// Also, do not refresh summary if at least 1 validator is waiting for callback response.  		// This will avoid the flickering of summary if the validator passes its test -		refresh = refresh && validators.any(function(v) { return !v.requestDispatched; }); +		for(var i = 0; i < validators.length; i++) +		{ +			if(validators[i].requestDispatched) +			{ +				refresh=false; +				break; +			} +		}  		if(this.options.ShowSummary != false && refresh)  		{ @@ -619,7 +651,7 @@ Prado.WebUI.TValidationSummary.prototype =  	{  		while(this.messages.childNodes.length > 0)  			this.messages.removeChild(this.messages.lastChild); -		this.messages.insert(this.formatSummary(messages)); +		jQuery(this.messages).append(this.formatSummary(messages));  	},  	/** @@ -642,7 +674,7 @@ Prado.WebUI.TValidationSummary.prototype =  	getMessages : function(validators)  	{  		var messages = []; -		validators.each(function(validator) +		jQuery.each(validators, function(idx, validator)  		{  			var message = validator.getErrorMessage();  			if(typeof(message) == 'string' && message.length > 0) @@ -666,7 +698,7 @@ Prado.WebUI.TValidationSummary.prototype =  		{  			this.messages.style.visibility="hidden";  			if(this.options.Display == "None" || this.options.Display == "Dynamic") -				this.messages.hide(); +				jQuery(this.messages).hide();  		}  		this.visible = false;  	}, @@ -682,7 +714,7 @@ Prado.WebUI.TValidationSummary.prototype =  		if(typeof(this.options.OnShowSummary) == "function")  			this.options.OnShowSummary(this,validators);  		else -			this.messages.show(); +			jQuery(this.messages).show();  		this.visible = true;  	}, @@ -724,7 +756,7 @@ Prado.WebUI.TValidationSummary.prototype =  		var format = this.formats(this.options.DisplayMode);  		var output = this.options.HeaderText ? this.options.HeaderText + format.header : "";  		output += format.first; -		messages.each(function(message) +		jQuery.each(messages, function(idx, message)  		{  			output += message.length > 0 ? format.pre + message + format.post : "";  		}); @@ -776,7 +808,7 @@ Prado.WebUI.TValidationSummary.prototype =   *    * @class Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control, +Prado.WebUI.TBaseValidator = jQuery.klass(Prado.WebUI.Control,  {  	/**  	 * Initialize TBaseValidator. @@ -846,14 +878,14 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  		 * DOM element of control to validate  		 * @var {element} control  		 */ -		this.control = $(options.ControlToValidate); +		this.control = jQuery("#" + options.ControlToValidate).get(0);  		/**  		 * DOM element of validator  		 * @var {element} message  		 */ -		this.message = $(options.ID); +		this.message = jQuery("#" + options.ID).get(0); -		Prado.Registry.set(options.ID, this); +		Prado.Registry[options.ID] = this;  		if (this.onInit) this.onInit(); @@ -907,7 +939,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  			if(this.options.Display == "Dynamic")  			{  				var msg=this.message; -				this.isValid ? msg.hide() : msg.show(); +				this.isValid ? jQuery(msg).hide() : jQuery(msg).show();  			}  			this.message.style.visibility = this.isValid ? "hidden" : "visible";  		} @@ -933,13 +965,13 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  				if (control.lastValidator == this.options.ID)  				{  					control.lastValidator = null; -					control.removeClassName(CssClass); +					jQuery(control).removeClass(CssClass);  				}  			}  			else  			{  				control.lastValidator = this.options.ID; -				control.addClassName(CssClass); +				jQuery(control).addClass(CssClass);  			}  		}  	}, @@ -977,7 +1009,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	{  		//try to find the control.  		if(!this.control) -			this.control = $(this.options.ControlToValidate); +			this.control = jQuery("#" + this.options.ControlToValidate).get(0);  		if(!this.control || this.control.disabled)  		{ @@ -1102,7 +1134,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  					return value;  				else  				{ -					var value = string.toDate(this.options.DateFormat); +					var value = string.toDate(string, this.options.DateFormat);  					if(value && typeof(value.getTime) == "function")  						return value.getTime();  					else @@ -1131,7 +1163,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	 		case 'TDatePicker':  	 			if(control.type == "text")  	 			{ -	 				var value = this.trim($F(control)); +	 				var value = this.trim(jQuery("#" + control).get(0).val());  					if(this.options.DateFormat)  	 				{ @@ -1151,15 +1183,17 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	 		case 'THtmlArea4':  	 			if(typeof tinyMCE != "undefined")  					tinyMCE.triggerSave(); -				return $F(control); +				return control.value;  			case 'TRadioButton':  				if(this.options.GroupName)  					return this.getRadioButtonGroupValue(); +			case 'TCheckBox': +				return control.checked;  	 		default:  	 			if(this.isListControlType())  	 				return this.getFirstSelectedListValue();  	 			else -		 			return $F(control); +		 			return jQuery(control).val();  	 	}  	 }, @@ -1184,6 +1218,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  			case 'THtmlArea4':  				return this.trim(value);  			case 'TRadioButton': +			case 'TCheckBox':  				return value;  			default:  				if(this.isListControlType()) @@ -1202,7 +1237,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	{  		var name = this.control.name;  		var value = ""; -		$A(document.getElementsByName(name)).each(function(el) +		jQuery.each(document.getElementsByName(name), function(idx, el)  		{  			if(el.checked)  				value =  el.value; @@ -1216,13 +1251,10 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	  */  	 observeDatePickerChanges : function()  	 { -	 	if(Prado.Browser().ie) -	 	{ -	 		var DatePicker = Prado.WebUI.TDatePicker; -	 		this.observeChanges(DatePicker.getDayListControl(this.control)); -			this.observeChanges(DatePicker.getMonthListControl(this.control)); -			this.observeChanges(DatePicker.getYearListControl(this.control)); -	 	} + 		var DatePicker = Prado.WebUI.TDatePicker; + 		this.observeChanges(DatePicker.getDayListControl(this.control)); +		this.observeChanges(DatePicker.getMonthListControl(this.control)); +		this.observeChanges(DatePicker.getYearListControl(this.control));  	 },  	/** @@ -1239,7 +1271,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  		var checked = 0;  		var values = [];  		var isSelected = this.isCheckBoxType(elements[0]) ? 'checked' : 'selected'; -		elements.each(function(element) +		jQuery.each(elements, function(idx, element)  		{  			if(element[isSelected] && element.value != initialValue)  			{ @@ -1266,19 +1298,19 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  				var elements = [];  				for(var i = 0; i < this.options.TotalItems; i++)  				{ -					var element = $(this.options.ControlToValidate+"_c"+i); +					var element = jQuery("#" + this.options.ControlToValidate+"_c"+i).get(0);  					if(this.isCheckBoxType(element))  						elements.push(element);  				}  				return elements;  			case 'TListBox':  				var elements = []; -				var element = $(this.options.ControlToValidate); +				var element = jQuery("#" + this.options.ControlToValidate).get(0);  				var type;  				if(element && (type = element.type.toLowerCase()))  				{  					if(type == "select-one" || type == "select-multiple") -						elements = $A(element.options); +						elements = element.options;  				}  				return elements;  			default: @@ -1310,7 +1342,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,  	isListControlType : function()  	{  		var list = ['TCheckBoxList', 'TRadioButtonList', 'TListBox']; -		return list.include(this.options.ControlType); +		return (jQuery.inArray(this.options.ControlType, list)!=-1);  	},  	/** @@ -1339,7 +1371,7 @@ Prado.WebUI.TBaseValidator = Class.create(Prado.WebUI.Control,   * @class Prado.WebUI.TRequiredFieldValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TRequiredFieldValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TRequiredFieldValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Evaluate validation state @@ -1380,7 +1412,7 @@ Prado.WebUI.TRequiredFieldValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TCompareValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TCompareValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Additional constructor options. @@ -1407,7 +1439,7 @@ Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator,  	    if (value.length <= 0)  	    	return true; -    	var comparee = $(this.options.ControlToCompare); +    	var comparee = jQuery("#" + this.options.ControlToCompare).get(0);  		if(comparee)  			var compareTo = this.getValidationValue(comparee); @@ -1487,7 +1519,7 @@ Prado.WebUI.TCompareValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TCustomValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TCustomValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TCustomValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Additional constructor options. @@ -1521,7 +1553,7 @@ Prado.WebUI.TCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TActiveCustomValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TActiveCustomValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Override the parent implementation to store the invoker, in order to @@ -1538,7 +1570,7 @@ Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,  		//try to find the control.  		if(!this.control) -			this.control = $(this.options.ControlToValidate); +			this.control = jQuery("#" + this.options.ControlToValidate).get(0);  		if(!this.control || this.control.disabled)  		{ @@ -1604,7 +1636,7 @@ Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TRangeValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TRangeValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TRangeValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Additional constructor options. @@ -1663,7 +1695,7 @@ Prado.WebUI.TRangeValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TRegularExpressionValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TRegularExpressionValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TRegularExpressionValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Additional constructor option. @@ -1707,7 +1739,7 @@ Prado.WebUI.TEmailAddressValidator = Prado.WebUI.TRegularExpressionValidator;   * @class Prado.WebUI.TListControlValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TListControlValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Evaluate validation state @@ -1733,10 +1765,10 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,  	 */  	 observeListElements : function(elements)  	 { -		if(Prado.Browser().ie && this.isCheckBoxType(elements[0])) +		if(this.isCheckBoxType(elements[0]))  		{  			var validator = this; -			elements.each(function(element) +			jQuery.each(elements, function(idx, element)  			{  				validator.observeChanges(element);  			}); @@ -1763,9 +1795,9 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,  		{  			if(values.length < required.length)  				return false; -			required.each(function(requiredValue) +			jQuery.each(required, function(idx, requiredValue)  			{ -				exists = exists && values.include(requiredValue); +				exists = exists && (jQuery.inArray(requiredValue, values)!=-1);  			});  		} @@ -1808,7 +1840,7 @@ Prado.WebUI.TListControlValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TDataTypeValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TDataTypeValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TDataTypeValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Additional constructor option. @@ -1839,7 +1871,7 @@ Prado.WebUI.TDataTypeValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TCaptchaValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TCaptchaValidator = Class.extend(Prado.WebUI.TBaseValidator, +Prado.WebUI.TCaptchaValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	/**  	 * Evaluate validation state @@ -1910,7 +1942,7 @@ Prado.WebUI.TCaptchaValidator = Class.extend(Prado.WebUI.TBaseValidator,   * @class Prado.WebUI.TReCaptchaValidator   * @extends Prado.WebUI.TBaseValidator   */ -Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator, +Prado.WebUI.TReCaptchaValidator = jQuery.klass(Prado.WebUI.TBaseValidator,  {  	onInit : function()  	{ @@ -1926,7 +1958,7 @@ Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator,  	responseChanged: function()  	{ -		var field = $(this.options.ID+'_1'); +		var field = jQuery("#" + this.options.ID+'_1').get(0);  		if (field.value=='1') return;  		field.value = '1';  		Prado.Validation.validateControl(this.options.ID); @@ -1939,7 +1971,7 @@ Prado.WebUI.TReCaptchaValidator = Class.create(Prado.WebUI.TBaseValidator,  	 */  	evaluateIsValid : function()  	{ -		return ($(this.options.ID+'_1').value=='1'); +		return (jQuery("#" + this.options.ID+'_1').get(0).value=='1');  	}  }); | 
