diff --git a/shlr/www/enyo/Makefile b/shlr/www/enyo/Makefile deleted file mode 100644 index 54424f253bb42..0000000000000 --- a/shlr/www/enyo/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -.PHONY: index.js -all: index.js - -node_modules/.bin/uglifyjs: - mkdir -p node_modules - npm install uglify-js - -debug: - cat js/*.js > index.js - -U=node_modules/.bin/uglifyjs -index.js: $U -# cat js/*.js > index.js - cat js/*.js | $U > index.js || cat js/*.js > index.js - -ENYO=http://enyojs.com/sampler/latest/build -JOINT=http://www.jointjs.com/cms/downloads/ - -enyo-sync: - mkdir -p build - # ENYO UI - wget -O build/enyo.css $(ENYO)/enyo.css - wget -O build/enyo.js $(ENYO)/enyo.js - wget -O build/app.css $(ENYO)/app.css - wget -O build/app.js $(ENYO)/app.js - # Joint.JS Graph - wget -O build/joint.min.js $(JOINT)/joint.min.js - wget -O build/joint.min.css $(JOINT)/joint.min.css - # jQuery - wget -O build/jquery.min.js http://code.jquery.com/jquery-2.0.3.min.js diff --git a/shlr/www/enyo/build/app.css b/shlr/www/enyo/build/app.css deleted file mode 100644 index 9a947ff01683a..0000000000000 --- a/shlr/www/enyo/build/app.css +++ /dev/null @@ -1,1432 +0,0 @@ - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/fittable/source/FittableLayout.css */ - -.enyo-fittable-rows-layout { - position: relative; -} - -.enyo-fittable-rows-layout > * { - box-sizing: border-box; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - /* float when not stretched */ - float: left; - clear: both; -} - -/* non-floating when stretched */ -.enyo-fittable-rows-layout.enyo-stretch > * { - float: none; - clear: none; -} - -/* setting to enforce margin collapsing */ -/* NOTE: rows cannot have margin left/right */ -.enyo-fittable-rows-layout.enyo-stretch.enyo-margin-expand > * { - float: left; - clear: both; - width: 100%; - /* note: harsh resets */ - margin-left: 0 !important; - margin-right: 0 !important; -} - -.enyo-fittable-columns-layout { - position: relative; - text-align: left; - white-space: nowrap; -} - -.enyo-fittable-columns-layout.enyo-center { - text-align: center; -} - -.enyo-fittable-columns-layout > * { - box-sizing: border-box; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - vertical-align: top; - display: inline-block; - white-space: normal; -} - -.enyo-fittable-columns-layout.enyo-tool-decorator > * { - vertical-align: middle; -} - -/* repair clobbered white-space setting for pre, code */ -.enyo-fittable-columns-layout > pre, .enyo-fittable-columns-layout > code { - white-space: pre; -} - -.enyo-fittable-columns-layout > .enyo-fittable-columns-layout, .enyo-fittable-columns-layout > .onyx-toolbar-inline { - white-space: nowrap; -} - -/* NOTE: columns cannot have margin top/bottom */ -.enyo-fittable-columns-layout.enyo-stretch > * { - height: 100%; - /* note: harsh resets */ - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/list/source/List.css */ - -.enyo-list { - position: relative; -} - -.enyo-list-port { - overflow: hidden; - position: relative; - height: 1000000px; -} - -.enyo-list-page, .enyo-list-holdingarea { - position: absolute; - left: 0; - right: 0; -} - -.enyo-list-holdingarea { - top: -10000px; -} - -.enyo-pinned-list-placeholder { - border: 1px solid red; - position: absolute; - top: 0; left: 0; - z-index: 1000; - background: transparent; - overflow: hidden; -} - -.enyo-pinned-list-placeholder button { - width: 100px; height: 100%; - position: absolute; - top: 0; right: 0; -} - -.enyo-list-reorder-container { - position: absolute; - top: 0; left: 0; - z-index: 1000; - background: transparent; - overflow: hidden; -} - -.enyo-animatedTopAndLeft { - -webkit-transition: top 0.1s linear, left 0.1s linear; - -moz-transition: top 0.1s linear, left 0.1s linear; - -o-transition: top 0.1s linear, left 0.1s linear; - transition: top 0.1s linear, left 0.1s linear; -} - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/list/source/PulldownList.css */ - -.enyo-list-pulldown { - position: absolute; - bottom: 100%; - left: 0; - right: 0; -} - -.enyo-puller { - position: relative; - height: 50px; - font-size: 22px; - color: #444; - padding: 20px 0 0px 34px; -} - -.enyo-puller-text { - position: absolute; - left: 80px; - top: 22px; -} - -.enyo-puller-arrow { - position: relative; - background: #444; - width: 7px; - height: 28px; - transition: transform 0.3s; - -webkit-transition: -webkit-transform 0.3s; - -moz-transition: -moz-transform 0.3s; - -o-transition: -o-transform 0.3s; - -ms-transition: -ms-transform 0.3s; -} - -.enyo-puller-arrow:after { - content: " "; - height: 0; - width: 0; - position: absolute; - border: 10px solid transparent; - border-bottom-color: #444; - bottom: 100%; - left: 50%; - margin-left: -10px; -} - -.enyo-puller-arrow-up { - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -ms-transform: rotate(0deg); -} - -.enyo-puller-arrow-down { - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); - -ms-transform: rotate(180deg); -} - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/panels/source/arrangers/Arranger.css */ - -.enyo-arranger { - position: relative; - overflow: hidden; -} - -.enyo-arranger.enyo-fit { - position: absolute; -} - -.enyo-arranger > * { - position: absolute; - left: 0; - top: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.enyo-arranger-fit > * { - /* override any width/height set on panels */ - width: 100% !important; - height: 100% !important; - min-width: 0 !important; - min-height: 0 !important; -} - - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/panels/source/Panels.css */ - -.enyo-panels { -} - -.enyo-panels-fit-narrow { -} - -@media all and (max-width: 800px) { - .enyo-panels-fit-narrow > * { - min-width: 100%; - max-width: 100%; - } -} - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/tree/source/Node.css */ - -.enyo-node { - cursor: default; - padding: 4px; -} - -.enyo-node img { - vertical-align: middle; - padding-right: 6px; -} - -.enyo-node-box { - overflow: hidden; -} - -.enyo-node-client { - position: relative; -} - -.enyo-animate .enyo-node-box, .enyo-animate .enyo-node-client { - -ms-transition-property: height, top; - -ms-transition-duration: 0.2s, 0.2s; - -moz-transition-property: height, top; - -moz-transition-duration: 0.2s, 0.2s; - -o-transition-property: height, top; - -o-transition-duration: 0.2s, 0.2s; - -webkit-transition-property: height, top; - -webkit-transition-duration: 0.2s, 0.2s; - transition-property: height, top; - transition-duration: 0.2s, 0.2s; -} - - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/layout/imageview/source/ImageViewPin.css */ - - -.pinDebug { - background:yellow; - border:1px solid yellow; -} - -/* /home/reviewdaemon/hudson/trunk/agent/workspace/Enyo-github-build/bootplate/enyo/../lib/onyx/css/onyx.less */ - -/* Onyx default parameters defined here */ -/* Fonts */ -/* ---------------------------------------*/ -/* Text Colors */ -/* ---------------------------------------*/ -/* Background Colors */ -/* ---------------------------------------*/ -/* Border Radius */ -/* ---------------------------------------*/ -/* Padding */ -/* ---------------------------------------*/ -/* Icon Sizes */ -/* ---------------------------------------*/ -/* Disabled Opacity */ -/* ---------------------------------------*/ -/* Gradient Overlays */ -/* ---------------------------------------*/ -/* Images */ -/* ---------------------------------------*/ -/* Onyx rules defined here */ -/* onyx-classes.less - combined CSS (less) files for all released Onyx controls - into single onyx.less file to avoid IE bug that allows - a maximum of 31 style sheets to be loaded before silently failing */ -.onyx { - color: #333333; - font-family: 'Helvetica Neue', 'Nimbus Sans L', Arial, sans-serif; - font-size: 20px; - cursor: default; - background-color: #eaeaea; - /* remove automatic tap highlight color */ - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -/* prevent IE from inheriting line-height for these elements */ -.onyx button, -.onyx label, -.onyx input { - line-height: normal; -} -.onyx-selected { - background-color: #c4e3fe; -} -/* LESS pre-calculations */ -/* Individual Widget CSS */ -/* Icon.css */ -.onyx-icon, -.onyx-icon-toggle { - width: 32px; - height: 32px; - background-repeat: no-repeat; - display: inline-block; - vertical-align: middle; -} -.onyx-icon.onyx-icon-button.active, -.onyx-icon.onyx-icon-button.pressed, -.onyx-icon.onyx-icon-button:active:hover, -.onyx-icon-toggle.active { - background-position: 0 -32px; -} -.onyx-icon.disabled { - opacity: 0.4; - filter: alpha(opacity=40); -} -.onyx-icon.disabled:active:hover { - background-position: 0 0px; -} -/* Button.css */ -.onyx-button { - outline: 0; - color: #292929; - font-size: 16px; - text-align: center; - white-space: nowrap; - margin: 0; - padding: 6px 18px; - overflow: hidden; - border-radius: 3px; - /* for IE8 */ - - border: 1px solid #707070; - border: 1px solid rgba(15, 15, 15, 0.2); - /* - The border and the gradient interact in a strange way that - causes the bottom-border (top if the gradient is aligned top) - to be lighter than other borders. - We can fix it by using the darker bottom border below, but - then there are a few rogue pixels that end up very dark. - */ - - /* border-bottom: 1px solid rgba(15, 15, 15, 0.5); */ - - box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.2); - background: #e1e1e1 url(../lib/onyx/images/gradient.png) repeat-x bottom; - background-size: contain; - /**/ - - text-overflow: ellipsis; - /* the following cause arcane problems on IE */ - - /* - min-width: 14px; - min-height: 20px; - */ - -} -/* - IE8 can't handle these selectors in tandem: - .onyx-button.active, .onyx-button:active:not([disabled]) { - - the effect is as if .onyx-button.active doesn't exist -*/ -.onyx-button.active, -.onyx-button.pressed { - background-image: url(../lib/onyx/images/gradient-invert.png); - background-position: top; - border-top: 1px solid rgba(15, 15, 15, 0.6); - box-shadow: inset 0px 1px 0px rgba(0, 0, 0, 0.1); -} -.onyx-button:active:hover:not([disabled]) { - background-image: url(../lib/onyx/images/gradient-invert.png); - background-position: top; - border-top: 1px solid rgba(15, 15, 15, 0.6); - box-shadow: inset 0px 1px 0px rgba(0, 0, 0, 0.1); -} -.onyx-button[disabled] { - opacity: 0.4; - filter: alpha(opacity=40); -} -.onyx-button > img { - padding: 0px 3px; -} -/* Remove the focused inner-border style in Firefox (Windows) */ -.onyx-button::-moz-focus-inner { - border: 0; -} -/* Checkbox.css */ -.onyx-checkbox { - cursor: pointer; - height: 32px; - width: 32px; - background: url(../lib/onyx/images/checkbox.png) no-repeat; - /* reset for ? */ - - margin: 0px; - /* these entries cause toggle-button and checkbox to line up properly*/ - - display: inline-block; - vertical-align: middle; -} -.onyx-checkbox[checked] { - background-position: 0px -32px; -} -.onyx-checkbox[disabled] { - opacity: 0.4; -} -/* Grabber.css */ -.onyx-grabber { - background: url(../lib/onyx/images/grabbutton.png) no-repeat center; - width: 23px; - height: 27px; -} -/* Popup.css */ -.onyx-popup { - font-size: 16px; - box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 8px; - padding: 6px; - color: #ffffff; - background: #4c4c4c url(../lib/onyx/images/gradient.png) repeat-x 0 bottom; -} -.onyx-popup-decorator { - position: relative; -} -/* Groupbox.css */ -.onyx-groupbox > * { - display: block; - /*box-shadow: inset 0px 1px 1px rgba(255,255,255,0.5);*/ - - border-color: #aaaaaa; - border-style: solid; - border-width: 0 1px 1px 1px; - /*padding: 10px;*/ - - /* reset styles that make 'item' look bad if they happen to be there */ - - border-radius: 0; - margin: 0; - font-size: 16px; -} -.onyx-groupbox > *:first-child { - border-top-color: #aaaaaa; - border-width: 1px; - border-radius: 4px 4px 0 0; -} -.onyx-groupbox > *:last-child { - border-radius: 0 0 4px 4px; -} -.onyx-groupbox > *:first-child:last-child { - border-radius: 4px; -} -.onyx-groupbox-header { - padding: 2px 10px; - color: #ffffff; - font-size: 14px; - font-weight: bold; - text-transform: uppercase; - /**/ - - background-color: #4c4c4c; - border: none; - background: #4c4c4c url(../lib/onyx/images/gradient.png) repeat-x 0 10px; -} -.onyx-groupbox .onyx-input-decorator { - display: block; -} -.onyx-groupbox > .onyx-input-decorator { - border-color: #aaaaaa; - border-width: 0 1px 1px 1px; - border-radius: 0; -} -.onyx-groupbox > .onyx-input-decorator:first-child { - border-width: 1px; - border-radius: 4px 4px 0 0; -} -.onyx-groupbox > .onyx-input-decorator:last-child { - border-radius: 0 0 4px 4px; -} -.onyx-groupbox > .onyx-input-decorator:first-child:last-child { - border-radius: 4px; -} -/* Input.css */ -.onyx-input-decorator { - padding: 6px 8px 10px 8px; - border-radius: 3px; - border: 1px solid; - border-color: rgba(0, 0, 0, 0.1); - margin: 0; -} -.onyx-input-decorator.onyx-focused { - box-shadow: inset 0px 1px 4px rgba(0, 0, 0, 0.3); - border-color: rgba(0, 0, 0, 0.3); - background-color: #ffffff; -} -.onyx-input-decorator.onyx-disabled { - /* FIXME: needed to color a disabled input placeholder. */ - - /*-webkit-text-fill-color: #888;*/ - - opacity: 0.4; - filter: alpha(opacity=40); -} -.onyx-input-decorator > input { - /* reset */ - - margin: 0; - padding: 0; - border: none; - outline: none; - cursor: pointer; - background-color: transparent; - background-image: none; - font-size: 16px; - box-shadow: none; - /* FIXME: hack for styling reset on Android */ - - /* -webkit-appearance: caret;*/ - -} -.onyx-input-decorator.onyx-focused > input { - cursor: text; -} -.onyx-input-decorator.onyx-disabled > input { - cursor: default; -} -/* Menu.css */ -.onyx-menu, -.onyx.onyx-menu { - min-width: 160px; - top: 100%; - left: 0; - margin-top: 2px; - padding: 3px 0; - border-radius: 3px; -} -.onyx-menu.onyx-menu-up { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: 2px; -} -.onyx-toolbar .onyx-menu { - margin-top: 11px; - border-radius: 0 0 3px 3px; -} -.onyx-toolbar .onyx-menu.onyx-menu-up { - margin-top: 0; - margin-bottom: 10px; - border-radius: 3px 3px 0 0; -} -.onyx-menu-item { - display: block; - padding: 10px; -} -.onyx-menu-item:hover { - background: #284152; -} -.onyx-menu-divider, -.onyx-menu-divider:hover { - margin: 6px 0; - padding: 0; - border-bottom: 1px solid #aaa; -} -.onyx-menu-label { - cursor: default; - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; - opacity: 0.4; - filter: alpha(opacity=40); -} -.onyx-menu-label:hover { - background: none; -} -/* customize a toolbar to support menus */ -.onyx-menu-toolbar, -.onyx-toolbar.onyx-menu-toolbar { - position: relative; - z-index: 10; - overflow: visible; -} -/* Picker.css */ -.onyx-picker-decorator .onyx-button { - padding: 10px 18px; -} -.onyx-picker { - top: 0; - margin-top: -3px; - min-width: 0; - width: 100%; - box-sizing: border-box; - -moz-box-sizing: border-box; - color: black; - background: #e1e1e1; -} -.onyx-picker.onyx-menu-up { - top: auto; - bottom: 0; - margin-top: 3px; - margin-bottom: -3px; -} -.onyx-picker .onyx-menu-item { - text-align: center; -} -.onyx-picker .onyx-menu-item:hover { - background-color: transparent; -} -.onyx-picker .onyx-menu-item.selected, -.onyx-picker .onyx-menu-item.active, -.onyx-picker .onyx-menu-item:active:hover { - border-top: 1px solid rgba(0, 0, 0, 0.1); - background-color: #cde7fe; - box-shadow: inset 0px 0px 3px rgba(0, 0, 0, 0.2); -} -.onyx-picker .onyx-menu-item { - border-top: 1px solid rgba(255, 255, 255, 0.5); - border-bottom: 1px solid rgba(0, 0, 0, 0.2); -} -.onyx-picker:not(.onyx-flyweight-picker) .onyx-menu-item:first-child, -.onyx-flyweight-picker :first-child > .onyx-menu-item { - border-top: none; -} -.onyx-picker:not(.onyx-flyweight-picker) .onyx-menu-item:last-child, -.onyx-flyweight-picker :last-child > .onyx-menu-item { - border-bottom: none; -} -/* TextArea.css */ -.onyx-input-decorator > textarea { - /* reset */ - - margin: 0; - padding: 0; - border: none; - outline: none; - cursor: pointer; - background-color: transparent; - background-image: none; - font-size: 16px; - box-shadow: none; - /* Remove scrollbars and resize handle */ - - resize: none; - overflow: auto; - /* FIXME: hack for styling reset on Android */ - - /* -webkit-appearance: caret;*/ - -} -.onyx-input-decorator.onyx-focused > textarea { - cursor: text; -} -.onyx-input-decorator.onyx-disabled > textarea { - cursor: default; -} -.onyx-textarea { - /* need >=50px for scrollbar to be usable on mac */ - - min-height: 50px; -} -/* RichText.css */ -.onyx-input-decorator > .onyx-richtext { - /* reset */ - - margin: 0; - padding: 0; - border: none; - outline: none; - cursor: pointer; - background-color: transparent; - background-image: none; - font-size: 16px; - min-height: 20px; - min-width: 100px; - box-shadow: none; - /* FIXME: hack for styling reset on Android */ - - /* -webkit-appearance: caret;*/ - -} -.onyx-input-decorator.onyx-focused > .onyx-richtext { - cursor: text; -} -.onyx-input-decorator.onyx-disabled > .onyx-richtext { - cursor: default; -} -/* RadioButton.css */ -.onyx-radiobutton { - padding: 8px 12px; - margin: 0; - outline: 0; - font-size: 16px; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - text-align: center; - /**/ - - background: #e7e7e7 url(../lib/onyx/images/gradient.png) repeat-x bottom; - /* IE8 */ - - border: 1px solid #333333; - border: 1px solid rgba(15, 15, 15, 0.2); - /* turn off right-border in a way IE8 ignores, because IE8 does not support :last-child */ - - border-right-color: rgba(0, 0, 0, 0); - box-shadow: inset 1px 1px 0px rgba(255, 255, 255, 0.2); -} -.onyx-radiobutton:first-child { - border-radius: 3px 0 0 3px; -} -.onyx-radiobutton:last-child { - border-radius: 0px 3px 3px 0px; - /* IE8 */ - - border-right: 1px solid #333333; - border-right: 1px solid rgba(15, 15, 15, 0.2); -} -.onyx-radiobutton.active { - color: #ffffff; - background: #0091f2 url(../lib/onyx/images/gradient-invert.png) repeat-x top; - border-top: 1px solid rgba(15, 15, 15, 0.6); - box-shadow: inset 1px 2px 2px rgba(0, 0, 0, 0.2); -} -/* Scrim.css */ -.onyx-scrim { - z-index: 1; - /* - note: by using pointer-events we allow tapping on scrim - while it is fading out; however, this requires any showing classes - to set pointer events to auto or scrim will not function as expected. - */ - - pointer-events: none; -} -.onyx-scrim.onyx-scrim-translucent { - pointer-events: auto; - background-color: #000000; - opacity: 0.65; - filter: alpha(opacity=65); -} -.onyx-scrim.onyx-scrim-transparent { - pointer-events: auto; - background: transparent; -} -/* TabButton.css */ -.onyx-radiobutton.onyx-tabbutton { - padding: 8px 34px; - font-size: 20px; - border-radius: 0px; -} -/* ToggleButton.css */ -.onyx-toggle-button { - display: inline-block; - height: 32px; - line-height: 32px; - min-width: 64px; - vertical-align: middle; - text-align: center; - /* */ - - border-radius: 3px; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.4); - background: #8bba3d url(../lib/onyx/images/gradient-invert.png) repeat-x bottom; - background-size: auto 100%; - /* label */ - - color: #ffffff; - font-size: 14px; - font-weight: bold; - text-transform: uppercase; -} -.onyx-toggle-button.off { - background-color: #b1b1b1 !important; -} -.onyx-toggle-button-knob { - display: inline-block; - width: 30px; - height: 30px; - margin: 1px; - border-radius: 3px; - background: #f6f6f6 url(../lib/onyx/images/gradient.png) repeat-x; - background-size: auto 100%; -} -.onyx-toggle-button .onyx-toggle-button-knob { - box-shadow: -1px 0px 4px rgba(0, 0, 0, 0.35), inset 0 -1px 0 rgba(0, 0, 0, 0.4); - float: right; -} -.onyx-toggle-button.off .onyx-toggle-button-knob { - box-shadow: 1px 0px 4px rgba(0, 0, 0, 0.35), inset 0 -1px 0 rgba(0, 0, 0, 0.4); - float: left; -} -.onyx-toggle-button.disabled, -.onyx-icon-button.disabled { - opacity: 0.4; - filter: alpha(opacity=40); -} -.onyx-toggle-content { - min-width: 32px; - padding: 0 6px; -} -.onyx-toggle-content.empty { - padding: 0; -} -.onyx-toggle-content.off { - float: right; -} -.onyx-toggle-content.on { - float: left; -} -/* Toolbar.css */ -.onyx-toolbar { - /* - line-height is unreliable for centering, instead - use vertical-align: middle to align - elements along a common centerline and use - padding to fill out the space. - */ - - padding: 9px 8px 10px 8px; - border: 1px solid #3A3A3A; - background: #4c4c4c url(../lib/onyx/images/gradient.png) repeat-x 0 bottom; - background-size: contain; - color: #ffffff; - /**/ - - white-space: nowrap; - overflow-y: visible; - font-size: 20px; -} -.onyx-toolbar-inline > *, -.enyo-fittable-columns-layout.onyx-toolbar-inline > * { - display: inline-block; - vertical-align: middle; - margin: 4px 6px 5px; - box-sizing: border-box; -} -.onyx-toolbar .onyx-icon-button { - margin: 3px 2px 1px; -} -.onyx-toolbar .onyx-button { - color: #f2f2f2; - background-color: #555656; - border-color: rgba(15, 15, 15, 0.5); - margin-top: 0; - margin-bottom: 0; - height: 36px; -} -.onyx-toolbar .onyx-input-decorator { - margin: 1px 3px; - box-shadow: inset 0px 1px 4px rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.1); - padding: 0px 6px 5px 6px; -} -.onyx-toolbar .onyx-input-decorator.onyx-focused { - box-shadow: inset 0px 1px 4px rgba(0, 0, 0, 0.3); - background-color: #ffffff; -} -.onyx-toolbar .onyx-input-decorator .onyx-input { - color: #e5e5e5; - font-size: 14px; -} -.onyx-toolbar .onyx-input-decorator .onyx-input:focus { - color: #000000; -} -.onyx-toolbar .onyx-input-decorator .onyx-input:focus::-webkit-input-placeholder { - color: #dddddd; -} -/* Tooltip.css */ -.onyx-tooltip { - z-index: 20; - left: 0; - padding: 4px 6px; - margin-top: 4px; - margin-left: -6px; - box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); - border: 1px solid rgba(0, 0, 0, 0.2); - color: #ffffff; - background: #216593 url(../lib/onyx/images/gradient.png) repeat-x 0 bottom; - border-radius: 3px; - white-space: nowrap; -} -/*move the tooltip over to the right when displaying the right arrow so it aligns better with the decorator*/ -.onyx-tooltip.right-arrow { - left: 30px; -} -/*prep the left & right arrows using before & after - left arrow uses before & right arrow uses after*/ -.onyx-tooltip::before { - content: ''; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - position: absolute; - top: -6px; - left: 16px; -} -.onyx-tooltip::after { - content: ''; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - position: absolute; - top: -6px; - margin-left: -12px; -} -/*The following 3 rules handle the left & right arrows when the tooltip is displayed below the activator*/ -.onyx-tooltip.below { - top: 100%; -} -.onyx-tooltip.below.right-arrow::after { - border-bottom: 6px solid #1D587F; - top: -6px; -} -.onyx-tooltip.below.left-arrow::before { - border-bottom: 6px solid #1D587F; - top: -6px; -} -/*The following 3 rules handle the left & right arrows when the tooltip is displayed above the activator*/ -.onyx-tooltip.above { - top: -100%; -} -.onyx-tooltip.above.right-arrow::after { - content: ''; - border-top: 6px solid #1D587F; - top: 100%; -} -.onyx-tooltip.above.left-arrow::before { - content: ''; - border-top: 6px solid #1D587F; - top: 100%; -} -/* ProgressBar.css */ -.onyx-progress-bar { - margin: 8px; - height: 8px; - border: 1px solid rgba(15, 15, 15, 0.2); - border-radius: 3px; - background: #b8b8b8 url(../lib/onyx/images/gradient-invert.png) repeat-x; - background-size: auto 100%; -} -.onyx-progress-bar-bar { - height: 100%; - border-radius: 3px; - background: #58abef url(../lib/onyx/images/gradient.png) repeat-x; - background-size: auto 100%; -} -.onyx-progress-bar-bar.striped { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.onyx-progress-bar-bar.striped.animated { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -/* ProgressButton.css */ -.onyx-progress-button { - position: relative; - height: 36px; - line-height: 36px; - color: #f1f1f1; - font-size: 16px; - text-overflow: ellipsis; -} -.onyx-progress-button-bar { - height: 36px; -} -.onyx-progress-button-icon { - display: inline-block; - position: absolute; - top: 2px; - right: 0; -} -.onyx-progress-button-client { - display: inline-block; - position: absolute; - top: 0; - left: 0; - right: 36px; - margin-left: 8px; -} -.onyx-progress-button-client > * { - display: inline-block; -} -/* Slider.css */ -.onyx-slider { - position: relative; - margin: 8px 20px; -} -.onyx-slider-taparea { - position: absolute; - top: -11px; - height: 28px; - width: 100%; -} -.onyx-slider-knob { - position: relative; - height: 40px; - width: 40px; - background: url(../lib/onyx/images/slider-handle.png) left top no-repeat; - margin: -23px -20px; -} -.onyx-slider-knob.active, -.onyx-slider-knob.pressed, -.onyx-slider-knob:active:hover { - background-position: 0 -40px; -} -/* RangeSlider.css */ -.onyx-range-slider-knob { - top: -17px; -} -.onyx-range-slider-label { - position: relative; - top: -18px; - text-align: center; - white-space: nowrap; -} -/* Item.css */ -.onyx-item { - padding: 14px; -} -.onyx-highlight, -.onyx-highlight.onyx-swipeable-item-content { - background-color: #dedfdf; -} -.enyo-selected, -.enyo-selected.onyx-swipeable-item-content { - background-color: #c4e3fe; -} -.onyx-item.onyx-swipeable-item { - overflow: hidden; - padding: 0; -} -.onyx-swipeable-item-content { - background-color: #eaeaea; - box-sizing: border-box; - padding: 18px 6px; - min-height: 40px; -} -/* Spinner.css */ -.onyx-spinner { - width: 59px; - height: 58px; - display: inline-block; - background: url(../lib/onyx/images/spinner-dark.gif) no-repeat 0 0; -} -.onyx-spinner.onyx-light { - background: url(../lib/onyx/images/spinner-light.gif) no-repeat 0 0; -} -/* MoreToolbar.css */ -.onyx-more-toolbar { - overflow: visible; - position: relative; - z-index: 10; -} -.onyx-more-toolbar.active { - z-index: 11; -} -.onyx-more-menu { - left: auto; - right: 0px; - min-width: 0; -} -.onyx-more-toolbar .onyx-more-menu > * { - float: right; - clear: both; - margin: 5px; - margin-top: 5px; - margin-bottom: 5px; -} -.onyx-more-button { - background-image: url(../lib/onyx/images/more.png); - width: 32px; - height: 32px; -} -/* DatePicker.css */ -.onyx-datepicker-month { - min-width: 75px; -} -.onyx-datepicker-day { - min-width: 60px; -} -.onyx-datepicker-year { - min-width: 70px; -} -/* TimePicker.css */ -.onyx-timepicker-hour { - min-width: 60px; -} -.onyx-timepicker-minute { - min-width: 60px; -} -.onyx-timepicker-ampm { - min-width: 60px; -} -/* ButtonColors.css */ -.onyx-button.onyx-blue { - background-color: #35A8EE; - color: #F2F2F2; -} -.onyx-button.onyx-affirmative { - background-color: #91BA07; - color: #F2F2F2; -} -.onyx-button.onyx-negative { - background-color: #C51616; - color: #F2F2F2; -} -.onyx-button.onyx-dark { - background-color: #555656; - color: #F2F2F2; -} -.onyx-button.onyx-light { - background-color: #cacaca; - color: #2F2F2F; -} -/* ContextualPopup.css */ -.onyx-contextual-popup-title { - font-weight: bold; - padding: 24px 32px 0px; -} -.onyx-contextual-popup-scroller { - padding: 24px 32px; -} -.onyx-contextual-popup-action-buttons { - display: inline-block; - width: 100%; - text-align: center; -} -.onyx-contextual-popup-action-button { - margin-left: 5px; - margin-right: 5px; -} -.onyx-contextual-popup, -.onyx.onyx-contextual-popup { - font-size: 16px; - box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 8px; - padding: 6px; - color: #ffffff; - background: #4c4c4c; -} -/*setup the nub*/ -.onyx-contextual-popup::after { - content: ''; - position: absolute; - top: -10px; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; -} -/*for popups above activator*/ -.onyx-contextual-popup.vertical.above { - top: auto; - margin-top: -10px; - bottom: 100%; - margin-bottom: 10px; -} -/*for popups below activator*/ -.onyx-contextual-popup.vertical.below { - margin-top: 10px; -} -/*for popups on the left of the activator*/ -.onyx-contextual-popup.right.horizontal { - margin-left: -11px; -} -/*for popups on the right of the activator*/ -.onyx-contextual-popup.left.horizontal { - margin-left: 10px; -} -/*nub positioning*/ -/*horizontally centered nub*/ -.onyx-contextual-popup.vertical::after { - position: absolute; - left: 45%; - border-bottom: 10px solid #4c4c4c; - border-top: none; - border-left: 10px solid transparent; - border-right: 10px solid transparent; -} -/*nub near horizontal left*/ -.onyx-contextual-popup.vertical.right::after { - left: 0%; - margin-left: 20px; -} -/*nub near horizontal right*/ -.onyx-contextual-popup.vertical.left::after { - left: 100%; - margin-left: -55px; -} -/*downward facing nub*/ -.onyx-contextual-popup.vertical.above::after { - top: 100%; - border-top: 10px solid #4c4c4c; - border-bottom: none; - border-left: 10px solid transparent; - border-right: 10px solid transparent; -} -.onyx-contextual-popup.vertical.below.right::after { - top: 0%; - margin-top: -10px; - border-bottom: 10px solid #4c4c4c; - border-left: 10px solid transparent; -} -.onyx-contextual-popup.vertical.below.left::after { - top: 0%; - margin-top: -10px; - border-right: 10px solid transparent; -} -/*nub positioning for left/right popups*/ -/*vertically centered nub for popups on left of activator*/ -.onyx-contextual-popup.right::after { - left: 100%; - top: 47%; - margin-right: 20px; - border-left: 10px solid #4C4C4C; -} -/*nub near vertical top for popups on left of activator*/ -.onyx-contextual-popup.right.high::after { - top: 35px; - border-left: 10px solid #4C4C4C; -} -/*nub near vertical bottom for popups on left of activator*/ -.onyx-contextual-popup.right.low::after { - top: 100%; - margin-top: -55px; - border-left: 10px solid #4C4C4C; -} -/*vertically centered nub for popups on right of activator*/ -.onyx-contextual-popup.left::after { - left: 0%; - margin-left: -20px; - top: 45%; - border-right: 10px solid #4C4C4C; -} -/*nub near vertical top for popups on right of activator*/ -.onyx-contextual-popup.left.high::after { - top: 35px; - border-right: 10px solid #4C4C4C; -} -/*nub near vertical bottom for popups on right of activator*/ -.onyx-contextual-popup.left.low::after { - top: 100%; - margin-top: -55px; - border-right: 10px solid #4C4C4C; -} -/*corners*/ -/*vertical top corners*/ -/*for popups on the left of the activator*/ -.onyx-contextual-popup.vertical.right.corner { - margin-left: 0px; -} -/*for popups on the right of the activator*/ -.onyx-contextual-popup.vertical.left.corner { - margin-left: 0px; -} -.onyx-contextual-popup.vertical.below.left.corner { - border-top-right-radius: 0px; -} -.onyx-contextual-popup.vertical.below.right.corner { - border-top-left-radius: 0px; -} -.onyx-contextual-popup.vertical.below.left.corner::after { - top: 0%; - left: 100%; - margin-top: -10px; - margin-left: -19px; - border-right: 10px solid #4c4c4c; - border-top: 10px solid transparent; -} -.onyx-contextual-popup.vertical.below.right.corner::after { - top: 0%; - left: 0%; - margin-left: -1px; - border-left: 10px solid #4c4c4c; - border-top: 10px solid transparent; -} -/*vertical bottom corners*/ -.onyx-contextual-popup.left.above.corner { - border-bottom-right-radius: 0px; -} -.onyx-contextual-popup.right.above.corner { - border-bottom-left-radius: 0px; -} -.onyx-contextual-popup.vertical.left.above.corner::after { - top: 100%; - margin-left: -19px; - border-right: 10px solid #4C4C4C; - border-bottom: 10px solid transparent; - border-top: none; -} -.onyx-contextual-popup.vertical.right.above.corner::after { - top: 100%; - left: 0%; - margin-left: -1px; - border-left: 10px solid #4c4c4c; - border-bottom: 10px solid transparent; - border-top: none; -} -/*horizontal bottom corners*/ -.onyx-contextual-popup.left.low.corner { - border-bottom-left-radius: 0px; -} -.onyx-contextual-popup.right.low.corner { - border-bottom-right-radius: 0px; -} -.onyx-contextual-popup.left.low.corner::after { - top: 100%; - left: 0%; - margin-top: -19px; - margin-left: -12px; - border-bottom: 10px solid #4c4c4c; - border-right: 10px solid #4c4c4c; -} -.onyx-contextual-popup.right.low.corner::after { - top: 100%; - left: 100%; - margin-top: -19px; - border-bottom: 10px solid#4c4c4c; - border-left: none; -} -/*horizontal top corners*/ -.onyx-contextual-popup.left.high.corner { - border-top-left-radius: 0px; -} -.onyx-contextual-popup.right.high.corner { - border-top-right-radius: 0px; -} -.onyx-contextual-popup.left.high.corner::after { - top: 0%; - left: 0%; - margin-top: -1px; - margin-left: -12px; - border-top: 10px solid #4C4C4C; - border-bottom: none; -} -.onyx-contextual-popup.right.high.corner::after { - top: 0%; - left: 100%; - margin-top: -1px; - margin-left: -9px; - border-top: 10px solid #4C4C4C; - border-bottom: none; -} -/* some default colors */ -.onyx-dark { - background-color: #555656; -} -.onyx-light { - background-color: #cacaca; -} -.onyx-green { - background-color: #91BA07; -} -.onyx-red { - background-color: #C51616; -} -.onyx-blue { - background-color: #35A8EE; -} - - -/* source/App.css */ - -/* - Put anything you reference with "url(../source)" in ../assets/ - This way, you can minify your application, and just remove the "source" folder for production -*/ -.nice-padding { - padding: 15px; -} diff --git a/shlr/www/enyo/build/enyo.css b/shlr/www/enyo/build/enyo.css deleted file mode 100644 index 6d05291ff0b24..0000000000000 --- a/shlr/www/enyo/build/enyo.css +++ /dev/null @@ -1,181 +0,0 @@ - -/* ../source/dom/dom.css */ - -/* things we always want */ -body { - font-family: 'Helvetica Neue', 'Nimbus Sans L', Arial, sans-serif; -} - -/* allow hw-accelerated scrolling on platforms that support it */ -body.webkitOverflowScrolling { - -webkit-overflow-scrolling: touch; -} - -/* for apps */ -.enyo-document-fit { - margin: 0; - height: 100%; - /* note: giving html overflow: auto is odd and was only ever done to avoid duplication - however, android 4.04 sometimes does not hide nodes when their display is set to none - if document is overflow auto. - */ - position: relative; -} - -.enyo-body-fit { - margin: 0; - height: 100%; - /* helps prevent ios page scroll */ - overflow: auto; - position: relative; -} - -.enyo-no-touch-action { - -ms-touch-action: none; -} - -/* reset */ - -button { - font-size: inherit; - font-family: inherit; -} -button::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* user selection */ - -.enyo-unselectable { - cursor: default; - -ms-user-select: none; - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; -} - -.enyo-unselectable::selection, .enyo-unselectable ::selection { - color: transparent; -} - -.enyo-selectable { - cursor: auto; - -ms-user-select: element; - -webkit-user-select: text; - -moz-user-select: text; - user-select: text; -} - -.enyo-selectable::selection, .enyo-selectable ::selection { - background: #3297FD; - color: #FFF; -} - -/* layout */ - -body .enyo-fit { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; -} - -.enyo-clip { - overflow: hidden; -} - -.enyo-border-box { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* compositing */ - -.enyo-composite { - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); -} - - -/* ../source/touch/Thumb.css */ - -.enyo-thumb { - position: absolute; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 4px; - background: #333; - border: 1px solid #666; - opacity: 0.75; - z-index: 1; -} - -.enyo-vthumb { - top: 0; - right: 2px; - width: 4px; -} - -.enyo-hthumb { - left: 0; - bottom: 2px; - height: 4px; -} - - -/* ../source/touch/Scroller.css */ - -.enyo-scroller { - position: relative; -} - -.enyo-fit.enyo-scroller { - position: absolute; -} - -.enyo-touch-scroller { - overflow: hidden; -} - -.enyo-touch-strategy-container { - overflow: hidden; -} - -.enyo-scrollee-fit { - height: 100%; -} - -/* ../source/ui/ui.css */ - -.enyo-inline, .enyo-tool-decorator { - display: inline-block; -} - -.enyo-children-inline > *, .enyo-tool-decorator > * { - display: inline-block; -} - -.enyo-children-middle > *, .enyo-tool-decorator > * { - vertical-align: middle; -} - -.enyo-positioned { - position: relative; -} - -.enyo-fill { - position: relative; - width: 100%; - height: 100%; -} - -.enyo-popup { - position: absolute; - z-index: 10; -} diff --git a/shlr/www/enyo/build/enyo.js b/shlr/www/enyo/build/enyo.js deleted file mode 100644 index e565f50a6ea9d..0000000000000 --- a/shlr/www/enyo/build/enyo.js +++ /dev/null @@ -1,4283 +0,0 @@ - -// enyo.js - -(function() { -var e = "enyo.js"; -enyo = window.enyo || {}, enyo.locateScript = function(e) { -var t = document.getElementsByTagName("script"); -for (var n = t.length - 1, r, i, s = e.length; n >= 0 && (r = t[n]); n--) if (!r.located) { -i = r.getAttribute("src") || ""; -if (i.slice(-s) == e) return r.located = !0, { -path: i.slice(0, Math.max(0, i.lastIndexOf("/"))), -node: r -}; -} -}, enyo.args = enyo.args || {}; -var t = enyo.locateScript(e); -if (t) { -enyo.args.root = (enyo.args.root || t.path).replace("/source", ""); -for (var n = 0, r = t.node.attributes.length, i; n < r && (i = t.node.attributes.item(n)); n++) enyo.args[i.nodeName] = i.value; -} -})(); - -// ../../loader.js - -(function() { -enyo = window.enyo || {}, enyo.pathResolverFactory = function() { -this.paths = {}; -}, enyo.pathResolverFactory.prototype = { -addPath: function(e, t) { -return this.paths[e] = t; -}, -addPaths: function(e) { -if (e) for (var t in e) this.addPath(t, e[t]); -}, -includeTrailingSlash: function(e) { -return e && e.slice(-1) !== "/" ? e + "/" : e; -}, -rewritePattern: /\$([^\/\\]*)(\/)?/g, -rewrite: function(e) { -var t, n = this.includeTrailingSlash, r = this.paths, i = function(e, i) { -return t = !0, n(r[i]) || ""; -}, s = e; -do t = !1, s = s.replace(this.rewritePattern, i); while (t); -return s; -} -}, enyo.path = new enyo.pathResolverFactory, enyo.loaderFactory = function(e, t) { -this.machine = e, this.packages = [], this.modules = [], this.sheets = [], this.stack = [], this.pathResolver = t || enyo.path, this.packageName = "", this.packageFolder = "", this.finishCallbacks = {}; -}, enyo.loaderFactory.prototype = { -verbose: !1, -loadScript: function(e) { -this.machine.script(e); -}, -loadSheet: function(e) { -this.machine.sheet(e); -}, -loadPackage: function(e) { -this.machine.script(e); -}, -report: function() {}, -load: function() { -this.more({ -index: 0, -depends: arguments || [] -}); -}, -more: function(e) { -if (e && this.continueBlock(e)) return; -var t = this.stack.pop(); -t ? (this.verbose && console.groupEnd("* finish package (" + (t.packageName || "anon") + ")"), this.packageFolder = t.folder, this.packageName = "", this.more(t)) : this.finish(); -}, -finish: function() { -this.packageFolder = "", this.verbose && console.log("-------------- fini"); -for (var e in this.finishCallbacks) this.finishCallbacks[e] && (this.finishCallbacks[e](), this.finishCallbacks[e] = null); -}, -continueBlock: function(e) { -while (e.index < e.depends.length) { -var t = e.depends[e.index++]; -if (t) if (typeof t == "string") { -if (this.require(t, e)) return !0; -} else this.pathResolver.addPaths(t); -} -}, -require: function(e, t) { -var n = this.pathResolver.rewrite(e), r = this.getPathPrefix(e); -n = r + n; -if (n.slice(-4) == ".css" || n.slice(-5) == ".less") this.verbose && console.log("+ stylesheet: [" + r + "][" + e + "]"), this.requireStylesheet(n); else { -if (n.slice(-3) != ".js" || n.slice(-10) == "package.js") return this.requirePackage(n, t), !0; -this.verbose && console.log("+ module: [" + r + "][" + e + "]"), this.requireScript(e, n); -} -}, -getPathPrefix: function(e) { -var t = e.slice(0, 1); -return t != "/" && t != "\\" && t != "$" && !/^https?:/i.test(e) ? this.packageFolder : ""; -}, -requireStylesheet: function(e) { -this.sheets.push(e), this.loadSheet(e); -}, -requireScript: function(e, t) { -this.modules.push({ -packageName: this.packageName, -rawPath: e, -path: t -}), this.loadScript(t); -}, -decodePackagePath: function(e) { -var t = "", n = "", r = "", i = "package.js", s = e.replace(/\\/g, "/").replace(/\/\//g, "/").replace(/:\//, "://").split("/"), o, u; -if (s.length) { -var a = s.pop() || s.pop() || ""; -a.slice(-i.length) !== i ? s.push(a) : i = a, r = s.join("/"), r = r ? r + "/" : "", i = r + i; -for (o = s.length - 1; o >= 0; o--) if (s[o] == "source") { -s.splice(o, 1); -break; -} -n = s.join("/"); -for (o = s.length - 1; u = s[o]; o--) if (u == "lib" || u == "enyo") { -s = s.slice(o + 1); -break; -} -for (o = s.length - 1; u = s[o]; o--) (u == ".." || u == ".") && s.splice(o, 1); -t = s.join("-"); -} -return { -alias: t, -target: n, -folder: r, -manifest: i -}; -}, -aliasPackage: function(e) { -var t = this.decodePackagePath(e); -this.manifest = t.manifest, t.alias && (this.pathResolver.addPath(t.alias, t.target), this.packageName = t.alias, this.packages.push({ -name: t.alias, -folder: t.folder -})), this.packageFolder = t.folder; -}, -requirePackage: function(e, t) { -t.folder = this.packageFolder, this.aliasPackage(e), t.packageName = this.packageName, this.stack.push(t), this.report("loading package", this.packageName), this.verbose && console.group("* start package [" + this.packageName + "]"), this.loadPackage(this.manifest); -} -}; -})(); - -// boot.js - -enyo.execUnsafeLocalFunction = function(e) { -typeof MSApp == "undefined" ? e() : MSApp.execUnsafeLocalFunction(e); -}, enyo.machine = { -sheet: function(e) { -var t = "text/css", n = "stylesheet", r = e.slice(-5) == ".less"; -r && (window.less ? (t = "text/less", n = "stylesheet/less") : e = e.slice(0, e.length - 4) + "css"); -var i; -enyo.runtimeLoading || r ? (i = document.createElement("link"), i.href = e, i.media = "screen", i.rel = n, i.type = t, document.getElementsByTagName("head")[0].appendChild(i)) : (i = function() { -document.write(''); -}, enyo.execUnsafeLocalFunction(i)), r && window.less && (less.sheets.push(i), enyo.loader.finishCallbacks.lessRefresh || (enyo.loader.finishCallbacks.lessRefresh = function() { -less.refresh(!0); -})); -}, -script: function(e, t, n) { -if (!enyo.runtimeLoading) document.write(' - - diff --git a/shlr/www/enyo/disasm.css b/shlr/www/enyo/disasm.css deleted file mode 100644 index 02f99a069e508..0000000000000 --- a/shlr/www/enyo/disasm.css +++ /dev/null @@ -1,176 +0,0 @@ -.bbcanvas { float: left; } - -.flatcanvas { float: left; } - -.insaddr { - min-width: 7em; - display: inline-block; -} - -#outergbox { - position: absolute; - height: 100%; - width: 100%; -} - -.instruction { - font-family: monospace; - white-space: nowrap; -} - -.instructiondesc { - display: inline-block; -} - -.data { - text-align: right; - min-width: 18px; - padding-top: 0px; - padding-bottom: 0px; -} - -.instructionbox { - position: absolute; -} - -#gbox { - position: relative; - /*margin: 10px;*/ -} - -.bytes { - display: inline-block; - width: 170px; -} - -input:focus {outline: none; } - -.ec_fline {color: rgb(0,127,127);} -.ec_help {color: rgb(0,127,127);} -.ec_args {color: rgb(0,127,127);} -.ec_label {color: rgb(0,127,127);} -.ec_flow {color: rgb(0,127,127);} -.ec_prompt {color: rgb(0,127,127);} -.ec_input {color: rgb(0,127,127);} -.ec_btext {color: rgb(0,127,127);} -.ec_swi {color: rgb(0,127,127);} -.ec_comment {color: rgb(0,127,127);} -.ec_fname {color: rgb(127,0,0);} -.ec_flag {color: rgb(0,127,127);} -.ec_offset {color: rgb(0,127,0);} -.ec_other {color: rgb(127,127,127);} /* byte color bu default */ -.ec_b0x00 {color: rgb(0,127,0);} -.ec_b0x7f {color: rgb(0,127,127);} -.ec_b0xff {color: rgb(127,0,0);} -.ec_math {color: rgb(127,127,0);} -.ec_bin {color: rgb(127,127,0);} -.ec_push {color: rgb(127,0,127);} -.ec_pop {color: rgb(255,0,255);} -.ec_jmp {color: rgb(0,127,0);} -.ec_cjmp {color: rgb(0,127,0);} -.ec_call {color: rgb(0,255,0);} -.ec_nop {color: rgb(0,0,127);} -.ec_ret {color: rgb(127,0,0);} -.ec_trap {color: rgb(255,0,0);} -.ec_invalid {color: rgb(255,0,0);} -.ec_cmp {color: rgb(0,127,127);} -.ec_reg {color: rgb(0,127,127);} /* (also applies to qword, brackets, etc) */ -.ec_creg {color: rgb(0,127,127);} -.ec_mov {color: rgb(127,127,127);} -.ec_num {color: rgb(127,127,0);} - -.ec_gui_cflow {color: rgb(255,255,0);} -.ec_gui_dataoffset {color: rgb(127,127,0);} -.ec_gui_background {background-color: rgb(20,20,20); } -.ec_gui_alt_background {background-color: rgb(50,50,50); } -.ec_gui_border {border-color: rgb(50,50,50); } - -.autohighlight { background-color: #8AFF77 !important; } -.autohighlighti { background-color: #8AFF77; } - -.hidden {display:none;} - -.lines {margin-left: 100px;} - -.basicblock { - border: 1px solid; - padding: 5px; - position: absolute; - pointer-events: none; - -webkit-user-select: none; - box-sizing: border-box; - z-index: 2; -} - -.basicblock .instruction, -.basicblock input { - pointer-events: auto; -} - -#canvas { - position: relative; - display: inline-block; - background: transparent; - width:100%; - height:100%; - margin:10px; -} - -#canvas svg, -#minimap svg { - background: transparent; -} - -#minimap svg .link, -#canvas svg .link { - pointer-events: none; -} - -#minimap svg .connection { - stroke-width: 5; -} - -#minimap { - /*border: 1px solid black;*/ - position:absolute; - width:200px; - height:200px; - z-index: 1000; - background: #999; - /*opacity: 0.8;*/ - filter: alpha(opacity=80); [> For IE8 and earlier <] -} - -#minimap .basicblock { - display: none; -} - -#canvas #minimap_area { - display: none; - z-index: 0; -} - -#canvas #minimap_area svg { - stroke: transparent; -} - -#minimap_area { - border: 1px solid black; - position:absolute; - background: black; - opacity: 0.2; - filter: alpha(opacity=20); /* For IE8 and earlier */ -} - -#radareApp_mp_panels_pageDisassembler { - padding: 0px; -} - -#main_panel { - overflow: auto; -} - -.right_label { - float: right; -} - diff --git a/shlr/www/enyo/disassembler_old.js b/shlr/www/enyo/disassembler_old.js new file mode 100644 index 0000000000000..278b2e5fb1bea --- /dev/null +++ b/shlr/www/enyo/disassembler_old.js @@ -0,0 +1 @@ +function docss(t){return""+t+""}enyo.kind({name:"DisassemblerOld",kind:"Scroller",tag:"div",style:"margin:0px;background-color:#c0c0c0",data:null,components:[{tag:"div",allowHtml:!0,classes:"colorbar",name:"colorbar"},{tag:"br"},{tag:"div",content:"^",classes:"moreless",ontap:"less"},{tag:"pre",allowHtml:!0,name:"text",content:"..",style:"margin-left:5px"},{tag:"div",content:"v",classes:"moreless",ontap:"more"}],min:0,max:0,block:512,base:"entry0",less:function(){var t=this.$.text;this.min+=this.block,r2.get_disasm(this.base+"-"+this.min,this.block,function(e){e=docss(r2.filter_asm(e,"pd"));var s=r2ui._dis.getScrollBounds().height;t.setContent("
"+e+t.getContent()+"
");var i=r2ui._dis.getScrollBounds().height;r2ui._dis.scrollTo(0,i-s)})},more:function(){var t=this.$.text;this.max+=this.block,r2.get_disasm(this.base+"+"+this.max,this.block,function(e){e=docss(r2.filter_asm(e,"pd")),t.setContent("
"+t.getContent()+e+"
")})},seek:function(t){var e=this.$.text;this.base=t,this.min=this.max=0,r2.get_disasm(t,this.block,function(t){t=docss(r2.filter_asm(t,"pd")),e.setContent("
"+t+"
")}),this.scrollTo(0,0)},create:function(){this.inherited(arguments);this.$.text;r2.cmd("e asm.lineswidth = 20",function(t){}),this.seek("entry0"),r2ui._dis=this,r2ui.history_push("entry0")},colorbar_create:function(){var t=this;r2.cmd("p-j 24",function(e){try{var s=JSON.parse(e)}catch(i){return void alert(i)}console.log(s);for(var o="",r={flags:"#c0c0c0",comments:"yellow",functions:"#5050f0",strings:"orange"},n="",l=16,a=0;a____";if(c.offset){var d="
",h=0;for(var b in r)c[b]&&h++;if(h++,1==h)break;var m=l/h;for(var b in r){r[b];c[b]&&(d+="")}d+="
____
",n="0x"+c.offset.toString(16)}else n="0x"+(s.from+s.blocksize*a).toString(16);o+=""+d+""}o+="",t.$.colorbar.setContent(o)})}}); \ No newline at end of file diff --git a/shlr/www/enyo/enyo.css b/shlr/www/enyo/enyo.css new file mode 100644 index 0000000000000..3e8109c3d0da3 --- /dev/null +++ b/shlr/www/enyo/enyo.css @@ -0,0 +1,2 @@ +.enyo-fittable-rows-layout,.enyo-list,.enyo-list-port{position:relative}.onyx-button[disabled],.onyx-icon.disabled,.onyx-input-decorator.onyx-disabled,.onyx-menu-label{opacity:.4;filter:alpha(opacity=40)}.enyo-fittable-rows-layout>*{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:left;clear:both}.enyo-fittable-rows-layout.enyo-stretch>*{float:none;clear:none}.enyo-fittable-rows-layout.enyo-stretch.enyo-margin-expand>*{float:left;clear:both;width:100%;margin-left:0!important;margin-right:0!important}.enyo-fittable-columns-layout{position:relative;text-align:left;white-space:nowrap}.enyo-fittable-columns-layout.enyo-center{text-align:center}.enyo-fittable-columns-layout>*{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:top;display:inline-block;white-space:normal}.enyo-fittable-columns-layout.enyo-tool-decorator>*{vertical-align:middle}.enyo-fittable-columns-layout>code,.enyo-fittable-columns-layout>pre{white-space:pre}.enyo-fittable-columns-layout>.enyo-fittable-columns-layout,.enyo-fittable-columns-layout>.onyx-toolbar-inline,.onyx-button,.onyx-toolbar,.onyx-tooltip{white-space:nowrap}.enyo-fittable-columns-layout.enyo-stretch>*{height:100%;margin-top:0!important;margin-bottom:0!important}.enyo-list-port{overflow:hidden;height:1000000px}.enyo-list-holdingarea,.enyo-list-page{position:absolute;left:0;right:0}.enyo-list-holdingarea{top:-10000px}.enyo-pinned-list-placeholder{border:1px solid red;position:absolute;top:0;left:0;z-index:1000;background:0 0;overflow:hidden}.enyo-pinned-list-placeholder button{width:100px;height:100%;position:absolute;top:0;right:0}.enyo-list-reorder-container{position:absolute;top:0;left:0;z-index:1000;background:0 0;overflow:hidden}.enyo-animatedTopAndLeft{-webkit-transition:top .1s linear,left .1s linear;-moz-transition:top .1s linear,left .1s linear;-o-transition:top .1s linear,left .1s linear;transition:top .1s linear,left .1s linear}.enyo-list-pulldown{position:absolute;bottom:100%;left:0;right:0}.enyo-puller{position:relative;height:50px;font-size:22px;color:#444;padding:20px 0 0 34px}.enyo-puller-text{position:absolute;left:80px;top:22px}.enyo-puller-arrow{position:relative;background:#444;width:7px;height:28px;transition:transform .3s;-webkit-transition:-webkit-transform .3s;-moz-transition:-moz-transform .3s;-o-transition:-o-transform .3s;-ms-transition:-ms-transform .3s}.enyo-puller-arrow:after{content:" ";height:0;width:0;position:absolute;border:10px solid transparent;border-bottom-color:#444;bottom:100%;left:50%;margin-left:-10px}.enyo-puller-arrow-up{transform:rotate(0);-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}.enyo-puller-arrow-down{transform:rotate(180deg);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}.enyo-arranger{position:relative;overflow:hidden}.enyo-arranger.enyo-fit,.enyo-arranger>*{position:absolute}.enyo-arranger>*{left:0;top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.enyo-node-client,.onyx-popup-decorator{position:relative}.enyo-arranger-fit>*{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important}.onyx-checkbox,.onyx-icon,.onyx-icon-toggle{height:32px;width:32px;display:inline-block;vertical-align:middle}@media all and (max-width:800px){.enyo-panels-fit-narrow>*{min-width:100%;max-width:100%}}.enyo-node{cursor:default;padding:4px}.enyo-node img{vertical-align:middle;padding-right:6px}.enyo-node-box{overflow:hidden}.enyo-animate .enyo-node-box,.enyo-animate .enyo-node-client{-ms-transition-property:height,top;-ms-transition-duration:.2s,.2s;-moz-transition-property:height,top;-moz-transition-duration:.2s,.2s;-o-transition-property:height,top;-o-transition-duration:.2s,.2s;-webkit-transition-property:height,top;-webkit-transition-duration:.2s,.2s;transition-property:height,top;transition-duration:.2s,.2s}.pinDebug{background:#ff0;border:1px solid #ff0}.onyx{color:#333;font-family:'Helvetica Neue','Nimbus Sans L',Arial,sans-serif;font-size:20px;cursor:default;background-color:#eaeaea;-webkit-tap-highlight-color:transparent}.onyx button,.onyx input,.onyx label{line-height:normal}.onyx-selected{background-color:#c4e3fe}.onyx-icon,.onyx-icon-toggle{background-repeat:no-repeat}.onyx-icon-toggle.active,.onyx-icon.onyx-icon-button.active,.onyx-icon.onyx-icon-button.pressed,.onyx-icon.onyx-icon-button:active:hover{background-position:0 -32px}.onyx-icon.disabled:active:hover{background-position:0 0}.onyx-button{outline:0;color:#292929;font-size:16px;text-align:center;margin:0;padding:6px 18px;overflow:hidden;border-radius:3px;border:1px solid #707070;border:1px solid rgba(15,15,15,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);background:url(gradient.png) bottom repeat-x #e1e1e1;background-size:contain;text-overflow:ellipsis}.onyx-button.active,.onyx-button.pressed,.onyx-button:active:hover:not([disabled]){background-image:url(gradient-invert.png);background-position:top;border-top:1px solid rgba(15,15,15,.6);box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.onyx-button>img{padding:0 3px}.onyx-button::-moz-focus-inner{border:0}.onyx-checkbox{cursor:pointer;background:url(checkbox.png) no-repeat;margin:0}.onyx-checkbox[checked]{background-position:0 -32px}.onyx-checkbox[disabled]{opacity:.4}.onyx-grabber{background:url(grabbutton.png) center no-repeat;width:23px;height:27px}.onyx-popup{font-size:16px;box-shadow:0 6px 10px rgba(0,0,0,.2);border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:6px;color:#fff;background:url(gradient.png) 0 bottom repeat-x #4c4c4c}.onyx-groupbox>*{display:block;border-color:#aaa;border-style:solid;border-width:0 1px 1px;border-radius:0;margin:0;font-size:16px}.onyx-groupbox>:first-child{border-top-color:#aaa;border-width:1px;border-radius:4px 4px 0 0}.onyx-groupbox>:last-child{border-radius:0 0 4px 4px}.onyx-groupbox>:first-child:last-child{border-radius:4px}.onyx-groupbox-header{padding:2px 10px;color:#fff;font-size:14px;font-weight:700;text-transform:uppercase;border:none;background:url(gradient.png) 0 10px repeat-x #4c4c4c}.onyx-groupbox .onyx-input-decorator{display:block}.onyx-groupbox>.onyx-input-decorator{border-color:#aaa;border-width:0 1px 1px;border-radius:0}.onyx-groupbox>.onyx-input-decorator:first-child{border-width:1px;border-radius:4px 4px 0 0}.onyx-groupbox>.onyx-input-decorator:last-child{border-radius:0 0 4px 4px}.onyx-groupbox>.onyx-input-decorator:first-child:last-child{border-radius:4px}.onyx-input-decorator{padding:6px 8px 10px;border-radius:3px;border:1px solid;border-color:rgba(0,0,0,.1);margin:0}.onyx-input-decorator.onyx-focused{box-shadow:inset 0 1px 4px rgba(0,0,0,.3);border-color:rgba(0,0,0,.3);background-color:#fff}.onyx-input-decorator>input{margin:0;padding:0;border:none;outline:0;cursor:pointer;background-color:transparent;background-image:none;font-size:16px;box-shadow:none}.onyx-input-decorator.onyx-focused>input{cursor:text}.onyx-input-decorator.onyx-disabled>input{cursor:default}.onyx-menu,.onyx.onyx-menu{min-width:160px;top:100%;left:0;margin-top:2px;padding:3px 0;border-radius:3px}.onyx-menu.onyx-menu-up{top:auto;bottom:100%;margin-top:0;margin-bottom:2px}.onyx-toolbar .onyx-menu{margin-top:11px;border-radius:0 0 3px 3px}.onyx-toolbar .onyx-menu.onyx-menu-up{margin-top:0;margin-bottom:10px;border-radius:3px 3px 0 0}.onyx-menu-item{display:block;padding:10px}.onyx-menu-item:hover{background:#284152}.onyx-menu-divider,.onyx-menu-divider:hover{margin:6px 0;padding:0;border-bottom:1px solid #aaa}.onyx-menu-label{cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none}.onyx-menu-label:hover{background:0 0}.onyx-menu-toolbar,.onyx-toolbar.onyx-menu-toolbar{position:relative;z-index:10;overflow:visible}.onyx-picker-decorator .onyx-button{padding:10px 18px}.onyx-picker{top:0;margin-top:-3px;min-width:0;width:100%;box-sizing:border-box;-moz-box-sizing:border-box;color:#000;background:#e1e1e1}.onyx-picker.onyx-menu-up{top:auto;bottom:0;margin-top:3px;margin-bottom:-3px}.onyx-picker .onyx-menu-item:hover{background-color:transparent}.onyx-picker .onyx-menu-item.active,.onyx-picker .onyx-menu-item.selected,.onyx-picker .onyx-menu-item:active:hover{border-top:1px solid rgba(0,0,0,.1);background-color:#cde7fe;box-shadow:inset 0 0 3px rgba(0,0,0,.2)}.onyx-picker .onyx-menu-item{text-align:center;border-top:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(0,0,0,.2)}.onyx-input-decorator>.onyx-richtext,.onyx-input-decorator>textarea{padding:0;border:none;background-color:transparent;background-image:none;box-shadow:none;margin:0;outline:0;font-size:16px}.onyx-flyweight-picker :first-child>.onyx-menu-item,.onyx-picker:not(.onyx-flyweight-picker) .onyx-menu-item:first-child{border-top:none}.onyx-flyweight-picker :last-child>.onyx-menu-item,.onyx-picker:not(.onyx-flyweight-picker) .onyx-menu-item:last-child{border-bottom:none}.onyx-input-decorator>textarea{cursor:pointer;resize:none;overflow:auto}.onyx-input-decorator.onyx-focused>textarea{cursor:text}.onyx-input-decorator.onyx-disabled>textarea{cursor:default}.onyx-textarea{min-height:50px}.onyx-input-decorator>.onyx-richtext{cursor:pointer;min-height:20px;min-width:100px}.onyx-input-decorator.onyx-focused>.onyx-richtext{cursor:text}.onyx-input-decorator.onyx-disabled>.onyx-richtext{cursor:default}.onyx-radiobutton{padding:8px 12px;margin:0;outline:0;font-size:16px;text-shadow:0 1px 1px rgba(0,0,0,.2);text-align:center;background:url(gradient.png) bottom repeat-x #e7e7e7;border:1px solid #333;border:1px solid rgba(15,15,15,.2);border-right-color:transparent;box-shadow:inset 1px 1px 0 rgba(255,255,255,.2)}.onyx-radiobutton:first-child{border-radius:3px 0 0 3px}.onyx-radiobutton:last-child{border-radius:0 3px 3px 0;border-right:1px solid #333;border-right:1px solid rgba(15,15,15,.2)}.onyx-radiobutton.active{color:#fff;background:url(gradient-invert.png) top repeat-x #0091f2;border-top:1px solid rgba(15,15,15,.6);box-shadow:inset 1px 2px 2px rgba(0,0,0,.2)}.onyx-scrim{z-index:1;pointer-events:none}.onyx-scrim.onyx-scrim-translucent{pointer-events:auto;background-color:#000;opacity:.65;filter:alpha(opacity=65)}.onyx-scrim.onyx-scrim-transparent{pointer-events:auto;background:0 0}.onyx-radiobutton.onyx-tabbutton{padding:8px 34px;font-size:20px;border-radius:0}.onyx-toggle-button{display:inline-block;height:32px;line-height:32px;min-width:64px;vertical-align:middle;text-align:center;border-radius:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.4);background:url(gradient-invert.png) bottom repeat-x #8bba3d;background-size:auto 100%;color:#fff;font-size:14px;font-weight:700;text-transform:uppercase}.onyx-toggle-button.off{background-color:#b1b1b1!important}.onyx-toggle-button-knob{display:inline-block;width:30px;height:30px;margin:1px;border-radius:3px;background:url(gradient.png) repeat-x #f6f6f6;background-size:auto 100%}.onyx-toggle-button .onyx-toggle-button-knob{box-shadow:-1px 0 4px rgba(0,0,0,.35),inset 0 -1px 0 rgba(0,0,0,.4);float:right}.onyx-toggle-button.off .onyx-toggle-button-knob{box-shadow:1px 0 4px rgba(0,0,0,.35),inset 0 -1px 0 rgba(0,0,0,.4);float:left}.onyx-icon-button.disabled,.onyx-toggle-button.disabled{opacity:.4;filter:alpha(opacity=40)}.onyx-toggle-content{min-width:32px;padding:0 6px}.onyx-toggle-content.empty{padding:0}.onyx-toggle-content.off{float:right}.onyx-toggle-content.on{float:left}.onyx-toolbar{padding:9px 8px 10px;border:1px solid #3A3A3A;background:url(gradient.png) 0 bottom repeat-x #4c4c4c;background-size:contain;color:#fff;overflow-y:visible;font-size:20px}.enyo-fittable-columns-layout.onyx-toolbar-inline>*,.onyx-toolbar-inline>*{display:inline-block;vertical-align:middle;margin:4px 6px 5px;box-sizing:border-box}.onyx-toolbar .onyx-icon-button{margin:3px 2px 1px}.onyx-toolbar .onyx-button{color:#f2f2f2;background-color:#555656;border-color:rgba(15,15,15,.5);margin-top:0;margin-bottom:0;height:36px}.onyx-toolbar .onyx-input-decorator{margin:1px 3px;box-shadow:inset 0 1px 4px rgba(0,0,0,.1);background-color:rgba(0,0,0,.1);padding:0 6px 5px}.onyx-toolbar .onyx-input-decorator.onyx-focused{box-shadow:inset 0 1px 4px rgba(0,0,0,.3);background-color:#fff}.onyx-toolbar .onyx-input-decorator .onyx-input{color:#e5e5e5;font-size:14px}.onyx-toolbar .onyx-input-decorator .onyx-input:focus{color:#000}.onyx-toolbar .onyx-input-decorator .onyx-input:focus::-webkit-input-placeholder{color:#ddd}.onyx-tooltip{z-index:20;left:0;padding:4px 6px;margin-top:4px;margin-left:-6px;box-shadow:0 6px 10px rgba(0,0,0,.2);border:1px solid rgba(0,0,0,.2);color:#fff;background:url(gradient.png) 0 bottom repeat-x #216593;border-radius:3px}.onyx-tooltip::after,.onyx-tooltip::before{border-left:6px solid transparent;border-right:6px solid transparent;position:absolute;top:-6px;content:''}.onyx-tooltip.right-arrow{left:30px}.onyx-tooltip::before{left:16px}.onyx-tooltip::after{margin-left:-12px}.onyx-tooltip.below{top:100%}.onyx-tooltip.below.left-arrow::before,.onyx-tooltip.below.right-arrow::after{border-bottom:6px solid #1D587F;top:-6px}.onyx-tooltip.above{top:-100%}.onyx-tooltip.above.left-arrow::before,.onyx-tooltip.above.right-arrow::after{content:'';border-top:6px solid #1D587F;top:100%}.onyx-progress-bar{margin:8px;height:8px;border:1px solid rgba(15,15,15,.2);border-radius:3px;background:url(gradient-invert.png) repeat-x #b8b8b8;background-size:auto 100%}.onyx-progress-bar-bar{height:100%;border-radius:3px;background:url(gradient.png) repeat-x #58abef;background-size:auto 100%}.onyx-progress-bar-bar.striped{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.onyx-progress-bar-bar.striped.animated{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}@-webkit-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}.onyx-progress-button{position:relative;height:36px;line-height:36px;color:#f1f1f1;font-size:16px;text-overflow:ellipsis}.onyx-progress-button-bar{height:36px}.onyx-progress-button-icon{display:inline-block;position:absolute;top:2px;right:0}.onyx-progress-button-client{display:inline-block;position:absolute;top:0;left:0;right:36px;margin-left:8px}.onyx-progress-button-client>*{display:inline-block}.onyx-slider{position:relative;margin:8px 20px}.onyx-slider-taparea{position:absolute;top:-11px;height:28px;width:100%}.onyx-slider-knob{position:relative;height:40px;width:40px;background:url(slider-handle.png) left top no-repeat;margin:-23px -20px}.onyx-slider-knob.active,.onyx-slider-knob.pressed,.onyx-slider-knob:active:hover{background-position:0 -40px}.onyx-range-slider-knob{top:-17px}.onyx-range-slider-label{position:relative;top:-18px;text-align:center;white-space:nowrap}.onyx-item{padding:14px}.onyx-highlight,.onyx-highlight.onyx-swipeable-item-content{background-color:#dedfdf}.enyo-selected,.enyo-selected.onyx-swipeable-item-content{background-color:#c4e3fe}.onyx-item.onyx-swipeable-item{overflow:hidden;padding:0}.onyx-swipeable-item-content{background-color:#eaeaea;box-sizing:border-box;padding:18px 6px;min-height:40px}.onyx-spinner{width:59px;height:58px;display:inline-block;background:url(spinner-dark.gif) no-repeat}.onyx-spinner.onyx-light{background:url(spinner-light.gif) no-repeat}.onyx-more-toolbar{overflow:visible;position:relative;z-index:10}.onyx-more-toolbar.active{z-index:11}.onyx-more-menu{left:auto;right:0;min-width:0}.onyx-more-toolbar .onyx-more-menu>*{float:right;clear:both;margin:5px}.onyx-more-button{background-image:url(more.png);width:32px;height:32px}.onyx-datepicker-month{min-width:75px}.onyx-datepicker-day{min-width:60px}.onyx-datepicker-year{min-width:70px}.onyx-timepicker-ampm,.onyx-timepicker-hour,.onyx-timepicker-minute{min-width:60px}.onyx-button.onyx-blue{background-color:#35A8EE;color:#F2F2F2}.onyx-button.onyx-affirmative{background-color:#91BA07;color:#F2F2F2}.onyx-button.onyx-negative{background-color:#C51616;color:#F2F2F2}.onyx-button.onyx-dark{background-color:#555656;color:#F2F2F2}.onyx-button.onyx-light{background-color:#cacaca;color:#2F2F2F}.onyx-contextual-popup-title{font-weight:700;padding:24px 32px 0}.onyx-contextual-popup-scroller{padding:24px 32px}.onyx-contextual-popup-action-buttons{display:inline-block;width:100%;text-align:center}.onyx-contextual-popup-action-button{margin-left:5px;margin-right:5px}.onyx-contextual-popup,.onyx.onyx-contextual-popup{font-size:16px;box-shadow:0 6px 10px rgba(0,0,0,.2);border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:6px;color:#fff;background:#4c4c4c}.onyx-contextual-popup.vertical.above::after,.onyx-contextual-popup.vertical::after,.onyx-contextual-popup::after{border-left:10px solid transparent;border-right:10px solid transparent}.onyx-contextual-popup.left.low.corner,.onyx-contextual-popup.right.above.corner{border-bottom-left-radius:0}.onyx-contextual-popup.left.above.corner,.onyx-contextual-popup.right.low.corner{border-bottom-right-radius:0}.onyx-contextual-popup.left.high.corner,.onyx-contextual-popup.vertical.below.right.corner{border-top-left-radius:0}.onyx-contextual-popup.right.high.corner,.onyx-contextual-popup.vertical.below.left.corner{border-top-right-radius:0}.onyx-contextual-popup::after{content:'';position:absolute;top:-10px;border-top:10px solid transparent;border-bottom:10px solid transparent}.onyx-contextual-popup.vertical.above{top:auto;margin-top:-10px;bottom:100%;margin-bottom:10px}.onyx-contextual-popup.vertical.below{margin-top:10px}.onyx-contextual-popup.right.horizontal{margin-left:-11px}.onyx-contextual-popup.left.horizontal{margin-left:10px}.onyx-contextual-popup.vertical::after{position:absolute;left:45%;border-bottom:10px solid #4c4c4c;border-top:none}.onyx-contextual-popup.vertical.right::after{left:0;margin-left:20px}.onyx-contextual-popup.vertical.left::after{left:100%;margin-left:-55px}.onyx-contextual-popup.vertical.above::after{top:100%;border-top:10px solid #4c4c4c;border-bottom:none}.onyx-contextual-popup.vertical.below.right::after{top:0;margin-top:-10px;border-bottom:10px solid #4c4c4c;border-left:10px solid transparent}.onyx-contextual-popup.vertical.below.left::after{top:0;margin-top:-10px;border-right:10px solid transparent}.onyx-contextual-popup.right::after{left:100%;top:47%;margin-right:20px;border-left:10px solid #4C4C4C}.onyx-contextual-popup.right.high::after{top:35px;border-left:10px solid #4C4C4C}.onyx-contextual-popup.right.low::after{top:100%;margin-top:-55px;border-left:10px solid #4C4C4C}.onyx-contextual-popup.left::after{left:0;margin-left:-20px;top:45%;border-right:10px solid #4C4C4C}.onyx-contextual-popup.left.high::after{top:35px;border-right:10px solid #4C4C4C}.onyx-contextual-popup.left.low::after{top:100%;margin-top:-55px;border-right:10px solid #4C4C4C}.onyx-contextual-popup.vertical.left.corner,.onyx-contextual-popup.vertical.right.corner{margin-left:0}.onyx-contextual-popup.vertical.below.left.corner::after{top:0;left:100%;margin-top:-10px;margin-left:-19px;border-right:10px solid #4c4c4c;border-top:10px solid transparent}.onyx-contextual-popup.vertical.below.right.corner::after{top:0;left:0;margin-left:-1px;border-left:10px solid #4c4c4c;border-top:10px solid transparent}.onyx-contextual-popup.vertical.left.above.corner::after{top:100%;margin-left:-19px;border-right:10px solid #4C4C4C;border-bottom:10px solid transparent;border-top:none}.onyx-contextual-popup.vertical.right.above.corner::after{top:100%;left:0;margin-left:-1px;border-left:10px solid #4c4c4c;border-bottom:10px solid transparent;border-top:none}.onyx-contextual-popup.left.low.corner::after{top:100%;left:0;margin-top:-19px;margin-left:-12px;border-bottom:10px solid #4c4c4c;border-right:10px solid #4c4c4c}.onyx-contextual-popup.right.low.corner::after{top:100%;left:100%;margin-top:-19px;border-bottom:10px solid#4c4c4c;border-left:none}.onyx-contextual-popup.left.high.corner::after{top:0;left:0;margin-top:-1px;margin-left:-12px;border-top:10px solid #4C4C4C;border-bottom:none}.onyx-contextual-popup.right.high.corner::after{top:0;left:100%;margin-top:-1px;margin-left:-9px;border-top:10px solid #4C4C4C;border-bottom:none}.onyx-dark{background-color:#555656}.onyx-light{background-color:#cacaca}.onyx-green{background-color:#91BA07}.onyx-red{background-color:#C51616}.onyx-blue{background-color:#35A8EE}.nice-padding{padding:15px} +.enyo-body-fit,.enyo-document-fit{margin:0;height:100%;position:relative}body{font-family:'Helvetica Neue','Nimbus Sans L',Arial,sans-serif}body.webkitOverflowScrolling{-webkit-overflow-scrolling:touch}.enyo-body-fit{overflow:auto}.enyo-clip,.enyo-touch-scroller,.enyo-touch-strategy-container{overflow:hidden}.enyo-no-touch-action{-ms-touch-action:none}button{font-size:inherit;font-family:inherit}button::-moz-focus-inner{border:0;padding:0}.enyo-unselectable{cursor:default;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none}.enyo-unselectable ::selection,.enyo-unselectable::selection{color:transparent}.enyo-selectable{cursor:auto;-ms-user-select:element;-webkit-user-select:text;-moz-user-select:text;user-select:text}.enyo-selectable ::selection,.enyo-selectable::selection{background:#3297FD;color:#FFF}body .enyo-fit{position:absolute;left:0;top:0;right:0;bottom:0}.enyo-border-box{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.enyo-composite{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.enyo-thumb{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px;background:#333;border:1px solid #666;opacity:.75;z-index:1}.enyo-vthumb{top:0;right:2px;width:4px}.enyo-hthumb{left:0;bottom:2px;height:4px}.enyo-fill,.enyo-scrollee-fit{height:100%}.enyo-scroller{position:relative}.enyo-fit.enyo-scroller{position:absolute}.enyo-fill,.enyo-positioned{position:relative}.enyo-children-inline>*,.enyo-inline,.enyo-tool-decorator,.enyo-tool-decorator>*{display:inline-block}.enyo-children-middle>*,.enyo-tool-decorator>*{vertical-align:middle}.enyo-fill{width:100%}.enyo-popup{position:absolute;z-index:10} \ No newline at end of file diff --git a/shlr/www/enyo/lib/onyx/images/gradient-invert.png b/shlr/www/enyo/enyo/lib/onyx/images/gradient-invert.png similarity index 100% rename from shlr/www/enyo/lib/onyx/images/gradient-invert.png rename to shlr/www/enyo/enyo/lib/onyx/images/gradient-invert.png diff --git a/shlr/www/enyo/lib/onyx/images/gradient.png b/shlr/www/enyo/enyo/lib/onyx/images/gradient.png similarity index 100% rename from shlr/www/enyo/lib/onyx/images/gradient.png rename to shlr/www/enyo/enyo/lib/onyx/images/gradient.png diff --git a/shlr/www/enyo/build/app.js b/shlr/www/enyo/enyo_app.js similarity index 50% rename from shlr/www/enyo/build/app.js rename to shlr/www/enyo/enyo_app.js index 7a17c894ff38f..bbd2257acba35 100644 --- a/shlr/www/enyo/build/app.js +++ b/shlr/www/enyo/enyo_app.js @@ -1,4 +1,4288 @@ +// enyo.js + +(function() { +var e = "enyo.js"; +enyo = window.enyo || {}, enyo.locateScript = function(e) { +var t = document.getElementsByTagName("script"); +for (var n = t.length - 1, r, i, s = e.length; n >= 0 && (r = t[n]); n--) if (!r.located) { +i = r.getAttribute("src") || ""; +if (i.slice(-s) == e) return r.located = !0, { +path: i.slice(0, Math.max(0, i.lastIndexOf("/"))), +node: r +}; +} +}, enyo.args = enyo.args || {}; +var t = enyo.locateScript(e); +if (t) { +enyo.args.root = (enyo.args.root || t.path).replace("/source", ""); +for (var n = 0, r = t.node.attributes.length, i; n < r && (i = t.node.attributes.item(n)); n++) enyo.args[i.nodeName] = i.value; +} +})(); + +// ../../loader.js + +(function() { +enyo = window.enyo || {}, enyo.pathResolverFactory = function() { +this.paths = {}; +}, enyo.pathResolverFactory.prototype = { +addPath: function(e, t) { +return this.paths[e] = t; +}, +addPaths: function(e) { +if (e) for (var t in e) this.addPath(t, e[t]); +}, +includeTrailingSlash: function(e) { +return e && e.slice(-1) !== "/" ? e + "/" : e; +}, +rewritePattern: /\$([^\/\\]*)(\/)?/g, +rewrite: function(e) { +var t, n = this.includeTrailingSlash, r = this.paths, i = function(e, i) { +return t = !0, n(r[i]) || ""; +}, s = e; +do t = !1, s = s.replace(this.rewritePattern, i); while (t); +return s; +} +}, enyo.path = new enyo.pathResolverFactory, enyo.loaderFactory = function(e, t) { +this.machine = e, this.packages = [], this.modules = [], this.sheets = [], this.stack = [], this.pathResolver = t || enyo.path, this.packageName = "", this.packageFolder = "", this.finishCallbacks = {}; +}, enyo.loaderFactory.prototype = { +verbose: !1, +loadScript: function(e) { +this.machine.script(e); +}, +loadSheet: function(e) { +this.machine.sheet(e); +}, +loadPackage: function(e) { +this.machine.script(e); +}, +report: function() {}, +load: function() { +this.more({ +index: 0, +depends: arguments || [] +}); +}, +more: function(e) { +if (e && this.continueBlock(e)) return; +var t = this.stack.pop(); +t ? (this.verbose && console.groupEnd("* finish package (" + (t.packageName || "anon") + ")"), this.packageFolder = t.folder, this.packageName = "", this.more(t)) : this.finish(); +}, +finish: function() { +this.packageFolder = "", this.verbose && console.log("-------------- fini"); +for (var e in this.finishCallbacks) this.finishCallbacks[e] && (this.finishCallbacks[e](), this.finishCallbacks[e] = null); +}, +continueBlock: function(e) { +while (e.index < e.depends.length) { +var t = e.depends[e.index++]; +if (t) if (typeof t == "string") { +if (this.require(t, e)) return !0; +} else this.pathResolver.addPaths(t); +} +}, +require: function(e, t) { +var n = this.pathResolver.rewrite(e), r = this.getPathPrefix(e); +n = r + n; +if (n.slice(-4) == ".css" || n.slice(-5) == ".less") this.verbose && console.log("+ stylesheet: [" + r + "][" + e + "]"), this.requireStylesheet(n); else { +if (n.slice(-3) != ".js" || n.slice(-10) == "package.js") return this.requirePackage(n, t), !0; +this.verbose && console.log("+ module: [" + r + "][" + e + "]"), this.requireScript(e, n); +} +}, +getPathPrefix: function(e) { +var t = e.slice(0, 1); +return t != "/" && t != "\\" && t != "$" && !/^https?:/i.test(e) ? this.packageFolder : ""; +}, +requireStylesheet: function(e) { +this.sheets.push(e), this.loadSheet(e); +}, +requireScript: function(e, t) { +this.modules.push({ +packageName: this.packageName, +rawPath: e, +path: t +}), this.loadScript(t); +}, +decodePackagePath: function(e) { +var t = "", n = "", r = "", i = "package.js", s = e.replace(/\\/g, "/").replace(/\/\//g, "/").replace(/:\//, "://").split("/"), o, u; +if (s.length) { +var a = s.pop() || s.pop() || ""; +a.slice(-i.length) !== i ? s.push(a) : i = a, r = s.join("/"), r = r ? r + "/" : "", i = r + i; +for (o = s.length - 1; o >= 0; o--) if (s[o] == "source") { +s.splice(o, 1); +break; +} +n = s.join("/"); +for (o = s.length - 1; u = s[o]; o--) if (u == "lib" || u == "enyo") { +s = s.slice(o + 1); +break; +} +for (o = s.length - 1; u = s[o]; o--) (u == ".." || u == ".") && s.splice(o, 1); +t = s.join("-"); +} +return { +alias: t, +target: n, +folder: r, +manifest: i +}; +}, +aliasPackage: function(e) { +var t = this.decodePackagePath(e); +this.manifest = t.manifest, t.alias && (this.pathResolver.addPath(t.alias, t.target), this.packageName = t.alias, this.packages.push({ +name: t.alias, +folder: t.folder +})), this.packageFolder = t.folder; +}, +requirePackage: function(e, t) { +t.folder = this.packageFolder, this.aliasPackage(e), t.packageName = this.packageName, this.stack.push(t), this.report("loading package", this.packageName), this.verbose && console.group("* start package [" + this.packageName + "]"), this.loadPackage(this.manifest); +} +}; +})(); + +// boot.js + +enyo.execUnsafeLocalFunction = function(e) { +typeof MSApp == "undefined" ? e() : MSApp.execUnsafeLocalFunction(e); +}, enyo.machine = { +sheet: function(e) { +var t = "text/css", n = "stylesheet", r = e.slice(-5) == ".less"; +r && (window.less ? (t = "text/less", n = "stylesheet/less") : e = e.slice(0, e.length - 4) + "css"); +var i; +enyo.runtimeLoading || r ? (i = document.createElement("link"), i.href = e, i.media = "screen", i.rel = n, i.type = t, document.getElementsByTagName("head")[0].appendChild(i)) : (i = function() { +document.write(''); +}, enyo.execUnsafeLocalFunction(i)), r && window.less && (less.sheets.push(i), enyo.loader.finishCallbacks.lessRefresh || (enyo.loader.finishCallbacks.lessRefresh = function() { +less.refresh(!0); +})); +}, +script: function(e, t, n) { +if (!enyo.runtimeLoading) document.write(' - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shlr/www/enyo/index.js b/shlr/www/enyo/index.js deleted file mode 100644 index c8c9150bde0ec..0000000000000 --- a/shlr/www/enyo/index.js +++ /dev/null @@ -1,37 +0,0 @@ -enyo.kind({name:"About",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"r2wui"},{kind:"Image",src:"icon.png"},{tag:"h3",style:"color:#707070;margin-bottom:50px",content:"the web frontend for radare2"},{tag:"h2",style:"color:#a0a0a0",content:"author: pancake 2013-2014"},{tag:"h2",style:"color:#a0a0a0",content:"version: ???",name:"vertext"},{tag:"h2",style:"color:#a0a0a0",content:"revision: ???",name:"revtext"}]}],create:function(){this.inherited(arguments);(function(me){setTimeout(function(){r2.cmd("?V",function(v){var version=v.split(" ")[0];var revision=v.split(" ")[2];me.$.vertext.setContent("version: "+version);me.$.revtext.setContent("revision: "+revision)})},1e3)})(this)}});enyo.kind({name:"Assembler",kind:"Scroller",classes:"r2panel",style:"background-color:#c0c0c0;",components:[{tag:"form",style:"margin-top:8px;margin-left:8px",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:true,components:[{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"opcode",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"",style:"width:60%",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"opcode"}]},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"bytes",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"",style:"width:120px",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"bytes"}]},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",content:"offset",classes:"r2ui-input",style:"width:64px;font-weight:bold"},{kind:"Input",value:"entry0",style:"width:120px",onkeydown:"assembleOpcode",attributes:{autocapitalize:"off"},name:"offset"}]}]}]},{tag:"form",style:"margin-top:8px;margin-left:8px",attributes:{action:"javascript:#"},components:[{tag:"h2",content:"Calculator"},{kind:"onyx.InputDecorator",classes:"r2ui-input",components:[{tag:"font",name:"value",content:"0",classes:"r2ui-input",style:"width:200px;font-weight:bold"},{kind:"Input",name:"ivalue",value:"0",style:"width:300",onkeydown:"calculateValue",attributes:{autocapitalize:"off"}}]}]}],calculateValue:function(inSender,inEvent){if(inEvent.keyCode===13){var v=this.$.value;var val=inSender.getValue();v.setContent("...");r2.cmd("?v "+val,function(x){v.setContent(x)})}},assembleOpcode:function(inSender,inEvent){if(inEvent.keyCode===13){var arg=inSender.getValue();var off=this.$.offset.getValue();switch(inSender.name){case"opcode":var hex=this.$.bytes;r2.assemble(off,arg,function(bytes){hex.setValue(bytes)});break;case"bytes":var op=this.$.opcode;r2.disassemble(off,arg,function(x){op.setValue(x)});break;case"offset":break}}}});var Config={keys:{1:"this.setIndex(0)",2:"this.setIndex(1)",3:"this.setIndex(2)"}};enyo.kind({name:"Console",kind:"Scroller",classes:"r2panel",style:"background-color:#c0c0c0;padding-left:7px",components:[{tag:"form",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:true,classes:"fittable-sample-shadow",components:[{kind:"onyx.InputDecorator",style:"margin-top:8px;background-color:#404040;width: 90%;display:inline-block",components:[{kind:"Input",style:"width:100%;color:white",value:"",onkeydown:"runCommand",attributes:{autocapitalize:"off"},name:"input"}]},{tag:"pre",classes:"r2ui-terminal",style:"width:90%;",fit:true,allowHtml:true,name:"output"}]}]}],runCommand:function(inSender,inEvent){if(inEvent.keyCode===13){var cmd=this.$.input.getValue();this.$.input.setValue("");(function(out){r2.cmd(cmd,function(x){out.setContent(x)})})(this.$.output)}}});enyo.kind({name:"Debugger",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"TODO: Debugger"}]}]});var BBGraph=function(){this.vertices={};this.edges=[];this.elements=[];this.links=[];this.fcn_offset=0;joint.shapes.html={};joint.shapes.html.Element=joint.shapes.basic.Rect.extend({defaults:joint.util.deepSupplement({type:"html.Element",attrs:{rect:{stroke:r2ui.colors[".ec_gui_border"],fill:r2ui.colors[".ec_gui_alt_background"]}}},joint.shapes.basic.Rect.prototype.defaults)});joint.shapes.html.ElementView=joint.dia.ElementView.extend({initialize:function(){_.bindAll(this,"updateBox");joint.dia.ElementView.prototype.initialize.apply(this,arguments);this.$box=$(_.template(this.model.get("html"))());this.$box.find("input").on("mousedown click",function(evt){evt.stopPropagation()});this.model.on("change",this.updateBox,this);this.updateBox()},render:function(){joint.dia.ElementView.prototype.render.apply(this,arguments);this.paper.$el.prepend(this.$box);this.updateBox();return this},updateBox:function(event){var bbox=this.model.getBBox();this.$box.css({width:bbox.width+2,height:bbox.height,left:bbox.x-1,top:bbox.y+7})}})};BBGraph.prototype.addVertex=function(addr,vlen,dom){if(this.vertices[addr]===undefined){this.vertices[addr]={};this.vertices[addr].parents=[];this.vertices[addr].children=[];if(vlen===undefined){this.vertices[addr].len=1;var dom=document.createElement("div");dom.id="bb_"+addr;dom.className="basicblock enyo-selectable ec_gui_background ec_gui_border";dom.innerHTML="
0x"+addr.toString(16)+"
";this.vertices[addr].rendered=dom}}if(vlen!==undefined){this.vertices[addr].len=vlen;this.vertices[addr].rendered=dom}};BBGraph.prototype.addEdge=function(v1,v2,color){this.addVertex(v1);this.addVertex(v2);this.edges.push({from:v1,to:v2,color:color});this.vertices[v1].children.push(v2);this.vertices[v2].parents.push(v1)};BBGraph.prototype.makeElement=function(addr,width,height,html){this.elements.push(new joint.shapes.html.Element({id:String(addr),size:{width:width,height:height},html:html}))};BBGraph.prototype.makeLink=function(v1,v2,color){this.links.push(new joint.dia.Link({source:{id:String(v1)},target:{id:String(v2)},attrs:{".marker-target":{d:"M 4 0 L 0 2 L 4 4 z",fill:color,stroke:color},".connection":{"stroke-width":1,stroke:color}},smooth:true}))};BBGraph.prototype.adjustVertices=function(link){console.log("tic")};BBGraph.prototype.render=function(){var name=Object.keys(this.vertices).toString();var outergbox=document.createElement("div");outergbox.id="outergbox";var bbcanvas=document.getElementById("canvas");var gbox=document.createElement("div");gbox.id="gbox";gbox.className=name;outergbox.appendChild(gbox);bbcanvas.appendChild(outergbox);for(var addr in this.vertices){var r=this.vertices[addr].rendered;if(r!==undefined){gbox.appendChild(r);this.makeElement(addr,r.offsetWidth,r.offsetHeight,r.outerHTML)}}for(var j=0;j");var items=this.elements.concat(this.links);var width=$("#center_panel").width();var graph=new joint.dia.Graph;var paper=new joint.dia.Paper({el:$("#canvas"),gridSize:1,width:2e3,height:6e3,model:graph});var minimap_width=200;var minimap_heigh=200;$("#minimap").html("");$("#minimap").html("");var minimap=new joint.dia.Paper({el:$("#minimap"),gridSize:1,width:minimap_width,height:minimap_heigh,model:graph});graph.resetCells(items);joint.layout.DirectedGraph.layout(graph);r2ui.graph=graph;reposition_graph();$("#minimap .basicblock").remove();graph.getCell("minimap_area").attr({rect:{stroke:"transparent"}});var svg_width=$("#canvas svg")[0].getBBox().width;var svg_height=$("#canvas svg")[0].getBBox().height;paper.setDimensions(svg_width+500,svg_height+500);var ws=Math.ceil(svg_width/minimap_width);var hs=Math.ceil(svg_height/minimap_heigh);var scale=1/Math.max(ws,hs);var delta=0;if(hs>ws)delta=minimap_width/2-svg_width*scale/2;minimap.scale(scale);minimap.setOrigin(delta,0);if($("#radareApp_mp").length){$("#minimap").css("left",$("#main_panel").width()-minimap_width-$("#main_panel").position().left);$("#minimap").css("top",$("#center_panel").position().top);$("#main_panel").bind("scroll",update_minimap)}else if($("#main_panel").length){$("#minimap").css("left",$("#main_panel").width()-minimap_width);$("#minimap").css("top",$("#center_panel").position().top-40);$("#center_panel").bind("scroll",update_minimap)}paper.on("cell:pointerup",function(cellview,evt,x,y){var model=cellview.model;var bbox=model.attributes.position;var id=String(model.prop("id"));if(model!==undefined&&id!=="minimap_area"){var color=null;var bb=r2ui.get_fcn_BB(r2ui.current_fcn_offset,id);if(bb!==undefined&&bb!==null){if(bb.x!=String(bbox.x)||bb.y!=String(bbox.y)){bb.x=bbox.x;bb.y=bbox.y;r2ui.update_fcn_BB(r2ui.current_fcn_offset,id,bb)}}else if(bb!==undefined&&bb!==null){r2ui.update_fcn_BB(r2ui.current_fcn_offset,id,{x:bbox.x,y:bbox.y})}}});if(r2ui._dis.minimap){update_minimap();$("#minimap_area").draggable({containment:"parent",stop:function(event,ui){var delta_x=ui.position.left/scale;var delta_y=ui.position.top/scale;if(delta_x<0)delta_x=0;if(delta_y<0)delta_y=0;if($("#radareApp_mp").length)$("#main_panel").scrollTo({top:delta_y,left:delta_x-delta/scale});else $("#center_panel").scrollTo({top:delta_y,left:delta_x-delta/scale})}})}else{$("#minimap").hide()}};function toggle_minimap(){if(r2ui._dis.minimap){r2ui._dis.minimap=false;r2ui.seek(r2ui._dis.selected_offset,false);$("#minimap").hide()}else{r2ui._dis.minimap=true;r2ui.seek(r2ui._dis.selected_offset,false);$("#minimap").show()}}function update_minimap(){if(r2ui._dis.minimap&&$("#canvas svg").length){var minimap_width=200;var minimap_height=200;var svg_width=$("#canvas svg")[0].getBBox().width;var svg_height=$("#canvas svg")[0].getBBox().height;var ws=Math.ceil(svg_width/minimap_width);var hs=Math.ceil(svg_height/minimap_height);var scale=1/Math.max(ws,hs);var delta=0;if(hs>ws)delta=minimap_width/2-svg_width*scale/2;var el=null;if($("#radareApp_mp").length){el=$("#main_panel")}else if($("#main_panel").length){el=$("#center_panel")}if(el.scrollTop()0){graph.addEdge(addr,bb.fail,"red");if(bb.jump>0){graph.addEdge(addr,bb.jump,"green")}}else if(bb.jump>0){graph.addEdge(addr,bb.jump,"blue")}}graph.render();var element=$("#canvas svg g .element");element.on("mousedown",function(event){flag=0});element.on("mousemove",function(event){flag=1});element.on("mouseup",function(event){if(flag===0){var id=event.target.parentNode.parentNode.parentNode.getAttribute("model-id");if(id!=="minimap_area"){var color=null;var bb=r2ui.get_fcn_BB(r2ui.current_fcn_offset,id);if(bb!==undefined&&bb!==null){if(bb.color==="red")bb.color=r2ui.colors[".ec_gui_alt_background"];else bb.color="red"}else{bb={x:"null",y:"null",color:"red"}}r2ui.update_fcn_BB(r2ui.current_fcn_offset,id,bb);reposition_graph()}}});$(".addr").css("-webkit-user-select","text");return true}function render_instructions(instructions){var outergbox=document.createElement("div");outergbox.id="outergbox";var flatcanvas=document.getElementById("canvas");flatcanvas.innerHTML="";var gbox=document.createElement("div");gbox.id="gbox";gbox.className="ec_gui_background";outergbox.appendChild(gbox);flatcanvas.appendChild(outergbox);var flatcanvas_rect=getOffsetRect(flatcanvas);var asm_lines=r2.settings["asm.lines"];var asm_offset=r2.settings["asm.offset"];var accumulated_heigth=flatcanvas_rect.top;var lines=[];var targets={};var first_address=instructions[0].offset;var last_address=instructions[instructions.length-1].offset;for(var i in instructions){var ins=instructions[i];if((ins.type=="jmp"||ins.type=="cjmp")&&ins.jump!==undefined&&ins.jump!==null){var line={};line.from=ins.offset;if(last_addressins.jump){line.to_end=false;line.to=first_address}else{line.to_end=true;line.to=ins.jump}if(ins.type=="jmp"){line.color=r2ui.colors[".ec_flow"];line.dashed=false}else if(ins.type=="cjmp"){line.color=r2ui.colors[".ec_gui_cflow"];line.dashed=true}line.to_start=true;lines[lines.length]=line;if(targets[line.to]===undefined){targets[line.to]=0}}if(ins.comment===undefined||ins.comment===null)ins.comment="";else{try{ins.comment=atob(ins.comment)}catch(e){console.log(ins.comment)}}var dom=document.createElement("div");if(asm_lines)dom.className="instructionbox enyo-selectable lines";else dom.className="instructionbox";dom.style.top=accumulated_heigth+"px";dom.innerHTML=html_for_instruction(ins);gbox.appendChild(dom);var instruction_rect=getOffsetRect(dom);var instruction_heigth=instruction_rect.bottom-instruction_rect.top;accumulated_heigth+=instruction_heigth}if(asm_lines){var canvas=document.createElement("canvas");canvas.width=500;canvas.height=accumulated_heigth;canvas.id="linecanvas";canvas.setAttribute("tabindex","1");canvas.setAttribute("style","outline: none;");gbox.appendChild(canvas);var ctx=canvas.getContext("2d");if(!ctx.setLineDash){ctx.setLineDash=function(){}}var num_targets=countProperties(targets);var num_assigned_paths=0;var lines_width=100;for(var l in lines){var line=lines[l];var from="0x"+line.from.toString(16);var to="0x"+line.to.toString(16);if(targets[line.to]===0){targets[line.to]=(num_targets-num_assigned_paths-1)*(90/(num_targets+1));num_assigned_paths+=1}var from_element=get_element_by_address(from);var to_element=get_element_by_address(to);if(from_element!==null&&from_element!==undefined&&to_element!==undefined&&to_element!==null){var x=targets[line.to];var from_rect=getOffsetRect(from_element);var y0=(from_rect.top+from_rect.bottom)/2;var to_rect=getOffsetRect(to_element);var y1=(to_rect.top+to_rect.bottom)/2;if(line.to==instructions[0].offset){y1=0}ctx.beginPath();ctx.moveTo(x,y0);ctx.lineTo(x,y1);ctx.strokeStyle=line.color;if(line.dashed)ctx.setLineDash([2,3]);ctx.stroke();if(line.to_start){ctx.beginPath();ctx.moveTo(x,y0);ctx.lineTo(lines_width-5,y0);ctx.strokeStyle=line.color;if(line.dashed)ctx.setLineDash([2,3]);ctx.stroke();ctx.beginPath();ctx.arc(lines_width-5-2,y0,2,0,2*Math.PI,false);ctx.fillStyle=line.color;ctx.fill()}if(line.to_end){ctx.beginPath();ctx.moveTo(x,y1);ctx.lineTo(lines_width-5,y1);ctx.strokeStyle=line.color;if(line.dashed)ctx.setLineDash([2,3]);ctx.stroke();ctx.beginPath();ctx.moveTo(lines_width-5,y1);ctx.lineTo(lines_width-10,y1-5);ctx.lineTo(lines_width-10,y1+5);ctx.lineWidth=1;ctx.fillStyle=line.color;ctx.fill()}}}}if(!asm_offset){var elements=document.getElementsByClassName("insaddr");for(var j in elements){if(elements[j].style)elements[j].style.display="none"}}$(".addr").css("-moz-user-select","text");$(".addr").css("-webkit-user-select","text")}function getOffsetRect(elem){var box=elem.getBoundingClientRect();var offset=$("#gbox").offset().top;var top=box.top-offset;var bottom=box.bottom-offset;return{top:Math.round(top),bottom:Math.round(bottom)}}function countProperties(obj){var count=0;for(var prop in obj){if(obj.hasOwnProperty(prop)){++count}}return count}function toBoolean(str){if(str==="true")return true;else if(str==="false")return false;else return undefined}function html_for_instruction(ins){var idump='
';var offset="0x"+ins.offset.toString(16);var address=offset;var asm_flags=r2.settings["asm.flags"];var asm_bytes=r2.settings["asm.bytes"];var asm_xrefs=r2.settings["asm.xrefs"];var asm_cmtright=r2.settings["asm.cmtright"];if(ins.fcn_addr>0&&offset==="0x"+ins.fcn_addr.toString(16)){if(r2ui._dis.display=="flat")idump+='
; -----------------------------------------------------------
';var results;var cmd="afij "+offset+";afvj "+offset+";afaj "+offset;r2.cmd(cmd,function(x){results=x.split("\n")});var info=JSON.parse(results[0]);if(info!==null&&info!==undefined&&info.length>0)idump+='
(fcn) '+info[0].name+"
";var vars=JSON.parse(results[1]);var fvars=[];for(var i in vars){idump+='
; '+vars[i].kind+" "+vars[i].type+" "+escapeHTML(vars[i].name)+" @ "+vars[i].ref+"
";fvars[fvars.length]={name:vars[i].name,id:address_canonicalize(offset)+"_"+vars[i].ref}}r2.varMap[ins.fcn_addr]=fvars;var args=JSON.parse(results[2]);var fargs=[];for(var i in args){idump+='
; '+args[i].kind+" "+args[i].type+" "+escapeHTML(args[i].name)+" @ "+args[i].ref+"
";fargs[fargs.length]={name:args[i].name,id:address_canonicalize(offset)+"_"+args[i].ref}}r2.argMap[ins.fcn_addr]=fargs}if(asm_flags){var flags;if(ins.flags!==undefined&&ins.flags!==null){flags=ins.flags.join(";")}else{flags=r2.get_flag_names(address_canonicalize(offset)).join(";")}if(flags!==""&&flags!==undefined&&flags!==null)idump+='
;-- '+escapeHTML(flags)+":
"}if(ins.comment&&!asm_cmtright){idump+='
; '+escapeHTML(ins.comment)+"
"}if(asm_xrefs){if(ins.xrefs!==undefined&&ins.xrefs!==null&&ins.xrefs.length>0){var xrefs="";for(var i in ins.xrefs){var xref=ins.xrefs[i];var name="";var xrefoffset="0x"+xref.addr.toString(16);if(r2.get_flag_names(address_canonicalize(xrefoffset)).length>0)name=" ("+r2.get_flag_names(address_canonicalize(xrefoffset)).join(";")+")";idump+='
; '+xref.type.toUpperCase()+" XREF from "+''+xrefoffset+" "+name+"
"}}}idump+=''+address+" ";if(asm_bytes){if(ins.bytes!==undefined&&ins.bytes!==null&&ins.bytes!==""){var dorep=function(a){if(a=="00")return'00';if(a=="ff")return'ff';if(a=="7f")return'7f'};var bytes=ins.bytes.replace(new RegExp("(00)|(ff)|(7f)","g"),dorep);idump+=''+bytes+" "}}var opcode=highlight_instruction(ins.opcode,true);if(r2.varMap[ins.fcn_addr]!==null&&r2.varMap[ins.fcn_addr]!==undefined&&r2.varMap[ins.fcn_addr].length>0||r2.argMap[ins.fcn_addr]!==null&&r2.argMap[ins.fcn_addr]!==undefined&&r2.argMap[ins.fcn_addr].length>0){for(var i in r2.varMap[ins.fcn_addr]){var var_name=r2.varMap[ins.fcn_addr][i].name;var var_id=r2.varMap[ins.fcn_addr][i].id;opcode=opcode.replace(" "+var_name+" "," "+escapeHTML(var_name)+" ")}for(var i in r2.argMap[ins.fcn_addr]){var arg_name=r2.argMap[ins.fcn_addr][i];var arg_id=r2.argMap[ins.fcn_addr][i].id;opcode=opcode.replace(" "+arg_name+" "," "+escapeHTML(var_name)+" ")}}if(ins.type!==undefined&&ins.type!==null){if(contains(math,ins.type))ins.type="math";if(contains(bin,ins.type))ins.type="bin";if(ins.type=="ill")ins.type="invalid";if(ins.type=="null")ins.type="invalid";if(ins.type=="undefined")ins.type="invalid";if(ins.type=="ujmp")ins.type="jmp";if(ins.type=="upush")ins.type="push";if(ins.type=="upop")ins.type="pop";if(ins.type=="ucall")ins.type="call";if(ins.type=="lea")ins.type="mov";if(!contains(known_types,ins.type))ins.type="other";idump+='
'+opcode+"
"}else{idump+='
'+opcode+"
"}if(ins.ptr_info){idump+=''+escapeHTML(ins.ptr_info)+""}if(ins.comment&&asm_cmtright){idump+=' ; '+escapeHTML(ins.comment)+""}if(ins.type=="ret"){idump+="
 
"}idump+="
";return idump}var math=["add","sub","mul","imul","div","idiv","neg","adc","sbb","inc","dec",".byte"];var bin=["xor","and","or","not"];var regs=["EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI","EIP","RAX","RCX","RDX","RBX","RSP","RBP","RSI","RDI","R0","R1","R2","R3","R4","R5","R6","R7","R8","R9","R10","R11","R12","R13","R14","R15","RIP"];var known_types=["fline","help","args","label","flow","prompt","input","btext","swi","comment","fname","flag","offset","other","b0x00","b0x7f","b0xff","math","bin","push","pop","jmp","cjmp","call","nop","ret","trap","invalid","cmp","reg","creg","mov","num"];var escapeHTML=function(){"use strict";var chr={'"':""","&":"&","<":"<",">":">"};return function(text){return text?text.replace(/[\"&<>]/g,function(a){return chr[a]}):""}}();function highlight_instruction(line,instruction){if(line===undefined)return"undefined";if(instruction===undefined)instruction=true;var ret=escapeHTML(line);var re="(0x[0123456789abcdef]+)";var reps={};if(instruction){for(var i in regs){var rep=''+regs[i]+"";reps[regs[i]]=rep;rep=''+regs[i].toLowerCase()+"";reps[regs[i].toLowerCase()]=rep}for(i in reps){re+="|("+i+")"}}function dorep(a){if(a.substr(0,2)=="0x"){var syms=r2.get_flag_names(address_canonicalize(a));for(var i in syms){if(syms[i].indexOf("sym.imp.")){return""+syms[i]+""}if(syms[i].indexOf("fcn.")){return""+syms[i]+""}}var cl=get_data_type(a);if(cl===""){return""+a+""}else if(cl==="datainstruction"){return""+a+""}else if(cl==="datamemory"){return""+a+""}}else{return reps[a]}}return ret.replace(new RegExp(re,"g"),dorep)}function hex2(a){if(a===undefined)return"__";var ret=a.toString(16);if(ret.length==1)return"0"+ret;return ret}function hex(a){if(a===undefined){return""}else{if(a<0)a+=4294967296;return"0x"+a.toString(16)}}function get_data_type(v,more){var a=r2.get_address_type(v);if(a==="")return"";else{if(more!==undefined){return"data"+a+" addr addr_"+v}else{return"data"+a}}}function fnum(a){return parseInt(a,10)}function get_address_from_class(t,type){if(type===undefined)type="addr";var prefix=type+"_";if(!t)return undefined;var l=t.className.split(" ").filter(function(x){return x.substr(0,prefix.length)==type+"_"});if(l.length!=1)return undefined;return l[0].split("_")[1].split(" ")[0]}function rehighlight_iaddress(address,prefix){if(prefix===undefined)prefix="addr";$(".autohighlighti").removeClass("autohighlighti");$("."+prefix+"_"+address).addClass("autohighlighti");if(prefix==="addr")r2.cmd("s "+address,function(){})}function rehighlight_id(eid){$(".autohighlighti").removeClass("autohighlighti");$("#"+eid).addClass("autohighlighti")}function get_element_by_address(address){var elements=$(".insaddr.addr_"+address);if(elements.length===1)return elements[0];else return null}Element.prototype.documentOffsetTop=function(){return this.offsetTop+(this.offsetParent?this.offsetParent.documentOffsetTop():0)};function scroll_to_address(address){var elements=$(".insaddr.addr_"+address);var top=elements[0].documentOffsetTop()-window.innerHeight/2;top=Math.max(0,top);$("#main_panel").scrollTo({top:top,left:0})}function has_scrollbar(divnode){if(divnode.scrollHeight>divnode.clientHeight)return true;return false}function on_scroll(event){if(!r2ui._dis.scrolling){var enyo=$("#radareApp").length?true:false;var panel_disas=false;if(!enyo)panel_disas=$("#main_panel").tabs("option","active")===0?true:false;r2ui._dis.scrolling=true;if(r2ui._dis.display=="flat"&&(enyo||panel_disas)){var scroll_offset=null;var top_offset=null;var addr=null;if(enyo){scroll_offset=$("#main_panel").scrollTop();top_offset=$("#gbox").height()-$("#main_panel").height()-10;container_element=$("#center_panel")}else{scroll_offset=$("#center_panel").scrollTop();top_offset=$("#gbox").height()-$("#center_panel").height()-10;container_element=$("#disasm_tab")}if(has_scrollbar($("#center_panel")[0])){if(scroll_offset===0){addr="0x"+r2ui._dis.instructions[0].offset.toString(16);r2.get_disasm_before(addr,50,function(x){r2ui._dis.instructions=x.concat(r2ui._dis.instructions)});container_element.html("
");render_instructions(r2ui._dis.instructions);scroll_to_address(addr);rehighlight_iaddress(r2ui._dis.selected_offset)}else if(scroll_offset>top_offset){addr="0x"+r2ui._dis.instructions[r2ui._dis.instructions.length-1].offset.toString(16);r2.get_disasm_after(addr,100,function(x){r2ui._dis.instructions=r2ui._dis.instructions.slice(0,-1).concat(x)});container_element.html("
");render_instructions(r2ui._dis.instructions);scroll_to_address(addr);rehighlight_iaddress(r2ui._dis.selected_offset)}}}r2ui._dis.scrolling=false;event.preventDefault()}}function scroll_to_element(element){var top=element.documentOffsetTop()-window.innerHeight/2;top=Math.max(0,top);$("#main_panel").scrollTo({top:top,left:0})}function rename(offset,old_value,new_value,space){if(space===undefined)space="functions";if(space=="functions"){r2.cmdj("pdfj @ "+offset,function(x){if(x!==null&&x!==undefined){if("0x"+x.addr.toString(16)===offset){r2.cmd("afn "+new_value+" "+offset,function(){r2.update_flags();return})}}})}if(new_value!==""&&old_value!==""){var cmd="fs "+space+";fr "+old_value+" "+new_value;r2.cmd(cmd,function(){})}else if(new_value===""&&old_value!==""){var cmd="fs "+space+";f-@"+offset;r2.cmd(cmd,function(){})}else if(new_value!==""&&old_value===""){var cmd="fs "+space+";f "+new_value+" @ "+offset;r2.cmd(cmd,function(){})}r2.update_flags()}function address_canonicalize(s){s=s.substr(2);while(s.substr(0,1)=="0")s=s.substr(1);s="0x"+s;s=s.toLowerCase();return s}function contains(a,obj){for(var i=0;i
"+"",style:"margin-right:5px;width:100%;height:100%"},{kind:enyo.Signals,onkeypress:"handleKeyPress"},{name:"menuPopup",kind:"onyx.Popup",floating:true,onHide:"hideContextMenu",onShow:"showContextMenu",style:"padding: 0px;",style:"padding: 10px",components:[{name:"menu",kind:"onyx.MenuDecorator",onSelect:"itemSelected",components:[{content:"Show menu"},{kind:"onyx.Menu",name:"contextMenu",components:[{content:"rename",value:"rename"},{content:"comment",value:"comment"},{content:"switch view",value:"do_switchview"},{content:"random colors",value:"do_randomcolors"}]}]}]}],handlers:{ontap:"handleTap",onhold:"handleHold",ondblclick:"handleDoubleClick",onTransitionFinish:"handleTransitionFinish"},handleTransitionFinish:function(){if(r2ui._dis.display=="graph"&&r2ui._dis.minimap)update_minimap()},itemSelected:function(inSender,inEvent){if(inEvent.originator.content){var itemContent=inEvent.originator.content;if(itemContent=="rename"){this.do_rename(this.selected,inEvent)}else if(itemContent=="comment"){this.do_comment(this.selected_offset)}else if(itemContent=="random colors"){do_randomcolors()}else if(itemContent=="switch view"){this.switch_view()}}this.$.menuPopup.hide()},handleHold:function(inSender,inEvent){this.handleTap(inSender,inEvent);if(typeof inEvent.target.className==="string"&&(inEvent.target.className.indexOf(" addr ")>-1||inEvent.target.className.indexOf(" faddr ")>-1)){ -var address=get_address_from_class(inEvent.target);this.selected=inEvent.target;this.selected_offset=address;rehighlight_iaddress(address);this.showContextMenu(inEvent.pageY,inEvent.pageX)}},showContextMenu:function(inSender,inEvent){if(parseFloat(inSender)==parseInt(inSender)&&!isNaN(inSender)&&parseFloat(inEvent)==parseInt(inEvent)&&!isNaN(inEvent)){this.$.menuPopup.addStyles("top:"+inSender+"px; left:"+inEvent+"px;padding:0px;");this.$.menuPopup.show();this.$.menuPopup.children[0].children[0].hide();this.$.menuPopup.children[0].children[1].show();this.$.menuPopup.render()}},hideContextMenu:function(inSender,inEvent){},handleDoubleClick:function(inSender,inEvent){if(inEvent.target.className.indexOf(" addr ")>-1&&inEvent.target.className.indexOf("insaddr")===-1){this.handleTap(inSender,inEvent);this.goToAddress()}},handleKeyPress:function(inSender,inEvent){var keynum=inEvent.keyCode||inEvent.charCode||inEvent.which||0;var key=String.fromCharCode(keynum);if(inEvent.ctrlKey||inEvent.metaKey)return;if($(inEvent.target).prop("tagName")==="INPUT"||$(inEvent.target).prop("tagName")==="TEXTAREA")return;if(key==="?"){r2ui.mp.show_popup()}if(key===" "){this.switch_view()}if(key==="h"){var addr=r2ui.history_prev();if(addr!==undefined&&addr!==null)r2ui.seek(addr,false)}if(key==="l"){var addr=r2ui.history_next();if(addr!==undefined&&addr!==null)r2ui.seek(addr,false)}if(key==="m"&&r2ui._dis.display=="graph")toggle_minimap();if(key==="j"){var get_more_instructions=false;if($(this.selected).hasClass("insaddr")){var next_instruction;if(this.display=="flat"){next_instruction=$(this.selected).closest(".instructionbox").next().find(".insaddr")[0];if($("#gbox .instructionbox").index($(this.selected).closest(".instructionbox")[0])>$("#gbox .instructionbox").length-10)get_more_instructions=true}if(this.display=="graph"){var next_instruction=$(this.selected).closest(".instruction").next().find(".insaddr")[0];if(next_instruction===undefined||next_instruction===null){next_instruction=$(this.selected).closest(".basicblock").next().find(".insaddr")[0]}}var address=get_address_from_class(next_instruction);if(get_more_instructions){r2ui.seek(address,false)}else{r2ui.history_push(address);this.selected=next_instruction;this.selected_offset=address}rehighlight_iaddress(address);scroll_to_address(address)}}if(key==="k"){var get_more_instructions=false;if($(this.selected).hasClass("insaddr")){var prev_instruction;if(this.display=="flat"){prev_instruction=$(this.selected).closest(".instructionbox").prev().find(".insaddr")[0];if($("#gbox .instructionbox").index($(this.selected).closest(".instructionbox")[0])<10)get_more_instructions=true}if(this.display=="graph"){var prev_instruction=$(this.selected).closest(".instruction").prev().find(".insaddr")[0];if(prev_instruction===undefined||prev_instruction===null){prev_instruction=$(this.selected).closest(".basicblock").prev().find(".insaddr").last()[0]}}var address=get_address_from_class(prev_instruction);if(get_more_instructions){r2ui.seek(address,false)}else{r2ui.history_push(address);this.selected=prev_instruction;this.selected_offset=address}rehighlight_iaddress(address);scroll_to_address(address)}}if(key==="c"){var msg=prompt("Function name?");if(msg!==null){r2.cmd("af "+msg,function(){r2.update_flags();r2ui.seek("$$",false)})}}if(key==="d"){r2.cmd("af-",function(){r2.update_flags();r2ui.seek("$$",false)})}if(key==="g"){var a=prompt("Go to");if(a!==null)r2ui.opendis(a)}if(key===";"){this.do_comment(this.selected_offset)}if(key==="n"){this.do_rename(this.selected,inEvent)}if(key==="R")do_randomcolors();if(keynum===27){if(this.renaming!==null){this.renaming.innerHTML=this.renameOldValue;this.renaming=null}else{var addr=r2ui.history_prev();if(addr!==undefined&&addr!==null)r2ui.seek(addr,false)}}if(keynum===13){this.goToAddress()}},handleTap:function(inSender,inEvent){if(typeof inEvent.target.className==="string"){if(inEvent.target.className.indexOf(" addr ")>-1){var address=get_address_from_class(inEvent.target);rehighlight_iaddress(address);this.selected=inEvent.target;this.selected_offset=address;if($(inEvent.target).hasClass("insaddr")){r2ui.history_push(address);var get_more_instructions=false;var next_instruction;var prev_instruction;var address=get_address_from_class(inEvent.target);if(r2ui._dis.display=="flat"){next_instruction=$(r2ui._dis.selected).closest(".instructionbox").next().find(".insaddr")[0];if($("#gbox .instructionbox").index($(r2ui._dis.selected).closest(".instructionbox")[0])>$("#gbox .instructionbox").length-10){get_more_instructions=true;address=get_address_from_class(next_instruction)}prev_instruction=$(r2ui._dis.selected).closest(".instructionbox").prev().find(".insaddr")[0];if($("#gbox .instructionbox").index($(r2ui._dis.selected).closest(".instructionbox")[0])<10){get_more_instructions=true;address=get_address_from_class(prev_instruction)}}if(r2ui._dis.display=="graph"){var next_instruction=$(r2ui._dis.selected).closest(".instruction").next().find(".insaddr")[0];if(next_instruction===undefined||next_instruction===null){next_instruction=$(r2ui._dis.selected).closest(".basicblock").next().find(".insaddr")[0]}var prev_instruction=$(r2ui._dis.selected).closest(".instruction").prev().find(".insaddr")[0];if(prev_instruction===undefined||prev_instruction===null){prev_instruction=$(r2ui._dis.selected).closest(".basicblock").prev().find(".insaddr").last()[0]}}if(get_more_instructions){r2ui.seek(address,false);rehighlight_iaddress(address);scroll_to_address(address);document.getElementById("canvas").focus()}}}else if($(inEvent.target).hasClass("fvar")||$(inEvent.target).hasClass("farg")){var eid=null;var address=get_address_from_class(inEvent.target,"faddr");r2ui._dis.selected=inEvent.target;r2ui._dis.selected_offset=address;var classes=inEvent.target.className.split(" ");for(var j in classes){var klass=classes[j];if(klass.indexOf("id_")===0)eid=klass.substring(3)}if(eid!==null)rehighlight_iaddress(eid,"id")}}},goToAddress:function(){if(this.renaming===null&&this.selected!==null&&this.selected.className.indexOf(" addr ")-1){var address=get_address_from_class(this.selected);if(this.selected.className.indexOf("ec_dataoffset")>-1){r2ui.openpage(address,2);return}if(address!==undefined&&address!==null){address=address_canonicalize(address);if(this.display==="flat"){r2ui.seek(address,true)}else{r2.cmdj("pdfj",function(x){if(x!==null&&x!==undefined){var ops=x.ops;var found=false;for(var i in ops){if(ops[i].offset===parseInt(address,16)){found=true}}if(found){r2ui.seek_in_graph(address,true)}else{r2ui.seek(address,true)}}})}}}},handleInputTextChange:function(){if(this.renaming!==null&&this.rbox.value.length>0){if($(this.selected).hasClass("insaddr")){var old_value=get_offset_flag(r2ui._dis.selected_offset);var type="offsets";r2.cmdj("afij @ "+r2ui._dis.selected_offset,function(x){if(x!==null&&x!==undefined){if("0x"+x[0].offset.toString(16)===r2ui._dis.selected_offset){type="functions"}}});rename(r2ui._dis.selected_offset,old_value,this.rbox.value,type)}else if($(this.selected).hasClass("faddr")){if($(this.selected).hasClass("fvar"))r2.cmd("afvn "+r2ui._dis.renameOldValue+" "+r2ui._dis.rbox.value+" @ "+r2ui._dis.selected_offset,function(x){});else if($(this.selected).hasClass("farg"))r2.cmd("afan "+r2ui._dis.renameOldValue+" "+r2ui._dis.rbox.value+" @ "+r2ui._dis.selected_offset,function(x){})}else{var old_value=r2ui._dis.renameOldValue;if(old_value.indexOf("0x")===0)old_value="";rename(r2ui._dis.selected_offset,old_value,r2ui._dis.rbox.value,"*")}var instruction;if(this.display=="flat")instruction=$(this.selected).closest(".instructionbox").find(".insaddr")[0];if(this.display=="graph")instruction=$(this.selected).closest(".instruction").find(".insaddr")[0];this.renaming=null;var address=get_address_from_class(instruction);r2ui.seek(address,false);scroll_to_address(address)}},min:0,max:0,block:512,base:"entry0",display:"flat",selected:null,renaming:null,renameOldValue:"",rbox:null,minimap:true,console_history:[],console_history_idx:0,instructions:[],scrolling:false,do_comment:function(address){var c=prompt("Comment");if(c!==null){r2.cmd("CC- "+" @ "+address+";CC "+c+" @ "+address);r2ui.seek(address,false);scroll_to_address(address)}},do_rename:function(element,inEvent){if(this.renaming===null&&this.selected!==null&&this.selected.className.indexOf(" addr ")>-1){var address=get_address_from_class(this.selected);this.renaming=this.selected;this.renameOldValue=this.selected.innerHTML;this.rbox=document.createElement("input");this.rbox.setAttribute("type","text");this.rbox.setAttribute("id","rename");this.rbox.setAttribute("style","border-width: 0;padding: 0;");this.rbox.setAttribute("onChange","handleInputTextChange()");if(this.selected.className.indexOf("insaddr")>-1){var value=get_offset_flag(address);this.rbox.setAttribute("value",value);this.rbox.setSelectionRange(value.length,value.length)}else{this.rbox.setAttribute("value",this.renameOldValue);this.rbox.setSelectionRange(this.renameOldValue.length,this.renameOldValue.length)}this.renaming.innerHTML="";this.renaming.appendChild(this.rbox);setTimeout("r2ui._dis.rbox.focus();",200)}else if(this.renaming===null&&element!==null&&$(element).hasClass("faddr")){var address=get_address_from_class(element,"faddr");this.selected=element;this.selected_offset=address;this.renaming=element;this.renameOldValue=element.innerText;this.rbox=document.createElement("input");this.rbox.setAttribute("type","text");this.rbox.setAttribute("id","rename");this.rbox.setAttribute("style","border-width: 0;padding: 0;");this.rbox.setAttribute("onChange","handleInputTextChange()");this.rbox.setAttribute("value",this.renameOldValue);this.rbox.setSelectionRange(this.renameOldValue.length,this.renameOldValue.length);this.renaming.innerHTML="";this.renaming.appendChild(r2ui._dis.rbox);setTimeout("r2ui._dis.rbox.focus();",200)}},switch_view:function(){if(this.display==="flat")this.display_graph();else this.display_flat();var addr=r2ui.history_last();if(addr!==undefined&&addr!==null)r2ui.seek(addr,false)},display_graph:function(){this.display="graph";$("#main_panel").removeClass("ec_gui_background");$("#main_panel").addClass("ec_gui_alt_background")},display_flat:function(){this.display="flat";$("#main_panel.ui-layout-pane").removeClass("ec_gui_alt_background");$("#main_panel.ui-layout-pane").addClass("ec_gui_background")},seek:function(addr,scroll){var error=false;if(this.display==="graph"){this.$.minimap.show();$("#center_panel").html("");r2.cmd("agj "+addr,function(x){$("#center_panel").html("
");if(render_graph(x)===false)error=true})}if(error)this.display_flat();if(this.display==="flat"){$("#main_panel").scroll(on_scroll);this.$.minimap.hide();this.min=this.max=0;r2.get_disasm_before_after(addr,-100,100,function(x){$("#center_panel").html("
");r2ui._dis.instructions=x;render_instructions(r2ui._dis.instructions)})}this.selected=get_element_by_address(addr);this.selected_offset=addr;rehighlight_iaddress(addr);if(scroll===undefined||scroll===true){scroll_to_address(addr)}},create:function(){this.inherited(arguments);this.base="entry0";r2ui._dis=this;r2.update_flags();r2.analAll();r2.load_mmap();r2ui.load_colors()},resizeHandler:function(){this.inherited(arguments);if(r2ui._dis.display=="graph"&&r2ui._dis.minimap)update_minimap()},rendered:function(){this.inherited(arguments);myLayout=$("#radareApp_mp_panels_pageDisassembler_panel").layout({south__size:200});this.display_flat();r2ui.seek(this.base,true);var console_history=this.console_history;var console_history_idx=this.console_history_idx;$("#command").keypress(function(inEvent){var key=inEvent.keyCode||inEvent.charCode||inEvent.which||0;if(key===13){var cmd=inEvent.target.value.trim();var reloadUI=cmd=="";console_history[console_history.length]=cmd;console_history_idx+=1;if(cmd!=""){r2.cmd(inColor(cmd),function(x){var old_value=$("#cmd_output").text();$("#cmd_output").html(old_value+"\n> "+cmd+"\n"+x);$("#cmd_output").scrollTo($("#cmd_output")[0].scrollHeight)});if(cmd.indexOf("s ")===0){r2ui.history_push(r2ui._dis.selected_offset)}}inEvent.target.value="";if(reloadUI){r2.load_settings();r2ui.load_colors();r2ui.seek("$$",false);scroll_to_element(r2ui._dis.selected)}}});$("#command").keydown(function(inEvent){var key=inEvent.keyCode||inEvent.charCode||inEvent.which||0;if(key===40){console_history_idx++;if(console_history_idx>console_history.length-1)console_history_idx=console_history.length;inEvent.target.value=console_history[console_history_idx]===undefined?"":console_history[console_history_idx]}if(key===38){console_history_idx--;if(console_history_idx<0)console_history_idx=0;inEvent.target.value=console_history[console_history_idx]===undefined?"":console_history[console_history_idx]}})}});function docss(x){return""+x+""}enyo.kind({name:"DisassemblerOld",kind:"Scroller",tag:"div",style:"margin:0px;background-color:#c0c0c0",data:null,components:[{tag:"div",allowHtml:true,classes:"colorbar",name:"colorbar"},{tag:"br"},{tag:"div",content:"^",classes:"moreless",ontap:"less"},{tag:"pre",allowHtml:true,name:"text",content:"..",style:"margin-left:5px"},{tag:"div",content:"v",classes:"moreless",ontap:"more"}],min:0,max:0,block:512,base:"entry0",less:function(){var self=this;var text=this.$.text;this.min+=this.block;r2.get_disasm(this.base+"-"+this.min,this.block,function(x){x=docss(r2.filter_asm(x,"pd"));var oldy=r2ui._dis.getScrollBounds().height;text.setContent("
"+x+text.getContent()+"
");var newy=r2ui._dis.getScrollBounds().height;r2ui._dis.scrollTo(0,newy-oldy)})},more:function(){var text=this.$.text;this.max+=this.block;r2.get_disasm(this.base+"+"+this.max,this.block,function(x){x=docss(r2.filter_asm(x,"pd"));text.setContent("
"+text.getContent()+x+"
")})},seek:function(addr){var text=this.$.text;this.base=addr;this.min=this.max=0;r2.get_disasm(addr,this.block,function(x){x=docss(r2.filter_asm(x,"pd"));text.setContent("
"+x+"
")});this.scrollTo(0,0)},create:function(){this.inherited(arguments);var text=this.$.text;r2.cmd("e asm.lineswidth = 20",function(x){});this.seek("entry0");r2ui._dis=this;r2ui.history_push("entry0")},colorbar_create:function(){var self=this;r2.cmd("pvj 24",function(x){try{var y=JSON.parse(x)}catch(e){alert(e);return}console.log(y);var c=""+"";var colors={flags:"#c0c0c0",comments:"yellow",functions:"#5050f0",strings:"orange"};var off="";var WIDTH="100%";var HEIGHT=16;for(var i=0;i";var count=0;for(var k in colors)if(block[k])count++;count++;if(count==1)break;var h=HEIGHT/count;for(var k in colors){var color=colors[k];if(block[k])r+=""}r+="
____
";off="0x"+block.offset.toString(16)}else{off="0x"+(y.from+y.blocksize*i).toString(16)}c+=""+r+""}c+="";self.$.colorbar.setContent(c)})}});enyo.kind({name:"Graph",kind:"Scroller",style:"background-color:#c0c0c0",components:[{tag:"h2",content:"Open graph",style:"margin-left:10px;"},{kind:"Group",classes:"enyo-border-box group",defaultKind:"onyx.Button",components:[{content:"Basic blocks",classes:"onyx-dark menu-button",ontap:"openGraphBB"},{content:"Callgraph",classes:"onyx-dark menu-button",ontap:"openGraphCG"}]}],openGraphBB:function(){window.open("/graph/","_self")},openGraphCG:function(){window.open("/d3/","_self")}});function docss(x){return""+x+""}enyo.kind({name:"Hexdump",kind:"Scroller",tag:"div",style:"margin:0px;background-color:#c0c0c0;color:black",data:null,components:[{tag:"div",allowHtml:true,classes:"colorbar",name:"colorbar"},{tag:"div",content:"^",classes:"moreless",ontap:"less"},{tag:"pre",allowHtml:true,name:"text",content:"..",style:"margin-left:5px;color:black"},{tag:"div",content:"v",classes:"moreless",ontap:"more"}],min:0,max:0,block:1024,base:"entry0",less:function(){var self=this;var text=this.$.text;this.min+=this.block;r2.get_hexdump(this.base+"-"+this.min,this.block,function(x){x=css(r2.filter_asm(x,"px"));var oldy=r2ui._hex.getScrollBounds().height;text.setContent("
"+x+text.getContent()+"
");var newy=r2ui._hex.getScrollBounds().height;r2ui._hex.scrollTo(0,newy-oldy)})},more:function(){var text=this.$.text;this.max+=this.block;r2.get_hexdump(this.base+"+"+this.max,this.block,function(x){x=docss(r2.filter_asm(x,"px"));text.setContent("
"+text.getContent()+x+"
")})},seek:function(addr){var text=this.$.text;this.base=addr;this.min=this.max=0;r2.get_hexdump(addr,this.block,function(x){x=docss(r2.filter_asm(x,"px"));text.setContent("
"+x+"
")});this.colorbar_create()},create:function(){this.inherited(arguments);var text=this.$.text;this.seek("entry0");r2ui._hex=this;this.colorbar_create()},setupItem:function(inSender,inIndex){this.$.msg.setContent(this.data[inIndex.index]);return true},colorbar_create:function(){var self=this;r2.cmd("pvj",function(x){try{var y=JSON.parse(x)}catch(e){alert(e);return}var c="";var colors={flags:"#c0c0c0",comments:"yellow",functions:"#5050f0",strings:"orange"};var off="";var WIDTH=10;var HEIGHT=30;for(var i=0;i ";if(block.offset){var r="
";var count=0;for(var k in colors){if(block[k])count++}count++;if(count==1)break;var h=HEIGHT/count;for(var k in colors){var color=colors[k];if(block[k])r+=""}r+="
 
";off="0x"+block.offset.toString(16)}else{off="0x"+(y.from+y.blocksize*i).toString(16)}c+=""+r+""}c+="";self.$.colorbar.setContent(c)})}});if(function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e)));return g}function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?"border":"content"),d,f)+"px"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb||fb("':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='
';var monthHtml="";if(secondary||!changeMonth)monthHtml+=''+monthNames[drawMonth]+"";else{var inMinYear=minDate&&minDate.getFullYear()==drawYear;var inMaxYear=maxDate&&maxDate.getFullYear()==drawYear;monthHtml+='"}if(!showMonthAfterYear)html+=monthHtml+(secondary||!(changeMonth&&changeYear)?" ":"");if(!inst.yearshtml){inst.yearshtml="";if(secondary||!changeYear)html+=''+drawYear+"";else{var years=this._get(inst,"yearRange").split(":");var thisYear=(new Date).getFullYear();var determineYear=function(value){var year=value.match(/c[+-].*/)?drawYear+parseInt(value.substring(1),10):value.match(/[+-].*/)?thisYear+parseInt(value,10):parseInt(value,10);return isNaN(year)?thisYear:year};var year=determineYear(years[0]);var endYear=Math.max(year,determineYear(years[1]||""));year=minDate?Math.max(year,minDate.getFullYear()):year;endYear=maxDate?Math.min(endYear,maxDate.getFullYear()):endYear;inst.yearshtml+='";html+=inst.yearshtml;inst.yearshtml=null}}html+=this._get(inst,"yearSuffix");if(showMonthAfterYear)html+=(secondary||!(changeMonth&&changeYear)?" ":"")+monthHtml;html+="
";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y")this._notifyChange(inst)},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");var newDate=minDate&&datemaxDate?maxDate:newDate;return newDate},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange)onChange.apply(inst.input?inst.input[0]:null,[inst.selectedYear,inst.selectedMonth+1,inst])},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return numMonths==null?[1,1]:typeof numMonths=="number"?[1,numMonths]:numMonths},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null)},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));if(offset<0)date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()));return this._isInRange(inst,date)},_isInRange:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return(!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime())},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=typeof shortYearCutoff!="string"?shortYearCutoff:(new Date).getFullYear()%100+parseInt(shortYearCutoff,10);return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=day?typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day)):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function bindHover(dpDiv){var selector="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return dpDiv.delegate(selector,"mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1)$(this).removeClass("ui-datepicker-prev-hover");if(this.className.indexOf("ui-datepicker-next")!=-1)$(this).removeClass("ui-datepicker-next-hover")}).delegate(selector,"mouseover",function(){if(!$.datepicker._isDisabledDatepicker(instActive.inline?dpDiv.parent()[0]:instActive.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1)$(this).addClass("ui-datepicker-prev-hover");if(this.className.indexOf("ui-datepicker-next")!=-1)$(this).addClass("ui-datepicker-next-hover")}})}function extendRemove(target,props){$.extend(target,props);for(var name in props)if(props[name]==null||props[name]==undefined)target[name]=props[name];return target}$.fn.datepicker=function(options){if(!this.length){return this}if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate"||options=="widget"))return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string")return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker;$.datepicker.initialized=false;$.datepicker.uuid=(new Date).getTime();$.datepicker.version="1.9.2";window["DP_jQuery_"+dpuuid]=$})(jQuery);(function($,undefined){var uiDialogClasses="ui-dialog ui-widget ui-widget-content ui-corner-all ",sizeRelatedOptions={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};$.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset)}}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title");if(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 that=this,options=this.options,title=options.title||" ",uiDialog,uiDialogTitlebar,uiDialogTitlebarClose,uiDialogTitle,uiDialogButtonPane;uiDialog=(this.uiDialog=$("
")).addClass(uiDialogClasses+options.dialogClass).css({display:"none",outline:0,zIndex:options.zIndex}).attr("tabIndex",-1).keydown(function(event){if(options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){that.close(event);event.preventDefault()}}).mousedown(function(event){that.moveToTop(false,event)}).appendTo("body");this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog);uiDialogTitlebar=(this.uiDialogTitlebar=$("
")).addClass("ui-dialog-titlebar ui-widget-header "+"ui-corner-all ui-helper-clearfix").bind("mousedown",function(){uiDialog.focus()}).prependTo(uiDialog);uiDialogTitlebarClose=$("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(event){event.preventDefault();that.close(event)}).appendTo(uiDialogTitlebar);(this.uiDialogTitlebarCloseText=$("")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose);uiDialogTitle=$("").uniqueId().addClass("ui-dialog-title").html(title).prependTo(uiDialogTitlebar);uiDialogButtonPane=(this.uiDialogButtonPane=$("
")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");(this.uiButtonSet=$("
")).addClass("ui-dialog-buttonset").appendTo(uiDialogButtonPane);uiDialog.attr({role:"dialog","aria-labelledby":uiDialogTitle.attr("id")});uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();this._hoverable(uiDialogTitlebarClose);this._focusable(uiDialogTitlebarClose);if(options.draggable&&$.fn.draggable){this._makeDraggable()}if(options.resizable&&$.fn.resizable){this._makeResizable()}this._createButtons(options.buttons);this._isOpen=false;if($.fn.bgiframe){uiDialog.bgiframe()}this._on(uiDialog,{keydown:function(event){if(!options.modal||event.keyCode!==$.ui.keyCode.TAB){return}var tabbables=$(":tabbable",uiDialog),first=tabbables.filter(":first"),last=tabbables.filter(":last");if(event.target===last[0]&&!event.shiftKey){first.focus(1);return false}else if(event.target===first[0]&&event.shiftKey){last.focus(1);return false}}})},_init:function(){if(this.options.autoOpen){this.open()}},_destroy:function(){var next,oldPosition=this.oldPosition;if(this.overlay){this.overlay.destroy()}this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();if(this.originalTitle){this.element.attr("title",this.originalTitle)}next=oldPosition.parent.children().eq(oldPosition.index);if(next.length&&next[0]!==this.element[0]){next.before(this.element)}else{oldPosition.parent.append(this.element)}},widget:function(){return this.uiDialog},close:function(event){var that=this,maxZ,thisZ;if(!this._isOpen){return}if(false===this._trigger("beforeClose",event)){return}this._isOpen=false;if(this.overlay){this.overlay.destroy()}if(this.options.hide){this._hide(this.uiDialog,this.options.hide,function(){that._trigger("close",event)})}else{this.uiDialog.hide();this._trigger("close",event)}$.ui.dialog.overlay.resize();if(this.options.modal){maxZ=0;$(".ui-dialog").each(function(){if(this!==that.uiDialog[0]){thisZ=$(this).css("z-index");if(!isNaN(thisZ)){maxZ=Math.max(maxZ,thisZ)}}});$.ui.dialog.maxZ=maxZ}return this},isOpen:function(){return this._isOpen},moveToTop:function(force,event){var options=this.options,saveScroll;if(options.modal&&!force||!options.stack&&!options.modal){return this._trigger("focus",event)}if(options.zIndex>$.ui.dialog.maxZ){$.ui.dialog.maxZ=options.zIndex}if(this.overlay){$.ui.dialog.maxZ+=1;$.ui.dialog.overlay.maxZ=$.ui.dialog.maxZ;this.overlay.$el.css("z-index",$.ui.dialog.overlay.maxZ)}saveScroll={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};$.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",$.ui.dialog.maxZ);this.element.attr(saveScroll);this._trigger("focus",event);return this},open:function(){if(this._isOpen){return}var hasFocus,options=this.options,uiDialog=this.uiDialog;this._size();this._position(options.position);uiDialog.show(options.show);this.overlay=options.modal?new $.ui.dialog.overlay(this):null;this.moveToTop(true);hasFocus=this.element.find(":tabbable");if(!hasFocus.length){hasFocus=this.uiDialogButtonPane.find(":tabbable");if(!hasFocus.length){hasFocus=uiDialog}}hasFocus.eq(0).focus();this._isOpen=true;this._trigger("open");return this},_createButtons:function(buttons){var that=this,hasButtons=false;this.uiDialogButtonPane.remove();this.uiButtonSet.empty();if(typeof buttons==="object"&&buttons!==null){$.each(buttons,function(){return!(hasButtons=true)})}if(hasButtons){$.each(buttons,function(name,props){var button,click;props=$.isFunction(props)?{click:props,text:name}:props;props=$.extend({type:"button"},props);click=props.click;props.click=function(){click.apply(that.element[0],arguments)};button=$("",props).appendTo(that.uiButtonSet);if($.fn.button){button.button()}});this.uiDialog.addClass("ui-dialog-buttons");this.uiDialogButtonPane.appendTo(this.uiDialog)}else{this.uiDialog.removeClass("ui-dialog-buttons")}},_makeDraggable:function(){var that=this,options=this.options;function filteredUi(ui){return{position:ui.position,offset:ui.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){$(this).addClass("ui-dialog-dragging");that._trigger("dragStart",event,filteredUi(ui))},drag:function(event,ui){that._trigger("drag",event,filteredUi(ui))},stop:function(event,ui){options.position=[ui.position.left-that.document.scrollLeft(),ui.position.top-that.document.scrollTop()];$(this).removeClass("ui-dialog-dragging");that._trigger("dragStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}})},_makeResizable:function(handles){handles=handles===undefined?this.options.resizable:handles;var that=this,options=this.options,position=this.uiDialog.css("position"),resizeHandles=typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw";function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:this._minHeight(),handles:resizeHandles,start:function(event,ui){$(this).addClass("ui-dialog-resizing");that._trigger("resizeStart",event,filteredUi(ui))},resize:function(event,ui){that._trigger("resize",event,filteredUi(ui))},stop:function(event,ui){$(this).removeClass("ui-dialog-resizing");options.height=$(this).height();options.width=$(this).width();that._trigger("resizeStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}}).css("position",position).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var options=this.options;if(options.height==="auto"){return options.minHeight}else{return Math.min(options.minHeight,options.height)}},_position:function(position){var myAt=[],offset=[0,0],isVisible;if(position){if(typeof position==="string"||typeof position==="object"&&"0"in position){myAt=position.split?position.split(" "):[position[0],position[1]];if(myAt.length===1){myAt[1]=myAt[0]}$.each(["left","top"],function(i,offsetPosition){if(+myAt[i]===myAt[i]){offset[i]=myAt[i];myAt[i]=offsetPosition}});position={my:myAt[0]+(offset[0]<0?offset[0]:"+"+offset[0])+" "+myAt[1]+(offset[1]<0?offset[1]:"+"+offset[1]),at:myAt.join(" ")}}position=$.extend({},$.ui.dialog.prototype.options.position,position)}else{position=$.ui.dialog.prototype.options.position}isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show()}this.uiDialog.position(position);if(!isVisible){this.uiDialog.hide()}},_setOptions:function(options){var that=this,resizableOptions={},resize=false;$.each(options,function(key,value){that._setOption(key,value);if(key in sizeRelatedOptions){resize=true}if(key in resizableRelatedOptions){resizableOptions[key]=value}});if(resize){this._size()}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option",resizableOptions)}},_setOption:function(key,value){var isDraggable,isResizable,uiDialog=this.uiDialog;switch(key){case"buttons":this._createButtons(value);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+value);break;case"dialogClass":uiDialog.removeClass(this.options.dialogClass).addClass(uiDialogClasses+value);break;case"disabled":if(value){uiDialog.addClass("ui-dialog-disabled")}else{uiDialog.removeClass("ui-dialog-disabled")}break;case"draggable":isDraggable=uiDialog.is(":data(draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy")}if(!isDraggable&&value){this._makeDraggable()}break;case"position":this._position(value);break;case"resizable":isResizable=uiDialog.is(":data(resizable)");if(isResizable&&!value){uiDialog.resizable("destroy")}if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value)}if(!isResizable&&value!==false){this._makeResizable(value)}break;case"title":$(".ui-dialog-title",this.uiDialogTitlebar).html(""+(value||" "));break}this._super(key,value)},_size:function(){var nonContentHeight,minContentHeight,autoHeight,options=this.options,isVisible=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(options.minWidth>options.width){options.width=options.minWidth}nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).outerHeight();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);if(options.height==="auto"){if($.support.minHeight){this.element.css({minHeight:minContentHeight,height:"auto"})}else{this.uiDialog.show();autoHeight=this.element.css("height","auto").height();if(!isVisible){this.uiDialog.hide()}this.element.height(Math.max(autoHeight,minContentHeight))}}else{this.element.height(Math.max(options.height-nonContentHeight,0))}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight())}}});$.extend($.ui.dialog,{uuid:0,maxZ:0,getTitleId:function($el){var id=$el.attr("id");if(!id){this.uuid+=1;id=this.uuid}return"ui-dialog-title-"+id},overlay:function(dialog){this.$el=$.ui.dialog.overlay.create(dialog)}});$.extend($.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:$.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(event){return event+".dialog-overlay"}).join(" "),create:function(dialog){if(this.instances.length===0){setTimeout(function(){if($.ui.dialog.overlay.instances.length){$(document).bind($.ui.dialog.overlay.events,function(event){if($(event.target).zIndex()<$.ui.dialog.overlay.maxZ){return false}})}},1);$(window).bind("resize.dialog-overlay",$.ui.dialog.overlay.resize)}var $el=this.oldInstances.pop()||$("
").addClass("ui-widget-overlay");$(document).bind("keydown.dialog-overlay",function(event){var instances=$.ui.dialog.overlay.instances;if(instances.length!==0&&instances[instances.length-1]===$el&&dialog.options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){dialog.close(event);event.preventDefault()}});$el.appendTo(document.body).css({width:this.width(),height:this.height()});if($.fn.bgiframe){$el.bgiframe()}this.instances.push($el);return $el},destroy:function($el){var indexOf=$.inArray($el,this.instances),maxZ=0;if(indexOf!==-1){this.oldInstances.push(this.instances.splice(indexOf,1)[0])}if(this.instances.length===0){$([document,window]).unbind(".dialog-overlay")}$el.height(0).width(0).remove();$.each(this.instances,function(){maxZ=Math.max(maxZ,this.css("z-index"))});this.maxZ=maxZ},height:function(){var scrollHeight,offsetHeight;if($.ui.ie){scrollHeight=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);offsetHeight=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(scrollHeight
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css($(this).offset()).appendTo("body")});return true},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this.helper.addClass("ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager)$.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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);if(o.containment)this._setContainment();if(this._trigger("start",event)===false){this._clear();return false}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(this,event);this._mouseDrag(event,true);if($.ui.ddmanager)$.ui.ddmanager.dragStart(this,event);return true},_mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false}this.position=ui.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";if($.ui.ddmanager)$.ui.ddmanager.drag(this,event);return false},_mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour)dropped=$.ui.ddmanager.drop(this,event);if(this.dropped){dropped=this.dropped;this.dropped=false}var element=this.element[0],elementInDom=false;while(element&&(element=element.parentNode)){if(element==document){elementInDom=true}}if(!elementInDom&&this.options.helper==="original")return false;if(this.options.revert=="invalid"&&!dropped||this.options.revert=="valid"&&dropped||this.options.revert===true||$.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped)){var that=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(that._trigger("stop",event)!==false){that._clear()}})}else{if(this._trigger("stop",event)!==false){this._clear()}}return false},_mouseUp:function(event){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});if($.ui.ddmanager)$.ui.ddmanager.dragStop(this,event);return $.ui.mouse.prototype._mouseUp.call(this,event)},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(event){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==event.target)handle=true});return handle},_createHelper:function(event){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):o.helper=="clone"?this.element.clone().removeAttr("id"):this.element;if(!helper.parents("body").length)helper.appendTo(o.appendTo=="parent"?this.element[0].parentNode:o.appendTo);if(helper[0]!=this.element[0]&&!/(fixed|absolute)/.test(helper.css("position")))helper.css("position","absolute");return helper},_adjustOffsetFromHelper:function(obj){if(typeof obj=="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0 -}}if("left"in obj){this.offset.click.left=obj.left+this.margins.left}if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top"in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&$.ui.ie)po={top:0,left:0};return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var p=this.element.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,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 o=this.options;if(o.containment=="parent")o.containment=this.helper[0].parentNode;if(o.containment=="document"||o.containment=="window")this.containment=[o.containment=="document"?0:$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,o.containment=="document"?0:$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(o.containment=="document"?0:$(window).scrollLeft())+$(o.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(o.containment=="document"?0:$(window).scrollTop())+($(o.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(o.containment)&&o.containment.constructor!=Array){var c=$(o.containment);var ce=c[0];if(!ce)return;var co=c.offset();var over=$(ce).css("overflow")!="hidden";this.containment=[(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0),(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0),(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=c}else if(o.containment.constructor==Array){this.containment=o.containment}},_convertPositionTo:function(d,pos){if(!pos)pos=this.position;var mod=d=="absolute"?1:-1;var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);return{top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():scrollIsRootNode?0:scroll.scrollTop())*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod}},_generatePosition:function(event){var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);var pageX=event.pageX;var pageY=event.pageY;if(this.originalPosition){var containment;if(this.containment){if(this.relative_container){var co=this.relative_container.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top]}else{containment=this.containment}if(event.pageX-this.offset.click.leftcontainment[2])pageX=containment[2]+this.offset.click.left;if(event.pageY-this.offset.click.top>containment[3])pageY=containment[3]+this.offset.click.top}if(o.grid){var top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?!(top-this.offset.click.topcontainment[3])?top:!(top-this.offset.click.topcontainment[2])?left:!(left-this.offset.click.left=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!(l-d=t&&y1<=b||y2>=t&&y2<=b||y1b)&&(x1>=l&&x1<=r||x2>=l&&x2<=r||x1r);break;default:return false;break}};$.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,event){var m=$.ui.ddmanager.droppables[t.options.scope]||[];var type=event?event.type:null;var list=(t.currentItem||t.element).find(":data(droppable)").andSelf();droppablesLoop:for(var i=0;i")[0],colors,each=jQuery.each;supportElem.style.cssText="background-color:rgba(1,1,1,.5)";support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1;each(spaces,function(spaceName,space){space.cache="_"+spaceName;space.props.alpha={idx:3,type:"percent",def:1}});function clamp(value,prop,allowEmpty){var type=propTypes[prop.type]||{};if(value==null){return allowEmpty||!prop.def?null:prop.def}value=type.floor?~~value:parseFloat(value);if(isNaN(value)){return prop.def}if(type.mod){return(value+type.mod)%type.mod}return 0>value?0:type.maxtype.mod/2){startValue+=type.mod}else if(startValue-endValue>type.mod/2){startValue-=type.mod}}result[index]=clamp((endValue-startValue)*distance+startValue,prop)}});return this[spaceName](result)},blend:function(opaque){if(this._rgba[3]===1){return this}var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v}))},toRgbaString:function(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){return v==null?i>2?1:0:v});if(rgba[3]===1){rgba.pop();prefix="rgb("}return prefix+rgba.join()+")"},toHslaString:function(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){if(v==null){v=i>2?1:0}if(i&&i<3){v=Math.round(v*100)+"%"}return v});if(hsla[3]===1){hsla.pop();prefix="hsl("}return prefix+hsla.join()+")"},toHexString:function(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();if(includeAlpha){rgba.push(~~(alpha*255))}return"#"+jQuery.map(rgba,function(v){v=(v||0).toString(16);return v.length===1?"0"+v:v}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}});color.fn.parse.prototype=color.fn;function hue2rgb(p,q,h){h=(h+1)%1;if(h*6<1){return p+(q-p)*h*6}if(h*2<1){return q}if(h*3<2){return p+(q-p)*(2/3-h)*6}return p}spaces.hsla.to=function(rgba){if(rgba[0]==null||rgba[1]==null||rgba[2]==null){return[null,null,null,rgba[3]]}var r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=add*.5,h,s;if(min===max){h=0}else if(r===max){h=60*(g-b)/diff+360}else if(g===max){h=60*(b-r)/diff+120}else{h=60*(r-g)/diff+240}if(l===0||l===1){s=l}else if(l<=.5){s=diff/add}else{s=diff/(2-add)}return[Math.round(h)%360,s,l,a==null?1:a]};spaces.hsla.from=function(hsla){if(hsla[0]==null||hsla[1]==null||hsla[2]==null){return[null,null,null,hsla[3]]}var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=l<=.5?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(hue2rgb(p,q,h+1/3)*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-1/3)*255),a]};each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;color.fn[spaceName]=function(value){if(to&&!this[cache]){this[cache]=to(this._rgba)}if(value===undefined){return this[cache].slice()}var ret,type=jQuery.type(value),arr=type==="array"||type==="object"?value:arguments,local=this[cache].slice();each(props,function(key,prop){var val=arr[type==="object"?key:prop.idx];if(val==null){val=local[prop.idx]}local[prop.idx]=clamp(val,prop)});if(from){ret=color(from(local));ret[cache]=local;return ret}else{return color(local)}};each(props,function(key,prop){if(color.fn[key]){return}color.fn[key]=function(value){var vtype=jQuery.type(value),fn=key==="alpha"?this._hsla?"hsla":"rgba":spaceName,local=this[fn](),cur=local[prop.idx],match;if(vtype==="undefined"){return cur}if(vtype==="function"){value=value.call(this,cur);vtype=jQuery.type(value)}if(value==null&&prop.empty){return this}if(vtype==="string"){match=rplusequals.exec(value);if(match){value=cur+parseFloat(match[2])*(match[1]==="+"?1:-1)}}local[prop.idx]=value;return this[fn](local)}})});each(stepHooks,function(i,hook){jQuery.cssHooks[hook]={set:function(elem,value){var parsed,curElem,backgroundColor="";if(jQuery.type(value)!=="string"||(parsed=stringParse(value))){value=color(parsed||value);if(!support.rgba&&value._rgba[3]!==1){curElem=hook==="backgroundColor"?elem.parentNode:elem;while((backgroundColor===""||backgroundColor==="transparent")&&curElem&&curElem.style){try{backgroundColor=jQuery.css(curElem,"backgroundColor");curElem=curElem.parentNode}catch(e){}}value=value.blend(backgroundColor&&backgroundColor!=="transparent"?backgroundColor:"_default")}value=value.toRgbaString()}try{elem.style[hook]=value}catch(error){}}};jQuery.fx.step[hook]=function(fx){if(!fx.colorInit){fx.start=color(fx.elem,hook);fx.end=color(fx.end);fx.colorInit=true}jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos))}});jQuery.cssHooks.borderColor={expand:function(value){var expanded={};each(["Top","Right","Bottom","Left"],function(i,part){expanded["border"+part+"Color"]=value});return expanded}};colors=jQuery.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(){var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){jQuery.style(fx.elem,prop,fx.end);fx.setAttr=true}}});function getElementStyles(){var style=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,newStyle={},key,len;if(style&&style.length&&style[0]&&style[style[0]]){len=style.length;while(len--){key=style[len];if(typeof style[key]==="string"){newStyle[$.camelCase(key)]=style[key]}}}else{for(key in style){if(typeof style[key]==="string"){newStyle[key]=style[key]}}}return newStyle}function styleDifference(oldStyle,newStyle){var diff={},name,value;for(name in newStyle){value=newStyle[name];if(oldStyle[name]!==value){if(!shorthandStyles[name]){if($.fx.step[name]||!isNaN(parseFloat(value))){diff[name]=value}}}}return diff}$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var animated=$(this),baseClass=animated.attr("class")||"",applyClassChange,allAnimations=o.children?animated.find("*").andSelf():animated;allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles.call(this)}});applyClassChange=function(){$.each(classAnimationActions,function(i,action){if(value[action]){animated[action+"Class"](value[action])}})};applyClassChange();allAnimations=allAnimations.map(function(){this.end=getElementStyles.call(this.el[0]);this.diff=styleDifference(this.start,this.end);return this});animated.attr("class",baseClass);allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=jQuery.extend({},o,{queue:false,complete:function(){dfd.resolve(styleInfo)}});this.el.animate(this.diff,opts);return dfd.promise()});$.when.apply($,allAnimations.get()).done(function(){applyClassChange();$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"")})});o.complete.call(animated[0])})})};$.fn.extend({_addClass:$.fn.addClass,addClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):this._addClass(classNames)},_removeClass:$.fn.removeClass,removeClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):this._removeClass(classNames)},_toggleClass:$.fn.toggleClass,toggleClass:function(classNames,force,speed,easing,callback){if(typeof force==="boolean"||force===undefined){if(!speed){return this._toggleClass(classNames,force)}else{return $.effects.animateClass.call(this,force?{add:classNames}:{remove:classNames},speed,easing,callback)}}else{return $.effects.animateClass.call(this,{toggle:classNames},force,speed,easing)}},switchClass:function(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback)}})})();(function(){$.extend($.effects,{version:"1.9.2",save:function(element,set){for(var i=0;i
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;try{active.id}catch(e){active=document.body}element.wrap(wrapper);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}wrapper=element.parent();if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"})}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto"}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}element.css(size);return wrapper.css(props).show()},removeWrapper:function(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}}return element},setTransition:function(element,list,factor,value){value=value||{};$.each(list,function(i,x){var unit=element.cssUnit(x);if(unit[0]>0){value[x]=unit[0]*factor+unit[1]}});return value}});function _normalizeArguments(effect,options,speed,callback){if($.isPlainObject(effect)){options=effect;effect=effect.effect}effect={effect:effect};if(options==null){options={}}if($.isFunction(options)){callback=options;speed=null;options={}}if(typeof options==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={}}if($.isFunction(speed)){callback=speed;speed=null}if(options){$.extend(effect,options)}speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect}function standardSpeed(speed){if(!speed||typeof speed==="number"||$.fx.speeds[speed]){return true}if(typeof speed==="string"&&!$.effects.effect[speed]){if(backCompat&&$.effects[speed]){return false}return true}return false}$.fn.extend({effect:function(){var args=_normalizeArguments.apply(this,arguments),mode=args.mode,queue=args.queue,effectMethod=$.effects.effect[args.effect],oldEffectMethod=!effectMethod&&backCompat&&$.effects[args.effect];if($.fx.off||!(effectMethod||oldEffectMethod)){if(mode){return this[mode](args.duration,args.complete)}else{return this.each(function(){if(args.complete){args.complete.call(this)}})}}function run(next){var elem=$(this),complete=args.complete,mode=args.mode;function done(){if($.isFunction(complete)){complete.call(elem[0])}if($.isFunction(next)){next()}}if(elem.is(":hidden")?mode==="hide":mode==="show"){done()}else{effectMethod.call(elem[0],args,done)}}if(effectMethod){return queue===false?this.each(run):this.queue(queue||"fx",run)}else{return oldEffectMethod.call(this,{options:args,duration:args.duration,callback:args.complete,mode:args.mode})}},_show:$.fn.show,show:function(speed){if(standardSpeed(speed)){return this._show.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="show";return this.effect.call(this,args)}},_hide:$.fn.hide,hide:function(speed){if(standardSpeed(speed)){return this._hide.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="hide";return this.effect.call(this,args)}},__toggle:$.fn.toggle,toggle:function(speed){if(standardSpeed(speed)||typeof speed==="boolean"||$.isFunction(speed)){return this.__toggle.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="toggle";return this.effect.call(this,args)}},cssUnit:function(key){var style=this.css(key),val=[];$.each(["em","px","%","pt"],function(i,unit){if(style.indexOf(unit)>0){val=[parseFloat(style),unit]}});return val}})})();(function(){var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2)}});$.extend(baseEasings,{Sine:function(p){return 1-Math.cos(p*Math.PI/2)},Circ:function(p){return 1-Math.sqrt(1-p*p)},Elastic:function(p){return p===0||p===1?p:-Math.pow(2,8*(p-1))*Math.sin(((p-1)*80-7.5)*Math.PI/15)},Back:function(p){return p*p*(3*p-2)},Bounce:function(p){var pow2,bounce=4;while(p<((pow2=Math.pow(2,--bounce))-1)/11){}return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((pow2*3-2)/22-p,2)}});$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn;$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p)};$.easing["easeInOut"+name]=function(p){return p<.5?easeIn(p*2)/2:1-easeIn(p*-2+2)/2}})})()}(jQuery);(function($,undefined){var rvertical=/up|down|vertical/,rpositivemotion=/up|left|vertical|horizontal/;$.effects.effect.blind=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),direction=o.direction||"up",vertical=rvertical.test(direction),ref=vertical?"height":"width",ref2=vertical?"top":"left",motion=rpositivemotion.test(direction),animation={},show=mode==="show",wrapper,distance,margin;if(el.parent().is(".ui-effects-wrapper")){$.effects.save(el.parent(),props)}else{$.effects.save(el,props)}el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=wrapper[ref]();margin=parseFloat(wrapper.css(ref2))||0;animation[ref]=show?distance:0;if(!motion){el.css(vertical?"bottom":"right",0).css(vertical?"top":"left","auto").css({position:"absolute"});animation[ref2]=show?margin:distance+margin}if(show){wrapper.css(ref,0);if(!motion){wrapper.css(ref2,margin+distance)}}wrapper.animate(animation,{duration:o.duration,easing:o.easing,queue:false,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.bounce=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),hide=mode==="hide",show=mode==="show",direction=o.direction||"up",distance=o.distance,times=o.times||5,anims=times*2+(show||hide?1:0),speed=o.duration/anims,easing=o.easing,ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left",i,upAnim,downAnim,queue=el.queue(),queuelen=queue.length;if(show||hide){props.push("opacity")}$.effects.save(el,props);el.show();$.effects.createWrapper(el);if(!distance){distance=el[ref==="top"?"outerHeight":"outerWidth"]()/3}if(show){downAnim={opacity:1};downAnim[ref]=0;el.css("opacity",0).css(ref,motion?-distance*2:distance*2).animate(downAnim,speed,easing)}if(hide){distance=distance/Math.pow(2,times-1)}downAnim={};downAnim[ref]=0;for(i=0;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.clip=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"vertical",vert=direction==="vertical",size=vert?"height":"width",position=vert?"top":"left",animation={},wrapper,animate,distance;$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});animate=el[0].tagName==="IMG"?wrapper:el;distance=animate[size]();if(show){animate.css(size,0);animate.css(position,distance/2)}animation[size]=show?distance:0;animation[position]=show?0:distance/2;animate.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(!show){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.drop=function(o,done){var el=$(this),props=["position","top","bottom","left","right","opacity","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left"?"pos":"neg",animation={opacity:show?1:0},distance;$.effects.save(el,props);el.show();$.effects.createWrapper(el);distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true)/2;if(show){el.css("opacity",0).css(ref,motion==="pos"?-distance:distance)}animation[ref]=(show?motion==="pos"?"+=":"-=":motion==="pos"?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.explode=function(o,done){var rows=o.pieces?Math.round(Math.sqrt(o.pieces)):3,cells=rows,el=$(this),mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",offset=el.show().css("visibility","hidden").offset(),width=Math.ceil(el.outerWidth()/cells),height=Math.ceil(el.outerHeight()/rows),pieces=[],i,j,left,top,mx,my;function childComplete(){pieces.push(this);if(pieces.length===rows*cells){animComplete()}}for(i=0;i
").css({position:"absolute",visibility:"visible",left:-j*width,top:-i*height}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:width,height:height,left:left+(show?mx*width:0),top:top+(show?my*height:0),opacity:show?0:1}).animate({left:left+(show?0:mx*width),top:top+(show?0:my*height),opacity:show?1:0},o.duration||500,o.easing,childComplete)}}function animComplete(){el.css({visibility:"visible"});$(pieces).remove();if(!show){el.hide()}done()}}})(jQuery);(function($,undefined){$.effects.effect.fade=function(o,done){var el=$(this),mode=$.effects.setMode(el,o.mode||"toggle");el.animate({opacity:mode},{queue:false,duration:o.duration,easing:o.easing,complete:done})}})(jQuery);(function($,undefined){$.effects.effect.fold=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",hide=mode==="hide",size=o.size||15,percent=/([0-9]+)%/.exec(size),horizFirst=!!o.horizFirst,widthFirst=show!==horizFirst,ref=widthFirst?["width","height"]:["height","width"],duration=o.duration/2,wrapper,distance,animation1={},animation2={};$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=widthFirst?[wrapper.width(),wrapper.height()]:[wrapper.height(),wrapper.width()];if(percent){size=parseInt(percent[1],10)/100*distance[hide?0:1]}if(show){wrapper.css(horizFirst?{height:0,width:size}:{height:size,width:0})}animation1[ref[0]]=show?distance[0]:size;animation2[ref[1]]=show?distance[1]:0;wrapper.animate(animation1,duration,o.easing).animate(animation2,duration,o.easing,function(){if(hide){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()})}})(jQuery);(function($,undefined){$.effects.effect.highlight=function(o,done){var elem=$(this),props=["backgroundImage","backgroundColor","opacity"],mode=$.effects.setMode(elem,o.mode||"show"),animation={backgroundColor:elem.css("backgroundColor")};if(mode==="hide"){animation.opacity=0}$.effects.save(elem,props);elem.show().css({backgroundImage:"none",backgroundColor:o.color||"#ffff99"}).animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){elem.hide()}$.effects.restore(elem,props);done()}})}})(jQuery);(function($,undefined){$.effects.effect.pulsate=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"show"),show=mode==="show",hide=mode==="hide",showhide=show||mode==="hide",anims=(o.times||5)*2+(showhide?1:0),duration=o.duration/anims,animateTo=0,queue=elem.queue(),queuelen=queue.length,i;if(show||!elem.is(":visible")){elem.css("opacity",0).show();animateTo=1}for(i=1;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}elem.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.puff=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"hide"),hide=mode==="hide",percent=parseInt(o.percent,10)||150,factor=percent/100,original={height:elem.height(),width:elem.width(),outerHeight:elem.outerHeight(),outerWidth:elem.outerWidth()};$.extend(o,{effect:"scale",queue:false,fade:true,mode:mode,complete:done,percent:hide?percent:100,from:hide?original:{height:original.height*factor,width:original.width*factor,outerHeight:original.outerHeight*factor,outerWidth:original.outerWidth*factor}});elem.effect(o)};$.effects.effect.scale=function(o,done){var el=$(this),options=$.extend(true,{},o),mode=$.effects.setMode(el,o.mode||"effect"),percent=parseInt(o.percent,10)||(parseInt(o.percent,10)===0?0:mode==="hide"?0:100),direction=o.direction||"both",origin=o.origin,original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()},factor={y:direction!=="horizontal"?percent/100:1,x:direction!=="vertical"?percent/100:1};options.effect="size";options.queue=false;options.complete=done;if(mode!=="effect"){options.origin=origin||["middle","center"];options.restore=true}options.from=o.from||(mode==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:original);options.to={height:original.height*factor.y,width:original.width*factor.x,outerHeight:original.outerHeight*factor.y,outerWidth:original.outerWidth*factor.x};if(options.fade){if(mode==="show"){options.from.opacity=0;options.to.opacity=1}if(mode==="hide"){options.from.opacity=1;options.to.opacity=0}}el.effect(options)};$.effects.effect.size=function(o,done){var original,baseline,factor,el=$(this),props0=["position","top","bottom","left","right","width","height","overflow","opacity"],props1=["position","top","bottom","left","right","overflow","opacity"],props2=["width","height","overflow"],cProps=["fontSize"],vProps=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],hProps=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],mode=$.effects.setMode(el,o.mode||"effect"),restore=o.restore||mode!=="effect",scale=o.scale||"both",origin=o.origin||["middle","center"],position=el.css("position"),props=restore?props0:props1,zero={height:0,width:0,outerHeight:0,outerWidth:0};if(mode==="show"){el.show()}original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()};if(o.mode==="toggle"&&mode==="show"){el.from=o.to||zero;el.to=o.from||original}else{el.from=o.from||(mode==="show"?zero:original);el.to=o.to||(mode==="hide"?zero:original)}factor={from:{y:el.from.height/original.height,x:el.from.width/original.width},to:{y:el.to.height/original.height,x:el.to.width/original.width}};if(scale==="box"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(vProps);el.from=$.effects.setTransition(el,vProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,vProps,factor.to.y,el.to)}if(factor.from.x!==factor.to.x){props=props.concat(hProps);el.from=$.effects.setTransition(el,hProps,factor.from.x,el.from);el.to=$.effects.setTransition(el,hProps,factor.to.x,el.to)}}if(scale==="content"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(cProps).concat(props2);el.from=$.effects.setTransition(el,cProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,cProps,factor.to.y,el.to)}}$.effects.save(el,props);el.show();$.effects.createWrapper(el);el.css("overflow","hidden").css(el.from);if(origin){baseline=$.effects.getBaseline(origin,original);el.from.top=(original.outerHeight-el.outerHeight())*baseline.y;el.from.left=(original.outerWidth-el.outerWidth())*baseline.x;el.to.top=(original.outerHeight-el.to.outerHeight)*baseline.y;el.to.left=(original.outerWidth-el.to.outerWidth)*baseline.x}el.css(el.from);if(scale==="content"||scale==="both"){vProps=vProps.concat(["marginTop","marginBottom"]).concat(cProps);hProps=hProps.concat(["marginLeft","marginRight"]);props2=props0.concat(vProps).concat(hProps);el.find("*[width]").each(function(){var child=$(this),c_original={height:child.height(),width:child.width(),outerHeight:child.outerHeight(),outerWidth:child.outerWidth()};if(restore){$.effects.save(child,props2)}child.from={height:c_original.height*factor.from.y,width:c_original.width*factor.from.x,outerHeight:c_original.outerHeight*factor.from.y,outerWidth:c_original.outerWidth*factor.from.x};child.to={height:c_original.height*factor.to.y,width:c_original.width*factor.to.x,outerHeight:c_original.height*factor.to.y,outerWidth:c_original.width*factor.to.x};if(factor.from.y!==factor.to.y){child.from=$.effects.setTransition(child,vProps,factor.from.y,child.from);child.to=$.effects.setTransition(child,vProps,factor.to.y,child.to)}if(factor.from.x!==factor.to.x){child.from=$.effects.setTransition(child,hProps,factor.from.x,child.from);child.to=$.effects.setTransition(child,hProps,factor.to.x,child.to)}child.css(child.from);child.animate(child.to,o.duration,o.easing,function(){if(restore){$.effects.restore(child,props2)}})})}el.animate(el.to,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(el.to.opacity===0){el.css("opacity",el.from.opacity)}if(mode==="hide"){el.hide()}$.effects.restore(el,props);if(!restore){if(position==="static"){el.css({position:"relative",top:el.to.top,left:el.to.left})}else{$.each(["top","left"],function(idx,pos){el.css(pos,function(_,str){var val=parseInt(str,10),toRef=idx?el.to.left:el.to.top;if(str==="auto"){return toRef+"px"}return val+toRef+"px"})})}}$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.shake=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),direction=o.direction||"left",distance=o.distance||20,times=o.times||3,anims=times*2+1,speed=Math.round(o.duration/anims),ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",animation={},animation1={},animation2={},i,queue=el.queue(),queuelen=queue.length;$.effects.save(el,props);el.show();$.effects.createWrapper(el);animation[ref]=(positiveMotion?"-=":"+=")+distance;animation1[ref]=(positiveMotion?"+=":"-=")+distance*2;animation2[ref]=(positiveMotion?"-=":"+=")+distance*2;el.animate(animation,speed,o.easing);for(i=1;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.slide=function(o,done){var el=$(this),props=["position","top","bottom","left","right","width","height"],mode=$.effects.setMode(el,o.mode||"show"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",distance,animation={};$.effects.save(el,props);el.show();distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true);$.effects.createWrapper(el).css({overflow:"hidden"});if(show){el.css(ref,positiveMotion?isNaN(distance)?"-"+distance:-distance:distance)}animation[ref]=(show?positiveMotion?"+=":"-=":positiveMotion?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.transfer=function(o,done){var elem=$(this),target=$(o.to),targetFixed=target.css("position")==="fixed",body=$("body"),fixTop=targetFixed?body.scrollTop():0,fixLeft=targetFixed?body.scrollLeft():0,endPosition=target.offset(),animation={top:endPosition.top-fixTop,left:endPosition.left-fixLeft,height:target.innerHeight(),width:target.innerWidth()},startPosition=elem.offset(),transfer=$('
').appendTo(document.body).addClass(o.className).css({top:startPosition.top-fixTop,left:startPosition.left-fixLeft,height:elem.innerHeight(),width:elem.innerWidth(),position:targetFixed?"fixed":"absolute"}).animate(animation,o.duration,o.easing,function(){transfer.remove();done()})}})(jQuery);(function($,undefined){var mouseHandled=false;$.widget("ui.menu",{version:"1.9.2",defaultElement:"
    ",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,$.proxy(function(event){if(this.options.disabled){event.preventDefault()}},this));if(this.options.disabled){this.element.addClass("ui-state-disabled").attr("aria-disabled","true")}this._on({"mousedown .ui-menu-item > a":function(event){event.preventDefault()},"click .ui-state-disabled > a":function(event){event.preventDefault()},"click .ui-menu-item:has(a)":function(event){var target=$(event.target).closest(".ui-menu-item");if(!mouseHandled&&target.not(".ui-state-disabled").length){mouseHandled=true;this.select(event);if(target.has(".ui-menu").length){this.expand(event)}else if(!this.element.is(":focus")){this.element.trigger("focus",[true]);if(this.active&&this.active.parents(".ui-menu").length===1){clearTimeout(this.timer)}}}},"mouseenter .ui-menu-item":function(event){var target=$(event.currentTarget);target.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(event,target)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(event,keepActiveItem){var item=this.active||this.element.children(".ui-menu-item").eq(0);if(!keepActiveItem){this.focus(event,item)}},blur:function(event){this._delay(function(){if(!$.contains(this.element[0],this.document[0].activeElement)){this.collapseAll(event)}})},keydown:"_keydown"});this.refresh();this._on(this.document,{click:function(event){if(!$(event.target).closest(".ui-menu").length){this.collapseAll(event)}mouseHandled=false}})},_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 elem=$(this);if(elem.data("ui-menu-submenu-carat")){elem.remove()}});this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(event){var match,prev,character,skip,regex,preventDefault=true;function escape(value){return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}switch(event.keyCode){case $.ui.keyCode.PAGE_UP:this.previousPage(event);break;case $.ui.keyCode.PAGE_DOWN:this.nextPage(event);break;case $.ui.keyCode.HOME:this._move("first","first",event);break;case $.ui.keyCode.END:this._move("last","last",event);break;case $.ui.keyCode.UP:this.previous(event);break;case $.ui.keyCode.DOWN:this.next(event);break;case $.ui.keyCode.LEFT:this.collapse(event);break;case $.ui.keyCode.RIGHT:if(this.active&&!this.active.is(".ui-state-disabled")){this.expand(event)}break;case $.ui.keyCode.ENTER:case $.ui.keyCode.SPACE:this._activate(event);break;case $.ui.keyCode.ESCAPE:this.collapse(event);break;default:preventDefault=false;prev=this.previousFilter||"";character=String.fromCharCode(event.keyCode);skip=false;clearTimeout(this.filterTimer);if(character===prev){skip=true}else{character=prev+character}regex=new RegExp("^"+escape(character),"i");match=this.activeMenu.children(".ui-menu-item").filter(function(){return regex.test($(this).children("a").text())});match=skip&&match.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):match;if(!match.length){character=String.fromCharCode(event.keyCode);regex=new RegExp("^"+escape(character),"i");match=this.activeMenu.children(".ui-menu-item").filter(function(){return regex.test($(this).children("a").text())})}if(match.length){this.focus(event,match);if(match.length>1){this.previousFilter=character;this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)}else{delete this.previousFilter}}else{delete this.previousFilter}}if(preventDefault){event.preventDefault()}},_activate:function(event){if(!this.active.is(".ui-state-disabled")){if(this.active.children("a[aria-haspopup='true']").length){this.expand(event)}else{this.select(event)}}},refresh:function(){var menus,icon=this.options.icons.submenu,submenus=this.element.find(this.options.menus);submenus.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 menu=$(this),item=menu.prev("a"),submenuCarat=$("").addClass("ui-menu-icon ui-icon "+icon).data("ui-menu-submenu-carat",true);item.attr("aria-haspopup","true").prepend(submenuCarat);menu.attr("aria-labelledby",item.attr("id"))});menus=submenus.add(this.element);menus.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()});menus.children(":not(.ui-menu-item)").each(function(){var item=$(this);if(!/[^\-—–\s]/.test(item.text())){item.addClass("ui-widget-content ui-menu-divider")}});menus.children(".ui-state-disabled").attr("aria-disabled","true");if(this.active&&!$.contains(this.element[0],this.active[0])){this.blur()}},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(event,item){var nested,focused;this.blur(event,event&&event.type==="focus");this._scrollIntoView(item);this.active=item.first();focused=this.active.children("a").addClass("ui-state-focus");if(this.options.role){this.element.attr("aria-activedescendant",focused.attr("id"))}this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");if(event&&event.type==="keydown"){this._close()}else{this.timer=this._delay(function(){this._close()},this.delay)}nested=item.children(".ui-menu");if(nested.length&&/^mouse/.test(event.type)){this._startOpening(nested)}this.activeMenu=item.parent();this._trigger("focus",event,{item:item})},_scrollIntoView:function(item){var borderTop,paddingTop,offset,scroll,elementHeight,itemHeight;if(this._hasScroll()){borderTop=parseFloat($.css(this.activeMenu[0],"borderTopWidth"))||0;paddingTop=parseFloat($.css(this.activeMenu[0],"paddingTop"))||0; -offset=item.offset().top-this.activeMenu.offset().top-borderTop-paddingTop;scroll=this.activeMenu.scrollTop();elementHeight=this.activeMenu.height();itemHeight=item.height();if(offset<0){this.activeMenu.scrollTop(scroll+offset)}else if(offset+itemHeight>elementHeight){this.activeMenu.scrollTop(scroll+offset-elementHeight+itemHeight)}}},blur:function(event,fromFocus){if(!fromFocus){clearTimeout(this.timer)}if(!this.active){return}this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",event,{item:this.active})},_startOpening:function(submenu){clearTimeout(this.timer);if(submenu.attr("aria-hidden")!=="true"){return}this.timer=this._delay(function(){this._close();this._open(submenu)},this.delay)},_open:function(submenu){var position=$.extend({of:this.active},this.options.position);clearTimeout(this.timer);this.element.find(".ui-menu").not(submenu.parents(".ui-menu")).hide().attr("aria-hidden","true");submenu.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(position)},collapseAll:function(event,all){clearTimeout(this.timer);this.timer=this._delay(function(){var currentMenu=all?this.element:$(event&&event.target).closest(this.element.find(".ui-menu"));if(!currentMenu.length){currentMenu=this.element}this._close(currentMenu);this.blur(event);this.activeMenu=currentMenu},this.delay)},_close:function(startMenu){if(!startMenu){startMenu=this.active?this.active.parent():this.element}startMenu.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(event){var newItem=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(newItem&&newItem.length){this._close();this.focus(event,newItem)}},expand:function(event){var newItem=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();if(newItem&&newItem.length){this._open(newItem.parent());this._delay(function(){this.focus(event,newItem)})}},next:function(event){this._move("next","first",event)},previous:function(event){this._move("prev","last",event)},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(direction,filter,event){var next;if(this.active){if(direction==="first"||direction==="last"){next=this.active[direction==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1)}else{next=this.active[direction+"All"](".ui-menu-item").eq(0)}}if(!next||!next.length||!this.active){next=this.activeMenu.children(".ui-menu-item")[filter]()}this.focus(event,next)},nextPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isLastItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.nextAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base-height<0});this.focus(event,item)}else{this.focus(event,this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())}},previousPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isFirstItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.prevAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base+height>0});this.focus(event,item)}else{this.focus(event,this.activeMenu.children(".ui-menu-item").first())}},_hasScroll:function(){return this.element.outerHeight()
").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(newValue){if(newValue===undefined){return this._value()}this._setOption("value",newValue);return this},_setOption:function(key,value){if(key==="value"){this.options.value=value;this._refreshValue();if(this._value()===this.options.max){this._trigger("complete")}}this._super(key,value)},_value:function(){var val=this.options.value;if(typeof val!=="number"){val=0}return Math.min(this.options.max,Math.max(this.min,val))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var value=this.value(),percentage=this._percentage();if(this.oldValue!==value){this.oldValue=value;this._trigger("change")}this.valueDiv.toggle(value>this.min).toggleClass("ui-corner-right",value===this.options.max).width(percentage.toFixed(0)+"%");this.element.attr("aria-valuenow",value)}})})(jQuery);(function($,undefined){$.widget("ui.resizable",$.ui.mouse,{version:"1.9.2",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var that=this,o=this.options;this.element.addClass("ui-resizable");$.extend(this,{_aspectRatio:!!o.aspectRatio,aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap($('
').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=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=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=o.handles||(!$(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var n=this.handles.split(",");this.handles={};for(var i=0;i
');axis.css({zIndex:o.zIndex});if("se"==handle){axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[handle]=".ui-resizable-"+handle;this.element.append(axis)}}this._renderAxis=function(target){target=target||this.element;for(var i in this.handles){if(this.handles[i].constructor==String)this.handles[i]=$(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var axis=$(this.handles[i],this.element),padWrapper=0;padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth();var padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");target.css(padPos,padWrapper);this._proportionallyResize()}if(!$(this.handles[i]).length)continue}};this._renderAxis(this.element);this._handles=$(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!that.resizing){if(this.className)var axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);that.axis=axis&&axis[1]?axis[1]:"se"}});if(o.autoHide){this._handles.hide();$(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(o.disabled)return;$(this).removeClass("ui-resizable-autohide");that._handles.show()}).mouseleave(function(){if(o.disabled)return;if(!that.resizing){$(this).addClass("ui-resizable-autohide");that._handles.hide()}})}this._mouseInit()},_destroy:function(){this._mouseDestroy();var _destroy=function(exp){$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){_destroy(this.element);var wrapper=this.element;this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper);wrapper.remove()}this.originalElement.css("resize",this.originalResizeStyle);_destroy(this.originalElement);return this},_mouseCapture:function(event){var handle=false;for(var i in this.handles){if($(this.handles[i])[0]==event.target){handle=true}}return!this.options.disabled&&handle},_mouseStart:function(event){var o=this.options,iniPos=this.element.position(),el=this.element;this.resizing=true;this.documentScroll={top:$(document).scrollTop(),left:$(document).scrollLeft()};if(el.is(".ui-draggable")||/absolute/.test(el.css("position"))){el.css({position:"absolute",top:iniPos.top,left:iniPos.left})}this._renderProxy();var curleft=num(this.helper.css("left")),curtop=num(this.helper.css("top"));if(o.containment){curleft+=$(o.containment).scrollLeft()||0;curtop+=$(o.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:curleft,top:curtop};this.size=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.originalPosition={left:curleft,top:curtop};this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()};this.originalMousePosition={left:event.pageX,top:event.pageY};this.aspectRatio=typeof o.aspectRatio=="number"?o.aspectRatio:this.originalSize.width/this.originalSize.height||1;var cursor=$(".ui-resizable-"+this.axis).css("cursor");$("body").css("cursor",cursor=="auto"?this.axis+"-resize":cursor);el.addClass("ui-resizable-resizing");this._propagate("start",event);return true},_mouseDrag:function(event){var el=this.helper,o=this.options,props={},that=this,smp=this.originalMousePosition,a=this.axis;var dx=event.pageX-smp.left||0,dy=event.pageY-smp.top||0;var trigger=this._change[a];if(!trigger)return false;var data=trigger.apply(this,[event,dx,dy]);this._updateVirtualBoundaries(event.shiftKey);if(this._aspectRatio||event.shiftKey)data=this._updateRatio(data,event);data=this._respectSize(data,event);this._propagate("resize",event);el.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length)this._proportionallyResize();this._updateCache(data);this._trigger("resize",event,this.ui());return false},_mouseStop:function(event){this.resizing=false;var o=this.options,that=this;if(this._helper){var pr=this._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&$.ui.hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width;var s={width:that.helper.width()-soffsetw,height:that.helper.height()-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;if(!o.animate)this.element.css($.extend(s,{top:top,left:left}));that.helper.height(that.size.height);that.helper.width(that.size.width);if(this._helper&&!o.animate)this._proportionallyResize()}$("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",event);if(this._helper)this.helper.remove();return false},_updateVirtualBoundaries:function(forceAspectRatio){var o=this.options,pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b;b={minWidth:isNumber(o.minWidth)?o.minWidth:0,maxWidth:isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:isNumber(o.minHeight)?o.minHeight:0,maxHeight:isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||forceAspectRatio){pMinWidth=b.minHeight*this.aspectRatio;pMinHeight=b.minWidth/this.aspectRatio;pMaxWidth=b.maxHeight*this.aspectRatio;pMaxHeight=b.maxWidth/this.aspectRatio;if(pMinWidth>b.minWidth)b.minWidth=pMinWidth;if(pMinHeight>b.minHeight)b.minHeight=pMinHeight;if(pMaxWidthdata.width,isminh=isNumber(data.height)&&o.minHeight&&o.minHeight>data.height;if(isminw)data.width=o.minWidth;if(isminh)data.height=o.minHeight;if(ismaxw)data.width=o.maxWidth;if(ismaxh)data.height=o.maxHeight;var dw=this.originalPosition.left+this.originalSize.width,dh=this.position.top+this.size.height;var cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);if(isminw&&cw)data.left=dw-o.minWidth;if(ismaxw&&cw)data.left=dw-o.maxWidth;if(isminh&&ch)data.top=dh-o.minHeight;if(ismaxh&&ch)data.top=dh-o.maxHeight;var isNotwh=!data.width&&!data.height;if(isNotwh&&!data.left&&data.top)data.top=null;else if(isNotwh&&!data.top&&data.left)data.left=null;return data},_proportionallyResize:function(){var o=this.options;if(!this._proportionallyResizeElements.length)return;var element=this.helper||this.element;for(var i=0;i');var ie6offset=$.ui.ie6?1:0,pxyoffset=$.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+pxyoffset,height:this.element.outerHeight()+pxyoffset,position:"absolute",left:this.elementOffset.left-ie6offset+"px",top:this.elementOffset.top-ie6offset+"px",zIndex:++o.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(event,dx,dy){return{width:this.originalSize.width+dx}},w:function(event,dx,dy){var o=this.options,cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx}},n:function(event,dx,dy){var o=this.options,cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy}},s:function(event,dx,dy){return{height:this.originalSize.height+dy}},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]);n!="resize"&&this._trigger(n,event,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}}});$.ui.plugin.add("resizable","alsoResize",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options;var _store=function(exp){$(exp).each(function(){var el=$(this);el.data("resizable-alsoresize",{width:parseInt(el.width(),10),height:parseInt(el.height(),10),left:parseInt(el.css("left"),10),top:parseInt(el.css("top"),10)})})};if(typeof o.alsoResize=="object"&&!o.alsoResize.parentNode){if(o.alsoResize.length){o.alsoResize=o.alsoResize[0];_store(o.alsoResize)}else{$.each(o.alsoResize,function(exp){_store(exp)})}}else{_store(o.alsoResize)}},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,os=that.originalSize,op=that.originalPosition;var delta={height:that.size.height-os.height||0,width:that.size.width-os.width||0,top:that.position.top-op.top||0,left:that.position.left-op.left||0},_alsoResize=function(exp,c){$(exp).each(function(){var el=$(this),start=$(this).data("resizable-alsoresize"),style={},css=c&&c.length?c:el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);if(sum&&sum>=0)style[prop]=sum||null});el.css(style)})};if(typeof o.alsoResize=="object"&&!o.alsoResize.nodeType){$.each(o.alsoResize,function(exp,c){_alsoResize(exp,c)})}else{_alsoResize(o.alsoResize)}},stop:function(event,ui){$(this).removeData("resizable-alsoresize")}});$.ui.plugin.add("resizable","animate",{stop:function(event,ui){var that=$(this).data("resizable"),o=that.options;var pr=that._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&$.ui.hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width;var style={width:that.size.width-soffsetw,height:that.size.height-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseInt(that.element.css("width"),10),height:parseInt(that.element.css("height"),10),top:parseInt(that.element.css("top"),10),left:parseInt(that.element.css("left"),10)};if(pr&&pr.length)$(pr[0]).css({width:data.width,height:data.height});that._updateCache(data);that._propagate("resize",event)}})}});$.ui.plugin.add("resizable","containment",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options,el=that.element;var oc=o.containment,ce=oc instanceof $?oc.get(0):/parent/.test(oc)?el.parent().get(0):oc;if(!ce)return;that.containerElement=$(ce);if(/document/.test(oc)||oc==document){that.containerOffset={left:0,top:0};that.containerPosition={left:0,top:0};that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight}}else{var element=$(ce),p=[];$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=num(element.css("padding"+name))});that.containerOffset=element.offset();that.containerPosition=element.position();that.containerSize={height:element.innerHeight()-p[3],width:element.innerWidth()-p[1]};var co=that.containerOffset,ch=that.containerSize.height,cw=that.containerSize.width,width=$.ui.hasScroll(ce,"left")?ce.scrollWidth:cw,height=$.ui.hasScroll(ce)?ce.scrollHeight:ch;that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height}}},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,ps=that.containerSize,co=that.containerOffset,cs=that.size,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement;if(ce[0]!=document&&/static/.test(ce.css("position")))cop=co;if(cp.left<(that._helper?co.left:0)){that.size.width=that.size.width+(that._helper?that.position.left-co.left:that.position.left-cop.left);if(pRatio)that.size.height=that.size.width/that.aspectRatio;that.position.left=o.helper?co.left:0}if(cp.top<(that._helper?co.top:0)){that.size.height=that.size.height+(that._helper?that.position.top-co.top:that.position.top);if(pRatio)that.size.width=that.size.height*that.aspectRatio;that.position.top=that._helper?co.top:0}that.offset.left=that.parentData.left+that.position.left;that.offset.top=that.parentData.top+that.position.top;var woset=Math.abs((that._helper?that.offset.left-cop.left:that.offset.left-cop.left)+that.sizeDiff.width),hoset=Math.abs((that._helper?that.offset.top-cop.top:that.offset.top-co.top)+that.sizeDiff.height);var isParent=that.containerElement.get(0)==that.element.parent().get(0),isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position"));if(isParent&&isOffsetRelative)woset-=that.parentData.left;if(woset+that.size.width>=that.parentData.width){that.size.width=that.parentData.width-woset;if(pRatio)that.size.height=that.size.width/that.aspectRatio}if(hoset+that.size.height>=that.parentData.height){that.size.height=that.parentData.height-hoset;if(pRatio)that.size.width=that.size.height*that.aspectRatio}},stop:function(event,ui){var that=$(this).data("resizable"),o=that.options,cp=that.position,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement;var helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;if(that._helper&&!o.animate&&/relative/.test(ce.css("position")))$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});if(that._helper&&!o.animate&&/static/.test(ce.css("position")))$(this).css({left:ho.left-cop.left-co.left,width:w,height:h})}});$.ui.plugin.add("resizable","ghost",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options,cs=that.size;that.ghost=that.originalElement.clone();that.ghost.css({opacity:.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof o.ghost=="string"?o.ghost:"");that.ghost.appendTo(that.helper)},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options;if(that.ghost)that.ghost.css({position:"relative",height:that.size.height,width:that.size.width})},stop:function(event,ui){var that=$(this).data("resizable"),o=that.options;if(that.ghost&&that.helper)that.helper.get(0).removeChild(that.ghost.get(0))}});$.ui.plugin.add("resizable","grid",{resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,ratio=o._aspectRatio||event.shiftKey;o.grid=typeof o.grid=="number"?[o.grid,o.grid]:o.grid;var ox=Math.round((cs.width-os.width)/(o.grid[0]||1))*(o.grid[0]||1),oy=Math.round((cs.height-os.height)/(o.grid[1]||1))*(o.grid[1]||1);if(/^(se|s|e)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy}else if(/^(ne)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.top=op.top-oy}else if(/^(sw)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.left=op.left-ox}else{that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.top=op.top-oy;that.position.left=op.left-ox}}});var num=function(v){return parseInt(v,10)||0};var isNumber=function(value){return!isNaN(parseInt(value,10))}})(jQuery);(function($,undefined){$.widget("ui.selectable",$.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var that=this;this.element.addClass("ui-selectable");this.dragged=false;var selectees;this.refresh=function(){selectees=$(that.options.filter,that.element[0]);selectees.addClass("ui-selectee");selectees.each(function(){var $this=$(this);var pos=$this.offset();$.data(this,"selectable-item",{element:this,$element:$this,left:pos.left,top:pos.top,right:pos.left+$this.outerWidth(),bottom:pos.top+$this.outerHeight(),startselected:false,selected:$this.hasClass("ui-selected"),selecting:$this.hasClass("ui-selecting"),unselecting:$this.hasClass("ui-unselecting")})})};this.refresh();this.selectees=selectees.addClass("ui-selectee");this._mouseInit();this.helper=$("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled");this._mouseDestroy()},_mouseStart:function(event){var that=this;this.opos=[event.pageX,event.pageY];if(this.options.disabled)return;var options=this.options;this.selectees=$(options.filter,this.element[0]);this._trigger("start",event);$(options.appendTo).append(this.helper);this.helper.css({left:event.clientX,top:event.clientY,width:0,height:0});if(options.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var selectee=$.data(this,"selectable-item");selectee.startselected=true;if(!event.metaKey&&!event.ctrlKey){selectee.$element.removeClass("ui-selected");selectee.selected=false;selectee.$element.addClass("ui-unselecting");selectee.unselecting=true;that._trigger("unselecting",event,{unselecting:selectee.element})}});$(event.target).parents().andSelf().each(function(){var selectee=$.data(this,"selectable-item");if(selectee){var doSelect=!event.metaKey&&!event.ctrlKey||!selectee.$element.hasClass("ui-selected");selectee.$element.removeClass(doSelect?"ui-unselecting":"ui-selected").addClass(doSelect?"ui-selecting":"ui-unselecting");selectee.unselecting=!doSelect;selectee.selecting=doSelect;selectee.selected=doSelect;if(doSelect){that._trigger("selecting",event,{selecting:selectee.element})}else{that._trigger("unselecting",event,{unselecting:selectee.element})}return false}})},_mouseDrag:function(event){var that=this;this.dragged=true;if(this.options.disabled)return;var options=this.options;var x1=this.opos[0],y1=this.opos[1],x2=event.pageX,y2=event.pageY;if(x1>x2){var tmp=x2;x2=x1;x1=tmp}if(y1>y2){var tmp=y2;y2=y1;y1=tmp}this.helper.css({left:x1,top:y1,width:x2-x1,height:y2-y1});this.selectees.each(function(){var selectee=$.data(this,"selectable-item");if(!selectee||selectee.element==that.element[0])return;var hit=false;if(options.tolerance=="touch"){hit=!(selectee.left>x2||selectee.righty2||selectee.bottomx1&&selectee.righty1&&selectee.bottom").appendTo(this.element).addClass("ui-slider-range"+" ui-widget-header"+(o.range==="min"||o.range==="max"?" ui-slider-range-"+o.range:""))}handleCount=o.values&&o.values.length||1;for(i=existingHandles.length;ithisDistance){distance=thisDistance;closestHandle=$(this);index=i}});if(o.range===true&&this.values(1)===o.min){index+=1;closestHandle=$(this.handles[index])}allowed=this._start(event,index);if(allowed===false){return false}this._mouseSliding=true;this._handleIndex=index;closestHandle.addClass("ui-state-active").focus();offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-closestHandle.width()/2,top:event.pageY-offset.top-closestHandle.height()/2-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue)}this._animateOff=true;return true},_mouseStart:function(){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}percentMouse=pixelMouse/pixelTotal;if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if(this.orientation==="vertical"){percentMouse=1-percentMouse}valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse)},_start:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}return this._trigger("start",event,uiHash)},_slide:function(event,index,newVal){var otherVal,newValues,allowed;if(this.options.values&&this.options.values.length){otherVal=this.values(index?0:1);if(this.options.values.length===2&&this.options.range===true&&(index===0&&newVal>otherVal||index===1&&newVal1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return}if(arguments.length){if($.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i=this._valueMax()){return this._valueMax()}var step=this.options.step>0?this.options.step:1,valModStep=(val-this._valueMin())%step,alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=valModStep>0?step:-step}return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var lastValPercent,valPercent,value,valueMin,valueMax,oRange=this.options.range,o=this.options,that=this,animate=!this._animateOff?o.animate:false,_set={};if(this.options.values&&this.options.values.length){this.handles.each(function(i){valPercent=(that.values(i)-that._valueMin())/(that._valueMax()-that._valueMin())*100;_set[that.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(that.options.range===true){if(that.orientation==="horizontal"){if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({width:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}else{if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({bottom:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({height:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}}lastValPercent=valPercent})}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=valueMax!==valueMin?(value-valueMin)/(valueMax-valueMin)*100:0;_set[this.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="horizontal"){this.range[animate?"animate":"css"]({width:100-valPercent+"%"},{queue:false,duration:o.animate})}if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="vertical"){this.range[animate?"animate":"css"]({height:100-valPercent+"%"},{queue:false,duration:o.animate})}}}})})(jQuery);(function($,undefined){$.widget("ui.sortable",$.ui.mouse,{version:"1.9.2",widgetEventPrefix:"sort",ready:false,options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var o=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?o.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit();this.ready=true},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled");this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--)this.items[i].item.removeData(this.widgetName+"-item");return this},_setOption:function(key,value){if(key==="disabled"){this.options[key]=value;this.widget().toggleClass("ui-sortable-disabled",!!value)}else{$.Widget.prototype._setOption.apply(this,arguments)}},_mouseCapture:function(event,overrideHandle){var that=this;if(this.reverting){return false}if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(event);var currentItem=null,nodes=$(event.target).parents().each(function(){if($.data(this,that.widgetName+"-item")==that){currentItem=$(this);return false}});if($.data(event.target,that.widgetName+"-item")==that)currentItem=$(event.target);if(!currentItem)return false;if(this.options.handle&&!overrideHandle){var validHandle=false;$(this.options.handle,currentItem).find("*").andSelf().each(function(){if(this==event.target)validHandle=true});if(!validHandle)return false}this.currentItem=currentItem;this._removeCurrentsFromItems();return true},_mouseStart:function(event,overrideHandle,noActivation){var o=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(event);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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.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(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(o.containment)this._setContainment();if(o.cursor){if($("body").css("cursor"))this._storedCursor=$("body").css("cursor");$("body").css("cursor",o.cursor)}if(o.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",o.opacity)}if(o.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",o.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",event,this._uiHash());if(!this._preserveHelperProportions)this._cacheHelperProportions();if(!noActivation){for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("activate",event,this._uiHash(this))}}if($.ui.ddmanager)$.ui.ddmanager.current=this;if($.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(this,event);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(event);return true},_mouseDrag:function(event){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var o=this.options,scrolled=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-event.pageY=0;i--){var item=this.items[i],itemElement=item.item[0],intersection=this._intersectsWithPointer(item);if(!intersection)continue;if(item.instance!==this.currentContainer)continue;if(itemElement!=this.currentItem[0]&&this.placeholder[intersection==1?"next":"prev"]()[0]!=itemElement&&!$.contains(this.placeholder[0],itemElement)&&(this.options.type=="semi-dynamic"?!$.contains(this.element[0],itemElement):true)){this.direction=intersection==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(item)){this._rearrange(event,item)}else{break}this._trigger("change",event,this._uiHash());break}}this._contactContainers(event);if($.ui.ddmanager)$.ui.ddmanager.drag(this,event);this._trigger("sort",event,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(event,noPropagation){if(!event)return;if($.ui.ddmanager&&!this.options.dropBehaviour)$.ui.ddmanager.drop(this,event);if(this.options.revert){var that=this;var cur=this.placeholder.offset();this.reverting=true;$(this.helper).animate({left:cur.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:cur.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(){that._clear(event)})}else{this._clear(event,noPropagation)}return false},cancel:function(){if(this.dragging){this._mouseUp({target:null});if(this.options.helper=="original")this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");else this.currentItem.show();for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("deactivate",null,this._uiHash(this));if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",null,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(this.placeholder){if(this.placeholder[0].parentNode)this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode)this.helper.remove();$.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){$(this.domPosition.prev).after(this.currentItem)}else{$(this.domPosition.parent).prepend(this.currentItem)}}return this},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var str=[];o=o||{};$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||/(.+)[-=_](.+)/);if(res)str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression?res[1]:res[2]))});if(!str.length&&o.key){str.push(o.key+"=")}return str.join("&")},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var ret=[];o=o||{};items.each(function(){ret.push($(o.item||this).attr(o.attribute||"id")||"")});return ret},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height;var l=item.left,r=l+item.width,t=item.top,b=t+item.height;var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var isOverElement=y1+dyClick>t&&y1+dyClickl&&x1+dxClickitem[this.floating?"width":"height"]){return isOverElement}else{return l0?"down":"up")},_getDragHorizontalDirection:function(){var delta=this.positionAbs.left-this.lastPositionAbs.left;return delta!=0&&(delta>0?"right":"left")},refresh:function(event){this._refreshItems(event);this.refreshPositions();return this},_connectWith:function(){var options=this.options;return options.connectWith.constructor==String?[options.connectWith]:options.connectWith},_getItemsAsjQuery:function(connected){var items=[];var queries=[];var connectWith=this._connectWith();if(connectWith&&connected){for(var i=connectWith.length-1;i>=0;i--){var cur=$(connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],this.widgetName);if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),inst])}}}}queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var i=queries.length-1;i>=0;i--){queries[i][0].each(function(){items.push(this)})}return $(items)},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=$.grep(this.items,function(item){for(var j=0;j=0;i--){var cur=$(connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],this.widgetName);if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element[0],event,{item:this.currentItem}):$(inst.options.items,inst.element),inst]);this.containers.push(inst)}}}}for(var i=queries.length-1;i>=0;i--){var targetData=queries[i][1];var _queries=queries[i][0];for(var j=0,queriesLength=_queries.length;j=0;i--){var item=this.items[i];if(item.instance!=this.currentContainer&&this.currentContainer&&item.item[0]!=this.currentItem[0])continue;var t=this.options.toleranceElement?$(this.options.toleranceElement,item.item):item.item;if(!fast){item.width=t.outerWidth();item.height=t.outerHeight()}var p=t.offset();item.left=p.left;item.top=p.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var i=this.containers.length-1;i>=0;i--){var p=this.containers[i].element.offset();this.containers[i].containerCache.left=p.left;this.containers[i].containerCache.top=p.top;this.containers[i].containerCache.width=this.containers[i].element.outerWidth();this.containers[i].containerCache.height=this.containers[i].element.outerHeight()}}return this},_createPlaceholder:function(that){that=that||this;var o=that.options;if(!o.placeholder||o.placeholder.constructor==String){var className=o.placeholder;o.placeholder={element:function(){var el=$(document.createElement(that.currentItem[0].nodeName)).addClass(className||that.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!className)el.style.visibility="hidden";return el},update:function(container,p){if(className&&!o.forcePlaceholderSize)return;if(!p.height()){p.height(that.currentItem.innerHeight()-parseInt(that.currentItem.css("paddingTop")||0,10)-parseInt(that.currentItem.css("paddingBottom")||0,10))}if(!p.width()){p.width(that.currentItem.innerWidth()-parseInt(that.currentItem.css("paddingLeft")||0,10)-parseInt(that.currentItem.css("paddingRight")||0,10))}}}}that.placeholder=$(o.placeholder.element.call(that.element,that.currentItem));that.currentItem.after(that.placeholder);o.placeholder.update(that,that.placeholder)},_contactContainers:function(event){var innermostContainer=null,innermostIndex=null;for(var i=this.containers.length-1;i>=0;i--){if($.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(innermostContainer&&$.contains(this.containers[i].element[0],innermostContainer.element[0]))continue;innermostContainer=this.containers[i];innermostIndex=i}else{if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",event,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(!innermostContainer)return;if(this.containers.length===1){this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1}else{var dist=1e4;var itemWithLeastDistance=null;var posProperty=this.containers[innermostIndex].floating?"left":"top";var sizeProperty=this.containers[innermostIndex].floating?"width":"height";var base=this.positionAbs[posProperty]+this.offset.click[posProperty];for(var j=this.items.length-1;j>=0;j--){if(!$.contains(this.containers[innermostIndex].element[0],this.items[j].item[0]))continue;if(this.items[j].item[0]==this.currentItem[0])continue;var cur=this.items[j].item.offset()[posProperty];var nearBottom=false;if(Math.abs(cur-base)>Math.abs(cur+this.items[j][sizeProperty]-base)){nearBottom=true;cur+=this.items[j][sizeProperty]}if(Math.abs(cur-base)this.containment[2])pageX=this.containment[2]+this.offset.click.left;if(event.pageY-this.offset.click.top>this.containment[3])pageY=this.containment[3]+this.offset.click.top}if(o.grid){var top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?!(top-this.offset.click.topthis.containment[3])?top:!(top-this.offset.click.topthis.containment[2])?left:!(left-this.offset.click.left=0;i--){if(!noPropagation)delayedTriggers.push(function(c){return function(event){c._trigger("deactivate",event,this._uiHash(this))}}.call(this,this.containers[i]));if(this.containers[i].containerCache.over){delayedTriggers.push(function(c){return function(event){c._trigger("out",event,this._uiHash(this))}}.call(this,this.containers[i]));this.containers[i].containerCache.over=0}}if(this._storedCursor)$("body").css("cursor",this._storedCursor);if(this._storedOpacity)this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!noPropagation){this._trigger("beforeStop",event,this._uiHash());for(var i=0;i",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:true,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(),true);this._draw();this._on(this._events);this._refresh();this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var options={},element=this.element;$.each(["min","max","step"],function(i,option){var value=element.attr(option);if(value!==undefined&&value.length){options[option]=value}});return options},_events:{keydown:function(event){if(this._start(event)&&this._keydown(event)){event.preventDefault()}},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh();if(this.previous!==this.element.val()){this._trigger("change",event)}},mousewheel:function(event,delta){if(!delta){return}if(!this.spinning&&!this._start(event)){return false}this._spin((delta>0?1:-1)*this.options.step,event);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=this._delay(function(){if(this.spinning){this._stop(event)}},100);event.preventDefault()},"mousedown .ui-spinner-button":function(event){var previous;previous=this.element[0]===this.document[0].activeElement?this.previous:this.element.val();function checkFocus(){var isActive=this.element[0]===this.document[0].activeElement;if(!isActive){this.element.focus();this.previous=previous;this._delay(function(){this.previous=previous})}}event.preventDefault();checkFocus.call(this);this.cancelBlur=true;this._delay(function(){delete this.cancelBlur;checkFocus.call(this)});if(this._start(event)===false){return}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(event){if(!$(event.currentTarget).hasClass("ui-state-active")){return}if(this._start(event)===false){return false}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var uiSpinner=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=uiSpinner.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");if(this.buttons.height()>Math.ceil(uiSpinner.height()*.5)&&uiSpinner.height()>0){uiSpinner.height(uiSpinner.height())}if(this.options.disabled){this.disable()}},_keydown:function(event){var options=this.options,keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.UP:this._repeat(null,1,event);return true;case keyCode.DOWN:this._repeat(null,-1,event);return true;case keyCode.PAGE_UP:this._repeat(null,options.page,event);return true;case keyCode.PAGE_DOWN:this._repeat(null,-options.page,event);return true}return false},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""+""+""},_start:function(event){if(!this.spinning&&this._trigger("start",event)===false){return false}if(!this.counter){this.counter=1}this.spinning=true;return true},_repeat:function(i,steps,event){i=i||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,steps,event)},i);this._spin(steps*this.options.step,event)},_spin:function(step,event){var value=this.value()||0;if(!this.counter){this.counter=1}value=this._adjustValue(value+step*this._increment(this.counter));if(!this.spinning||this._trigger("spin",event,{value:value})!==false){this._value(value);this.counter++}},_increment:function(i){var incremental=this.options.incremental;if(incremental){return $.isFunction(incremental)?incremental(i):Math.floor(i*i*i/5e4-i*i/500+17*i/200+1)}return 1},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min))}return precision},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1},_adjustValue:function(value){var base,aboveMin,options=this.options;base=options.min!==null?options.min:0;aboveMin=value-base;aboveMin=Math.round(aboveMin/options.step)*options.step;value=base+aboveMin;value=parseFloat(value.toFixed(this._precision()));if(options.max!==null&&value>options.max){return options.max}if(options.min!==null&&value1&&anchor.href.replace(rhash,"")===location.href.replace(rhash,"").replace(/\s/g,"%20")}$.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:false,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var that=this,options=this.options,active=options.active,locationHash=location.hash.substring(1);this.running=false;this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",options.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(event){if($(this).is(".ui-state-disabled")){event.preventDefault()}}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){if($(this).closest("li").is(".ui-state-disabled")){this.blur()}});this._processTabs();if(active===null){if(locationHash){this.tabs.each(function(i,tab){if($(tab).attr("aria-controls")===locationHash){active=i;return false}})}if(active===null){active=this.tabs.index(this.tabs.filter(".ui-tabs-active"))}if(active===null||active===-1){active=this.tabs.length?0:false}}if(active!==false){active=this.tabs.index(this.tabs.eq(active));if(active===-1){active=options.collapsible?false:0}}options.active=active;if(!options.collapsible&&options.active===false&&this.anchors.length){options.active=0}if($.isArray(options.disabled)){options.disabled=$.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"),function(li){return that.tabs.index(li)}))).sort()}if(this.options.active!==false&&this.anchors.length){this.active=this._findActive(this.options.active)}else{this.active=$()}this._refresh();if(this.active.length){this.load(options.active)}},_getCreateEventData:function(){return{tab:this.active,panel:!this.active.length?$():this._getPanelForTab(this.active)}},_tabKeydown:function(event){var focusedTab=$(this.document[0].activeElement).closest("li"),selectedIndex=this.tabs.index(focusedTab),goingForward=true;if(this._handlePageNav(event)){return}switch(event.keyCode){case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:selectedIndex++;break;case $.ui.keyCode.UP:case $.ui.keyCode.LEFT:goingForward=false;selectedIndex--;break;case $.ui.keyCode.END:selectedIndex=this.anchors.length-1;break;case $.ui.keyCode.HOME:selectedIndex=0;break;case $.ui.keyCode.SPACE:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex);return;case $.ui.keyCode.ENTER:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex===this.options.active?false:selectedIndex);return;default:return}event.preventDefault();clearTimeout(this.activating);selectedIndex=this._focusNextTab(selectedIndex,goingForward);if(!event.ctrlKey){focusedTab.attr("aria-selected","false");this.tabs.eq(selectedIndex).attr("aria-selected","true");this.activating=this._delay(function(){this.option("active",selectedIndex)},this.delay)}},_panelKeydown:function(event){if(this._handlePageNav(event)){return}if(event.ctrlKey&&event.keyCode===$.ui.keyCode.UP){event.preventDefault();this.active.focus()}},_handlePageNav:function(event){if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_UP){this._activate(this._focusNextTab(this.options.active-1,false));return true}if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_DOWN){this._activate(this._focusNextTab(this.options.active+1,true));return true}},_findNextTab:function(index,goingForward){var lastTabIndex=this.tabs.length-1;function constrain(){if(index>lastTabIndex){index=0}if(index<0){index=lastTabIndex}return index}while($.inArray(constrain(),this.options.disabled)!==-1){index=goingForward?index+1:index-1}return index},_focusNextTab:function(index,goingForward){index=this._findNextTab(index,goingForward);this.tabs.eq(index).focus();return index},_setOption:function(key,value){if(key==="active"){this._activate(value);return}if(key==="disabled"){this._setupDisabled(value);return}this._super(key,value);if(key==="collapsible"){this.element.toggleClass("ui-tabs-collapsible",value);if(!value&&this.options.active===false){this._activate(0)}}if(key==="event"){this._setupEvents(value)}if(key==="heightStyle"){this._setupHeightStyle(value)}},_tabId:function(tab){return tab.attr("aria-controls")||"ui-tabs-"+getNextTabId()},_sanitizeSelector:function(hash){return hash?hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var options=this.options,lis=this.tablist.children(":has(a[href])");options.disabled=$.map(lis.filter(".ui-state-disabled"),function(tab){return lis.index(tab)});this._processTabs();if(options.active===false||!this.anchors.length){options.active=false;this.active=$()}else if(this.active.length&&!$.contains(this.tablist[0],this.active[0])){if(this.tabs.length===options.disabled.length){options.active=false;this.active=$()}else{this._activate(this._findNextTab(Math.max(0,options.active-1),false))}}else{options.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"});if(!this.active.length){this.tabs.eq(0).attr("tabIndex",0)}else{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"})}},_processTabs:function(){var that=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 $("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1});this.panels=$();this.anchors.each(function(i,anchor){var selector,panel,panelId,anchorId=$(anchor).uniqueId().attr("id"),tab=$(anchor).closest("li"),originalAriaControls=tab.attr("aria-controls");if(isLocal(anchor)){selector=anchor.hash;panel=that.element.find(that._sanitizeSelector(selector))}else{panelId=that._tabId(tab);selector="#"+panelId;panel=that.element.find(selector);if(!panel.length){panel=that._createPanel(panelId);panel.insertAfter(that.panels[i-1]||that.tablist)}panel.attr("aria-live","polite")}if(panel.length){that.panels=that.panels.add(panel)}if(originalAriaControls){tab.data("ui-tabs-aria-controls",originalAriaControls)}tab.attr({"aria-controls":selector.substring(1),"aria-labelledby":anchorId});panel.attr("aria-labelledby",anchorId)});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(id){return $("
").attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",true)},_setupDisabled:function(disabled){if($.isArray(disabled)){if(!disabled.length){disabled=false}else if(disabled.length===this.anchors.length){disabled=true}}for(var i=0,li;li=this.tabs[i];i++){if(disabled===true||$.inArray(i,disabled)!==-1){$(li).addClass("ui-state-disabled").attr("aria-disabled","true")}else{$(li).removeClass("ui-state-disabled").removeAttr("aria-disabled")}}this.options.disabled=disabled},_setupEvents:function(event){var events={click:function(event){event.preventDefault()}};if(event){$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"})}this._off(this.anchors.add(this.tabs).add(this.panels));this._on(this.anchors,events);this._on(this.tabs,{keydown:"_tabKeydown"});this._on(this.panels,{keydown:"_panelKeydown"});this._focusable(this.tabs);this._hoverable(this.tabs)},_setupHeightStyle:function(heightStyle){var maxHeight,overflow,parent=this.element.parent();if(heightStyle==="fill"){if(!$.support.minHeight){overflow=parent.css("overflow");parent.css("overflow","hidden")}maxHeight=parent.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return}maxHeight-=elem.outerHeight(true)});if(overflow){parent.css("overflow",overflow)}this.element.children().not(this.panels).each(function(){maxHeight-=$(this).outerHeight(true)});this.panels.each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")}else if(heightStyle==="auto"){maxHeight=0;this.panels.each(function(){maxHeight=Math.max(maxHeight,$(this).height("").height())}).height(maxHeight)}},_eventHandler:function(event){var options=this.options,active=this.active,anchor=$(event.currentTarget),tab=anchor.closest("li"),clickedIsActive=tab[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():this._getPanelForTab(tab),toHide=!active.length?$():this._getPanelForTab(active),eventData={oldTab:active,oldPanel:toHide,newTab:collapsing?$():tab,newPanel:toShow};event.preventDefault();if(tab.hasClass("ui-state-disabled")||tab.hasClass("ui-tabs-loading")||this.running||clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===false){return}options.active=collapsing?false:this.tabs.index(tab);this.active=clickedIsActive?$():tab;if(this.xhr){this.xhr.abort()}if(!toHide.length&&!toShow.length){$.error("jQuery UI Tabs: Mismatching fragment identifier.")}if(toShow.length){this.load(this.tabs.index(tab),event)}this._toggle(event,eventData)},_toggle:function(event,eventData){var that=this,toShow=eventData.newPanel,toHide=eventData.oldPanel;this.running=true;function complete(){that.running=false;that._trigger("activate",event,eventData)}function show(){eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(toShow.length&&that.options.show){that._show(toShow,that.options.show,complete)}else{toShow.show();complete()}}if(toHide.length&&this.options.hide){this._hide(toHide,this.options.hide,function(){eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");show()})}else{eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");toHide.hide();show()}toHide.attr({"aria-expanded":"false","aria-hidden":"true"});eventData.oldTab.attr("aria-selected","false");if(toShow.length&&toHide.length){eventData.oldTab.attr("tabIndex",-1)}else if(toShow.length){this.tabs.filter(function(){return $(this).attr("tabIndex")===0}).attr("tabIndex",-1)}toShow.attr({"aria-expanded":"true","aria-hidden":"false"});eventData.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(index){var anchor,active=this._findActive(index);if(active[0]===this.active[0]){return}if(!active.length){active=this.active}anchor=active.find(".ui-tabs-anchor")[0];this._eventHandler({target:anchor,currentTarget:anchor,preventDefault:$.noop})},_findActive:function(index){return index===false?$():this.tabs.eq(index)},_getIndex:function(index){if(typeof index==="string"){index=this.anchors.index(this.anchors.filter("[href$='"+index+"']"))}return index},_destroy:function(){if(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(){if($.data(this,"ui-tabs-destroy")){$(this).remove()}else{$(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 li=$(this),prev=li.data("ui-tabs-aria-controls");if(prev){li.attr("aria-controls",prev)}else{li.removeAttr("aria-controls")}});this.panels.show();if(this.options.heightStyle!=="content"){this.panels.css("height","")}},enable:function(index){var disabled=this.options.disabled;if(disabled===false){return}if(index===undefined){disabled=false}else{index=this._getIndex(index);if($.isArray(disabled)){disabled=$.map(disabled,function(num){return num!==index?num:null})}else{disabled=$.map(this.tabs,function(li,num){return num!==index?num:null})}}this._setupDisabled(disabled)},disable:function(index){var disabled=this.options.disabled;if(disabled===true){return}if(index===undefined){disabled=true}else{index=this._getIndex(index);if($.inArray(index,disabled)!==-1){return}if($.isArray(disabled)){disabled=$.merge([index],disabled).sort()}else{disabled=[index]}}this._setupDisabled(disabled)},load:function(index,event){index=this._getIndex(index);var that=this,tab=this.tabs.eq(index),anchor=tab.find(".ui-tabs-anchor"),panel=this._getPanelForTab(tab),eventData={tab:tab,panel:panel};if(isLocal(anchor[0])){return}this.xhr=$.ajax(this._ajaxSettings(anchor,event,eventData));if(this.xhr&&this.xhr.statusText!=="canceled"){tab.addClass("ui-tabs-loading");panel.attr("aria-busy","true");this.xhr.success(function(response){setTimeout(function(){panel.html(response);that._trigger("load",event,eventData)},1)}).complete(function(jqXHR,status){setTimeout(function(){if(status==="abort"){that.panels.stop(false,true)}tab.removeClass("ui-tabs-loading");panel.removeAttr("aria-busy");if(jqXHR===that.xhr){delete that.xhr}},1)})}},_ajaxSettings:function(anchor,event,eventData){var that=this;return{url:anchor.attr("href"),beforeSend:function(jqXHR,settings){return that._trigger("beforeLoad",event,$.extend({jqXHR:jqXHR,ajaxSettings:settings},eventData))}}},_getPanelForTab:function(tab){var id=$(tab).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+id))}});if($.uiBackCompat!==false){$.ui.tabs.prototype._ui=function(tab,panel){return{tab:tab,panel:panel,index:this.anchors.index(tab)}};$.widget("ui.tabs",$.ui.tabs,{url:function(index,url){this.anchors.eq(index).attr("href",url)}});$.widget("ui.tabs",$.ui.tabs,{options:{ajaxOptions:null,cache:false},_create:function(){this._super();var that=this;this._on({tabsbeforeload:function(event,ui){if($.data(ui.tab[0],"cache.tabs")){event.preventDefault();return}ui.jqXHR.success(function(){if(that.options.cache){$.data(ui.tab[0],"cache.tabs",true)}})}})},_ajaxSettings:function(anchor,event,ui){var ajaxOptions=this.options.ajaxOptions;return $.extend({},ajaxOptions,{error:function(xhr,status){try{ajaxOptions.error(xhr,status,ui.tab.closest("li").index(),ui.tab[0])}catch(error){}}},this._superApply(arguments))},_setOption:function(key,value){if(key==="cache"&&value===false){this.anchors.removeData("cache.tabs")}this._super(key,value)},_destroy:function(){this.anchors.removeData("cache.tabs");this._super()},url:function(index){this.anchors.eq(index).removeData("cache.tabs");this._superApply(arguments)}});$.widget("ui.tabs",$.ui.tabs,{abort:function(){if(this.xhr){this.xhr.abort()}}});$.widget("ui.tabs",$.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super();this._on({tabsbeforeload:function(event,ui){if(event.target!==this.element[0]||!this.options.spinner){return}var span=ui.tab.find("span"),html=span.html();span.html(this.options.spinner);ui.jqXHR.complete(function(){span.html(html)})}})}});$.widget("ui.tabs",$.ui.tabs,{options:{enable:null,disable:null},enable:function(index){var options=this.options,trigger;if(index&&options.disabled===true||$.isArray(options.disabled)&&$.inArray(index,options.disabled)!==-1){trigger=true}this._superApply(arguments);if(trigger){this._trigger("enable",null,this._ui(this.anchors[index],this.panels[index]))}},disable:function(index){var options=this.options,trigger;if(index&&options.disabled===false||$.isArray(options.disabled)&&$.inArray(index,options.disabled)===-1){trigger=true}this._superApply(arguments);if(trigger){this._trigger("disable",null,this._ui(this.anchors[index],this.panels[index]))}}});$.widget("ui.tabs",$.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(url,label,index){if(index===undefined){index=this.anchors.length}var doInsertAfter,panel,options=this.options,li=$(options.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label)),id=!url.indexOf("#")?url.replace("#",""):this._tabId(li);li.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",true);li.attr("aria-controls",id);doInsertAfter=index>=this.tabs.length;panel=this.element.find("#"+id);if(!panel.length){panel=this._createPanel(id);if(doInsertAfter){if(index>0){panel.insertAfter(this.panels.eq(-1))}else{panel.appendTo(this.element)}}else{panel.insertBefore(this.panels[index])}}panel.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();if(doInsertAfter){li.appendTo(this.tablist)}else{li.insertBefore(this.tabs[index])}options.disabled=$.map(options.disabled,function(n){return n>=index?++n:n});this.refresh();if(this.tabs.length===1&&options.active===false){this.option("active",0)}this._trigger("add",null,this._ui(this.anchors[index],this.panels[index]));return this},remove:function(index){index=this._getIndex(index);var options=this.options,tab=this.tabs.eq(index).remove(),panel=this._getPanelForTab(tab).remove();if(tab.hasClass("ui-tabs-active")&&this.anchors.length>2){this._activate(index+(index+1=index?--n:n});this.refresh();this._trigger("remove",null,this._ui(tab.find("a")[0],panel[0]));return this}});$.widget("ui.tabs",$.ui.tabs,{length:function(){return this.anchors.length}});$.widget("ui.tabs",$.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(tab){var a=tab.is("li")?tab.find("a[href]"):tab;a=a[0];return $(a).closest("li").attr("aria-controls")||a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+getNextTabId()}});$.widget("ui.tabs",$.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(id){return $(this.options.panelTemplate).attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",true)}});$.widget("ui.tabs",$.ui.tabs,{_create:function(){var options=this.options;if(options.active===null&&options.selected!==undefined){options.active=options.selected===-1?false:options.selected}this._super();options.selected=options.active;if(options.selected===false){options.selected=-1}},_setOption:function(key,value){if(key!=="selected"){return this._super(key,value)}var options=this.options;this._super("active",value===-1?false:value);options.selected=options.active;if(options.selected===false){options.selected=-1}},_eventHandler:function(){this._superApply(arguments);this.options.selected=this.options.active;if(this.options.selected===false){this.options.selected=-1}}});$.widget("ui.tabs",$.ui.tabs,{options:{show:null,select:null},_create:function(){this._super();if(this.options.active!==false){this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0])); -}},_trigger:function(type,event,data){var tab,panel,ret=this._superApply(arguments);if(!ret){return false}if(type==="beforeActivate"){tab=data.newTab.length?data.newTab:data.oldTab;panel=data.newPanel.length?data.newPanel:data.oldPanel;ret=this._super("select",event,{tab:tab.find(".ui-tabs-anchor")[0],panel:panel[0],index:tab.closest("li").index()})}else if(type==="activate"&&data.newTab.length){ret=this._super("show",event,{tab:data.newTab.find(".ui-tabs-anchor")[0],panel:data.newPanel[0],index:data.newTab.closest("li").index()})}return ret}});$.widget("ui.tabs",$.ui.tabs,{select:function(index){index=this._getIndex(index);if(index===-1){if(this.options.collapsible&&this.options.selected!==-1){index=this.options.selected}else{return}}this.anchors.eq(index).trigger(this.options.event+this.eventNamespace)}});(function(){var listId=0;$.widget("ui.tabs",$.ui.tabs,{options:{cookie:null},_create:function(){var options=this.options,active;if(options.active==null&&options.cookie){active=parseInt(this._cookie(),10);if(active===-1){active=false}options.active=active}this._super()},_cookie:function(active){var cookie=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++listId)];if(arguments.length){cookie.push(active===false?-1:active);cookie.push(this.options.cookie)}return $.cookie.apply(null,cookie)},_refresh:function(){this._super();if(this.options.cookie){this._cookie(this.options.active,this.options.cookie)}},_eventHandler:function(){this._superApply(arguments);if(this.options.cookie){this._cookie(this.options.active,this.options.cookie)}},_destroy:function(){this._super();if(this.options.cookie){this._cookie(null,this.options.cookie)}}})})();$.widget("ui.tabs",$.ui.tabs,{_trigger:function(type,event,data){var _data=$.extend({},data);if(type==="load"){_data.panel=_data.panel[0];_data.tab=_data.tab.find(".ui-tabs-anchor")[0]}return this._super(type,event,_data)}});$.widget("ui.tabs",$.ui.tabs,{options:{fx:null},_getFx:function(){var hide,show,fx=this.options.fx;if(fx){if($.isArray(fx)){hide=fx[0];show=fx[1]}else{hide=show=fx}}return fx?{show:show,hide:hide}:null},_toggle:function(event,eventData){var that=this,toShow=eventData.newPanel,toHide=eventData.oldPanel,fx=this._getFx();if(!fx){return this._super(event,eventData)}that.running=true;function complete(){that.running=false;that._trigger("activate",event,eventData)}function show(){eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(toShow.length&&fx.show){toShow.animate(fx.show,fx.show.duration,function(){complete()})}else{toShow.show();complete()}}if(toHide.length&&fx.hide){toHide.animate(fx.hide,fx.hide.duration,function(){eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");show()})}else{eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");toHide.hide();show()}}})}})(jQuery);(function($){var increments=0;function addDescribedBy(elem,id){var describedby=(elem.attr("aria-describedby")||"").split(/\s+/);describedby.push(id);elem.data("ui-tooltip-id",id).attr("aria-describedby",$.trim(describedby.join(" ")))}function removeDescribedBy(elem){var id=elem.data("ui-tooltip-id"),describedby=(elem.attr("aria-describedby")||"").split(/\s+/),index=$.inArray(id,describedby);if(index!==-1){describedby.splice(index,1)}elem.removeData("ui-tooltip-id");describedby=$.trim(describedby.join(" "));if(describedby){elem.attr("aria-describedby",describedby)}else{elem.removeAttr("aria-describedby")}}$.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return $(this).attr("title")},hide:true,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:true,tooltipClass:null,track:false,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"});this.tooltips={};this.parents={};if(this.options.disabled){this._disable()}},_setOption:function(key,value){var that=this;if(key==="disabled"){this[value?"_disable":"_enable"]();this.options[key]=value;return}this._super(key,value);if(key==="content"){$.each(this.tooltips,function(id,element){that._updateContent(element)})}},_disable:function(){var that=this;$.each(this.tooltips,function(id,element){var event=$.Event("blur");event.target=event.currentTarget=element[0];that.close(event,true)});this.element.find(this.options.items).andSelf().each(function(){var element=$(this);if(element.is("[title]")){element.data("ui-tooltip-title",element.attr("title")).attr("title","")}})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var element=$(this);if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"))}})},open:function(event){var that=this,target=$(event?event.target:this.element).closest(this.options.items);if(!target.length||target.data("ui-tooltip-id")){return}if(target.attr("title")){target.data("ui-tooltip-title",target.attr("title"))}target.data("ui-tooltip-open",true);if(event&&event.type==="mouseover"){target.parents().each(function(){var parent=$(this),blurEvent;if(parent.data("ui-tooltip-open")){blurEvent=$.Event("blur");blurEvent.target=blurEvent.currentTarget=this;that.close(blurEvent,true)}if(parent.attr("title")){parent.uniqueId();that.parents[this.id]={element:this,title:parent.attr("title")};parent.attr("title","")}})}this._updateContent(target,event)},_updateContent:function(target,event){var content,contentOption=this.options.content,that=this,eventType=event?event.type:null;if(typeof contentOption==="string"){return this._open(event,target,contentOption)}content=contentOption.call(target[0],function(response){if(!target.data("ui-tooltip-open")){return}that._delay(function(){if(event){event.type=eventType}this._open(event,target,response)})});if(content){this._open(event,target,content)}},_open:function(event,target,content){var tooltip,events,delayedShow,positionOption=$.extend({},this.options.position);if(!content){return}tooltip=this._find(target);if(tooltip.length){tooltip.find(".ui-tooltip-content").html(content);return}if(target.is("[title]")){if(event&&event.type==="mouseover"){target.attr("title","")}else{target.removeAttr("title")}}tooltip=this._tooltip(target);addDescribedBy(target,tooltip.attr("id"));tooltip.find(".ui-tooltip-content").html(content);function position(event){positionOption.of=event;if(tooltip.is(":hidden")){return}tooltip.position(positionOption)}if(this.options.track&&event&&/^mouse/.test(event.type)){this._on(this.document,{mousemove:position});position(event)}else{tooltip.position($.extend({of:target},this.options.position))}tooltip.hide();this._show(tooltip,this.options.show);if(this.options.show&&this.options.show.delay){delayedShow=setInterval(function(){if(tooltip.is(":visible")){position(positionOption.of);clearInterval(delayedShow)}},$.fx.interval)}this._trigger("open",event,{tooltip:tooltip});events={keyup:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE){var fakeEvent=$.Event(event);fakeEvent.currentTarget=target[0];this.close(fakeEvent,true)}},remove:function(){this._removeTooltip(tooltip)}};if(!event||event.type==="mouseover"){events.mouseleave="close"}if(!event||event.type==="focusin"){events.focusout="close"}this._on(true,target,events)},close:function(event){var that=this,target=$(event?event.currentTarget:this.element),tooltip=this._find(target);if(this.closing){return}if(target.data("ui-tooltip-title")){target.attr("title",target.data("ui-tooltip-title"))}removeDescribedBy(target);tooltip.stop(true);this._hide(tooltip,this.options.hide,function(){that._removeTooltip($(this))});target.removeData("ui-tooltip-open");this._off(target,"mouseleave focusout keyup");if(target[0]!==this.element[0]){this._off(target,"remove")}this._off(this.document,"mousemove");if(event&&event.type==="mouseleave"){$.each(this.parents,function(id,parent){$(parent.element).attr("title",parent.title);delete that.parents[id]})}this.closing=true;this._trigger("close",event,{tooltip:tooltip});this.closing=false},_tooltip:function(element){var id="ui-tooltip-"+increments++,tooltip=$("
    ").attr({id:id,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));$("
    ").addClass("ui-tooltip-content").appendTo(tooltip);tooltip.appendTo(this.document[0].body);if($.fn.bgiframe){tooltip.bgiframe()}this.tooltips[id]=element;return tooltip},_find:function(target){var id=target.data("ui-tooltip-id");return id?$("#"+id):$()},_removeTooltip:function(tooltip){tooltip.remove();delete this.tooltips[tooltip.attr("id")]},_destroy:function(){var that=this;$.each(this.tooltips,function(id,element){var event=$.Event("blur");event.target=event.currentTarget=element[0];that.close(event,true);$("#"+id).remove();if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"));element.removeData("ui-tooltip-title")}})}})})(jQuery);(function($,undefined){var uuid=0,runiqueId=/^ui-id-\d+$/;$.ui=$.ui||{};if($.ui.version){return}$.extend($.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}});$.fn.extend({_focus:$.fn.focus,focus:function(delay,fn){return typeof delay==="number"?this.each(function(){var elem=this;setTimeout(function(){$(elem).focus();if(fn){fn.call(elem)}},delay)}):this._focus.apply(this,arguments)},scrollParent:function(){var scrollParent;if($.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))){scrollParent=this.parents().filter(function(){return/(relative|absolute|fixed)/.test($.css(this,"position"))&&/(auto|scroll)/.test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"))}).eq(0)}else{scrollParent=this.parents().filter(function(){return/(auto|scroll)/.test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"))}).eq(0)}return/fixed/.test(this.css("position"))||!scrollParent.length?$(document):scrollParent},zIndex:function(zIndex){if(zIndex!==undefined){return this.css("zIndex",zIndex)}if(this.length){var elem=$(this[0]),position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}}return 0},uniqueId:function(){return this.each(function(){if(!this.id){this.id="ui-id-"+ ++uuid}})},removeUniqueId:function(){return this.each(function(){if(runiqueId.test(this.id)){$(this).removeAttr("id")}})}});function focusable(element,isTabIndexNotNaN){var map,mapName,img,nodeName=element.nodeName.toLowerCase();if("area"===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false}img=$("img[usemap=#"+mapName+"]")[0];return!!img&&visible(img)}return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"===nodeName?element.href||isTabIndexNotNaN:isTabIndexNotNaN)&&visible(element)}function visible(element){return $.expr.filters.visible(element)&&!$(element).parents().andSelf().filter(function(){return $.css(this,"visibility")==="hidden"}).length}$.extend($.expr[":"],{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName)}}):function(elem,i,match){return!!$.data(elem,match[3])},focusable:function(element){return focusable(element,!isNaN($.attr(element,"tabindex")))},tabbable:function(element){var tabIndex=$.attr(element,"tabindex"),isTabIndexNaN=isNaN(tabIndex);return(isTabIndexNaN||tabIndex>=0)&&focusable(element,!isTabIndexNaN)}});$(function(){var body=document.body,div=body.appendChild(div=document.createElement("div"));div.offsetHeight;$.extend(div.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});$.support.minHeight=div.offsetHeight===100;$.support.selectstart="onselectstart"in div;body.removeChild(div).style.display="none"});if(!$("").outerWidth(1).jquery){$.each(["Width","Height"],function(i,name){var side=name==="Width"?["Left","Right"]:["Top","Bottom"],type=name.toLowerCase(),orig={innerWidth:$.fn.innerWidth,innerHeight:$.fn.innerHeight,outerWidth:$.fn.outerWidth,outerHeight:$.fn.outerHeight};function reduce(elem,size,border,margin){$.each(side,function(){size-=parseFloat($.css(elem,"padding"+this))||0;if(border){size-=parseFloat($.css(elem,"border"+this+"Width"))||0}if(margin){size-=parseFloat($.css(elem,"margin"+this))||0}});return size}$.fn["inner"+name]=function(size){if(size===undefined){return orig["inner"+name].call(this)}return this.each(function(){$(this).css(type,reduce(this,size)+"px")})};$.fn["outer"+name]=function(size,margin){if(typeof size!=="number"){return orig["outer"+name].call(this,size)}return this.each(function(){$(this).css(type,reduce(this,size,true,margin)+"px")})}})}if($("").data("a-b","a").removeData("a-b").data("a-b")){$.fn.removeData=function(removeData){return function(key){if(arguments.length){return removeData.call(this,$.camelCase(key))}else{return removeData.call(this)}}}($.fn.removeData)}(function(){var uaMatch=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];$.ui.ie=uaMatch.length?true:false;$.ui.ie6=parseFloat(uaMatch[1],10)===6})();$.fn.extend({disableSelection:function(){return this.bind(($.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(event){event.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});$.extend($.ui,{plugin:{add:function(module,option,set){var i,proto=$.ui[module].prototype;for(i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args){var i,set=instance.plugins[name];if(!set||!instance.element[0].parentNode||instance.element[0].parentNode.nodeType===11){return}for(i=0;i0){return true}el[scroll]=1;has=el[scroll]>0;el[scroll]=0;return has},isOverAxis:function(x,reference,size){return x>reference&&x",options:{disabled:false,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=uuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this.bindings=$();this.hoverable=$();this.focusable=$();if(element!==this){$.data(element,this.widgetName,this);$.data(element,this.widgetFullName,this);this._on(true,this.element,{remove:function(event){if(event.target===element){this.destroy()}}});this.document=$(element.style?element.ownerDocument:element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow)}this._create();this._trigger("create",null,this._getCreateEventData());this._init()},_getCreateOptions:$.noop,_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){this._destroy();this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData($.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:$.noop,widget:function(){return this.element},option:function(key,value){var options=key,parts,curOption,i;if(arguments.length===0){return $.widget.extend({},this.options)}if(typeof key==="string"){options={};parts=key.split(".");key=parts.shift();if(parts.length){curOption=options[key]=$.widget.extend({},this.options[key]);for(i=0;i=9)&&!event.button){return this._mouseUp(event)}if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(this._mouseDownEvent,event)!==false;this._mouseStarted?this._mouseDrag(event):this._mouseUp(event)}return!this._mouseStarted},_mouseUp:function(event){$(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target===this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(event)}return false},_mouseDistanceMet:function(event){return Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance},_mouseDelayMet:function(event){return this.mouseDelayMet},_mouseStart:function(event){},_mouseDrag:function(event){},_mouseStop:function(event){},_mouseCapture:function(event){return true}})})(jQuery);(function($,undefined){$.ui=$.ui||{};var cachedScrollbarWidth,max=Math.max,abs=Math.abs,round=Math.round,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return[parseInt(offsets[0],10)*(rpercent.test(offsets[0])?width/100:1),parseInt(offsets[1],10)*(rpercent.test(offsets[1])?height/100:1)]}function parseCss(element,property){return parseInt($.css(element,property),10)||0}$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth}var w1,w2,div=$("
    "),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth}div.remove();return cachedScrollbarWidth=w1-w2},getScrollInfo:function(within){var overflowX=within.isWindow?"":within.element.css("overflow-x"),overflowY=within.isWindow?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||overflowX==="auto"&&within.width0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidthmax(abs(top),abs(bottom))){feedback.important="horizontal"}else{feedback.important="vertical"}options.using.call(this,props,feedback)}}elem.offset($.extend(position,{using:using}))})};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth){if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight}else if(overRight>0&&overLeft<=0){position.left=withinOffset}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth}else{position.left=withinOffset}}}else if(overLeft>0){position.left+=overLeft}else if(overRight>0){position.left-=overRight}else{position.left=max(position.left-collisionPosLeft,position.left)}},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight){if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom}else if(overBottom>0&&overTop<=0){position.top=withinOffset}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight}else{position.top=withinOffset}}}else if(overTop>0){position.top+=overTop}else if(overBottom>0){position.top-=overBottom}else{position.top=max(position.top-collisionPosTop,position.top)}}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)overTop&&(newOverBottom<0||newOverBottom0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(position.top+myOffset+atOffset+offset>overBottom&&(newOverTop>0||abs(newOverTop)10&&offsetLeft<11;testElement.innerHTML="";testElementParent.removeChild(testElement)})();if($.uiBackCompat!==false){(function($){var _position=$.fn.position;$.fn.position=function(options){if(!options||!options.offset){return _position.call(this,options)}var offset=options.offset.split(" "),at=options.at.split(" ");if(offset.length===1){offset[1]=offset[0]}if(/^\d/.test(offset[0])){offset[0]="+"+offset[0]}if(/^\d/.test(offset[1])){offset[1]="+"+offset[1]}if(at.length===1){if(/left|center|right/.test(at[0])){at[1]="center"}else{at[1]=at[0];at[0]="center"}}return _position.call(this,$.extend(options,{at:at[0]+offset[0]+" "+at[1]+offset[1],offset:undefined}))}})(jQuery)}})(jQuery);(function($,undefined){var uid=0,hideProps={},showProps={};hideProps.height=hideProps.paddingTop=hideProps.paddingBottom=hideProps.borderTopWidth=hideProps.borderBottomWidth="hide";showProps.height=showProps.paddingTop=showProps.paddingBottom=showProps.borderTopWidth=showProps.borderBottomWidth="show";$.widget("ui.accordion",{version:"1.9.2",options:{active:0,animate:{},collapsible:false,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 accordionId=this.accordionId="ui-accordion-"+(this.element.attr("id")||++uid),options=this.options;this.prevShow=this.prevHide=$();this.element.addClass("ui-accordion ui-widget ui-helper-reset");this.headers=this.element.find(options.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();if(!options.collapsible&&(options.active===false||options.active==null)){options.active=0}if(options.active<0){options.active+=this.headers.length}this.active=this._findActive(options.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(i){var header=$(this),headerId=header.attr("id"),panel=header.next(),panelId=panel.attr("id");if(!headerId){headerId=accordionId+"-header-"+i;header.attr("id",headerId)}if(!panelId){panelId=accordionId+"-panel-"+i;panel.attr("id",panelId)}header.attr("aria-controls",panelId);panel.attr("aria-labelledby",headerId)}).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex",0)}else{this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"})}this._on(this.headers,{keydown:"_keydown"});this._on(this.headers.next(),{keydown:"_panelKeyDown"});this._setupEvents(options.event)},_getCreateEventData:function(){return{header:this.active,content:!this.active.length?$():this.active.next()}},_createIcons:function(){var icons=this.options.icons;if(icons){$("").addClass("ui-accordion-header-icon ui-icon "+icons.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(icons.header).addClass(icons.activeHeader);this.headers.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var contents;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(){if(/^ui-accordion/.test(this.id)){this.removeAttribute("id")}});this._destroyIcons();contents=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(){if(/^ui-accordion/.test(this.id)){this.removeAttribute("id")}});if(this.options.heightStyle!=="content"){contents.css("height","")}},_setOption:function(key,value){if(key==="active"){this._activate(value);return}if(key==="event"){if(this.options.event){this._off(this.headers,this.options.event)}this._setupEvents(value)}this._super(key,value);if(key==="collapsible"&&!value&&this.options.active===false){this._activate(0)}if(key==="icons"){this._destroyIcons();if(value){this._createIcons()}}if(key==="disabled"){this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!value)}},_keydown:function(event){if(event.altKey||event.ctrlKey){return}var keyCode=$.ui.keyCode,length=this.headers.length,currentIndex=this.headers.index(event.target),toFocus=false;switch(event.keyCode){case keyCode.RIGHT:case keyCode.DOWN:toFocus=this.headers[(currentIndex+1)%length];break;case keyCode.LEFT:case keyCode.UP:toFocus=this.headers[(currentIndex-1+length)%length];break;case keyCode.SPACE:case keyCode.ENTER:this._eventHandler(event);break;case keyCode.HOME:toFocus=this.headers[0];break;case keyCode.END:toFocus=this.headers[length-1];break}if(toFocus){$(event.target).attr("tabIndex",-1);$(toFocus).attr("tabIndex",0);toFocus.focus();event.preventDefault()}},_panelKeyDown:function(event){if(event.keyCode===$.ui.keyCode.UP&&event.ctrlKey){$(event.currentTarget).prev().focus()}},refresh:function(){var maxHeight,overflow,heightStyle=this.options.heightStyle,parent=this.element.parent();if(heightStyle==="fill"){if(!$.support.minHeight){overflow=parent.css("overflow");parent.css("overflow","hidden")}maxHeight=parent.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return}maxHeight-=elem.outerHeight(true)});if(overflow){parent.css("overflow",overflow)}this.headers.each(function(){maxHeight-=$(this).outerHeight(true)});this.headers.next().each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")}else if(heightStyle==="auto"){maxHeight=0;this.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).css("height","").height())}).height(maxHeight)}},_activate:function(index){var active=this._findActive(index)[0];if(active===this.active[0]){return}active=active||this.active[0];this._eventHandler({target:active,currentTarget:active,preventDefault:$.noop})},_findActive:function(selector){return typeof selector==="number"?this.headers.eq(selector):$()},_setupEvents:function(event){var events={};if(!event){return}$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"});this._on(this.headers,events)},_eventHandler:function(event){var options=this.options,active=this.active,clicked=$(event.currentTarget),clickedIsActive=clicked[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():clicked.next(),toHide=active.next(),eventData={oldHeader:active,oldPanel:toHide,newHeader:collapsing?$():clicked,newPanel:toShow};event.preventDefault();if(clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===false){return}options.active=collapsing?false:this.headers.index(clicked);this.active=clickedIsActive?$():clicked;this._toggle(eventData);active.removeClass("ui-accordion-header-active ui-state-active");if(options.icons){active.children(".ui-accordion-header-icon").removeClass(options.icons.activeHeader).addClass(options.icons.header)}if(!clickedIsActive){clicked.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top");if(options.icons){clicked.children(".ui-accordion-header-icon").removeClass(options.icons.header).addClass(options.icons.activeHeader)}clicked.next().addClass("ui-accordion-content-active")}},_toggle:function(data){var toShow=data.newPanel,toHide=this.prevShow.length?this.prevShow:data.oldPanel;this.prevShow.add(this.prevHide).stop(true,true);this.prevShow=toShow;this.prevHide=toHide;if(this.options.animate){this._animate(toShow,toHide,data)}else{toHide.hide();toShow.show();this._toggleComplete(data)}toHide.attr({"aria-expanded":"false","aria-hidden":"true"});toHide.prev().attr("aria-selected","false");if(toShow.length&&toHide.length){toHide.prev().attr("tabIndex",-1)}else if(toShow.length){this.headers.filter(function(){return $(this).attr("tabIndex")===0}).attr("tabIndex",-1)}toShow.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(toShow,toHide,data){var total,easing,duration,that=this,adjust=0,down=toShow.length&&(!toHide.length||toShow.index()",options:{appendTo:"body",autoFocus:false,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 suppressKeyPress,suppressKeyPressRepeat,suppressInput;this.isMultiLine=this._isMultiLine();this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"];this.isNewMenu=true;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off");this._on(this.element,{keydown:function(event){if(this.element.prop("readOnly")){suppressKeyPress=true;suppressInput=true;suppressKeyPressRepeat=true;return}suppressKeyPress=false;suppressInput=false;suppressKeyPressRepeat=false;var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:suppressKeyPress=true;this._move("previousPage",event);break;case keyCode.PAGE_DOWN:suppressKeyPress=true;this._move("nextPage",event);break;case keyCode.UP:suppressKeyPress=true;this._keyEvent("previous",event);break;case keyCode.DOWN:suppressKeyPress=true;this._keyEvent("next",event);break;case keyCode.ENTER:case keyCode.NUMPAD_ENTER:if(this.menu.active){suppressKeyPress=true;event.preventDefault();this.menu.select(event)}break;case keyCode.TAB:if(this.menu.active){this.menu.select(event)}break;case keyCode.ESCAPE:if(this.menu.element.is(":visible")){this._value(this.term);this.close(event);event.preventDefault()}break;default:suppressKeyPressRepeat=true;this._searchTimeout(event);break}},keypress:function(event){if(suppressKeyPress){suppressKeyPress=false;event.preventDefault();return}if(suppressKeyPressRepeat){return}var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:this._move("previousPage",event);break;case keyCode.PAGE_DOWN:this._move("nextPage",event);break;case keyCode.UP:this._keyEvent("previous",event);break;case keyCode.DOWN:this._keyEvent("next",event);break}},input:function(event){if(suppressInput){suppressInput=false;event.preventDefault();return}this._searchTimeout(event)},focus:function(){this.selectedItem=null;this.previous=this._value()},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching);this.close(event);this._change(event)}});this._initSource();this.menu=$("
    "+(numMonths[0]>0&&col==numMonths[1]-1?'
    ':""):"");group+=calender}html+=group}html+=buttonPanel+($.ui.ie6&&!inst.inline?'':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='
    ';var monthHtml="";if(secondary||!changeMonth)monthHtml+=''+monthNames[drawMonth]+"";else{var inMinYear=minDate&&minDate.getFullYear()==drawYear;var inMaxYear=maxDate&&maxDate.getFullYear()==drawYear;monthHtml+='"}if(!showMonthAfterYear)html+=monthHtml+(secondary||!(changeMonth&&changeYear)?" ":"");if(!inst.yearshtml){inst.yearshtml="";if(secondary||!changeYear)html+=''+drawYear+"";else{var years=this._get(inst,"yearRange").split(":");var thisYear=(new Date).getFullYear();var determineYear=function(value){var year=value.match(/c[+-].*/)?drawYear+parseInt(value.substring(1),10):value.match(/[+-].*/)?thisYear+parseInt(value,10):parseInt(value,10);return isNaN(year)?thisYear:year};var year=determineYear(years[0]);var endYear=Math.max(year,determineYear(years[1]||""));year=minDate?Math.max(year,minDate.getFullYear()):year;endYear=maxDate?Math.min(endYear,maxDate.getFullYear()):endYear;inst.yearshtml+='";html+=inst.yearshtml;inst.yearshtml=null}}html+=this._get(inst,"yearSuffix");if(showMonthAfterYear)html+=(secondary||!(changeMonth&&changeYear)?" ":"")+monthHtml;html+="
    ";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y")this._notifyChange(inst)},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");var newDate=minDate&&datemaxDate?maxDate:newDate;return newDate},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange)onChange.apply(inst.input?inst.input[0]:null,[inst.selectedYear,inst.selectedMonth+1,inst])},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return numMonths==null?[1,1]:typeof numMonths=="number"?[1,numMonths]:numMonths},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null)},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));if(offset<0)date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()));return this._isInRange(inst,date)},_isInRange:function(inst,date){var minDate=this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return(!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime())},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=typeof shortYearCutoff!="string"?shortYearCutoff:(new Date).getFullYear()%100+parseInt(shortYearCutoff,10);return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=day?typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day)):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function bindHover(dpDiv){var selector="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return dpDiv.delegate(selector,"mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1)$(this).removeClass("ui-datepicker-prev-hover");if(this.className.indexOf("ui-datepicker-next")!=-1)$(this).removeClass("ui-datepicker-next-hover")}).delegate(selector,"mouseover",function(){if(!$.datepicker._isDisabledDatepicker(instActive.inline?dpDiv.parent()[0]:instActive.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1)$(this).addClass("ui-datepicker-prev-hover");if(this.className.indexOf("ui-datepicker-next")!=-1)$(this).addClass("ui-datepicker-next-hover")}})}function extendRemove(target,props){$.extend(target,props);for(var name in props)if(props[name]==null||props[name]==undefined)target[name]=props[name];return target}$.fn.datepicker=function(options){if(!this.length){return this}if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate"||options=="widget"))return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string")return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs));return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker;$.datepicker.initialized=false;$.datepicker.uuid=(new Date).getTime();$.datepicker.version="1.9.2";window["DP_jQuery_"+dpuuid]=$})(jQuery);(function($,undefined){var uiDialogClasses="ui-dialog ui-widget ui-widget-content ui-corner-all ",sizeRelatedOptions={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};$.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset)}}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title");if(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 that=this,options=this.options,title=options.title||" ",uiDialog,uiDialogTitlebar,uiDialogTitlebarClose,uiDialogTitle,uiDialogButtonPane;uiDialog=(this.uiDialog=$("
    ")).addClass(uiDialogClasses+options.dialogClass).css({display:"none",outline:0,zIndex:options.zIndex}).attr("tabIndex",-1).keydown(function(event){if(options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){that.close(event);event.preventDefault()}}).mousedown(function(event){that.moveToTop(false,event)}).appendTo("body");this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(uiDialog);uiDialogTitlebar=(this.uiDialogTitlebar=$("
    ")).addClass("ui-dialog-titlebar ui-widget-header "+"ui-corner-all ui-helper-clearfix").bind("mousedown",function(){uiDialog.focus()}).prependTo(uiDialog);uiDialogTitlebarClose=$("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(event){event.preventDefault();that.close(event)}).appendTo(uiDialogTitlebar);(this.uiDialogTitlebarCloseText=$("")).addClass("ui-icon ui-icon-closethick").text(options.closeText).appendTo(uiDialogTitlebarClose);uiDialogTitle=$("").uniqueId().addClass("ui-dialog-title").html(title).prependTo(uiDialogTitlebar);uiDialogButtonPane=(this.uiDialogButtonPane=$("
    ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");(this.uiButtonSet=$("
    ")).addClass("ui-dialog-buttonset").appendTo(uiDialogButtonPane);uiDialog.attr({role:"dialog","aria-labelledby":uiDialogTitle.attr("id")});uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();this._hoverable(uiDialogTitlebarClose);this._focusable(uiDialogTitlebarClose);if(options.draggable&&$.fn.draggable){this._makeDraggable()}if(options.resizable&&$.fn.resizable){this._makeResizable()}this._createButtons(options.buttons);this._isOpen=false;if($.fn.bgiframe){uiDialog.bgiframe()}this._on(uiDialog,{keydown:function(event){if(!options.modal||event.keyCode!==$.ui.keyCode.TAB){return}var tabbables=$(":tabbable",uiDialog),first=tabbables.filter(":first"),last=tabbables.filter(":last");if(event.target===last[0]&&!event.shiftKey){first.focus(1);return false}else if(event.target===first[0]&&event.shiftKey){last.focus(1);return false}}})},_init:function(){if(this.options.autoOpen){this.open()}},_destroy:function(){var next,oldPosition=this.oldPosition;if(this.overlay){this.overlay.destroy()}this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();if(this.originalTitle){this.element.attr("title",this.originalTitle)}next=oldPosition.parent.children().eq(oldPosition.index);if(next.length&&next[0]!==this.element[0]){next.before(this.element)}else{oldPosition.parent.append(this.element)}},widget:function(){return this.uiDialog},close:function(event){var that=this,maxZ,thisZ;if(!this._isOpen){return}if(false===this._trigger("beforeClose",event)){return}this._isOpen=false;if(this.overlay){this.overlay.destroy()}if(this.options.hide){this._hide(this.uiDialog,this.options.hide,function(){that._trigger("close",event)})}else{this.uiDialog.hide();this._trigger("close",event)}$.ui.dialog.overlay.resize();if(this.options.modal){maxZ=0;$(".ui-dialog").each(function(){if(this!==that.uiDialog[0]){thisZ=$(this).css("z-index");if(!isNaN(thisZ)){maxZ=Math.max(maxZ,thisZ)}}});$.ui.dialog.maxZ=maxZ}return this},isOpen:function(){return this._isOpen},moveToTop:function(force,event){var options=this.options,saveScroll;if(options.modal&&!force||!options.stack&&!options.modal){return this._trigger("focus",event)}if(options.zIndex>$.ui.dialog.maxZ){$.ui.dialog.maxZ=options.zIndex}if(this.overlay){$.ui.dialog.maxZ+=1;$.ui.dialog.overlay.maxZ=$.ui.dialog.maxZ;this.overlay.$el.css("z-index",$.ui.dialog.overlay.maxZ)}saveScroll={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};$.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",$.ui.dialog.maxZ);this.element.attr(saveScroll);this._trigger("focus",event);return this},open:function(){if(this._isOpen){return}var hasFocus,options=this.options,uiDialog=this.uiDialog;this._size();this._position(options.position);uiDialog.show(options.show);this.overlay=options.modal?new $.ui.dialog.overlay(this):null;this.moveToTop(true);hasFocus=this.element.find(":tabbable");if(!hasFocus.length){hasFocus=this.uiDialogButtonPane.find(":tabbable");if(!hasFocus.length){hasFocus=uiDialog}}hasFocus.eq(0).focus();this._isOpen=true;this._trigger("open");return this},_createButtons:function(buttons){var that=this,hasButtons=false;this.uiDialogButtonPane.remove();this.uiButtonSet.empty();if(typeof buttons==="object"&&buttons!==null){$.each(buttons,function(){return!(hasButtons=true)})}if(hasButtons){$.each(buttons,function(name,props){var button,click;props=$.isFunction(props)?{click:props,text:name}:props;props=$.extend({type:"button"},props);click=props.click;props.click=function(){click.apply(that.element[0],arguments)};button=$("",props).appendTo(that.uiButtonSet);if($.fn.button){button.button()}});this.uiDialog.addClass("ui-dialog-buttons");this.uiDialogButtonPane.appendTo(this.uiDialog)}else{this.uiDialog.removeClass("ui-dialog-buttons")}},_makeDraggable:function(){var that=this,options=this.options;function filteredUi(ui){return{position:ui.position,offset:ui.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){$(this).addClass("ui-dialog-dragging");that._trigger("dragStart",event,filteredUi(ui))},drag:function(event,ui){that._trigger("drag",event,filteredUi(ui))},stop:function(event,ui){options.position=[ui.position.left-that.document.scrollLeft(),ui.position.top-that.document.scrollTop()];$(this).removeClass("ui-dialog-dragging");that._trigger("dragStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}})},_makeResizable:function(handles){handles=handles===undefined?this.options.resizable:handles;var that=this,options=this.options,position=this.uiDialog.css("position"),resizeHandles=typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw";function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:this._minHeight(),handles:resizeHandles,start:function(event,ui){$(this).addClass("ui-dialog-resizing");that._trigger("resizeStart",event,filteredUi(ui))},resize:function(event,ui){that._trigger("resize",event,filteredUi(ui))},stop:function(event,ui){$(this).removeClass("ui-dialog-resizing");options.height=$(this).height();options.width=$(this).width();that._trigger("resizeStop",event,filteredUi(ui));$.ui.dialog.overlay.resize()}}).css("position",position).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var options=this.options;if(options.height==="auto"){return options.minHeight}else{return Math.min(options.minHeight,options.height)}},_position:function(position){var myAt=[],offset=[0,0],isVisible;if(position){if(typeof position==="string"||typeof position==="object"&&"0"in position){myAt=position.split?position.split(" "):[position[0],position[1]];if(myAt.length===1){myAt[1]=myAt[0]}$.each(["left","top"],function(i,offsetPosition){if(+myAt[i]===myAt[i]){offset[i]=myAt[i];myAt[i]=offsetPosition}});position={my:myAt[0]+(offset[0]<0?offset[0]:"+"+offset[0])+" "+myAt[1]+(offset[1]<0?offset[1]:"+"+offset[1]),at:myAt.join(" ")}}position=$.extend({},$.ui.dialog.prototype.options.position,position)}else{position=$.ui.dialog.prototype.options.position}isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show()}this.uiDialog.position(position);if(!isVisible){this.uiDialog.hide()}},_setOptions:function(options){var that=this,resizableOptions={},resize=false;$.each(options,function(key,value){that._setOption(key,value);if(key in sizeRelatedOptions){resize=true}if(key in resizableRelatedOptions){resizableOptions[key]=value}});if(resize){this._size()}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option",resizableOptions)}},_setOption:function(key,value){var isDraggable,isResizable,uiDialog=this.uiDialog;switch(key){case"buttons":this._createButtons(value);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+value);break;case"dialogClass":uiDialog.removeClass(this.options.dialogClass).addClass(uiDialogClasses+value);break;case"disabled":if(value){uiDialog.addClass("ui-dialog-disabled")}else{uiDialog.removeClass("ui-dialog-disabled")}break;case"draggable":isDraggable=uiDialog.is(":data(draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy")}if(!isDraggable&&value){this._makeDraggable()}break;case"position":this._position(value);break;case"resizable":isResizable=uiDialog.is(":data(resizable)");if(isResizable&&!value){uiDialog.resizable("destroy")}if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value)}if(!isResizable&&value!==false){this._makeResizable(value)}break;case"title":$(".ui-dialog-title",this.uiDialogTitlebar).html(""+(value||" "));break}this._super(key,value); -},_size:function(){var nonContentHeight,minContentHeight,autoHeight,options=this.options,isVisible=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(options.minWidth>options.width){options.width=options.minWidth}nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).outerHeight();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);if(options.height==="auto"){if($.support.minHeight){this.element.css({minHeight:minContentHeight,height:"auto"})}else{this.uiDialog.show();autoHeight=this.element.css("height","auto").height();if(!isVisible){this.uiDialog.hide()}this.element.height(Math.max(autoHeight,minContentHeight))}}else{this.element.height(Math.max(options.height-nonContentHeight,0))}if(this.uiDialog.is(":data(resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight())}}});$.extend($.ui.dialog,{uuid:0,maxZ:0,getTitleId:function($el){var id=$el.attr("id");if(!id){this.uuid+=1;id=this.uuid}return"ui-dialog-title-"+id},overlay:function(dialog){this.$el=$.ui.dialog.overlay.create(dialog)}});$.extend($.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:$.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(event){return event+".dialog-overlay"}).join(" "),create:function(dialog){if(this.instances.length===0){setTimeout(function(){if($.ui.dialog.overlay.instances.length){$(document).bind($.ui.dialog.overlay.events,function(event){if($(event.target).zIndex()<$.ui.dialog.overlay.maxZ){return false}})}},1);$(window).bind("resize.dialog-overlay",$.ui.dialog.overlay.resize)}var $el=this.oldInstances.pop()||$("
    ").addClass("ui-widget-overlay");$(document).bind("keydown.dialog-overlay",function(event){var instances=$.ui.dialog.overlay.instances;if(instances.length!==0&&instances[instances.length-1]===$el&&dialog.options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){dialog.close(event);event.preventDefault()}});$el.appendTo(document.body).css({width:this.width(),height:this.height()});if($.fn.bgiframe){$el.bgiframe()}this.instances.push($el);return $el},destroy:function($el){var indexOf=$.inArray($el,this.instances),maxZ=0;if(indexOf!==-1){this.oldInstances.push(this.instances.splice(indexOf,1)[0])}if(this.instances.length===0){$([document,window]).unbind(".dialog-overlay")}$el.height(0).width(0).remove();$.each(this.instances,function(){maxZ=Math.max(maxZ,this.css("z-index"))});this.maxZ=maxZ},height:function(){var scrollHeight,offsetHeight;if($.ui.ie){scrollHeight=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);offsetHeight=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(scrollHeight
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css($(this).offset()).appendTo("body")});return true},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this.helper.addClass("ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager)$.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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);if(o.containment)this._setContainment();if(this._trigger("start",event)===false){this._clear();return false}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(this,event);this._mouseDrag(event,true);if($.ui.ddmanager)$.ui.ddmanager.dragStart(this,event);return true},_mouseDrag:function(event,noPropagation){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false}this.position=ui.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";if($.ui.ddmanager)$.ui.ddmanager.drag(this,event);return false},_mouseStop:function(event){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour)dropped=$.ui.ddmanager.drop(this,event);if(this.dropped){dropped=this.dropped;this.dropped=false}var element=this.element[0],elementInDom=false;while(element&&(element=element.parentNode)){if(element==document){elementInDom=true}}if(!elementInDom&&this.options.helper==="original")return false;if(this.options.revert=="invalid"&&!dropped||this.options.revert=="valid"&&dropped||this.options.revert===true||$.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped)){var that=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(that._trigger("stop",event)!==false){that._clear()}})}else{if(this._trigger("stop",event)!==false){this._clear()}}return false},_mouseUp:function(event){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});if($.ui.ddmanager)$.ui.ddmanager.dragStop(this,event);return $.ui.mouse.prototype._mouseUp.call(this,event)},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(event){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==event.target)handle=true});return handle},_createHelper:function(event){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event])):o.helper=="clone"?this.element.clone().removeAttr("id"):this.element;if(!helper.parents("body").length)helper.appendTo(o.appendTo=="parent"?this.element[0].parentNode:o.appendTo);if(helper[0]!=this.element[0]&&!/(fixed|absolute)/.test(helper.css("position")))helper.css("position","absolute");return helper},_adjustOffsetFromHelper:function(obj){if(typeof obj=="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0}}if("left"in obj){this.offset.click.left=obj.left+this.margins.left}if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top"in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&$.ui.ie)po={top:0,left:0};return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var p=this.element.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,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 o=this.options;if(o.containment=="parent")o.containment=this.helper[0].parentNode;if(o.containment=="document"||o.containment=="window")this.containment=[o.containment=="document"?0:$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,o.containment=="document"?0:$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(o.containment=="document"?0:$(window).scrollLeft())+$(o.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(o.containment=="document"?0:$(window).scrollTop())+($(o.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(o.containment)&&o.containment.constructor!=Array){var c=$(o.containment);var ce=c[0];if(!ce)return;var co=c.offset();var over=$(ce).css("overflow")!="hidden";this.containment=[(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0),(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0),(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=c}else if(o.containment.constructor==Array){this.containment=o.containment}},_convertPositionTo:function(d,pos){if(!pos)pos=this.position;var mod=d=="absolute"?1:-1;var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);return{top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():scrollIsRootNode?0:scroll.scrollTop())*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod}},_generatePosition:function(event){var o=this.options,scroll=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);var pageX=event.pageX;var pageY=event.pageY;if(this.originalPosition){var containment;if(this.containment){if(this.relative_container){var co=this.relative_container.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top]}else{containment=this.containment}if(event.pageX-this.offset.click.leftcontainment[2])pageX=containment[2]+this.offset.click.left;if(event.pageY-this.offset.click.top>containment[3])pageY=containment[3]+this.offset.click.top}if(o.grid){var top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?!(top-this.offset.click.topcontainment[3])?top:!(top-this.offset.click.topcontainment[2])?left:!(left-this.offset.click.left=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!(l-d=t&&y1<=b||y2>=t&&y2<=b||y1b)&&(x1>=l&&x1<=r||x2>=l&&x2<=r||x1r);break;default:return false;break}};$.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,event){var m=$.ui.ddmanager.droppables[t.options.scope]||[];var type=event?event.type:null;var list=(t.currentItem||t.element).find(":data(droppable)").andSelf();droppablesLoop:for(var i=0;i")[0],colors,each=jQuery.each;supportElem.style.cssText="background-color:rgba(1,1,1,.5)";support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1;each(spaces,function(spaceName,space){space.cache="_"+spaceName;space.props.alpha={idx:3,type:"percent",def:1}});function clamp(value,prop,allowEmpty){var type=propTypes[prop.type]||{};if(value==null){return allowEmpty||!prop.def?null:prop.def}value=type.floor?~~value:parseFloat(value);if(isNaN(value)){return prop.def}if(type.mod){return(value+type.mod)%type.mod}return 0>value?0:type.maxtype.mod/2){startValue+=type.mod}else if(startValue-endValue>type.mod/2){startValue-=type.mod}}result[index]=clamp((endValue-startValue)*distance+startValue,prop)}});return this[spaceName](result)},blend:function(opaque){if(this._rgba[3]===1){return this}var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v}))},toRgbaString:function(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){return v==null?i>2?1:0:v});if(rgba[3]===1){rgba.pop();prefix="rgb("}return prefix+rgba.join()+")"},toHslaString:function(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){if(v==null){v=i>2?1:0}if(i&&i<3){v=Math.round(v*100)+"%"}return v});if(hsla[3]===1){hsla.pop();prefix="hsl("}return prefix+hsla.join()+")"},toHexString:function(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();if(includeAlpha){rgba.push(~~(alpha*255))}return"#"+jQuery.map(rgba,function(v){v=(v||0).toString(16);return v.length===1?"0"+v:v}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}});color.fn.parse.prototype=color.fn;function hue2rgb(p,q,h){h=(h+1)%1;if(h*6<1){return p+(q-p)*h*6}if(h*2<1){return q}if(h*3<2){return p+(q-p)*(2/3-h)*6}return p}spaces.hsla.to=function(rgba){if(rgba[0]==null||rgba[1]==null||rgba[2]==null){return[null,null,null,rgba[3]]}var r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=add*.5,h,s;if(min===max){h=0}else if(r===max){h=60*(g-b)/diff+360}else if(g===max){h=60*(b-r)/diff+120}else{h=60*(r-g)/diff+240}if(l===0||l===1){s=l}else if(l<=.5){s=diff/add}else{s=diff/(2-add)}return[Math.round(h)%360,s,l,a==null?1:a]};spaces.hsla.from=function(hsla){if(hsla[0]==null||hsla[1]==null||hsla[2]==null){return[null,null,null,hsla[3]]}var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=l<=.5?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(hue2rgb(p,q,h+1/3)*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-1/3)*255),a]};each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;color.fn[spaceName]=function(value){if(to&&!this[cache]){this[cache]=to(this._rgba)}if(value===undefined){return this[cache].slice()}var ret,type=jQuery.type(value),arr=type==="array"||type==="object"?value:arguments,local=this[cache].slice();each(props,function(key,prop){var val=arr[type==="object"?key:prop.idx];if(val==null){val=local[prop.idx]}local[prop.idx]=clamp(val,prop)});if(from){ret=color(from(local));ret[cache]=local;return ret}else{return color(local)}};each(props,function(key,prop){if(color.fn[key]){return}color.fn[key]=function(value){var vtype=jQuery.type(value),fn=key==="alpha"?this._hsla?"hsla":"rgba":spaceName,local=this[fn](),cur=local[prop.idx],match;if(vtype==="undefined"){return cur}if(vtype==="function"){value=value.call(this,cur);vtype=jQuery.type(value)}if(value==null&&prop.empty){return this}if(vtype==="string"){match=rplusequals.exec(value);if(match){value=cur+parseFloat(match[2])*(match[1]==="+"?1:-1)}}local[prop.idx]=value;return this[fn](local)}})});each(stepHooks,function(i,hook){jQuery.cssHooks[hook]={set:function(elem,value){var parsed,curElem,backgroundColor="";if(jQuery.type(value)!=="string"||(parsed=stringParse(value))){value=color(parsed||value);if(!support.rgba&&value._rgba[3]!==1){curElem=hook==="backgroundColor"?elem.parentNode:elem;while((backgroundColor===""||backgroundColor==="transparent")&&curElem&&curElem.style){try{backgroundColor=jQuery.css(curElem,"backgroundColor");curElem=curElem.parentNode}catch(e){}}value=value.blend(backgroundColor&&backgroundColor!=="transparent"?backgroundColor:"_default")}value=value.toRgbaString()}try{elem.style[hook]=value}catch(error){}}};jQuery.fx.step[hook]=function(fx){if(!fx.colorInit){fx.start=color(fx.elem,hook);fx.end=color(fx.end);fx.colorInit=true}jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos))}});jQuery.cssHooks.borderColor={expand:function(value){var expanded={};each(["Top","Right","Bottom","Left"],function(i,part){expanded["border"+part+"Color"]=value});return expanded}};colors=jQuery.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(){var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){jQuery.style(fx.elem,prop,fx.end);fx.setAttr=true}}});function getElementStyles(){var style=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,newStyle={},key,len;if(style&&style.length&&style[0]&&style[style[0]]){len=style.length;while(len--){key=style[len];if(typeof style[key]==="string"){newStyle[$.camelCase(key)]=style[key]}}}else{for(key in style){if(typeof style[key]==="string"){newStyle[key]=style[key]}}}return newStyle}function styleDifference(oldStyle,newStyle){var diff={},name,value;for(name in newStyle){value=newStyle[name];if(oldStyle[name]!==value){if(!shorthandStyles[name]){if($.fx.step[name]||!isNaN(parseFloat(value))){diff[name]=value}}}}return diff}$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var animated=$(this),baseClass=animated.attr("class")||"",applyClassChange,allAnimations=o.children?animated.find("*").andSelf():animated;allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles.call(this)}});applyClassChange=function(){$.each(classAnimationActions,function(i,action){if(value[action]){animated[action+"Class"](value[action])}})};applyClassChange();allAnimations=allAnimations.map(function(){this.end=getElementStyles.call(this.el[0]);this.diff=styleDifference(this.start,this.end);return this});animated.attr("class",baseClass);allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=jQuery.extend({},o,{queue:false,complete:function(){dfd.resolve(styleInfo)}});this.el.animate(this.diff,opts);return dfd.promise()});$.when.apply($,allAnimations.get()).done(function(){applyClassChange();$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"")})});o.complete.call(animated[0])})})};$.fn.extend({_addClass:$.fn.addClass,addClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):this._addClass(classNames)},_removeClass:$.fn.removeClass,removeClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):this._removeClass(classNames)},_toggleClass:$.fn.toggleClass,toggleClass:function(classNames,force,speed,easing,callback){if(typeof force==="boolean"||force===undefined){if(!speed){return this._toggleClass(classNames,force)}else{return $.effects.animateClass.call(this,force?{add:classNames}:{remove:classNames},speed,easing,callback)}}else{return $.effects.animateClass.call(this,{toggle:classNames},force,speed,easing)}},switchClass:function(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback)}})})();(function(){$.extend($.effects,{version:"1.9.2",save:function(element,set){for(var i=0;i
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;try{active.id}catch(e){active=document.body}element.wrap(wrapper);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}wrapper=element.parent();if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"})}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto"}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}element.css(size);return wrapper.css(props).show()},removeWrapper:function(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}}return element},setTransition:function(element,list,factor,value){value=value||{};$.each(list,function(i,x){var unit=element.cssUnit(x);if(unit[0]>0){value[x]=unit[0]*factor+unit[1]}});return value}});function _normalizeArguments(effect,options,speed,callback){if($.isPlainObject(effect)){options=effect;effect=effect.effect}effect={effect:effect};if(options==null){options={}}if($.isFunction(options)){callback=options;speed=null;options={}}if(typeof options==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={}}if($.isFunction(speed)){callback=speed;speed=null}if(options){$.extend(effect,options)}speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect}function standardSpeed(speed){if(!speed||typeof speed==="number"||$.fx.speeds[speed]){return true}if(typeof speed==="string"&&!$.effects.effect[speed]){if(backCompat&&$.effects[speed]){return false}return true}return false}$.fn.extend({effect:function(){var args=_normalizeArguments.apply(this,arguments),mode=args.mode,queue=args.queue,effectMethod=$.effects.effect[args.effect],oldEffectMethod=!effectMethod&&backCompat&&$.effects[args.effect];if($.fx.off||!(effectMethod||oldEffectMethod)){if(mode){return this[mode](args.duration,args.complete)}else{return this.each(function(){if(args.complete){args.complete.call(this)}})}}function run(next){var elem=$(this),complete=args.complete,mode=args.mode;function done(){if($.isFunction(complete)){complete.call(elem[0])}if($.isFunction(next)){next()}}if(elem.is(":hidden")?mode==="hide":mode==="show"){done()}else{effectMethod.call(elem[0],args,done)}}if(effectMethod){return queue===false?this.each(run):this.queue(queue||"fx",run)}else{return oldEffectMethod.call(this,{options:args,duration:args.duration,callback:args.complete,mode:args.mode})}},_show:$.fn.show,show:function(speed){if(standardSpeed(speed)){return this._show.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="show";return this.effect.call(this,args)}},_hide:$.fn.hide,hide:function(speed){if(standardSpeed(speed)){return this._hide.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="hide";return this.effect.call(this,args)}},__toggle:$.fn.toggle,toggle:function(speed){if(standardSpeed(speed)||typeof speed==="boolean"||$.isFunction(speed)){return this.__toggle.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="toggle";return this.effect.call(this,args)}},cssUnit:function(key){var style=this.css(key),val=[];$.each(["em","px","%","pt"],function(i,unit){if(style.indexOf(unit)>0){val=[parseFloat(style),unit]}});return val}})})();(function(){var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2)}});$.extend(baseEasings,{Sine:function(p){return 1-Math.cos(p*Math.PI/2)},Circ:function(p){return 1-Math.sqrt(1-p*p)},Elastic:function(p){return p===0||p===1?p:-Math.pow(2,8*(p-1))*Math.sin(((p-1)*80-7.5)*Math.PI/15)},Back:function(p){return p*p*(3*p-2)},Bounce:function(p){var pow2,bounce=4;while(p<((pow2=Math.pow(2,--bounce))-1)/11){}return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((pow2*3-2)/22-p,2)}});$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn;$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p)};$.easing["easeInOut"+name]=function(p){return p<.5?easeIn(p*2)/2:1-easeIn(p*-2+2)/2}})})()}(jQuery);(function($,undefined){var rvertical=/up|down|vertical/,rpositivemotion=/up|left|vertical|horizontal/;$.effects.effect.blind=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),direction=o.direction||"up",vertical=rvertical.test(direction),ref=vertical?"height":"width",ref2=vertical?"top":"left",motion=rpositivemotion.test(direction),animation={},show=mode==="show",wrapper,distance,margin;if(el.parent().is(".ui-effects-wrapper")){$.effects.save(el.parent(),props)}else{$.effects.save(el,props)}el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=wrapper[ref]();margin=parseFloat(wrapper.css(ref2))||0;animation[ref]=show?distance:0;if(!motion){el.css(vertical?"bottom":"right",0).css(vertical?"top":"left","auto").css({position:"absolute"});animation[ref2]=show?margin:distance+margin}if(show){wrapper.css(ref,0);if(!motion){wrapper.css(ref2,margin+distance)}}wrapper.animate(animation,{duration:o.duration,easing:o.easing,queue:false,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.bounce=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),hide=mode==="hide",show=mode==="show",direction=o.direction||"up",distance=o.distance,times=o.times||5,anims=times*2+(show||hide?1:0),speed=o.duration/anims,easing=o.easing,ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left",i,upAnim,downAnim,queue=el.queue(),queuelen=queue.length;if(show||hide){props.push("opacity")}$.effects.save(el,props);el.show();$.effects.createWrapper(el);if(!distance){distance=el[ref==="top"?"outerHeight":"outerWidth"]()/3}if(show){downAnim={opacity:1};downAnim[ref]=0;el.css("opacity",0).css(ref,motion?-distance*2:distance*2).animate(downAnim,speed,easing)}if(hide){distance=distance/Math.pow(2,times-1)}downAnim={};downAnim[ref]=0;for(i=0;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.clip=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"vertical",vert=direction==="vertical",size=vert?"height":"width",position=vert?"top":"left",animation={},wrapper,animate,distance;$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});animate=el[0].tagName==="IMG"?wrapper:el;distance=animate[size]();if(show){animate.css(size,0);animate.css(position,distance/2)}animation[size]=show?distance:0;animation[position]=show?0:distance/2;animate.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(!show){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.drop=function(o,done){var el=$(this),props=["position","top","bottom","left","right","opacity","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left"?"pos":"neg",animation={opacity:show?1:0},distance;$.effects.save(el,props);el.show();$.effects.createWrapper(el);distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true)/2;if(show){el.css("opacity",0).css(ref,motion==="pos"?-distance:distance)}animation[ref]=(show?motion==="pos"?"+=":"-=":motion==="pos"?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.explode=function(o,done){var rows=o.pieces?Math.round(Math.sqrt(o.pieces)):3,cells=rows,el=$(this),mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",offset=el.show().css("visibility","hidden").offset(),width=Math.ceil(el.outerWidth()/cells),height=Math.ceil(el.outerHeight()/rows),pieces=[],i,j,left,top,mx,my;function childComplete(){pieces.push(this);if(pieces.length===rows*cells){animComplete()}}for(i=0;i
    ").css({position:"absolute",visibility:"visible",left:-j*width,top:-i*height}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:width,height:height,left:left+(show?mx*width:0),top:top+(show?my*height:0),opacity:show?0:1}).animate({left:left+(show?0:mx*width),top:top+(show?0:my*height),opacity:show?1:0},o.duration||500,o.easing,childComplete)}}function animComplete(){el.css({visibility:"visible"});$(pieces).remove();if(!show){el.hide()}done()}}})(jQuery);(function($,undefined){$.effects.effect.fade=function(o,done){var el=$(this),mode=$.effects.setMode(el,o.mode||"toggle");el.animate({opacity:mode},{queue:false,duration:o.duration,easing:o.easing,complete:done})}})(jQuery);(function($,undefined){$.effects.effect.fold=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",hide=mode==="hide",size=o.size||15,percent=/([0-9]+)%/.exec(size),horizFirst=!!o.horizFirst,widthFirst=show!==horizFirst,ref=widthFirst?["width","height"]:["height","width"],duration=o.duration/2,wrapper,distance,animation1={},animation2={};$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=widthFirst?[wrapper.width(),wrapper.height()]:[wrapper.height(),wrapper.width()];if(percent){size=parseInt(percent[1],10)/100*distance[hide?0:1]}if(show){wrapper.css(horizFirst?{height:0,width:size}:{height:size,width:0})}animation1[ref[0]]=show?distance[0]:size;animation2[ref[1]]=show?distance[1]:0;wrapper.animate(animation1,duration,o.easing).animate(animation2,duration,o.easing,function(){if(hide){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()})}})(jQuery);(function($,undefined){$.effects.effect.highlight=function(o,done){var elem=$(this),props=["backgroundImage","backgroundColor","opacity"],mode=$.effects.setMode(elem,o.mode||"show"),animation={backgroundColor:elem.css("backgroundColor")};if(mode==="hide"){animation.opacity=0}$.effects.save(elem,props);elem.show().css({backgroundImage:"none",backgroundColor:o.color||"#ffff99"}).animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){elem.hide()}$.effects.restore(elem,props);done()}})}})(jQuery);(function($,undefined){$.effects.effect.pulsate=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"show"),show=mode==="show",hide=mode==="hide",showhide=show||mode==="hide",anims=(o.times||5)*2+(showhide?1:0),duration=o.duration/anims,animateTo=0,queue=elem.queue(),queuelen=queue.length,i;if(show||!elem.is(":visible")){elem.css("opacity",0).show();animateTo=1}for(i=1;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}elem.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.puff=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"hide"),hide=mode==="hide",percent=parseInt(o.percent,10)||150,factor=percent/100,original={height:elem.height(),width:elem.width(),outerHeight:elem.outerHeight(),outerWidth:elem.outerWidth()};$.extend(o,{effect:"scale",queue:false,fade:true,mode:mode,complete:done,percent:hide?percent:100,from:hide?original:{height:original.height*factor,width:original.width*factor,outerHeight:original.outerHeight*factor,outerWidth:original.outerWidth*factor}});elem.effect(o)};$.effects.effect.scale=function(o,done){var el=$(this),options=$.extend(true,{},o),mode=$.effects.setMode(el,o.mode||"effect"),percent=parseInt(o.percent,10)||(parseInt(o.percent,10)===0?0:mode==="hide"?0:100),direction=o.direction||"both",origin=o.origin,original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()},factor={y:direction!=="horizontal"?percent/100:1,x:direction!=="vertical"?percent/100:1};options.effect="size";options.queue=false;options.complete=done;if(mode!=="effect"){options.origin=origin||["middle","center"];options.restore=true}options.from=o.from||(mode==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:original);options.to={height:original.height*factor.y,width:original.width*factor.x,outerHeight:original.outerHeight*factor.y,outerWidth:original.outerWidth*factor.x};if(options.fade){if(mode==="show"){options.from.opacity=0;options.to.opacity=1}if(mode==="hide"){options.from.opacity=1;options.to.opacity=0}}el.effect(options)};$.effects.effect.size=function(o,done){var original,baseline,factor,el=$(this),props0=["position","top","bottom","left","right","width","height","overflow","opacity"],props1=["position","top","bottom","left","right","overflow","opacity"],props2=["width","height","overflow"],cProps=["fontSize"],vProps=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],hProps=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],mode=$.effects.setMode(el,o.mode||"effect"),restore=o.restore||mode!=="effect",scale=o.scale||"both",origin=o.origin||["middle","center"],position=el.css("position"),props=restore?props0:props1,zero={height:0,width:0,outerHeight:0,outerWidth:0};if(mode==="show"){el.show()}original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()};if(o.mode==="toggle"&&mode==="show"){el.from=o.to||zero;el.to=o.from||original}else{el.from=o.from||(mode==="show"?zero:original);el.to=o.to||(mode==="hide"?zero:original)}factor={from:{y:el.from.height/original.height,x:el.from.width/original.width},to:{y:el.to.height/original.height,x:el.to.width/original.width}};if(scale==="box"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(vProps);el.from=$.effects.setTransition(el,vProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,vProps,factor.to.y,el.to)}if(factor.from.x!==factor.to.x){props=props.concat(hProps);el.from=$.effects.setTransition(el,hProps,factor.from.x,el.from);el.to=$.effects.setTransition(el,hProps,factor.to.x,el.to)}}if(scale==="content"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(cProps).concat(props2);el.from=$.effects.setTransition(el,cProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,cProps,factor.to.y,el.to)}}$.effects.save(el,props);el.show();$.effects.createWrapper(el);el.css("overflow","hidden").css(el.from);if(origin){baseline=$.effects.getBaseline(origin,original);el.from.top=(original.outerHeight-el.outerHeight())*baseline.y;el.from.left=(original.outerWidth-el.outerWidth())*baseline.x;el.to.top=(original.outerHeight-el.to.outerHeight)*baseline.y;el.to.left=(original.outerWidth-el.to.outerWidth)*baseline.x}el.css(el.from);if(scale==="content"||scale==="both"){vProps=vProps.concat(["marginTop","marginBottom"]).concat(cProps);hProps=hProps.concat(["marginLeft","marginRight"]);props2=props0.concat(vProps).concat(hProps);el.find("*[width]").each(function(){var child=$(this),c_original={height:child.height(),width:child.width(),outerHeight:child.outerHeight(),outerWidth:child.outerWidth()};if(restore){$.effects.save(child,props2)}child.from={height:c_original.height*factor.from.y,width:c_original.width*factor.from.x,outerHeight:c_original.outerHeight*factor.from.y,outerWidth:c_original.outerWidth*factor.from.x};child.to={height:c_original.height*factor.to.y,width:c_original.width*factor.to.x,outerHeight:c_original.height*factor.to.y,outerWidth:c_original.width*factor.to.x};if(factor.from.y!==factor.to.y){child.from=$.effects.setTransition(child,vProps,factor.from.y,child.from);child.to=$.effects.setTransition(child,vProps,factor.to.y,child.to)}if(factor.from.x!==factor.to.x){child.from=$.effects.setTransition(child,hProps,factor.from.x,child.from);child.to=$.effects.setTransition(child,hProps,factor.to.x,child.to)}child.css(child.from);child.animate(child.to,o.duration,o.easing,function(){if(restore){$.effects.restore(child,props2)}})})}el.animate(el.to,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(el.to.opacity===0){el.css("opacity",el.from.opacity)}if(mode==="hide"){el.hide()}$.effects.restore(el,props);if(!restore){if(position==="static"){el.css({position:"relative",top:el.to.top,left:el.to.left})}else{$.each(["top","left"],function(idx,pos){el.css(pos,function(_,str){var val=parseInt(str,10),toRef=idx?el.to.left:el.to.top;if(str==="auto"){return toRef+"px"}return val+toRef+"px"})})}}$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.shake=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),direction=o.direction||"left",distance=o.distance||20,times=o.times||3,anims=times*2+1,speed=Math.round(o.duration/anims),ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",animation={},animation1={},animation2={},i,queue=el.queue(),queuelen=queue.length;$.effects.save(el,props);el.show();$.effects.createWrapper(el);animation[ref]=(positiveMotion?"-=":"+=")+distance;animation1[ref]=(positiveMotion?"+=":"-=")+distance*2;animation2[ref]=(positiveMotion?"-=":"+=")+distance*2;el.animate(animation,speed,o.easing);for(i=1;i1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()}})(jQuery);(function($,undefined){$.effects.effect.slide=function(o,done){var el=$(this),props=["position","top","bottom","left","right","width","height"],mode=$.effects.setMode(el,o.mode||"show"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",distance,animation={};$.effects.save(el,props);el.show();distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true);$.effects.createWrapper(el).css({overflow:"hidden"});if(show){el.css(ref,positiveMotion?isNaN(distance)?"-"+distance:-distance:distance)}animation[ref]=(show?positiveMotion?"+=":"-=":positiveMotion?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})}})(jQuery);(function($,undefined){$.effects.effect.transfer=function(o,done){var elem=$(this),target=$(o.to),targetFixed=target.css("position")==="fixed",body=$("body"),fixTop=targetFixed?body.scrollTop():0,fixLeft=targetFixed?body.scrollLeft():0,endPosition=target.offset(),animation={top:endPosition.top-fixTop,left:endPosition.left-fixLeft,height:target.innerHeight(),width:target.innerWidth()},startPosition=elem.offset(),transfer=$('
    ').appendTo(document.body).addClass(o.className).css({top:startPosition.top-fixTop,left:startPosition.left-fixLeft,height:elem.innerHeight(),width:elem.innerWidth(),position:targetFixed?"fixed":"absolute"}).animate(animation,o.duration,o.easing,function(){transfer.remove();done()})}})(jQuery);(function($,undefined){var mouseHandled=false;$.widget("ui.menu",{version:"1.9.2",defaultElement:"
      ",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,$.proxy(function(event){if(this.options.disabled){event.preventDefault()}},this));if(this.options.disabled){this.element.addClass("ui-state-disabled").attr("aria-disabled","true")}this._on({"mousedown .ui-menu-item > a":function(event){event.preventDefault()},"click .ui-state-disabled > a":function(event){event.preventDefault()},"click .ui-menu-item:has(a)":function(event){var target=$(event.target).closest(".ui-menu-item");if(!mouseHandled&&target.not(".ui-state-disabled").length){mouseHandled=true;this.select(event);if(target.has(".ui-menu").length){this.expand(event)}else if(!this.element.is(":focus")){this.element.trigger("focus",[true]);if(this.active&&this.active.parents(".ui-menu").length===1){clearTimeout(this.timer)}}}},"mouseenter .ui-menu-item":function(event){var target=$(event.currentTarget);target.siblings().children(".ui-state-active").removeClass("ui-state-active");this.focus(event,target)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(event,keepActiveItem){var item=this.active||this.element.children(".ui-menu-item").eq(0);if(!keepActiveItem){this.focus(event,item)}},blur:function(event){this._delay(function(){if(!$.contains(this.element[0],this.document[0].activeElement)){this.collapseAll(event)}})},keydown:"_keydown"});this.refresh();this._on(this.document,{click:function(event){if(!$(event.target).closest(".ui-menu").length){this.collapseAll(event)}mouseHandled=false}})},_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 elem=$(this);if(elem.data("ui-menu-submenu-carat")){elem.remove()}});this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(event){var match,prev,character,skip,regex,preventDefault=true;function escape(value){return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}switch(event.keyCode){case $.ui.keyCode.PAGE_UP:this.previousPage(event);break;case $.ui.keyCode.PAGE_DOWN:this.nextPage(event);break;case $.ui.keyCode.HOME:this._move("first","first",event);break;case $.ui.keyCode.END:this._move("last","last",event);break;case $.ui.keyCode.UP:this.previous(event);break;case $.ui.keyCode.DOWN:this.next(event);break;case $.ui.keyCode.LEFT:this.collapse(event);break;case $.ui.keyCode.RIGHT:if(this.active&&!this.active.is(".ui-state-disabled")){this.expand(event)}break;case $.ui.keyCode.ENTER:case $.ui.keyCode.SPACE:this._activate(event);break;case $.ui.keyCode.ESCAPE:this.collapse(event);break;default:preventDefault=false;prev=this.previousFilter||"";character=String.fromCharCode(event.keyCode);skip=false;clearTimeout(this.filterTimer);if(character===prev){skip=true}else{character=prev+character}regex=new RegExp("^"+escape(character),"i");match=this.activeMenu.children(".ui-menu-item").filter(function(){return regex.test($(this).children("a").text())});match=skip&&match.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):match;if(!match.length){character=String.fromCharCode(event.keyCode);regex=new RegExp("^"+escape(character),"i");match=this.activeMenu.children(".ui-menu-item").filter(function(){return regex.test($(this).children("a").text())})}if(match.length){this.focus(event,match);if(match.length>1){this.previousFilter=character;this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)}else{delete this.previousFilter}}else{delete this.previousFilter}}if(preventDefault){event.preventDefault()}},_activate:function(event){if(!this.active.is(".ui-state-disabled")){if(this.active.children("a[aria-haspopup='true']").length){this.expand(event)}else{this.select(event)}}},refresh:function(){var menus,icon=this.options.icons.submenu,submenus=this.element.find(this.options.menus);submenus.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 menu=$(this),item=menu.prev("a"),submenuCarat=$("").addClass("ui-menu-icon ui-icon "+icon).data("ui-menu-submenu-carat",true);item.attr("aria-haspopup","true").prepend(submenuCarat);menu.attr("aria-labelledby",item.attr("id"))});menus=submenus.add(this.element);menus.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()});menus.children(":not(.ui-menu-item)").each(function(){var item=$(this);if(!/[^\-—–\s]/.test(item.text())){item.addClass("ui-widget-content ui-menu-divider")}});menus.children(".ui-state-disabled").attr("aria-disabled","true");if(this.active&&!$.contains(this.element[0],this.active[0])){this.blur()}},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(event,item){var nested,focused;this.blur(event,event&&event.type==="focus");this._scrollIntoView(item);this.active=item.first();focused=this.active.children("a").addClass("ui-state-focus");if(this.options.role){this.element.attr("aria-activedescendant",focused.attr("id"))}this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active");if(event&&event.type==="keydown"){this._close()}else{this.timer=this._delay(function(){this._close()},this.delay)}nested=item.children(".ui-menu");if(nested.length&&/^mouse/.test(event.type)){this._startOpening(nested)}this.activeMenu=item.parent();this._trigger("focus",event,{item:item})},_scrollIntoView:function(item){var borderTop,paddingTop,offset,scroll,elementHeight,itemHeight;if(this._hasScroll()){borderTop=parseFloat($.css(this.activeMenu[0],"borderTopWidth"))||0;paddingTop=parseFloat($.css(this.activeMenu[0],"paddingTop"))||0;offset=item.offset().top-this.activeMenu.offset().top-borderTop-paddingTop;scroll=this.activeMenu.scrollTop();elementHeight=this.activeMenu.height();itemHeight=item.height();if(offset<0){this.activeMenu.scrollTop(scroll+offset)}else if(offset+itemHeight>elementHeight){this.activeMenu.scrollTop(scroll+offset-elementHeight+itemHeight)}}},blur:function(event,fromFocus){if(!fromFocus){clearTimeout(this.timer)}if(!this.active){return}this.active.children("a").removeClass("ui-state-focus");this.active=null;this._trigger("blur",event,{item:this.active})},_startOpening:function(submenu){clearTimeout(this.timer);if(submenu.attr("aria-hidden")!=="true"){return}this.timer=this._delay(function(){this._close();this._open(submenu)},this.delay)},_open:function(submenu){var position=$.extend({of:this.active},this.options.position);clearTimeout(this.timer);this.element.find(".ui-menu").not(submenu.parents(".ui-menu")).hide().attr("aria-hidden","true");submenu.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(position)},collapseAll:function(event,all){clearTimeout(this.timer);this.timer=this._delay(function(){var currentMenu=all?this.element:$(event&&event.target).closest(this.element.find(".ui-menu"));if(!currentMenu.length){currentMenu=this.element}this._close(currentMenu);this.blur(event);this.activeMenu=currentMenu},this.delay)},_close:function(startMenu){if(!startMenu){startMenu=this.active?this.active.parent():this.element}startMenu.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(event){var newItem=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(newItem&&newItem.length){this._close();this.focus(event,newItem)}},expand:function(event){var newItem=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();if(newItem&&newItem.length){this._open(newItem.parent());this._delay(function(){this.focus(event,newItem)})}},next:function(event){this._move("next","first",event)},previous:function(event){this._move("prev","last",event)},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(direction,filter,event){var next;if(this.active){if(direction==="first"||direction==="last"){next=this.active[direction==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1)}else{next=this.active[direction+"All"](".ui-menu-item").eq(0)}}if(!next||!next.length||!this.active){next=this.activeMenu.children(".ui-menu-item")[filter]()}this.focus(event,next)},nextPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isLastItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.nextAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base-height<0});this.focus(event,item)}else{this.focus(event,this.activeMenu.children(".ui-menu-item")[!this.active?"first":"last"]())}},previousPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isFirstItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.prevAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base+height>0});this.focus(event,item)}else{this.focus(event,this.activeMenu.children(".ui-menu-item").first())}},_hasScroll:function(){return this.element.outerHeight()
    ").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(newValue){if(newValue===undefined){return this._value()}this._setOption("value",newValue);return this},_setOption:function(key,value){if(key==="value"){this.options.value=value;this._refreshValue();if(this._value()===this.options.max){this._trigger("complete")}}this._super(key,value)},_value:function(){var val=this.options.value;if(typeof val!=="number"){val=0}return Math.min(this.options.max,Math.max(this.min,val))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var value=this.value(),percentage=this._percentage();if(this.oldValue!==value){this.oldValue=value;this._trigger("change")}this.valueDiv.toggle(value>this.min).toggleClass("ui-corner-right",value===this.options.max).width(percentage.toFixed(0)+"%");this.element.attr("aria-valuenow",value)}})})(jQuery);(function($,undefined){$.widget("ui.resizable",$.ui.mouse,{version:"1.9.2",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var that=this,o=this.options;this.element.addClass("ui-resizable");$.extend(this,{_aspectRatio:!!o.aspectRatio,aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap($('
    ').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=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=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=o.handles||(!$(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var n=this.handles.split(",");this.handles={};for(var i=0;i
    ');axis.css({zIndex:o.zIndex});if("se"==handle){axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[handle]=".ui-resizable-"+handle;this.element.append(axis)}}this._renderAxis=function(target){target=target||this.element;for(var i in this.handles){if(this.handles[i].constructor==String)this.handles[i]=$(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var axis=$(this.handles[i],this.element),padWrapper=0;padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth();var padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");target.css(padPos,padWrapper);this._proportionallyResize()}if(!$(this.handles[i]).length)continue}};this._renderAxis(this.element);this._handles=$(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!that.resizing){if(this.className)var axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);that.axis=axis&&axis[1]?axis[1]:"se"}});if(o.autoHide){this._handles.hide();$(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(o.disabled)return;$(this).removeClass("ui-resizable-autohide");that._handles.show()}).mouseleave(function(){if(o.disabled)return;if(!that.resizing){$(this).addClass("ui-resizable-autohide");that._handles.hide()}})}this._mouseInit()},_destroy:function(){this._mouseDestroy();var _destroy=function(exp){$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){_destroy(this.element);var wrapper=this.element;this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper);wrapper.remove()}this.originalElement.css("resize",this.originalResizeStyle);_destroy(this.originalElement);return this},_mouseCapture:function(event){var handle=false;for(var i in this.handles){if($(this.handles[i])[0]==event.target){handle=true}}return!this.options.disabled&&handle},_mouseStart:function(event){var o=this.options,iniPos=this.element.position(),el=this.element;this.resizing=true;this.documentScroll={top:$(document).scrollTop(),left:$(document).scrollLeft()};if(el.is(".ui-draggable")||/absolute/.test(el.css("position"))){el.css({position:"absolute",top:iniPos.top,left:iniPos.left})}this._renderProxy();var curleft=num(this.helper.css("left")),curtop=num(this.helper.css("top"));if(o.containment){curleft+=$(o.containment).scrollLeft()||0;curtop+=$(o.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:curleft,top:curtop};this.size=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.originalPosition={left:curleft,top:curtop};this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()};this.originalMousePosition={left:event.pageX,top:event.pageY};this.aspectRatio=typeof o.aspectRatio=="number"?o.aspectRatio:this.originalSize.width/this.originalSize.height||1;var cursor=$(".ui-resizable-"+this.axis).css("cursor");$("body").css("cursor",cursor=="auto"?this.axis+"-resize":cursor);el.addClass("ui-resizable-resizing");this._propagate("start",event);return true},_mouseDrag:function(event){var el=this.helper,o=this.options,props={},that=this,smp=this.originalMousePosition,a=this.axis;var dx=event.pageX-smp.left||0,dy=event.pageY-smp.top||0;var trigger=this._change[a];if(!trigger)return false;var data=trigger.apply(this,[event,dx,dy]);this._updateVirtualBoundaries(event.shiftKey);if(this._aspectRatio||event.shiftKey)data=this._updateRatio(data,event);data=this._respectSize(data,event);this._propagate("resize",event);el.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length)this._proportionallyResize();this._updateCache(data);this._trigger("resize",event,this.ui());return false},_mouseStop:function(event){this.resizing=false;var o=this.options,that=this;if(this._helper){var pr=this._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&$.ui.hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width;var s={width:that.helper.width()-soffsetw,height:that.helper.height()-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;if(!o.animate)this.element.css($.extend(s,{top:top,left:left}));that.helper.height(that.size.height);that.helper.width(that.size.width);if(this._helper&&!o.animate)this._proportionallyResize()}$("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",event);if(this._helper)this.helper.remove();return false},_updateVirtualBoundaries:function(forceAspectRatio){var o=this.options,pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b;b={minWidth:isNumber(o.minWidth)?o.minWidth:0,maxWidth:isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:isNumber(o.minHeight)?o.minHeight:0,maxHeight:isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||forceAspectRatio){pMinWidth=b.minHeight*this.aspectRatio;pMinHeight=b.minWidth/this.aspectRatio;pMaxWidth=b.maxHeight*this.aspectRatio;pMaxHeight=b.maxWidth/this.aspectRatio;if(pMinWidth>b.minWidth)b.minWidth=pMinWidth;if(pMinHeight>b.minHeight)b.minHeight=pMinHeight;if(pMaxWidthdata.width,isminh=isNumber(data.height)&&o.minHeight&&o.minHeight>data.height;if(isminw)data.width=o.minWidth;if(isminh)data.height=o.minHeight;if(ismaxw)data.width=o.maxWidth;if(ismaxh)data.height=o.maxHeight;var dw=this.originalPosition.left+this.originalSize.width,dh=this.position.top+this.size.height;var cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);if(isminw&&cw)data.left=dw-o.minWidth;if(ismaxw&&cw)data.left=dw-o.maxWidth;if(isminh&&ch)data.top=dh-o.minHeight;if(ismaxh&&ch)data.top=dh-o.maxHeight;var isNotwh=!data.width&&!data.height;if(isNotwh&&!data.left&&data.top)data.top=null;else if(isNotwh&&!data.top&&data.left)data.left=null;return data},_proportionallyResize:function(){var o=this.options;if(!this._proportionallyResizeElements.length)return;var element=this.helper||this.element;for(var i=0;i
    ');var ie6offset=$.ui.ie6?1:0,pxyoffset=$.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+pxyoffset,height:this.element.outerHeight()+pxyoffset,position:"absolute",left:this.elementOffset.left-ie6offset+"px",top:this.elementOffset.top-ie6offset+"px",zIndex:++o.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(event,dx,dy){return{width:this.originalSize.width+dx}},w:function(event,dx,dy){var o=this.options,cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx}},n:function(event,dx,dy){var o=this.options,cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy}},s:function(event,dx,dy){return{height:this.originalSize.height+dy}},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]);n!="resize"&&this._trigger(n,event,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}}});$.ui.plugin.add("resizable","alsoResize",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options;var _store=function(exp){$(exp).each(function(){var el=$(this);el.data("resizable-alsoresize",{width:parseInt(el.width(),10),height:parseInt(el.height(),10),left:parseInt(el.css("left"),10),top:parseInt(el.css("top"),10)})})};if(typeof o.alsoResize=="object"&&!o.alsoResize.parentNode){if(o.alsoResize.length){o.alsoResize=o.alsoResize[0];_store(o.alsoResize)}else{$.each(o.alsoResize,function(exp){_store(exp)})}}else{_store(o.alsoResize)}},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,os=that.originalSize,op=that.originalPosition;var delta={height:that.size.height-os.height||0,width:that.size.width-os.width||0,top:that.position.top-op.top||0,left:that.position.left-op.left||0},_alsoResize=function(exp,c){$(exp).each(function(){var el=$(this),start=$(this).data("resizable-alsoresize"),style={},css=c&&c.length?c:el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);if(sum&&sum>=0)style[prop]=sum||null});el.css(style)})};if(typeof o.alsoResize=="object"&&!o.alsoResize.nodeType){$.each(o.alsoResize,function(exp,c){_alsoResize(exp,c)})}else{_alsoResize(o.alsoResize)}},stop:function(event,ui){$(this).removeData("resizable-alsoresize")}});$.ui.plugin.add("resizable","animate",{stop:function(event,ui){var that=$(this).data("resizable"),o=that.options;var pr=that._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&$.ui.hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width;var style={width:that.size.width-soffsetw,height:that.size.height-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseInt(that.element.css("width"),10),height:parseInt(that.element.css("height"),10),top:parseInt(that.element.css("top"),10),left:parseInt(that.element.css("left"),10)};if(pr&&pr.length)$(pr[0]).css({width:data.width,height:data.height});that._updateCache(data);that._propagate("resize",event)}})}});$.ui.plugin.add("resizable","containment",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options,el=that.element;var oc=o.containment,ce=oc instanceof $?oc.get(0):/parent/.test(oc)?el.parent().get(0):oc;if(!ce)return;that.containerElement=$(ce);if(/document/.test(oc)||oc==document){that.containerOffset={left:0,top:0};that.containerPosition={left:0,top:0};that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight}}else{var element=$(ce),p=[];$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=num(element.css("padding"+name))});that.containerOffset=element.offset();that.containerPosition=element.position();that.containerSize={height:element.innerHeight()-p[3],width:element.innerWidth()-p[1]};var co=that.containerOffset,ch=that.containerSize.height,cw=that.containerSize.width,width=$.ui.hasScroll(ce,"left")?ce.scrollWidth:cw,height=$.ui.hasScroll(ce)?ce.scrollHeight:ch;that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height}}},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,ps=that.containerSize,co=that.containerOffset,cs=that.size,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement;if(ce[0]!=document&&/static/.test(ce.css("position")))cop=co;if(cp.left<(that._helper?co.left:0)){that.size.width=that.size.width+(that._helper?that.position.left-co.left:that.position.left-cop.left);if(pRatio)that.size.height=that.size.width/that.aspectRatio;that.position.left=o.helper?co.left:0}if(cp.top<(that._helper?co.top:0)){that.size.height=that.size.height+(that._helper?that.position.top-co.top:that.position.top);if(pRatio)that.size.width=that.size.height*that.aspectRatio;that.position.top=that._helper?co.top:0}that.offset.left=that.parentData.left+that.position.left;that.offset.top=that.parentData.top+that.position.top;var woset=Math.abs((that._helper?that.offset.left-cop.left:that.offset.left-cop.left)+that.sizeDiff.width),hoset=Math.abs((that._helper?that.offset.top-cop.top:that.offset.top-co.top)+that.sizeDiff.height);var isParent=that.containerElement.get(0)==that.element.parent().get(0),isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position"));if(isParent&&isOffsetRelative)woset-=that.parentData.left;if(woset+that.size.width>=that.parentData.width){that.size.width=that.parentData.width-woset;if(pRatio)that.size.height=that.size.width/that.aspectRatio}if(hoset+that.size.height>=that.parentData.height){that.size.height=that.parentData.height-hoset;if(pRatio)that.size.width=that.size.height*that.aspectRatio}},stop:function(event,ui){var that=$(this).data("resizable"),o=that.options,cp=that.position,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement;var helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;if(that._helper&&!o.animate&&/relative/.test(ce.css("position")))$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});if(that._helper&&!o.animate&&/static/.test(ce.css("position")))$(this).css({left:ho.left-cop.left-co.left,width:w, -height:h})}});$.ui.plugin.add("resizable","ghost",{start:function(event,ui){var that=$(this).data("resizable"),o=that.options,cs=that.size;that.ghost=that.originalElement.clone();that.ghost.css({opacity:.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof o.ghost=="string"?o.ghost:"");that.ghost.appendTo(that.helper)},resize:function(event,ui){var that=$(this).data("resizable"),o=that.options;if(that.ghost)that.ghost.css({position:"relative",height:that.size.height,width:that.size.width})},stop:function(event,ui){var that=$(this).data("resizable"),o=that.options;if(that.ghost&&that.helper)that.helper.get(0).removeChild(that.ghost.get(0))}});$.ui.plugin.add("resizable","grid",{resize:function(event,ui){var that=$(this).data("resizable"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,ratio=o._aspectRatio||event.shiftKey;o.grid=typeof o.grid=="number"?[o.grid,o.grid]:o.grid;var ox=Math.round((cs.width-os.width)/(o.grid[0]||1))*(o.grid[0]||1),oy=Math.round((cs.height-os.height)/(o.grid[1]||1))*(o.grid[1]||1);if(/^(se|s|e)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy}else if(/^(ne)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.top=op.top-oy}else if(/^(sw)$/.test(a)){that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.left=op.left-ox}else{that.size.width=os.width+ox;that.size.height=os.height+oy;that.position.top=op.top-oy;that.position.left=op.left-ox}}});var num=function(v){return parseInt(v,10)||0};var isNumber=function(value){return!isNaN(parseInt(value,10))}})(jQuery);(function($,undefined){$.widget("ui.selectable",$.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var that=this;this.element.addClass("ui-selectable");this.dragged=false;var selectees;this.refresh=function(){selectees=$(that.options.filter,that.element[0]);selectees.addClass("ui-selectee");selectees.each(function(){var $this=$(this);var pos=$this.offset();$.data(this,"selectable-item",{element:this,$element:$this,left:pos.left,top:pos.top,right:pos.left+$this.outerWidth(),bottom:pos.top+$this.outerHeight(),startselected:false,selected:$this.hasClass("ui-selected"),selecting:$this.hasClass("ui-selecting"),unselecting:$this.hasClass("ui-unselecting")})})};this.refresh();this.selectees=selectees.addClass("ui-selectee");this._mouseInit();this.helper=$("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled");this._mouseDestroy()},_mouseStart:function(event){var that=this;this.opos=[event.pageX,event.pageY];if(this.options.disabled)return;var options=this.options;this.selectees=$(options.filter,this.element[0]);this._trigger("start",event);$(options.appendTo).append(this.helper);this.helper.css({left:event.clientX,top:event.clientY,width:0,height:0});if(options.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var selectee=$.data(this,"selectable-item");selectee.startselected=true;if(!event.metaKey&&!event.ctrlKey){selectee.$element.removeClass("ui-selected");selectee.selected=false;selectee.$element.addClass("ui-unselecting");selectee.unselecting=true;that._trigger("unselecting",event,{unselecting:selectee.element})}});$(event.target).parents().andSelf().each(function(){var selectee=$.data(this,"selectable-item");if(selectee){var doSelect=!event.metaKey&&!event.ctrlKey||!selectee.$element.hasClass("ui-selected");selectee.$element.removeClass(doSelect?"ui-unselecting":"ui-selected").addClass(doSelect?"ui-selecting":"ui-unselecting");selectee.unselecting=!doSelect;selectee.selecting=doSelect;selectee.selected=doSelect;if(doSelect){that._trigger("selecting",event,{selecting:selectee.element})}else{that._trigger("unselecting",event,{unselecting:selectee.element})}return false}})},_mouseDrag:function(event){var that=this;this.dragged=true;if(this.options.disabled)return;var options=this.options;var x1=this.opos[0],y1=this.opos[1],x2=event.pageX,y2=event.pageY;if(x1>x2){var tmp=x2;x2=x1;x1=tmp}if(y1>y2){var tmp=y2;y2=y1;y1=tmp}this.helper.css({left:x1,top:y1,width:x2-x1,height:y2-y1});this.selectees.each(function(){var selectee=$.data(this,"selectable-item");if(!selectee||selectee.element==that.element[0])return;var hit=false;if(options.tolerance=="touch"){hit=!(selectee.left>x2||selectee.righty2||selectee.bottomx1&&selectee.righty1&&selectee.bottom
    ").appendTo(this.element).addClass("ui-slider-range"+" ui-widget-header"+(o.range==="min"||o.range==="max"?" ui-slider-range-"+o.range:""))}handleCount=o.values&&o.values.length||1;for(i=existingHandles.length;ithisDistance){distance=thisDistance;closestHandle=$(this);index=i}});if(o.range===true&&this.values(1)===o.min){index+=1;closestHandle=$(this.handles[index])}allowed=this._start(event,index);if(allowed===false){return false}this._mouseSliding=true;this._handleIndex=index;closestHandle.addClass("ui-state-active").focus();offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-closestHandle.width()/2,top:event.pageY-offset.top-closestHandle.height()/2-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue)}this._animateOff=true;return true},_mouseStart:function(){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}percentMouse=pixelMouse/pixelTotal;if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if(this.orientation==="vertical"){percentMouse=1-percentMouse}valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse)},_start:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}return this._trigger("start",event,uiHash)},_slide:function(event,index,newVal){var otherVal,newValues,allowed;if(this.options.values&&this.options.values.length){otherVal=this.values(index?0:1);if(this.options.values.length===2&&this.options.range===true&&(index===0&&newVal>otherVal||index===1&&newVal1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return}if(arguments.length){if($.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i=this._valueMax()){return this._valueMax()}var step=this.options.step>0?this.options.step:1,valModStep=(val-this._valueMin())%step,alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=valModStep>0?step:-step}return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var lastValPercent,valPercent,value,valueMin,valueMax,oRange=this.options.range,o=this.options,that=this,animate=!this._animateOff?o.animate:false,_set={};if(this.options.values&&this.options.values.length){this.handles.each(function(i){valPercent=(that.values(i)-that._valueMin())/(that._valueMax()-that._valueMin())*100;_set[that.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(that.options.range===true){if(that.orientation==="horizontal"){if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({width:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}else{if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({bottom:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({height:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}}lastValPercent=valPercent})}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=valueMax!==valueMin?(value-valueMin)/(valueMax-valueMin)*100:0;_set[this.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="horizontal"){this.range[animate?"animate":"css"]({width:100-valPercent+"%"},{queue:false,duration:o.animate})}if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="vertical"){this.range[animate?"animate":"css"]({height:100-valPercent+"%"},{queue:false,duration:o.animate})}}}})})(jQuery);(function($,undefined){$.widget("ui.sortable",$.ui.mouse,{version:"1.9.2",widgetEventPrefix:"sort",ready:false,options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var o=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?o.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit();this.ready=true},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled");this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--)this.items[i].item.removeData(this.widgetName+"-item");return this},_setOption:function(key,value){if(key==="disabled"){this.options[key]=value;this.widget().toggleClass("ui-sortable-disabled",!!value)}else{$.Widget.prototype._setOption.apply(this,arguments)}},_mouseCapture:function(event,overrideHandle){var that=this;if(this.reverting){return false}if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(event);var currentItem=null,nodes=$(event.target).parents().each(function(){if($.data(this,that.widgetName+"-item")==that){currentItem=$(this);return false}});if($.data(event.target,that.widgetName+"-item")==that)currentItem=$(event.target);if(!currentItem)return false;if(this.options.handle&&!overrideHandle){var validHandle=false;$(this.options.handle,currentItem).find("*").andSelf().each(function(){if(this==event.target)validHandle=true});if(!validHandle)return false}this.currentItem=currentItem;this._removeCurrentsFromItems();return true},_mouseStart:function(event,overrideHandle,noActivation){var o=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(event);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};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.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(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(o.containment)this._setContainment();if(o.cursor){if($("body").css("cursor"))this._storedCursor=$("body").css("cursor");$("body").css("cursor",o.cursor)}if(o.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",o.opacity)}if(o.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",o.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",event,this._uiHash());if(!this._preserveHelperProportions)this._cacheHelperProportions();if(!noActivation){for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("activate",event,this._uiHash(this))}}if($.ui.ddmanager)$.ui.ddmanager.current=this;if($.ui.ddmanager&&!o.dropBehaviour)$.ui.ddmanager.prepareOffsets(this,event);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(event);return true},_mouseDrag:function(event){this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var o=this.options,scrolled=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-event.pageY=0;i--){var item=this.items[i],itemElement=item.item[0],intersection=this._intersectsWithPointer(item);if(!intersection)continue;if(item.instance!==this.currentContainer)continue;if(itemElement!=this.currentItem[0]&&this.placeholder[intersection==1?"next":"prev"]()[0]!=itemElement&&!$.contains(this.placeholder[0],itemElement)&&(this.options.type=="semi-dynamic"?!$.contains(this.element[0],itemElement):true)){this.direction=intersection==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(item)){this._rearrange(event,item)}else{break}this._trigger("change",event,this._uiHash());break}}this._contactContainers(event);if($.ui.ddmanager)$.ui.ddmanager.drag(this,event);this._trigger("sort",event,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(event,noPropagation){if(!event)return;if($.ui.ddmanager&&!this.options.dropBehaviour)$.ui.ddmanager.drop(this,event);if(this.options.revert){var that=this;var cur=this.placeholder.offset();this.reverting=true;$(this.helper).animate({left:cur.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:cur.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(){that._clear(event)})}else{this._clear(event,noPropagation)}return false},cancel:function(){if(this.dragging){this._mouseUp({target:null});if(this.options.helper=="original")this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");else this.currentItem.show();for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("deactivate",null,this._uiHash(this));if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",null,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(this.placeholder){if(this.placeholder[0].parentNode)this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode)this.helper.remove();$.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){$(this.domPosition.prev).after(this.currentItem)}else{$(this.domPosition.parent).prepend(this.currentItem)}}return this},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var str=[];o=o||{};$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||/(.+)[-=_](.+)/);if(res)str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression?res[1]:res[2]))});if(!str.length&&o.key){str.push(o.key+"=")}return str.join("&")},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var ret=[];o=o||{};items.each(function(){ret.push($(o.item||this).attr(o.attribute||"id")||"")});return ret},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height;var l=item.left,r=l+item.width,t=item.top,b=t+item.height;var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var isOverElement=y1+dyClick>t&&y1+dyClickl&&x1+dxClickitem[this.floating?"width":"height"]){return isOverElement}else{return l0?"down":"up")},_getDragHorizontalDirection:function(){var delta=this.positionAbs.left-this.lastPositionAbs.left;return delta!=0&&(delta>0?"right":"left")},refresh:function(event){this._refreshItems(event);this.refreshPositions();return this},_connectWith:function(){var options=this.options;return options.connectWith.constructor==String?[options.connectWith]:options.connectWith},_getItemsAsjQuery:function(connected){var items=[];var queries=[];var connectWith=this._connectWith();if(connectWith&&connected){for(var i=connectWith.length-1;i>=0;i--){var cur=$(connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],this.widgetName);if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),inst])}}}}queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var i=queries.length-1;i>=0;i--){queries[i][0].each(function(){items.push(this)})}return $(items)},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=$.grep(this.items,function(item){for(var j=0;j=0;i--){var cur=$(connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],this.widgetName);if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element[0],event,{item:this.currentItem}):$(inst.options.items,inst.element),inst]);this.containers.push(inst)}}}}for(var i=queries.length-1;i>=0;i--){var targetData=queries[i][1];var _queries=queries[i][0];for(var j=0,queriesLength=_queries.length;j=0;i--){var item=this.items[i];if(item.instance!=this.currentContainer&&this.currentContainer&&item.item[0]!=this.currentItem[0])continue;var t=this.options.toleranceElement?$(this.options.toleranceElement,item.item):item.item;if(!fast){item.width=t.outerWidth();item.height=t.outerHeight()}var p=t.offset();item.left=p.left;item.top=p.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var i=this.containers.length-1;i>=0;i--){var p=this.containers[i].element.offset();this.containers[i].containerCache.left=p.left;this.containers[i].containerCache.top=p.top;this.containers[i].containerCache.width=this.containers[i].element.outerWidth();this.containers[i].containerCache.height=this.containers[i].element.outerHeight()}}return this},_createPlaceholder:function(that){that=that||this;var o=that.options;if(!o.placeholder||o.placeholder.constructor==String){var className=o.placeholder;o.placeholder={element:function(){var el=$(document.createElement(that.currentItem[0].nodeName)).addClass(className||that.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!className)el.style.visibility="hidden";return el},update:function(container,p){if(className&&!o.forcePlaceholderSize)return;if(!p.height()){p.height(that.currentItem.innerHeight()-parseInt(that.currentItem.css("paddingTop")||0,10)-parseInt(that.currentItem.css("paddingBottom")||0,10))}if(!p.width()){p.width(that.currentItem.innerWidth()-parseInt(that.currentItem.css("paddingLeft")||0,10)-parseInt(that.currentItem.css("paddingRight")||0,10))}}}}that.placeholder=$(o.placeholder.element.call(that.element,that.currentItem));that.currentItem.after(that.placeholder);o.placeholder.update(that,that.placeholder)},_contactContainers:function(event){var innermostContainer=null,innermostIndex=null;for(var i=this.containers.length-1;i>=0;i--){if($.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(innermostContainer&&$.contains(this.containers[i].element[0],innermostContainer.element[0]))continue;innermostContainer=this.containers[i];innermostIndex=i}else{if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",event,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(!innermostContainer)return;if(this.containers.length===1){this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1}else{var dist=1e4;var itemWithLeastDistance=null;var posProperty=this.containers[innermostIndex].floating?"left":"top";var sizeProperty=this.containers[innermostIndex].floating?"width":"height";var base=this.positionAbs[posProperty]+this.offset.click[posProperty];for(var j=this.items.length-1;j>=0;j--){if(!$.contains(this.containers[innermostIndex].element[0],this.items[j].item[0]))continue;if(this.items[j].item[0]==this.currentItem[0])continue;var cur=this.items[j].item.offset()[posProperty];var nearBottom=false;if(Math.abs(cur-base)>Math.abs(cur+this.items[j][sizeProperty]-base)){nearBottom=true;cur+=this.items[j][sizeProperty]}if(Math.abs(cur-base)this.containment[2])pageX=this.containment[2]+this.offset.click.left;if(event.pageY-this.offset.click.top>this.containment[3])pageY=this.containment[3]+this.offset.click.top}if(o.grid){var top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?!(top-this.offset.click.topthis.containment[3])?top:!(top-this.offset.click.topthis.containment[2])?left:!(left-this.offset.click.left=0;i--){if(!noPropagation)delayedTriggers.push(function(c){return function(event){c._trigger("deactivate",event,this._uiHash(this))}}.call(this,this.containers[i]));if(this.containers[i].containerCache.over){delayedTriggers.push(function(c){return function(event){c._trigger("out",event,this._uiHash(this))}}.call(this,this.containers[i]));this.containers[i].containerCache.over=0}}if(this._storedCursor)$("body").css("cursor",this._storedCursor);if(this._storedOpacity)this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!noPropagation){this._trigger("beforeStop",event,this._uiHash());for(var i=0;i",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:true,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(),true);this._draw();this._on(this._events);this._refresh();this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var options={},element=this.element;$.each(["min","max","step"],function(i,option){var value=element.attr(option);if(value!==undefined&&value.length){options[option]=value}});return options},_events:{keydown:function(event){if(this._start(event)&&this._keydown(event)){event.preventDefault()}},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh();if(this.previous!==this.element.val()){this._trigger("change",event)}},mousewheel:function(event,delta){if(!delta){return}if(!this.spinning&&!this._start(event)){return false}this._spin((delta>0?1:-1)*this.options.step,event);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=this._delay(function(){if(this.spinning){this._stop(event)}},100);event.preventDefault()},"mousedown .ui-spinner-button":function(event){var previous;previous=this.element[0]===this.document[0].activeElement?this.previous:this.element.val();function checkFocus(){var isActive=this.element[0]===this.document[0].activeElement;if(!isActive){this.element.focus();this.previous=previous;this._delay(function(){this.previous=previous})}}event.preventDefault();checkFocus.call(this);this.cancelBlur=true;this._delay(function(){delete this.cancelBlur;checkFocus.call(this)});if(this._start(event)===false){return}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(event){if(!$(event.currentTarget).hasClass("ui-state-active")){return}if(this._start(event)===false){return false}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var uiSpinner=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=uiSpinner.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");if(this.buttons.height()>Math.ceil(uiSpinner.height()*.5)&&uiSpinner.height()>0){uiSpinner.height(uiSpinner.height())}if(this.options.disabled){this.disable()}},_keydown:function(event){var options=this.options,keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.UP:this._repeat(null,1,event);return true;case keyCode.DOWN:this._repeat(null,-1,event);return true;case keyCode.PAGE_UP:this._repeat(null,options.page,event);return true;case keyCode.PAGE_DOWN:this._repeat(null,-options.page,event);return true}return false},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""+""+""},_start:function(event){if(!this.spinning&&this._trigger("start",event)===false){return false}if(!this.counter){this.counter=1}this.spinning=true;return true},_repeat:function(i,steps,event){i=i||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,steps,event)},i);this._spin(steps*this.options.step,event)},_spin:function(step,event){var value=this.value()||0;if(!this.counter){this.counter=1}value=this._adjustValue(value+step*this._increment(this.counter));if(!this.spinning||this._trigger("spin",event,{value:value})!==false){this._value(value);this.counter++}},_increment:function(i){var incremental=this.options.incremental;if(incremental){return $.isFunction(incremental)?incremental(i):Math.floor(i*i*i/5e4-i*i/500+17*i/200+1)}return 1},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min))}return precision},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1},_adjustValue:function(value){var base,aboveMin,options=this.options;base=options.min!==null?options.min:0;aboveMin=value-base;aboveMin=Math.round(aboveMin/options.step)*options.step;value=base+aboveMin;value=parseFloat(value.toFixed(this._precision()));if(options.max!==null&&value>options.max){return options.max}if(options.min!==null&&value1&&anchor.href.replace(rhash,"")===location.href.replace(rhash,"").replace(/\s/g,"%20")}$.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:false,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var that=this,options=this.options,active=options.active,locationHash=location.hash.substring(1);this.running=false;this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",options.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(event){if($(this).is(".ui-state-disabled")){event.preventDefault()}}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){if($(this).closest("li").is(".ui-state-disabled")){this.blur()}});this._processTabs();if(active===null){if(locationHash){this.tabs.each(function(i,tab){if($(tab).attr("aria-controls")===locationHash){active=i;return false}})}if(active===null){active=this.tabs.index(this.tabs.filter(".ui-tabs-active"))}if(active===null||active===-1){active=this.tabs.length?0:false}}if(active!==false){active=this.tabs.index(this.tabs.eq(active));if(active===-1){active=options.collapsible?false:0}}options.active=active;if(!options.collapsible&&options.active===false&&this.anchors.length){options.active=0}if($.isArray(options.disabled)){options.disabled=$.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"),function(li){return that.tabs.index(li)}))).sort()}if(this.options.active!==false&&this.anchors.length){this.active=this._findActive(this.options.active)}else{this.active=$()}this._refresh();if(this.active.length){this.load(options.active)}},_getCreateEventData:function(){return{tab:this.active,panel:!this.active.length?$():this._getPanelForTab(this.active)}},_tabKeydown:function(event){var focusedTab=$(this.document[0].activeElement).closest("li"),selectedIndex=this.tabs.index(focusedTab),goingForward=true;if(this._handlePageNav(event)){return}switch(event.keyCode){case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:selectedIndex++;break;case $.ui.keyCode.UP:case $.ui.keyCode.LEFT:goingForward=false;selectedIndex--;break;case $.ui.keyCode.END:selectedIndex=this.anchors.length-1;break;case $.ui.keyCode.HOME:selectedIndex=0;break;case $.ui.keyCode.SPACE:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex);return;case $.ui.keyCode.ENTER:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex===this.options.active?false:selectedIndex);return;default:return}event.preventDefault();clearTimeout(this.activating);selectedIndex=this._focusNextTab(selectedIndex,goingForward);if(!event.ctrlKey){focusedTab.attr("aria-selected","false");this.tabs.eq(selectedIndex).attr("aria-selected","true");this.activating=this._delay(function(){this.option("active",selectedIndex)},this.delay)}},_panelKeydown:function(event){if(this._handlePageNav(event)){return}if(event.ctrlKey&&event.keyCode===$.ui.keyCode.UP){event.preventDefault();this.active.focus()}},_handlePageNav:function(event){if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_UP){this._activate(this._focusNextTab(this.options.active-1,false));return true}if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_DOWN){this._activate(this._focusNextTab(this.options.active+1,true));return true}},_findNextTab:function(index,goingForward){var lastTabIndex=this.tabs.length-1;function constrain(){if(index>lastTabIndex){index=0}if(index<0){index=lastTabIndex}return index}while($.inArray(constrain(),this.options.disabled)!==-1){index=goingForward?index+1:index-1}return index},_focusNextTab:function(index,goingForward){index=this._findNextTab(index,goingForward);this.tabs.eq(index).focus();return index},_setOption:function(key,value){if(key==="active"){this._activate(value);return}if(key==="disabled"){this._setupDisabled(value);return}this._super(key,value);if(key==="collapsible"){this.element.toggleClass("ui-tabs-collapsible",value);if(!value&&this.options.active===false){this._activate(0)}}if(key==="event"){this._setupEvents(value)}if(key==="heightStyle"){this._setupHeightStyle(value)}},_tabId:function(tab){return tab.attr("aria-controls")||"ui-tabs-"+getNextTabId()},_sanitizeSelector:function(hash){return hash?hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var options=this.options,lis=this.tablist.children(":has(a[href])");options.disabled=$.map(lis.filter(".ui-state-disabled"),function(tab){return lis.index(tab)});this._processTabs();if(options.active===false||!this.anchors.length){options.active=false;this.active=$()}else if(this.active.length&&!$.contains(this.tablist[0],this.active[0])){if(this.tabs.length===options.disabled.length){options.active=false;this.active=$()}else{this._activate(this._findNextTab(Math.max(0,options.active-1),false))}}else{options.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"});if(!this.active.length){this.tabs.eq(0).attr("tabIndex",0)}else{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"})}},_processTabs:function(){var that=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 $("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1});this.panels=$();this.anchors.each(function(i,anchor){var selector,panel,panelId,anchorId=$(anchor).uniqueId().attr("id"),tab=$(anchor).closest("li"),originalAriaControls=tab.attr("aria-controls");if(isLocal(anchor)){selector=anchor.hash;panel=that.element.find(that._sanitizeSelector(selector))}else{panelId=that._tabId(tab);selector="#"+panelId;panel=that.element.find(selector);if(!panel.length){panel=that._createPanel(panelId);panel.insertAfter(that.panels[i-1]||that.tablist)}panel.attr("aria-live","polite")}if(panel.length){that.panels=that.panels.add(panel)}if(originalAriaControls){tab.data("ui-tabs-aria-controls",originalAriaControls)}tab.attr({"aria-controls":selector.substring(1),"aria-labelledby":anchorId});panel.attr("aria-labelledby",anchorId)});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(id){return $("
    ").attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",true)},_setupDisabled:function(disabled){if($.isArray(disabled)){if(!disabled.length){disabled=false}else if(disabled.length===this.anchors.length){disabled=true}}for(var i=0,li;li=this.tabs[i];i++){if(disabled===true||$.inArray(i,disabled)!==-1){$(li).addClass("ui-state-disabled").attr("aria-disabled","true")}else{$(li).removeClass("ui-state-disabled").removeAttr("aria-disabled")}}this.options.disabled=disabled},_setupEvents:function(event){var events={click:function(event){event.preventDefault()}};if(event){$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"})}this._off(this.anchors.add(this.tabs).add(this.panels));this._on(this.anchors,events);this._on(this.tabs,{keydown:"_tabKeydown"});this._on(this.panels,{keydown:"_panelKeydown"});this._focusable(this.tabs);this._hoverable(this.tabs)},_setupHeightStyle:function(heightStyle){var maxHeight,overflow,parent=this.element.parent();if(heightStyle==="fill"){if(!$.support.minHeight){overflow=parent.css("overflow");parent.css("overflow","hidden")}maxHeight=parent.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return}maxHeight-=elem.outerHeight(true)});if(overflow){parent.css("overflow",overflow)}this.element.children().not(this.panels).each(function(){maxHeight-=$(this).outerHeight(true)});this.panels.each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")}else if(heightStyle==="auto"){maxHeight=0;this.panels.each(function(){maxHeight=Math.max(maxHeight,$(this).height("").height())}).height(maxHeight)}},_eventHandler:function(event){var options=this.options,active=this.active,anchor=$(event.currentTarget),tab=anchor.closest("li"),clickedIsActive=tab[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():this._getPanelForTab(tab),toHide=!active.length?$():this._getPanelForTab(active),eventData={oldTab:active,oldPanel:toHide,newTab:collapsing?$():tab,newPanel:toShow};event.preventDefault();if(tab.hasClass("ui-state-disabled")||tab.hasClass("ui-tabs-loading")||this.running||clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===false){return}options.active=collapsing?false:this.tabs.index(tab);this.active=clickedIsActive?$():tab;if(this.xhr){this.xhr.abort()}if(!toHide.length&&!toShow.length){$.error("jQuery UI Tabs: Mismatching fragment identifier.")}if(toShow.length){this.load(this.tabs.index(tab),event)}this._toggle(event,eventData)},_toggle:function(event,eventData){var that=this,toShow=eventData.newPanel,toHide=eventData.oldPanel;this.running=true;function complete(){that.running=false;that._trigger("activate",event,eventData)}function show(){eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(toShow.length&&that.options.show){that._show(toShow,that.options.show,complete)}else{toShow.show();complete()}}if(toHide.length&&this.options.hide){this._hide(toHide,this.options.hide,function(){eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");show()})}else{eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");toHide.hide();show()}toHide.attr({"aria-expanded":"false","aria-hidden":"true"});eventData.oldTab.attr("aria-selected","false");if(toShow.length&&toHide.length){eventData.oldTab.attr("tabIndex",-1)}else if(toShow.length){this.tabs.filter(function(){return $(this).attr("tabIndex")===0}).attr("tabIndex",-1)}toShow.attr({"aria-expanded":"true","aria-hidden":"false" -});eventData.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(index){var anchor,active=this._findActive(index);if(active[0]===this.active[0]){return}if(!active.length){active=this.active}anchor=active.find(".ui-tabs-anchor")[0];this._eventHandler({target:anchor,currentTarget:anchor,preventDefault:$.noop})},_findActive:function(index){return index===false?$():this.tabs.eq(index)},_getIndex:function(index){if(typeof index==="string"){index=this.anchors.index(this.anchors.filter("[href$='"+index+"']"))}return index},_destroy:function(){if(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(){if($.data(this,"ui-tabs-destroy")){$(this).remove()}else{$(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 li=$(this),prev=li.data("ui-tabs-aria-controls");if(prev){li.attr("aria-controls",prev)}else{li.removeAttr("aria-controls")}});this.panels.show();if(this.options.heightStyle!=="content"){this.panels.css("height","")}},enable:function(index){var disabled=this.options.disabled;if(disabled===false){return}if(index===undefined){disabled=false}else{index=this._getIndex(index);if($.isArray(disabled)){disabled=$.map(disabled,function(num){return num!==index?num:null})}else{disabled=$.map(this.tabs,function(li,num){return num!==index?num:null})}}this._setupDisabled(disabled)},disable:function(index){var disabled=this.options.disabled;if(disabled===true){return}if(index===undefined){disabled=true}else{index=this._getIndex(index);if($.inArray(index,disabled)!==-1){return}if($.isArray(disabled)){disabled=$.merge([index],disabled).sort()}else{disabled=[index]}}this._setupDisabled(disabled)},load:function(index,event){index=this._getIndex(index);var that=this,tab=this.tabs.eq(index),anchor=tab.find(".ui-tabs-anchor"),panel=this._getPanelForTab(tab),eventData={tab:tab,panel:panel};if(isLocal(anchor[0])){return}this.xhr=$.ajax(this._ajaxSettings(anchor,event,eventData));if(this.xhr&&this.xhr.statusText!=="canceled"){tab.addClass("ui-tabs-loading");panel.attr("aria-busy","true");this.xhr.success(function(response){setTimeout(function(){panel.html(response);that._trigger("load",event,eventData)},1)}).complete(function(jqXHR,status){setTimeout(function(){if(status==="abort"){that.panels.stop(false,true)}tab.removeClass("ui-tabs-loading");panel.removeAttr("aria-busy");if(jqXHR===that.xhr){delete that.xhr}},1)})}},_ajaxSettings:function(anchor,event,eventData){var that=this;return{url:anchor.attr("href"),beforeSend:function(jqXHR,settings){return that._trigger("beforeLoad",event,$.extend({jqXHR:jqXHR,ajaxSettings:settings},eventData))}}},_getPanelForTab:function(tab){var id=$(tab).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+id))}});if($.uiBackCompat!==false){$.ui.tabs.prototype._ui=function(tab,panel){return{tab:tab,panel:panel,index:this.anchors.index(tab)}};$.widget("ui.tabs",$.ui.tabs,{url:function(index,url){this.anchors.eq(index).attr("href",url)}});$.widget("ui.tabs",$.ui.tabs,{options:{ajaxOptions:null,cache:false},_create:function(){this._super();var that=this;this._on({tabsbeforeload:function(event,ui){if($.data(ui.tab[0],"cache.tabs")){event.preventDefault();return}ui.jqXHR.success(function(){if(that.options.cache){$.data(ui.tab[0],"cache.tabs",true)}})}})},_ajaxSettings:function(anchor,event,ui){var ajaxOptions=this.options.ajaxOptions;return $.extend({},ajaxOptions,{error:function(xhr,status){try{ajaxOptions.error(xhr,status,ui.tab.closest("li").index(),ui.tab[0])}catch(error){}}},this._superApply(arguments))},_setOption:function(key,value){if(key==="cache"&&value===false){this.anchors.removeData("cache.tabs")}this._super(key,value)},_destroy:function(){this.anchors.removeData("cache.tabs");this._super()},url:function(index){this.anchors.eq(index).removeData("cache.tabs");this._superApply(arguments)}});$.widget("ui.tabs",$.ui.tabs,{abort:function(){if(this.xhr){this.xhr.abort()}}});$.widget("ui.tabs",$.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super();this._on({tabsbeforeload:function(event,ui){if(event.target!==this.element[0]||!this.options.spinner){return}var span=ui.tab.find("span"),html=span.html();span.html(this.options.spinner);ui.jqXHR.complete(function(){span.html(html)})}})}});$.widget("ui.tabs",$.ui.tabs,{options:{enable:null,disable:null},enable:function(index){var options=this.options,trigger;if(index&&options.disabled===true||$.isArray(options.disabled)&&$.inArray(index,options.disabled)!==-1){trigger=true}this._superApply(arguments);if(trigger){this._trigger("enable",null,this._ui(this.anchors[index],this.panels[index]))}},disable:function(index){var options=this.options,trigger;if(index&&options.disabled===false||$.isArray(options.disabled)&&$.inArray(index,options.disabled)===-1){trigger=true}this._superApply(arguments);if(trigger){this._trigger("disable",null,this._ui(this.anchors[index],this.panels[index]))}}});$.widget("ui.tabs",$.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(url,label,index){if(index===undefined){index=this.anchors.length}var doInsertAfter,panel,options=this.options,li=$(options.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label)),id=!url.indexOf("#")?url.replace("#",""):this._tabId(li);li.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",true);li.attr("aria-controls",id);doInsertAfter=index>=this.tabs.length;panel=this.element.find("#"+id);if(!panel.length){panel=this._createPanel(id);if(doInsertAfter){if(index>0){panel.insertAfter(this.panels.eq(-1))}else{panel.appendTo(this.element)}}else{panel.insertBefore(this.panels[index])}}panel.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();if(doInsertAfter){li.appendTo(this.tablist)}else{li.insertBefore(this.tabs[index])}options.disabled=$.map(options.disabled,function(n){return n>=index?++n:n});this.refresh();if(this.tabs.length===1&&options.active===false){this.option("active",0)}this._trigger("add",null,this._ui(this.anchors[index],this.panels[index]));return this},remove:function(index){index=this._getIndex(index);var options=this.options,tab=this.tabs.eq(index).remove(),panel=this._getPanelForTab(tab).remove();if(tab.hasClass("ui-tabs-active")&&this.anchors.length>2){this._activate(index+(index+1=index?--n:n});this.refresh();this._trigger("remove",null,this._ui(tab.find("a")[0],panel[0]));return this}});$.widget("ui.tabs",$.ui.tabs,{length:function(){return this.anchors.length}});$.widget("ui.tabs",$.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(tab){var a=tab.is("li")?tab.find("a[href]"):tab;a=a[0];return $(a).closest("li").attr("aria-controls")||a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+getNextTabId()}});$.widget("ui.tabs",$.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(id){return $(this.options.panelTemplate).attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",true)}});$.widget("ui.tabs",$.ui.tabs,{_create:function(){var options=this.options;if(options.active===null&&options.selected!==undefined){options.active=options.selected===-1?false:options.selected}this._super();options.selected=options.active;if(options.selected===false){options.selected=-1}},_setOption:function(key,value){if(key!=="selected"){return this._super(key,value)}var options=this.options;this._super("active",value===-1?false:value);options.selected=options.active;if(options.selected===false){options.selected=-1}},_eventHandler:function(){this._superApply(arguments);this.options.selected=this.options.active;if(this.options.selected===false){this.options.selected=-1}}});$.widget("ui.tabs",$.ui.tabs,{options:{show:null,select:null},_create:function(){this._super();if(this.options.active!==false){this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))}},_trigger:function(type,event,data){var tab,panel,ret=this._superApply(arguments);if(!ret){return false}if(type==="beforeActivate"){tab=data.newTab.length?data.newTab:data.oldTab;panel=data.newPanel.length?data.newPanel:data.oldPanel;ret=this._super("select",event,{tab:tab.find(".ui-tabs-anchor")[0],panel:panel[0],index:tab.closest("li").index()})}else if(type==="activate"&&data.newTab.length){ret=this._super("show",event,{tab:data.newTab.find(".ui-tabs-anchor")[0],panel:data.newPanel[0],index:data.newTab.closest("li").index()})}return ret}});$.widget("ui.tabs",$.ui.tabs,{select:function(index){index=this._getIndex(index);if(index===-1){if(this.options.collapsible&&this.options.selected!==-1){index=this.options.selected}else{return}}this.anchors.eq(index).trigger(this.options.event+this.eventNamespace)}});(function(){var listId=0;$.widget("ui.tabs",$.ui.tabs,{options:{cookie:null},_create:function(){var options=this.options,active;if(options.active==null&&options.cookie){active=parseInt(this._cookie(),10);if(active===-1){active=false}options.active=active}this._super()},_cookie:function(active){var cookie=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++listId)];if(arguments.length){cookie.push(active===false?-1:active);cookie.push(this.options.cookie)}return $.cookie.apply(null,cookie)},_refresh:function(){this._super();if(this.options.cookie){this._cookie(this.options.active,this.options.cookie)}},_eventHandler:function(){this._superApply(arguments);if(this.options.cookie){this._cookie(this.options.active,this.options.cookie)}},_destroy:function(){this._super();if(this.options.cookie){this._cookie(null,this.options.cookie)}}})})();$.widget("ui.tabs",$.ui.tabs,{_trigger:function(type,event,data){var _data=$.extend({},data);if(type==="load"){_data.panel=_data.panel[0];_data.tab=_data.tab.find(".ui-tabs-anchor")[0]}return this._super(type,event,_data)}});$.widget("ui.tabs",$.ui.tabs,{options:{fx:null},_getFx:function(){var hide,show,fx=this.options.fx;if(fx){if($.isArray(fx)){hide=fx[0];show=fx[1]}else{hide=show=fx}}return fx?{show:show,hide:hide}:null},_toggle:function(event,eventData){var that=this,toShow=eventData.newPanel,toHide=eventData.oldPanel,fx=this._getFx();if(!fx){return this._super(event,eventData)}that.running=true;function complete(){that.running=false;that._trigger("activate",event,eventData)}function show(){eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(toShow.length&&fx.show){toShow.animate(fx.show,fx.show.duration,function(){complete()})}else{toShow.show();complete()}}if(toHide.length&&fx.hide){toHide.animate(fx.hide,fx.hide.duration,function(){eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");show()})}else{eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");toHide.hide();show()}}})}})(jQuery);(function($){var increments=0;function addDescribedBy(elem,id){var describedby=(elem.attr("aria-describedby")||"").split(/\s+/);describedby.push(id);elem.data("ui-tooltip-id",id).attr("aria-describedby",$.trim(describedby.join(" ")))}function removeDescribedBy(elem){var id=elem.data("ui-tooltip-id"),describedby=(elem.attr("aria-describedby")||"").split(/\s+/),index=$.inArray(id,describedby);if(index!==-1){describedby.splice(index,1)}elem.removeData("ui-tooltip-id");describedby=$.trim(describedby.join(" "));if(describedby){elem.attr("aria-describedby",describedby)}else{elem.removeAttr("aria-describedby")}}$.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return $(this).attr("title")},hide:true,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:true,tooltipClass:null,track:false,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"});this.tooltips={};this.parents={};if(this.options.disabled){this._disable()}},_setOption:function(key,value){var that=this;if(key==="disabled"){this[value?"_disable":"_enable"]();this.options[key]=value;return}this._super(key,value);if(key==="content"){$.each(this.tooltips,function(id,element){that._updateContent(element)})}},_disable:function(){var that=this;$.each(this.tooltips,function(id,element){var event=$.Event("blur");event.target=event.currentTarget=element[0];that.close(event,true)});this.element.find(this.options.items).andSelf().each(function(){var element=$(this);if(element.is("[title]")){element.data("ui-tooltip-title",element.attr("title")).attr("title","")}})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var element=$(this);if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"))}})},open:function(event){var that=this,target=$(event?event.target:this.element).closest(this.options.items);if(!target.length||target.data("ui-tooltip-id")){return}if(target.attr("title")){target.data("ui-tooltip-title",target.attr("title"))}target.data("ui-tooltip-open",true);if(event&&event.type==="mouseover"){target.parents().each(function(){var parent=$(this),blurEvent;if(parent.data("ui-tooltip-open")){blurEvent=$.Event("blur");blurEvent.target=blurEvent.currentTarget=this;that.close(blurEvent,true)}if(parent.attr("title")){parent.uniqueId();that.parents[this.id]={element:this,title:parent.attr("title")};parent.attr("title","")}})}this._updateContent(target,event)},_updateContent:function(target,event){var content,contentOption=this.options.content,that=this,eventType=event?event.type:null;if(typeof contentOption==="string"){return this._open(event,target,contentOption)}content=contentOption.call(target[0],function(response){if(!target.data("ui-tooltip-open")){return}that._delay(function(){if(event){event.type=eventType}this._open(event,target,response)})});if(content){this._open(event,target,content)}},_open:function(event,target,content){var tooltip,events,delayedShow,positionOption=$.extend({},this.options.position);if(!content){return}tooltip=this._find(target);if(tooltip.length){tooltip.find(".ui-tooltip-content").html(content);return}if(target.is("[title]")){if(event&&event.type==="mouseover"){target.attr("title","")}else{target.removeAttr("title")}}tooltip=this._tooltip(target);addDescribedBy(target,tooltip.attr("id"));tooltip.find(".ui-tooltip-content").html(content);function position(event){positionOption.of=event;if(tooltip.is(":hidden")){return}tooltip.position(positionOption)}if(this.options.track&&event&&/^mouse/.test(event.type)){this._on(this.document,{mousemove:position});position(event)}else{tooltip.position($.extend({of:target},this.options.position))}tooltip.hide();this._show(tooltip,this.options.show);if(this.options.show&&this.options.show.delay){delayedShow=setInterval(function(){if(tooltip.is(":visible")){position(positionOption.of);clearInterval(delayedShow)}},$.fx.interval)}this._trigger("open",event,{tooltip:tooltip});events={keyup:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE){var fakeEvent=$.Event(event);fakeEvent.currentTarget=target[0];this.close(fakeEvent,true)}},remove:function(){this._removeTooltip(tooltip)}};if(!event||event.type==="mouseover"){events.mouseleave="close"}if(!event||event.type==="focusin"){events.focusout="close"}this._on(true,target,events)},close:function(event){var that=this,target=$(event?event.currentTarget:this.element),tooltip=this._find(target);if(this.closing){return}if(target.data("ui-tooltip-title")){target.attr("title",target.data("ui-tooltip-title"))}removeDescribedBy(target);tooltip.stop(true);this._hide(tooltip,this.options.hide,function(){that._removeTooltip($(this))});target.removeData("ui-tooltip-open");this._off(target,"mouseleave focusout keyup");if(target[0]!==this.element[0]){this._off(target,"remove")}this._off(this.document,"mousemove");if(event&&event.type==="mouseleave"){$.each(this.parents,function(id,parent){$(parent.element).attr("title",parent.title);delete that.parents[id]})}this.closing=true;this._trigger("close",event,{tooltip:tooltip});this.closing=false},_tooltip:function(element){var id="ui-tooltip-"+increments++,tooltip=$("
    ").attr({id:id,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));$("
    ").addClass("ui-tooltip-content").appendTo(tooltip);tooltip.appendTo(this.document[0].body);if($.fn.bgiframe){tooltip.bgiframe()}this.tooltips[id]=element;return tooltip},_find:function(target){var id=target.data("ui-tooltip-id");return id?$("#"+id):$()},_removeTooltip:function(tooltip){tooltip.remove();delete this.tooltips[tooltip.attr("id")]},_destroy:function(){var that=this;$.each(this.tooltips,function(id,element){var event=$.Event("blur");event.target=event.currentTarget=element[0];that.close(event,true);$("#"+id).remove();if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"));element.removeData("ui-tooltip-title")}})}})})(jQuery);enyo.kind({name:"LeftPanel",classes:"onyx-toolbar",kind:"Scroller",style:"width: 200px;height:100%;margin:0px;",accelerated:true,horizontal:"hidden",create:function(){this.inherited(arguments);this.$.strategy.setTranslateOptimized=true},components:[{tag:"center",components:[{tag:"img",ontap:"openRoot",src:"rlogo-tr.png",style:"margin:0px;margin-bottom:20px;cursor:pointer"},{kind:"Group",onActivate:"buttonActivated",classes:"enyo-border-box group",defaultKind:"onyx.Button",highlander:true,components:[{content:"Disassembler",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Disassembler",active:true},{content:"Assembler",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Assembler"},{content:"Hexdump",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Hexdump"},{content:"Graph",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Graph"},{content:"Search",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Search"},{content:"Console",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Console"},{content:"Debugger",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Debugger"},{content:"Script",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Script"},{content:"Settings",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Settings"},{content:"Logs",classes:"onyx-dark menu-button",ontap:"openPanel",name:"Logs"},{content:"About",classes:"onyx-dark menu-button",ontap:"openPanel",name:"About"}]}]}],openRoot:function(){window.location=".."},openPanel2:function(){this.ra.setIndex(2)},openPanel:function(x){if(enyo.Panels.isScreenNarrow())this.ra.setIndex(1);if(x.name==this.oname)this.ra.setIndex(1);this.oname=x.name;r2ui.selected_panel=this.oname;if(this.oname==="Logs")r2ui._log.connect();if(this.openCallback)this.openCallback(x.name)},oname:null,ra:null,oldSender:null,rowTap:function(inSender,inIndex){if(this.oldSender)this.oldSender.setStyle("width:100%");inSender.setStyle("background-color: #202020;width:100%");this.oldSender=inSender;if(this.openCallback)this.openCallback(inIndex.index)},openCallback:undefined,data:[],iter:1,refresh:function(){this.iter++}});enyo.kind({name:"Logs",kind:"Scroller",style:"background-color:#c0c0c0;padding-left:8px",components:[{tag:"form",attributes:{action:"javascript:#"},components:[{kind:"FittableRows",fit:true,classes:"fittable-sample-shadow",components:[{kind:"onyx.InputDecorator",style:"margin-top:8px;background-color:#404040;width: 90%;display:inline-block",components:[{kind:"Input",style:"width:100%;color:white",value:"",onkeydown:"sendMessage",attributes:{autocapitalize:"off"},name:"input"}]},{tag:"pre",classes:"r2ui-terminal",style:"width:90%;",fit:true,allowHtml:true,name:"output"}]}]}],logger:null,create:function(){this.inherited(arguments);r2ui._log=this},connect:function(){var out=this.$.output;this.logger=r2.getTextLogger().on("message",function(msg){out.setContent(out.getContent()+msg.text+"\n")});this.logger.autorefresh(3)},sendMessage:function(inSender,inEvent){if(inEvent.keyCode===13){var msg=this.$.input.getValue();this.$.input.setValue("");this.logger.send(msg)}}});enyo.kind({name:"RadareApp",kind:"Panels",classes:"panels enyo-unselectable",realtimeFit:true,fit:true,arrangerKind:"CollapsingArranger",components:[{name:"lp",kind:"LeftPanel"},{name:"mp",kind:"MainPanel"},{name:"rp",kind:"RightPanel"},{kind:enyo.Signals,onkeypress:"handleKeyPress"}],handlers:{onTransitionFinish:"handleTransitionFinish"},handleTransitionFinish:function(){if(r2ui._dis.display=="graph"&&r2ui._dis.minimap)update_minimap()},setPanel0:function(){this.$.RadareApp.setIndex(1)},create:function(){r2.load_settings();this.inherited(arguments);var data=[{name:"Disassembler",active:true},{name:"Assembler"},{name:"Hexdump"},{name:"Graph"},{name:"Search"},{name:"Console"},{name:"Debugger"},{name:"Script"},{name:"Settings",separator:true},{name:"Logs"},{name:"About"}];this.$.lp.data=data;this.$.mp.data=data;r2ui.ra=this.$.mp.ra=this.$.lp.ra=this.$.rp.ra=this;var mp=this.$.mp;r2ui.mp=mp;this.$.lp.openCallback=function(idx){mp.openPage(idx)};this.$.lp.refresh()},handleKeyPress:function(inSender,inEvent){for(var key in Config.keys){if(key.substring(0,2)=="C-"){if(inEvent.ctrlKey){var k=key.substring(2).charCodeAt(0);if(inEvent.charCode==k){var cmd=Config.keys[key];eval(cmd+";")}}}else{var k=key.charCodeAt(0);if(inEvent.charCode==k){var cmd=Config.keys[key];eval(cmd+";")}}}}});window.onload=function(){var obj=(new RadareApp).renderInto(document.body)};enyo.kind({name:"MainPanel",classes:"onyx",kind:"FittableRows",classes:"enyo-fit",style:"margin:0px;padding:0px;border:0px",data:null,buttonClicked:function(x){alert("let's play!")},cancelClicked:function(x){alert("nothing to see here! move along.")},inputKey:function(inSender,inEvent){if(inEvent.keyCode===13){var off=this.$.input.getValue();r2ui.opendis(off)}},goRename:function(){var msg=prompt("New name?","");if(msg)r2.cmd("afr "+msg,function(){r2ui.seek("$$",false)})},goComment:function(){var msg=prompt("Comment?","");if(msg)r2.cmd("CC "+msg,function(){r2ui.seek("$$",false)})},goFlag:function(){var msg=prompt("Flag name?","");if(msg)r2.cmd("f "+msg,function(){r2.update_flags();r2ui.seek("$$",false)})},goUnflag:function(){r2.cmd("f-$$",function(){r2.update_flags();r2ui.seek("$$",false)})},goAnalyze:function(){r2.cmd("af",function(){r2.update_flags();r2ui.seek("$$",false)})},goCopy:function(){var msg=prompt("How many bytes?","");if(msg&&msg>0)r2.cmd("y "+msg,function(){r2ui.seek("$$",false)})},goPaste:function(){r2.cmd("yy",function(){r2ui.seek("$$",false)})},wrString:function(){var msg=prompt("Text","");if(msg)r2.cmd("w "+msg,function(){r2ui.seek("$$",false)})},wrOpcode:function(){var msg=prompt("Opcode","");if(msg)r2.cmd("wa "+msg,function(){r2ui.seek("$$",false)})},wrFile:function(){var msg=prompt("Filename","");if(msg)r2.cmd("wf "+msg,function(){r2ui.seek("$$",false)})},wrHex:function(){var msg=prompt("Hexpair","");if(msg)r2.cmd("wx "+msg,function(){r2ui.seek("$$",false)})},coCode:function(){var msg=prompt("How many bytes?","");if(msg)r2.cmd("y "+msg,function(){r2ui.seek("$$",false)})},coString:function(){r2.cmd("Cz",function(){r2ui.seek("$$",false)})},coData:function(){var msg=prompt("How many bytes?","");if(msg)r2.cmd("Cd "+msg,function(){r2ui.seek("$$",false)})},setTitle:function(title){if(title){this.$.title.setContent(title);this.$.title.setStyle("visibility:visible;top:8px");this.$.extra.setStyle("visibility:hidden;")}else{this.$.title.setStyle("visibility:hidden");this.$.extra.setStyle("visibility:visible;")}},components:[{kind:"onyx.Toolbar",name:"toolbar",components:[{kind:"onyx.Button",content:"[",ontap:"openSidebar",classes:"top"},{kind:"onyx.Button",content:"]",ontap:"openSidebar2",classes:"top"},{name:"title",tag:"h2",content:"Assembler",classes:"topbox",style:"visibility:hidden;"},{name:"extra",tag:"div",classes:"topbox",components:[{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"actionsButton",content:"Actions"},{kind:"onyx.Picker",name:"actionsPicker",components:[{content:"Analyze",ontap:"goAnalyze"},{content:"Rename",ontap:"goRename"},{content:"Comment",ontap:"goComment"},{content:"Flag",ontap:"goFlag"},{content:"Unflag",ontap:"goUnflag"},{content:"Copy",ontap:"goCopy"},{content:"Paste",ontap:"goPaste"}]}]},{kind:"onyx.Button",content:"<",ontap:"prevSeek",classes:"top",style:"top:10px"},{kind:"onyx.Button",content:">",ontap:"nextSeek",classes:"top",style:"top:10px"},{kind:"onyx.InputDecorator",style:"width: 200px;top:10px",classes:"top",components:[{kind:"onyx.Input",name:"input",value:"entry0",onchange:"gotoSeek",onkeydown:"inputKey"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",content:"Convert"},{kind:"onyx.Picker",components:[{content:"Data",ontap:"coData"},{content:"Code",ontap:"coCode"},{content:"String",ontap:"coString"}]}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",content:"Write"},{kind:"onyx.Picker",components:[{content:"File",ontap:"wrFile"},{content:"Hexpair",ontap:"wrHex"},{content:"String",ontap:"wrString"},{content:"Opcode",ontap:"wrOpcode"}]}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"saveButton",content:"Save",ontap:"save_project"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"switchButton",content:"Switch View",ontap:"switch_view"}]},{kind:"onyx.PickerDecorator",classes:"top",components:[{kind:"onyx.Button",name:"helpButton",content:"?",ontap:"show_popup"},{name:"basicPopup",kind:"onyx.Popup",floating:true,centered:true,style:"padding: 10px",components:[{name:"popupContent",allowHtml:true,content:".."}]}]}]}]},{kind:"Panels",name:"panels",fit:true,realtimeFit:true,components:[]}],show_popup:function(inSender,inEvent){this.$.basicPopup.show()},switch_view:function(inSender,inEvent){r2ui._dis.switch_view()},save_project:function(inSender,inEvent){var project_name=prompt("Project Name:",r2.project_name);r2.cmd(":Ps "+project_name,function(x){});r2.project_name=project_name},create:function(){this.inherited(arguments);var mode=readCookie("r2_view_mode");if(!mode)mode="old";if(mode==="old"){this.$.panels.createComponents([{kind:"DisassemblerOld",name:"pageDisassembler"},{kind:"Assembler",name:"pageAssembler"},{kind:"Hexdump",name:"pageHexdump"},{kind:"Graph",name:"pageGraph"},{kind:"Search",name:"pageSearch"},{kind:"Console",name:"pageConsole"},{kind:"Debugger",name:"pageDebugger"},{kind:"Logs",name:"pageLogs"},{kind:"Script",name:"pageScript"},{kind:"Settings",name:"pageSettings"},{kind:"About",name:"pageAbout"}]);this.$.helpButton.hide();this.$.switchButton.hide()}else{this.$.panels.createComponents([{kind:"Disassembler",name:"pageDisassembler"},{kind:"Assembler",name:"pageAssembler"},{kind:"Hexdump",name:"pageHexdump"},{kind:"Graph",name:"pageGraph"},{kind:"Search",name:"pageSearch"},{kind:"Console",name:"pageConsole"},{kind:"Debugger",name:"pageDebugger"},{kind:"Logs",name:"pageLogs"},{kind:"Script",name:"pageScript"},{kind:"Settings",name:"pageSettings"},{kind:"About",name:"pageAbout"}]);var helpMsg=""+""+""+""+""+""+""+""+""+"Toggle minimap"+""+"
    h,lMove back and forth in history
    j,kMove to next or previous instruction
    gGo to address
    nRename
    cDefine function at current address
    dRemove function metadata for current address
    enterWhen address is selected, go to address
    ;Add comment
    m
    ?Display this help
    ";this.$.popupContent.setContent(helpMsg)}this.render();r2ui.panels=this.$.panels;this.$.panels.setIndex(0)},ra:null,openSidebar:function(){this.ra.setIndex(this.ra.index?0:1)},openSidebar2:function(){this.ra.setIndex(2)},rendered:function(){this.inherited(arguments)},openPage:function(idx){var str,sp=this.$.panels;var r=-1;switch(idx){case"Disassembler":r=0;break;case"Assembler":r=1;break;case"Hexdump":r=2;break;case"Graph":r=3;break;case"Search":r=4;break;case"Console":r=5;break;case"Debugger":r=6;break;case"Logs":r=7;break;case"Script":r=8;break;case"Settings":r=9;break;case"About":r=10;break}if(r==-1){sp.setIndex(idx);return}eval("var x = this.$.page"+idx);switch(r){case 0:case 2:this.setTitle();break;default:this.setTitle(idx);break}sp.setIndex(r)},seekStack:[],nextSeek:function(){var addr=r2ui.history_next();if(!addr)return;r2ui.seek(addr,false)},prevSeek:function(){var addr=r2ui.history_prev();if(!addr)return;r2ui.seek(addr,false)},gotoSeek:function(){var addr=this.$.input.getValue();if(addr[0]=="!"){r2.cmd(addr.slice(1),function(x){alert(x)})}else{r2ui.seek(addr)}}});var r2={};var backward=false;var next_curoff=0;var next_lastoff=0;var prev_curoff=0;var prev_lastoff=0;var hascmd=false;function asyncLoop(iterations,func,callback){var index=0;var done=false;var loop={next:function(){if(done){return}if(index=r2.sections[i].addr&&offset-1){return"instruction"}else{return"memory"}}}return""};r2.settings={};r2.load_settings=function(){r2.cmd("e asm.arch",function(x){r2.settings["asm.arch"]=x.trim()});r2.cmd("e asm.bits",function(x){r2.settings["asm.bits"]=x.trim()});r2.cmd("e asm.bytes",function(x){r2.settings["asm.bytes"]=toBoolean(x.trim())});r2.cmd("e asm.flags",function(x){r2.settings["asm.flags"]=toBoolean(x.trim())});r2.cmd("e asm.offset",function(x){r2.settings["asm.offset"]=toBoolean(x.trim())});r2.cmd("e asm.lines",function(x){r2.settings["asm.lines"]=toBoolean(x.trim())});r2.cmd("e asm.xrefs",function(x){r2.settings["asm.xrefs"]=toBoolean(x.trim())});r2.cmd("e asm.cmtright",function(x){r2.settings["asm.cmtright"]=toBoolean(x.trim())});r2.cmd("e asm.pseudo",function(x){r2.settings["asm.pseudo"]=toBoolean(x.trim())})};r2.flags={};r2.update_flags=function(){r2.cmd("fs *;fj",function(x){var fs=JSON.parse(x);if(fs!==undefined&&fs!==null){r2.flags={};for(var f in fs){var addr="0x"+fs[f].offset.toString(16);addr=address_canonicalize(addr);if(addr in r2.flags){var fl=r2.flags[addr];fl[fl.length]={name:fs[f].name,size:fs[f].size};r2.flags[addr]=fl}else{r2.flags[addr]=[{name:fs[f].name,size:fs[f].size}]}}}})};r2.get_flag_address=function(name){for(var f in r2.flags){for(var v in r2.flags[f]){if(name==r2.flags[f][v].name)return f}}return null};r2.get_flag_names=function(offset){var names=[];for(var i in r2.flags[offset]){names[names.length]=r2.flags[offset][i].name}return names};r2.set_flag_space=function(ns,fn){r2.cmd("fs "+ns,fn)};r2.get_flags=function(fn){r2.cmd("fj",function(x){fn(x?JSON.parse(x):[])})};r2.get_opcodes=function(off,n,cb){r2.cmd("pdj @"+off+"!"+n,function(json){cb(JSON.parse(json))})};r2.get_bytes=function(off,n,cb){r2.cmd("pcj @"+off+"!"+n,function(json){cb(JSON.parse(json))})};r2.asm_config={};r2.store_asm_config=function(){config={};r2.cmd("e",function(x){conf=x.split("\n");for(var prop in conf){var fields=conf[prop].split(" ");if(fields.length==3){if(fields[0].trim().indexOf("asm.")==0)config[fields[0].trim()]=fields[2].trim()}}r2.asm_config=config})};r2.restore_asm_config=function(){cmd="";for(var prop in r2.asm_config){cmd+="e "+prop+"="+r2.asm_config[prop]+";"}r2.cmd(cmd,function(x){})};r2.get_info=function(cb){r2.cmd("ij",function(json){cb(JSON.parse(json))})};r2.bin_relocs=function(cb){r2.cmd("irj",function(json){cb(JSON.parse(json))})};r2.bin_imports=function(cb){r2.cmd("iij",function(json){cb(JSON.parse(json))})};r2.bin_symbols=function(cb){r2.cmd("isj",function(json){cb(JSON.parse(json))})};r2.bin_sections=function(cb){r2.cmd("iSj",function(json){cb(JSON.parse(json))})};r2.cmds=function(cmds,cb){if(cmds.length==0)return;var cmd=cmds[0];cmds=cmds.splice(1);function lala(){if(cmd==undefined||cmds.length==0){return}cmd=cmds[0];cmds=cmds.splice(1);r2.cmd(cmd,lala);if(cb){cb()}return}r2.cmd(cmd,lala)};function _internal_cmd(c,cb){if(typeof r2cmd!="undefined"){hascmd=r2cmd}if(hascmd){if(typeof r2plugin!="undefined"){cb(r2cmd(c))}else{return hascmd(c,cb)}}else{Ajax("GET",r2.root+"/cmd/"+encodeURI(c),"",function(x){if(cb){cb(x)}})}}r2.cmd=function(c,cb){if(Array.isArray(c)){var res=[];var idx=0;asyncLoop(c.length,function(loop){_internal_cmd(c[idx],function(result){idx=loop.iteration();res[idx]=result.replace(/\n$/,"");idx++;loop.next()})},function(){cb(res)})}else{_internal_cmd(c,cb)}};r2.cmdj=function(c,cb){r2.cmd(c,function(x){try{cb(JSON.parse(x))}catch(e){cb(null)}})};r2.alive=function(cb){r2.cmd("b",function(o){var ret=false;if(o&&o.length()>0){ret=true}if(cb){cb(o)}})};r2.getTextLogger=function(obj){if(typeof obj!="object"){obj={}}obj.last=0;obj.events={};obj.interval=null;r2.cmd("Tl",function(x){obj.last=+x});obj.load=function(cb){r2.cmd("Tj "+(obj.last+1),function(ret){if(cb){cb(JSON.parse(ret))}})};obj.clear=function(cb){r2.cmd("T-",cb)};obj.send=function(msg,cb){r2.cmd("T "+msg,cb)};obj.refresh=function(cb){obj.load(function(ret){for(var i=0;iobj.last){obj.last=message[0]}}if(cb){cb()}})};obj.autorefresh=function(n){if(!n){if(obj.interval){obj.interval.stop()}return}function to(){obj.refresh(function(){});if(r2ui.selected_panel==="Logs")setTimeout(to,n*1e3);else console.log("Not in logs :(");return true}obj.interval=setTimeout(to,n*1e3)};obj.on=function(ev,cb){obj.events[ev]=cb;return obj};return obj};r2.filter_asm=function(x,display){var curoff=backward?prev_curoff:next_curoff;var lastoff=backward?prev_lastoff:next_lastoff;var lines=x.split(/\n/g);r2.cmd("s",function(x){curoff=x});for(var i=lines.length-1;i>0;i--){var a=lines[i].match(/0x([a-fA-F0-9]+)/);if(a&&a.length>0){lastoff=a[0].replace(/:/g,"");break}}if(display=="afl"){var z="";for(var i=0;i"+space+"\n"}x=z}else{}}else if(display[0]=="i"){if(display[1]){var z="";for(var i=0;ifunction:");x=x.replace(/;(\s+)/g,";");x=x.replace(/;(.*)/g,"// $1");x=x.replace(/(bl|goto|call)/g,"call");x=x.replace(/(jmp|bne|beq|js|jnz|jae|jge|jbe|jg|je|jl|jz|jb|ja|jne)/g,"$1");x=x.replace(/(dword|qword|word|byte|movzx|movsxd|cmovz|mov\ |lea\ )/g,"$1");x=x.replace(/(hlt|leave|iretd|retn|ret)/g,"$1");x=x.replace(/(add|sbb|sub|mul|div|shl|shr|and|not|xor|inc|dec|sar|sal)/g,"$1");x=x.replace(/(push|pop)/g,"$1");x=x.replace(/(test|cmp)/g,"$1");x=x.replace(/(outsd|out|string|invalid|int |int3|trap|main|in)/g,"$1");x=x.replace(/nop/g,"nop");x=x.replace(/(sym|fcn|str|imp|loc)\.([^:<(\\\/ \|)\->]+)/g,"$1.$2")}x=x.replace(/0x([a-zA-Z0-9]+)/g,"0x$1");if(backward){prev_curoff=curoff;prev_lastoff=lastoff}else{next_curoff=curoff;next_lastoff=lastoff;if(!prev_curoff){prev_curoff=next_curoff}}return x};var r2ui={};r2ui.selected_panel="Disassembler";r2ui.history=[];r2ui.history_idx=0;r2ui.colors={};r2ui.load_colors=function(){r2.cmdj("ecj",function(x){for(var i in x){r2ui.colors[".ec_"+i.replace("gui.","gui_")]="rgb("+String(x[i])+")"}});for(var k in document.styleSheets){var mysheet=document.styleSheets[k];var myrules=mysheet.cssRules?mysheet.cssRules:mysheet.rules;var targetrule;for(var j in myrules){if(myrules[j].selectorText!==undefined&&myrules[j].selectorText!==null){if(myrules[j].selectorText.toLowerCase().indexOf(".ec_")===0){var sel=myrules[j].selectorText;var color=r2ui.colors[sel];if(color!==undefined&&color!==null){if(sel==".ec_gui_background"||sel==".ec_gui_alt_background"){myrules[j].style.backgroundColor=color}else if(sel==".ec_border")myrules[j].style.borderColor=color;else myrules[j].style.color=color}else{if(sel==".ec_gui_background"||sel==".ec_gui_alt_background")r2ui.colors[sel]=myrules[j].style.backgroundColor;else if(sel==".ec_gui_border")r2ui.colors[sel]=myrules[j].style.borderColor;else r2ui.colors[sel]=myrules[j].style.color}}}}}};r2ui.basic_blocks={};r2ui.use_sdb=false;r2ui.get_fcn_BB=function(fcn_offset,bb_offset){if(r2ui.use_sdb){var path="webui/graph/"+fcn_offset+"/"+bb_offset;var bb=undefined;r2.cmd("k "+path,function(x){var lines=decodeURIComponent(x).split("\n");for(var l in lines){var line=lines[l];if(line!==""){bb={};var props=line.split(",");bb.x=props[0];bb.y=props[1];if(props[2]==""||props[2]===undefined)props[2]="transparent";bb.color=props[2].replace(/\*\*/g,",")}}});return bb}else{return r2ui.basic_blocks[bb_offset]}};r2ui.get_fcn_BBs=function(fcn_offset){if(r2ui.use_sdb){var path="webui/graph/"+fcn_offset+"/*";var BBs={};r2.cmd("k "+path,function(x){var lines=decodeURIComponent(x).split("\n");for(var l in lines){var line=lines[l];if(line!==""){offset=line.split("=")[0];line=line.split("=")[1];var bb={};var props=line.split(",");bb.x=props[0];bb.y=props[1];if(props[2]==""||props[2]===undefined)props[2]="transparent";bb.color=props[2].replace(/\*\*/g,",");BBs[offset]=bb}}});return BBs}else{return r2ui.basic_blocks}};r2ui.update_fcn_BB=function(fcn_offset,bb_offset,bbinfo){if(r2ui.use_sdb){var path="webui/graph/"+fcn_offset+"/"+bb_offset;if(bbinfo.color===undefined)bbinfo.color="transparent";var value=bbinfo.x+","+bbinfo.y+","+bbinfo.color.replace(/,/g,"**");r2.cmd("k "+path+"="+encodeURIComponent(value),function(x){})}else{r2ui.basic_blocks[bb_offset]=bbinfo}};r2ui.current_fcn_offset=null;r2ui.graph=null;r2ui.console_lang="r2";r2ui.toggle_console_lang=function(){if(r2ui.console_lang=="r2")r2ui.console_lang="js";else if(r2ui.console_lang=="js")r2ui.console_lang="r2";$("#cmd_input > label").html(r2ui.console_lang)};r2ui.history_push=function(x){if(x!=r2ui.history_last()){if(r2ui.history_idx!=r2ui.history.length)r2ui.history=r2ui.history.splice(0,r2ui.history_idx);r2ui.history_idx++;r2ui.history.push(x)}};r2ui.history_pop=function(){if(r2ui.history_idx==r2ui.history.length)r2ui.history_idx--;return r2ui.history.pop()};r2ui.history_last=function(){if(r2ui.history.length>0){return r2ui.history[r2ui.history_idx-1]}};r2ui.history_prev=function(){if(r2ui.history_idx>1)r2ui.history_idx--;return r2ui.history[r2ui.history_idx-1]};r2ui.history_next=function(){var ret=r2ui.history[r2ui.history_idx];if(r2ui.history_idx0x"+x[i].offset.toString(16)+" "+enyo.dom.escape(x[i].name)+"\n";return z}enyo.kind({name:"RightPanel",style:"background-color:#404040;",classes:"onyx-toolbar",kind:"FittableRows",ra:null,components:[{kind:"FittableColumns",style:"margin-bottom:5px",components:[{kind:"onyx.Button",content:"[",ontap:"closeSidebar",style:"padding:8px;margin-right:8px"},{onup:"toggleScroll",style:"position:absolute;left:40px;top:0px;",kind:"onyx.MenuDecorator",onSelect:"itemSelected",components:[{content:"List elements"},{kind:"onyx.Menu",showOnTop:true,maxHeight:290,name:"menu",style:"height:300px",components:[{content:"flags",value:"2"},{content:"flagspaces",value:"2"},{classes:"onyx-menu-divider"},{content:"strings",value:"1"},{content:"symbols",value:"1"},{content:"imports",value:"1"},{content:"relocs",value:"1"},{content:"functions",value:"1"},{content:"comments",value:"1"},{classes:"onyx-menu-divider"},{content:"registers",value:"1"},{content:"stack",value:"2"},{content:"backtrace",value:"3"}]}]}]},{kind:"Scroller",animated:false,fit:true,horizontal:false,name:"scroll",components:[{tag:"pre",style:"font-size:14px",allowHtml:true,name:"output",content:".."}]}],toggleScroll:function(){var is_visible=this.$.menu.getShowing();this.$.scroll.setShowing(is_visible)},rowTap:function(){},create:function(){this.inherited(arguments)},data:[],setupItem:function(inSender,inIndex){var item=this.data[inIndex.index];if(!item)return false;var msg=item.name+" "+item.offset;console.log(msg);this.$.msg.setContent(msg);return true},refresh:function(){},itemSelected:function(inSender,inEvent){var self=this;var selected=inEvent.originator.content;var is_visible=this.$.menu.getShowing();r2ui.rp=self;this.$.scroll.setShowing(!!!is_visible);this.$.menu.setShowing(false);this.$.scroll.scrollToTop();switch(selected){case"comments":r2.cmd("CC*",function(x){x=x.replace(/0x([a-zA-Z0-9]*)/g,"0x$1");self.$.output.setContent(x)});break;case"functions":r2.cmd("afl",function(x){x=x.replace(/0x([a-zA-Z0-9]*)/g,"0x$1");self.$.output.setContent(x)});break;case"flagspaces":this.updateFlagspace();break;case"strings":r2.cmd("izj",function(x){var s=JSON.parse(x);var h="";for(var i in s){var off=(+s[i]["offset"]).toString(16);h+='0x'+off+" "+enyo.dom.escape(s[i]["string"])+"
    "}self.$.output.setContent(h)});break;case"sections":r2.bin_sections(function(x){self.$.output.setContent(makelist(x))});break;case"symbols":r2.bin_symbols(function(x){self.$.output.setContent(makelist(x))});break;case"relocs":r2.bin_relocs(function(x){self.$.output.setContent(makelist(x))});break;case"imports":r2.bin_imports(function(x){self.$.output.setContent(makelist(x))});break;case"flags":r2.get_flags(function(flags){self.data=flags;self.$.output.setContent(makelist(flags));self.refresh()});break}},closeSidebar:function(){this.ra.setIndex(1)},selectFlagspace:function(x){r2.cmd("fs "+x,function(x){r2ui.rp.updateFlagspace()})},updateFlagspace:function(){var self=r2ui.rp;r2.cmd("fsj",function(x){var s=JSON.parse(x);var h="";for(var i in s){var nam=s[i].name;var sel=s[i].selected;h+='"+nam+" "+(sel?" (selected)":"")+"
    "}self.$.output.setContent(h)})}});enyo.kind({name:"Script",kind:"Scroller",style:"background-color:#c0c0c0",clear:function(){with(this.$.input){setContent(value="");render()}},demo:function(){with(this.$.input){setContent(value=['r2.disassemble (0, "9090", function(text) {'," show (text)"," show ()",' r2.assemble (0, "mov eax, 33", function (text) {'," show (text);"," });"," show (r2)","});"].join("\n"));render()}},run:function(){var code=this.$.input.value;var out="";function show(x){if(!x)out+="\n";else if(typeof x=="object"){out+="{";for(var y in x){var v=x[y];out+=y+": "+v+"\n , "}out+="}"}else{out+=x+"\n"}}try{eval(code);this.$.output.setContent(out)}catch(e){alert(e)}},components:[{tag:"p",style:"margin-left:10px",components:[{kind:"onyx.Button",content:"Run",classes:"sourcebutton",ontap:"run"},{kind:"onyx.Button",content:"Clear",classes:"sourcebutton",ontap:"clear"},{kind:"onyx.Button",content:"Demo",classes:"sourcebutton",ontap:"demo"}]},{kind:"onyx.TextArea",name:"input",classes:"sourcecode"},{tag:"pre",name:"output",style:"margin-left:12px"}]});enyo.kind({name:"Search",kind:"Scroller",style:"background-color:#303030",components:[{tag:"center",components:[{tag:"h1",style:"color:#f0f0f0",content:"TODO: Search"}]}]});enyo.kind({name:"Settings",classes:"panels-sample-sliding-content r2panel",kind:"Scroller",tag:"div",data:null,style:"background-color:#c0c0c0; color:black !important;padding:0px;margin:0px;border:0px;overflow:hidden",components:[{kind:"FittableRows",fit:false,components:[{tag:"h2",content:"General"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Two panels",classes:"rowline"},{kind:"onyx.ToggleButton",name:"twopanels"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Edit keybindings",classes:"rowline"},{kind:"onyx.Button",content:"+"}]}]},{kind:"FittableRows",fit:false,components:[{tag:"h2",content:"Target"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Arch",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",name:"arch",components:[{content:"arc"},{content:"arm"},{content:"avr"},{content:"ppc"},{content:"bf"},{content:"dalvik"},{content:"dcpu16"},{content:"i8080"},{content:"java"},{content:"m68k"},{content:"mips"},{content:"msil"},{content:"rar"},{content:"sh"},{content:"sparc"},{content:"x86",active:true},{content:"z80"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Bits",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",name:"bits",components:[{content:"8"},{content:"16"},{content:"32",active:true},{content:"64"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Endian",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",components:[{content:"little",active:true},{content:"big"}]}]}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"OS",classes:"rowline"},{kind:"onyx.PickerDecorator",components:[{},{kind:"onyx.Picker",components:[{content:"linux",active:true},{content:"darwin"},{content:"w32"},{content:"dos"}]}]}]},{tag:"h2",content:"Disassembly"},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show new view",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"use_new_view"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show bytes",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_bytes"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show offsets",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_offset"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show flags",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_flags"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show xrefs",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_xrefs"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show comments on right",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_cmtright"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Show lines",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_lines"}]},{kind:"onyx.InputDecorator",components:[{tag:"p",content:"Pseudo",classes:"rowline",ontap:"nextPanel"},{kind:"onyx.ToggleButton",name:"toggle_pseudo"}]}]},{tag:"h2",content:"Save changes?"},{tag:"div",style:"margin-left:50px",components:[{ontap:"reset",kind:"onyx.Button",style:"position:relative;left:0px",content:"Reset"},{ontap:"save",kind:"onyx.Button",style:"position:relative;left:50px",content:"Save",classes:"onyx-affirmative"}]},{tag:"div",style:"height:64px"}],load:function(){var self=this;self.$.twopanels.setActive(document.referrer.indexOf("/two")!=-1);self.$.toggle_bytes.setActive(r2.settings["asm.bytes"]);self.$.toggle_pseudo.setActive(r2.settings["asm.pseudo"]);self.$.toggle_flags.setActive(r2.settings["asm.flags"]);self.$.toggle_xrefs.setActive(r2.settings["asm.xrefs"]);self.$.toggle_cmtright.setActive(r2.settings["asm.cmtright"]);self.$.toggle_offset.setActive(r2.settings["asm.offset"]);self.$.toggle_lines.setActive(r2.settings["asm.lines"]);var mode=readCookie("r2_view_mode");if(!mode)mode="old";self.$.use_new_view.setActive(mode=="new")},create:function(){this.inherited(arguments);this.load()},save:function(){var use_new_view=this.$.use_new_view.active;var show_offset=this.$.toggle_offset.active;var arch=this.$.arch.selected.content;var bits=this.$.bits.selected.content;var show_bytes=this.$.toggle_bytes.active;var show_pseudo=this.$.toggle_pseudo.active;var show_flags=this.$.toggle_flags.active;var show_lines=this.$.toggle_lines.active;var show_xrefs=this.$.toggle_xrefs.active;var comments_on_right=this.$.toggle_cmtright.active;var twopanels=this.$.twopanels.active;r2.cmds(["e asm.offset="+show_offset,"e asm.arch="+arch,"e asm.bits="+bits,"e asm.lines="+show_lines,"e asm.bytes="+show_bytes,"e asm.flags="+show_flags,"e asm.xrefs="+show_xrefs,"e asm.cmtright="+comments_on_right,"e asm.pseudo="+show_pseudo]);r2.settings={use_new_view:use_new_view,"asm.arch":arch,"asm.bits":bits,"asm.bytes":show_bytes,"asm.flags":show_flags,"asm.xrefs":show_xrefs,"asm.cmtright":comments_on_right,"asm.lines":show_lines,"asm.pseudo":show_pseudo};if(use_new_view)createCookie("r2_view_mode","new",7);else createCookie("r2_view_mode","old",7);if(twopanels){window.parent.location="/enyo/two"}else{window.parent.location="/enyo/"}r2ui.seek("$$",false)},reset:function(){this.load()}}); diff --git a/shlr/www/enyo/joint.min.css b/shlr/www/enyo/joint.min.css deleted file mode 100644 index 5337b69aaaac0..0000000000000 --- a/shlr/www/enyo/joint.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! JointJS v0.9.2 - JavaScript diagramming library 2014-09-17 - - -This Source Code Form is subject to the terms of the Mozilla Public -License, v. 2.0. If a copy of the MPL was not distributed with this -file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -.viewport{-webkit-user-select:none;-moz-user-select:none;user-select:none}[magnet=true]:not(.element){cursor:crosshair}[magnet=true]:not(.element):hover{opacity:.7}.element{cursor:move}.element *{vector-effect:non-scaling-stroke;-moz-user-select:none;user-drag:none}.connection-wrap{fill:none;stroke:#000;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;opacity:0;cursor:move}.connection-wrap:hover{opacity:.4;stroke-opacity:.4}.connection{fill:none;stroke-linejoin:round}.marker-source,.marker-target{vector-effect:non-scaling-stroke}.marker-vertices{opacity:0;cursor:move}.marker-arrowheads{opacity:0;cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.link-tools{opacity:0;cursor:pointer}.link-tools .tool-options{display:none}.link-tools .tool-remove circle{fill:red}.link-tools .tool-remove path{fill:#fff}.link:hover .marker-vertices,.link:hover .marker-arrowheads,.link:hover .link-tools{opacity:1}.marker-vertex{fill:#1ABC9C}.marker-vertex:hover{fill:#34495E;stroke:none}.marker-arrowhead{fill:#1ABC9C}.marker-arrowhead:hover{fill:#F39C12;stroke:none}.marker-vertex-remove{cursor:pointer;opacity:.1;fill:#fff}.marker-vertex-group:hover .marker-vertex-remove{opacity:1}.marker-vertex-remove-area{opacity:.1;cursor:pointer}.marker-vertex-group:hover .marker-vertex-remove-area{opacity:1}.highlighted{opacity:.7}text.highlighted{fill:red}@media screen and (-webkit-min-device-pixel-ratio:0){.highlighted{outline:2px solid red;opacity:initial}}.element .fobj body{background-color:transparent;margin:0}.element .fobj div{text-align:center;vertical-align:middle;display:table-cell;padding:0 5px} \ No newline at end of file diff --git a/shlr/www/enyo/jquery.layout.css b/shlr/www/enyo/jquery.layout.css deleted file mode 100644 index e63d3d0101858..0000000000000 --- a/shlr/www/enyo/jquery.layout.css +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Default Layout Theme - * - * Created for jquery.layout - * - * Copyright (c) 2010 - * Fabrizio Balliano (http://www.fabrizioballiano.net) - * Kevin Dalman (http://allpro.net) - * - * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) - * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. - * - * Last Updated: 2010-02-10 - * NOTE: For best code readability, view this with a fixed-space font and tabs equal to 4-chars - */ - -/* - * DEFAULT FONT - * Just to make demo-pages look better - not actually relevant to Layout! - */ -body { - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 100%; - *font-size: 80%; -} - -/* - * PANES & CONTENT-DIVs - */ -.ui-layout-pane { /* all 'panes' */ - border: 1px solid #BBB; - padding: 10px; - overflow: auto; - /* DO NOT add scrolling (or padding) to 'panes' that have a content-div, - otherwise you may get double-scrollbars - on the pane AND on the content-div - - use ui-layout-wrapper class if pane has a content-div - - use ui-layout-container if pane has an inner-layout - */ - } - /* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */ - .ui-layout-content { - padding: 10px; - position: relative; /* contain floated or positioned elements */ - overflow: auto; /* add scrolling to content-div */ - } - -/* - * UTILITY CLASSES - * Must come AFTER pane-class above so will override - * These classes are NOT auto-generated and are NOT used by Layout - */ -.layout-child-container, -.layout-content-container { - padding: 0; - overflow: hidden; -} -.layout-child-container { - border: 0; /* remove border because inner-layout-panes probably have borders */ -} -.layout-scroll { - overflow: auto; -} -.layout-hide { - display: none; -} - -/* - * RESIZER-BARS - */ -.ui-layout-resizer { /* all 'resizer-bars' */ - background: #DDD; - border: 1px solid #BBB; - border-width: 0; - } - .ui-layout-resizer-drag { /* REAL resizer while resize in progress */ - } - .ui-layout-resizer-hover { /* affects both open and closed states */ - } - /* NOTE: It looks best when 'hover' and 'dragging' are set to the same color, - otherwise color shifts while dragging when bar can't keep up with mouse */ - .ui-layout-resizer-open-hover , /* hover-color to 'resize' */ - .ui-layout-resizer-dragging { /* resizer beging 'dragging' */ - background: #C4E1A4; - } - .ui-layout-resizer-dragging { /* CLONED resizer being dragged */ - border: 1px solid #BBB; - } - .ui-layout-resizer-north-dragging, - .ui-layout-resizer-south-dragging { - border-width: 1px 0; - } - .ui-layout-resizer-west-dragging, - .ui-layout-resizer-east-dragging { - border-width: 0 1px; - } - /* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */ - .ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */ - background: #E1A4A4; /* red */ - } - - .ui-layout-resizer-closed-hover { /* hover-color to 'slide open' */ - background: #EBD5AA; - } - .ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */ - opacity: .10; /* show only a slight shadow */ - filter: alpha(opacity=10); - } - .ui-layout-resizer-sliding-hover { /* sliding resizer - hover */ - opacity: 1.00; /* on-hover, show the resizer-bar normally */ - filter: alpha(opacity=100); - } - /* sliding resizer - add 'outside-border' to resizer on-hover - * this sample illustrates how to target specific panes and states */ - .ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; } - .ui-layout-resizer-south-sliding-hover { border-top-width: 1px; } - .ui-layout-resizer-west-sliding-hover { border-right-width: 1px; } - .ui-layout-resizer-east-sliding-hover { border-left-width: 1px; } - -/* - * TOGGLER-BUTTONS - */ -.ui-layout-toggler { - border: 1px solid #BBB; /* match pane-border */ - background-color: #BBB; - } - .ui-layout-resizer-hover .ui-layout-toggler { - opacity: .60; - filter: alpha(opacity=60); - } - .ui-layout-toggler-hover , /* need when NOT resizable */ - .ui-layout-resizer-hover .ui-layout-toggler-hover { /* need specificity when IS resizable */ - background-color: #FC6; - opacity: 1.00; - filter: alpha(opacity=100); - } - .ui-layout-toggler-north , - .ui-layout-toggler-south { - border-width: 0 1px; /* left/right borders */ - } - .ui-layout-toggler-west , - .ui-layout-toggler-east { - border-width: 1px 0; /* top/bottom borders */ - } - /* hide the toggler-button when the pane is 'slid open' */ - .ui-layout-resizer-sliding .ui-layout-toggler { - display: none; - } - /* - * style the text we put INSIDE the togglers - */ - .ui-layout-toggler .content { - color: #666; - font-size: 12px; - font-weight: bold; - width: 100%; - padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */ - } - -/* - * PANE-MASKS - * these styles are hard-coded on mask elems, but are also - * included here as !important to ensure will overrides any generic styles - */ -.ui-layout-mask { - border: none !important; - padding: 0 !important; - margin: 0 !important; - overflow: hidden !important; - position: absolute !important; - opacity: 0 !important; - filter: Alpha(Opacity="0") !important; -} -.ui-layout-mask-inside-pane { /* masks always inside pane EXCEPT when pane is an iframe */ - top: 0 !important; - left: 0 !important; - width: 100% !important; - height: 100% !important; -} -div.ui-layout-mask {} /* standard mask for iframes */ -iframe.ui-layout-mask {} /* extra mask for objects/applets */ - -/* - * Default printing styles - */ -@media print { - /* - * Unless you want to print the layout as it appears onscreen, - * these html/body styles are needed to allow the content to 'flow' - */ - html { - height: auto !important; - overflow: visible !important; - } - body.ui-layout-container { - position: static !important; - top: auto !important; - bottom: auto !important; - left: auto !important; - right: auto !important; - /* only IE6 has container width & height set by Layout */ - _width: auto !important; - _height: auto !important; - } - .ui-layout-resizer, .ui-layout-toggler { - display: none !important; - } - /* - * Default pane print styles disables positioning, borders and backgrounds. - * You can modify these styles however it suit your needs. - */ - .ui-layout-pane { - border: none !important; - background: transparent !important; - position: relative !important; - top: auto !important; - bottom: auto !important; - left: auto !important; - right: auto !important; - width: auto !important; - height: auto !important; - overflow: visible !important; - } -} - diff --git a/shlr/www/enyo/js/about.js b/shlr/www/enyo/js/about.js deleted file mode 100644 index eecc4d6773654..0000000000000 --- a/shlr/www/enyo/js/about.js +++ /dev/null @@ -1,29 +0,0 @@ -enyo.kind ({ - name: "About", - kind: "Scroller", - style: "background-color:#303030", - components: [ - {tag: "center", components: [ - {tag: "h1", style: "color:#f0f0f0", content: "r2wui"}, - {kind: "Image", src: "icon.png" }, - {tag: "h3", style: "color:#707070;margin-bottom:50px", - content: "the web frontend for radare2"}, - {tag: "h2", style: "color:#a0a0a0", content: "author: pancake 2013-2014"}, - {tag: "h2", style: "color:#a0a0a0", content: "version: ???", name: "vertext"}, - {tag: "h2", style: "color:#a0a0a0", content: "revision: ???", name: "revtext"} - ]} - ], - create: function() { - this.inherited (arguments); - (function(me) { - setTimeout (function() { - r2.cmd ("?V", function (v) { - var version = v.split (" ")[0]; - var revision = v.split (" ")[2]; - me.$.vertext.setContent ("version: "+version); - me.$.revtext.setContent ("revision: "+revision); - }); - }, 1000); - })(this); - } -}); diff --git a/shlr/www/enyo/js/assembler.js b/shlr/www/enyo/js/assembler.js deleted file mode 100644 index 153f87bff3fc0..0000000000000 --- a/shlr/www/enyo/js/assembler.js +++ /dev/null @@ -1,65 +0,0 @@ -enyo.kind ({ - name: "Assembler", - kind: "Scroller", - classes: "r2panel", - style: "background-color:#c0c0c0;", - components: [ - {tag: "form", style:"margin-top:8px;margin-left:8px", attributes: {action:"javascript:#"}, components: [ - {kind: "FittableRows", fit: true, components: [ - {kind: "onyx.InputDecorator", classes: "r2ui-input", components: [ - {tag: "font", content: "opcode", classes:"r2ui-input", style: "width:64px;font-weight:bold"}, - {kind: "Input", value: '', style:"width:60%", onkeydown: "assembleOpcode", attributes: {autocapitalize:"off"}, name: "opcode"}, - ]}, - {kind: "onyx.InputDecorator", classes: "r2ui-input", components: [ - {tag: "font", content: "bytes", classes:"r2ui-input", style: "width:64px;font-weight:bold"}, - {kind: "Input", value: '', style:"width:120px", onkeydown: "assembleOpcode", attributes: {autocapitalize:"off"}, name: "bytes"}, - ]}, - {kind: "onyx.InputDecorator", classes: "r2ui-input", components: [ - {tag: "font", content: "offset", classes: "r2ui-input", style:"width:64px;font-weight:bold"}, - {kind: "Input", value: 'entry0', style:"width:120px", onkeydown: "assembleOpcode", attributes: {autocapitalize:"off"}, name: "offset"} - ]}, - ]} - ]}, - {tag: "form", style:"margin-top:8px;margin-left:8px", attributes: {action:"javascript:#"}, components: [ - {tag: "h2", content: "Calculator" }, - {kind: "onyx.InputDecorator", classes: "r2ui-input", components: [ - {tag: "font", name: "value", content: "0", classes: "r2ui-input", style:"width:200px;font-weight:bold"}, - {kind: "Input", name: "ivalue", value: '0', style:"width:300", - onkeydown: "calculateValue", attributes: {autocapitalize:"off"} } - ]} - ]} - ], - calculateValue: function (inSender, inEvent) { - if (inEvent.keyCode === 13) { - var v = this.$.value; - var val = inSender.getValue (); - v.setContent ("..."); - r2.cmd ('?v '+val, function (x) { - v.setContent (x); - }); - } - }, - assembleOpcode: function (inSender, inEvent) { - if (inEvent.keyCode === 13) { - var arg = inSender.getValue (); - var off = this.$.offset.getValue (); - switch (inSender.name) { - case 'opcode': - var hex = this.$.bytes; - r2.assemble (off, arg, function (bytes) { - hex.setValue (bytes); // ? s/\n/;/g - }); - break; - case 'bytes': - var op = this.$.opcode; - //r2.cmd ("pi 1@b:"+arg, function (x) { - r2.disassemble (off, arg, function (x) { - op.setValue (x); // ? s/\n/;/g - }); - break; - case 'offset': - break; - } - } - } -}); diff --git a/shlr/www/enyo/js/config.js b/shlr/www/enyo/js/config.js deleted file mode 100644 index d269b03218955..0000000000000 --- a/shlr/www/enyo/js/config.js +++ /dev/null @@ -1,17 +0,0 @@ -var Config = { - "keys": { - "1": "this.setIndex(0)", - "2": "this.setIndex(1)", - "3": "this.setIndex(2)", - // Most of this keya are used in disassembly so it makes no sense leaving the rest. maybe moving around with numbers - //"d": "r2ui.openpage(0)", - // "a": "r2ui.openpage(1)", - //"h": "r2ui.openpage(2)", - //"g": "r2ui.openpage(3)", - //"c": "r2ui.openpage(5)", - // "s": "r2ui.openpage(8)", - // Moved to disassembled panel - //";": "r2.cmd('CC '+prompt('comment'));r2ui.seek('$$',false);", - //"C-3": "this.setIndex(2)", - } -} diff --git a/shlr/www/enyo/js/console.js b/shlr/www/enyo/js/console.js deleted file mode 100644 index cc0b9ae5a8404..0000000000000 --- a/shlr/www/enyo/js/console.js +++ /dev/null @@ -1,27 +0,0 @@ -enyo.kind ({ - name: "Console", - kind: "Scroller", - classes: "r2panel", - style: "background-color:#c0c0c0;padding-left:7px", - components: [ - {tag: "form", attributes: {action:"javascript:#"}, components: [ - {kind: "FittableRows", fit: true, classes: "fittable-sample-shadow", components: [ - {kind: "onyx.InputDecorator", style: "margin-top:8px;background-color:#404040;width: 90%;display:inline-block", components: [ - {kind: "Input", style:"width:100%;color:white", value: '', onkeydown: "runCommand", attributes: {autocapitalize:"off"}, name: "input"}, - ]}, - {tag: "pre", classes:"r2ui-terminal", style:"width:90%;", fit: true, allowHtml: true, name:"output"} - ]} - ]} - ], - runCommand: function (inSender, inEvent) { - if (inEvent.keyCode === 13) { - var cmd = this.$.input.getValue (); - this.$.input.setValue (""); - (function (out) { - r2.cmd (cmd, function (x) { - out.setContent (x); - }); - })(this.$.output); - } - } -}); diff --git a/shlr/www/enyo/js/debugger.js b/shlr/www/enyo/js/debugger.js deleted file mode 100644 index 1644d03a64053..0000000000000 --- a/shlr/www/enyo/js/debugger.js +++ /dev/null @@ -1,10 +0,0 @@ -enyo.kind ({ - name: "Debugger", - kind: "Scroller", - style: "background-color:#303030", - components: [ - {tag: "center", components: [ - {tag: "h1", style: "color:#f0f0f0", content: "TODO: Debugger"} - ]} - ] -}); diff --git a/shlr/www/enyo/js/disasm.js b/shlr/www/enyo/js/disasm.js deleted file mode 100644 index ddb70df087155..0000000000000 --- a/shlr/www/enyo/js/disasm.js +++ /dev/null @@ -1,1115 +0,0 @@ -var BBGraph = function () { - this.vertices = {}; - this.edges = []; - this.elements = []; - this.links = []; - this.fcn_offset = 0; - - joint.shapes.html = {}; - joint.shapes.html.Element = joint.shapes.basic.Rect.extend({ - defaults: joint.util.deepSupplement({ - type: 'html.Element', - attrs: { - rect: { stroke: r2ui.colors[".ec_gui_border"], fill: r2ui.colors[".ec_gui_alt_background"] } - } - }, joint.shapes.basic.Rect.prototype.defaults) - }); - - joint.shapes.html.ElementView = joint.dia.ElementView.extend({ - initialize: function() { - _.bindAll(this, 'updateBox'); - joint.dia.ElementView.prototype.initialize.apply(this, arguments); - this.$box = $(_.template(this.model.get('html'))()); - this.$box.find('input').on('mousedown click', function(evt) { evt.stopPropagation(); }); - this.model.on('change', this.updateBox, this); - this.updateBox(); - }, - render: function() { - joint.dia.ElementView.prototype.render.apply(this, arguments); - this.paper.$el.prepend(this.$box); - this.updateBox(); - return this; - }, - updateBox: function(event) { - // move the html mask when moving the svg rect - var bbox = this.model.getBBox(); - this.$box.css({ width: bbox.width + 2, height: bbox.height - 6, left: bbox.x - 1, top: bbox.y + 7}); - } - }); -}; -BBGraph.prototype.addVertex = function(addr, vlen, dom) { - if (this.vertices[addr] === undefined) { - this.vertices[addr] = {}; - this.vertices[addr].parents = []; - this.vertices[addr].children = []; - if (vlen === undefined) { - this.vertices[addr].len = 1; - var dom = document.createElement('div'); - dom.id = "bb_" + addr; - dom.className = "basicblock enyo-selectable ec_gui_background ec_gui_border"; - dom.innerHTML = "
    0x" + addr.toString(16) + "
    "; - this.vertices[addr].rendered = dom; - } - } - if (vlen !== undefined) { - this.vertices[addr].len = vlen; - this.vertices[addr].rendered = dom; - } -} -BBGraph.prototype.addEdge = function(v1, v2, color) { - this.addVertex(v1); - this.addVertex(v2); - this.edges.push({'from': v1, 'to': v2, 'color': color}); - this.vertices[v1].children.push(v2); - this.vertices[v2].parents.push(v1); -} -BBGraph.prototype.makeElement = function(addr, width, height, html) { - this.elements.push(new joint.shapes.html.Element({ - id: String(addr), - size: { width: width, height: height }, - html: html - })); -}; -BBGraph.prototype.makeLink = function(v1, v2, color) { - this.links.push(new joint.dia.Link({ - source: { id: String(v1) }, - target: { id: String(v2) }, - attrs: { - '.marker-target': { - d: 'M 6 0 L 0 3 L 6 6 z', - fill: color, - stroke: color - }, - '.connection': { - 'stroke-width': 1, - stroke: color - } - }, - smooth: true - })); -}; - - -adjustVertices = function(graph, cell) { - // If the cell is a view, find its model. - cell = cell.model || cell; - - if (cell instanceof joint.dia.Element) { - - _.chain(graph.getConnectedLinks(cell)).groupBy(function(link) { - // the key of the group is the model id of the link's source or target, but not our cell id. - return _.omit([link.get('source').id, link.get('target').id], cell.id)[0]; - }).each(function(group, key) { - // If the member of the group has both source and target model adjust vertices. - if (key !== 'undefined') adjustVertices(graph, _.first(group)); - }); - - return; - } - - var srcId = cell.get('source').id || cell.previous('source').id; - var trgId = cell.get('target').id || cell.previous('target').id; - - var siblings = _.filter(graph.getLinks(), function(sibling) { - var _srcId = sibling.get('source').id; - var _trgId = sibling.get('target').id; - - return (_srcId === srcId && _trgId === trgId) || - (_srcId === trgId && _trgId === srcId); - }); - // more than one link between two blocks - if (siblings.length > 1) { - var srcbox = r2ui.graph.getCell(srcId).getBBox(); - var dstbox = r2ui.graph.getCell(trgId).getBBox(); - src = srcbox.intersectionWithLineFromCenterToPoint(dstbox.center()); - dst = dstbox.intersectionWithLineFromCenterToPoint(srcbox.center()); - - var midPoint = g.line(src, dst).midpoint(); - var theta = src.theta(dst); - var gap = 10; - // if the vertex is in the rect : bug - // vertex doesn't seem to go to the right place - - _.each(siblings, function(sibling, index) { - var offset = gap; - var sign = index % 2 ? 1 : -1; - var angle = g.toRad(theta + sign * 90); - var vertex = g.point.fromPolar(offset, angle, midPoint); - - // we tell the link deviate to the right or to the left - // from its path depending on sign - // ^ ^ - // | / \ - // | => x x - // | \ / - // v v - - // if the vertex is inside one of the box, don't do anything - // they are very close and this will result in a rendering bug - if (!srcbox.containsPoint(vertex) && !dstbox.containsPoint(vertex)) { - sibling.set('vertices', [{ x: vertex.x, y: vertex.y }]); - } else { - sibling.unset('vertices'); - } - }); - - } - -}; - -BBGraph.prototype.render = function() { - var name = Object.keys(this.vertices).toString(); - var outergbox = document.createElement('div'); - outergbox.id = 'outergbox'; - var bbcanvas = document.getElementById("canvas"); - var gbox = document.createElement('div'); - gbox.id = 'gbox'; - gbox.className = name; - outergbox.appendChild(gbox); - bbcanvas.appendChild(outergbox); - for (var addr in this.vertices) { - var r = this.vertices[addr].rendered; - if (r !== undefined) { - gbox.appendChild(r); - this.makeElement(addr, r.offsetWidth, r.offsetHeight, r.outerHTML); - } - } - for (var j = 0; j < this.edges.length; j++) { - this.makeLink(this.edges[j].from, this.edges[j].to, this.edges[j].color); - } - - - $("#outergbox").remove(); - - this.makeElement("minimap_area", 1, 1, "
    "); - - var items = this.elements.concat(this.links); - var width = $("#center_panel").width(); - var graph = new joint.dia.Graph(); - var paper = new joint.dia.Paper({ - el: $('#canvas'), - gridSize: 1, - width: 2000, - height: 6000, - model: graph, - }); - - var minimap_width = 200; - var minimap_heigh = 200; - $('#minimap').html(""); - $('#minimap').html(""); - var minimap = new joint.dia.Paper({ - el: $('#minimap'), - gridSize: 1, - width: minimap_width, - height: minimap_heigh, - model: graph - }); - - graph.resetCells(items); - - // render graph - joint.layout.DirectedGraph.layout(graph); - - r2ui.graph = graph; - - // reposition graph - reposition_graph(); - - // remove html mask in minimap since its not scaled - $("#minimap .basicblock").remove(); - - // make minimap rect transparent - graph.getCell("minimap_area").attr({rect: { stroke: "transparent"}}); - - var svg_width = $('#canvas svg')[0].getBBox().width; - var svg_height = $('#canvas svg')[0].getBBox().height; - // update paper size with these values - paper.setDimensions(svg_width + 500, svg_height + 500); - var ws = Math.ceil(svg_width/minimap_width); - var hs = Math.ceil(svg_height/minimap_heigh); - var scale = 1/Math.max(ws, hs); - var delta = 0; - if (hs > ws) delta = (minimap_width/2) - svg_width*scale/2; - minimap.scale(scale); - minimap.setOrigin(delta,0); - // minimap.$el.css('pointer-events', 'none'); - - // enyo layout - if ($("#radareApp_mp").length) { - $("#minimap").css("left", $("#main_panel").width() - minimap_width - $("#main_panel").position().left); - $("#minimap").css("top", $("#center_panel").position().top); - $("#main_panel").bind('scroll', update_minimap); - // panel layout - } else if ($("#main_panel").length){ - $("#minimap").css("left", $("#main_panel").width() - minimap_width); - $("#minimap").css("top", $("#center_panel").position().top - 40); - $("#center_panel").bind('scroll', update_minimap); - } - - paper.on( "cell:pointerup", function( cellview, evt, x, y) { - var model = cellview.model; - var bbox = model.attributes.position; - var id = String(model.prop("id")); - if (model !== undefined && id !== "minimap_area") { - var color = null; - var bb = r2ui.get_fcn_BB(r2ui.current_fcn_offset, id); - if (bb !== undefined && bb !== null) { - if (bb.x != String(bbox.x) || bb.y != String(bbox.y)) { - bb.x = bbox.x; - bb.y = bbox.y; - r2ui.update_fcn_BB(r2ui.current_fcn_offset, id, bb); - } - } else if (bb !== undefined && bb !== null) { - r2ui.update_fcn_BB(r2ui.current_fcn_offset, id, {x:bbox.x, y:bbox.y}); - } - } - }); - - var myAdjustVertices = _.partial(adjustVertices, graph); - _.each(graph.getLinks(), myAdjustVertices); - paper.on('cell:pointerup', myAdjustVertices); - - if (r2ui._dis.minimap) { - update_minimap(); - - $("#minimap_area").draggable({ - containment: "parent", - stop: function( event, ui ) { - var delta_x = ui.position.left/scale; - var delta_y = ui.position.top/scale; - if (delta_x < 0) delta_x = 0; - if (delta_y < 0) delta_y = 0; - if ($("#radareApp_mp").length) $("#main_panel").scrollTo({ top:delta_y, left:delta_x - delta/scale } ); - else $('#center_panel').scrollTo({ top:delta_y, left:delta_x - delta/scale } ); - } - }); - - } else { - $("#minimap").hide(); - } -}; - -function toggle_minimap() { - if (r2ui._dis.minimap) { - r2ui._dis.minimap = false; - r2ui.seek(r2ui._dis.selected_offset, false); - $('#minimap').hide(); - } else { - r2ui._dis.minimap = true; - r2ui.seek(r2ui._dis.selected_offset, false); - $('#minimap').show(); - } -} - -function update_minimap() { - if (r2ui._dis.minimap && $('#canvas svg').length) { - var minimap_width = 200; - var minimap_height = 200; - var svg_width = $('#canvas svg')[0].getBBox().width; - var svg_height = $('#canvas svg')[0].getBBox().height; - var ws = Math.ceil(svg_width/minimap_width); - var hs = Math.ceil(svg_height/minimap_height); - var scale = 1/Math.max(ws, hs); - var delta = 0; - if (hs > ws) delta = (minimap_width/2) - svg_width*scale/2; - var el = null; - // enyo layout - if ($("#radareApp_mp").length) { - el = $('#main_panel'); - // panel layout - } else if ($("#main_panel").length){ - el = $('#center_panel'); - } - if (el.scrollTop() < svg_height) { - $("#minimap_area").width(el.width()*scale); - $("#minimap_area").height(el.height()*scale); - if (el.scrollTop()*scale <= minimap_height - el.height()*scale) - $("#minimap_area").css("top", el.scrollTop()*scale); - $("#minimap_area").css("left", delta + el.scrollLeft()*scale); - } - el = $('#center_panel'); - // enyo layout - if ($("#radareApp_mp").length) { - $("#minimap").css("display", "none"); - $("#minimap").css("left", el.scrollLeft() + el.width() - minimap_width - $("#radareApp_mp").position().left + 2 * el.css("padding").replace('px','')); - $("#minimap").css("top", el.scrollTop()); - $("#minimap").css("display", "block"); - // panel layout - } else if ($("#main_panel").length){ - $("#minimap").css("left", el.scrollLeft() + $("#main_panel").width() - minimap_width); - $("#minimap").css("top", el.scrollTop()); - } - $("#minimap").css("border", "1px solid " + r2ui.colors['.ec_gui_background']); - $("#minimap_area").css("background", r2ui.colors['.ec_gui_background']); - } -} - -function reposition_graph() { - var bbs = r2ui.graph.getElements(); - var blocks = r2ui.get_fcn_BBs(r2ui.current_fcn_offset); - var bb_offsets = Object.keys(blocks); - for (var i in bbs) { - found = false; - for (var j in bb_offsets) { - var offset = String(bb_offsets[j]); - var bb = blocks[offset]; - if (bbs[i].prop("id") === offset) { - found = true; - if (bb.x !== "null" && bb.y !== "null") { - bbs[i].translate(bb.x - bbs[i].prop("position").x, bb.y - bbs[i].prop("position").y); - } - var color = bb.color; - if (color !== null && color !== undefined) bbs[i].attr('rect/fill', color); - } - } - // if (!found) { - // r2ui.update_fcn_BB(r2ui.current_fcn_offset, bbs[i].prop("id"), {x:bbs[i].prop("position").x, y:bbs[i].prop("position").y, color:r2ui.colors['.ec_gui_alt_background']}); - // } - } -} -var flag = 0; -function render_graph(x) { - var obj; - try { - obj = JSON.parse(x.replace(/\\l/g,'\\n')); - } catch (e) { - console.log("Cannot parse JSON data"); - } - if (obj[0] === undefined) return false; - if (obj[0].blocks === undefined) return false; - var graph = new BBGraph(); - r2ui.current_fcn_offset = obj[0].blocks[0].ops[0].offset; - - for (var bn = 0; bn < obj[0].blocks.length; bn++) { - var bb = obj[0].blocks[bn]; - var addr = bb.offset; - if (bb['trace'] !== undefined) { - var bbinfo = r2ui.get_fcn_BB(r2ui.current_fcn_offset, addr); - if (bbinfo !== undefined) { - if (bbinfo.color !== "red") - bbinfo.color = "#7592DF"; - } else { - bbinfo = {x:null, y:null, color:"#7592DF"}; - } - r2ui.update_fcn_BB(r2ui.current_fcn_offset, addr, bbinfo); - } - if (bb.length === 0) continue; - - var cnt = bb.ops.length; - var idump = ""; - for (var i in bb.ops) { - var ins = bb.ops[i]; - // ins.offset = "0x" + ins.offset.toString(16); - if (ins.comment === undefined || ins.comment === null) ins.comment = ""; - else { - ins.comment = atob(ins.comment); - } - idump += html_for_instruction(ins); - } - var dom = document.createElement('div'); - dom.id = "bb_" + addr; - dom.className = "basicblock enyo-selectable ec_gui_background ec_gui_border"; - dom.innerHTML = idump; - graph.addVertex(addr, cnt, dom); - if (bb.fail > 0) { - graph.addEdge(addr, bb.fail, "red"); - if (bb.jump > 0) { - graph.addEdge(addr, bb.jump, "green"); - } - } else if (bb.jump > 0) { - graph.addEdge(addr, bb.jump, "blue"); - } - } - graph.render(); - - var element = $("#canvas svg g .element"); - element.on("mousedown", function(event){ - flag = 0; - }); - element.on("mousemove", function(event){ - flag = 1; - }); - element.on("mouseup", function(event){ - if(flag === 0){ - var id = event.target.parentNode.parentNode.parentNode.getAttribute("model-id"); - if (id !== "minimap_area") { - var color = null; - var bb = r2ui.get_fcn_BB(r2ui.current_fcn_offset, id); - if (bb !== undefined && bb !== null) { - if (bb.color === "red") bb.color = r2ui.colors['.ec_gui_alt_background']; - else bb.color = "red"; - } else { - bb = {x:"null", y:"null", color:"red"}; - } - r2ui.update_fcn_BB(r2ui.current_fcn_offset, id, bb); - reposition_graph(); - } - } - }); - $(".addr").css("-webkit-user-select", "text"); - return true; -} - -function render_instructions(instructions) { - var outergbox = document.createElement('div'); - outergbox.id = 'outergbox'; - var flatcanvas = document.getElementById("canvas"); - flatcanvas.innerHTML = ""; - var gbox = document.createElement('div'); - gbox.id = 'gbox'; - gbox.className = 'ec_gui_background'; - outergbox.appendChild(gbox); - flatcanvas.appendChild(outergbox); - - var flatcanvas_rect = getOffsetRect(flatcanvas); - var asm_lines = (r2.settings["asm.lines"]); - var asm_offset = (r2.settings["asm.offset"]); - - var accumulated_heigth = flatcanvas_rect.top; - var lines = []; - var targets = {}; - var first_address = instructions[0].offset; - var last_address = instructions[instructions.length - 1].offset; - for (var i in instructions) { - var ins = instructions[i]; - - if ((ins.type == "jmp" || ins.type == "cjmp") && ins.jump !== undefined && ins.jump !== null) { - var line = {}; - line.from = ins.offset; - if (last_address < ins.jump) { - line.to_end = false; - line.to = last_address; - } else if (first_address > ins.jump) { - line.to_end = false; - line.to = first_address; - } else { - line.to_end = true; - line.to = ins.jump; - } - if (ins.type == "jmp") { - line.color = r2ui.colors[".ec_flow"]; - line.dashed = false; - } else if (ins.type == "cjmp") { - line.color = r2ui.colors[".ec_gui_cflow"]; - line.dashed = true; - } - line.to_start = true; - lines[lines.length] = line; - if (targets[line.to] === undefined) { - targets[line.to] = 0; - } - } - - // ins.offset = "0x" + ins.offset.toString(16); - if (ins.comment === undefined || ins.comment === null) ins.comment = ""; - else { - try { - ins.comment = atob(ins.comment); - } catch(e) { - console.log(ins.comment); - } - } - var dom = document.createElement('div'); - if (asm_lines) dom.className = "instructionbox enyo-selectable lines"; - else dom.className = "instructionbox"; - dom.style.top = accumulated_heigth + "px"; - dom.innerHTML = html_for_instruction(ins); - - gbox.appendChild(dom); - var instruction_rect = getOffsetRect(dom); - var instruction_heigth = instruction_rect.bottom - instruction_rect.top; - accumulated_heigth += instruction_heigth; - } - - - if (asm_lines) { - var canvas = document.createElement("canvas"); - canvas.width = 500; - canvas.height = accumulated_heigth; - canvas.id = "linecanvas"; - canvas.setAttribute("tabindex", "1"); - canvas.setAttribute("style", "outline: none;"); - gbox.appendChild(canvas); - var ctx = canvas.getContext("2d"); - if (!ctx.setLineDash) { - // For browsers that dont support dashed lines - ctx.setLineDash = function () {}; - } - var num_targets = countProperties(targets); - var num_assigned_paths = 0; - var lines_width = 100; - for (var l in lines) { - var line = lines[l]; - var from = "0x" + line.from.toString(16); - var to = "0x" + line.to.toString(16); - - if (targets[line.to] === 0) { - // No path assigned for target, assigning a new one - targets[line.to] = (num_targets - num_assigned_paths - 1)*(90/(num_targets+1)); - num_assigned_paths += 1; - } - var from_element = get_element_by_address(from); - var to_element = get_element_by_address(to); - - if (from_element !== null && from_element !== undefined && to_element !== undefined && to_element !== null) { - var x = targets[line.to]; - var from_rect = getOffsetRect(from_element); - var y0 = (from_rect.top + from_rect.bottom) / 2; - var to_rect = getOffsetRect(to_element); - var y1 = (to_rect.top + to_rect.bottom) / 2; - if (line.to == instructions[0].offset) { - y1 = 0; - } - - // main line - ctx.beginPath(); - ctx.moveTo(x, y0); - ctx.lineTo(x, y1); - ctx.strokeStyle = line.color; - if (line.dashed) ctx.setLineDash([2,3]); - ctx.stroke(); - - if (line.to_start) { - // horizontal line at start - ctx.beginPath(); - ctx.moveTo(x, y0); - ctx.lineTo(lines_width - 5, y0); - ctx.strokeStyle = line.color; - if (line.dashed) ctx.setLineDash([2,3]); - ctx.stroke(); - - // circle - ctx.beginPath(); - ctx.arc(lines_width - 5 - 2, y0, 2, 0, 2 * Math.PI, false); - ctx.fillStyle = line.color; - ctx.fill(); - } - - if (line.to_end) { - // horizontal line at end - ctx.beginPath(); - ctx.moveTo(x, y1); - ctx.lineTo(lines_width - 5, y1); - ctx.strokeStyle = line.color; - if (line.dashed) ctx.setLineDash([2,3]); - ctx.stroke(); - - // arrow - ctx.beginPath(); - ctx.moveTo(lines_width - 5, y1); - ctx.lineTo(lines_width - 10, y1-5); - ctx.lineTo(lines_width - 10, y1+5); - ctx.lineWidth = 1; - ctx.fillStyle = line.color; - ctx.fill(); - } - } - } - } - if (!asm_offset) { - var elements = document.getElementsByClassName("insaddr"); - for (var j in elements) { - if (elements[j].style) elements[j].style.display="none"; - } - } - $(".addr").css("-moz-user-select", "text"); - $(".addr").css("-webkit-user-select", "text"); -} - -function getOffsetRect(elem) { - var box = elem.getBoundingClientRect(); - var offset = $('#gbox').offset().top; - var top = box.top - offset; - var bottom = box.bottom - offset; - return {top: Math.round(top), bottom: Math.round(bottom)}; -} - -function countProperties(obj) { - var count = 0; - for(var prop in obj) { - if(obj.hasOwnProperty(prop)) { - ++count; - } - } - return count; -} - -function toBoolean(str) { - if (str === "true") return true; - else if (str === "false") return false; - else return undefined; -} - -function html_for_instruction(ins) { - var idump = '
    '; - var offset = "0x" + ins.offset.toString(16); - var address = offset; - var asm_flags = (r2.settings["asm.flags"]); - var asm_bytes = (r2.settings["asm.bytes"]); - var asm_xrefs = (r2.settings["asm.xrefs"]); - var asm_cmtright = (r2.settings["asm.cmtright"]); - - if (ins.fcn_addr > 0 && offset === "0x"+ins.fcn_addr.toString(16)) { - if (r2ui._dis.display == "flat") idump += '
    ; -----------------------------------------------------------
    '; - var results; - var cmd = "afij " + offset + ";afvj " + offset + ";afaj " + offset; - r2.cmd(cmd, function(x){ - results = x.split("\n"); - }); - var info = JSON.parse(results[0]); - if (info !== null && info !== undefined && info.length > 0) - idump += '
    (fcn) ' + info[0].name + '
    '; - var vars = JSON.parse(results[1]); - var fvars = []; - for (var i in vars) { - idump += '
    ; ' + vars[i].kind + " " + vars[i].type + " " + escapeHTML(vars[i].name) + " @ " + vars[i].ref + '
    '; - fvars[fvars.length] = {name: vars[i].name, id: address_canonicalize(offset) + "_" + vars[i].ref}; - } - r2.varMap[ins.fcn_addr] = fvars; - var args = JSON.parse(results[2]); - var fargs = []; - for (var i in args) { - idump += '
    ; ' + args[i].kind + " " + args[i].type + " " + escapeHTML(args[i].name) + " @ " + args[i].ref + '
    '; - fargs[fargs.length] = {name: args[i].name, id: address_canonicalize(offset) + "_" + args[i].ref}; - } - r2.argMap[ins.fcn_addr] = fargs; - } - if (asm_flags) { - var flags; - if (ins.flags !== undefined && ins.flags !== null) { - flags = ins.flags.join(";"); - } else { - flags = r2.get_flag_names(address_canonicalize(offset)).join(";"); - } - if (flags !== "" && flags !== undefined && flags !== null) idump += '
    ;-- ' + escapeHTML(flags) + ':
    '; - } - if (ins.comment && !asm_cmtright) { - idump += '
    ; ' + escapeHTML(ins.comment) + '
    '; - } - if (asm_xrefs) { - if (ins.xrefs !== undefined && ins.xrefs !== null && ins.xrefs.length > 0) { - var xrefs = ""; - for (var i in ins.xrefs) { - var xref = ins.xrefs[i]; - var name = ''; - var xrefoffset = "0x"+xref.addr.toString(16); - if (r2.get_flag_names(address_canonicalize(xrefoffset)).length > 0) name = ' (' + r2.get_flag_names(address_canonicalize(xrefoffset)).join(";") + ')'; - idump += '
    ; ' + xref.type.toUpperCase() + ' XREF from ' + - '' + xrefoffset + ' ' + name + '
    '; - } - - } - } - - idump += '' + address + ' '; - - if (asm_bytes) { - if (ins.bytes !== undefined && ins.bytes !== null && ins.bytes !== "") { - var dorep = function(a) { - if (a=="00") return '00'; - if (a=="ff") return 'ff'; - if (a=="7f") return '7f'; - }; - var bytes = ins.bytes.replace(new RegExp("(00)|(ff)|(7f)", "g"), dorep); - idump += '' + bytes + ' '; - } - } - - var opcode = highlight_instruction(ins.opcode, true); - if ((r2.varMap[ins.fcn_addr] !== null && r2.varMap[ins.fcn_addr] !== undefined && r2.varMap[ins.fcn_addr].length > 0) || - (r2.argMap[ins.fcn_addr] !== null && r2.argMap[ins.fcn_addr] !== undefined && r2.argMap[ins.fcn_addr].length > 0)) { - for (var i in r2.varMap[ins.fcn_addr]) { - var var_name = r2.varMap[ins.fcn_addr][i].name; - var var_id = r2.varMap[ins.fcn_addr][i].id; - opcode = opcode.replace(" " + var_name + " ", " " + escapeHTML(var_name) + " "); - } - for (var i in r2.argMap[ins.fcn_addr]) { - var arg_name = r2.argMap[ins.fcn_addr][i]; - var arg_id = r2.argMap[ins.fcn_addr][i].id; - opcode = opcode.replace(" " + arg_name + " ", " " + escapeHTML(var_name) + " "); - } - } - - if (ins.type !== undefined && ins.type !== null) { - if (contains(math, ins.type)) ins.type = "math"; - if (contains(bin, ins.type)) ins.type = "bin"; - if (ins.type == "ill") ins.type = "invalid"; - if (ins.type == "null") ins.type = "invalid"; - if (ins.type == "undefined") ins.type = "invalid"; - if (ins.type == "ujmp") ins.type = "jmp"; - if (ins.type == "upush") ins.type = "push"; - if (ins.type == "upop") ins.type = "pop"; - if (ins.type == "ucall") ins.type = "call"; - if (ins.type == "lea") ins.type = "mov"; - // Add default color if we failed to identify op type - if (!contains(known_types, ins.type)) ins.type = "other"; - idump += '
    ' + opcode + '
    '; - } else { - idump += '
    ' + opcode + '
    '; - } - if (ins.ptr_info) { - idump += '' + escapeHTML(ins.ptr_info) + ''; - } - - if (ins.comment && asm_cmtright) { - idump += ' ; ' + escapeHTML(ins.comment) + ''; - } - - if (ins.type == "ret") { - idump += "
     
    "; - } - - idump += '
    '; - return idump; -} - -var math = ["add", "sub", "mul", "imul", "div", "idiv", "neg", "adc", "sbb", "inc", "dec", ".byte"]; -var bin = ["xor", "and", "or", "not"]; -var regs = ["EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI", "EIP", "RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15", "RIP"]; -var known_types = ["fline","help","args","label","flow","prompt","input","btext","swi","comment","fname","flag","offset","other","b0x00","b0x7f","b0xff","math","bin","push","pop","jmp","cjmp","call","nop","ret","trap","invalid","cmp","reg","creg","mov","num"]; - -var escapeHTML = (function () { - 'use strict'; - var chr = { '"': '"', '&': '&', '<': '<', '>': '>' }; - return function (text) { - return text? text.replace(/[\"&<>]/g, function (a) { return chr[a]; }): ""; - }; -}()); - -function highlight_instruction(line, instruction) { - if (line === undefined) return "undefined"; - if (instruction === undefined) instruction = true; - var ret = escapeHTML(line); - - // highlight registers and addresses - var re = "(0x[0123456789abcdef]+)"; - // Map with register names as keys and HTML span representing the register as value - var reps = {}; - if (instruction) { - for (var i in regs) { - // Loop all the registers - var rep = '' + regs[i] +''; - reps[regs[i]] = rep; - rep = '' + regs[i].toLowerCase() + ''; - reps[regs[i].toLowerCase()] = rep; - } - for (i in reps) { - // Complete regexp with registers - re += "|(" + i + ")"; - } - } - function dorep(a) { - // If address found - if (a.substr(0, 2) == "0x") { - // Look for imports or functions - var syms = r2.get_flag_names(address_canonicalize(a)); - for (var i in syms) { - if (syms[i].indexOf("sym.imp.")) { - return "" + syms[i] + ""; - } - if (syms[i].indexOf("fcn.")) { - return "" + syms[i] + ""; - } - } - // Is it data address or code address - var cl = get_data_type(a); - if (cl === "") { - // Just an hex value, not an address - return "" + a + ""; - } else if (cl === "datainstruction") { - // An address representing data (memory) or code (instruction) - return "" + a + ""; - } else if (cl === "datamemory") { - // return "" + a + ""; - return "" + a + ""; - } - } else { - // Not an hex value, so a register - return reps[a]; - } - } - return ret.replace(new RegExp(re, "g"), dorep); -} - -function hex2(a) { - if (a === undefined) return "__"; - var ret = a.toString(16); - if (ret.length == 1) return "0" + ret; - return ret; -} - -function hex(a) { - if (a === undefined) { - return ""; - } else { - if (a < 0) a += 0x100000000; - return "0x"+a.toString(16); - } -} - -function get_data_type(v, more) { - var a = r2.get_address_type(v); - if (a === "") return ""; - else { - if (more !== undefined) { - return "data" + a + " addr addr_" + v; - } else { - return "data" + a; - } - } -} - -function fnum(a) { - return parseInt(a, 10); -} - -function get_address_from_class(t, type) { - if (type === undefined) type = "addr"; - var prefix = type+"_"; - if (!t) return undefined; - var l = t.className.split(" ").filter(function(x) { return x.substr(0,prefix.length) == type+"_"; }); - if (l.length != 1) return undefined; - return l[0].split("_")[1].split(" ")[0]; -} - -function rehighlight_iaddress(address, prefix) { - if (prefix === undefined) prefix = "addr"; - $('.autohighlighti').removeClass('autohighlighti'); - $('.' + prefix + '_' + address).addClass('autohighlighti'); - if (prefix === "addr") r2.cmd ("s " + address, function () {}); -} - -function rehighlight_id(eid) { - $('.autohighlighti').removeClass('autohighlighti'); - $('#' + eid).addClass('autohighlighti'); -} - -function get_element_by_address(address) { - var elements = $(".insaddr.addr_" + address); - if (elements.length === 1) return elements[0]; - else return null; -} - -Element.prototype.documentOffsetTop = function () { - return this.offsetTop + ( this.offsetParent ? this.offsetParent.documentOffsetTop() : 0 ); -}; - -function scroll_to_address(address) { - var elements = $(".insaddr.addr_" + address); - var top = elements[0].documentOffsetTop() - window.innerHeight / 2; - top = Math.max(0,top); - $("#main_panel").scrollTo({'top':top, 'left':0}); -} - -function has_scrollbar(divnode) { - if(divnode.scrollHeight > divnode.clientHeight) return true; - return false; -} - -function on_scroll(event) { - // console.log($(event.target).scrollTop()); - if (!r2ui._dis.scrolling) { - var enyo = $("#radareApp").length ? true : false; - var panel_disas = false; - if (!enyo) panel_disas = $("#main_panel").tabs("option", "active") === 0 ? true : false; - r2ui._dis.scrolling = true; - if (r2ui._dis.display == "flat" && (enyo || panel_disas)) { - var scroll_offset = null; - var top_offset = null; - var addr = null; - if (enyo) { - scroll_offset = $("#main_panel").scrollTop(); - top_offset = $("#gbox").height() - $("#main_panel").height() - 10; - container_element = $("#center_panel"); - } else { - scroll_offset = $("#center_panel").scrollTop(); - top_offset = $("#gbox").height() - $("#center_panel").height() - 10; - container_element = $("#disasm_tab"); - } - if (has_scrollbar($('#center_panel')[0])) { - if (scroll_offset === 0 ) { - addr = "0x" + r2ui._dis.instructions[0].offset.toString(16); - // console.log("Scroll en top", scroll_offset, top_offset, addr); - r2.get_disasm_before(addr, 50, function(x) { - // console.log(x.length); - r2ui._dis.instructions = x.concat(r2ui._dis.instructions); - }); - container_element.html("
    "); - render_instructions(r2ui._dis.instructions); - scroll_to_address(addr); - rehighlight_iaddress(r2ui._dis.selected_offset); - } else if (scroll_offset > top_offset) { - // console.log("Scroll en top", scroll_offset, top_offset) - addr = "0x" + r2ui._dis.instructions[r2ui._dis.instructions.length-1].offset.toString(16); - r2.get_disasm_after(addr, 100, function(x) { - r2ui._dis.instructions = r2ui._dis.instructions.slice(0, -1).concat(x); - }); - container_element.html("
    "); - render_instructions(r2ui._dis.instructions); - scroll_to_address(addr); - rehighlight_iaddress(r2ui._dis.selected_offset); - } - } - } - r2ui._dis.scrolling = false; - event.preventDefault(); - } -} - -function scroll_to_element(element) { - var top = element.documentOffsetTop() - ( window.innerHeight / 2 ); - top = Math.max(0,top); - $("#main_panel").scrollTo({'top':top, 'left':0}); - // r2ui._dis.scrollTo(0,top); -} - -function rename(offset, old_value, new_value, space) { - if (space === undefined) space = "functions"; - if (space == "functions") { - // If current offset is the beginning of a function, rename it with afr - r2.cmdj("pdfj @ " + offset, function(x) { - if (x !== null && x !== undefined) { - if ("0x" + x.addr.toString(16) === offset) { - r2.cmd("afn " + new_value + " " + offset, function() { - r2.update_flags(); - return; - }); - } - } - }); - } - // Otherwise just add a flag - if (new_value !== "" && old_value !== "") { - var cmd = "fs " + space + ";fr " + old_value + " " + new_value; - r2.cmd(cmd, function() {}); - } else if (new_value === "" && old_value !== "") { - var cmd = "fs " + space + ";f-@" + offset; - r2.cmd(cmd, function() {}); - } else if (new_value !== "" && old_value === "") { - var cmd = "fs " + space + ";f " + new_value + " @ " + offset; - r2.cmd(cmd, function() {}); - } - r2.update_flags(); -} - -function address_canonicalize(s) { - s = s.substr(2); - while (s.substr(0,1) == '0') s = s.substr(1); - s = "0x" + s; - s = s.toLowerCase(); - return s; -} - -function contains(a, obj) { - for (var i = 0; i < a.length; i++) { - if (a[i] === obj) { - return true; - } - } - return false; -} - -function handleInputTextChange() { - r2ui._dis.handleInputTextChange(); -} - -function show_contextMenu(x,y) { - r2ui._dis.showContextMenu(x,y); -} - -function get_offset_flag(offset) { - var old_value = ""; - r2.cmdj("fs offsets;fj", function(x) { - for (var i in x) { - if ("0x" + x[i].offset.toString(16) == offset) { - old_value = x[i].name; - break; - } - } - }); - return old_value; -} - -function get_symbol_flag(symbol) { - var full_name = symbol; - var found = false; - r2.cmdj("fs symbols;fj", function(x) { - for (var i in x) { - if (x[i].name == symbol) { - found = true; - break; - } - } - if (!found) { - for (var i in x) { - if (x[i].name == "sym." + symbol) { - full_name = "sym." + symbol; - break; - } - } - } - }); - return full_name; -} - -function get_reloc_flag(reloc) { - var full_name = reloc; - var found = false; - r2.cmdj("fs relocs;fj", function(x) { - for (var i in x) { - if (x[i].name == reloc) { - found = true; - break; - } - } - if (!found) { - for (var i in x) { - if (x[i].name == "reloc." + reloc) { - full_name = "reloc." + reloc; - break; - } - } - } - }); - return full_name; -} - -// Cookies - -function createCookie(name,value,days) { - if (days) { - var date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - var expires = "; expires="+date.toGMTString(); - } - else var expires = ""; - document.cookie = name+"="+value+expires+"; path=/"; -} - -function readCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); - } - return null; -} - -function eraseCookie(name) { - createCookie(name,"",-1); -} - -function do_randomcolors(element, inEvent) { - r2.cmd ('ecr;ec gui.background rgb:000', function() { - r2ui.load_colors (); - }); -} - -function inColor(x) { - return "e scr.color=true;"+x+";e scr.color=false"; -} - - diff --git a/shlr/www/enyo/js/disassembler.js b/shlr/www/enyo/js/disassembler.js deleted file mode 100644 index 3689e5d6e67a8..0000000000000 --- a/shlr/www/enyo/js/disassembler.js +++ /dev/null @@ -1,605 +0,0 @@ -enyo.kind ({ - name: "Disassembler", - kind: "Scroller", - tag: "div", - classes:"ec_gui_background", - style:"margin:0px;position: relative;", - data: null, - components: [ - // {tag: "div", allowHtml: true, classes: "colorbar", name: "colorbar" }, - { - tag: "div", - allowHtml: true, - name: "minimap", - style : "width:200px; height:200px; position:fixed; top:0; right 0px", - id: "minimap" - }, - { - tag: "div", - allowHtml: true, - name: "panel", - content: "
    " - + "", - style:"margin-right:5px;width:100%;height:100%", - }, - {kind: enyo.Signals, - onkeypress: "handleKeyPress" - }, - {name: "menuPopup", kind: "onyx.Popup", floating: true, onHide:'hideContextMenu', onShow:"showContextMenu", style:"padding: 0px;", - style: "padding: 10px", components: [ - {name: "menu", kind: "onyx.MenuDecorator", onSelect: "itemSelected", components: [ - {content: "Show menu"}, - {kind: "onyx.Menu", name: "contextMenu", components: [ - {content: "rename", value: "rename"}, - {content: "comment", value: "comment"}, - {content: "switch view", value: "do_switchview"}, - {content: "random colors", value: "do_randomcolors"} - ]} - ]} - ] - }, - ], - handlers: { - ontap: "handleTap", - onhold: "handleHold", - ondblclick: "handleDoubleClick", - onTransitionFinish: "handleTransitionFinish", - }, - handleTransitionFinish: function() { - if (r2ui._dis.display == "graph" && r2ui._dis.minimap) update_minimap(); - }, - itemSelected: function (inSender, inEvent) { - if (inEvent.originator.content) { - var itemContent = inEvent.originator.content; - if (itemContent == "rename") { - this.do_rename(this.selected, inEvent); - } else if (itemContent == "comment") { - this.do_comment(this.selected_offset); - } else if (itemContent == "random colors") { - do_randomcolors(); - } else if (itemContent == "switch view") { - this.switch_view(); - } - } - this.$.menuPopup.hide(); - }, - handleHold: function (inSender, inEvent) { - this.handleTap(inSender, inEvent); - if (typeof inEvent.target.className === "string" && (inEvent.target.className.indexOf(" addr ") > -1 || inEvent.target.className.indexOf(" faddr ") > -1)) { - var address = get_address_from_class(inEvent.target); - this.selected = inEvent.target; - this.selected_offset = address; - rehighlight_iaddress(address); - this.showContextMenu(inEvent.pageY, inEvent.pageX); - } - }, - showContextMenu:function(inSender, inEvent){ - - if((parseFloat(inSender) == parseInt(inSender)) && !isNaN(inSender) && (parseFloat(inEvent) == parseInt(inEvent)) && !isNaN(inEvent)){ - this.$.menuPopup.addStyles('top:'+inSender+'px; left:'+inEvent+'px;padding:0px;'); - this.$.menuPopup.show(); - this.$.menuPopup.children[0].children[0].hide(); - this.$.menuPopup.children[0].children[1].show(); - this.$.menuPopup.render(); - } - }, - hideContextMenu:function(inSender,inEvent){ - }, - handleDoubleClick: function (inSender, inEvent) { - if (inEvent.target.className.indexOf(" addr ") > -1 && inEvent.target.className.indexOf("insaddr") === -1) { - this.handleTap(inSender, inEvent); - this.goToAddress(); - } - }, - - handleKeyPress: function(inSender, inEvent) { - var keynum = inEvent.keyCode || inEvent.charCode || inEvent.which || 0; - var key = String.fromCharCode(keynum); - // console.log(key); - - if (inEvent.ctrlKey||inEvent.metaKey) return; - if ($(inEvent.target).prop("tagName") === "INPUT" || $(inEvent.target).prop("tagName") === "TEXTAREA") return; - - - // show help - if (key === '?') { - r2ui.mp.show_popup(); - } - // Spacebar Switch flat and graph views - if (key === ' ') { - this.switch_view(); - } - // h Seek to previous address in history - if (key === 'h') { - var addr = r2ui.history_prev(); - if (addr !== undefined && addr !== null) r2ui.seek(addr, false); - } - // l Seek to next address in history - if (key === 'l') { - var addr = r2ui.history_next(); - if (addr !== undefined && addr !== null) r2ui.seek(addr, false); - } - if (key === 'm' && r2ui._dis.display == "graph") toggle_minimap(); - // j Seek to next Instruction - if (key === 'j') { - var get_more_instructions = false; - if ($(this.selected).hasClass("insaddr")) { - var next_instruction; - if (this.display == "flat") { - next_instruction = $(this.selected).closest(".instructionbox").next().find('.insaddr')[0]; - if ($("#gbox .instructionbox").index( $(this.selected).closest(".instructionbox")[0]) > $("#gbox .instructionbox").length - 10) get_more_instructions = true; - } - if (this.display == "graph") { - var next_instruction = $(this.selected).closest(".instruction").next().find('.insaddr')[0]; - if (next_instruction === undefined || next_instruction === null) { - next_instruction = $(this.selected).closest(".basicblock").next().find('.insaddr')[0]; - } - } - - // if (next_instruction === null || next_instruction === undefined) return; - var address = get_address_from_class(next_instruction); - if (get_more_instructions) { - r2ui.seek(address, false); - } else { - r2ui.history_push(address); - this.selected = next_instruction; - this.selected_offset = address; - } - rehighlight_iaddress(address); - scroll_to_address(address); - } - } - // k Seek to previous instruction - if (key === 'k') { - var get_more_instructions = false; - if ($(this.selected).hasClass("insaddr")) { - var prev_instruction; - if (this.display == "flat") { - prev_instruction = $(this.selected).closest(".instructionbox").prev().find('.insaddr')[0]; - if ($("#gbox .instructionbox").index( $(this.selected).closest(".instructionbox")[0]) < 10) get_more_instructions = true; - } - if (this.display == "graph") { - var prev_instruction = $(this.selected).closest(".instruction").prev().find('.insaddr')[0]; - if (prev_instruction === undefined || prev_instruction === null) { - prev_instruction = $(this.selected).closest(".basicblock").prev().find('.insaddr').last()[0]; - } - } - var address = get_address_from_class(prev_instruction); - if (get_more_instructions) { - r2ui.seek(address, false); - } else { - r2ui.history_push(address); - this.selected = prev_instruction; - this.selected_offset = address; - } - rehighlight_iaddress(address); - scroll_to_address(address); - } - } - // c Define function - if (key === 'c') { - var msg = prompt ('Function name?'); - if (msg !== null) { - r2.cmd("af " + msg, function() { - r2.update_flags(); - r2ui.seek("$$", false); - }); - } - } - // d Clear function metadata - if (key === 'd') { - r2.cmd("af-", function() { - r2.update_flags(); - r2ui.seek("$$", false); - }); - } - // g Go to address - if (key === 'g') { - var a = prompt('Go to'); - if (a !== null) r2ui.opendis(a); - } - // ; Add comment - if (key === ';') { - this.do_comment(this.selected_offset); - } - // n Rename - if (key === 'n') { - this.do_rename(this.selected, inEvent); - } - - if (key === 'R') do_randomcolors(); - - // esc - if (keynum === 27) { - // Esc belongs to renaming - if(this.renaming !== null) { - this.renaming.innerHTML = this.renameOldValue; - this.renaming = null; - } else { - // go back in history - var addr = r2ui.history_prev(); - if (addr !== undefined && addr !== null) r2ui.seek(addr, false); - } - } - // enter - if (keynum === 13) { - // Enter means go to address - this.goToAddress(); - } - }, - handleTap: function(inSender, inEvent) { - if (typeof inEvent.target.className === 'string') { - if (inEvent.target.className.indexOf(" addr ") > -1) { - var address = get_address_from_class(inEvent.target); - rehighlight_iaddress(address); - this.selected = inEvent.target; - this.selected_offset = address; - - // If instruction address, add address to history - if ($(inEvent.target).hasClass('insaddr')) { - r2ui.history_push(address); - var get_more_instructions = false; - var next_instruction; - var prev_instruction; - var address = get_address_from_class(inEvent.target); - if (r2ui._dis.display == "flat") { - next_instruction = $(r2ui._dis.selected).closest(".instructionbox").next().find('.insaddr')[0]; - if ($("#gbox .instructionbox").index( $(r2ui._dis.selected).closest(".instructionbox")[0]) > $("#gbox .instructionbox").length - 10) { - get_more_instructions = true; - address = get_address_from_class(next_instruction); - } - prev_instruction = $(r2ui._dis.selected).closest(".instructionbox").prev().find('.insaddr')[0]; - if ($("#gbox .instructionbox").index( $(r2ui._dis.selected).closest(".instructionbox")[0]) < 10) { - get_more_instructions = true; - address = get_address_from_class(prev_instruction); - } - } - if (r2ui._dis.display == "graph") { - var next_instruction = $(r2ui._dis.selected).closest(".instruction").next().find('.insaddr')[0]; - if (next_instruction === undefined || next_instruction === null) { - next_instruction = $(r2ui._dis.selected).closest(".basicblock").next().find('.insaddr')[0]; - } - var prev_instruction = $(r2ui._dis.selected).closest(".instruction").prev().find('.insaddr')[0]; - if (prev_instruction === undefined || prev_instruction === null) { - prev_instruction = $(r2ui._dis.selected).closest(".basicblock").prev().find('.insaddr').last()[0]; - } - } - if (get_more_instructions) { - r2ui.seek(address, false); - rehighlight_iaddress(address); - scroll_to_address(address); - document.getElementById("canvas").focus(); - } - } - } else if ($(inEvent.target).hasClass('fvar') || $(inEvent.target).hasClass('farg')) { - var eid = null; - var address = get_address_from_class(inEvent.target, "faddr"); - r2ui._dis.selected = inEvent.target; - r2ui._dis.selected_offset = address; - var classes = inEvent.target.className.split(' '); - for (var j in classes) { - var klass = classes[j]; - if (klass.indexOf("id_") === 0) eid = klass.substring(3); - } - if (eid !== null) rehighlight_iaddress(eid, "id"); - } - } - }, - goToAddress: function() { - if (this.renaming === null && this.selected !== null && (this.selected.className.indexOf(" addr ") ) -1) { - var address = get_address_from_class(this.selected); - if (this.selected.className.indexOf("ec_dataoffset") > -1) { - // address is located in not executable memory, switching to hex view - r2ui.openpage(address, 2); - return; - } - if (address !== undefined && address !== null) { - address = address_canonicalize(address); - if (this.display === "flat") { - r2ui.seek(address, true); - } else { - // check if address belong to current function // - r2.cmdj("pdfj", function(x) { - if (x !== null && x !== undefined) { - var ops = x.ops; - var found = false; - for (var i in ops) { - if (ops[i].offset === parseInt(address,16)) { - found = true; - } - } - if (found) { - r2ui.seek_in_graph(address, true); - } else { - r2ui.seek(address, true); - } - } - }); - } - } - } - }, - handleInputTextChange: function() { - if (this.renaming !== null && this.rbox.value.length > 0) { - if ($(this.selected).hasClass('insaddr')) { - var old_value = get_offset_flag(r2ui._dis.selected_offset); - var type = "offsets"; - r2.cmdj("afij @ " + r2ui._dis.selected_offset, function(x) { - if (x !== null && x !== undefined) { - if ("0x" + x[0].offset.toString(16) === r2ui._dis.selected_offset) { - type = "functions"; - } - } - }); - rename(r2ui._dis.selected_offset, old_value, this.rbox.value, type); - } else if ($(this.selected).hasClass('faddr')) { - if ($(this.selected).hasClass('fvar')) - r2.cmd("afvn " + r2ui._dis.renameOldValue + " " + r2ui._dis.rbox.value + " @ " + r2ui._dis.selected_offset, function(x){}); - else if ($(this.selected).hasClass('farg')) - r2.cmd("afan " + r2ui._dis.renameOldValue + " " + r2ui._dis.rbox.value + " @ " + r2ui._dis.selected_offset, function(x){}); - } else { - // TODO, try to recognize other spaces - var old_value = r2ui._dis.renameOldValue; - if (old_value.indexOf("0x") === 0) old_value = ""; - rename(r2ui._dis.selected_offset, old_value, r2ui._dis.rbox.value, "*"); - } - var instruction; - if (this.display == "flat") instruction = $(this.selected).closest(".instructionbox").find('.insaddr')[0]; - if (this.display == "graph") instruction = $(this.selected).closest(".instruction").find('.insaddr')[0]; - this.renaming = null; - var address = get_address_from_class(instruction); - r2ui.seek(address, false); - scroll_to_address(address); - } - }, - min: 0, - max: 0, - block: 512, - base: "entry0", - display: "flat", - selected: null, - renaming: null, - renameOldValue: "", - rbox: null, - minimap:true, - console_history: [], - console_history_idx: 0, - instructions: [], - scrolling: false, - do_comment: function(address) { - var c = prompt('Comment'); - if (c !== null) { - r2.cmd('CC- ' + " @ " + address + ';CC ' + c + " @ " + address); - r2ui.seek(address, false); - scroll_to_address(address); - } - }, - do_rename: function(element, inEvent) { - if (this.renaming === null && this.selected !== null && this.selected.className.indexOf(" addr ") > -1) { - var address = get_address_from_class(this.selected); - this.renaming = this.selected; - this.renameOldValue = this.selected.innerHTML; - this.rbox = document.createElement('input'); - this.rbox.setAttribute("type", "text"); - this.rbox.setAttribute("id", "rename"); - this.rbox.setAttribute("style", "border-width: 0;padding: 0;"); - this.rbox.setAttribute("onChange", "handleInputTextChange()"); - if (this.selected.className.indexOf("insaddr") > -1) { - var value = get_offset_flag(address); - this.rbox.setAttribute("value",value); - this.rbox.setSelectionRange(value.length, value.length); - } else { - this.rbox.setAttribute("value", this.renameOldValue); - this.rbox.setSelectionRange(this.renameOldValue.length, this.renameOldValue.length); - } - this.renaming.innerHTML = ""; - this.renaming.appendChild(this.rbox); - setTimeout('r2ui._dis.rbox.focus();', 200); - } else if (this.renaming === null && element !== null && $(element).hasClass("faddr")) { - var address = get_address_from_class(element, "faddr"); - this.selected = element; - this.selected_offset = address; - this.renaming = element; - this.renameOldValue = element.innerText; - this.rbox = document.createElement('input'); - this.rbox.setAttribute("type", "text"); - this.rbox.setAttribute("id", "rename"); - this.rbox.setAttribute("style", "border-width: 0;padding: 0;"); - this.rbox.setAttribute("onChange", "handleInputTextChange()"); - this.rbox.setAttribute("value", this.renameOldValue); - this.rbox.setSelectionRange(this.renameOldValue.length, this.renameOldValue.length); - this.renaming.innerHTML = ""; - this.renaming.appendChild(r2ui._dis.rbox); - setTimeout('r2ui._dis.rbox.focus();', 200); - } - }, - switch_view: function() { - if (this.display === "flat") this.display_graph(); - else this.display_flat(); - var addr = r2ui.history_last(); - if (addr !== undefined && addr !== null) r2ui.seek(addr, false); - }, - display_graph: function() { - this.display = "graph"; - $("#main_panel").removeClass("ec_gui_background"); - $("#main_panel").addClass("ec_gui_alt_background"); - }, - display_flat: function() { - this.display = "flat"; - $("#main_panel.ui-layout-pane").removeClass("ec_gui_alt_background"); - $("#main_panel.ui-layout-pane").addClass("ec_gui_background"); - }, - // less: function() { - // this.min += this.block; - // r2.get_disasm_before(this.base + "-" + this.min, this.block, function(x) { - // x = render_instructions(x); - // var oldy = r2ui._dis.getScrollBounds().height; - // $("#center_panel").html(x+text.getContent()); - // var newy = r2ui._dis.getScrollBounds().height; - // r2ui._dis.scrollTo(0, newy-oldy); - // }); - // rehighlight_iaddress(this.base); - // }, - // more: function() { - // this.max += this.block; - // r2.get_disasm_after(this.base + "+" + this.max, this.block, function(x) { - // x = render_instructions(x); - // $("#center_panel").html(text.getContent() + x); - // }); - // rehighlight_iaddress(this.base); - // }, - seek: function(addr, scroll) { - var error = false; - if (this.display === "graph") { - this.$.minimap.show(); - $("#center_panel").html(""); - r2.cmd ("agj " + addr, function(x) { - $("#center_panel").html("
    "); - if (render_graph(x) === false) error = true; - }); - } - if (error) this.display_flat(); - if (this.display === "flat") { - $("#main_panel").scroll(on_scroll); - this.$.minimap.hide(); - this.min = this.max = 0; - r2.get_disasm_before_after(addr, -100, 100, function(x) { - $("#center_panel").html("
    "); - r2ui._dis.instructions = x; - render_instructions(r2ui._dis.instructions); - }); - } - this.selected = get_element_by_address(addr); - this.selected_offset = addr; - - rehighlight_iaddress(addr); - if (scroll === undefined || scroll === true) { - scroll_to_address(addr); - } - }, - create: function() { - this.inherited(arguments); - this.base = "entry0"; - r2ui._dis = this; - - // TODO: Move this to the application constructor - r2.update_flags(); - r2.analAll(); - r2.load_mmap(); - r2ui.load_colors(); - }, - resizeHandler: function() { - this.inherited(arguments); - if (r2ui._dis.display == "graph" && r2ui._dis.minimap) update_minimap(); - }, - rendered: function() { - this.inherited(arguments); - myLayout = $('#radareApp_mp_panels_pageDisassembler_panel').layout({ - south__size: 200, - }); - this.display_flat(); - r2ui.seek(this.base,true); - - var console_history = this.console_history; - var console_history_idx = this.console_history_idx; - - // Handle commands in console - $("#command").keypress(function( inEvent ) { - var key = inEvent.keyCode || inEvent.charCode || inEvent.which || 0; - if (key === 13) { - var cmd = inEvent.target.value.trim(); - var reloadUI = cmd == ''; - - console_history[console_history.length] = cmd; - console_history_idx += 1; - /* empty input reloads UI */ - if (cmd != '') { - r2.cmd(inColor(cmd), function(x) { - var old_value = $("#cmd_output").text(); - $("#cmd_output").html(old_value + "\n> " + cmd + "\n" + x ); - $('#cmd_output').scrollTo($('#cmd_output')[0].scrollHeight); - }); - if (cmd.indexOf("s ") === 0) { - r2ui.history_push(r2ui._dis.selected_offset); - } - } - inEvent.target.value = ""; - /* if command starts with :, do not reload */ - if (reloadUI) { - r2.load_settings(); - r2ui.load_colors(); - r2ui.seek("$$", false); - scroll_to_element(r2ui._dis.selected); - } - } - }); - $("#command").keydown(function( inEvent ) { - var key = inEvent.keyCode || inEvent.charCode || inEvent.which || 0; - if (key === 40) { - console_history_idx++; - if (console_history_idx > console_history.length - 1) console_history_idx = console_history.length; - inEvent.target.value = console_history[console_history_idx] === undefined ? "" : console_history[console_history_idx]; - } - if (key === 38) { - console_history_idx--; - if (console_history_idx < 0) console_history_idx = 0; - inEvent.target.value = console_history[console_history_idx] === undefined ? "" : console_history[console_history_idx]; - } - }); - }, - // colorbar_create: function () { - // var self = this; - // r2.cmd ("pvj 24", function(x) { - // try { - // var y = JSON.parse (x); - // } catch (e) { - // alert (e); - // return; - // } - // // console.log (y); - - // // TODO: use canvas api for faster rendering and smaller dom - // var c = ""+ - // ""; - // var colors = { - // flags: "#c0c0c0", - // comments: "yellow", - // functions: "#5050f0", - // strings: "orange", - // }; - // var off = ""; - // var WIDTH = '100%'; - // var HEIGHT = 16; - // for (var i=0; i< y.blocks.length; i++) { - // var block = y.blocks[i]; - // var r = "
    ____
    "; - // if (block.offset) { // Object.keys(block).length>1) { - // var r = "
    "; - // var count = 0; - // for (var k in colors) - // if (block[k]) - // count++; - // count++; // avoid 0div wtf - // if (count==1) break; - // var h = HEIGHT / count; - // for (var k in colors) { - // var color = colors[k]; - // if (block[k]) - // r += ""; - // } - // r += "
    ____
    "; - // off = "0x"+block.offset.toString (16); - // } else { - // off = "0x"+(y.from + (y.blocksize * i)).toString (16); - // } - // c += ""+r+""; - // } - // c += ""; - // self.$.colorbar.setContent (c); - // }); - // } -}); diff --git a/shlr/www/enyo/js/disassembler_old.js b/shlr/www/enyo/js/disassembler_old.js deleted file mode 100644 index a93d929100abf..0000000000000 --- a/shlr/www/enyo/js/disassembler_old.js +++ /dev/null @@ -1,120 +0,0 @@ -function docss(x) { - return ''+x+''; -} - -enyo.kind ({ - name: "DisassemblerOld", - kind: "Scroller", - tag: "div", - style:"margin:0px;background-color:#c0c0c0", - data: null, - components: [ - {tag: "div", allowHtml: true, classes: "colorbar", name: "colorbar" }, - {tag: "br" }, - {tag: "div", content: "^", classes: "moreless", ontap: "less"}, - {tag: "pre", allowHtml: true, name: "text", content: "..", style:"margin-left:5px"}, - {tag: "div", content: "v", classes: "moreless", ontap: "more"}, - ], - min: 0, - max: 0, - block: 512, - base: "entry0", - less: function() { - var self = this; - var text = this.$.text; - this.min += this.block; - r2.get_disasm (this.base+"-"+this.min, this.block, function (x) { - x = docss (r2.filter_asm (x, "pd")); - var oldy = r2ui._dis.getScrollBounds().height; - text.setContent ("
    " + x + text.getContent() + "
    "); - var newy = r2ui._dis.getScrollBounds().height; - r2ui._dis.scrollTo (0, newy-oldy); - }); - }, - more: function() { - var text = this.$.text; - this.max += this.block; - r2.get_disasm (this.base+"+"+this.max, this.block, function (x) { - x = docss (r2.filter_asm (x, "pd")); - text.setContent ("
    " + text.getContent() + x + "
    "); - }); - }, - seek: function(addr) { - var text = this.$.text; - this.base = addr; - this.min = this.max = 0; - r2.get_disasm (addr, this.block, function (x) { - x = docss (r2.filter_asm (x, "pd")); - text.setContent("
    " + x + "
    "); - }); - this.scrollTo (0, 0); - //this.colorbar_create (); - }, - create: function() { - this.inherited (arguments); - // this.$.list.setCount (this.data.length) ; - var text = this.$.text; - r2.cmd("e asm.lineswidth = 20", function(x){}); - this.seek ("entry0"); - r2ui._dis = this; - r2ui.history_push ("entry0"); - - //this.colorbar_create (); - //this.refresh (); - }, - colorbar_create: function () { - var self = this; - r2.cmd ("pvj 24", function(x) { - try { - var y = JSON.parse (x); - } catch (e) { - alert (e); - return; - } - console.log (y); - -// TODO: use canvas api for faster rendering and smaller dom - var c = ""+ - ""; - var colors = { - flags: "#c0c0c0", - comments: "yellow", - functions: "#5050f0", - strings: "orange", - }; - var off = ""; - var WIDTH = '100%'; - var HEIGHT = 16; - for (var i=0; i< y.blocks.length; i++) { - var block = y.blocks[i]; - var r = "
    ____
    "; - if (block.offset) { // Object.keys(block).length>1) { - var r = "
    "; - var count = 0; - for (var k in colors) - if (block[k]) - count++; - count++; // avoid 0div wtf - if (count==1) break; - var h = HEIGHT / count; - for (var k in colors) { - var color = colors[k]; - if (block[k]) - r += ""; - } - r += "
    ____
    "; - off = "0x"+block.offset.toString (16); - } else { - off = "0x"+(y.from + (y.blocksize * i)).toString (16); - } - c += ""+r+""; - } - c += ""; - self.$.colorbar.setContent (c); - }); - } -}); diff --git a/shlr/www/enyo/js/graph.js b/shlr/www/enyo/js/graph.js deleted file mode 100644 index b56aa82613e66..0000000000000 --- a/shlr/www/enyo/js/graph.js +++ /dev/null @@ -1,18 +0,0 @@ -enyo.kind ({ - name: "Graph", - kind: "Scroller", - style: "background-color:#c0c0c0", - components: [ - {tag: "h2", content: "Open graph", style:"margin-left:10px;"}, - {kind: "Group", classes: "enyo-border-box group", defaultKind: "onyx.Button", components: [ - {content: "Basic blocks", classes: "onyx-dark menu-button", ontap:"openGraphBB" }, - {content: "Callgraph", classes: "onyx-dark menu-button", ontap:"openGraphCG" } - ]} - ], - openGraphBB: function () { - window.open ('/graph/', '_self'); - }, - openGraphCG: function () { - window.open ('/d3/', '_self'); - } -}); diff --git a/shlr/www/enyo/js/hexdump.js b/shlr/www/enyo/js/hexdump.js deleted file mode 100644 index f09796df7817d..0000000000000 --- a/shlr/www/enyo/js/hexdump.js +++ /dev/null @@ -1,131 +0,0 @@ -function docss(x) { - return ''+x+''; -} - -enyo.kind ({ - name: "Hexdump", - kind: "Scroller", - tag: "div", - style:"margin:0px;background-color:#c0c0c0;color:black", - data: null, - components: [ - {tag: "div", allowHtml: true, classes: "colorbar", name: "colorbar" }, - {tag: "div", content: "^", classes: "moreless", ontap: "less"}, - {tag: "pre", allowHtml: true, name: "text", content: "..", style:"margin-left:5px;color:black"}, - {tag: "div", content: "v", classes: "moreless", ontap: "more"}, -/* - {kind: "List", count:3, name: "list", style:"height:400px", realtimeFit:false, onSetupItem: "setupItem", components: [ - {kind: "onyx.Item", layoutKind: "HFlexLayout", style:"padding:0px", components: [ - {kind: "onyx.Button", name: "msg", fit:true, active: true, ontap: "rowTap"} - ]} - ]} -*/ - ], - min: 0, - max: 0, - block: 1024, - base: "entry0", - less: function() { - var self = this; - var text = this.$.text; - this.min += this.block; - r2.get_hexdump (this.base+"-"+this.min, this.block, function (x) { - x = css (r2.filter_asm (x, "px")); - var oldy = r2ui._hex.getScrollBounds().height; - text.setContent ("
    " + x + text.getContent() + "
    "); - var newy = r2ui._hex.getScrollBounds().height; - r2ui._hex.scrollTo (0, newy-oldy); - }); - }, - more: function() { - var text = this.$.text; - this.max += this.block; - r2.get_hexdump (this.base+"+"+this.max, this.block, function (x) { - x = docss (r2.filter_asm (x, "px")); - text.setContent ("
    " + text.getContent() + x + "
    "); - }); - }, - seek: function(addr) { - var text = this.$.text; - this.base = addr; - this.min = this.max = 0; - r2.get_hexdump (addr, this.block, function (x) { - x = docss (r2.filter_asm (x, "px")); - text.setContent ("
    " + x + "
    "); - }); - this.colorbar_create (); - }, - create: function() { - this.inherited (arguments); - // this.$.list.setCount (this.data.length) ; - var text = this.$.text; - this.seek ("entry0"); - r2ui._hex = this; - // r2ui.history_push("entry0"); - - this.colorbar_create(); - //this.refresh (); - }, - setupItem: function (inSender, inIndex) { - this.$.msg.setContent (this.data[inIndex.index]); - return true; - }, -/* TODO: spaggety. see disassemble.js . must be a separate kind */ - colorbar_create: function () { - var self = this; - r2.cmd ("pvj", function(x) { - try { - var y = JSON.parse (x); - } catch (e) { - alert (e); - return; - } - // console.log (y); - -// TODO: use canvas api for faster rendering and smaller dom - var c = ""; - var colors = { - flags: "#c0c0c0", - comments: "yellow", - functions: "#5050f0", - strings: "orange", - }; - - var off = ""; - var WIDTH = 10; - var HEIGHT = 30; - for (var i=0; i< y.blocks.length; i++) { - var block = y.blocks[i]; - var r = "
     
    "; - if (block.offset) { // Object.keys(block).length>1) { - var r = "
    "; - var count = 0; - for (var k in colors) { - if (block[k]) - count++; - } - count++; // avoid 0div wtf - if (count==1) break; - var h = HEIGHT / count; - for (var k in colors) { - var color = colors[k]; - if (block[k]) - r += ""; - } - r += "
     
    "; - off = "0x"+block.offset.toString (16); - } else { - off = "0x"+(y.from + (y.blocksize * i)).toString (16); - } - c += ""+r+""; - } - c += ""; - self.$.colorbar.setContent (c); - }); - } -}); diff --git a/shlr/www/enyo/js/joint.js b/shlr/www/enyo/js/joint.js deleted file mode 100644 index 5a139d17e1a90..0000000000000 --- a/shlr/www/enyo/js/joint.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! JointJS v0.9.2 - JavaScript diagramming library 2014-09-17 - - -This Source Code Form is subject to the terms of the Mozilla Public -License, v. 2.0. If a copy of the MPL was not distributed with this -file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ -if(function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e)));return g}function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?"border":"content"),d,f)+"px"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb||fb("' : ''); - inst._keyEvent = false; - return html; - }, - - /* Generate the month and year header. */ - _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort) { - var changeMonth = this._get(inst, 'changeMonth'); - var changeYear = this._get(inst, 'changeYear'); - var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); - var html = '
    '; - var monthHtml = ''; - // month selection - if (secondary || !changeMonth) - monthHtml += '' + monthNames[drawMonth] + ''; - else { - var inMinYear = (minDate && minDate.getFullYear() == drawYear); - var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); - monthHtml += ''; - } - if (!showMonthAfterYear) - html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); - // year selection - if ( !inst.yearshtml ) { - inst.yearshtml = ''; - if (secondary || !changeYear) - html += '' + drawYear + ''; - else { - // determine range of years to display - var years = this._get(inst, 'yearRange').split(':'); - var thisYear = new Date().getFullYear(); - var determineYear = function(value) { - var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - var year = determineYear(years[0]); - var endYear = Math.max(year, determineYear(years[1] || '')); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); - inst.yearshtml += ''; - - html += inst.yearshtml; - inst.yearshtml = null; - } - } - html += this._get(inst, 'yearSuffix'); - if (showMonthAfterYear) - html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; - html += '
    '; // Close datepicker_header - return html; - }, - - /* Adjust one of the date sub-fields. */ - _adjustInstDate: function(inst, offset, period) { - var year = inst.drawYear + (period == 'Y' ? offset : 0); - var month = inst.drawMonth + (period == 'M' ? offset : 0); - var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + - (period == 'D' ? offset : 0); - var date = this._restrictMinMax(inst, - this._daylightSavingAdjust(new Date(year, month, day))); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - if (period == 'M' || period == 'Y') - this._notifyChange(inst); - }, - - /* Ensure a date is within any min/max bounds. */ - _restrictMinMax: function(inst, date) { - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - var newDate = (minDate && date < minDate ? minDate : date); - newDate = (maxDate && newDate > maxDate ? maxDate : newDate); - return newDate; - }, - - /* Notify change of month/year. */ - _notifyChange: function(inst) { - var onChange = this._get(inst, 'onChangeMonthYear'); - if (onChange) - onChange.apply((inst.input ? inst.input[0] : null), - [inst.selectedYear, inst.selectedMonth + 1, inst]); - }, - - /* Determine the number of months to show. */ - _getNumberOfMonths: function(inst) { - var numMonths = this._get(inst, 'numberOfMonths'); - return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); - }, - - /* Determine the current maximum date - ensure no time components are set. */ - _getMinMaxDate: function(inst, minMax) { - return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); - }, - - /* Find the number of days in a given month. */ - _getDaysInMonth: function(year, month) { - return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); - }, - - /* Find the day of the week of the first of a month. */ - _getFirstDayOfMonth: function(year, month) { - return new Date(year, month, 1).getDay(); - }, - - /* Determines if we should allow a "next/prev" month display change. */ - _canAdjustMonth: function(inst, offset, curYear, curMonth) { - var numMonths = this._getNumberOfMonths(inst); - var date = this._daylightSavingAdjust(new Date(curYear, - curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); - if (offset < 0) - date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); - return this._isInRange(inst, date); - }, - - /* Is the given date in the accepted range? */ - _isInRange: function(inst, date) { - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - return ((!minDate || date.getTime() >= minDate.getTime()) && - (!maxDate || date.getTime() <= maxDate.getTime())); - }, - - /* Provide the configuration settings for formatting/parsing. */ - _getFormatConfig: function(inst) { - var shortYearCutoff = this._get(inst, 'shortYearCutoff'); - shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - return {shortYearCutoff: shortYearCutoff, - dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), - monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; - }, - - /* Format the given date for display. */ - _formatDate: function(inst, day, month, year) { - if (!day) { - inst.currentDay = inst.selectedDay; - inst.currentMonth = inst.selectedMonth; - inst.currentYear = inst.selectedYear; - } - var date = (day ? (typeof day == 'object' ? day : - this._daylightSavingAdjust(new Date(year, month, day))) : - this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); - } -}); - -/* - * Bind hover events for datepicker elements. - * Done via delegate so the binding only occurs once in the lifetime of the parent div. - * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. - */ -function bindHover(dpDiv) { - var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a'; - return dpDiv.delegate(selector, 'mouseout', function() { - $(this).removeClass('ui-state-hover'); - if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover'); - if (this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover'); - }) - .delegate(selector, 'mouseover', function(){ - if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) { - $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); - $(this).addClass('ui-state-hover'); - if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover'); - if (this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover'); - } - }); -} - -/* jQuery extend now ignores nulls! */ -function extendRemove(target, props) { - $.extend(target, props); - for (var name in props) - if (props[name] == null || props[name] == undefined) - target[name] = props[name]; - return target; -}; - -/* Invoke the datepicker functionality. - @param options string - a command, optionally followed by additional parameters or - Object - settings for attaching new datepicker functionality - @return jQuery object */ -$.fn.datepicker = function(options){ - - /* Verify an empty collection wasn't passed - Fixes #6976 */ - if ( !this.length ) { - return this; - } - - /* Initialise the date picker. */ - if (!$.datepicker.initialized) { - $(document).mousedown($.datepicker._checkExternalClick). - find(document.body).append($.datepicker.dpDiv); - $.datepicker.initialized = true; - } - - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) - return $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this[0]].concat(otherArgs)); - if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') - return $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this[0]].concat(otherArgs)); - return this.each(function() { - typeof options == 'string' ? - $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this].concat(otherArgs)) : - $.datepicker._attachDatepicker(this, options); - }); -}; - -$.datepicker = new Datepicker(); // singleton instance -$.datepicker.initialized = false; -$.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.9.2"; - -// Workaround for #4055 -// Add another global to avoid noConflict issues with inline event handlers -window['DP_jQuery_' + dpuuid] = $; - -})(jQuery); -(function( $, undefined ) { - -var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ", - sizeRelatedOptions = { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true - }, - resizableRelatedOptions = { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true - }; - -$.widget("ui.dialog", { - version: "1.9.2", - options: { - autoOpen: true, - buttons: {}, - closeOnEscape: true, - closeText: "close", - dialogClass: "", - draggable: true, - hide: null, - height: "auto", - maxHeight: false, - maxWidth: false, - minHeight: 150, - minWidth: 150, - modal: false, - position: { - my: "center", - at: "center", - of: window, - collision: "fit", - // ensure that the titlebar is never outside the document - using: function( pos ) { - var topOffset = $( this ).css( pos ).offset().top; - if ( topOffset < 0 ) { - $( this ).css( "top", pos.top - topOffset ); - } - } - }, - resizable: true, - show: null, - stack: true, - title: "", - width: 300, - zIndex: 1000 - }, - - _create: function() { - this.originalTitle = this.element.attr( "title" ); - // #5742 - .attr() might return a DOMElement - if ( 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 that = this, - options = this.options, - - title = options.title || " ", - uiDialog, - uiDialogTitlebar, - uiDialogTitlebarClose, - uiDialogTitle, - uiDialogButtonPane; - - uiDialog = ( this.uiDialog = $( "
    " ) ) - .addClass( uiDialogClasses + options.dialogClass ) - .css({ - display: "none", - outline: 0, // TODO: move to stylesheet - zIndex: options.zIndex - }) - // setting tabIndex makes the div focusable - .attr( "tabIndex", -1) - .keydown(function( event ) { - if ( options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE ) { - that.close( event ); - event.preventDefault(); - } - }) - .mousedown(function( event ) { - that.moveToTop( false, event ); - }) - .appendTo( "body" ); - - this.element - .show() - .removeAttr( "title" ) - .addClass( "ui-dialog-content ui-widget-content" ) - .appendTo( uiDialog ); - - uiDialogTitlebar = ( this.uiDialogTitlebar = $( "
    " ) ) - .addClass( "ui-dialog-titlebar ui-widget-header " + - "ui-corner-all ui-helper-clearfix" ) - .bind( "mousedown", function() { - // Dialog isn't getting focus when dragging (#8063) - uiDialog.focus(); - }) - .prependTo( uiDialog ); - - uiDialogTitlebarClose = $( "" ) - .addClass( "ui-dialog-titlebar-close ui-corner-all" ) - .attr( "role", "button" ) - .click(function( event ) { - event.preventDefault(); - that.close( event ); - }) - .appendTo( uiDialogTitlebar ); - - ( this.uiDialogTitlebarCloseText = $( "" ) ) - .addClass( "ui-icon ui-icon-closethick" ) - .text( options.closeText ) - .appendTo( uiDialogTitlebarClose ); - - uiDialogTitle = $( "" ) - .uniqueId() - .addClass( "ui-dialog-title" ) - .html( title ) - .prependTo( uiDialogTitlebar ); - - uiDialogButtonPane = ( this.uiDialogButtonPane = $( "
    " ) ) - .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" ); - - ( this.uiButtonSet = $( "
    " ) ) - .addClass( "ui-dialog-buttonset" ) - .appendTo( uiDialogButtonPane ); - - uiDialog.attr({ - role: "dialog", - "aria-labelledby": uiDialogTitle.attr( "id" ) - }); - - uiDialogTitlebar.find( "*" ).add( uiDialogTitlebar ).disableSelection(); - this._hoverable( uiDialogTitlebarClose ); - this._focusable( uiDialogTitlebarClose ); - - if ( options.draggable && $.fn.draggable ) { - this._makeDraggable(); - } - if ( options.resizable && $.fn.resizable ) { - this._makeResizable(); - } - - this._createButtons( options.buttons ); - this._isOpen = false; - - if ( $.fn.bgiframe ) { - uiDialog.bgiframe(); - } - - // prevent tabbing out of modal dialogs - this._on( uiDialog, { keydown: function( event ) { - if ( !options.modal || event.keyCode !== $.ui.keyCode.TAB ) { - return; - } - - var tabbables = $( ":tabbable", uiDialog ), - first = tabbables.filter( ":first" ), - last = tabbables.filter( ":last" ); - - if ( event.target === last[0] && !event.shiftKey ) { - first.focus( 1 ); - return false; - } else if ( event.target === first[0] && event.shiftKey ) { - last.focus( 1 ); - return false; - } - }}); - }, - - _init: function() { - if ( this.options.autoOpen ) { - this.open(); - } - }, - - _destroy: function() { - var next, - oldPosition = this.oldPosition; - - if ( this.overlay ) { - this.overlay.destroy(); - } - this.uiDialog.hide(); - this.element - .removeClass( "ui-dialog-content ui-widget-content" ) - .hide() - .appendTo( "body" ); - this.uiDialog.remove(); - - if ( this.originalTitle ) { - this.element.attr( "title", this.originalTitle ); - } - - next = oldPosition.parent.children().eq( oldPosition.index ); - // Don't try to place the dialog next to itself (#8613) - if ( next.length && next[ 0 ] !== this.element[ 0 ] ) { - next.before( this.element ); - } else { - oldPosition.parent.append( this.element ); - } - }, - - widget: function() { - return this.uiDialog; - }, - - close: function( event ) { - var that = this, - maxZ, thisZ; - - if ( !this._isOpen ) { - return; - } - - if ( false === this._trigger( "beforeClose", event ) ) { - return; - } - - this._isOpen = false; - - if ( this.overlay ) { - this.overlay.destroy(); - } - - if ( this.options.hide ) { - this._hide( this.uiDialog, this.options.hide, function() { - that._trigger( "close", event ); - }); - } else { - this.uiDialog.hide(); - this._trigger( "close", event ); - } - - $.ui.dialog.overlay.resize(); - - // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) - if ( this.options.modal ) { - maxZ = 0; - $( ".ui-dialog" ).each(function() { - if ( this !== that.uiDialog[0] ) { - thisZ = $( this ).css( "z-index" ); - if ( !isNaN( thisZ ) ) { - maxZ = Math.max( maxZ, thisZ ); - } - } - }); - $.ui.dialog.maxZ = maxZ; - } - - return this; - }, - - isOpen: function() { - return this._isOpen; - }, - - // the force parameter allows us to move modal dialogs to their correct - // position on open - moveToTop: function( force, event ) { - var options = this.options, - saveScroll; - - if ( ( options.modal && !force ) || - ( !options.stack && !options.modal ) ) { - return this._trigger( "focus", event ); - } - - if ( options.zIndex > $.ui.dialog.maxZ ) { - $.ui.dialog.maxZ = options.zIndex; - } - if ( this.overlay ) { - $.ui.dialog.maxZ += 1; - $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ; - this.overlay.$el.css( "z-index", $.ui.dialog.overlay.maxZ ); - } - - // Save and then restore scroll - // Opera 9.5+ resets when parent z-index is changed. - // http://bugs.jqueryui.com/ticket/3193 - saveScroll = { - scrollTop: this.element.scrollTop(), - scrollLeft: this.element.scrollLeft() - }; - $.ui.dialog.maxZ += 1; - this.uiDialog.css( "z-index", $.ui.dialog.maxZ ); - this.element.attr( saveScroll ); - this._trigger( "focus", event ); - - return this; - }, - - open: function() { - if ( this._isOpen ) { - return; - } - - var hasFocus, - options = this.options, - uiDialog = this.uiDialog; - - this._size(); - this._position( options.position ); - uiDialog.show( options.show ); - this.overlay = options.modal ? new $.ui.dialog.overlay( this ) : null; - this.moveToTop( true ); - - // set focus to the first tabbable element in the content area or the first button - // if there are no tabbable elements, set focus on the dialog itself - hasFocus = this.element.find( ":tabbable" ); - if ( !hasFocus.length ) { - hasFocus = this.uiDialogButtonPane.find( ":tabbable" ); - if ( !hasFocus.length ) { - hasFocus = uiDialog; - } - } - hasFocus.eq( 0 ).focus(); - - this._isOpen = true; - this._trigger( "open" ); - - return this; - }, - - _createButtons: function( buttons ) { - var that = this, - hasButtons = false; - - // if we already have a button pane, remove it - this.uiDialogButtonPane.remove(); - this.uiButtonSet.empty(); - - if ( typeof buttons === "object" && buttons !== null ) { - $.each( buttons, function() { - return !(hasButtons = true); - }); - } - if ( hasButtons ) { - $.each( buttons, function( name, props ) { - var button, click; - props = $.isFunction( props ) ? - { click: props, text: name } : - props; - // Default to a non-submitting button - props = $.extend( { type: "button" }, props ); - // Change the context for the click callback to be the main element - click = props.click; - props.click = function() { - click.apply( that.element[0], arguments ); - }; - button = $( "", props ) - .appendTo( that.uiButtonSet ); - if ( $.fn.button ) { - button.button(); - } - }); - this.uiDialog.addClass( "ui-dialog-buttons" ); - this.uiDialogButtonPane.appendTo( this.uiDialog ); - } else { - this.uiDialog.removeClass( "ui-dialog-buttons" ); - } - }, - - _makeDraggable: function() { - var that = this, - options = this.options; - - function filteredUi( ui ) { - return { - position: ui.position, - offset: ui.offset - }; - } - - this.uiDialog.draggable({ - cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", - handle: ".ui-dialog-titlebar", - containment: "document", - start: function( event, ui ) { - $( this ) - .addClass( "ui-dialog-dragging" ); - that._trigger( "dragStart", event, filteredUi( ui ) ); - }, - drag: function( event, ui ) { - that._trigger( "drag", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - options.position = [ - ui.position.left - that.document.scrollLeft(), - ui.position.top - that.document.scrollTop() - ]; - $( this ) - .removeClass( "ui-dialog-dragging" ); - that._trigger( "dragStop", event, filteredUi( ui ) ); - $.ui.dialog.overlay.resize(); - } - }); - }, - - _makeResizable: function( handles ) { - handles = (handles === undefined ? this.options.resizable : handles); - var that = this, - options = this.options, - // .ui-resizable has position: relative defined in the stylesheet - // but dialogs have to use absolute or fixed positioning - position = this.uiDialog.css( "position" ), - resizeHandles = typeof handles === 'string' ? - handles : - "n,e,s,w,se,sw,ne,nw"; - - function filteredUi( ui ) { - return { - originalPosition: ui.originalPosition, - originalSize: ui.originalSize, - position: ui.position, - size: ui.size - }; - } - - this.uiDialog.resizable({ - cancel: ".ui-dialog-content", - containment: "document", - alsoResize: this.element, - maxWidth: options.maxWidth, - maxHeight: options.maxHeight, - minWidth: options.minWidth, - minHeight: this._minHeight(), - handles: resizeHandles, - start: function( event, ui ) { - $( this ).addClass( "ui-dialog-resizing" ); - that._trigger( "resizeStart", event, filteredUi( ui ) ); - }, - resize: function( event, ui ) { - that._trigger( "resize", event, filteredUi( ui ) ); - }, - stop: function( event, ui ) { - $( this ).removeClass( "ui-dialog-resizing" ); - options.height = $( this ).height(); - options.width = $( this ).width(); - that._trigger( "resizeStop", event, filteredUi( ui ) ); - $.ui.dialog.overlay.resize(); - } - }) - .css( "position", position ) - .find( ".ui-resizable-se" ) - .addClass( "ui-icon ui-icon-grip-diagonal-se" ); - }, - - _minHeight: function() { - var options = this.options; - - if ( options.height === "auto" ) { - return options.minHeight; - } else { - return Math.min( options.minHeight, options.height ); - } - }, - - _position: function( position ) { - var myAt = [], - offset = [ 0, 0 ], - isVisible; - - if ( position ) { - // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( - // if (typeof position == 'string' || $.isArray(position)) { - // myAt = $.isArray(position) ? position : position.split(' '); - - if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) { - myAt = position.split ? position.split( " " ) : [ position[ 0 ], position[ 1 ] ]; - if ( myAt.length === 1 ) { - myAt[ 1 ] = myAt[ 0 ]; - } - - $.each( [ "left", "top" ], function( i, offsetPosition ) { - if ( +myAt[ i ] === myAt[ i ] ) { - offset[ i ] = myAt[ i ]; - myAt[ i ] = offsetPosition; - } - }); - - position = { - my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " + - myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]), - at: myAt.join( " " ) - }; - } - - position = $.extend( {}, $.ui.dialog.prototype.options.position, position ); - } else { - position = $.ui.dialog.prototype.options.position; - } - - // need to show the dialog to get the actual offset in the position plugin - isVisible = this.uiDialog.is( ":visible" ); - if ( !isVisible ) { - this.uiDialog.show(); - } - this.uiDialog.position( position ); - if ( !isVisible ) { - this.uiDialog.hide(); - } - }, - - _setOptions: function( options ) { - var that = this, - resizableOptions = {}, - resize = false; - - $.each( options, function( key, value ) { - that._setOption( key, value ); - - if ( key in sizeRelatedOptions ) { - resize = true; - } - if ( key in resizableRelatedOptions ) { - resizableOptions[ key ] = value; - } - }); - - if ( resize ) { - this._size(); - } - if ( this.uiDialog.is( ":data(resizable)" ) ) { - this.uiDialog.resizable( "option", resizableOptions ); - } - }, - - _setOption: function( key, value ) { - var isDraggable, isResizable, - uiDialog = this.uiDialog; - - switch ( key ) { - case "buttons": - this._createButtons( value ); - break; - case "closeText": - // ensure that we always pass a string - this.uiDialogTitlebarCloseText.text( "" + value ); - break; - case "dialogClass": - uiDialog - .removeClass( this.options.dialogClass ) - .addClass( uiDialogClasses + value ); - break; - case "disabled": - if ( value ) { - uiDialog.addClass( "ui-dialog-disabled" ); - } else { - uiDialog.removeClass( "ui-dialog-disabled" ); - } - break; - case "draggable": - isDraggable = uiDialog.is( ":data(draggable)" ); - if ( isDraggable && !value ) { - uiDialog.draggable( "destroy" ); - } - - if ( !isDraggable && value ) { - this._makeDraggable(); - } - break; - case "position": - this._position( value ); - break; - case "resizable": - // currently resizable, becoming non-resizable - isResizable = uiDialog.is( ":data(resizable)" ); - if ( isResizable && !value ) { - uiDialog.resizable( "destroy" ); - } - - // currently resizable, changing handles - if ( isResizable && typeof value === "string" ) { - uiDialog.resizable( "option", "handles", value ); - } - - // currently non-resizable, becoming resizable - if ( !isResizable && value !== false ) { - this._makeResizable( value ); - } - break; - case "title": - // convert whatever was passed in o a string, for html() to not throw up - $( ".ui-dialog-title", this.uiDialogTitlebar ) - .html( "" + ( value || " " ) ); - break; - } - - this._super( key, value ); - }, - - _size: function() { - /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content - * divs will both have width and height set, so we need to reset them - */ - var nonContentHeight, minContentHeight, autoHeight, - options = this.options, - isVisible = this.uiDialog.is( ":visible" ); - - // reset content sizing - this.element.show().css({ - width: "auto", - minHeight: 0, - height: 0 - }); - - if ( options.minWidth > options.width ) { - options.width = options.minWidth; - } - - // reset wrapper sizing - // determine the height of all the non-content elements - nonContentHeight = this.uiDialog.css({ - height: "auto", - width: options.width - }) - .outerHeight(); - minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); - - if ( options.height === "auto" ) { - // only needed for IE6 support - if ( $.support.minHeight ) { - this.element.css({ - minHeight: minContentHeight, - height: "auto" - }); - } else { - this.uiDialog.show(); - autoHeight = this.element.css( "height", "auto" ).height(); - if ( !isVisible ) { - this.uiDialog.hide(); - } - this.element.height( Math.max( autoHeight, minContentHeight ) ); - } - } else { - this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); - } - - if (this.uiDialog.is( ":data(resizable)" ) ) { - this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); - } - } -}); - -$.extend($.ui.dialog, { - uuid: 0, - maxZ: 0, - - getTitleId: function($el) { - var id = $el.attr( "id" ); - if ( !id ) { - this.uuid += 1; - id = this.uuid; - } - return "ui-dialog-title-" + id; - }, - - overlay: function( dialog ) { - this.$el = $.ui.dialog.overlay.create( dialog ); - } -}); - -$.extend( $.ui.dialog.overlay, { - instances: [], - // reuse old instances due to IE memory leak with alpha transparency (see #5185) - oldInstances: [], - maxZ: 0, - events: $.map( - "focus,mousedown,mouseup,keydown,keypress,click".split( "," ), - function( event ) { - return event + ".dialog-overlay"; - } - ).join( " " ), - create: function( dialog ) { - if ( this.instances.length === 0 ) { - // prevent use of anchors and inputs - // we use a setTimeout in case the overlay is created from an - // event that we're going to be cancelling (see #2804) - setTimeout(function() { - // handle $(el).dialog().dialog('close') (see #4065) - if ( $.ui.dialog.overlay.instances.length ) { - $( document ).bind( $.ui.dialog.overlay.events, function( event ) { - // stop events if the z-index of the target is < the z-index of the overlay - // we cannot return true when we don't want to cancel the event (#3523) - if ( $( event.target ).zIndex() < $.ui.dialog.overlay.maxZ ) { - return false; - } - }); - } - }, 1 ); - - // handle window resize - $( window ).bind( "resize.dialog-overlay", $.ui.dialog.overlay.resize ); - } - - var $el = ( this.oldInstances.pop() || $( "
    " ).addClass( "ui-widget-overlay" ) ); - - // allow closing by pressing the escape key - $( document ).bind( "keydown.dialog-overlay", function( event ) { - var instances = $.ui.dialog.overlay.instances; - // only react to the event if we're the top overlay - if ( instances.length !== 0 && instances[ instances.length - 1 ] === $el && - dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE ) { - - dialog.close( event ); - event.preventDefault(); - } - }); - - $el.appendTo( document.body ).css({ - width: this.width(), - height: this.height() - }); - - if ( $.fn.bgiframe ) { - $el.bgiframe(); - } - - this.instances.push( $el ); - return $el; - }, - - destroy: function( $el ) { - var indexOf = $.inArray( $el, this.instances ), - maxZ = 0; - - if ( indexOf !== -1 ) { - this.oldInstances.push( this.instances.splice( indexOf, 1 )[ 0 ] ); - } - - if ( this.instances.length === 0 ) { - $( [ document, window ] ).unbind( ".dialog-overlay" ); - } - - $el.height( 0 ).width( 0 ).remove(); - - // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) - $.each( this.instances, function() { - maxZ = Math.max( maxZ, this.css( "z-index" ) ); - }); - this.maxZ = maxZ; - }, - - height: function() { - var scrollHeight, - offsetHeight; - // handle IE - if ( $.ui.ie ) { - scrollHeight = Math.max( - document.documentElement.scrollHeight, - document.body.scrollHeight - ); - offsetHeight = Math.max( - document.documentElement.offsetHeight, - document.body.offsetHeight - ); - - if ( scrollHeight < offsetHeight ) { - return $( window ).height() + "px"; - } else { - return scrollHeight + "px"; - } - // handle "good" browsers - } else { - return $( document ).height() + "px"; - } - }, - - width: function() { - var scrollWidth, - offsetWidth; - // handle IE - if ( $.ui.ie ) { - scrollWidth = Math.max( - document.documentElement.scrollWidth, - document.body.scrollWidth - ); - offsetWidth = Math.max( - document.documentElement.offsetWidth, - document.body.offsetWidth - ); - - if ( scrollWidth < offsetWidth ) { - return $( window ).width() + "px"; - } else { - return scrollWidth + "px"; - } - // handle "good" browsers - } else { - return $( document ).width() + "px"; - } - }, - - resize: function() { - /* If the dialog is draggable and the user drags it past the - * right edge of the window, the document becomes wider so we - * need to stretch the overlay. If the user then drags the - * dialog back to the left, the document will become narrower, - * so we need to shrink the overlay to the appropriate size. - * This is handled by shrinking the overlay before setting it - * to the full document size. - */ - var $overlays = $( [] ); - $.each( $.ui.dialog.overlay.instances, function() { - $overlays = $overlays.add( this ); - }); - - $overlays.css({ - width: 0, - height: 0 - }).css({ - width: $.ui.dialog.overlay.width(), - height: $.ui.dialog.overlay.height() - }); - } -}); - -$.extend( $.ui.dialog.overlay.prototype, { - destroy: function() { - $.ui.dialog.overlay.destroy( this.$el ); - } -}); - -}( jQuery ) ); -(function( $, undefined ) { - -$.widget("ui.draggable", $.ui.mouse, { - version: "1.9.2", - widgetEventPrefix: "drag", - options: { - addClasses: true, - appendTo: "parent", - axis: false, - connectToSortable: false, - containment: false, - cursor: "auto", - cursorAt: false, - grid: false, - handle: false, - helper: "original", - iframeFix: false, - opacity: false, - refreshPositions: false, - revert: false, - revertDuration: 500, - scope: "default", - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - snap: false, - snapMode: "both", - snapTolerance: 20, - stack: false, - zIndex: false - }, - _create: function() { - - if (this.options.helper == '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(event) { - - var o = this.options; - - // among others, prevent a drag on a resizable-handle - if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) - return false; - - //Quit if we're not on a valid handle - this.handle = this._getHandle(event); - if (!this.handle) - return false; - - $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { - $('
    ') - .css({ - width: this.offsetWidth+"px", height: this.offsetHeight+"px", - position: "absolute", opacity: "0.001", zIndex: 1000 - }) - .css($(this).offset()) - .appendTo("body"); - }); - - return true; - - }, - - _mouseStart: function(event) { - - var o = this.options; - - //Create and append the visible helper - this.helper = this._createHelper(event); - - this.helper.addClass("ui-draggable-dragging"); - - //Cache the helper size - this._cacheHelperProportions(); - - //If ddmanager is used for droppables, set the global draggable - if($.ui.ddmanager) - $.ui.ddmanager.current = this; - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Store the helper's css position - this.cssPosition = this.helper.css("position"); - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.positionAbs = this.element.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - //Generate the original position - this.originalPosition = this.position = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Set a containment if given in the options - if(o.containment) - this._setContainment(); - - //Trigger event + callbacks - if(this._trigger("start", event) === false) { - this._clear(); - return false; - } - - //Recache the helper size - this._cacheHelperProportions(); - - //Prepare the droppable offsets - if ($.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - - - this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position - - //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) - if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event); - - return true; - }, - - _mouseDrag: function(event, noPropagation) { - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - //Call plugins and callbacks and use the resulting position if something is returned - if (!noPropagation) { - var ui = this._uiHash(); - if(this._trigger('drag', event, ui) === false) { - this._mouseUp({}); - return false; - } - this.position = ui.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'; - if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); - - return false; - }, - - _mouseStop: function(event) { - - //If we are using droppables, inform the manager about the drop - var dropped = false; - if ($.ui.ddmanager && !this.options.dropBehaviour) - dropped = $.ui.ddmanager.drop(this, event); - - //if a drop comes from outside (a sortable) - if(this.dropped) { - dropped = this.dropped; - this.dropped = false; - } - - //if the original element is no longer in the DOM don't bother to continue (see #8269) - var element = this.element[0], elementInDom = false; - while ( element && (element = element.parentNode) ) { - if (element == document ) { - elementInDom = true; - } - } - if ( !elementInDom && this.options.helper === "original" ) - return false; - - if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { - var that = this; - $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { - if(that._trigger("stop", event) !== false) { - that._clear(); - } - }); - } else { - if(this._trigger("stop", event) !== false) { - this._clear(); - } - } - - return false; - }, - - _mouseUp: function(event) { - //Remove frame helpers - $("div.ui-draggable-iframeFix").each(function() { - this.parentNode.removeChild(this); - }); - - //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) - if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event); - - return $.ui.mouse.prototype._mouseUp.call(this, event); - }, - - cancel: function() { - - if(this.helper.is(".ui-draggable-dragging")) { - this._mouseUp({}); - } else { - this._clear(); - } - - return this; - - }, - - _getHandle: function(event) { - - var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; - $(this.options.handle, this.element) - .find("*") - .andSelf() - .each(function() { - if(this == event.target) handle = true; - }); - - return handle; - - }, - - _createHelper: function(event) { - - var o = this.options; - var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element); - - if(!helper.parents('body').length) - helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo)); - - if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) - helper.css("position", "absolute"); - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj == 'string') { - obj = obj.split(' '); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ('left' in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ('right' in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ('top' in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ('bottom' in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information - || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie)) //Ugly IE fix - po = { top: 0, left: 0 }; - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition == "relative") { - var p = this.element.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { top: 0, left: 0 }; - } - - }, - - _cacheMargins: function() { - this.margins = { - left: (parseInt(this.element.css("marginLeft"),10) || 0), - top: (parseInt(this.element.css("marginTop"),10) || 0), - 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 o = this.options; - if(o.containment == 'parent') o.containment = this.helper[0].parentNode; - if(o.containment == 'document' || o.containment == 'window') this.containment = [ - o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, - o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, - (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, - (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - - if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) { - var c = $(o.containment); - var ce = c[0]; if(!ce) return; - var co = c.offset(); - var over = ($(ce).css("overflow") != 'hidden'); - - this.containment = [ - (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0), - (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0), - (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, - (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom - ]; - this.relative_container = c; - - } else if(o.containment.constructor == Array) { - this.containment = o.containment; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) pos = this.position; - var mod = d == "absolute" ? 1 : -1; - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top // The absolute mouse position - + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left // The absolute mouse position - + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - var pageX = event.pageX; - var pageY = event.pageY; - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - var containment; - if(this.containment) { - if (this.relative_container){ - var co = this.relative_container.offset(); - containment = [ this.containment[0] + co.left, - this.containment[1] + co.top, - this.containment[2] + co.left, - this.containment[3] + co.top ]; - } - else { - containment = this.containment; - } - - if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left; - if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top; - if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left; - if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top; - } - - if(o.grid) { - //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) - var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; - pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; - pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY // The absolute mouse position - - this.offset.click.top // Click offset (relative to the element) - - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX // The absolute mouse position - - this.offset.click.left // Click offset (relative to the element) - - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _clear: function() { - this.helper.removeClass("ui-draggable-dragging"); - if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove(); - //if($.ui.ddmanager) $.ui.ddmanager.current = null; - this.helper = null; - this.cancelHelperRemoval = false; - }, - - // From now on bulk stuff - mainly helpers - - _trigger: function(type, event, ui) { - ui = ui || this._uiHash(); - $.ui.plugin.call(this, type, [event, ui]); - if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins - return $.Widget.prototype._trigger.call(this, type, event, ui); - }, - - plugins: {}, - - _uiHash: function(event) { - return { - helper: this.helper, - position: this.position, - originalPosition: this.originalPosition, - offset: this.positionAbs - }; - } - -}); - -$.ui.plugin.add("draggable", "connectToSortable", { - start: function(event, ui) { - - var inst = $(this).data("draggable"), o = inst.options, - uiSortable = $.extend({}, ui, { item: inst.element }); - inst.sortables = []; - $(o.connectToSortable).each(function() { - var sortable = $.data(this, 'sortable'); - if (sortable && !sortable.options.disabled) { - inst.sortables.push({ - instance: sortable, - shouldRevert: sortable.options.revert - }); - sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). - sortable._trigger("activate", event, uiSortable); - } - }); - - }, - stop: function(event, ui) { - - //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper - var inst = $(this).data("draggable"), - uiSortable = $.extend({}, ui, { item: inst.element }); - - $.each(inst.sortables, function() { - if(this.instance.isOver) { - - this.instance.isOver = 0; - - inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance - this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) - - //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid' - if(this.shouldRevert) this.instance.options.revert = true; - - //Trigger the stop of the sortable - this.instance._mouseStop(event); - - this.instance.options.helper = this.instance.options._helper; - - //If the helper has been the original item, restore properties in the sortable - if(inst.options.helper == 'original') - this.instance.currentItem.css({ top: 'auto', left: 'auto' }); - - } else { - this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance - this.instance._trigger("deactivate", event, uiSortable); - } - - }); - - }, - drag: function(event, ui) { - - var inst = $(this).data("draggable"), that = this; - - var checkPos = function(o) { - var dyClick = this.offset.click.top, dxClick = this.offset.click.left; - var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left; - var itemHeight = o.height, itemWidth = o.width; - var itemTop = o.top, itemLeft = o.left; - - return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth); - }; - - $.each(inst.sortables, function(i) { - - var innermostIntersecting = false; - var thisSortable = this; - //Copy over some variables to allow calling the sortable's native _intersectsWith - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; - - if(this.instance._intersectsWith(this.instance.containerCache)) { - innermostIntersecting = true; - $.each(inst.sortables, function () { - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; - if (this != thisSortable - && this.instance._intersectsWith(this.instance.containerCache) - && $.ui.contains(thisSortable.instance.element[0], this.instance.element[0])) - innermostIntersecting = false; - return innermostIntersecting; - }); - } - - - if(innermostIntersecting) { - //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once - if(!this.instance.isOver) { - - this.instance.isOver = 1; - //Now we fake the start of dragging for the sortable instance, - //by cloning the list group item, appending it to the sortable and using it as inst.currentItem - //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) - this.instance.currentItem = $(that).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true); - this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it - this.instance.options.helper = function() { return ui.helper[0]; }; - - event.target = this.instance.currentItem[0]; - this.instance._mouseCapture(event, true); - this.instance._mouseStart(event, true, true); - - //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes - this.instance.offset.click.top = inst.offset.click.top; - this.instance.offset.click.left = inst.offset.click.left; - this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; - this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; - - inst._trigger("toSortable", event); - inst.dropped = this.instance.element; //draggable revert needs that - //hack so receive/update callbacks work (mostly) - inst.currentItem = inst.element; - this.instance.fromOutside = inst; - - } - - //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable - if(this.instance.currentItem) this.instance._mouseDrag(event); - - } else { - - //If it doesn't intersect with the sortable, and it intersected before, - //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval - if(this.instance.isOver) { - - this.instance.isOver = 0; - this.instance.cancelHelperRemoval = true; - - //Prevent reverting on this forced stop - this.instance.options.revert = false; - - // The out event needs to be triggered independently - this.instance._trigger('out', event, this.instance._uiHash(this.instance)); - - this.instance._mouseStop(event, true); - this.instance.options.helper = this.instance.options._helper; - - //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size - this.instance.currentItem.remove(); - if(this.instance.placeholder) this.instance.placeholder.remove(); - - inst._trigger("fromSortable", event); - inst.dropped = false; //draggable revert needs that - } - - }; - - }); - - } -}); - -$.ui.plugin.add("draggable", "cursor", { - start: function(event, ui) { - var t = $('body'), o = $(this).data('draggable').options; - if (t.css("cursor")) o._cursor = t.css("cursor"); - t.css("cursor", o.cursor); - }, - stop: function(event, ui) { - var o = $(this).data('draggable').options; - if (o._cursor) $('body').css("cursor", o._cursor); - } -}); - -$.ui.plugin.add("draggable", "opacity", { - start: function(event, ui) { - var t = $(ui.helper), o = $(this).data('draggable').options; - if(t.css("opacity")) o._opacity = t.css("opacity"); - t.css('opacity', o.opacity); - }, - stop: function(event, ui) { - var o = $(this).data('draggable').options; - if(o._opacity) $(ui.helper).css('opacity', o._opacity); - } -}); - -$.ui.plugin.add("draggable", "scroll", { - start: function(event, ui) { - var i = $(this).data("draggable"); - if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); - }, - drag: function(event, ui) { - - var i = $(this).data("draggable"), o = i.options, scrolled = false; - - if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { - - if(!o.axis || o.axis != 'x') { - if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; - else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; - } - - if(!o.axis || o.axis != 'y') { - if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; - else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; - } - - } else { - - if(!o.axis || o.axis != 'x') { - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - } - - if(!o.axis || o.axis != 'y') { - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - } - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(i, event); - - } -}); - -$.ui.plugin.add("draggable", "snap", { - start: function(event, ui) { - - var i = $(this).data("draggable"), o = i.options; - i.snapElements = []; - - $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() { - var $t = $(this); var $o = $t.offset(); - if(this != i.element[0]) i.snapElements.push({ - item: this, - width: $t.outerWidth(), height: $t.outerHeight(), - top: $o.top, left: $o.left - }); - }); - - }, - drag: function(event, ui) { - - var inst = $(this).data("draggable"), o = inst.options; - var d = o.snapTolerance; - - var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, - y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; - - for (var i = inst.snapElements.length - 1; i >= 0; i--){ - - var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, - t = inst.snapElements[i].top, b = t + inst.snapElements[i].height; - - //Yes, I know, this is insane ;) - if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { - if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - inst.snapElements[i].snapping = false; - continue; - } - - if(o.snapMode != 'inner') { - var ts = Math.abs(t - y2) <= d; - var bs = Math.abs(b - y1) <= d; - var ls = Math.abs(l - x2) <= d; - var rs = Math.abs(r - x1) <= d; - if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; - if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; - if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; - if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; - } - - var first = (ts || bs || ls || rs); - - if(o.snapMode != 'outer') { - var ts = Math.abs(t - y1) <= d; - var bs = Math.abs(b - y2) <= d; - var ls = Math.abs(l - x1) <= d; - var rs = Math.abs(r - x2) <= d; - if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; - if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; - if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; - if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; - } - - if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) - (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - inst.snapElements[i].snapping = (ts || bs || ls || rs || first); - - }; - - } -}); - -$.ui.plugin.add("draggable", "stack", { - start: function(event, ui) { - - var o = $(this).data("draggable").options; - - var group = $.makeArray($(o.stack)).sort(function(a,b) { - return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); - }); - if (!group.length) { return; } - - var min = parseInt(group[0].style.zIndex) || 0; - $(group).each(function(i) { - this.style.zIndex = min + i; - }); - - this[0].style.zIndex = min + group.length; - - } -}); - -$.ui.plugin.add("draggable", "zIndex", { - start: function(event, ui) { - var t = $(ui.helper), o = $(this).data("draggable").options; - if(t.css("zIndex")) o._zIndex = t.css("zIndex"); - t.css('zIndex', o.zIndex); - }, - stop: function(event, ui) { - var o = $(this).data("draggable").options; - if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex); - } -}); - -})(jQuery); -(function( $, undefined ) { - -$.widget("ui.droppable", { - version: "1.9.2", - widgetEventPrefix: "drop", - options: { - accept: '*', - activeClass: false, - addClasses: true, - greedy: false, - hoverClass: false, - scope: 'default', - tolerance: 'intersect' - }, - _create: function() { - - var o = this.options, accept = o.accept; - this.isover = 0; this.isout = 1; - - this.accept = $.isFunction(accept) ? accept : function(d) { - return d.is(accept); - }; - - //Store the droppable's proportions - this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; - - // Add the reference and positions to the manager - $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; - $.ui.ddmanager.droppables[o.scope].push(this); - - (o.addClasses && this.element.addClass("ui-droppable")); - - }, - - _destroy: function() { - var drop = $.ui.ddmanager.droppables[this.options.scope]; - for ( var i = 0; i < drop.length; i++ ) - if ( drop[i] == this ) - drop.splice(i, 1); - - this.element.removeClass("ui-droppable ui-droppable-disabled"); - }, - - _setOption: function(key, value) { - - if(key == 'accept') { - this.accept = $.isFunction(value) ? value : function(d) { - return d.is(value); - }; - } - $.Widget.prototype._setOption.apply(this, arguments); - }, - - _activate: function(event) { - var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) this.element.addClass(this.options.activeClass); - (draggable && this._trigger('activate', event, this.ui(draggable))); - }, - - _deactivate: function(event) { - var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) this.element.removeClass(this.options.activeClass); - (draggable && this._trigger('deactivate', event, this.ui(draggable))); - }, - - _over: function(event) { - - var draggable = $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element - - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) this.element.addClass(this.options.hoverClass); - this._trigger('over', event, this.ui(draggable)); - } - - }, - - _out: function(event) { - - var draggable = $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element - - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); - this._trigger('out', event, this.ui(draggable)); - } - - }, - - _drop: function(event,custom) { - - var draggable = custom || $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element - - var childrenIntersection = false; - this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { - var inst = $.data(this, 'droppable'); - if( - inst.options.greedy - && !inst.options.disabled - && inst.options.scope == draggable.options.scope - && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) - && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) - ) { childrenIntersection = true; return false; } - }); - if(childrenIntersection) return false; - - if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.activeClass) this.element.removeClass(this.options.activeClass); - if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); - this._trigger('drop', event, this.ui(draggable)); - return this.element; - } - - return false; - - }, - - ui: function(c) { - return { - draggable: (c.currentItem || c.element), - helper: c.helper, - position: c.position, - offset: c.positionAbs - }; - } - -}); - -$.ui.intersect = function(draggable, droppable, toleranceMode) { - - if (!droppable.offset) return false; - - var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, - y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height; - var l = droppable.offset.left, r = l + droppable.proportions.width, - t = droppable.offset.top, b = t + droppable.proportions.height; - - switch (toleranceMode) { - case 'fit': - return (l <= x1 && x2 <= r - && t <= y1 && y2 <= b); - break; - case 'intersect': - return (l < x1 + (draggable.helperProportions.width / 2) // Right Half - && x2 - (draggable.helperProportions.width / 2) < r // Left Half - && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half - && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half - break; - case 'pointer': - var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), - draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), - isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width); - return isOver; - break; - case 'touch': - return ( - (y1 >= t && y1 <= b) || // Top edge touching - (y2 >= t && y2 <= b) || // Bottom edge touching - (y1 < t && y2 > b) // Surrounded vertically - ) && ( - (x1 >= l && x1 <= r) || // Left edge touching - (x2 >= l && x2 <= r) || // Right edge touching - (x1 < l && x2 > r) // Surrounded horizontally - ); - break; - default: - return false; - break; - } - -}; - -/* - This manager tracks offsets of draggables and droppables -*/ -$.ui.ddmanager = { - current: null, - droppables: { 'default': [] }, - prepareOffsets: function(t, event) { - - var m = $.ui.ddmanager.droppables[t.options.scope] || []; - var type = event ? event.type : null; // workaround for #2317 - var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); - - droppablesLoop: for (var i = 0; i < m.length; i++) { - - if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted - for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item - m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue - - if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables - - m[i].offset = m[i].element.offset(); - m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; - - } - - }, - drop: function(draggable, event) { - - var dropped = false; - $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { - - if(!this.options) return; - if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) - dropped = this._drop.call(this, event) || dropped; - - if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - this.isout = 1; this.isover = 0; - this._deactivate.call(this, event); - } - - }); - return dropped; - - }, - dragStart: function( draggable, event ) { - //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) - draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() { - if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); - }); - }, - drag: function(draggable, event) { - - //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. - if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event); - - //Run through all droppables and check their positions based on specific tolerance options - $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { - - if(this.options.disabled || this.greedyChild || !this.visible) return; - var intersects = $.ui.intersect(draggable, this, this.options.tolerance); - - var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null); - if(!c) return; - - var parentInstance; - if (this.options.greedy) { - // find droppable parents with same scope - var scope = this.options.scope; - var parent = this.element.parents(':data(droppable)').filter(function () { - return $.data(this, 'droppable').options.scope === scope; - }); - - if (parent.length) { - parentInstance = $.data(parent[0], 'droppable'); - parentInstance.greedyChild = (c == 'isover' ? 1 : 0); - } - } - - // we just moved into a greedy child - if (parentInstance && c == 'isover') { - parentInstance['isover'] = 0; - parentInstance['isout'] = 1; - parentInstance._out.call(parentInstance, event); - } - - this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0; - this[c == "isover" ? "_over" : "_out"].call(this, event); - - // we just moved out of a greedy child - if (parentInstance && c == 'isout') { - parentInstance['isout'] = 0; - parentInstance['isover'] = 1; - parentInstance._over.call(parentInstance, event); - } - }); - - }, - dragStop: function( draggable, event ) { - draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" ); - //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) - if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); - } -}; - -})(jQuery); -;(jQuery.effects || (function($, undefined) { - -var backCompat = $.uiBackCompat !== false, - // prefix used for storing data on .data() - dataSpace = "ui-effects-"; - -$.effects = { - effect: {} -}; - -/*! - * jQuery Color Animations v2.0.0 - * http://jquery.com/ - * - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * Date: Mon Aug 13 13:41:02 2012 -0500 - */ -(function( jQuery, undefined ) { - - var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "), - - // plusequals test for += 100 -= 100 - rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - // a set of RE's that can match strings and generate color tuples. - stringParsers = [{ - re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ], - execResult[ 3 ], - execResult[ 4 ] - ]; - } - }, { - re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ] * 2.55, - execResult[ 2 ] * 2.55, - execResult[ 3 ] * 2.55, - execResult[ 4 ] - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ], 16 ) - ]; - } - }, { - // this regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) - ]; - } - }, { - re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, - space: "hsla", - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ] / 100, - execResult[ 3 ] / 100, - execResult[ 4 ] - ]; - } - }], - - // jQuery.Color( ) - color = jQuery.Color = function( color, green, blue, alpha ) { - return new jQuery.Color.fn.parse( color, green, blue, alpha ); - }, - spaces = { - 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" - } - } - } - }, - propTypes = { - "byte": { - floor: true, - max: 255 - }, - "percent": { - max: 1 - }, - "degrees": { - mod: 360, - floor: true - } - }, - support = color.support = {}, - - // element for support tests - supportElem = jQuery( "

    " )[ 0 ], - - // colors = jQuery.Color.names - colors, - - // local aliases of functions called often - each = jQuery.each; - -// determine rgba support immediately -supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; -support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; - -// define cache name and alpha properties -// for rgba and hsla spaces -each( spaces, function( spaceName, space ) { - space.cache = "_" + spaceName; - space.props.alpha = { - idx: 3, - type: "percent", - def: 1 - }; -}); - -function clamp( value, prop, allowEmpty ) { - var type = propTypes[ prop.type ] || {}; - - if ( value == null ) { - return (allowEmpty || !prop.def) ? null : prop.def; - } - - // ~~ is an short way of doing floor for positive numbers - value = type.floor ? ~~value : parseFloat( value ); - - // IE will pass in empty strings as value for alpha, - // which will hit this case - if ( isNaN( value ) ) { - return prop.def; - } - - if ( type.mod ) { - // we add mod before modding to make sure that negatives values - // get converted properly: -10 -> 350 - return (value + type.mod) % type.mod; - } - - // for now all property types without mod have min and max - return 0 > value ? 0 : type.max < value ? type.max : value; -} - -function stringParse( string ) { - var inst = color(), - rgba = inst._rgba = []; - - string = string.toLowerCase(); - - each( stringParsers, function( i, parser ) { - var parsed, - match = parser.re.exec( string ), - values = match && parser.parse( match ), - spaceName = parser.space || "rgba"; - - if ( values ) { - parsed = inst[ spaceName ]( values ); - - // if this was an rgba parse the assignment might happen twice - // oh well.... - inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; - rgba = inst._rgba = parsed._rgba; - - // exit each( stringParsers ) here because we matched - return false; - } - }); - - // Found a stringParser that handled it - if ( rgba.length ) { - - // if this came from a parsed string, force "transparent" when alpha is 0 - // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) - if ( rgba.join() === "0,0,0,0" ) { - jQuery.extend( rgba, colors.transparent ); - } - return inst; - } - - // named colors - return colors[ string ]; -} - -color.fn = jQuery.extend( color.prototype, { - parse: function( red, green, blue, alpha ) { - if ( red === undefined ) { - this._rgba = [ null, null, null, null ]; - return this; - } - if ( red.jquery || red.nodeType ) { - red = jQuery( red ).css( green ); - green = undefined; - } - - var inst = this, - type = jQuery.type( red ), - rgba = this._rgba = []; - - // more than 1 argument specified - assume ( red, green, blue, alpha ) - if ( green !== undefined ) { - red = [ red, green, blue, alpha ]; - type = "array"; - } - - if ( type === "string" ) { - return this.parse( stringParse( red ) || colors._default ); - } - - if ( type === "array" ) { - each( spaces.rgba.props, function( key, prop ) { - rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); - }); - return this; - } - - if ( type === "object" ) { - if ( red instanceof color ) { - each( spaces, function( spaceName, space ) { - if ( red[ space.cache ] ) { - inst[ space.cache ] = red[ space.cache ].slice(); - } - }); - } else { - each( spaces, function( spaceName, space ) { - var cache = space.cache; - each( space.props, function( key, prop ) { - - // if the cache doesn't exist, and we know how to convert - if ( !inst[ cache ] && space.to ) { - - // if the value was null, we don't need to copy it - // if the key was alpha, we don't need to copy it either - if ( key === "alpha" || red[ key ] == null ) { - return; - } - inst[ cache ] = space.to( inst._rgba ); - } - - // this is the only case where we allow nulls for ALL properties. - // call clamp with alwaysAllowEmpty - inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); - }); - - // everything defined but alpha? - if ( inst[ cache ] && $.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { - // use the default of 1 - inst[ cache ][ 3 ] = 1; - if ( space.from ) { - inst._rgba = space.from( inst[ cache ] ); - } - } - }); - } - return this; - } - }, - is: function( compare ) { - var is = color( compare ), - same = true, - inst = this; - - each( spaces, function( _, space ) { - var localCache, - isCache = is[ space.cache ]; - if (isCache) { - localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; - each( space.props, function( _, prop ) { - if ( isCache[ prop.idx ] != null ) { - same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); - return same; - } - }); - } - return same; - }); - return same; - }, - _space: function() { - var used = [], - inst = this; - each( spaces, function( spaceName, space ) { - if ( inst[ space.cache ] ) { - used.push( spaceName ); - } - }); - return used.pop(); - }, - transition: function( other, distance ) { - var end = color( other ), - spaceName = end._space(), - space = spaces[ spaceName ], - startColor = this.alpha() === 0 ? color( "transparent" ) : this, - start = startColor[ space.cache ] || space.to( startColor._rgba ), - result = start.slice(); - - end = end[ space.cache ]; - each( space.props, function( key, prop ) { - var index = prop.idx, - startValue = start[ index ], - endValue = end[ index ], - type = propTypes[ prop.type ] || {}; - - // if null, don't override start value - if ( endValue === null ) { - return; - } - // if null - use end - if ( startValue === null ) { - result[ index ] = endValue; - } else { - if ( type.mod ) { - if ( endValue - startValue > type.mod / 2 ) { - startValue += type.mod; - } else if ( startValue - endValue > type.mod / 2 ) { - startValue -= type.mod; - } - } - result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); - } - }); - return this[ spaceName ]( result ); - }, - blend: function( opaque ) { - // if we are already opaque - return ourself - if ( this._rgba[ 3 ] === 1 ) { - return this; - } - - var rgb = this._rgba.slice(), - a = rgb.pop(), - blend = color( opaque )._rgba; - - return color( jQuery.map( rgb, function( v, i ) { - return ( 1 - a ) * blend[ i ] + a * v; - })); - }, - toRgbaString: function() { - var prefix = "rgba(", - rgba = jQuery.map( this._rgba, function( v, i ) { - return v == null ? ( i > 2 ? 1 : 0 ) : v; - }); - - if ( rgba[ 3 ] === 1 ) { - rgba.pop(); - prefix = "rgb("; - } - - return prefix + rgba.join() + ")"; - }, - toHslaString: function() { - var prefix = "hsla(", - hsla = jQuery.map( this.hsla(), function( v, i ) { - if ( v == null ) { - v = i > 2 ? 1 : 0; - } - - // catch 1 and 2 - if ( i && i < 3 ) { - v = Math.round( v * 100 ) + "%"; - } - return v; - }); - - if ( hsla[ 3 ] === 1 ) { - hsla.pop(); - prefix = "hsl("; - } - return prefix + hsla.join() + ")"; - }, - toHexString: function( includeAlpha ) { - var rgba = this._rgba.slice(), - alpha = rgba.pop(); - - if ( includeAlpha ) { - rgba.push( ~~( alpha * 255 ) ); - } - - return "#" + jQuery.map( rgba, function( v ) { - - // default to 0 when nulls exist - v = ( v || 0 ).toString( 16 ); - return v.length === 1 ? "0" + v : v; - }).join(""); - }, - toString: function() { - return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); - } -}); -color.fn.parse.prototype = color.fn; - -// hsla conversions adapted from: -// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 - -function hue2rgb( p, q, h ) { - h = ( h + 1 ) % 1; - if ( h * 6 < 1 ) { - return p + (q - p) * h * 6; - } - if ( h * 2 < 1) { - return q; - } - if ( h * 3 < 2 ) { - return p + (q - p) * ((2/3) - h) * 6; - } - return p; -} - -spaces.hsla.to = function ( rgba ) { - if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { - return [ null, null, null, rgba[ 3 ] ]; - } - var r = rgba[ 0 ] / 255, - g = rgba[ 1 ] / 255, - b = rgba[ 2 ] / 255, - a = rgba[ 3 ], - max = Math.max( r, g, b ), - min = Math.min( r, g, b ), - diff = max - min, - add = max + min, - l = add * 0.5, - h, s; - - if ( min === max ) { - h = 0; - } else if ( r === max ) { - h = ( 60 * ( g - b ) / diff ) + 360; - } else if ( g === max ) { - h = ( 60 * ( b - r ) / diff ) + 120; - } else { - h = ( 60 * ( r - g ) / diff ) + 240; - } - - if ( l === 0 || l === 1 ) { - s = l; - } else if ( l <= 0.5 ) { - s = diff / add; - } else { - s = diff / ( 2 - add ); - } - return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; -}; - -spaces.hsla.from = function ( hsla ) { - if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { - return [ null, null, null, hsla[ 3 ] ]; - } - var h = hsla[ 0 ] / 360, - s = hsla[ 1 ], - l = hsla[ 2 ], - a = hsla[ 3 ], - q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, - p = 2 * l - q; - - return [ - Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), - Math.round( hue2rgb( p, q, h ) * 255 ), - Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), - a - ]; -}; - - -each( spaces, function( spaceName, space ) { - var props = space.props, - cache = space.cache, - to = space.to, - from = space.from; - - // makes rgba() and hsla() - color.fn[ spaceName ] = function( value ) { - - // generate a cache for this space if it doesn't exist - if ( to && !this[ cache ] ) { - this[ cache ] = to( this._rgba ); - } - if ( value === undefined ) { - return this[ cache ].slice(); - } - - var ret, - type = jQuery.type( value ), - arr = ( type === "array" || type === "object" ) ? value : arguments, - local = this[ cache ].slice(); - - each( props, function( key, prop ) { - var val = arr[ type === "object" ? key : prop.idx ]; - if ( val == null ) { - val = local[ prop.idx ]; - } - local[ prop.idx ] = clamp( val, prop ); - }); - - if ( from ) { - ret = color( from( local ) ); - ret[ cache ] = local; - return ret; - } else { - return color( local ); - } - }; - - // makes red() green() blue() alpha() hue() saturation() lightness() - each( props, function( key, prop ) { - // alpha is included in more than one space - if ( color.fn[ key ] ) { - return; - } - color.fn[ key ] = function( value ) { - var vtype = jQuery.type( value ), - fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), - local = this[ fn ](), - cur = local[ prop.idx ], - match; - - if ( vtype === "undefined" ) { - return cur; - } - - if ( vtype === "function" ) { - value = value.call( this, cur ); - vtype = jQuery.type( value ); - } - if ( value == null && prop.empty ) { - return this; - } - if ( vtype === "string" ) { - match = rplusequals.exec( value ); - if ( match ) { - value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); - } - } - local[ prop.idx ] = value; - return this[ fn ]( local ); - }; - }); -}); - -// add .fx.step functions -each( stepHooks, function( i, hook ) { - jQuery.cssHooks[ hook ] = { - set: function( elem, value ) { - var parsed, curElem, - backgroundColor = ""; - - if ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) { - value = color( parsed || value ); - if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { - curElem = hook === "backgroundColor" ? elem.parentNode : elem; - while ( - (backgroundColor === "" || backgroundColor === "transparent") && - curElem && curElem.style - ) { - try { - backgroundColor = jQuery.css( curElem, "backgroundColor" ); - curElem = curElem.parentNode; - } catch ( e ) { - } - } - - value = value.blend( backgroundColor && backgroundColor !== "transparent" ? - backgroundColor : - "_default" ); - } - - value = value.toRgbaString(); - } - try { - elem.style[ hook ] = value; - } catch( error ) { - // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' - } - } - }; - jQuery.fx.step[ hook ] = function( fx ) { - if ( !fx.colorInit ) { - fx.start = color( fx.elem, hook ); - fx.end = color( fx.end ); - fx.colorInit = true; - } - jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); - }; -}); - -jQuery.cssHooks.borderColor = { - expand: function( value ) { - var expanded = {}; - - each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { - expanded[ "border" + part + "Color" ] = value; - }); - return expanded; - } -}; - -// Basic color names only. -// Usage of any of the other color names requires adding yourself or including -// jquery.color.svg-names.js. -colors = jQuery.Color.names = { - // 4.1. Basic color keywords - 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", - - // 4.2.3. "transparent" color keyword - transparent: [ null, null, null, 0 ], - - _default: "#ffffff" -}; - -})( jQuery ); - - - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ -(function() { - -var classAnimationActions = [ "add", "remove", "toggle" ], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - -$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; -}); - -function getElementStyles() { - var style = this.ownerDocument.defaultView ? - this.ownerDocument.defaultView.getComputedStyle( this, null ) : - this.currentStyle, - newStyle = {}, - key, - len; - - // webkit enumerates style porperties - if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { - len = style.length; - while ( len-- ) { - key = style[ len ]; - if ( typeof style[ key ] === "string" ) { - newStyle[ $.camelCase( key ) ] = style[ key ]; - } - } - } else { - for ( key in style ) { - if ( typeof style[ key ] === "string" ) { - newStyle[ key ] = style[ key ]; - } - } - } - - return newStyle; -} - - -function styleDifference( oldStyle, newStyle ) { - var diff = {}, - name, value; - - for ( name in newStyle ) { - value = newStyle[ name ]; - if ( oldStyle[ name ] !== value ) { - if ( !shorthandStyles[ name ] ) { - if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { - diff[ name ] = value; - } - } - } - } - - return diff; -} - -$.effects.animateClass = function( value, duration, easing, callback ) { - var o = $.speed( duration, easing, callback ); - - return this.queue( function() { - var animated = $( this ), - baseClass = animated.attr( "class" ) || "", - applyClassChange, - allAnimations = o.children ? animated.find( "*" ).andSelf() : animated; - - // map the animated objects to store the original styles. - allAnimations = allAnimations.map(function() { - var el = $( this ); - return { - el: el, - start: getElementStyles.call( this ) - }; - }); - - // apply class change - applyClassChange = function() { - $.each( classAnimationActions, function(i, action) { - if ( value[ action ] ) { - animated[ action + "Class" ]( value[ action ] ); - } - }); - }; - applyClassChange(); - - // map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map(function() { - this.end = getElementStyles.call( this.el[ 0 ] ); - this.diff = styleDifference( this.start, this.end ); - return this; - }); - - // apply original class - animated.attr( "class", baseClass ); - - // map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map(function() { - var styleInfo = this, - dfd = $.Deferred(), - opts = jQuery.extend({}, o, { - queue: false, - complete: function() { - dfd.resolve( styleInfo ); - } - }); - - this.el.animate( this.diff, opts ); - return dfd.promise(); - }); - - // once all animations have completed: - $.when.apply( $, allAnimations.get() ).done(function() { - - // set the final class - applyClassChange(); - - // for each animated element, - // clear all css properties that were animated - $.each( arguments, function() { - var el = this.el; - $.each( this.diff, function(key) { - el.css( key, '' ); - }); - }); - - // this is guarnteed to be there if you use jQuery.speed() - // it also handles dequeuing the next anim... - o.complete.call( animated[ 0 ] ); - }); - }); -}; - -$.fn.extend({ - _addClass: $.fn.addClass, - addClass: function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.call( this, - { add: classNames }, speed, easing, callback ) : - this._addClass( classNames ); - }, - - _removeClass: $.fn.removeClass, - removeClass: function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.call( this, - { remove: classNames }, speed, easing, callback ) : - this._removeClass( classNames ); - }, - - _toggleClass: $.fn.toggleClass, - toggleClass: function( classNames, force, speed, easing, callback ) { - if ( typeof force === "boolean" || force === undefined ) { - if ( !speed ) { - // without speed parameter - return this._toggleClass( classNames, force ); - } else { - return $.effects.animateClass.call( this, - (force ? { add: classNames } : { remove: classNames }), - speed, easing, callback ); - } - } else { - // without force parameter - return $.effects.animateClass.call( this, - { toggle: classNames }, force, speed, easing ); - } - }, - - switchClass: function( remove, add, speed, easing, callback) { - return $.effects.animateClass.call( this, { - add: add, - remove: remove - }, speed, easing, callback ); - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -(function() { - -$.extend( $.effects, { - version: "1.9.2", - - // Saves a set of properties in a data storage - save: function( element, set ) { - for( var i=0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); - } - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - var val, i; - for( i=0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - val = element.data( dataSpace + set[ i ] ); - // support: jQuery 1.6.2 - // http://bugs.jquery.com/ticket/9917 - // jQuery 1.6.2 incorrectly returns undefined for any falsy value. - // We can't differentiate between "" and 0 here, so we just assume - // empty string since it's likely to be a more common value... - if ( val === undefined ) { - val = ""; - } - element.css( set[ i ], val ); - } - } - }, - - setMode: function( el, mode ) { - if (mode === "toggle") { - mode = el.is( ":hidden" ) ? "show" : "hide"; - } - return mode; - }, - - // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash - getBaseline: function( origin, original ) { - var y, x; - switch ( origin[ 0 ] ) { - case "top": y = 0; break; - case "middle": y = 0.5; break; - case "bottom": y = 1; break; - default: y = origin[ 0 ] / original.height; - } - switch ( origin[ 1 ] ) { - case "left": x = 0; break; - case "center": x = 0.5; break; - case "right": x = 1; break; - default: x = origin[ 1 ] / original.width; - } - return { - x: x, - y: y - }; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // if the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" )) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), - "float": element.css( "float" ) - }, - wrapper = $( "

    " ) - .addClass( "ui-effects-wrapper" ) - .css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }), - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - // support: Firefox - // Firefox incorrectly exposes anonymous content - // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 - try { - active.id; - } catch( e ) { - active = document.body; - } - - element.wrap( wrapper ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css({ position: "relative" }); - element.css({ position: "relative" }); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - }); - $.each([ "top", "left", "bottom", "right" ], function(i, pos) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - }); - element.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - element.css(size); - - return wrapper.css( props ).show(); - }, - - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - } - - - return element; - }, - - setTransition: function( element, list, factor, value ) { - value = value || {}; - $.each( list, function( i, x ) { - var unit = element.cssUnit( x ); - if ( unit[ 0 ] > 0 ) { - value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; - } - }); - return value; - } -}); - -// return an effect options object for the given parameters: -function _normalizeArguments( effect, options, speed, callback ) { - - // allow passing all options as the first parameter - if ( $.isPlainObject( effect ) ) { - options = effect; - effect = effect.effect; - } - - // convert to an object - effect = { effect: effect }; - - // catch (effect, null, ...) - if ( options == null ) { - options = {}; - } - - // catch (effect, callback) - if ( $.isFunction( options ) ) { - callback = options; - speed = null; - options = {}; - } - - // catch (effect, speed, ?) - if ( typeof options === "number" || $.fx.speeds[ options ] ) { - callback = speed; - speed = options; - options = {}; - } - - // catch (effect, options, callback) - if ( $.isFunction( speed ) ) { - callback = speed; - speed = null; - } - - // add options to effect - if ( options ) { - $.extend( effect, options ); - } - - speed = speed || options.duration; - effect.duration = $.fx.off ? 0 : - typeof speed === "number" ? speed : - speed in $.fx.speeds ? $.fx.speeds[ speed ] : - $.fx.speeds._default; - - effect.complete = callback || options.complete; - - return effect; -} - -function standardSpeed( speed ) { - // valid standard speeds - if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { - return true; - } - - // invalid strings - treat as "normal" speed - if ( typeof speed === "string" && !$.effects.effect[ speed ] ) { - // TODO: remove in 2.0 (#7115) - if ( backCompat && $.effects[ speed ] ) { - return false; - } - return true; - } - - return false; -} - -$.fn.extend({ - effect: function( /* effect, options, speed, callback */ ) { - var args = _normalizeArguments.apply( this, arguments ), - mode = args.mode, - queue = args.queue, - effectMethod = $.effects.effect[ args.effect ], - - // DEPRECATED: remove in 2.0 (#7115) - oldEffectMethod = !effectMethod && backCompat && $.effects[ args.effect ]; - - if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) { - // delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args.duration, args.complete ); - } else { - return this.each( function() { - if ( args.complete ) { - args.complete.call( this ); - } - }); - } - } - - function run( next ) { - var elem = $( this ), - complete = args.complete, - mode = args.mode; - - function done() { - if ( $.isFunction( complete ) ) { - complete.call( elem[0] ); - } - if ( $.isFunction( next ) ) { - next(); - } - } - - // if the element is hiddden and mode is hide, - // or element is visible and mode is show - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - done(); - } else { - effectMethod.call( elem[0], args, done ); - } - } - - // TODO: remove this check in 2.0, effectMethod will always be true - if ( effectMethod ) { - return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); - } else { - // DEPRECATED: remove in 2.0 (#7115) - return oldEffectMethod.call(this, { - options: args, - duration: args.duration, - callback: args.complete, - mode: args.mode - }); - } - }, - - _show: $.fn.show, - show: function( speed ) { - if ( standardSpeed( speed ) ) { - return this._show.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "show"; - return this.effect.call( this, args ); - } - }, - - _hide: $.fn.hide, - hide: function( speed ) { - if ( standardSpeed( speed ) ) { - return this._hide.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "hide"; - return this.effect.call( this, args ); - } - }, - - // jQuery core overloads toggle and creates _toggle - __toggle: $.fn.toggle, - toggle: function( speed ) { - if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { - return this.__toggle.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "toggle"; - return this.effect.call( this, args ); - } - }, - - // helper functions - cssUnit: function(key) { - var style = this.css( key ), - val = []; - - $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { - if ( style.indexOf( unit ) > 0 ) { - val = [ parseFloat( style ), unit ]; - } - }); - return val; - } -}); - -})(); - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -(function() { - -// based on easing equations from Robert Penner (http://www.robertpenner.com/easing) - -var baseEasings = {}; - -$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { - baseEasings[ name ] = function( p ) { - return Math.pow( p, i + 2 ); - }; -}); - -$.extend( baseEasings, { - Sine: function ( p ) { - return 1 - Math.cos( p * Math.PI / 2 ); - }, - Circ: function ( p ) { - return 1 - Math.sqrt( 1 - p * p ); - }, - Elastic: function( p ) { - return p === 0 || p === 1 ? p : - -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); - }, - Back: function( p ) { - return p * p * ( 3 * p - 2 ); - }, - Bounce: function ( p ) { - var pow2, - bounce = 4; - - while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} - return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); - } -}); - -$.each( baseEasings, function( name, easeIn ) { - $.easing[ "easeIn" + name ] = easeIn; - $.easing[ "easeOut" + name ] = function( p ) { - return 1 - easeIn( 1 - p ); - }; - $.easing[ "easeInOut" + name ] = function( p ) { - return p < 0.5 ? - easeIn( p * 2 ) / 2 : - 1 - easeIn( p * -2 + 2 ) / 2; - }; -}); - -})(); - -})(jQuery)); -(function( $, undefined ) { - -var rvertical = /up|down|vertical/, - rpositivemotion = /up|left|vertical|horizontal/; - -$.effects.effect.blind = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - direction = o.direction || "up", - vertical = rvertical.test( direction ), - ref = vertical ? "height" : "width", - ref2 = vertical ? "top" : "left", - motion = rpositivemotion.test( direction ), - animation = {}, - show = mode === "show", - wrapper, distance, margin; - - // if already wrapped, the wrapper's properties are my property. #6245 - if ( el.parent().is( ".ui-effects-wrapper" ) ) { - $.effects.save( el.parent(), props ); - } else { - $.effects.save( el, props ); - } - el.show(); - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - distance = wrapper[ ref ](); - margin = parseFloat( wrapper.css( ref2 ) ) || 0; - - animation[ ref ] = show ? distance : 0; - if ( !motion ) { - el - .css( vertical ? "bottom" : "right", 0 ) - .css( vertical ? "top" : "left", "auto" ) - .css({ position: "absolute" }); - - animation[ ref2 ] = show ? margin : distance + margin; - } - - // start at 0 if we are showing - if ( show ) { - wrapper.css( ref, 0 ); - if ( ! motion ) { - wrapper.css( ref2, margin + distance ); - } - } - - // Animate - wrapper.animate( animation, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.bounce = function( o, done ) { - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - - // defaults: - mode = $.effects.setMode( el, o.mode || "effect" ), - hide = mode === "hide", - show = mode === "show", - direction = o.direction || "up", - distance = o.distance, - times = o.times || 5, - - // number of internal animations - anims = times * 2 + ( show || hide ? 1 : 0 ), - speed = o.duration / anims, - easing = o.easing, - - // utility: - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ), - i, - upAnim, - downAnim, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - // Avoid touching opacity to prevent clearType and PNG issues in IE - if ( show || hide ) { - props.push( "opacity" ); - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); // Create Wrapper - - // default distance for the BIGGEST bounce is the outer Distance / 3 - if ( !distance ) { - distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; - } - - if ( show ) { - downAnim = { opacity: 1 }; - downAnim[ ref ] = 0; - - // if we are showing, force opacity 0 and set the initial position - // then do the "first" animation - el.css( "opacity", 0 ) - .css( ref, motion ? -distance * 2 : distance * 2 ) - .animate( downAnim, speed, easing ); - } - - // start at the smallest distance if we are hiding - if ( hide ) { - distance = distance / Math.pow( 2, times - 1 ); - } - - downAnim = {}; - downAnim[ ref ] = 0; - // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here - for ( i = 0; i < times; i++ ) { - upAnim = {}; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ) - .animate( downAnim, speed, easing ); - - distance = hide ? distance * 2 : distance / 2; - } - - // Last Bounce when Hiding - if ( hide ) { - upAnim = { opacity: 0 }; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ); - } - - el.queue(function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.clip = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "vertical", - vert = direction === "vertical", - size = vert ? "height" : "width", - position = vert ? "top" : "left", - animation = {}, - wrapper, animate, distance; - - // Save & Show - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - animate = ( el[0].tagName === "IMG" ) ? wrapper : el; - distance = animate[ size ](); - - // Shift - if ( show ) { - animate.css( size, 0 ); - animate.css( position, distance / 2 ); - } - - // Create Animation Object: - animation[ size ] = show ? distance : 0; - animation[ position ] = show ? 0 : distance / 2; - - // Animate - animate.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( !show ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.drop = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", - animation = { - opacity: show ? 1 : 0 - }, - distance; - - // Adjust - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; - - if ( show ) { - el - .css( "opacity", 0 ) - .css( ref, motion === "pos" ? -distance : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( motion === "pos" ? "+=" : "-=" ) : - ( motion === "pos" ? "-=" : "+=" ) ) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.explode = function( o, done ) { - - var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, - cells = rows, - el = $( this ), - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - - // show and then visibility:hidden the element before calculating offset - offset = el.show().css( "visibility", "hidden" ).offset(), - - // width and height of a piece - width = Math.ceil( el.outerWidth() / cells ), - height = Math.ceil( el.outerHeight() / rows ), - pieces = [], - - // loop - i, j, left, top, mx, my; - - // children animate complete: - function childComplete() { - pieces.push( this ); - if ( pieces.length === rows * cells ) { - animComplete(); - } - } - - // clone the element for each row and cell. - for( i = 0; i < rows ; i++ ) { // ===> - top = offset.top + i * height; - my = i - ( rows - 1 ) / 2 ; - - for( j = 0; j < cells ; j++ ) { // ||| - left = offset.left + j * width; - mx = j - ( cells - 1 ) / 2 ; - - // Create a clone of the now hidden main element that will be absolute positioned - // within a wrapper div off the -left and -top equal to size of our pieces - el - .clone() - .appendTo( "body" ) - .wrap( "
    " ) - .css({ - position: "absolute", - visibility: "visible", - left: -j * width, - top: -i * height - }) - - // select the wrapper - make it overflow: hidden and absolute positioned based on - // where the original was located +left and +top equal to the size of pieces - .parent() - .addClass( "ui-effects-explode" ) - .css({ - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - }).animate({ - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, o.duration || 500, o.easing, childComplete ); - } - } - - function animComplete() { - el.css({ - visibility: "visible" - }); - $( pieces ).remove(); - if ( !show ) { - el.hide(); - } - done(); - } -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.fade = function( o, done ) { - var el = $( this ), - mode = $.effects.setMode( el, o.mode || "toggle" ); - - el.animate({ - opacity: mode - }, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: done - }); -}; - -})( jQuery ); -(function( $, undefined ) { - -$.effects.effect.fold = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - hide = mode === "hide", - size = o.size || 15, - percent = /([0-9]+)%/.exec( size ), - horizFirst = !!o.horizFirst, - widthFirst = show !== horizFirst, - ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], - duration = o.duration / 2, - wrapper, distance, - animation1 = {}, - animation2 = {}; - - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - distance = widthFirst ? - [ wrapper.width(), wrapper.height() ] : - [ wrapper.height(), wrapper.width() ]; - - if ( percent ) { - size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; - } - if ( show ) { - wrapper.css( horizFirst ? { - height: 0, - width: size - } : { - height: size, - width: 0 - }); - } - - // Animation - animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; - animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; - - // Animate - wrapper - .animate( animation1, duration, o.easing ) - .animate( animation2, duration, o.easing, function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.highlight = function( o, done ) { - var elem = $( this ), - props = [ "backgroundImage", "backgroundColor", "opacity" ], - mode = $.effects.setMode( elem, o.mode || "show" ), - animation = { - backgroundColor: elem.css( "backgroundColor" ) - }; - - if (mode === "hide") { - animation.opacity = 0; - } - - $.effects.save( elem, props ); - - elem - .show() - .css({ - backgroundImage: "none", - backgroundColor: o.color || "#ffff99" - }) - .animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - elem.hide(); - } - $.effects.restore( elem, props ); - done(); - } - }); -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.pulsate = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "show" ), - show = mode === "show", - hide = mode === "hide", - showhide = ( show || mode === "hide" ), - - // showing or hiding leaves of the "last" animation - anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), - duration = o.duration / anims, - animateTo = 0, - queue = elem.queue(), - queuelen = queue.length, - i; - - if ( show || !elem.is(":visible")) { - elem.css( "opacity", 0 ).show(); - animateTo = 1; - } - - // anims - 1 opacity "toggles" - for ( i = 1; i < anims; i++ ) { - elem.animate({ - opacity: animateTo - }, duration, o.easing ); - animateTo = 1 - animateTo; - } - - elem.animate({ - opacity: animateTo - }, duration, o.easing); - - elem.queue(function() { - if ( hide ) { - elem.hide(); - } - done(); - }); - - // We just queued up "anims" animations, we need to put them next in the queue - if ( queuelen > 1 ) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - elem.dequeue(); -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.puff = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "hide" ), - hide = mode === "hide", - percent = parseInt( o.percent, 10 ) || 150, - factor = percent / 100, - original = { - height: elem.height(), - width: elem.width(), - outerHeight: elem.outerHeight(), - outerWidth: elem.outerWidth() - }; - - $.extend( o, { - effect: "scale", - queue: false, - fade: true, - mode: mode, - complete: done, - percent: hide ? percent : 100, - from: hide ? - original : - { - height: original.height * factor, - width: original.width * factor, - outerHeight: original.outerHeight * factor, - outerWidth: original.outerWidth * factor - } - }); - - elem.effect( o ); -}; - -$.effects.effect.scale = function( o, done ) { - - // Create element - var el = $( this ), - options = $.extend( true, {}, o ), - mode = $.effects.setMode( el, o.mode || "effect" ), - percent = parseInt( o.percent, 10 ) || - ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), - direction = o.direction || "both", - origin = o.origin, - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }, - factor = { - y: direction !== "horizontal" ? (percent / 100) : 1, - x: direction !== "vertical" ? (percent / 100) : 1 - }; - - // We are going to pass this effect to the size effect: - options.effect = "size"; - options.queue = false; - options.complete = done; - - // Set default origin and restore for show/hide - if ( mode !== "effect" ) { - options.origin = origin || ["middle","center"]; - options.restore = true; - } - - options.from = o.from || ( mode === "show" ? { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - } : original ); - options.to = { - height: original.height * factor.y, - width: original.width * factor.x, - outerHeight: original.outerHeight * factor.y, - outerWidth: original.outerWidth * factor.x - }; - - // Fade option to support puff - if ( options.fade ) { - if ( mode === "show" ) { - options.from.opacity = 0; - options.to.opacity = 1; - } - if ( mode === "hide" ) { - options.from.opacity = 1; - options.to.opacity = 0; - } - } - - // Animate - el.effect( options ); - -}; - -$.effects.effect.size = function( o, done ) { - - // Create element - var original, baseline, factor, - el = $( this ), - props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], - - // Always restore - props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], - - // Copy for children - props2 = [ "width", "height", "overflow" ], - cProps = [ "fontSize" ], - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], - - // Set options - mode = $.effects.setMode( el, o.mode || "effect" ), - restore = o.restore || mode !== "effect", - scale = o.scale || "both", - origin = o.origin || [ "middle", "center" ], - position = el.css( "position" ), - props = restore ? props0 : props1, - zero = { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - }; - - if ( mode === "show" ) { - el.show(); - } - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }; - - if ( o.mode === "toggle" && mode === "show" ) { - el.from = o.to || zero; - el.to = o.from || original; - } else { - el.from = o.from || ( mode === "show" ? zero : original ); - el.to = o.to || ( mode === "hide" ? zero : original ); - } - - // Set scaling factor - factor = { - from: { - y: el.from.height / original.height, - x: el.from.width / original.width - }, - to: { - y: el.to.height / original.height, - x: el.to.width / original.width - } - }; - - // Scale the css box - if ( scale === "box" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( vProps ); - el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - props = props.concat( hProps ); - el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); - el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); - } - } - - // Scale the content - if ( scale === "content" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( cProps ).concat( props2 ); - el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); - } - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - el.css( "overflow", "hidden" ).css( el.from ); - - // Adjust - if (origin) { // Calculate baseline shifts - baseline = $.effects.getBaseline( origin, original ); - el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; - el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; - el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; - el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; - } - el.css( el.from ); // set top & left - - // Animate - if ( scale === "content" || scale === "both" ) { // Scale the children - - // Add margins/font-size - vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); - hProps = hProps.concat([ "marginLeft", "marginRight" ]); - props2 = props0.concat(vProps).concat(hProps); - - el.find( "*[width]" ).each( function(){ - var child = $( this ), - c_original = { - height: child.height(), - width: child.width(), - outerHeight: child.outerHeight(), - outerWidth: child.outerWidth() - }; - if (restore) { - $.effects.save(child, props2); - } - - child.from = { - height: c_original.height * factor.from.y, - width: c_original.width * factor.from.x, - outerHeight: c_original.outerHeight * factor.from.y, - outerWidth: c_original.outerWidth * factor.from.x - }; - child.to = { - height: c_original.height * factor.to.y, - width: c_original.width * factor.to.x, - outerHeight: c_original.height * factor.to.y, - outerWidth: c_original.width * factor.to.x - }; - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); - child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); - child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); - } - - // Animate children - child.css( child.from ); - child.animate( child.to, o.duration, o.easing, function() { - - // Restore children - if ( restore ) { - $.effects.restore( child, props2 ); - } - }); - }); - } - - // Animate - el.animate( el.to, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( el.to.opacity === 0 ) { - el.css( "opacity", el.from.opacity ); - } - if( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - if ( !restore ) { - - // we need to calculate our new positioning based on the scaling - if ( position === "static" ) { - el.css({ - position: "relative", - top: el.to.top, - left: el.to.left - }); - } else { - $.each([ "top", "left" ], function( idx, pos ) { - el.css( pos, function( _, str ) { - var val = parseInt( str, 10 ), - toRef = idx ? el.to.left : el.to.top; - - // if original was "auto", recalculate the new value from wrapper - if ( str === "auto" ) { - return toRef + "px"; - } - - return val + toRef + "px"; - }); - }); - } - } - - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.shake = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "effect" ), - direction = o.direction || "left", - distance = o.distance || 20, - times = o.times || 3, - anims = times * 2 + 1, - speed = Math.round(o.duration/anims), - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - animation = {}, - animation1 = {}, - animation2 = {}, - i, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - // Animation - animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; - animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; - animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; - - // Animate - el.animate( animation, speed, o.easing ); - - // Shakes - for ( i = 1; i < times; i++ ) { - el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); - } - el - .animate( animation1, speed, o.easing ) - .animate( animation, speed / 2, o.easing ) - .queue(function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.slide = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "width", "height" ], - mode = $.effects.setMode( el, o.mode || "show" ), - show = mode === "show", - direction = o.direction || "left", - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - distance, - animation = {}; - - // Adjust - $.effects.save( el, props ); - el.show(); - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); - - $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - if ( show ) { - el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( positiveMotion ? "+=" : "-=") : - ( positiveMotion ? "-=" : "+=")) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - -})(jQuery); -(function( $, undefined ) { - -$.effects.effect.transfer = function( o, done ) { - var elem = $( this ), - target = $( o.to ), - targetFixed = target.css( "position" ) === "fixed", - body = $("body"), - fixTop = targetFixed ? body.scrollTop() : 0, - fixLeft = targetFixed ? body.scrollLeft() : 0, - endPosition = target.offset(), - animation = { - top: endPosition.top - fixTop , - left: endPosition.left - fixLeft , - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $( '
    ' ) - .appendTo( document.body ) - .addClass( o.className ) - .css({ - top: startPosition.top - fixTop , - left: startPosition.left - fixLeft , - height: elem.innerHeight(), - width: elem.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - }) - .animate( animation, o.duration, o.easing, function() { - transfer.remove(); - done(); - }); -}; - -})(jQuery); -(function( $, undefined ) { - -var mouseHandled = false; - -$.widget( "ui.menu", { - version: "1.9.2", - defaultElement: "