diff --git a/www/css/images/128/bar-alpha.png b/www/css/images/128/bar-alpha.png new file mode 100644 index 0000000..454dc9e Binary files /dev/null and b/www/css/images/128/bar-alpha.png differ diff --git a/www/css/images/128/bar.png b/www/css/images/128/bar.png new file mode 100644 index 0000000..32d0c8f Binary files /dev/null and b/www/css/images/128/bar.png differ diff --git a/www/css/images/128/map.png b/www/css/images/128/map.png new file mode 100644 index 0000000..37e8cae Binary files /dev/null and b/www/css/images/128/map.png differ diff --git a/www/css/images/bar-alpha.png b/www/css/images/bar-alpha.png new file mode 100644 index 0000000..2950dae Binary files /dev/null and b/www/css/images/bar-alpha.png differ diff --git a/www/css/images/bar-opacity.png b/www/css/images/bar-opacity.png new file mode 100644 index 0000000..e42ad08 Binary files /dev/null and b/www/css/images/bar-opacity.png differ diff --git a/www/css/images/bar-pointer.png b/www/css/images/bar-pointer.png new file mode 100644 index 0000000..6e980cf Binary files /dev/null and b/www/css/images/bar-pointer.png differ diff --git a/www/css/images/bar.png b/www/css/images/bar.png new file mode 100644 index 0000000..80eb2bb Binary files /dev/null and b/www/css/images/bar.png differ diff --git a/www/css/images/map-opacity.png b/www/css/images/map-opacity.png new file mode 100644 index 0000000..6756cee Binary files /dev/null and b/www/css/images/map-opacity.png differ diff --git a/www/css/images/map-pointer.png b/www/css/images/map-pointer.png new file mode 100644 index 0000000..6499296 Binary files /dev/null and b/www/css/images/map-pointer.png differ diff --git a/www/css/images/map.png b/www/css/images/map.png new file mode 100644 index 0000000..853d38c Binary files /dev/null and b/www/css/images/map.png differ diff --git a/www/css/images/preview-opacity.png b/www/css/images/preview-opacity.png new file mode 100644 index 0000000..0dd9a2f Binary files /dev/null and b/www/css/images/preview-opacity.png differ diff --git a/www/css/images/ui-colorpicker.png b/www/css/images/ui-colorpicker.png new file mode 100644 index 0000000..e244c68 Binary files /dev/null and b/www/css/images/ui-colorpicker.png differ diff --git a/www/css/jquery.colorpicker.css b/www/css/jquery.colorpicker.css new file mode 100644 index 0000000..11ecbe7 --- /dev/null +++ b/www/css/jquery.colorpicker.css @@ -0,0 +1,239 @@ +.ui-colorpicker, +.ui-dialog.ui-colorpicker { + width: auto; + white-space: nowrap; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.ui-colorpicker-inline { + position: static; +} + +.ui-colorpicker-buttonset { + float: left; + margin-left: .4em; +} + +.ui-colorpicker-buttonset .ui-button { + margin: .5em 0 .5em 0; + cursor: pointer; +} + +.ui-colorpicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} + +.ui-colorpicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} + +.ui-colorpicker-buttonpane button.ui-colorpicker-current { + float: left; +} + +.ui-colorpicker table { + width: 100%; + font-size: 100%; /* Reset browser table font-size */ + margin: 0; +} + +.ui-colorpicker table td { + vertical-align: top; +} + +.ui-colorpicker-padding-left { + padding-left: 10px; +} +.ui-colorpicker-padding-top { + padding-top: 10px; +} + +.ui-colorpicker-border { + border: 1px inset; + display: inline-block; +} + +/* Bar & map */ +.ui-colorpicker-map > *, +.ui-colorpicker-bar > * { + position: absolute; + cursor: crosshair; +} + +.ui-colorpicker-map-pointer, +.ui-colorpicker-bar-pointer { + position: absolute; + left: 0; +} + +/* Map */ +.ui-colorpicker-map, +.ui-colorpicker-map > * { + display: block; + width: 256px; + height: 256px; + overflow: hidden; +} + +.ui-colorpicker-map-layer-1, +.ui-colorpicker-map-layer-2 { + background: url(images/map.png) no-repeat; +} + +.ui-colorpicker-map-128, +.ui-colorpicker-map-128 > * { + width: 128px; + height: 128px; +} + +.ui-colorpicker-map-128 .ui-colorpicker-map-layer-1, +.ui-colorpicker-map-128 .ui-colorpicker-map-layer-2 { + background: url(images/128/map.png) no-repeat; +} + +.ui-colorpicker-map-layer-alpha { + background: url(images/map-opacity.png); +} + +.ui-colorpicker-map-pointer { + display: inline-block; + width: 15px; + height: 15px; + background: url(images/map-pointer.png) no-repeat; +} + +/* Bar */ +.ui-colorpicker-bar, +.ui-colorpicker-bar > * { + display: block; + width: 20px; + height: 256px; + overflow: hidden; + background-repeat: repeat-x; +} + +.ui-colorpicker-bar-128, +.ui-colorpicker-bar-128 > * { + height: 128px; +} + +.ui-colorpicker-bar-layer-1, +.ui-colorpicker-bar-layer-2, +.ui-colorpicker-bar-layer-3, +.ui-colorpicker-bar-layer-4 { + background: url(images/bar.png) repeat-x; +} + +.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-1, +.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-2, +.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-3, +.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-4 { + background: url(images/128/bar.png) repeat-x; +} + +.ui-colorpicker-bar-layer-alpha { + background: url(images/bar-opacity.png); +} + +.ui-colorpicker-bar-layer-alphabar { + background: url(images/bar-alpha.png); +} + +.ui-colorpicker-bar-128 .ui-colorpicker-bar-layer-alphabar { + background: url(images/128/bar-alpha.png); +} + +.ui-colorpicker-bar-pointer { + display: inline-block; + width: 20px; + height: 7px; + background: url(images/bar-pointer.png) no-repeat; +} + +/* Preview */ +.ui-colorpicker-preview { + text-align: center; + height: 20px; +} + +.ui-colorpicker-preview-initial { + cursor: pointer; +} + +.ui-colorpicker-preview-initial, +.ui-colorpicker-preview-current { + width: 50px; + height: 20px; + display: inline-block; +} + +.ui-colorpicker-preview-initial-alpha, +.ui-colorpicker-preview-current-alpha { + width: 50px; + height: 20px; + display: inline-block; + background: url(images/preview-opacity.png) repeat; +} + +/* Inputs */ +.ui-colorpicker-rgb label, +.ui-colorpicker-hsv label, +.ui-colorpicker-hsl label, +.ui-colorpicker-lab label, +.ui-colorpicker-cmyk label, +.ui-colorpicker-alpha label { + width: 1.5em; + display: inline-block; +} + +.ui-colorpicker-number { + margin: .1em; + width: 4em; +} + +/* Hex */ +.ui-colorpicker-hex { + text-align: center; +} + +/* Swatches */ +.ui-colorpicker-swatches { + height: 256px; + overflow: auto; + background-color: #f8f8f8; +} + +.ui-colorpicker-swatch { + cursor: pointer; + float: left; + width: 11px; + height: 11px; + border-right: 1px solid black; + border-bottom: 1px solid black; +} + +.ui-colorpicker-disabled { + opacity: .5; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; + filter: alpha(opacity=50); + pointer-events: none; +} + +.ui-colorpicker-disabled * { + cursor: default !important; +} \ No newline at end of file diff --git a/www/edit.html b/www/edit.html new file mode 100644 index 0000000..f371947 --- /dev/null +++ b/www/edit.html @@ -0,0 +1,120 @@ +Flot Edit
NameIDs
Line IDUpper value or IDLower value or IDColorFillØLØSTextText positionText offsetText sizeText color
Time Span
Aggregate
Appearance
>
Bar settings
Title
Options
Version: 1.9.2
\ No newline at end of file diff --git a/www/edit.html.map b/www/edit.html.map new file mode 100644 index 0000000..47983d9 --- /dev/null +++ b/www/edit.html.map @@ -0,0 +1 @@ +{"version":3,"sources":["edit.html"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"edit.html","sourcesContent":["\r\n\r\n Flot Edit\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
NameIDs
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Line IDUpper value or IDLower value or IDColorFillØLØSTextText positionText offsetText sizeText color
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Time Span
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Aggregate
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Appearance
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Bar settings
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Title
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Options
\r\n
\r\n
\r\n
Version: 1.9.2
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n"]} \ No newline at end of file diff --git a/www/img/favicon.png b/www/img/favicon.png new file mode 100644 index 0000000..42987bd Binary files /dev/null and b/www/img/favicon.png differ diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..8a8df0e --- /dev/null +++ b/www/index.html @@ -0,0 +1,258 @@ +Flot Chart
...
\ No newline at end of file diff --git a/www/index.html.map b/www/index.html.map new file mode 100644 index 0000000..1e6800b --- /dev/null +++ b/www/index.html.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.html"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.html","sourcesContent":["\n Flot Chart\n \n \n\n \n\n \n \n \n\n \n \n\n\n\n
\n
\n
...
\n
\n
\n
\n
\n No connection to server\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n \n \n
\n\n \n\n"]} \ No newline at end of file diff --git a/www/js/edit.js b/www/js/edit.js new file mode 100644 index 0000000..eba23a1 --- /dev/null +++ b/www/js/edit.js @@ -0,0 +1,2 @@ +!function(a){if("function"==typeof require&&"object"==typeof exports&&"object"==typeof module){var b=require("jquery");module.exports=a(b)}else if("function"==typeof define&&define.amd)define(["jquery"],function(e){return a(e)});else{var c;try{c=eval("this")}catch(e){c=window}c.deparam=a(jQuery)}}(function(e){var t=function(e,l){var c={},p={true:!0,false:!1,null:null};return e.replace(/\+/g," ").split("&").forEach(function(e){var t,n=e.split("="),o=decodeURIComponent(n[0]),i=c,a=0,s=o.split("]["),r=s.length-1;if(r=/\[/.test(s[0])&&/\]$/.test(s[r])?(s[r]=s[r].replace(/\]$/,""),(s=s.shift().split("[").concat(s)).length-1):0,2===n.length)if(t=decodeURIComponent(n[1]),l&&(t=t&&!isNaN(t)&&+t+""===t?+t:"undefined"===t?void 0:void 0!==p[t]?p[t]:t),r)for(;a<=r;a++)i=i[o=""===s[a]?i.length:s[a]]=a>>4==(o&=15)&&i>>>4==(i&=15)&&a>>>4==(a&=15)&&o.toString(16)+i.toString(16)+a.toString(16)},"#HEXA":function(e,t){return t._formatColor("#rxgxbxax",e)},"#HEXA4":function(e,t){var n=_.colorpicker.writers.HEXA4(e,t);return!1!==n&&"#"+n},HEXA:function(e,t){return t._formatColor("rxgxbxax",e)},HEXA4:function(e,t){var n=Math.round(255*e.getAlpha());return n>>>4==(n&=15)&&_.colorpicker.writers.HEX3(e,t)+n.toString(16)},RGB:function(e,t){return 1<=e.getAlpha()&&t._formatColor("rgb(rd,gd,bd)",e)},RGBA:function(e,t){return t._formatColor("rgba(rd,gd,bd,af)",e)},"RGB%":function(e,t){return 1<=e.getAlpha()&&t._formatColor("rgb(rp%,gp%,bp%)",e)},"RGBA%":function(e,t){return t._formatColor("rgba(rp%,gp%,bp%,af)",e)},HSL:function(e,t){return 1<=e.getAlpha()&&t._formatColor("hsl(hd,sd,vd)",e)},HSLA:function(e,t){return t._formatColor("hsla(hd,sd,vd,af)",e)},"HSL%":function(e,t){return 1<=e.getAlpha()&&t._formatColor("hsl(hp%,sp%,vp%)",e)},"HSLA%":function(e,t){return t._formatColor("hsla(hp%,sp%,vp%,af)",e)},NAME:function(e,t){return t._closestName(e)},EXACT:function(e,t){return t._exactName(e)}},this.parsers={"":function(e){if(""===e)return new _.colorpicker.Color},NAME:function(e,t){var n=t._getSwatch(_.trim(e));if(n)return new _.colorpicker.Color(n.r,n.g,n.b)},RGBA:function(e){var t=/^rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(e);if(t)return new _.colorpicker.Color(t[1]/255,t[2]/255,t[3]/255,parseFloat(t[4]))},"RGBA%":function(e){var t=/^rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(e);if(t)return new _.colorpicker.Color(t[1]/100,t[2]/100,t[3]/100,t[4]/100)},HSLA:function(e){var t=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(e);if(t)return(new _.colorpicker.Color).setHSL(t[1]/255,t[2]/255,t[3]/255).setAlpha(parseFloat(t[4]))},"HSLA%":function(e){var t=/^hsla?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(e);if(t)return(new _.colorpicker.Color).setHSL(t[1]/100,t[2]/100,t[3]/100).setAlpha(t[4]/100)},"#HEX":function(e){var t=/^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255)},"#HEX3":function(e){var t=/^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(String(t[1])+t[1],16)/255,parseInt(String(t[2])+t[2],16)/255,parseInt(String(t[3])+t[3],16)/255)},HEX:function(e){var t=/^([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255)},HEX3:function(e){var t=/^([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(String(t[1])+t[1],16)/255,parseInt(String(t[2])+t[2],16)/255,parseInt(String(t[3])+t[3],16)/255)},"#HEXA":function(e){var t=/^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,parseInt(t[4],16)/255)},"#HEXA4":function(e){var t=/^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(String(t[1])+t[1],16)/255,parseInt(String(t[2])+t[2],16)/255,parseInt(String(t[3])+t[3],16)/255,parseInt(String(t[4])+t[4],16)/255)},HEXA:function(e){var t=/^([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,parseInt(t[4],16)/255)},HEXA4:function(e){var t=/^([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(e);if(t)return new _.colorpicker.Color(parseInt(String(t[1])+t[1],16)/255,parseInt(String(t[2])+t[2],16)/255,parseInt(String(t[3])+t[3],16)/255,parseInt(String(t[4])+t[4],16)/255)}},this.partslists={full:["header","map","bar","hex","hsv","rgb","alpha","lab","cmyk","preview","swatches","footer"],popup:["map","bar","hex","hsv","rgb","alpha","preview","footer"],draggable:["header","map","bar","hex","hsv","rgb","alpha","preview","footer"],inline:["map","bar","hex","hsv","rgb","alpha","preview"]},this.limits={websafe:function(e){e.limit(6)},nibble:function(e){e.limit(16)},binary:function(e){e.limit(2)},name:function(e,t){var n=t._getSwatch(t._closestName(e));e.setRGB(n.r,n.g,n.b)}},this.parts={header:function(o){var i=null,a=function(e){e.preventDefault(),o.close(o.options.revert)};this.init=function(){var e;i=_((e=''+(o.options.title||o._getRegional("title"))+"",!o.inline&&o.options.showCloseButton&&(e+='close'),'
'+e+"
")).prependTo(o.dialog);var t=_(".ui-dialog-titlebar-close",i);if(o._hoverable(t),o._focusable(t),t.on("click",a),!o.inline&&o.options.draggable){var n={handle:i};o.options.containment&&(n.containment=o.options.containment),o.dialog.draggable(n)}},this.disable=function(e){_(".ui-dialog-titlebar-close",i)[e?"off":"on"]("click",a)}},map:function(l){var i,c,p,a,s,r,t,e,u=this,d=null,h={};a=function(e){if(l.opened){var t=h.p.offset(),n=e.pageX-t.left,o=e.pageY-t.top;0<=n&&n  '+(l.options.alpha?' ':"")+''},this.init=function(){(d=_(e()).appendTo(_(".ui-colorpicker-map-container",l.dialog))).on("mousedown",a),d.on("keydown",t),h[1]=_(".ui-colorpicker-map-layer-1",d),h[2]=_(".ui-colorpicker-map-layer-2",d),h.a=_(".ui-colorpicker-map-layer-alpha",d),h.p=_(".ui-colorpicker-map-layer-pointer",d),c=h.p.width(),p=h.p.height(),i=_(".ui-colorpicker-map-pointer",d)},this.update=function(){var e=65*(l.options.part.map.size||256)/64;switch(l.mode){case"h":h[1].css({"background-position":"0 0",opacity:""}).show(),h[2].hide();break;case"s":case"a":h[1].css({"background-position":"0 "+-e+"px",opacity:""}).show(),h[2].css({"background-position":"0 "+2*-e+"px",opacity:""}).show();break;case"v":d.css("background-color","black"),h[1].css({"background-position":"0 "+3*-e+"px",opacity:""}).show(),h[2].hide();break;case"r":h[1].css({"background-position":"0 "+4*-e+"px",opacity:""}).show(),h[2].css({"background-position":"0 "+5*-e+"px",opacity:""}).show();break;case"g":h[1].css({"background-position":"0 "+6*-e+"px",opacity:""}).show(),h[2].css({"background-position":"0 "+7*-e+"px",opacity:""}).show();break;case"b":h[1].css({"background-position":"0 "+8*-e+"px",opacity:""}).show(),h[2].css({"background-position":"0 "+9*-e+"px",opacity:""}).show()}u.repaint()},this.repaint=function(){var e=0,t=0;switch(l.mode){case"h":e=(n=l.color.getHSV()).s*c,t=(1-n.v)*c,d.css("background-color",l.color.copy().setHSV(null,1,1).toCSS());break;case"s":case"a":e=(n=l.color.getHSV()).h*c,t=(1-n.v)*c,h[2].css("opacity",1-n.s);break;case"v":var n;e=(n=l.color.getHSV()).h*c,t=(1-n.s)*c,h[1].css("opacity",n.v);break;case"r":e=(o=l.color.getRGB()).b*c,t=(1-o.g)*c,h[2].css("opacity",o.r);break;case"g":e=(o=l.color.getRGB()).b*c,t=(1-o.r)*c,h[2].css("opacity",o.g);break;case"b":var o;e=(o=l.color.getRGB()).r*c,t=(1-o.g)*c,h[2].css("opacity",o.b)}l.options.alpha&&h.a.css("opacity",1-l.color.getAlpha()),i.css({left:e-7,top:t-7})},this.disable=function(e){d[e?"off":"on"]("mousedown",a),d[e?"off":"on"]("keydown",t)}},bar:function(i){var o,a,s,r,l,c,t,e,p=this,u=null,d={};r=function(e){if(i.opened){var t=d.p.offset(),n=e.pageX-t.left,o=e.pageY-t.top;0<=n&&n    ';return i.options.alpha&&(e+='  '),e+=''},this.init=function(){(u=_(e()).appendTo(_(".ui-colorpicker-bar-container",i.dialog))).on("mousedown",r),u.on("keydown",t),d[1]=_(".ui-colorpicker-bar-layer-1",u),d[2]=_(".ui-colorpicker-bar-layer-2",u),d[3]=_(".ui-colorpicker-bar-layer-3",u),d[4]=_(".ui-colorpicker-bar-layer-4",u),d.a=_(".ui-colorpicker-bar-layer-alpha",u),d.ab=_(".ui-colorpicker-bar-layer-alphabar",u),d.p=_(".ui-colorpicker-bar-layer-pointer",u),a=d.p.width(),s=d.p.height(),o=_(".ui-colorpicker-bar-pointer",u)},this.update=function(){var e=65*(i.options.part.bar.size||256)/64;switch(i.mode){case"h":case"s":case"v":case"r":case"g":case"b":d.a.show(),d.ab.hide();break;case"a":d.a.hide(),d.ab.show()}switch(i.mode){case"h":d[1].css({"background-position":"0 0",opacity:""}).show(),d[2].hide(),d[3].hide(),d[4].hide();break;case"s":d[1].css({"background-position":"0 "+-e+"px",opacity:""}).show(),d[2].css({"background-position":"0 "+2*-e+"px",opacity:""}).show(),d[3].hide(),d[4].hide();break;case"v":d[1].css({"background-position":"0 "+2*-e+"px",opacity:""}).show(),d[2].hide(),d[3].hide(),d[4].hide();break;case"r":d[1].css({"background-position":"0 "+6*-e+"px",opacity:""}).show(),d[2].css({"background-position":"0 "+5*-e+"px",opacity:""}).show(),d[3].css({"background-position":"0 "+3*-e+"px",opacity:""}).show(),d[4].css({"background-position":"0 "+4*-e+"px",opacity:""}).show();break;case"g":d[1].css({"background-position":"0 "+10*-e+"px",opacity:""}).show(),d[2].css({"background-position":"0 "+9*-e+"px",opacity:""}).show(),d[3].css({"background-position":"0 "+7*-e+"px",opacity:""}).show(),d[4].css({"background-position":"0 "+8*-e+"px",opacity:""}).show();break;case"b":d[1].css({"background-position":"0 "+14*-e+"px",opacity:""}).show(),d[2].css({"background-position":"0 "+13*-e+"px",opacity:""}).show(),d[3].css({"background-position":"0 "+11*-e+"px",opacity:""}).show(),d[4].css({"background-position":"0 "+12*-e+"px",opacity:""}).show();break;case"a":d[1].hide(),d[2].hide(),d[3].hide(),d[4].hide()}p.repaint()},this.repaint=function(){var e=0;switch(i.mode){case"h":e=(1-i.color.getHSV().h)*s;break;case"s":var t=i.color.getHSV();e=(1-t.s)*s,d[2].css("opacity",1-t.v),u.css("background-color",i.color.copy().setHSV(null,1,null).toCSS());break;case"v":e=(1-i.color.getHSV().v)*s,u.css("background-color",i.color.copy().setHSV(null,null,1).toCSS());break;case"r":e=(1-(n=i.color.getRGB()).r)*s,d[2].css("opacity",Math.max(0,n.b-n.g)),d[3].css("opacity",Math.max(0,n.g-n.b)),d[4].css("opacity",Math.min(n.b,n.g));break;case"g":e=(1-(n=i.color.getRGB()).g)*s,d[2].css("opacity",Math.max(0,n.b-n.r)),d[3].css("opacity",Math.max(0,n.r-n.b)),d[4].css("opacity",Math.min(n.r,n.b));break;case"b":var n;e=(1-(n=i.color.getRGB()).b)*s,d[2].css("opacity",Math.max(0,n.r-n.g)),d[3].css("opacity",Math.max(0,n.g-n.r)),d[4].css("opacity",Math.min(n.r,n.g));break;case"a":e=(1-i.color.getAlpha())*s,u.css("background-color",i.color.copy().toCSS())}"a"!==i.mode&&d.a.css("opacity",1-i.color.getAlpha()),o.css("top",e-3)},this.disable=function(e){u[e?"off":"on"]("mousedown",r),u[e?"off":"on"]("keydown",t)}},preview:function(e){var t,n,o,i,a,s=null,r=function(){e.color=e.currentColor.copy(),e._change()};this.init=function(){s=_('
').appendTo(_(".ui-colorpicker-preview-container",e.dialog)),_(".ui-colorpicker-preview-initial",s).on("click",r),n=_(".ui-colorpicker-preview-initial",s),o=_(".ui-colorpicker-preview-initial-alpha",s),i=_(".ui-colorpicker-preview-current",s),a=_(".ui-colorpicker-preview-current-alpha",s),t=_(".ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha",s)},this.update=function(){t[e.options.alpha?"show":"hide"](),this.repaint()},this.repaint=function(){n.css("background-color",e.currentColor.set?e.currentColor.toCSS():"").attr("title",e.currentColor.set?e.currentColor.toCSS():""),o.css("opacity",1-e.currentColor.getAlpha()),i.css("background-color",e.color.set?e.color.toCSS():"").attr("title",e.color.set?e.color.toCSS():""),a.css("opacity",1-e.color.getAlpha())},this.disable=function(e){_(".ui-colorpicker-preview-initial",s)[e?"off":"on"]("click",r)}},hsv:function(t){var e,n=null,o={};e=function(){var e="";return t.options.hsv&&(e+='
°
%
%
'),'
'+e+"
"},this.init=function(){n=_(e()).appendTo(_(".ui-colorpicker-hsv-container",t.dialog)),_(".ui-colorpicker-mode",n).click(function(){t.mode=_(this).val(),t._updateAllParts()}),o.h=_(".ui-colorpicker-hsv-h .ui-colorpicker-number",n),o.s=_(".ui-colorpicker-hsv-s .ui-colorpicker-number",n),o.v=_(".ui-colorpicker-hsv-v .ui-colorpicker-number",n),_(".ui-colorpicker-number",n).on("change keyup",function(){t.color.setHSV(o.h.val()/360,o.s.val()/100,o.v.val()/100),t._change()})},this.repaint=function(){var e=t.color.getHSV();o.h.val(Math.round(360*e.h)),o.s.val(Math.round(100*e.s)),o.v.val(Math.round(100*e.v))},this.update=function(){_(".ui-colorpicker-mode",n).each(function(){var e=_(this);e.prop("checked",e.val()===t.mode)}),this.repaint()},this.disable=function(e){_(":input",n).prop("disabled",e)}},rgb:function(t){var e,n=null,o={};e=function(){var e="";return t.options.rgb&&(e+='
'),'
'+e+"
"},this.init=function(){n=_(e()).appendTo(_(".ui-colorpicker-rgb-container",t.dialog)),_(".ui-colorpicker-mode",n).click(function(){t.mode=_(this).val(),t._updateAllParts()}),o.r=_(".ui-colorpicker-rgb-r .ui-colorpicker-number",n),o.g=_(".ui-colorpicker-rgb-g .ui-colorpicker-number",n),o.b=_(".ui-colorpicker-rgb-b .ui-colorpicker-number",n),_(".ui-colorpicker-number",n).on("change keyup",function(){_(".ui-colorpicker-rgb-r .ui-colorpicker-number",n).val();t.color.setRGB(o.r.val()/255,o.g.val()/255,o.b.val()/255),t._change()})},this.repaint=function(){var e=t.color.getRGB();o.r.val(Math.round(255*e.r)),o.g.val(Math.round(255*e.g)),o.b.val(Math.round(255*e.b))},this.update=function(){_(".ui-colorpicker-mode",n).each(function(){var e=_(this);e.prop("checked",e.val()===t.mode)}),this.repaint()},this.disable=function(e){_(":input",n).prop("disabled",e)}},lab:function(t){var n=null,o={};this.init=function(){var e;n=_((e="",t.options.hsv&&(e+='
'),'
'+e+"
")).appendTo(_(".ui-colorpicker-lab-container",t.dialog)),o.l=_(".ui-colorpicker-lab-l .ui-colorpicker-number",n),o.a=_(".ui-colorpicker-lab-a .ui-colorpicker-number",n),o.b=_(".ui-colorpicker-lab-b .ui-colorpicker-number",n),_(".ui-colorpicker-number",n).on("change keyup",function(e){t.color.setLAB(parseInt(o.l.val(),10)/100,(parseInt(o.a.val(),10)+128)/255,(parseInt(o.b.val(),10)+128)/255),t._change()})},this.repaint=function(){var e=t.color.getLAB();o.l.val(Math.round(100*e.l)),o.a.val(Math.round(255*e.a)-128),o.b.val(Math.round(255*e.b)-128)},this.update=this.repaint,this.disable=function(e){_(":input",n).prop("disabled",e)}},cmyk:function(t){var n=null,o={};this.init=function(){var e;n=_((e="",t.options.hsv&&(e+='
%
%
%
%
'),'
'+e+"
")).appendTo(_(".ui-colorpicker-cmyk-container",t.dialog)),o.c=_(".ui-colorpicker-cmyk-c .ui-colorpicker-number",n),o.m=_(".ui-colorpicker-cmyk-m .ui-colorpicker-number",n),o.y=_(".ui-colorpicker-cmyk-y .ui-colorpicker-number",n),o.k=_(".ui-colorpicker-cmyk-k .ui-colorpicker-number",n),_(".ui-colorpicker-number",n).on("change keyup",function(e){t.color.setCMYK(parseInt(o.c.val(),10)/100,parseInt(o.m.val(),10)/100,parseInt(o.y.val(),10)/100,parseInt(o.k.val(),10)/100),t._change()})},this.repaint=function(){var e=t.color.getCMYK();o.c.val(Math.round(100*e.c)),o.m.val(Math.round(100*e.m)),o.y.val(Math.round(100*e.y)),o.k.val(Math.round(100*e.k))},this.update=this.repaint,this.disable=function(e){_(":input",n).prop("disabled",e)}},alpha:function(t){var n,o=null;this.init=function(){var e;o=_((e="",t.options.alpha&&(e+='
%
'),'
'+e+"
")).appendTo(_(".ui-colorpicker-alpha-container",t.dialog)),_(".ui-colorpicker-mode",o).click(function(){t.mode=_(this).val(),t._updateAllParts()}),n=_(".ui-colorpicker-a .ui-colorpicker-number",o),_(".ui-colorpicker-number",o).on("change keyup",function(){t.color.setAlpha(n.val()/100),t._change()})},this.update=function(){_(".ui-colorpicker-mode",o).each(function(){_(this).prop("checked",_(this).val()===t.mode)}),this.repaint()},this.repaint=function(){n.val(Math.round(100*t.color.getAlpha()))},this.disable=function(e){_(":input",o).prop("disabled",e)}},hex:function(o){var t=null,i={};this.init=function(){var e;t=_((e="",o.options.alpha&&(e+=''),'
'+(e+='')+"
")).appendTo(_(".ui-colorpicker-hex-container",o.dialog)),i.color=_(".ui-colorpicker-hex-input",t),i.alpha=_(".ui-colorpicker-hex-alpha",t),i.color.on("keydown keyup",function(e){return e.ctrlKey||s(e.which)||!a(e.which)}),i.color.on("change",function(){/[^a-fA-F0-9]/.test(i.color.val())&&i.color.val(i.color.val().replace(/[^a-fA-F0-9]/,""))}),i.color.on("change keyup",function(){var e,t,n;o.color=(e=i.color.val(),(n=/^#?([a-fA-F0-9]{1,3})$/.exec(e))?(t=parseInt(n[1],16),new _.colorpicker.Color((t>>8&15)/15,(t>>4&15)/15,(15&t)/15)):(n=/^#?([a-fA-F0-9]{1,6})$/.exec(e))?(t=parseInt(n[1],16),new _.colorpicker.Color((t>>16&255)/255,(t>>8&255)/255,(255&t)/255)):new _.colorpicker.Color).setAlpha(o.color.getAlpha()),o._change()}),i.alpha.on("keydown keyup",function(e){return e.ctrlKey||s(e.which)||!a(e.which)}),i.alpha.on("change",function(){/[^a-fA-F0-9]/.test(i.alpha)&&i.alpha.val(i.alpha.val().replace(/[^a-fA-F0-9]/,""))}),i.alpha.on("change keyup",function(){o.color.setAlpha(parseInt(i.alpha.val(),16)/255),o._change()})},this.repaint=function(){i.color.is(":focus")||i.color.val(o.color.toHex(!0)),i.alpha.is(":focus")||i.alpha.val(r(255*o.color.getAlpha()))},this.update=this.repaint,this.disable=function(e){_(":input",t).prop("disabled",e)}},swatches:function(e){var t=null,n=function(){e.color=e._parseColor(_(this).css("background-color"))||new _.colorpicker.Color,e._change()};this.init=function(){var o;t=_((o="",e._eachSwatch(function(e,t){var n=new _.colorpicker.Color(t.r,t.g,t.b).toCSS();o+='
'}),'
'+o+"
")),_(".ui-colorpicker-swatches-container",e.dialog).html(t),_(".ui-colorpicker-swatch",t).on("click",n)},this.disable=function(e){_(".ui-colorpicker-swatch",t)[e?"off":"on"]("click",n)}},footer:function(t){var n=null,o="ui-colorpicker-special-transparent-"+t.colorpicker_index,i="ui-colorpicker-special-none-"+t.colorpicker_index;this.init=function(){var e;n=_((e="",(t.options.alpha||!t.inline&&t.options.showNoneButton)&&(e+='
',t.options.alpha&&(e+='"),!t.inline&&t.options.showNoneButton&&(e+='"),e+="
"),t.inline||(e+='
',t.options.showCancelButton&&(e+='"),e+='",e+="
"),'
'+e+"
")).appendTo(t.dialog),_(".ui-colorpicker-ok",n).button().click(function(){t.close()}),_(".ui-colorpicker-cancel",n).button().click(function(){t.close(!0)}),_(".ui-colorpicker-buttonset",n)[_.fn.controlgroup?"controlgroup":"buttonset"](),_(".ui-colorpicker-special-color",n).click(function(){t._change()}),_("#"+i,n).click(function(){t.color.set=!1,t._change()}),_("#"+o,n).click(function(){t.color.setAlpha(0),t._change()})},this.repaint=function(){_(".ui-colorpicker-special-none",n).prop("checked",!t.color.set).button("refresh"),_(".ui-colorpicker-special-transparent",n).prop("checked",t.color.set&&0===t.color.getAlpha()).button("refresh"),_(".ui-colorpicker-ok",n).button(t.changed?"enable":"disable")},this.update=function(){},this.disable=function(e){_(":input, :button",n).button(e?"disable":"enable"),e||_(".ui-colorpicker-ok",n).button(t.changed?"enable":"disable")}}},this.Color=function(){var y={rgb:{r:0,g:0,b:0},hsv:{h:0,s:0,v:0},hsl:{h:0,s:0,l:0},lab:{l:0,a:0,b:0},cmyk:{c:0,m:0,y:0,k:1}},t=1,w=[.9504285,1,1.0889],e=arguments,x=function(e){return isNaN(e)||null===e?0:("string"==typeof e&&(e=parseInt(e,10)),Math.max(0,Math.min(e,1)))},n=function(e){var t="0123456789abcdef",n=(e=Math.round(e))%16;return t.charAt((e-n)/16)+t.charAt(n)},o=function(e){var t=.04045").attr({src:t.options.buttonImage,alt:e,title:e}),t.options.buttonClass&&t.image.attr("class",t.options.buttonClass),t._setImageBackground()),t.options.buttonImageOnly&&t.image?t.button=t.image:(t.button=_('').html(t.image||t.options.buttonText).button(),t.image=t.image?_("img",t.button).first():null),t.button.insertAfter(t.element).click(function(){t.opened&&/\bbutton|all|both\b/.test(t.options.hideOn)?t.close():t.open()})),/\balt|all|both\b/.test(t.options.showOn)&&_(t.options.altField).on("click",function(){t.opened&&/\balt|all|both\b/.test(t.options.hideOn)?t.close():t.open()}),t.options.autoOpen&&t.open()):(t.inline=!0,t._generate(),t.opened=!0),(t.element.is(":disabled")||t.options.disabled)&&t.disable(),this},_setOption:function(e,t){switch(e){case"disabled":this[t?"disable":"enable"]();break;case"swatches":this.options.swatches=t,this.parts.swatches.init()}_.Widget.prototype._setOption.apply(this,arguments)},enable:function(){this.element&&this.element.prop("disabled",!1),this.button&&this.button.prop("disabled",!1),this.dialog&&this.dialog.removeClass("ui-colorpicker-disabled"),this.options.disabled=!1,this.parts&&_.each(this.parts,function(e,t){t.disable&&t.disable(!1)})},disable:function(){this.element&&this.element.prop("disabled",!0),this.button&&this.button.prop("disabled",!0),this.dialog&&this.dialog.addClass("ui-colorpicker-disabled"),this.options.disabled=!0,this.parts&&_.each(this.parts,function(e,t){t.disable&&t.disable(!0)})},_setImageBackground:function(){this.image&&this.options.buttonColorize&&this.image.css("background-color",this.color.set?this._formatColor("RGBA",this.color):"")},_setAltField:function(){if(this.options.altOnChange&&this.options.altField&&this.options.altProperties){var e,t,n=this.options.altProperties.split(",");for(e=0;e<=n.length;++e)switch(t=_.trim(n[e])){case"color":case"fill":case"stroke":case"background-color":case"backgroundColor":case"outline-color":case"border-color":_(this.options.altField).css(t,this.color.set?this.color.toCSS():"")}this.options.altAlpha&&_(this.options.altField).css("opacity",this.color.set?this.color.getAlpha():"")}},_setColor:function(e){this.color=this._parseColor(e)||new _.colorpicker.Color,this.currentColor=this.color.copy(),this._setImageBackground(),this._setAltField()},setColor:function(e){this._setColor(e),this._change()},getColor:function(e){return this._formatColor(e||this.options.colorFormat,this.color)},_generateInline:function(){_(this.element).html(this.options.inlineFrame?'
':'
'),this.dialog=_(".ui-colorpicker",this.element)},_generatePopup:function(){var o=this;o.dialog=_('').appendTo("body"),null===o.events.document_click_html&&_(document).on("touchstart click","html",o.events.document_click_html=function(e){if(o.opened&&e.target!==o.element[0]&&!o.overlay)if(o.dialog.is(e.target)||0",o=0;o':m||(o+=1)}u+=""}return''+u+"
"}(n,function(e,t,n){return o=["ui-colorpicker-"+e.part+"-container"],0'})).appendTo(i.dialog),i.options.inlineFrame&&t.addClass("ui-dialog-content ui-widget-content"),i._initAllParts(),i._updateAllParts(),i.generated=!0)},_effectGeneric:function(e,t,n,o,i){var a=this;_.effects&&_.effects[a.options.showAnim]?e[t](a.options.showAnim,a.options.showOptions,a.options.duration,i):(e["slideDown"===a.options.showAnim?n:"fadeIn"===a.options.showAnim?o:t](a.options.showAnim?a.options.duration:null,i),a.options.showAnim&&a.options.duration||i())},_effectShow:function(e,t){this._effectGeneric(e,"show","slideDown","fadeIn",t)},_effectHide:function(e,t){this._effectGeneric(e,"hide","slideUp","fadeOut",t)},open:function(){var t,e,n,o=this;o.opened||(o._generate(),e=o.element.is(":hidden")?_("
").insertBefore(o.element):o.element,o.element.is(":hidden")&&e.remove(),t=0,_(o.element[0]).parents().each(function(){var e=_(this).css("z-index");if("number"!=typeof e&&"string"!=typeof e||""===e||isNaN(e))_(this).siblings().each(function(){var e=_(this).css("z-index");"number"!=typeof e&&"string"!=typeof e||""===e||isNaN(e)||t
').appendTo("body").css("z-index",t-1),null!==o.events.window_resize&&_(window).off("resize",o.events.window_resize),o.events.window_resize=function(){o.overlay&&(o.overlay.width(_(document).width()),o.overlay.height(_(document).height()))},_(window).on("resize",o.events.window_resize),o.events.window_resize()),o._effectShow(this.dialog),o.options.position?"element"===(n=_.extend({},o.options.position)).of&&(n.of=e):n={my:"left top",at:"left bottom",of:e,collision:"flip"},o.dialog.position(n),o.opened=!0,o._callback("open",!0),_(function(){o._repaintAllParts()}))},close:function(e){var t=this;t.opened&&(e?(t.color=t.currentColor.copy(),t._change(),t._callback("cancel",!0)):(t.currentColor=t.color.copy(),t._callback("ok",!0)),t.changed=!1,t.overlay&&(_(window).off("resize",t.events.window_resize),t.overlay.remove()),t._effectHide(t.dialog,function(){t.dialog.remove(),t.dialog=null,t.generated=!1,t.opened=!1,t._callback("close",!0)}))},destroy:function(){var e=this;null!==e.events.document_click_html&&_(document).off("touchstart click","html",e.events.document_click_html),null!==e.events.document_keydown&&_(document).off("keydown",e.events.document_keydown),null!==e.events.resizeOverlay&&_(window).off("resize",e.events.resizeOverlay),this.element.off(),this.overlay&&this.overlay.remove(),null!==this.dialog&&this.dialog.remove(),null!==this.image&&this.image.remove(),null!==this.button&&this.button.remove()},_callback:function(e,t){var n,o,i=this;return i.color.set?(n={formatted:i._formatColor(i.options.colorFormat,i.color),colorPicker:i},(o=i.color.getLAB()).a=2*o.a-1,o.b=2*o.b-1,!0===t&&(n.a=i.color.getAlpha(),n.rgb=i.color.getRGB(),n.hsv=i.color.getHSV(),n.cmyk=i.color.getCMYK(),n.hsl=i.color.getHSL(),n.lab=o),i._trigger(e,null,n)):i._trigger(e,null,{formatted:"",colorPicker:i})},_initAllParts:function(){_.each(this.parts,function(e,t){t.init&&t.init()})},_updateAllParts:function(){_.each(this.parts,function(e,t){t.update&&t.update()})},_repaintAllParts:function(){_.each(this.parts,function(e,t){t.repaint&&t.repaint()})},_change:function(e){this.color.set&&this.options.limit&&_.colorpicker.limits[this.options.limit]&&_.colorpicker.limits[this.options.limit](this.color,this),this.changed=!this.color.equals(this.currentColor),this.inline||(this.color.set?this.color.equals(this._parseColor(this.element.val()))||this.element.val(this._formatColor(this.options.colorFormat,this.color)).change():""!==this.element.val()&&this.element.val("").change(),this._setImageBackground()),this._setAltField(),this.options.color=this.color.set?this.color.toCSS():"",this.opened&&this._repaintAllParts(),this._callback("select"),(void 0===e||e)&&this._callback("stop")},_hoverable:function(e){e.hover(function(){e.addClass("ui-state-hover")},function(){e.removeClass("ui-state-hover")})},_focusable:function(e){e.focus(function(){e.addClass("ui-state-focus")}).blur(function(){e.removeClass("ui-state-focus")})},_getRegional:function(e){return void 0!==_.colorpicker.regional[this.options.regional][e]?_.colorpicker.regional[this.options.regional][e]:_.colorpicker.regional[""][e]},_getSwatches:function(){return"string"==typeof this.options.swatches?_.colorpicker.swatches[this.options.swatches]:_.isPlainObject(this.options.swatches)?this.options.swatches:_.colorpicker.swatches.html},_eachSwatch:function(n){var o,i=this._getSwatches();_.each(i,function(e,t){return o=_.isArray(i)?t.name:e,n(o,t)})},_getSwatch:function(n){var o=!1;return this._eachSwatch(function(e,t){if(e.toLowerCase()==n.toLowerCase())return o=t,!1}),o},_parseFormat:function(e,t){var n,o,i={x:function(){return"([0-9a-fA-F]{2})"},d:function(){return"([12]?[0-9]{1,2})"},f:function(){return"([0-9]*\\.?[0-9]*)"},p:function(){return"([0-9]*\\.?[0-9]*)"}},a={x:function(e){return parseInt(e,16)/255},d:function(e){return e/255},f:function(e){return e},p:function(e){return.01*e}},s={r:"setRGB",g:"setRGB",b:"setRGB",h:"setHSV",s:"setHSV",v:"setHSV",c:"setCMYK",m:"setCMYK",y:"setCMYK",k:"setCMYK",L:"setLAB",A:"setLAB",B:"setLAB"},r=[],l=[],c=null;if(o=(o=e.replace(/[()\\^$.|?*+[\]]/g,function(e){return"\\"+e})).replace(/\\?[argbhsvcmykLAB][xdfp]/g,function(e){if(e.match(/^\\/))return e.slice(1);var t=e.charAt(0),n=e.charAt(1);return r.push(t),l.push(a[n]),s[t]&&(c=s[t]),i[n]()}),c){var p=t.match(new RegExp(o));if(p){var u,d=[];p.shift(),_.each({setRGB:["r","g","b"],setHSV:["h","s","v"],setCMYK:["c","m","y","k"],setLAB:["L","A","B"]}[c],function(e,t){u=_.inArray(t,r),d[e]=l[u](p[u])}),(n=new _.colorpicker.Color)[c].apply(n,d)}}return n},_parseColor:function(n){var o,i=this,e=_.isArray(i.options.colorFormat)?i.options.colorFormat:[i.options.colorFormat];return _.each(e,function(e,t){if(o=_.colorpicker.parsers[t]?_.colorpicker.parsers[t](n,i):i._parseFormat(t,n))return!1}),o||_.each(_.colorpicker.parsers,function(e,t){if(o=t(n,i))return!1}),o||!1},_exactName:function(n){var o=!1;return this._eachSwatch(function(e,t){if(n.equals(new _.colorpicker.Color(t.r,t.g,t.b)))return o=e,!1}),o},_closestName:function(n){n.getRGB();var o,i=null,a=!1;return this._eachSwatch(function(e,t){if((o=n.distance(new _.colorpicker.Color(t.r,t.g,t.b)))'+n+" - "+m.options.l[n].id+"\n";var o='";if(o+='",m.options.m)for(var i=0;i",e+='",e+='',e+='',e+='',e+='',e+='',e+='',e+='',e+='',e+='',e+='",e+='',e+='',e+='',e+='\n',e+="";$("#markline_list").html(e),$(".markline-value").each(function(){var e=$(this).data("index"),t=$(this).data("option");"checkbox"===$(this).attr("type")?("true"===m.options.m[e][t]&&(m.options.m[e][t]=!0),"false"===m.options.m[e][t]&&(m.options.m[e][t]=!1),$(this).prop("checked",!!m.options.m[e][t])):$(this).val(m.options.m[e][t])}),$(".markline-color").colorpicker({colorFormat:"#HEX"}).on("change",function(){$(this).css({"background-color":$(this).val(),color:M($(this).val())})}).trigger("change"),$(".markline-remove").button({icons:{primary:"ui-icon-trash"},text:!1}).click(function(){if(m.options.m.length){var e=$(this).data("index");m.options.m.splice(e,1),v(),S(),w()}}).css({width:22,height:22}),$(".markline-select-dialog").button({text:!1,icons:{primary:"ui-icon-folder-open"}}).css({width:25,height:22}).click(function(){var o=$(this).data("index"),i=$(this).data("option");$("#dialog-select-member").selectId("show",m.options.m[o][i],{common:{custom:!1}},function(e,t,n){m.options.l[o][i]=e,$('.markline-value[data-index="'+o+'"][data-option="'+i+'"]').val(e).trigger("change")})})}else $(".markline-option").hide()},100)}function k(c){setTimeout(function(){for(var e="",t='\n',n='\n",o=0;o'+p[o]+"\n";var i=0;for(var a in settings.line)settings.line.hasOwnProperty(a)&&settings.line[a].enabled&&('\n",t+='"+_(settings.line[a].name)+"\n",i++);t+="";for(var s=0;s\n',settings.line)if(settings.line.hasOwnProperty(a)&&settings.line[a]&&settings.line[a].enabled)if(settings.line[a].style=settings.line[a].style||"",settings.line[a]._class=settings.line[a]._class||"","min"===a?r.min=void 0===r.min?"":r.min:"max"===a&&(r.max=void 0===r.max?"":r.max),"number"===a)e+=''+(s+1)+"\n";else if("idSelect"===a)e+='\n';else if("instance"===a)e+='\n";else if("offset"===a)e+='\n',e+='\n";else if("removeButton"===a)e+='\n';else if("extraOptions"===a)e+='\n';else{if(e+='\n',settings.line[a].values){e+='\n"}else e+='\n';e+="\n"}e+=""}$("#idslist").html(t+e),"de"===systemLang?$.colorpicker.regional={"":{ok:"OK",cancel:"Abbrechen",none:"Nichts",button:"Farbe",title:"Farbe wählen",transparent:"Transparent",hsvH:"H",hsvS:"S",hsvV:"V",rgbR:"R",rgbG:"G",rgbB:"B",labL:"L",labA:"a",labB:"b",hslH:"H",hslS:"S",hslL:"L",cmykC:"C",cmykM:"M",cmykY:"Y",cmykK:"K",alphaA:"A"}}:"ru"===systemLang&&($.colorpicker.regional={"":{ok:"OK",cancel:"Отмена",none:"Нет",button:"Цвет",title:"Выбрать цвет",transparent:"Прозрачность",hsvH:"H",hsvS:"S",hsvV:"V",rgbR:"R",rgbG:"G",rgbB:"B",labL:"L",labA:"a",labB:"b",hslH:"H",hslS:"S",hslL:"L",cmykC:"C",cmykM:"M",cmykY:"Y",cmykK:"K",alphaA:"A"}}),$(".input-color").colorpicker({colorFormat:"#HEX"}).on("change",function(){$(this).css({"background-color":$(this).val(),color:M($(this).val())})}).trigger("change"),$(".id-remove").button({icons:{primary:"ui-icon-trash"},text:!1}).click(function(){if(m.options.l.length){var e=$(this).data("index");m.options.l.splice(e,1),m.options.l.length||f(),k(),S(),w()}}).css({width:22,height:22}),$(".id-options").button({icons:{primary:"ui-icon-gear"},text:!1}).click(function(){!function(e){var t=m.options.l[e],n=$("#dialog-line-options");if(n.data("index",e),!n.data("inited")){n.data("inited",!0);var o=0,i="";for(var a in settings.extraOptions)if(settings.extraOptions.hasOwnProperty(a)){if(o++,i+="",i+='","offset"===a)i+='\n";else if(settings.extraOptions[a].values){i+='"}else i+='";i+=""}n.find("table").html(i),n.dialog({autoOpen:!1,modal:!0,width:430,resizable:!1,height:32*o+120,buttons:[{text:_("Ok"),click:function(){var e=$("#dialog-line-options"),t=e.data("index"),n=!1,o=m.options.l[t];e.find(".dialog-line-option").each(function(){var e=$(this).data("option");"checkbox"===$(this).attr("type")?$(this).prop("checked")!==o[e]&&(n=!0,o[e]=$(this).prop("checked")):$(this).val()!=o[e]&&(n=!0,o[e]=$(this).val())}),n&&x(),e.dialog("close")}},{text:_("Cancel"),click:function(){$("#dialog-line-options").dialog("close")}}]})}n.find(".dialog-line-option").each(function(){var e=$(this).data("option");"checkbox"===$(this).attr("type")?("true"===t[e]&&(t[e]=!0),"false"===t[e]&&(t[e]=!1),null===$(this).data("default")||void 0===$(this).data("default")||void 0!==t[e]&&""!==t[e]&&null!==t[e]||(t[e]="true"===$(this).data("default")),$(this).prop("checked",!0===t[e])):(null===$(this).data("default")||void 0===$(this).data("default")||void 0!==t[e]&&""!==t[e]&&null!==t[e]||(t[e]=$(this).data("default")),$(this).val(void 0===t[e]?"":t[e]))}),n.dialog("option","title",_("Edit options for line %s",e+1)),n.dialog("open")}($(this).data("index"))}).css({width:22,height:22}),$(".select-dialog").button({text:!1,icons:{primary:"ui-icon-folder-open"}}).css({width:25,height:22}).click(function(){var o=$(this).data("index"),e=$('[data-option="instance"][data-index="'+o+'"]').val();e||(e=u),$("#dialog-select-member").selectId("show",m.options.l[o].id,{common:{custom:e}},function(e,t,n){m.options.l[o].id=e,$('.ids[data-index="'+o+'"]').val(e).trigger("change"),n&&"boolean"===n.common.type&&($('select[data-option="aggregate"][data-index="'+o+'"]').val("onchange").trigger("change"),$('select[data-option="chartType"][data-index="'+o+'"]').val("steps").trigger("change"),$('input[data-option="min"][data-index="'+o+'"]').val(0).trigger("change"),$('input[data-option="max"][data-index="'+o+'"]').val(10).trigger("change")),k()})}),$(".options-lines").each(function(){var e=$(this),t=$(this).data("index"),n=$(this).data("option");void 0!==m.options.l[t][n]&&("checkbox"===e.attr("type")?("true"===m.options.l[t][n]&&(m.options.l[t][n]=!0),"false"===m.options.l[t][n]&&(m.options.l[t][n]=!1),e.prop("checked",!!m.options.l[t][n])):e.val(m.options.l[t][n]))}),$(".spinner-lines").attr("type","number"),"function"==typeof c&&c(),$(".toggleable").click(function(){var e=$(this).data("index"),t=$('col[data-index="'+e+'"]');t.data("width")||t.data("width",t.attr("width")),t.data("hidden")?(t.data("hidden",!1),t.attr("width",t.data("width")),$(this).css("width",t.data("width"))):(t.data("hidden",!0),t.attr("width","10px"),$(this).css("width","10px"))}),$('select[data-option="chartType"]').on("change",function(){"spline"===$(this).val()&&alert("Experimental")}),v()},100)}function y(){var e=JSON.parse(JSON.stringify(m.options));for(var t in e)e.hasOwnProperty(t)&&""===e[t]&&delete e[t];for(var n=0;n',e+='",e+=''+o.common.name+"",e+=''+a(o.native.url)+"",e+='',e+=""}var i=$("#presets_table");i.html(e),$(".presets-btn-load").button().click(function(){var e=$(this).data("name");F(e,function(){i.find("tr").removeClass("presets-selected"),i.find('tr[data-name="'+e+'"]').addClass("presets-selected")})}),$(".presets-btn-delete").button({icons:{secondary:"ui-icon-trash"},text:!1}).click(function(){var t=$(this).data("name");window.confirm(_("Are you sure?"))&&s.emit("delObject",t,function(e){delete l[t],O()})}).css({width:32,height:32}),$(".presets-btn-rename").button({icons:{secondary:"ui-icon-pencil"},text:!1}).click(function(){var a=$(this).data("name");$("#dialog-new-preset-name").val(l[a].common.name),$("#dialog-new-preset-info-tr").hide(),$("#dialog-new-preset").dialog({autoOpen:!0,modal:!0,title:_("Enter chart name"),width:430,resizable:!1,buttons:[{id:"dialog-new-preset-ok",text:_("Ok"),click:function(){var e,n,o,t=$("#dialog-new-preset-name").val(),i=L(t);l[i]&&!window.confirm(_("Overwrite existing?"))||(e=a,n=t,o=function(){$("#dialog-new-preset").dialog("close")},s.emit("getObject",e,function(e,t){s.emit("delObject",t._id,function(e){delete l[t._id],t.common.name=n,t._id=L(name),s.emit("setObject",t._id,t,function(e){l[t._id]=t,c=t._id,O(),o&&o()})})}))}},{text:_("Cancel"),click:function(){$("#dialog-new-preset").dialog("close")}}]})}).css({width:32,height:32})}function T(){$(".value").each(function(){var e=$(this),t=e.attr("id");void 0!==m.options[t]&&("checkbox"===e.attr("type")?("true"===m.options[t]&&(m.options[t]=!0),"false"===m.options[t]&&(m.options[t]=!1),e.prop("checked",!!m.options[t])):e.val(m.options[t]))}),(m.options.bg||0===m.options.bg)&&(m.options.bg&&m.options.bg.length<3&&parseInt(m.options.bg,10).toString()===m.options.bg.toString()?($("#bg").hide(),$("#bg_predefined").show().val(m.options.bg)):($("#bg_custom").prop("checked",!0),$("#bg").show(),$("#bg_predefined").hide()))}!function(){for(var e in console.log("Initialize..."),settings.maxLines<2&&$("#ids_add").hide(),settings)settings.hasOwnProperty(e)&&"object"==typeof settings[e]&&!1===settings[e].enabled&&$("."+e).remove();f();var t=location.href.split("?")[1];if(t&&t.match(/^preset=/)?(c=t.replace(/^preset=/,""),d=!0):b(location.href.split("?")[1]),"undefined"!=typeof sysLang&&(systemLang=sysLang||"en"),$("#dialog-select-member").selectId("init",{filter:{common:{custom:!0}},imgPath:"../lib/css/fancytree/",noMultiselect:!0,connCfg:{socketUrl:socketUrl,socketSession:socketSession,socketName:"flotEditDialog",upgrade:"undefined"!=typeof socketForceWebSockets?!socketForceWebSockets:void 0,rememberUpgrade:"undefined"!=typeof socketForceWebSockets?socketForceWebSockets:void 0,transports:"undefined"!=typeof socketForceWebSockets&&socketForceWebSockets?["websocket"]:void 0},columns:["name","role","room","value"],texts:{select:_("Select"),cancel:_("Cancel"),all:_("All"),id:_("ID"),name:_("Name"),role:_("Role"),room:_("Room"),value:_("Value"),selectid:_("Select ID"),from:_("From"),lc:_("Last changed"),ts:_("Time stamp"),wait:_("Processing..."),ack:_("Acknowledged")}}),"undefined"!=typeof Storage&&!c){var n=localStorage.getItem("yunkong2.Flot");if(n)try{n=JSON.parse(n);var o=document.location.href.split("?");o[1]?(n.options=m.options,m=n,S(),document.location.href=o[0]):n.options&&(m=n)}catch(e){console.log("Cannot parse stored settings")}}$("#autoUpdate").change(function(){m["auto-update"]=$(this).prop("checked")?"true":"false",x(),"true"===m["auto-update"]?$("#updatePreview").hide():$("#updatePreview").show()}).prop("checked","true"===m["auto-update"]),$("#arrangeBools").button().click(function(){for(var e=0,t=null,n=0;n");$("body").append(t[0]),t[0].id="temp_div",t.css({position:"absolute"}),t.css({top:e.position().top,left:0}),t.height(e.height()),t.width("100%")}}),window.onbeforeunload=function(e){return console.log("onbeforeunload"),d&&c&&y()!==l[c].native.url?(e.returnValue=_("You have unsaved settings. Discard?"),e.returnValue):null},T(),setTimeout(function(){console.log("Init connection..."),(s=io.connect(socketUrl,{query:{key:socketSession},reconnectionDelay:1e4,reconnectionAttempts:1/0,upgrade:"undefined"!=typeof socketForceWebSockets?!socketForceWebSockets:void 0,rememberUpgrade:"undefined"!=typeof socketForceWebSockets?socketForceWebSockets:void 0,transports:"undefined"!=typeof socketForceWebSockets&&socketForceWebSockets?["websocket"]:void 0})).on("connect",function(){console.log("Connected"),setTimeout(function(){s.emit("name","flotEdit")},50),setTimeout(function(){var a;a=function(){s.emit("getObject","system.config",function(e,t){t&&t.common&&(u=t.common.defaultHistory||"history.0"),s.emit("getObjectView","system","instance",{startkey:"system.adapter.",endkey:"system.adapter.香"},function(e,t){if(!e&&t&&t.rows&&0!==t.rows.length)for(var n=0;n";for(var t in l)e+='";$("#dialog-new-preset-info-tr").show(),$("#dialog-new-preset-into").html(e).val(c).unbind("change").bind("change",function(){var e=$(this).val();e?$("#dialog-new-preset-name-tr").hide():$("#dialog-new-preset-name-tr").show()}).trigger("change"),$("#dialog-new-preset").dialog({autoOpen:!0,modal:!0,title:_("Enter chart name"),width:430,resizable:!1,buttons:[{id:"dialog-new-preset-ok",text:_("Ok"),click:function(){var e=$("#dialog-new-preset-into").val(),t=e;(e||(e=$("#dialog-new-preset-name").val(),t=L(e),!l[t]||window.confirm(_("Overwrite existing?"))))&&B(t,e,function(){O(),$("#dialog-new-preset").dialog("close")})}},{text:_("Cancel"),click:function(){$("#dialog-new-preset").dialog("close")}}]})}}).css({"font-size":14,"white-space":"nowrap"}),t&&t.rows&&t.rows.length?c&&i.button("disable"):($("#accordion").tabs({active:1}),i.button("enable")),$("#dialog-new-preset-name").keyup(function(e){13===e.keyCode&&$("#dialog-new-preset-ok").trigger("click")}),a&&a()})},100)}),s.on("disconnect",function(){console.log("Lost connection")}),s.on("error",function(e){console.error("Socket error: "+e)}),s.on("connect_error",function(e){console.error("Socket error: "+e)})},200)}()}); +//# sourceMappingURL=edit.js.map diff --git a/www/js/edit.js.map b/www/js/edit.js.map new file mode 100644 index 0000000..789015c --- /dev/null +++ b/www/js/edit.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["jquery-deparam.js","jquery.colorpicker.js","settings.js","words.js"],"names":["deparam","require","exports","module","jquery","define","amd","global","eval","e","window","jQuery","$","params","coerce","obj","coerce_types","true","false","null","replace","split","forEach","v","val","param","key","decodeURIComponent","cur","i","keys","keys_last","length","test","shift","concat","isNaN","undefined","Object","prototype","toString","call","push","hasOwnProperty","factory","_colorpicker_index","_intToHex","dec","result","Math","round","toLowerCase","_keycode","keycode","colorpicker","this","regional","","ok","cancel","none","button","title","transparent","hsvH","hsvS","hsvV","rgbR","rgbG","rgbB","labL","labA","labB","hslH","hslS","hslL","cmykC","cmykM","cmykY","cmykK","alphaA","swatchesNames","html","swatches","name","r","g","b","writers","#HEX","color","that","_formatColor","#HEX3","hex3","HEX3","HEX","rgb","getRGB","#HEXA","#HEXA4","hexa4","HEXA4","HEXA","a","getAlpha","RGB","RGBA","RGB%","RGBA%","HSL","HSLA","HSL%","HSLA%","NAME","_closestName","EXACT","_exactName","parsers","Color","c","_getSwatch","trim","m","exec","parseFloat","setHSL","setAlpha","parseInt","String","partslists","full","popup","draggable","inline","limits","websafe","limit","nibble","binary","swatch","setRGB","parts","header","inst","part","_onclick","event","preventDefault","close","options","revert","init","_getRegional","showCloseButton","prependTo","dialog","_hoverable","_focusable","on","draggableOptions","handle","containment","disable","map","pointer","width","height","_mousedown","_mouseup","_mousemove","_keydown","_html","layers","opened","offset","p","x","pageX","left","y","pageY","top","stopImmediatePropagation","off","focus","document","_callback","max","min","mode","setHSV","_change","change","value","x_channel_map","h","s","x_change","37","39","y_channel_map","y_change","38","40","set","35","36","which","getChannel","shiftKey","ctrlKey","setChannel","size","alpha","appendTo","update","step","css","background-position","opacity","show","hide","repaint","hsv","getHSV","copy","toCSS","bar","33","34","ab","preview","both","initial","initial_alpha","current","current_alpha","onclick","currentColor","attr","inputs","click","_updateAllParts","each","$this","prop","lab","l","setLAB","getLAB","cmyk","k","setCMYK","getCMYK","input","hex","is","toHex","_parseColor","_eachSwatch","swatchesWidth","footer","id_transparent","colorpicker_index","id_none","showNoneButton","showCancelButton","fn","controlgroup","changed","disabled","spaces","hsl","illuminant","args","arguments","_clip","_hexify","number","digits","lsd","charAt","_rgb_to_xyz","pow","z","_rgb_to_hsv","del_R","del_G","del_B","minVal","maxVal","delta","_rgb_to_hsl","_xyz_to_lab","xyz","_rgb_to_cmy","_cmy_to_cmyk","cmy","K","_a","channel","getHSL","var_1","var_2","hue_to_rgb","var_h","var_i","var_3","lab2","floor","v1","v2","vH","extend","getChannels","L","A","B","getSpaces","distance","getter","toUpperCase","equals","steps","widget","altAlpha","altField","altOnChange","altProperties","autoOpen","buttonClass","buttonColorize","buttonImage","buttonImageOnly","buttonText","closeOnEscape","closeOnOutside","colorFormat","duration","hideOn","inlineFrame","layout","modal","okOnEnter","position","showAnim","showOn","showOptions","open","select","stop","_create","text","widgetEventPrefix","generated","image","overlay","events","window_resize","document_keydown","document_click_html","element","_setColor","src","alt","_setImageBackground","first","insertAfter","_generate","_setOption","Widget","apply","enable","removeClass","index","addClass","_setAltField","property","properties","setColor","getColor","format","_generateInline","_generatePopup","target","has","blur","parents","keyCode","keydown","keyup","parts_list","layout_parts","table","classes","pos","callback","bitmap","columns","rows","cell","w","colspan","walked","sort","_layoutTable","join","_initAllParts","_effectGeneric","slide","fade","effects","_effectShow","_effectHide","zIndex","insertBefore","remove","siblings","of","my","at","collision","_repaintAllParts","destroy","resizeOverlay","data","formatted","colorPicker","_trigger","stoppedChanging","hover","_getSwatches","isPlainObject","currentSwatches","nameOrIndex","isArray","swatchName","_parseFormat","pattern","typeRegexps","d","f","typeConverters","setters","channels","converters","setter","variable","match","slice","type","values","RegExp","channelIndex","inArray","formats","parser","n","types","vanderlee","settings","maxLines","button_arrange_bools","enabled","line","instance","id","style","_class","inputStyle","idSelect","aggregate","chartType","fill","points","unit","yaxe","defaultValueName","xaxe","extraOptions","removeButton","yOffset","xticks","yticks","thickness","default","shadowsize","commonYAxis","names","ignoreNull","smoothing","systemDictionary","0","cn","en","1","2","3","4","5","Ok","role","Update objects","All","With","Without","Update states","edit file","restart script","Select","Select ID","add children","edit enum","System settings","reload","Delete object","no null","%s ago","Y-Offset","ID","Role","Room","Value","Save into:","Name:","save","load","Presets","IDs","new","Enter chart name","save %s","Input data","Options","Range:","5 seconds","10 seconds","15 seconds","20 seconds","30 seconds","1 minute","2 minutes","5 minutes","10 minutes","15 minutes","20 minutes","30 minutes","1 hour","2 hours","3 hours","6 hours","12 hours","1 day","2 days","3 days","7 days","14 days","1 month","2 months","3 months","6 months","1 year","2 years","Width:","Height:","area","lineplot","scatterplot","spline","Stack","Window background:","Custom chart background:","Chart background:","X axis labels color:","Y axis labels color:","Show legend:","Title:","Title position:","Top, left, inside","Top, right, inside","Top, center, inside","Middle, left, inside","Middle, right, inside","Bottom, left, inside","Bottom, right, inside","Bottom, center, inside","Top, right, outside","Middle, right, outside","Bottom, right, outside","Bottom, center, outside","Min:","Max:","User defined names:","Predefined background:","User defined","Background:","Hover details:","Time format:","Default","Smoothing","After comma","Open","Update","Reset settings","From","Last changed","Time stamp","Acknowledged","Edit","Members","Loading...","Processing...","With lines","Without lines","Inside / With lines","Outside/ With lines","Inside / No lines","Outside / No lines","Interpolate:","Steps","Pie","Top, left","Top, right","Bottom, left","Bottom, right","Title color:","Title size:","Fill range:","Units:","yes","bottom","right","No border:","Time","day","month","year","Individual","Aggregation:","relative","static","now","today","this month","this year","Start:","End:","Aggregate","Step type:","seconds","Seconds","Step span:","Link","Counts","ignore 'null'","Time Span","Appearance","Title","Offset","Aggregation","Chart Type","Min","Max","Unit","Y Axis","X Axis","update Preview","Cancel","Name","Live update every:","counts","Add new line","Animation:","no","0s","300ms","500ms","1s","2s","3s","5s","10s","30s","60s","2m","3m","4m","5m","10m","15m","30m","45m","1H","2H","6H","12H","1D","2D","3D","4D","1W","2W","4W","8W","12W","26W","1M","2M","3M","6M","1Y","2Y","average","total","leftColor","rightColor","topColor","bottomColor","Auto-update:","Use comma:","Common Y Axis","Instance","Line Width","Shadow Size","ignore 'null':","onchange","Border color:","Grid color:","Border width:","Enable zoom and pan:","Arrange bools","NULL as","MinMax","last value","Hide edit button:","minmax","ØL","ØS","Line","end of minute","end of 5 minutes","end of 10 minutes","end of 30 minutes","end of hour","end of 2 hours","end of 3 hours","end of 4 hours","end of 6 hours","end of 8 hours","end of 12 hours","end of day","end of sunday","end of saturday","1minute","5minutes","10minutes","30minutes","1hour","2hours","3hours","4hours","6hours","8hours","12hours","weekEurope","weekUsa","Bar settings","Fill color:","Show labels:","top over","top under","middle","Bars width:","Label font size:","Label color:","Markings","Line ID","Fill","ØL","ØS","Text","Text position","Text offset","Text size","Text color","Add new markings","Left","Right","Upper value or ID","Lower value or ID","X-Axis ticks","Y-Axis ticks","ignore null values","Ticks from:","use 0 instead of null values","More","Edit options for line %s","Legend columns:","Legend opacity (from 0 to 1):","Legend background:","Fill(0to1)","Points","afterComma","dashes","dashLength","spaceLength","chapter_time","time_timeType","time_relativeEnd","time_range","time_live","time_start","time_end","time_aggregateType","time_aggregateSpan","time_ticks","chapter_options","options_width","options_height","options_noborder","options_window_bg","options_bg_custom","options_bg","options_x_labels_color","options_y_labels_color","options_title","options_titlePos","options_titleColor","options_titleSize","options_legend","options_legColumns","options_legBg","options_legBgOpacity","options_barColor","options_barLabels","options_barWidth","options_barFontSize","options_barFontColor","options_smoothing","options_afterComma","options_useComma","options_zoom","options_noedit","options_animation","options_border_color","options_grid_color","options_border_width","option_markline","ready","socket","defaultColors","instances","timer","showTimer","defaultHistory","presets","currentChart","onlyOneChart","loaded","setup","parseSettings","path","_ids","ids","colors","_colors","_names","units","_units","strokeWidth","aggregateType","aggregateSpan","relativeEnd","j","art","timeArt","timeType","$presetsTable","find","lines","JSON","parse","stringify","addLine","showMarklines","setTimeout","textLines","t","textPosition","_","background-color","invertColor","trigger","icons","primary","splice","delayedUpdate","selectId","common","custom","newId","ignore","showIds","thead","textInstances","colindex","systemLang","$dialogLineOptions","count","opt","resizable","buttons","showOptionsDialog","$col","alert","getSettings","_options","clearTimeout","native","url","location","href","delayedPreview","Date","start","toLocaleDateString","start_time","toLocaleTimeString","end","end_time","localStorage","setItem","updatePreview","$chart","getTime","hexcolor","substr","saveChart","name2Chart","emit","err","loadChart","_id","tabs","active","fillValues","getDesc","showPresets","texts","secondary","confirm","newName","bg","console","log","sysLang","filter","imgPath","noMultiselect","connCfg","socketUrl","socketSession","socketName","upgrade","socketForceWebSockets","rememberUpgrade","transports","all","room","selectid","from","lc","ts","wait","ack","_setup","getItem","axis","$accordion","hasClass","py","fc","fs","addMarkline","reset","font-size","white-space","translateAll","acc","animate","easing","activate","ui","newHeader","bottomElemOriginalHeight","autoHide","handles","resize","outerHeight","originalSize","$ifr","$d","append","onbeforeunload","returnValue","io","connect","query","reconnectionDelay","reconnectionAttempts","Infinity","startkey","endkey","doc","indexOf","substring","res","$save","label","showLabel","unbind","bind","error"],"mappings":"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","file":"edit.js","sourcesContent":["(function(deparam){\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n var jquery = require('jquery');\n module.exports = deparam(jquery);\n } else if (typeof define === 'function' && define.amd){\n define(['jquery'], function(jquery){\n return deparam(jquery);\n });\n } else {\n var global\n try {\n global = (false || eval)('this'); // best cross-browser way to determine global for < ES5\n } catch (e) {\n global = window; // fails only if browser (https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives)\n }\n global.deparam = deparam(jQuery); // assume jQuery is in global namespace\n }\n})(function ($) {\n var deparam = function( params, coerce ) {\n var obj = {},\n coerce_types = { 'true': !0, 'false': !1, 'null': null };\n\n // Iterate over all name=value pairs.\n params.replace(/\\+/g, ' ').split('&').forEach(function(v){\n var param = v.split( '=' ),\n key = decodeURIComponent( param[0] ),\n val,\n cur = obj,\n i = 0,\n\n // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it\n // into its component parts.\n keys = key.split( '][' ),\n keys_last = keys.length - 1;\n\n // If the first keys part contains [ and the last ends with ], then []\n // are correctly balanced.\n if ( /\\[/.test( keys[0] ) && /\\]$/.test( keys[ keys_last ] ) ) {\n // Remove the trailing ] from the last keys part.\n keys[ keys_last ] = keys[ keys_last ].replace( /\\]$/, '' );\n\n // Split first keys part into two parts on the [ and add them back onto\n // the beginning of the keys array.\n keys = keys.shift().split('[').concat( keys );\n\n keys_last = keys.length - 1;\n } else {\n // Basic 'foo' style key.\n keys_last = 0;\n }\n\n // Are we dealing with a name=value pair, or just a name?\n if ( param.length === 2 ) {\n val = decodeURIComponent( param[1] );\n\n // Coerce values.\n if ( coerce ) {\n val = val && !isNaN(val) && ((+val + '') === val) ? +val // number\n : val === 'undefined' ? undefined // undefined\n : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null\n : val; // string\n }\n\n if ( keys_last ) {\n // Complex key, build deep object structure based on a few rules:\n // * The 'cur' pointer starts at the object top-level.\n // * [] = array push (n is set to array length), [n] = array if n is\n // numeric, otherwise object.\n // * If at the last keys part, set the value.\n // * For each keys part, if the current level is undefined create an\n // object or array based on the type of the next keys part.\n // * Move the 'cur' pointer to the next level.\n // * Rinse & repeat.\n for ( ; i <= keys_last; i++ ) {\n key = keys[i] === '' ? cur.length : keys[i];\n cur = cur[key] = i < keys_last\n ? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )\n : val;\n }\n\n } else {\n // Simple key, even simpler rules, since only scalars and shallow\n // arrays are allowed.\n\n if ( Object.prototype.toString.call( obj[key] ) === '[object Array]' ) {\n // val is already an array, so push on the next value.\n obj[key].push( val );\n\n } else if ( {}.hasOwnProperty.call(obj, key) ) {\n // val isn't an array, but since a second value has been specified,\n // convert val into an array.\n obj[key] = [ obj[key], val ];\n\n } else {\n // val is a scalar.\n obj[key] = val;\n }\n }\n\n } else if ( key ) {\n // No value was defined, so set something meaningful.\n obj[key] = coerce\n ? undefined\n : '';\n }\n });\n\n return obj;\n };\n $.prototype.deparam = $.deparam = deparam;\n return deparam;\n});\n","/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */\n/*globals jQuery,Color,define */\n\n/*!\n * ColorPicker\n *\n * Copyright (c) 2011-2017 Martijn W. van der Lee\n * Licensed under the MIT.\n */\n/* Full-featured colorpicker for jQueryUI with full theming support.\n * Most images from jPicker by Christopher T. Tillman.\n * Sourcecode created from scratch by Martijn W. van der Lee.\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function ($) {\n\t\"use strict\";\n\n\tvar _colorpicker_index = 0,\n\n\t\t_container_popup = '
',\n\t\t_container_inlineFrame = '
',\n\t\t_container_inline = '
',\n\n\t\t_intToHex = function (dec) {\n\t\t\tvar result = Math.round(dec).toString(16);\n\t\t\tif (result.length === 1) {\n\t\t\t\tresult = ('0' + result);\n\t\t\t}\n\t\t\treturn result.toLowerCase();\n\t\t},\n\t\t\n\t\t_keycode = {\n\t\t\tisPrint: function(keycode) {\n\t\t\t\treturn keycode == 32\t\t\t\t\t\t// spacebar\n\t\t\t\t\t|| (keycode >= 48 && keycode <= 57)\t\t// number keys\n\t\t\t\t\t|| (keycode >= 65 && keycode <= 90)\t\t// letter keys\n\t\t\t\t\t|| (keycode >= 96 && keycode <= 111)\t// numpad keys\n\t\t\t\t\t|| (keycode >= 186 && keycode < 192)\t// ;=,-./` (in order)\n\t\t\t\t\t|| (keycode >= 219 && keycode < 222);\t// [\\]' (in order)\n\t\t\t},\t\t\t\n\t\t\tisHex: function(keycode) {\n\t\t\t\treturn (keycode >= 48 && keycode <= 57)\t\t// number keys\n\t\t\t\t\t|| (keycode >= 65 && keycode <= 70);\t// a-f\n\t\t\t}\n\t\t},\n\n\t\t_layoutTable = function(layout, callback) {\n\t\t\tvar bitmap,\n\t\t\t\tx, y,\n\t\t\t\twidth, height,\n\t\t\t\tcolumns, rows,\n\t\t\t\tindex,\n\t\t\t\tcell,\n\t\t\t\thtml,\n\t\t\t\tw, h,\n\t\t\t\tcolspan,\n\t\t\t\twalked;\n\n\t\t\tlayout.sort(function(a, b) {\n\t\t\t\tif (a.pos[1] === b.pos[1]) {\n\t\t\t\t\treturn a.pos[0] - b.pos[0];\n\t\t\t\t}\n\t\t\t\treturn a.pos[1] - b.pos[1];\n\t\t\t});\n\n\t\t\t// Determine dimensions of the table\n\t\t\twidth = 0;\n\t\t\theight = 0;\n\t\t\t$.each (layout, function(index, part) {\n\t\t\t\twidth = Math.max(width, part.pos[0] + part.pos[2]);\n\t\t\t\theight = Math.max(height, part.pos[1] + part.pos[3]);\n\t\t\t});\n\n\t\t\t// Initialize bitmap\n\t\t\tbitmap = [];\n\t\t\tfor (x = 0; x < width; ++x) {\n\t\t\t\tbitmap.push([]);\n\t\t\t}\n\n\t\t\t// Mark rows and columns which have layout assigned\n\t\t\trows\t= [];\n\t\t\tcolumns = [];\n\t\t\t$.each(layout, function(index, part) {\n\t\t\t\t// mark columns\n\t\t\t\tfor (x = 0; x < part.pos[2]; x += 1) {\n\t\t\t\t\tcolumns[part.pos[0] + x] = true;\n\t\t\t\t}\n\t\t\t\tfor (y = 0; y < part.pos[3]; y += 1) {\n\t\t\t\t\trows[part.pos[1] + y] = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Generate the table\n\t\t\thtml = '';\n\t\t\tcell = layout[index = 0];\n\t\t\tfor (y = 0; y < height; ++y) {\n\t\t\t\thtml += '';\n x = 0;\n while (x < width) {\n\t\t\t\t\tif (typeof cell !== 'undefined' && x === cell.pos[0] && y === cell.pos[1]) {\n\t\t\t\t\t\t// Create a \"real\" cell\n\t\t\t\t\t\thtml += callback(cell, x, y);\n\n\t\t\t\t\t\tfor (h = 0; h < cell.pos[3]; h +=1) {\n\t\t\t\t\t\t\tfor (w = 0; w < cell.pos[2]; w +=1) {\n\t\t\t\t\t\t\t\tbitmap[x + w][y + h] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tx += cell.pos[2];\n\t\t\t\t\t\tcell = layout[++index];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fill in the gaps\n\t\t\t\t\t\tcolspan = 0;\n\t\t\t\t\t\twalked = false;\n\n\t\t\t\t\t\twhile (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y === cell.pos[1] && x < cell.pos[0]))) {\n\t\t\t\t\t\t\tif (columns[x] === true) {\n\t\t\t\t\t\t\t\tcolspan += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twalked = true;\n\t\t\t\t\t\t\tx += 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (colspan > 0) {\n\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t} else if (!walked) {\n\t\t\t\t\t\t\tx += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '';\n\t\t\t}\n\n\t\t\treturn '' + html + '
';\n\t\t};\n\n\t$.colorpicker = new function() {\n\t\tthis.regional = {\n\t\t\t'':\t{\n\t\t\t\tok:\t\t\t\t'OK',\n\t\t\t\tcancel:\t\t\t'Cancel',\n\t\t\t\tnone:\t\t\t'None',\n\t\t\t\tbutton:\t\t\t'Color',\n\t\t\t\ttitle:\t\t\t'Pick a color',\n\t\t\t\ttransparent:\t'Transparent',\n\t\t\t\thsvH:\t\t\t'H',\n\t\t\t\thsvS:\t\t\t'S',\n\t\t\t\thsvV:\t\t\t'V',\n\t\t\t\trgbR:\t\t\t'R',\n\t\t\t\trgbG:\t\t\t'G',\n\t\t\t\trgbB:\t\t\t'B',\n\t\t\t\tlabL:\t\t\t'L',\n\t\t\t\tlabA:\t\t\t'a',\n\t\t\t\tlabB:\t\t\t'b',\n\t\t\t\thslH:\t\t\t'H',\n\t\t\t\thslS:\t\t\t'S',\n\t\t\t\thslL:\t\t\t'L',\n\t\t\t\tcmykC:\t\t\t'C',\n\t\t\t\tcmykM:\t\t\t'M',\n\t\t\t\tcmykY:\t\t\t'Y',\n\t\t\t\tcmykK:\t\t\t'K',\n\t\t\t\talphaA:\t\t\t'A'\n\t\t\t}\n\t\t};\n\n\t\tthis.swatchesNames = {\n\t\t\t'html':\t\t'HTML'\n\t\t};\n\n\t\tthis.swatches = {\n\t\t\t'html':\t[\n\t\t\t\t{name: 'black',\t\t\t\t\tr: 0, g: 0, b: 0},\n\t\t\t\t{name: 'dimgray',\t\t\t\tr: 0.4117647058823529, g: 0.4117647058823529, b: 0.4117647058823529},\n\t\t\t\t{name: 'gray',\t\t\t\t\tr: 0.5019607843137255, g: 0.5019607843137255, b: 0.5019607843137255},\n\t\t\t\t{name: 'darkgray',\t\t\t\tr: 0.6627450980392157, g: 0.6627450980392157, b: 0.6627450980392157},\n\t\t\t\t{name: 'silver',\t\t\t\tr: 0.7529411764705882, g: 0.7529411764705882, b: 0.7529411764705882},\n\t\t\t\t{name: 'lightgrey',\t\t\t\tr: 0.8274509803921568, g: 0.8274509803921568, b: 0.8274509803921568},\n\t\t\t\t{name: 'gainsboro',\t\t\t\tr: 0.8627450980392157, g: 0.8627450980392157, b: 0.8627450980392157},\n\t\t\t\t{name: 'whitesmoke',\t\t\tr: 0.9607843137254902, g: 0.9607843137254902, b: 0.9607843137254902},\n\t\t\t\t{name: 'white',\t\t\t\t\tr: 1, g: 1, b: 1},\n\t\t\t\t{name: 'rosybrown',\t\t\t\tr: 0.7372549019607844, g: 0.5607843137254902, b: 0.5607843137254902},\n\t\t\t\t{name: 'indianred',\t\t\t\tr: 0.803921568627451, g: 0.3607843137254902, b: 0.3607843137254902},\n\t\t\t\t{name: 'brown',\t\t\t\t\tr: 0.6470588235294118, g: 0.16470588235294117, b: 0.16470588235294117},\n\t\t\t\t{name: 'firebrick',\t\t\t\tr: 0.6980392156862745, g: 0.13333333333333333, b: 0.13333333333333333},\n\t\t\t\t{name: 'lightcoral',\t\t\tr: 0.9411764705882353, g: 0.5019607843137255, b: 0.5019607843137255},\n\t\t\t\t{name: 'maroon',\t\t\t\tr: 0.5019607843137255, g: 0, b: 0},\n\t\t\t\t{name: 'darkred',\t\t\t\tr: 0.5450980392156862, g: 0, b: 0},\n\t\t\t\t{name: 'red',\t\t\t\t\tr: 1, g: 0, b: 0},\n\t\t\t\t{name: 'snow',\t\t\t\t\tr: 1, g: 0.9803921568627451, b: 0.9803921568627451},\n\t\t\t\t{name: 'salmon',\t\t\t\tr: 0.9803921568627451, g: 0.5019607843137255, b: 0.4470588235294118},\n\t\t\t\t{name: 'mistyrose',\t\t\t\tr: 1, g: 0.8941176470588236, b: 0.8823529411764706},\n\t\t\t\t{name: 'tomato',\t\t\t\tr: 1, g: 0.38823529411764707, b: 0.2784313725490196},\n\t\t\t\t{name: 'darksalmon',\t\t\tr: 0.9137254901960784, g: 0.5882352941176471, b: 0.47843137254901963},\n\t\t\t\t{name: 'orangered',\t\t\t\tr: 1, g: 0.27058823529411763, b: 0},\n\t\t\t\t{name: 'coral',\t\t\t\t\tr: 1, g: 0.4980392156862745, b: 0.3137254901960784},\n\t\t\t\t{name: 'lightsalmon',\t\t\tr: 1, g: 0.6274509803921569, b: 0.47843137254901963},\n\t\t\t\t{name: 'sienna',\t\t\t\tr: 0.6274509803921569, g: 0.3215686274509804, b: 0.17647058823529413},\n\t\t\t\t{name: 'seashell',\t\t\t\tr: 1, g: 0.9607843137254902, b: 0.9333333333333333},\n\t\t\t\t{name: 'chocolate',\t\t\t\tr: 0.8235294117647058, g: 0.4117647058823529, b: 0.11764705882352941},\n\t\t\t\t{name: 'saddlebrown',\t\t\tr: 0.5450980392156862, g: 0.27058823529411763, b: 0.07450980392156863},\n\t\t\t\t{name: 'sandybrown',\t\t\tr: 0.9568627450980393, g: 0.6431372549019608, b: 0.3764705882352941},\n\t\t\t\t{name: 'peachpuff',\t\t\t\tr: 1, g: 0.8549019607843137, b: 0.7254901960784313},\n\t\t\t\t{name: 'peru',\t\t\t\t\tr: 0.803921568627451, g: 0.5215686274509804, b: 0.24705882352941178},\n\t\t\t\t{name: 'linen',\t\t\t\t\tr: 0.9803921568627451, g: 0.9411764705882353, b: 0.9019607843137255},\n\t\t\t\t{name: 'darkorange',\t\t\tr: 1, g: 0.5490196078431373, b: 0},\n\t\t\t\t{name: 'bisque',\t\t\t\tr: 1, g: 0.8941176470588236, b: 0.7686274509803922},\n\t\t\t\t{name: 'burlywood',\t\t\t\tr: 0.8705882352941177, g: 0.7215686274509804, b: 0.5294117647058824},\n\t\t\t\t{name: 'tan',\t\t\t\t\tr: 0.8235294117647058, g: 0.7058823529411765, b: 0.5490196078431373},\n\t\t\t\t{name: 'antiquewhite',\t\t\tr: 0.9803921568627451, g: 0.9215686274509803, b: 0.8431372549019608},\n\t\t\t\t{name: 'navajowhite',\t\t\tr: 1, g: 0.8705882352941177, b: 0.6784313725490196},\n\t\t\t\t{name: 'blanchedalmond',\t\tr: 1, g: 0.9215686274509803, b: 0.803921568627451},\n\t\t\t\t{name: 'papayawhip',\t\t\tr: 1, g: 0.9372549019607843, b: 0.8352941176470589},\n\t\t\t\t{name: 'orange',\t\t\t\tr: 1, g: 0.6470588235294118, b: 0},\n\t\t\t\t{name: 'moccasin',\t\t\t\tr: 1, g: 0.8941176470588236, b: 0.7098039215686275},\n\t\t\t\t{name: 'wheat',\t\t\t\t\tr: 0.9607843137254902, g: 0.8705882352941177, b: 0.7019607843137254},\n\t\t\t\t{name: 'oldlace',\t\t\t\tr: 0.9921568627450981, g: 0.9607843137254902, b: 0.9019607843137255},\n\t\t\t\t{name: 'floralwhite',\t\t\tr: 1, g: 0.9803921568627451, b: 0.9411764705882353},\n\t\t\t\t{name: 'goldenrod',\t\t\t\tr: 0.8549019607843137, g: 0.6470588235294118, b: 0.12549019607843137},\n\t\t\t\t{name: 'darkgoldenrod',\t\t\tr: 0.7215686274509804, g: 0.5254901960784314, b: 0.043137254901960784},\n\t\t\t\t{name: 'cornsilk',\t\t\t\tr: 1, g: 0.9725490196078431, b: 0.8627450980392157},\n\t\t\t\t{name: 'gold',\t\t\t\t\tr: 1, g: 0.8431372549019608, b: 0},\n\t\t\t\t{name: 'palegoldenrod',\t\t\tr: 0.9333333333333333, g: 0.9098039215686274, b: 0.6666666666666666},\n\t\t\t\t{name: 'khaki',\t\t\t\t\tr: 0.9411764705882353, g: 0.9019607843137255, b: 0.5490196078431373},\n\t\t\t\t{name: 'lemonchiffon',\t\t\tr: 1, g: 0.9803921568627451, b: 0.803921568627451},\n\t\t\t\t{name: 'darkkhaki',\t\t\t\tr: 0.7411764705882353, g: 0.7176470588235294, b: 0.4196078431372549},\n\t\t\t\t{name: 'beige',\t\t\t\t\tr: 0.9607843137254902, g: 0.9607843137254902, b: 0.8627450980392157},\n\t\t\t\t{name: 'lightgoldenrodyellow',\tr: 0.9803921568627451, g: 0.9803921568627451, b: 0.8235294117647058},\n\t\t\t\t{name: 'olive',\t\t\t\t\tr: 0.5019607843137255, g: 0.5019607843137255, b: 0},\n\t\t\t\t{name: 'yellow',\t\t\t\tr: 1, g: 1, b: 0},\n\t\t\t\t{name: 'lightyellow',\t\t\tr: 1, g: 1, b: 0.8784313725490196},\n\t\t\t\t{name: 'ivory',\t\t\t\t\tr: 1, g: 1, b: 0.9411764705882353},\n\t\t\t\t{name: 'olivedrab',\t\t\t\tr: 0.4196078431372549, g: 0.5568627450980392, b: 0.13725490196078433},\n\t\t\t\t{name: 'yellowgreen',\t\t\tr: 0.6039215686274509, g: 0.803921568627451, b: 0.19607843137254902},\n\t\t\t\t{name: 'darkolivegreen',\t\tr: 0.3333333333333333, g: 0.4196078431372549, b: 0.1843137254901961},\n\t\t\t\t{name: 'greenyellow',\t\t\tr: 0.6784313725490196, g: 1, b: 0.1843137254901961},\n\t\t\t\t{name: 'lawngreen',\t\t\t\tr: 0.48627450980392156, g: 0.9882352941176471, b: 0},\n\t\t\t\t{name: 'chartreuse',\t\t\tr: 0.4980392156862745, g: 1, b: 0},\n\t\t\t\t{name: 'darkseagreen',\t\t\tr: 0.5607843137254902, g: 0.7372549019607844, b: 0.5607843137254902},\n\t\t\t\t{name: 'forestgreen',\t\t\tr: 0.13333333333333333, g: 0.5450980392156862, b: 0.13333333333333333},\n\t\t\t\t{name: 'limegreen',\t\t\t\tr: 0.19607843137254902, g: 0.803921568627451, b: 0.19607843137254902},\n\t\t\t\t{name: 'lightgreen',\t\t\tr: 0.5647058823529412, g: 0.9333333333333333, b: 0.5647058823529412},\n\t\t\t\t{name: 'palegreen',\t\t\t\tr: 0.596078431372549, g: 0.984313725490196, b: 0.596078431372549},\n\t\t\t\t{name: 'darkgreen',\t\t\t\tr: 0, g: 0.39215686274509803, b: 0},\n\t\t\t\t{name: 'green',\t\t\t\t\tr: 0, g: 0.5019607843137255, b: 0},\n\t\t\t\t{name: 'lime',\t\t\t\t\tr: 0, g: 1, b: 0},\n\t\t\t\t{name: 'honeydew',\t\t\t\tr: 0.9411764705882353, g: 1, b: 0.9411764705882353},\n\t\t\t\t{name: 'mediumseagreen',\t\tr: 0.23529411764705882, g: 0.7019607843137254, b: 0.44313725490196076},\n\t\t\t\t{name: 'seagreen',\t\t\t\tr: 0.1803921568627451, g: 0.5450980392156862, b: 0.3411764705882353},\n\t\t\t\t{name: 'springgreen',\t\t\tr: 0, g: 1, b: 0.4980392156862745},\n\t\t\t\t{name: 'mintcream',\t\t\t\tr: 0.9607843137254902, g: 1, b: 0.9803921568627451},\n\t\t\t\t{name: 'mediumspringgreen',\t\tr: 0, g: 0.9803921568627451, b: 0.6039215686274509},\n\t\t\t\t{name: 'mediumaquamarine',\t\tr: 0.4, g: 0.803921568627451, b: 0.6666666666666666},\n\t\t\t\t{name: 'aquamarine',\t\t\tr: 0.4980392156862745, g: 1, b: 0.8313725490196079},\n\t\t\t\t{name: 'turquoise',\t\t\t\tr: 0.25098039215686274, g: 0.8784313725490196, b: 0.8156862745098039},\n\t\t\t\t{name: 'lightseagreen',\t\t\tr: 0.12549019607843137, g: 0.6980392156862745, b: 0.6666666666666666},\n\t\t\t\t{name: 'mediumturquoise',\t\tr: 0.2823529411764706, g: 0.8196078431372549, b: 0.8},\n\t\t\t\t{name: 'darkslategray',\t\t\tr: 0.1843137254901961, g: 0.30980392156862746, b: 0.30980392156862746},\n\t\t\t\t{name: 'paleturquoise',\t\t\tr: 0.6862745098039216, g: 0.9333333333333333, b: 0.9333333333333333},\n\t\t\t\t{name: 'teal',\t\t\t\t\tr: 0, g: 0.5019607843137255, b: 0.5019607843137255},\n\t\t\t\t{name: 'darkcyan',\t\t\t\tr: 0, g: 0.5450980392156862, b: 0.5450980392156862},\n\t\t\t\t{name: 'darkturquoise',\t\t\tr: 0, g: 0.807843137254902, b: 0.8196078431372549},\n\t\t\t\t{name: 'aqua',\t\t\t\t\tr: 0, g: 1, b: 1},\n\t\t\t\t{name: 'cyan',\t\t\t\t\tr: 0, g: 1, b: 1},\n\t\t\t\t{name: 'lightcyan',\t\t\t\tr: 0.8784313725490196, g: 1, b: 1},\n\t\t\t\t{name: 'azure',\t\t\t\t\tr: 0.9411764705882353, g: 1, b: 1},\n\t\t\t\t{name: 'cadetblue',\t\t\t\tr: 0.37254901960784315, g: 0.6196078431372549, b: 0.6274509803921569},\n\t\t\t\t{name: 'powderblue',\t\t\tr: 0.6901960784313725, g: 0.8784313725490196, b: 0.9019607843137255},\n\t\t\t\t{name: 'lightblue',\t\t\t\tr: 0.6784313725490196, g: 0.8470588235294118, b: 0.9019607843137255},\n\t\t\t\t{name: 'deepskyblue',\t\t\tr: 0, g: 0.7490196078431373, b: 1},\n\t\t\t\t{name: 'skyblue',\t\t\t\tr: 0.5294117647058824, g: 0.807843137254902, b: 0.9215686274509803},\n\t\t\t\t{name: 'lightskyblue',\t\t\tr: 0.5294117647058824, g: 0.807843137254902, b: 0.9803921568627451},\n\t\t\t\t{name: 'steelblue',\t\t\t\tr: 0.27450980392156865, g: 0.5098039215686274, b: 0.7058823529411765},\n\t\t\t\t{name: 'aliceblue',\t\t\t\tr: 0.9411764705882353, g: 0.9725490196078431, b: 1},\n\t\t\t\t{name: 'dodgerblue',\t\t\tr: 0.11764705882352941, g: 0.5647058823529412, b: 1},\n\t\t\t\t{name: 'slategray',\t\t\t\tr: 0.4392156862745098, g: 0.5019607843137255, b: 0.5647058823529412},\n\t\t\t\t{name: 'lightslategray',\t\tr: 0.4666666666666667, g: 0.5333333333333333, b: 0.6},\n\t\t\t\t{name: 'lightsteelblue',\t\tr: 0.6901960784313725, g: 0.7686274509803922, b: 0.8705882352941177},\n\t\t\t\t{name: 'cornflowerblue',\t\tr: 0.39215686274509803, g: 0.5843137254901961, b: 0.9294117647058824},\n\t\t\t\t{name: 'royalblue',\t\t\t\tr: 0.2549019607843137, g: 0.4117647058823529, b: 0.8823529411764706},\n\t\t\t\t{name: 'midnightblue',\t\t\tr: 0.09803921568627451, g: 0.09803921568627451, b: 0.4392156862745098},\n\t\t\t\t{name: 'lavender',\t\t\t\tr: 0.9019607843137255, g: 0.9019607843137255, b: 0.9803921568627451},\n\t\t\t\t{name: 'navy',\t\t\t\t\tr: 0, g: 0, b: 0.5019607843137255},\n\t\t\t\t{name: 'darkblue',\t\t\t\tr: 0, g: 0, b: 0.5450980392156862},\n\t\t\t\t{name: 'mediumblue',\t\t\tr: 0, g: 0, b: 0.803921568627451},\n\t\t\t\t{name: 'blue',\t\t\t\t\tr: 0, g: 0, b: 1},\n\t\t\t\t{name: 'ghostwhite',\t\t\tr: 0.9725490196078431, g: 0.9725490196078431, b: 1},\n\t\t\t\t{name: 'darkslateblue',\t\t\tr: 0.2823529411764706, g: 0.23921568627450981, b: 0.5450980392156862},\n\t\t\t\t{name: 'slateblue',\t\t\t\tr: 0.41568627450980394, g: 0.35294117647058826, b: 0.803921568627451},\n\t\t\t\t{name: 'mediumslateblue',\t\tr: 0.4823529411764706, g: 0.40784313725490196, b: 0.9333333333333333},\n\t\t\t\t{name: 'mediumpurple',\t\t\tr: 0.5764705882352941, g: 0.4392156862745098, b: 0.8588235294117647},\n\t\t\t\t{name: 'blueviolet',\t\t\tr: 0.5411764705882353, g: 0.16862745098039217, b: 0.8862745098039215},\n\t\t\t\t{name: 'indigo',\t\t\t\tr: 0.29411764705882354, g: 0, b: 0.5098039215686274},\n\t\t\t\t{name: 'darkorchid',\t\t\tr: 0.6, g: 0.19607843137254902, b: 0.8},\n\t\t\t\t{name: 'darkviolet',\t\t\tr: 0.5803921568627451, g: 0, b: 0.8274509803921568},\n\t\t\t\t{name: 'mediumorchid',\t\t\tr: 0.7294117647058823, g: 0.3333333333333333, b: 0.8274509803921568},\n\t\t\t\t{name: 'thistle',\t\t\t\tr: 0.8470588235294118, g: 0.7490196078431373, b: 0.8470588235294118},\n\t\t\t\t{name: 'plum',\t\t\t\t\tr: 0.8666666666666667, g: 0.6274509803921569, b: 0.8666666666666667},\n\t\t\t\t{name: 'violet',\t\t\t\tr: 0.9333333333333333, g: 0.5098039215686274, b: 0.9333333333333333},\n\t\t\t\t{name: 'purple',\t\t\t\tr: 0.5019607843137255, g: 0, b: 0.5019607843137255},\n\t\t\t\t{name: 'darkmagenta',\t\t\tr: 0.5450980392156862, g: 0, b: 0.5450980392156862},\n\t\t\t\t{name: 'magenta',\t\t\t\tr: 1, g: 0, b: 1},\n\t\t\t\t{name: 'fuchsia',\t\t\t\tr: 1, g: 0, b: 1},\n\t\t\t\t{name: 'orchid',\t\t\t\tr: 0.8549019607843137, g: 0.4392156862745098, b: 0.8392156862745098},\n\t\t\t\t{name: 'mediumvioletred',\t\tr: 0.7803921568627451, g: 0.08235294117647059, b: 0.5215686274509804},\n\t\t\t\t{name: 'deeppink',\t\t\t\tr: 1, g: 0.0784313725490196, b: 0.5764705882352941},\n\t\t\t\t{name: 'hotpink',\t\t\t\tr: 1, g: 0.4117647058823529, b: 0.7058823529411765},\n\t\t\t\t{name: 'palevioletred',\t\t\tr: 0.8588235294117647, g: 0.4392156862745098, b: 0.5764705882352941},\n\t\t\t\t{name: 'lavenderblush',\t\t\tr: 1, g: 0.9411764705882353, b: 0.9607843137254902},\n\t\t\t\t{name: 'crimson',\t\t\t\tr: 0.8627450980392157, g: 0.0784313725490196, b: 0.23529411764705882},\n\t\t\t\t{name: 'pink',\t\t\t\t\tr: 1, g: 0.7529411764705882, b: 0.796078431372549},\n\t\t\t\t{name: 'lightpink',\t\t\t\tr: 1, g: 0.7137254901960784, b: 0.7568627450980392}\n\t\t\t]\n\t\t};\n\n\t\tthis.writers = {\n\t\t\t'#HEX':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('#rxgxbx', color);\n\t\t\t\t\t\t}\n\t\t,\t'#HEX3':\tfunction(color, that) {\n\t\t\t\t\t\t\tvar hex3 = $.colorpicker.writers.HEX3(color);\n\t\t\t\t\t\t\treturn hex3 === false? false : '#'+hex3;\n\t\t\t\t\t\t}\n\t\t,\t'HEX':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('rxgxbx', color);\n\t\t\t\t\t\t}\n\t\t,\t'HEX3':\t\tfunction(color, that) {\n\t\t\t\t\t\t\tvar rgb = color.getRGB(),\n\t\t\t\t\t\t\t\tr = Math.round(rgb.r * 255),\n\t\t\t\t\t\t\t\tg = Math.round(rgb.g * 255),\n\t\t\t\t\t\t\t\tb = Math.round(rgb.b * 255);\n\n\t\t\t\t\t\t\tif (((r >>> 4) === (r &= 0xf))\n\t\t\t\t\t\t\t && ((g >>> 4) === (g &= 0xf))\n\t\t\t\t\t\t\t && ((b >>> 4) === (b &= 0xf))) {\n\t\t\t\t\t\t\t\treturn r.toString(16)+g.toString(16)+b.toString(16);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t,\t'#HEXA':\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('#rxgxbxax', color);\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t,\t'#HEXA4':\tfunction(color, that) {\n\t\t\t\t\t\t\tvar hexa4 = $.colorpicker.writers.HEXA4(color, that);\n\t\t\t\t\t\t\treturn hexa4 === false? false : '#'+hexa4;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t,\t'HEXA':\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('rxgxbxax', color);\n\t\t\t\t\t\t}\t\t\n\t\t,\t'HEXA4':\t\tfunction(color, that) {\n\t\t\t\t\t\t\tvar a = Math.round(color.getAlpha() * 255);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tif ((a >>> 4) === (a &= 0xf)) {\n\t\t\t\t\t\t\t\treturn $.colorpicker.writers.HEX3(color, that)+a.toString(16);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t,\t'RGB':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn color.getAlpha() >= 1\n\t\t\t\t\t\t\t\t\t? that._formatColor('rgb(rd,gd,bd)', color)\n\t\t\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\t}\n\t\t,\t'RGBA':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('rgba(rd,gd,bd,af)', color);\n\t\t\t\t\t\t}\n\t\t,\t'RGB%':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn color.getAlpha() >= 1\n\t\t\t\t\t\t\t\t\t? that._formatColor('rgb(rp%,gp%,bp%)', color)\n\t\t\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\t}\n\t\t,\t'RGBA%':\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('rgba(rp%,gp%,bp%,af)', color);\n\t\t\t\t\t\t}\n\t\t,\t'HSL':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn color.getAlpha() >= 1\n\t\t\t\t\t\t\t\t\t? that._formatColor('hsl(hd,sd,vd)', color)\n\t\t\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\t}\n\t\t,\t'HSLA':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('hsla(hd,sd,vd,af)', color);\n\t\t\t\t\t\t}\n\t\t,\t'HSL%':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn color.getAlpha() >= 1\n\t\t\t\t\t\t\t\t\t? that._formatColor('hsl(hp%,sp%,vp%)', color)\n\t\t\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\t}\n\t\t,\t'HSLA%':\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._formatColor('hsla(hp%,sp%,vp%,af)', color);\n\t\t\t\t\t\t}\n\t\t,\t'NAME':\t\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._closestName(color);\n\t\t\t\t\t\t}\n\t\t,\t'EXACT':\tfunction(color, that) {\n\t\t\t\t\t\t\treturn that._exactName(color);\n\t\t\t\t\t\t}\n\t\t};\n\n\t\tthis.parsers = {\n\t\t\t'':\t\t\tfunction(color) {\n\t\t\t\t if (color === '') {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'NAME':\t\tfunction(color, that) {\n\t\t\t\t\t\t\tvar c = that._getSwatch($.trim(color));\n\t\t\t\t\t\t\tif (c) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(c.r, c.g, c.b);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'RGBA':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tm[1] / 255,\n\t\t\t\t\t\t\t\t\tm[2] / 255,\n\t\t\t\t\t\t\t\t\tm[3] / 255,\n\t\t\t\t\t\t\t\t\tparseFloat(m[4])\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'RGBA%':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tm[1] / 100,\n\t\t\t\t\t\t\t\t\tm[2] / 100,\n\t\t\t\t\t\t\t\t\tm[3] / 100,\n\t\t\t\t\t\t\t\t\tm[4] / 100\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HSLA':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^hsla?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn (new $.colorpicker.Color()).setHSL(\n\t\t\t\t\t\t\t\t\tm[1] / 255,\n\t\t\t\t\t\t\t\t\tm[2] / 255,\n\t\t\t\t\t\t\t\t\tm[3] / 255).setAlpha(parseFloat(m[4]));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HSLA%':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn (new $.colorpicker.Color()).setHSL(\n\t\t\t\t\t\t\t\t\tm[1] / 100,\n\t\t\t\t\t\t\t\t\tm[2] / 100,\n\t\t\t\t\t\t\t\t\tm[3] / 100).setAlpha(m[4] / 100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'#HEX':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tparseInt(m[1], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[2], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[3], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'#HEX3':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t parseInt(String(m[1]) + m[1], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[2]) + m[2], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[3]) + m[3], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HEX':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tparseInt(m[1], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[2], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[3], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HEX3':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t parseInt(String(m[1]) + m[1], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[2]) + m[2], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[3]) + m[3], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'#HEXA':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tparseInt(m[1], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[2], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[3], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[4], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'#HEXA4':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t parseInt(String(m[1]) + m[1], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[2]) + m[2], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[3]) + m[3], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[4]) + m[4], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HEXA':\t\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t\tparseInt(m[1], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[2], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[3], 16) / 255,\n\t\t\t\t\t\t\t\t\tparseInt(m[4], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t,\t'HEXA4':\tfunction(color) {\n\t\t\t\t\t\t\tvar m = /^([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color);\n\t\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t parseInt(String(m[1]) + m[1], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[2]) + m[2], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[3]) + m[3], 16) / 255,\n\t\t\t\t\t\t\t\t parseInt(String(m[4]) + m[4], 16) / 255\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t};\n\n\t\tthis.partslists = {\n\t\t\t'full':\t\t\t['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'lab', 'cmyk', 'preview', 'swatches', 'footer'],\n\t\t\t'popup':\t\t['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'],\n\t\t\t'draggable':\t['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'],\n\t\t\t'inline':\t\t['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview']\n\t\t};\n\n\t\tthis.limits = {\n\t\t\t'websafe':\t\tfunction(color) {\n\t\t\t\t\t\t\t\tcolor.limit(6);\n\t\t\t\t\t\t\t},\n\t\t\t'nibble':\t\tfunction(color) {\n\t\t\t\t\t\t\t\tcolor.limit(16);\n\t\t\t\t\t\t\t},\n\t\t\t'binary':\t\tfunction(color) {\n\t\t\t\t\t\t\t\tcolor.limit(2);\n\t\t\t\t\t\t\t},\n\t\t\t'name':\t\t\tfunction(color, that) {\n\t\t\t\t\t\t\t\tvar swatch = that._getSwatch(that._closestName(color));\n\t\t\t\t\t\t\t\tcolor.setRGB(swatch.r, swatch.g, swatch.b);\n\t\t\t\t\t\t\t}\n\t\t};\n\n\t\tthis.parts = {\n\t\t\theader: function (inst) {\n\t\t\t\tvar that\t= this,\n\t\t\t\t\tpart\t= null,\n\t\t\t\t\t_html\t= function() {\n\t\t\t\t\t\tvar title = inst.options.title || inst._getRegional('title'),\n\t\t\t\t\t\t\thtml = '' + title + '';\n\n\t\t\t\t\t\tif (!inst.inline && inst.options.showCloseButton) {\n\t\t\t\t\t\t\thtml += ''\n\t\t\t\t\t\t\t\t+ 'close';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t},\n\t\t\t\t\t_onclick = function(event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tinst.close(inst.options.revert);\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function() {\n\t\t\t\t\tpart = $(_html()).prependTo(inst.dialog);\n\n\t\t\t\t\tvar close = $('.ui-dialog-titlebar-close', part);\n\t\t\t\t\tinst._hoverable(close);\n\t\t\t\t\tinst._focusable(close);\n\t\t\t\t\tclose.on('click', _onclick);\n\n\t\t\t\t\tif (!inst.inline && inst.options.draggable) {\n\t\t\t\t\t\tvar draggableOptions = {\n\t\t\t\t\t\t\thandle: part,\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (inst.options.containment) {\n\t\t\t\t\t\t\tdraggableOptions.containment = inst.options.containment;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinst.dialog.draggable(draggableOptions);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$('.ui-dialog-titlebar-close', part)[disable ? 'off' : 'on']('click', _onclick);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tmap: function (inst) {\n\t\t\t\tvar that\t= this,\n\t\t\t\t\tpart\t= null,\n\t\t\t\t\tpointer, width, height, layers = {},\n\t\t\t\t\t_mousedown, _mouseup, _mousemove, _keydown, _html;\n\n\t\t\t\t_mousedown = function (event) {\n\t\t\t\t\tif (!inst.opened) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar offset\t= layers.p.offset(),\n\t\t\t\t\t\tx\t\t= event.pageX - offset.left,\n\t\t\t\t\t\ty\t\t= event.pageY - offset.top;\n\n\t\t\t\t\tif (x >= 0 && x < width && y >= 0 && y < height) {\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tpart.off('mousedown', _mousedown).focus();\n\t\t\t\t\t\t$(document).on('mouseup', _mouseup);\n\t\t\t\t\t\t$(document).on('mousemove', _mousemove);\n\t\t\t\t\t\t_mousemove(event);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t_mouseup = function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t$(document).off('mouseup', _mouseup);\n\t\t\t\t\t$(document).off('mousemove', _mousemove);\n\t\t\t\t\tpart.on('mousedown', _mousedown);\n\t\t\t\t\t\n\t\t\t\t\tinst._callback('stop');\n\t\t\t\t};\n\n\t\t\t\t_mousemove = function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (event.pageX === that.x && event.pageY === that.y) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthat.x = event.pageX;\n\t\t\t\t\tthat.y = event.pageY;\n\n\t\t\t\t\tvar offset\t= layers.p.offset(),\n\t\t\t\t\t\tx\t\t= event.pageX - offset.left,\n\t\t\t\t\t\ty\t\t= event.pageY - offset.top;\n\n\t\t\t\t\tx = Math.max(0, Math.min(x / width, 1));\n\t\t\t\t\ty = Math.max(0, Math.min(y / height, 1));\n\n\t\t\t\t\t// interpret values\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\tinst.color.setHSV(null, x, 1 - y);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tinst.color.setHSV(x, null, 1 - y);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\tinst.color.setHSV(x, 1 - y, null);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tinst.color.setRGB(null, 1 - y, x);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tinst.color.setRGB(1 - y, null, x);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tinst.color.setRGB(x, 1 - y, null);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tinst._change(false);\n\t\t\t\t};\n\n\t\t\t\t_keydown = function(event) {\n\t\t\t\t\tvar x_channel_map = {\n\t\t\t\t\t\t\t'h': 's',\n\t\t\t\t\t\t\t's': 'h',\n\t\t\t\t\t\t\t'v': 'h',\n\t\t\t\t\t\t\t'r': 'b',\n\t\t\t\t\t\t\t'g': 'b',\n\t\t\t\t\t\t\t'b': 'r',\n\t\t\t\t\t\t\t'a': 'h'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tx_change = {\n\t\t\t\t\t\t\t37: -1,\n\t\t\t\t\t\t\t39: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ty_channel_map = {\n\t\t\t\t\t\t\t'h': 'v',\n\t\t\t\t\t\t\t's': 'v',\n\t\t\t\t\t\t\t'v': 's',\n\t\t\t\t\t\t\t'r': 'g',\n\t\t\t\t\t\t\t'g': 'r',\n\t\t\t\t\t\t\t'b': 'g',\n\t\t\t\t\t\t\t'a': 'v'\n\t\t\t\t\t\t},\n\t\t\t\t\t\ty_change = {\n\t\t\t\t\t\t\t38: 1,\n\t\t\t\t\t\t\t40: -1\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset = {\n\t\t\t\t\t\t\t35: 0,\n\t\t\t\t\t\t\t36: 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchange, value;\n\n\t\t\t\t\t\tif (typeof x_change[event.which] !== 'undefined') {\n\t\t\t\t\t\t\tvalue = inst.color.getChannel(x_channel_map[inst.mode]) * width;\n\t\t\t\t\t\t\tchange = x_change[event.which];\n\t\t\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\t\t\tchange *= 10;\n\t\t\t\t\t\t\t} else if (event.ctrlKey) {\n\t\t\t\t\t\t\t\tchange *= width;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst.color.setChannel(x_channel_map[inst.mode], (value + change) / width);\n\t\t\t\t\t\t\tinst._change(false);\n\t\t\t\t\t\t} else if (typeof y_change[event.which] !== 'undefined') {\n\t\t\t\t\t\t\tvalue = inst.color.getChannel(y_channel_map[inst.mode]) * height;\n\t\t\t\t\t\t\tchange = y_change[event.which];\n\t\t\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\t\t\tchange *= 10;\n\t\t\t\t\t\t\t} else if (event.ctrlKey) {\n\t\t\t\t\t\t\t\tchange *= height;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst.color.setChannel(y_channel_map[inst.mode], (value + change) / height);\n\t\t\t\t\t\t\tinst._change(false);\n\t\t\t\t\t\t} else if (typeof set[event.which] !== 'undefined') {\n\t\t\t\t\t\t\tinst.color.setChannel(x_channel_map[inst.mode], 1 - set[event.which]);\n\t\t\t\t\t\t\tinst.color.setChannel(y_channel_map[inst.mode], set[event.which]);\n\t\t\t\t\t\t\tinst._change(false);\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t};\n\n\t\t\t\t_html = function () {\n\t\t\t\t\tvar html = '
'\n\t\t\t\t\t\t\t+ ' '\n\t\t\t\t\t\t\t+ ' '\n\t\t\t\t\t\t\t+ (inst.options.alpha ? ' ' : '')\n\t\t\t\t\t\t\t+ '
';\n\t\t\t\t\treturn html;\n\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(_html()).appendTo($('.ui-colorpicker-map-container', inst.dialog));\n\n\t\t\t\t\tpart.on('mousedown', _mousedown);\n\t\t\t\t\tpart.on('keydown', _keydown);\n\t\t\t\t\t\n\t\t\t\t\t// cache\t\t\t\t\t\n\t\t\t\t\tlayers[1]\t= $('.ui-colorpicker-map-layer-1', part);\n\t\t\t\t\tlayers[2]\t= $('.ui-colorpicker-map-layer-2', part);\n\t\t\t\t\tlayers.a\t= $('.ui-colorpicker-map-layer-alpha', part);\n\t\t\t\t\tlayers.p\t= $('.ui-colorpicker-map-layer-pointer', part);\n\t\t\t\t\twidth\t\t= layers.p.width();\n\t\t\t\t\theight\t\t= layers.p.height();\n\t\t\t\t\t\n\t\t\t\t\tpointer\t\t= $('.ui-colorpicker-map-pointer', part);\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {\n\t\t\t\t\tvar step = ((inst.options.part.map.size || 256) * 65 / 64);\n\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 0', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 2) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\tpart.css('background-color', 'black');\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 3) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 4) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 5) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 6) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 7) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 8) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 9) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthat.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar x = 0,\n\t\t\t\t\t\ty = 0;\n\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\tvar hsv = inst.color.getHSV();\n\t\t\t\t\t\t\tx = hsv.s * width;\n\t\t\t\t\t\t\ty = (1 - hsv.v) * width;\n\t\t\t\t\t\t\tpart.css('background-color', inst.color.copy().setHSV(null, 1, 1).toCSS());\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tvar hsv = inst.color.getHSV();\n\t\t\t\t\t\t\tx = hsv.h * width;\n\t\t\t\t\t\t\ty = (1 - hsv.v) * width;\n\t\t\t\t\t\t\tlayers[2].css('opacity', 1 - hsv.s);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\tvar hsv = inst.color.getHSV();\n\t\t\t\t\t\t\tx = hsv.h * width;\n\t\t\t\t\t\t\ty = (1 - hsv.s) * width;\n\t\t\t\t\t\t\tlayers[1].css('opacity', hsv.v);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB()\n\t\t\t\t\t\t\tx = rgb.b * width;\n\t\t\t\t\t\t\ty = (1 - rgb.g) * width;\n\t\t\t\t\t\t\tlayers[2].css('opacity', rgb.r);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB();\n\t\t\t\t\t\t\tx = rgb.b * width;\n\t\t\t\t\t\t\ty = (1 - rgb.r) * width;\n\t\t\t\t\t\t\tlayers[2].css('opacity', rgb.g);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB()\n\t\t\t\t\t\t\tx = rgb.r * width;\n\t\t\t\t\t\t\ty = (1 - rgb.g) * width;\n\t\t\t\t\t\t\tlayers[2].css('opacity', rgb.b);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (inst.options.alpha) {\n\t\t\t\t\t\tlayers.a.css('opacity', 1 - inst.color.getAlpha());\n\t\t\t\t\t}\n\n\t\t\t\t\tpointer.css({\n\t\t\t\t\t\t'left': x - 7,\n\t\t\t\t\t\t'top': y - 7\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\tpart[disable ? 'off' : 'on']('mousedown', _mousedown);\n\t\t\t\t\tpart[disable ? 'off' : 'on']('keydown', _keydown);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tbar: function (inst) {\n\t\t\t\tvar that\t\t= this,\n\t\t\t\t\tpart\t\t= null,\n\t\t\t\t\tpointer, width, height, layers = {},\n\t\t\t\t\t_mousedown, _mouseup, _mousemove, _keydown, _html;\n\n\t\t\t\t_mousedown = function (event) {\n\t\t\t\t\tif (!inst.opened) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar offset\t= layers.p.offset(),\n\t\t\t\t\t\tx\t\t= event.pageX - offset.left,\n\t\t\t\t\t\ty\t\t= event.pageY - offset.top;\n\n\t\t\t\t\tif (x >= 0 && x < width && y >= 0 && y < height) {\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tpart.off('mousedown', _mousedown).focus();\n\t\t\t\t\t\t$(document).on('mouseup', _mouseup);\n\t\t\t\t\t\t$(document).on('mousemove', _mousemove);\n\t\t\t\t\t\t_mousemove(event);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t_mouseup = function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t$(document).off('mouseup', _mouseup);\n\t\t\t\t\t$(document).off('mousemove', _mousemove);\n\t\t\t\t\tpart.on('mousedown', _mousedown);\n\t\t\t\t\t\n\t\t\t\t\tinst._callback('stop');\t\t\t\t\t\n\t\t\t\t};\n\n\t\t\t\t_mousemove = function (event) {\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (event.pageY === that.y) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthat.y = event.pageY;\n\n\t\t\t\t\tvar offset = layers.p.offset(),\n\t\t\t\t\t\ty\t\t= event.pageY - offset.top;\n\n\t\t\t\t\ty = Math.max(0, Math.min(y / height, 1));\n\n\t\t\t\t\t// interpret values\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\tinst.color.setHSV(1 - y, null, null);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tinst.color.setHSV(null, 1 - y, null);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\tinst.color.setHSV(null, null, 1 - y);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tinst.color.setRGB(1 - y, null, null);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tinst.color.setRGB(null, 1 - y, null);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tinst.color.setRGB(null, null, 1 - y);\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tinst.color.setAlpha(1 - y);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tinst._change(false);\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\t_keydown = function(event) {\n\t\t\t\t\tvar change = {\n\t\t\t\t\t\t\t38: 1,\n\t\t\t\t\t\t\t40: -1,\n\t\t\t\t\t\t\t33: 10,\n\t\t\t\t\t\t\t34: -10\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset = {\n\t\t\t\t\t\t\t35: 0,\n\t\t\t\t\t\t\t36: 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchange, value;\n\n\t\t\t\t\tif (typeof change[event.which] !== 'undefined') {\n\t\t\t\t\t\tvalue = inst.color.getChannel(inst.mode) * height;\n\t\t\t\t\t\tchange = change[event.which];\n\t\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\t\tchange *= 10;\n\t\t\t\t\t\t} else if (event.ctrlKey) {\n\t\t\t\t\t\t\tchange *= height;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinst.color.setChannel(inst.mode, (value + change) / height);\n\t\t\t\t\t\tinst._change(false);\n\t\t\t\t\t} else if (typeof set[event.which] !== 'undefined') {\n\t\t\t\t\t\tinst.color.setChannel(inst.mode, set[event.which]);\n\t\t\t\t\t\tinst._change(false);\t\t\t\t\t\t\t\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t};\n\n\t\t\t\t_html = function () {\n\t\t\t\t\tvar html = '
'\n\t\t\t\t\t\t\t+ ' '\n\t\t\t\t\t\t\t+ ' '\n\t\t\t\t\t\t\t+ ' '\n\t\t\t\t\t\t\t+ ' ';\n\n\t\t\t\t\tif (inst.options.alpha) {\n\t\t\t\t\t\thtml += ' '\n\t\t\t\t\t\t\t+ ' ';\n\t\t\t\t\t}\n\n\t\t\t\t\thtml += '
';\n\n\t\t\t\t\treturn html;\n\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(_html()).appendTo($('.ui-colorpicker-bar-container', inst.dialog));\n\n\t\t\t\t\tpart.on('mousedown', _mousedown);\n\t\t\t\t\tpart.on('keydown', _keydown);\n\t\t\t\t\t\n\t\t\t\t\t// cache\t\t\t\t\n\t\t\t\t\tlayers[1]\t= $('.ui-colorpicker-bar-layer-1', part);\n\t\t\t\t\tlayers[2]\t= $('.ui-colorpicker-bar-layer-2', part);\n\t\t\t\t\tlayers[3]\t= $('.ui-colorpicker-bar-layer-3', part);\n\t\t\t\t\tlayers[4]\t= $('.ui-colorpicker-bar-layer-4', part);\n\t\t\t\t\tlayers.a\t= $('.ui-colorpicker-bar-layer-alpha', part);\n\t\t\t\t\tlayers.ab\t= $('.ui-colorpicker-bar-layer-alphabar', part);\n\t\t\t\t\tlayers.p\t= $('.ui-colorpicker-bar-layer-pointer', part);\n\t\t\t\t\twidth\t\t= layers.p.width();\n\t\t\t\t\theight\t\t= layers.p.height();\t\t\n\t\t\t\t\t\n\t\t\t\t\tpointer\t\t= $('.ui-colorpicker-bar-pointer', part);\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tthis.update = function () {\n\t\t\t\t\tvar step = ((inst.options.part.bar.size || 256) * 65 / 64);\n\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tlayers.a.show();\n\t\t\t\t\t\t\tlayers.ab.hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tlayers.a.hide();\n\t\t\t\t\t\t\tlayers.ab.show();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 0', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].hide();\n\t\t\t\t\t\t\tlayers[3].hide();\n\t\t\t\t\t\t\tlayers[4].hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 2) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[3].hide();\n\t\t\t\t\t\t\tlayers[4].hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 2) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].hide();\n\t\t\t\t\t\t\tlayers[3].hide();\n\t\t\t\t\t\t\tlayers[4].hide();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 6) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 5) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[3].css({'background-position': '0 ' + (-step * 3) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[4].css({'background-position': '0 ' + (-step * 4) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 10) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 9) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[3].css({'background-position': '0 ' + (-step * 7) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[4].css({'background-position': '0 ' + (-step * 8) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tlayers[1].css({'background-position': '0 ' + (-step * 14) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[2].css({'background-position': '0 ' + (-step * 13) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[3].css({'background-position': '0 ' + (-step * 11) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tlayers[4].css({'background-position': '0 ' + (-step * 12) + 'px', 'opacity': ''}).show();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tlayers[1].hide();\n\t\t\t\t\t\t\tlayers[2].hide();\n\t\t\t\t\t\t\tlayers[3].hide();\n\t\t\t\t\t\t\tlayers[4].hide();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthat.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar y = 0;\n\n\t\t\t\t\tswitch (inst.mode) {\n\t\t\t\t\t\tcase 'h':\n\t\t\t\t\t\t\ty = (1 - inst.color.getHSV().h) * height;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tvar hsv = inst.color.getHSV();\n\t\t\t\t\t\t\ty = (1 - hsv.s) * height;\n\t\t\t\t\t\t\tlayers[2].css('opacity', 1 - hsv.v);\n\t\t\t\t\t\t\tpart.css('background-color', inst.color.copy().setHSV(null, 1, null).toCSS());\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'v':\n\t\t\t\t\t\t\ty = (1 - inst.color.getHSV().v) * height;\n\t\t\t\t\t\t\tpart.css('background-color', inst.color.copy().setHSV(null, null, 1).toCSS());\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'r':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB();\n\t\t\t\t\t\t\ty = (1 - rgb.r) * height;\n\t\t\t\t\t\t\tlayers[2].css('opacity', Math.max(0, (rgb.b - rgb.g)));\n\t\t\t\t\t\t\tlayers[3].css('opacity', Math.max(0, (rgb.g - rgb.b)));\n\t\t\t\t\t\t\tlayers[4].css('opacity', Math.min(rgb.b, rgb.g));\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB();\n\t\t\t\t\t\t\ty = (1 - rgb.g) * height;\n\t\t\t\t\t\t\tlayers[2].css('opacity', Math.max(0, (rgb.b - rgb.r)));\n\t\t\t\t\t\t\tlayers[3].css('opacity', Math.max(0, (rgb.r - rgb.b)));\n\t\t\t\t\t\t\tlayers[4].css('opacity', Math.min(rgb.r, rgb.b));\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tvar rgb = inst.color.getRGB();\n\t\t\t\t\t\t\ty = (1 - rgb.b) * height;\n\t\t\t\t\t\t\tlayers[2].css('opacity', Math.max(0, (rgb.r - rgb.g)));\n\t\t\t\t\t\t\tlayers[3].css('opacity', Math.max(0, (rgb.g - rgb.r)));\n\t\t\t\t\t\t\tlayers[4].css('opacity', Math.min(rgb.r, rgb.g));\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\ty = (1 - inst.color.getAlpha()) * height;\n\t\t\t\t\t\t\tpart.css('background-color', inst.color.copy().toCSS());\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (inst.mode !== 'a') {\n\t\t\t\t\t\tlayers.a.css('opacity', 1 - inst.color.getAlpha());\n\t\t\t\t\t}\n\n\t\t\t\t\tpointer.css('top', y - 3);\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\tpart[disable ? 'off' : 'on']('mousedown', _mousedown);\n\t\t\t\t\tpart[disable ? 'off' : 'on']('keydown', _keydown);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tpreview: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tboth,\n\t\t\t\t\tinitial, initial_alpha,\n\t\t\t\t\tcurrent, current_alpha,\n\t\t\t\t\t_html,\n\t\t\t\t\tonclick = function () {\n\t\t\t\t\t\tinst.color = inst.currentColor.copy();\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t};\n\n\t\t\t\t_html = function () {\n\t\t\t\t\treturn '
'\n\t\t\t\t\t\t+ '
'\n\t\t\t\t\t\t+ '
'\n\t\t\t\t\t\t+ '
';\n\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(_html()).appendTo($('.ui-colorpicker-preview-container', inst.dialog));\n\n\t\t\t\t\t$('.ui-colorpicker-preview-initial', part).on('click', onclick);\n\n\t\t\t\t\t// cache\n\t\t\t\t\tinitial\t\t\t= $('.ui-colorpicker-preview-initial', part);\n\t\t\t\t\tinitial_alpha\t= $('.ui-colorpicker-preview-initial-alpha', part);\n\t\t\t\t\tcurrent\t\t\t= $('.ui-colorpicker-preview-current', part);\n\t\t\t\t\tcurrent_alpha\t= $('.ui-colorpicker-preview-current-alpha', part);\n\t\t\t\t\tboth\t\t\t= $('.ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha', part);\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {\n\t\t\t\t\tboth[inst.options.alpha ? 'show' : 'hide']();\n\n\t\t\t\t\tthis.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tinitial.css('background-color', inst.currentColor.set ? inst.currentColor.toCSS() : '').attr('title', inst.currentColor.set ? inst.currentColor.toCSS() : '');\n\t\t\t\t\tinitial_alpha.css('opacity', 1 - inst.currentColor.getAlpha());\n\t\t\t\t\tcurrent.css('background-color', inst.color.set ? inst.color.toCSS() : '').attr('title', inst.color.set ? inst.color.toCSS() : '');\n\t\t\t\t\tcurrent_alpha.css('opacity', 1 - inst.color.getAlpha());\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$('.ui-colorpicker-preview-initial', part)[disable ? 'off' : 'on']('click', onclick);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\thsv: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinputs = {},\n\t\t\t\t\t_html;\n\n\t\t\t\t_html = function () {\n\t\t\t\t\tvar html = '';\n\n\t\t\t\t\tif (inst.options.hsv) {\n\t\t\t\t\t\thtml +=\t'
°
'\n\t\t\t\t\t\t\t+ '
%
'\n\t\t\t\t\t\t\t+ '
%
';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(_html()).appendTo($('.ui-colorpicker-hsv-container', inst.dialog));\n\n\t\t\t\t\t$('.ui-colorpicker-mode', part).click(function () {\n\t\t\t\t\t\tinst.mode = $(this).val();\n\t\t\t\t\t\tinst._updateAllParts();\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tinputs.h = $('.ui-colorpicker-hsv-h .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.s = $('.ui-colorpicker-hsv-s .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.v = $('.ui-colorpicker-hsv-v .ui-colorpicker-number', part);\n\n\t\t\t\t\t$('.ui-colorpicker-number', part).on('change keyup', function () {\n\t\t\t\t\t\tinst.color.setHSV(\n\t\t\t\t\t\t\tinputs.h.val() / 360,\n\t\t\t\t\t\t\tinputs.s.val() / 100,\n\t\t\t\t\t\t\tinputs.v.val() / 100\n\t\t\t\t\t\t);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar hsv = inst.color.getHSV();\n\t\t\t\t\tinputs.h.val(Math.round(hsv.h * 360));\n\t\t\t\t\tinputs.s.val(Math.round(hsv.s * 100));\n\t\t\t\t\tinputs.v.val(Math.round(hsv.v * 100));\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {\n\t\t\t\t\t$('.ui-colorpicker-mode', part).each(function () {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t$this.prop('checked', $this.val() === inst.mode);\n\t\t\t\t\t});\n\t\t\t\t\tthis.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\trgb: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinputs = {},\n\t\t\t\t\t_html;\n\n\t\t\t\t_html = function () {\n\t\t\t\t\tvar html = '';\n\n\t\t\t\t\tif (inst.options.rgb) {\n\t\t\t\t\t\thtml += '
'\n\t\t\t\t\t\t\t+ '
'\n\t\t\t\t\t\t\t+ '
';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(_html()).appendTo($('.ui-colorpicker-rgb-container', inst.dialog));\n\n\t\t\t\t\t$('.ui-colorpicker-mode', part).click(function () {\n\t\t\t\t\t\tinst.mode = $(this).val();\n\t\t\t\t\t\tinst._updateAllParts();\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tinputs.r = $('.ui-colorpicker-rgb-r .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.g = $('.ui-colorpicker-rgb-g .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.b = $('.ui-colorpicker-rgb-b .ui-colorpicker-number', part);\n\n\t\t\t\t\t$('.ui-colorpicker-number', part).on('change keyup', function () {\n\t\t\t\t\t\tvar r = $('.ui-colorpicker-rgb-r .ui-colorpicker-number', part).val();\n\t\t\t\t\t\tinst.color.setRGB(\n\t\t\t\t\t\t\tinputs.r.val() / 255,\n\t\t\t\t\t\t\tinputs.g.val() / 255,\n\t\t\t\t\t\t\tinputs.b.val() / 255\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar rgb = inst.color.getRGB();\n\t\t\t\t\tinputs.r.val(Math.round(rgb.r * 255));\n\t\t\t\t\tinputs.g.val(Math.round(rgb.g * 255));\n\t\t\t\t\tinputs.b.val(Math.round(rgb.b * 255));\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {\n\t\t\t\t\t$('.ui-colorpicker-mode', part).each(function () {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\t$this.prop('checked', $this.val() === inst.mode);\n\t\t\t\t\t});\n\t\t\t\t\tthis.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tlab: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinputs = {},\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tif (inst.options.hsv) {\n\t\t\t\t\t\t\thtml +=\t'
'\n\t\t\t\t\t\t\t\t+ '
'\n\t\t\t\t\t\t\t\t+ '
';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tvar data = 0;\n\n\t\t\t\t\tpart = $(html()).appendTo($('.ui-colorpicker-lab-container', inst.dialog));\n\t\t\t\t\t\n\t\t\t\t\tinputs.l = $('.ui-colorpicker-lab-l .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.a = $('.ui-colorpicker-lab-a .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.b = $('.ui-colorpicker-lab-b .ui-colorpicker-number', part);\n\n\t\t\t\t\t$('.ui-colorpicker-number', part).on('change keyup', function (event) {\n\t\t\t\t\t\tinst.color.setLAB(\n\t\t\t\t\t\t\tparseInt(inputs.l.val(), 10) / 100,\n\t\t\t\t\t\t\t(parseInt(inputs.a.val(), 10) + 128) / 255,\n\t\t\t\t\t\t\t(parseInt(inputs.b.val(), 10) + 128) / 255\n\t\t\t\t\t\t);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar lab = inst.color.getLAB();\n\t\t\t\t\tinputs.l.val(Math.round(lab.l * 100));\n\t\t\t\t\tinputs.a.val(Math.round(lab.a * 255) - 128);\n\t\t\t\t\tinputs.b.val(Math.round(lab.b * 255) - 128);\n\t\t\t\t};\n\n\t\t\t\tthis.update = this.repaint;\n\t\t\t\t\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tcmyk: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinputs = {},\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tif (inst.options.hsv) {\n\t\t\t\t\t\t\thtml +=\t'
%
'\n\t\t\t\t\t\t\t\t+ '
%
'\n\t\t\t\t\t\t\t\t+ '
%
'\n\t\t\t\t\t\t\t\t+ '
%
';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(html()).appendTo($('.ui-colorpicker-cmyk-container', inst.dialog));\n\t\t\t\t\t\n\t\t\t\t\tinputs.c = $('.ui-colorpicker-cmyk-c .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.m = $('.ui-colorpicker-cmyk-m .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.y = $('.ui-colorpicker-cmyk-y .ui-colorpicker-number', part);\n\t\t\t\t\tinputs.k = $('.ui-colorpicker-cmyk-k .ui-colorpicker-number', part);\n\t\t\t\t\t\n\t\t\t\t\t$('.ui-colorpicker-number', part).on('change keyup', function (event) {\n\t\t\t\t\t\tinst.color.setCMYK(\n\t\t\t\t\t\t\tparseInt(inputs.c.val(), 10) / 100,\n\t\t\t\t\t\t\tparseInt(inputs.m.val(), 10) / 100,\n\t\t\t\t\t\t\tparseInt(inputs.y.val(), 10) / 100,\n\t\t\t\t\t\t\tparseInt(inputs.k.val(), 10) / 100\n\t\t\t\t\t\t);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tvar cmyk = inst.color.getCMYK();\n\t\t\t\t\tinputs.c.val(Math.round(cmyk.c * 100));\n\t\t\t\t\tinputs.m.val(Math.round(cmyk.m * 100));\n\t\t\t\t\tinputs.y.val(Math.round(cmyk.y * 100));\n\t\t\t\t\tinputs.k.val(Math.round(cmyk.k * 100));\n\t\t\t\t};\n\n\t\t\t\tthis.update = this.repaint;\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\talpha: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinput,\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tif (inst.options.alpha) {\n\t\t\t\t\t\t\thtml += '
%
';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(html()).appendTo($('.ui-colorpicker-alpha-container', inst.dialog));\n\n\t\t\t\t\t$('.ui-colorpicker-mode', part).click(function () {\n\t\t\t\t\t\tinst.mode = $(this).val();\n\t\t\t\t\t\tinst._updateAllParts();\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tinput = $('.ui-colorpicker-a .ui-colorpicker-number', part);\n\n\t\t\t\t\t$('.ui-colorpicker-number', part).on('change keyup', function () {\n\t\t\t\t\t\tinst.color.setAlpha(input.val() / 100);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {\n\t\t\t\t\t$('.ui-colorpicker-mode', part).each(function () {\n\t\t\t\t\t\t$(this).prop('checked', $(this).val() === inst.mode);\n\t\t\t\t\t});\n\t\t\t\t\tthis.repaint();\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tinput.val(Math.round(inst.color.getAlpha() * 100));\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\thex: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tinputs = {},\n\t\t\t\t\tparseHex = function(color) {\n\t\t\t\t\t\tvar c,\n\t\t\t\t\t\t\tm;\n\n\t\t\t\t\t\t// {#}rgb\n\t\t\t\t\t\tm = /^#?([a-fA-F0-9]{1,3})$/.exec(color);\n\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\tc = parseInt(m[1], 16);\n\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t((c >> 8) & 0xF) / 15,\n\t\t\t\t\t\t\t\t((c >> 4) & 0xF) / 15,\n\t\t\t\t\t\t\t\t(c & 0xF) / 15\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// {#}rrggbb\n\t\t\t\t\t\tm = /^#?([a-fA-F0-9]{1,6})$/.exec(color);\n\t\t\t\t\t\tif (m) {\n\t\t\t\t\t\t\tc = parseInt(m[1], 16);\n\t\t\t\t\t\t\treturn new $.colorpicker.Color(\n\t\t\t\t\t\t\t\t((c >> 16) & 0xFF) / 255,\n\t\t\t\t\t\t\t\t((c >> 8) & 0xFF) / 255,\n\t\t\t\t\t\t\t\t(c & 0xFF) / 255\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn new $.colorpicker.Color();\n\t\t\t\t\t},\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tif (inst.options.alpha) {\n\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\thtml += '';\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(html()).appendTo($('.ui-colorpicker-hex-container', inst.dialog));\n\n\t\t\t\t\tinputs.color = $('.ui-colorpicker-hex-input', part);\n\t\t\t\t\tinputs.alpha = $('.ui-colorpicker-hex-alpha', part);\n\n\t\t\t\t\tinputs.color.on('keydown keyup', function(e) {\t\n\t\t\t\t\t\treturn e.ctrlKey || _keycode.isHex(e.which) || !_keycode.isPrint(e.which);\n\t\t\t\t\t});\n\n\t\t\t\t\t// repeat here makes the invalid input disappear faster\n\t\t\t\t\tinputs.color.on('change', function () {\n\t\t\t\t\t\tif (/[^a-fA-F0-9]/.test(inputs.color.val())) {\n\t\t\t\t\t\t\tinputs.color.val(inputs.color.val().replace(/[^a-fA-F0-9]/, ''));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tinputs.color.on('change keyup', function () {\n\t\t\t\t\t\t// repeat here makes sure that the invalid input doesn't get parsed\n\t\t\t\t\t\tinst.color = parseHex(inputs.color.val()).setAlpha(inst.color.getAlpha());\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\n\t\t\t\t\tinputs.alpha.on('keydown keyup', function(e) {\n\t\t\t\t\t\treturn e.ctrlKey || _keycode.isHex(e.which) || !_keycode.isPrint(e.which);\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tinputs.alpha.on('change', function () {\n\t\t\t\t\t\tif (/[^a-fA-F0-9]/.test(inputs.alpha)) {\n\t\t\t\t\t\t\tinputs.alpha.val(inputs.alpha.val().replace(/[^a-fA-F0-9]/, ''));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tinputs.alpha.on('change keyup', function () {\n\t\t\t\t\t\tinst.color.setAlpha(parseInt(inputs.alpha.val(), 16) / 255);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\tif (!inputs.color.is(':focus')) {\n\t\t\t\t\t\tinputs.color.val(inst.color.toHex(true));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!inputs.alpha.is(':focus')) {\n\t\t\t\t\t\tinputs.alpha.val(_intToHex(inst.color.getAlpha() * 255));\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.update = this.repaint;\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$(':input', part).prop('disabled', disable);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tswatches: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tinst._eachSwatch(function (name, color) {\n\t\t\t\t\t\t\tvar c = new $.colorpicker.Color(color.r, color.g, color.b),\n\t\t\t\t\t\t\t\tcss = c.toCSS();\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t},\n\t\t\t\t\tonclick = function () {\n\t\t\t\t\t\tinst.color\t= inst._parseColor($(this).css('background-color')) || new $.colorpicker.Color();\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(html());\n\t\t\t\t\t$('.ui-colorpicker-swatches-container', inst.dialog).html(part);\n\t\t\t\t\t$('.ui-colorpicker-swatch', part).on('click', onclick);\n\t\t\t\t};\n\n\t\t\t\tthis.disable = function (disable) {\n\t\t\t\t\t$('.ui-colorpicker-swatch', part)[disable ? 'off' : 'on']('click', onclick);\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tfooter: function (inst) {\n\t\t\t\tvar that = this,\n\t\t\t\t\tpart = null,\n\t\t\t\t\tid_transparent = 'ui-colorpicker-special-transparent-' + inst.colorpicker_index,\n\t\t\t\t\tid_none = 'ui-colorpicker-special-none-' + inst.colorpicker_index,\n\t\t\t\t\thtml = function () {\n\t\t\t\t\t\tvar html = '';\n\n\t\t\t\t\t\tif (inst.options.alpha || (!inst.inline && inst.options.showNoneButton)) {\n\t\t\t\t\t\t\thtml += '
';\n\n\t\t\t\t\t\t\tif (inst.options.alpha) {\n\t\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!inst.inline && inst.options.showNoneButton) {\n\t\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!inst.inline) {\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t\tif (inst.options.showCancelButton) {\n\t\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn '
' + html + '
';\n\t\t\t\t\t};\n\n\t\t\t\tthis.init = function () {\n\t\t\t\t\tpart = $(html()).appendTo(inst.dialog);\n\n\t\t\t\t\t$('.ui-colorpicker-ok', part).button().click(function () {\n\t\t\t\t\t\tinst.close();\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.ui-colorpicker-cancel', part).button().click(function () {\n\t\t\t\t\t\tinst.close(true); //cancel\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.ui-colorpicker-buttonset', part)[$.fn.controlgroup ? 'controlgroup' : 'buttonset']();\n\n\t\t\t\t\t$('.ui-colorpicker-special-color', part).click(function () {\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\n\t\t\t\t\t$('#'+id_none, part).click(function () {\n\t\t\t\t\t\tinst.color.set = false;\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\n\t\t\t\t\t$('#'+id_transparent, part).click(function () {\n\t\t\t\t\t\tinst.color.setAlpha(0);\n\t\t\t\t\t\tinst._change();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tthis.repaint = function () {\n\t\t\t\t\t$('.ui-colorpicker-special-none', part).prop('checked', !inst.color.set).button('refresh');\n\t\t\t\t\t$('.ui-colorpicker-special-transparent', part).prop('checked', inst.color.set && inst.color.getAlpha() === 0).button('refresh');\n\t\t\t\t\t$('.ui-colorpicker-ok', part).button(inst.changed ? 'enable' : 'disable');\n\t\t\t\t};\n\n\t\t\t\tthis.update = function () {};\n\n\t\t\t\tthis.disable = function (disabled) {\n\t\t\t\t\t$(':input, :button', part).button(disabled ? 'disable' : 'enable');\n\t\t\t\t\tif (!disabled) {\n\t\t\t\t\t\t$('.ui-colorpicker-ok', part).button(inst.changed ? 'enable' : 'disable');\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\tthis.Color = function () {\n\t\t\tvar spaces = {\trgb:\t{r: 0, g: 0, b: 0},\n\t\t\t\t\t\t\thsv:\t{h: 0, s: 0, v: 0},\n\t\t\t\t\t\t\thsl:\t{h: 0, s: 0, l: 0},\n\t\t\t\t\t\t\tlab:\t{l: 0, a: 0, b: 0},\n\t\t\t\t\t\t\tcmyk:\t{c: 0, m: 0, y: 0, k: 1}\n\t\t\t\t\t\t},\n\t\t\t\ta = 1,\n\t\t\t\tilluminant = [0.9504285, 1, 1.0889],\t// CIE-L*ab D65/2' 1931\n\t\t\t\targs = arguments,\n\t\t\t\t_clip = function(v) {\n\t\t\t\t\tif (isNaN(v) || v === null) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof v == 'string') {\n\t\t\t\t\t\tv = parseInt(v, 10);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.max(0, Math.min(v, 1));\n\t\t\t\t},\n\t\t\t\t_hexify = function (number) {\n\t\t\t\t\tvar number = Math.round(number),\n\t\t\t\t\t\tdigits = '0123456789abcdef',\n\t\t\t\t\t\tlsd = number % 16,\n\t\t\t\t\t\tmsd = (number - lsd) / 16,\n\t\t\t\t\t\thexified = digits.charAt(msd) + digits.charAt(lsd);\n\t\t\t\t\treturn hexified;\n\t\t\t\t},\n\t\t\t\t_rgb_to_xyz = function(rgb) {\n\t\t\t\t\tvar r = (rgb.r > 0.04045) ? Math.pow((rgb.r + 0.055) / 1.055, 2.4) : rgb.r / 12.92,\n\t\t\t\t\t\tg = (rgb.g > 0.04045) ? Math.pow((rgb.g + 0.055) / 1.055, 2.4) : rgb.g / 12.92,\n\t\t\t\t\t\tb = (rgb.b > 0.04045) ? Math.pow((rgb.b + 0.055) / 1.055, 2.4) : rgb.b / 12.92;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tx: r * 0.4124 + g * 0.3576 + b * 0.1805,\n\t\t\t\t\t\ty: r * 0.2126 + g * 0.7152 + b * 0.0722,\n\t\t\t\t\t\tz: r * 0.0193 + g * 0.1192 + b * 0.9505\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_xyz_to_rgb = function(xyz) {\n\t\t\t\t\tvar rgb = {\n\t\t\t\t\t\tr: xyz.x * 3.2406 + xyz.y * -1.5372 + xyz.z * -0.4986,\n\t\t\t\t\t\tg: xyz.x * -0.9689 + xyz.y * 1.8758 + xyz.z * 0.0415,\n\t\t\t\t\t\tb: xyz.x * 0.0557 + xyz.y * -0.2040 + xyz.z * 1.0570\n\t\t\t\t\t};\n\n\t\t\t\t\trgb.r = (rgb.r > 0.0031308) ? 1.055 * Math.pow(rgb.r, (1 / 2.4)) - 0.055 : 12.92 * rgb.r;\n\t\t\t\t\trgb.g = (rgb.g > 0.0031308) ? 1.055 * Math.pow(rgb.g, (1 / 2.4)) - 0.055 : 12.92 * rgb.g;\n\t\t\t\t\trgb.b = (rgb.b > 0.0031308) ? 1.055 * Math.pow(rgb.b, (1 / 2.4)) - 0.055 : 12.92 * rgb.b;\n\n\t\t\t\t\treturn rgb;\n\t\t\t\t},\n\t\t\t\t_rgb_to_hsv = function(rgb) {\n\t\t\t\t\tvar minVal = Math.min(rgb.r, rgb.g, rgb.b),\n\t\t\t\t\t\tmaxVal = Math.max(rgb.r, rgb.g, rgb.b),\n\t\t\t\t\t\tdelta = maxVal - minVal,\n\t\t\t\t\t\tdel_R, del_G, del_B,\n\t\t\t\t\t\thsv = {\n\t\t\t\t\t\t\th: 0,\n\t\t\t\t\t\t\ts: 0,\n\t\t\t\t\t\t\tv: maxVal\n\t\t\t\t\t\t};\n\n\t\t\t\t\tif (delta === 0) {\n\t\t\t\t\t\thsv.h = 0;\n\t\t\t\t\t\thsv.s = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thsv.s = delta / maxVal;\n\n\t\t\t\t\t\tdel_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta;\n\t\t\t\t\t\tdel_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta;\n\t\t\t\t\t\tdel_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta;\n\n\t\t\t\t\t\tif (rgb.r === maxVal) {\n\t\t\t\t\t\t\thsv.h = del_B - del_G;\n\t\t\t\t\t\t} else if (rgb.g === maxVal) {\n\t\t\t\t\t\t\thsv.h = (1 / 3) + del_R - del_B;\n\t\t\t\t\t\t} else if (rgb.b === maxVal) {\n\t\t\t\t\t\t\thsv.h = (2 / 3) + del_G - del_R;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (hsv.h < 0) {\n\t\t\t\t\t\t\thsv.h += 1;\n\t\t\t\t\t\t} else if (hsv.h > 1) {\n\t\t\t\t\t\t\thsv.h -= 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn hsv;\n\t\t\t\t},\n\t\t\t\t_hsv_to_rgb = function(hsv) {\n\t\t\t\t\tvar rgb = {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvar_h,\n\t\t\t\t\t\tvar_i,\n\t\t\t\t\t\tvar_1,\n\t\t\t\t\t\tvar_2,\n\t\t\t\t\t\tvar_3;\n\n\t\t\t\t\tif (hsv.s === 0) {\n\t\t\t\t\t\trgb.r = rgb.g = rgb.b = hsv.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar_h = hsv.h === 1 ? 0 : hsv.h * 6;\n\t\t\t\t\t\tvar_i = Math.floor(var_h);\n\t\t\t\t\t\tvar_1 = hsv.v * (1 - hsv.s);\n\t\t\t\t\t\tvar_2 = hsv.v * (1 - hsv.s * (var_h - var_i));\n\t\t\t\t\t\tvar_3 = hsv.v * (1 - hsv.s * (1 - (var_h - var_i)));\n\n\t\t\t\t\t\tif (var_i === 0) {\n\t\t\t\t\t\t\trgb.r = hsv.v;\n\t\t\t\t\t\t\trgb.g = var_3;\n\t\t\t\t\t\t\trgb.b = var_1;\n\t\t\t\t\t\t} else if (var_i === 1) {\n\t\t\t\t\t\t\trgb.r = var_2;\n\t\t\t\t\t\t\trgb.g = hsv.v;\n\t\t\t\t\t\t\trgb.b = var_1;\n\t\t\t\t\t\t} else if (var_i === 2) {\n\t\t\t\t\t\t\trgb.r = var_1;\n\t\t\t\t\t\t\trgb.g = hsv.v;\n\t\t\t\t\t\t\trgb.b = var_3;\n\t\t\t\t\t\t} else if (var_i === 3) {\n\t\t\t\t\t\t\trgb.r = var_1;\n\t\t\t\t\t\t\trgb.g = var_2;\n\t\t\t\t\t\t\trgb.b = hsv.v;\n\t\t\t\t\t\t} else if (var_i === 4) {\n\t\t\t\t\t\t\trgb.r = var_3;\n\t\t\t\t\t\t\trgb.g = var_1;\n\t\t\t\t\t\t\trgb.b = hsv.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trgb.r = hsv.v;\n\t\t\t\t\t\t\trgb.g = var_1;\n\t\t\t\t\t\t\trgb.b = var_2;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn rgb;\n\t\t\t\t},\n\t\t\t\t_rgb_to_hsl = function(rgb) {\n\t\t\t\t\tvar minVal = Math.min(rgb.r, rgb.g, rgb.b),\n\t\t\t\t\t\tmaxVal = Math.max(rgb.r, rgb.g, rgb.b),\n\t\t\t\t\t\tdelta = maxVal - minVal,\n\t\t\t\t\t\tdel_R, del_G, del_B,\n\t\t\t\t\t\thsl = {\n\t\t\t\t\t\t\th: 0,\n\t\t\t\t\t\t\ts: 0,\n\t\t\t\t\t\t\tl: (maxVal + minVal) / 2\n\t\t\t\t\t\t};\n\n\t\t\t\t\tif (delta === 0) {\n\t\t\t\t\t\thsl.h = 0;\n\t\t\t\t\t\thsl.s = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thsl.s = hsl.l < 0.5 ? delta / (maxVal + minVal) : delta / (2 - maxVal - minVal);\n\n\t\t\t\t\t\tdel_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta;\n\t\t\t\t\t\tdel_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta;\n\t\t\t\t\t\tdel_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta;\n\n\t\t\t\t\t\tif (rgb.r === maxVal) {\n\t\t\t\t\t\t\thsl.h = del_B - del_G;\n\t\t\t\t\t\t} else if (rgb.g === maxVal) {\n\t\t\t\t\t\t\thsl.h = (1 / 3) + del_R - del_B;\n\t\t\t\t\t\t} else if (rgb.b === maxVal) {\n\t\t\t\t\t\t\thsl.h = (2 / 3) + del_G - del_R;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (hsl.h < 0) {\n\t\t\t\t\t\t\thsl.h += 1;\n\t\t\t\t\t\t} else if (hsl.h > 1) {\n\t\t\t\t\t\t\thsl.h -= 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn hsl;\n\t\t\t\t},\n\t\t\t\t_hsl_to_rgb = function(hsl) {\n\t\t\t\t\tvar var_1,\n\t\t\t\t\t\tvar_2,\n\t\t\t\t\t\thue_to_rgb\t= function(v1, v2, vH) {\n\t\t\t\t\t\t\t\t\t\tif (vH < 0) {\n\t\t\t\t\t\t\t\t\t\t\tvH += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (vH > 1) {\n\t\t\t\t\t\t\t\t\t\t\tvH -= 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ((6 * vH) < 1) {\n\t\t\t\t\t\t\t\t\t\t\treturn v1 + (v2 - v1) * 6 * vH;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ((2 * vH) < 1) {\n\t\t\t\t\t\t\t\t\t\t\treturn v2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ((3 * vH) < 2) {\n\t\t\t\t\t\t\t\t\t\t\treturn v1 + (v2 - v1) * ((2 / 3) - vH) * 6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn v1;\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\tif (hsl.s === 0) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tr: hsl.l,\n\t\t\t\t\t\t\tg: hsl.l,\n\t\t\t\t\t\t\tb: hsl.l\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tvar_2 = (hsl.l < 0.5) ? hsl.l * (1 + hsl.s) : (hsl.l + hsl.s) - (hsl.s * hsl.l);\n\t\t\t\t\tvar_1 = 2 * hsl.l - var_2;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tr: hue_to_rgb(var_1, var_2, hsl.h + (1 / 3)),\n\t\t\t\t\t\tg: hue_to_rgb(var_1, var_2, hsl.h),\n\t\t\t\t\t\tb: hue_to_rgb(var_1, var_2, hsl.h - (1 / 3))\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_xyz_to_lab = function(xyz) {\n\t\t\t\t\tvar x = xyz.x / illuminant[0],\n\t\t\t\t\t\ty = xyz.y / illuminant[1],\n\t\t\t\t\t\tz = xyz.z / illuminant[2];\n\n\t\t\t\t\tx = (x > 0.008856) ? Math.pow(x, (1/3)) : (7.787 * x) + (16/116);\n\t\t\t\t\ty = (y > 0.008856) ? Math.pow(y, (1/3)) : (7.787 * y) + (16/116);\n\t\t\t\t\tz = (z > 0.008856) ? Math.pow(z, (1/3)) : (7.787 * z) + (16/116);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tl: ((116 * y) - 16) / 100,\t// [0,100]\n\t\t\t\t\t\ta: ((500 * (x - y)) + 128) / 255,\t// [-128,127]\n\t\t\t\t\t\tb: ((200 * (y - z))\t+ 128) / 255\t// [-128,127]\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_lab_to_xyz = function(lab) {\n\t\t\t\t\tvar lab2 = {\n\t\t\t\t\t\t\tl: lab.l * 100,\n\t\t\t\t\t\t\ta: (lab.a * 255) - 128,\n\t\t\t\t\t\t\tb: (lab.b * 255) - 128\n\t\t\t\t\t\t},\n\t\t\t\t\t\txyz = {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: (lab2.l + 16) / 116,\n\t\t\t\t\t\t\tz: 0\n\t\t\t\t\t\t};\n\n\t\t\t\t\txyz.x = lab2.a / 500 + xyz.y;\n\t\t\t\t\txyz.z = xyz.y - lab2.b / 200;\n\n\t\t\t\t\txyz.x = (Math.pow(xyz.x, 3) > 0.008856) ? Math.pow(xyz.x, 3) : (xyz.x - 16 / 116) / 7.787;\n\t\t\t\t\txyz.y = (Math.pow(xyz.y, 3) > 0.008856) ? Math.pow(xyz.y, 3) : (xyz.y - 16 / 116) / 7.787;\n\t\t\t\t\txyz.z = (Math.pow(xyz.z, 3) > 0.008856) ? Math.pow(xyz.z, 3) : (xyz.z - 16 / 116) / 7.787;\n\n\t\t\t\t\txyz.x *= illuminant[0];\n\t\t\t\t\txyz.y *= illuminant[1];\n\t\t\t\t\txyz.z *= illuminant[2];\n\n\t\t\t\t\treturn xyz;\n\t\t\t\t},\n\t\t\t\t_rgb_to_cmy = function(rgb) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tc: 1 - (rgb.r),\n\t\t\t\t\t\tm: 1 - (rgb.g),\n\t\t\t\t\t\ty: 1 - (rgb.b)\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_cmy_to_rgb = function(cmy) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tr: 1 - (cmy.c),\n\t\t\t\t\t\tg: 1 - (cmy.m),\n\t\t\t\t\t\tb: 1 - (cmy.y)\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_cmy_to_cmyk = function(cmy) {\n\t\t\t\t\tvar K = 1;\n\n\t\t\t\t\tif (cmy.c < K) {\n\t\t\t\t\t\tK = cmy.c;\n\t\t\t\t\t}\n\t\t\t\t\tif (cmy.m < K) {\n\t\t\t\t\t\tK = cmy.m;\n\t\t\t\t\t}\n\t\t\t\t\tif (cmy.y < K) {\n\t\t\t\t\t\tK = cmy.y;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (K === 1) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tc: 0,\n\t\t\t\t\t\t\tm: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\tk: 1\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tc: (cmy.c - K) / (1 - K),\n\t\t\t\t\t\tm: (cmy.m - K) / (1 - K),\n\t\t\t\t\t\ty: (cmy.y - K) / (1 - K),\n\t\t\t\t\t\tk: K\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t_cmyk_to_cmy = function(cmyk) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tc: cmyk.c * (1 - cmyk.k) + cmyk.k,\n\t\t\t\t\t\tm: cmyk.m * (1 - cmyk.k) + cmyk.k,\n\t\t\t\t\t\ty: cmyk.y * (1 - cmyk.k) + cmyk.k\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\tthis.set = false;\n\n\t\t\tthis.setAlpha = function(_a) {\n\t\t\t\tif (_a !== null) {\n\t\t\t\t\ta = _clip(_a);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.getAlpha = function() {\n\t\t\t\treturn a;\n\t\t\t};\n\n\t\t\tthis.setRGB = function(r, g, b) {\n\t\t\t\tspaces = { rgb: this.getRGB() };\n\t\t\t\tif (r !== null) {\n\t\t\t\t\tspaces.rgb.r = _clip(r);\n\t\t\t\t}\n\t\t\t\tif (g !== null) {\n\t\t\t\t\tspaces.rgb.g = _clip(g);\n\t\t\t\t}\n\t\t\t\tif (b !== null) {\n\t\t\t\t\tspaces.rgb.b = _clip(b);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\t\t\t\t\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\t\n\t\t\tthis.getChannel = function(channel) {\n\t\t\t\tswitch (channel) {\n\t\t\t\t\tcase 'h':\n\t\t\t\t\tcase 's':\n\t\t\t\t\tcase 'v':\n\t\t\t\t\t\treturn this.getHSV()[channel];\n\n\t\t\t\t\tcase 'r':\n\t\t\t\t\tcase 'g':\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\treturn this.getRGB()[channel];\n\n\t\t\t\t\tcase 'a':\n\t\t\t\t\t\treturn this.getAlpha();\n\t\t\t\t}\t\t\t\n\t\t\t\t\n\t\t\t\treturn null;\n\t\t\t};\n\t\t\t\n\t\t\tthis.setChannel = function(channel, value) {\n\t\t\t\tswitch (channel) {\n\t\t\t\t\tcase 'h':\n\t\t\t\t\t\treturn this.setHSV(value, null, null);\n\t\t\t\t\t\t\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\treturn this.setHSV(null, value, null);\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'v':\n\t\t\t\t\t\treturn this.setHSV(null, null, value);\n\n\t\t\t\t\tcase 'r':\n\t\t\t\t\t\treturn this.setRGB(value, null, null);\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'g':\n\t\t\t\t\t\treturn this.setRGB(null, value, null);\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\treturn this.setRGB(null, null, value);\n\n\t\t\t\t\tcase 'a':\n\t\t\t\t\t\treturn this.setAlpha(value);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.setHSV = function(h, s, v) {\n\t\t\t\tspaces = {hsv: this.getHSV()};\n\t\t\t\tif (h !== null) {\n\t\t\t\t\tspaces.hsv.h = _clip(h);\n\t\t\t\t}\n\t\t\t\tif (s !== null)\t{\n\t\t\t\t\tspaces.hsv.s = _clip(s);\n\t\t\t\t}\n\t\t\t\tif (v !== null)\t{\n\t\t\t\t\tspaces.hsv.v = _clip(v);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.setHSL = function(h, s, l) {\n\t\t\t\tspaces = {hsl: this.getHSL()};\n\t\t\t\tif (h !== null)\t{\n\t\t\t\t\tspaces.hsl.h = _clip(h);\n\t\t\t\t}\n\t\t\t\tif (s !== null) {\n\t\t\t\t\tspaces.hsl.s = _clip(s);\n\t\t\t\t}\n\t\t\t\tif (l !== null) {\n\t\t\t\t\tspaces.hsl.l = _clip(l);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.setLAB = function(l, a, b) {\n\t\t\t\tspaces = {lab: this.getLAB()};\n\t\t\t\tif (l !== null) {\n\t\t\t\t\tspaces.lab.l = _clip(l);\n\t\t\t\t}\n\t\t\t\tif (a !== null) {\n\t\t\t\t\tspaces.lab.a = _clip(a);\n\t\t\t\t}\n\t\t\t\tif (b !== null) {\n\t\t\t\t\tspaces.lab.b = _clip(b);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.setCMYK = function(c, m, y, k) {\n\t\t\t\tspaces = {cmyk: this.getCMYK()};\n\t\t\t\tif (c !== null) {\n\t\t\t\t\tspaces.cmyk.c = _clip(c);\n\t\t\t\t}\n\t\t\t\tif (m !== null) {\n\t\t\t\t\tspaces.cmyk.m = _clip(m);\n\t\t\t\t}\n\t\t\t\tif (y !== null) {\n\t\t\t\t\tspaces.cmyk.y = _clip(y);\n\t\t\t\t}\n\t\t\t\tif (k !== null) {\n\t\t\t\t\tspaces.cmyk.k = _clip(k);\n\t\t\t\t}\n\t\t\t\tthis.set = true;\n\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\tthis.getRGB = function() {\n\t\t\t\tif (!spaces.rgb) {\n\t\t\t\t\tspaces.rgb\t= spaces.lab ?\t_xyz_to_rgb(_lab_to_xyz(spaces.lab))\n\t\t\t\t\t\t\t\t: spaces.hsv ?\t_hsv_to_rgb(spaces.hsv)\n\t\t\t\t\t\t\t\t: spaces.hsl ?\t_hsl_to_rgb(spaces.hsl)\n\t\t\t\t\t\t\t\t: spaces.cmyk ?\t_cmy_to_rgb(_cmyk_to_cmy(spaces.cmyk))\n\t\t\t\t\t\t\t\t: {r: 0, g: 0, b: 0};\n\t\t\t\t\tspaces.rgb.r = _clip(spaces.rgb.r);\n\t\t\t\t\tspaces.rgb.g = _clip(spaces.rgb.g);\n\t\t\t\t\tspaces.rgb.b = _clip(spaces.rgb.b);\n\t\t\t\t}\n\t\t\t\treturn $.extend({}, spaces.rgb);\n\t\t\t};\n\n\t\t\tthis.getHSV = function() {\n\t\t\t\tif (!spaces.hsv) {\n\t\t\t\t\tspaces.hsv\t= spaces.lab ? _rgb_to_hsv(this.getRGB())\n\t\t\t\t\t\t\t\t: spaces.rgb ?\t_rgb_to_hsv(spaces.rgb)\n\t\t\t\t\t\t\t\t: spaces.hsl ?\t_rgb_to_hsv(this.getRGB())\n\t\t\t\t\t\t\t\t: spaces.cmyk ?\t_rgb_to_hsv(this.getRGB())\n\t\t\t\t\t\t\t\t: {h: 0, s: 0, v: 0};\n\t\t\t\t\tspaces.hsv.h = _clip(spaces.hsv.h);\n\t\t\t\t\tspaces.hsv.s = _clip(spaces.hsv.s);\n\t\t\t\t\tspaces.hsv.v = _clip(spaces.hsv.v);\n\t\t\t\t}\n\t\t\t\treturn $.extend({}, spaces.hsv);\n\t\t\t};\n\n\t\t\tthis.getHSL = function() {\n\t\t\t\tif (!spaces.hsl) {\n\t\t\t\t\tspaces.hsl\t= spaces.rgb ?\t_rgb_to_hsl(spaces.rgb)\n\t\t\t\t\t\t\t\t: spaces.hsv ?\t_rgb_to_hsl(this.getRGB())\n\t\t\t\t\t\t\t\t: spaces.cmyk ?\t_rgb_to_hsl(this.getRGB())\n\t\t\t\t\t\t\t\t: spaces.hsv ?\t_rgb_to_hsl(this.getRGB())\n\t\t\t\t\t\t\t\t: {h: 0, s: 0, l: 0};\n\t\t\t\t\tspaces.hsl.h = _clip(spaces.hsl.h);\n\t\t\t\t\tspaces.hsl.s = _clip(spaces.hsl.s);\n\t\t\t\t\tspaces.hsl.l = _clip(spaces.hsl.l);\n\t\t\t\t}\n\t\t\t\treturn $.extend({}, spaces.hsl);\n\t\t\t};\n\n\t\t\tthis.getCMYK = function() {\n\t\t\t\tif (!spaces.cmyk) {\n\t\t\t\t\tspaces.cmyk\t= spaces.rgb ?\t_cmy_to_cmyk(_rgb_to_cmy(spaces.rgb))\n\t\t\t\t\t\t\t\t: spaces.hsv ?\t_cmy_to_cmyk(_rgb_to_cmy(this.getRGB()))\n\t\t\t\t\t\t\t\t: spaces.hsl ?\t_cmy_to_cmyk(_rgb_to_cmy(this.getRGB()))\n\t\t\t\t\t\t\t\t: spaces.lab ?\t_cmy_to_cmyk(_rgb_to_cmy(this.getRGB()))\n\t\t\t\t\t\t\t\t: {c: 0, m: 0, y: 0, k: 1};\n\t\t\t\t\tspaces.cmyk.c = _clip(spaces.cmyk.c);\n\t\t\t\t\tspaces.cmyk.m = _clip(spaces.cmyk.m);\n\t\t\t\t\tspaces.cmyk.y = _clip(spaces.cmyk.y);\n\t\t\t\t\tspaces.cmyk.k = _clip(spaces.cmyk.k);\n\t\t\t\t}\n\t\t\t\treturn $.extend({}, spaces.cmyk);\n\t\t\t};\n\n\t\t\tthis.getLAB = function() {\n\t\t\t\tif (!spaces.lab) {\n\t\t\t\t\tspaces.lab\t= spaces.rgb ?\t_xyz_to_lab(_rgb_to_xyz(spaces.rgb))\n\t\t\t\t\t\t\t\t: spaces.hsv ?\t_xyz_to_lab(_rgb_to_xyz(this.getRGB()))\n\t\t\t\t\t\t\t\t: spaces.hsl ?\t_xyz_to_lab(_rgb_to_xyz(this.getRGB()))\n\t\t\t\t\t\t\t\t: spaces.cmyk ?\t_xyz_to_lab(_rgb_to_xyz(this.getRGB()))\n\t\t\t\t\t\t\t\t: {l: 0, a: 0, b: 0};\n\t\t\t\t\tspaces.lab.l = _clip(spaces.lab.l);\n\t\t\t\t\tspaces.lab.a = _clip(spaces.lab.a);\n\t\t\t\t\tspaces.lab.b = _clip(spaces.lab.b);\n\t\t\t\t}\n\t\t\t\treturn $.extend({}, spaces.lab);\n\t\t\t};\n\n\t\t\tthis.getChannels = function() {\n\t\t\t\treturn {\n\t\t\t\t\tr:\tthis.getRGB().r,\n\t\t\t\t\tg:\tthis.getRGB().g,\n\t\t\t\t\tb:\tthis.getRGB().b,\n\t\t\t\t\ta:\tthis.getAlpha(),\n\t\t\t\t\th:\tthis.getHSV().h,\n\t\t\t\t\ts:\tthis.getHSV().s,\n\t\t\t\t\tv:\tthis.getHSV().v,\n\t\t\t\t\tc:\tthis.getCMYK().c,\n\t\t\t\t\tm:\tthis.getCMYK().m,\n\t\t\t\t\ty:\tthis.getCMYK().y,\n\t\t\t\t\tk:\tthis.getCMYK().k,\n\t\t\t\t\tL:\tthis.getLAB().l,\n\t\t\t\t\tA:\tthis.getLAB().a,\n\t\t\t\t\tB:\tthis.getLAB().b\n\t\t\t\t};\n\t\t\t};\n\n\t\t\tthis.getSpaces = function() {\n\t\t\t\treturn $.extend(true, {}, spaces);\n\t\t\t};\n\n\t\t\tthis.distance = function(color) {\n\t\t\t\tvar space\t= 'lab',\n\t\t\t\t\tgetter\t= 'get'+space.toUpperCase(),\n\t\t\t\t\ta = this[getter](),\n\t\t\t\t\tb = color[getter](),\n\t\t\t\t\tdistance = 0,\n\t\t\t\t\tchannel;\n\n\t\t\t\tfor (channel in a) {\n\t\t\t\t\tdistance += Math.pow(a[channel] - b[channel], 2);\n\t\t\t\t}\n\n\t\t\t\treturn distance;\n\t\t\t};\n\n\t\t\tthis.equals = function(color) {\n\t\t\t\tif (color) {\n\t\t\t\t\tvar a = this.getRGB(),\n\t\t\t\t\t\tb = color.getRGB();\n\n\t\t\t\t\treturn this.set === color.set\n\t\t\t\t\t\t&& this.getAlpha() === color.getAlpha()\n\t\t\t\t\t\t&& a.r === b.r\n\t\t\t\t\t\t&& a.g === b.g\n\t\t\t\t\t\t&& a.b === b.b;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\tthis.limit = function(steps) {\n\t\t\t\tsteps -= 1;\n\t\t\t\tvar rgb = this.getRGB();\n\t\t\t\tthis.setRGB(\n\t\t\t\t\tMath.round(rgb.r * steps) / steps,\n\t\t\t\t\tMath.round(rgb.g * steps) / steps,\n\t\t\t\t\tMath.round(rgb.b * steps) / steps\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tthis.toHex = function() {\n\t\t\t\tvar rgb = this.getRGB();\n\t\t\t\treturn _hexify(rgb.r * 255) + _hexify(rgb.g * 255) + _hexify(rgb.b * 255);\n\t\t\t};\n\n\t\t\tthis.toCSS = function() {\n\t\t\t\treturn '#' + this.toHex();\n\t\t\t};\n\n\t\t\tthis.copy = function() {\n\t\t\t\tvar color = new $.colorpicker.Color(this.getSpaces(), this.getAlpha());\n\t\t\t\tcolor.set = this.set;\n\t\t\t\treturn color;\n\t\t\t};\n\n\t\t\t// Construct\n\t\t\tif (args.length === 2) {\n\t\t\t\tspaces = args[0];\n\t\t\t\tthis.setAlpha(args[1] === 0 ? 0 : args[1] || 1);\n\t\t\t\tthis.set = true;\n\t\t\t}\n\t\t\tif (args.length > 2) {\n\t\t\t\tthis.setRGB(args[0], args[1], args[2]);\n\t\t\t\tthis.setAlpha(args[3] === 0 ? 0 : args[3] || 1);\n\t\t\t\tthis.set = true;\n\t\t\t}\n\t\t};\n\t}();\n\n\t$.widget(\"vanderlee.colorpicker\", {\n\t\toptions: {\n\t\t\talpha:\t\t\t\tfalse,\t\t// Show alpha controls and mode\n\t\t\taltAlpha:\t\t\ttrue,\t\t// change opacity of altField as well?\n\t\t\taltField:\t\t\t'',\t\t\t// selector for DOM elements which change background color on change.\n\t\t\taltOnChange:\t\ttrue,\t\t// true to update on each change, false to update only on close.\n\t\t\taltProperties:\t\t'background-color',\t// comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color'\n\t\t\tautoOpen:\t\t\tfalse,\t\t// Open dialog automatically upon creation\n\t\t\tbuttonClass:\t\tnull,\t\t// If set, the button will get this/these classname(s).\n\t\t\tbuttonColorize:\t\tfalse,\n\t\t\tbuttonImage:\t\t'images/ui-colorpicker.png',\n\t\t\tbuttonImageOnly:\tfalse,\n\t\t\tbuttonText:\t\t\tnull,\t\t// Text on the button and/or title of button image.\n\t\t\tcloseOnEscape:\t\ttrue,\t\t// Close the dialog when the escape key is pressed.\n\t\t\tcloseOnOutside:\t\ttrue,\t\t// Close the dialog when clicking outside the dialog (not for inline)\n\t\t\tcolor:\t\t\t\t'#00FF00',\t// Initial color (for inline only)\n\t\t\tcolorFormat:\t\t'HEX',\t\t// Format string for output color format\n\t\t\tdisabled:\t\t\tfalse,\t\t// Disable or enable the colorpicker initially\n\t\t\tdraggable:\t\t\ttrue,\t\t// Make popup dialog draggable if header is visible.\n\t\t\tcontainment:\t\tnull,\t\t// Constrains dragging to within the bounds of the specified element or region.\n\t\t\tduration:\t\t\t'fast',\n\t\t\thideOn:\t\t\t\t'button',\t// 'focus', 'click', 'button', 'alt', 'all'\n\t\t\thsv:\t\t\t\ttrue,\t\t// Show HSV controls and modes\n\t\t\tinline:\t\t\t\ttrue,\t\t// Show any divs as inline by default\n\t\t\tinlineFrame:\t\ttrue,\t\t// Show a border and background when inline.\n\t\t\tlayout: {\n\t\t\t\tmap:\t\t[0, 0, 1, 5],\t// Left, Top, Width, Height (in table cells).\n\t\t\t\tbar:\t\t[1, 0, 1, 5],\n\t\t\t\tpreview:\t[2, 0, 1, 1],\n\t\t\t\thsv:\t\t[2, 1, 1, 1],\n\t\t\t\trgb:\t\t[2, 2, 1, 1],\n\t\t\t\talpha:\t\t[2, 3, 1, 1],\n\t\t\t\thex:\t\t[2, 4, 1, 1],\n\t\t\t\tlab:\t\t[3, 1, 1, 1],\n\t\t\t\tcmyk:\t\t[3, 2, 1, 2],\n\t\t\t\tswatches:\t[4, 0, 1, 5]\n\t\t\t},\n\t\t\tlimit:\t\t\t\t'',\t\t\t// Limit color \"resolution\": '', 'websafe', 'nibble', 'binary', 'name'\n\t\t\tmodal:\t\t\t\tfalse,\t\t// Modal dialog?\n\t\t\tmode:\t\t\t\t'h',\t\t// Initial editing mode, h, s, v, r, g, b or a\n\t\t\tokOnEnter:\t\t\tfalse,\t\t// Close (with OK) when pressing the enter key\n\t\t\tparts:\t\t\t\t'',\t\t\t// leave empty for automatic selection\n\t\t\tpart: {\n\t\t\t\tmap:\t\t{ size: 256 },\n\t\t\t\tbar:\t\t{ size: 256 }\n\t\t\t},\t\t\t// options per part\n\t\t\tposition:\t\t\tnull,\n\t\t\tregional:\t\t\t'',\n\t\t\trevert:\t\t\t\tfalse,\t\t// Revert color upon non\n\t\t\trgb:\t\t\t\ttrue,\t\t// Show RGB controls and modes\n\t\t\tshowAnim:\t\t\t'fadeIn',\n\t\t\tshowCancelButton:\ttrue,\n\t\t\tshowNoneButton:\t\tfalse,\n\t\t\tshowCloseButton:\ttrue,\n\t\t\tshowOn:\t\t\t\t'focus click alt',\t\t// 'focus', 'click', 'button', 'alt', 'all'\n\t\t\tshowOptions:\t\t{},\n\t\t\tswatches:\t\t\tnull,\t\t// null for default or kv-object or names swatches set\n\t\t\tswatchesWidth:\t\t84,\t\t\t// width (in number of pixels) of swatches box.\n\t\t\ttitle:\t\t\t\tnull,\n\n\t\t\tcancel: null,\n close: null,\n\t\t\tinit:\t\t\t\tnull,\n ok: null,\n\t\t\topen: null,\n\t\t\tselect: null,\n\t\t\tstop:\t\t\t\tnull\n\t\t},\n\t\t\n\t\t_create: function () {\n\t\t\tvar that = this,\n\t\t\t\ttext;\n\n\t\t\tthat.colorpicker_index = _colorpicker_index++;\n\n\t\t\tthat.widgetEventPrefix = 'colorpicker';\n\n\t\t\tthat.opened\t\t= false;\n\t\t\tthat.generated\t= false;\n\t\t\tthat.inline\t\t= false;\n\t\t\tthat.changed\t= false;\n\n\t\t\tthat.dialog\t\t= null;\n\t\t\tthat.button\t\t= null;\n\t\t\tthat.image\t\t= null;\n\t\t\tthat.overlay\t= null;\n\t\t\t\n\t\t\tthat.events = {\n\t\t\t\twindow_resize:\t\t\tnull,\n\t\t\t\tdocument_keydown:\t\tnull,\n\t\t\t\tdocument_click_html:\tnull\n\t\t\t};\n\n\t\t\tthat.mode\t\t= that.options.mode;\n\n\t\t\tif (that.element.is('input') || that.options.inline === false) {\n\t\t\t\t// Initial color\n\t\t\t\tthat._setColor(that.element.is('input') ? that.element.val() : that.options.color);\n\t\t\t\tthat._callback('init');\n\n\t\t\t\t// showOn focus\n\t\t\t\tif (/\\bfocus|all|both\\b/.test(that.options.showOn)) {\n\t\t\t\t\tthat.element.on('focus', function () {\n\t\t\t\t\t\tthat.open();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (/\\bfocus|all|both\\b/.test(that.options.hideOn)) {\n\t\t\t\t\tthat.element.on('focusout', function (e) {\n\t\t\t\t\t\tthat.close();\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// showOn click\n\t\t\t\tif (/\\bclick|all|both\\b/.test(that.options.showOn)) {\n\t\t\t\t\tthat.element.on('click', function (e) {\t\t\t\t\t\t\n\t\t\t\t\t\tif (that.opened && /\\bclick|all|both\\b/.test(that.options.hideOn)) {\n\t\t\t\t\t\t\tthat.close();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.open();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// showOn button\n\t\t\t\tif (/\\bbutton|all|both\\b/.test(that.options.showOn)) {\n\t\t\t\t\tif (that.options.buttonImage !== '') {\n\t\t\t\t\t\ttext = that.options.buttonText || that._getRegional('button');\n\n\t\t\t\t\t\tthat.image = $('').attr({\n\t\t\t\t\t\t\t'src':\t\tthat.options.buttonImage,\n\t\t\t\t\t\t\t'alt':\t\ttext,\n\t\t\t\t\t\t\t'title':\ttext\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (that.options.buttonClass) {\n\t\t\t\t\t\t\tthat.image.attr('class', that.options.buttonClass);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthat._setImageBackground();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.buttonImageOnly && that.image) {\n\t\t\t\t\t\tthat.button = that.image;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthat.button = $('').html(that.image || that.options.buttonText).button();\n\t\t\t\t\t\tthat.image = that.image ? $('img', that.button).first() : null;\n\t\t\t\t\t}\n\t\t\t\t\tthat.button.insertAfter(that.element).click(function () {\n\t\t\t\t\t\tif (that.opened && /\\bbutton|all|both\\b/.test(that.options.hideOn)) {\n\t\t\t\t\t\t\tthat.close();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.open();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// showOn alt\n\t\t\t\tif (/\\balt|all|both\\b/.test(that.options.showOn)) {\t\t\t\t\t\n\t\t\t\t\t$(that.options.altField).on('click', function () {\n\t\t\t\t\t\tif (that.opened && /\\balt|all|both\\b/.test(that.options.hideOn)) {\n\t\t\t\t\t\t\tthat.close();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.open();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (that.options.autoOpen) {\n\t\t\t\t\tthat.open();\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tthat.inline = true;\n\n\t\t\t\tthat._generate();\n\t\t\t\tthat.opened = true;\n\t\t\t}\n\n\t\t\t// Disable Widget-style\n\t\t\t(that.element.is(':disabled') || that.options.disabled) && that.disable();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t_setOption: function(key, value) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'disabled':\n\t\t\t\t\tthis[value ? 'disable' : 'enable']();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'swatches':\n\t\t\t\t\tthis.options.swatches = value;\n\t\t\t\t\tthis.parts.swatches.init();\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t$.Widget.prototype._setOption.apply(this, arguments);\n\t\t},\n\n\t\tenable: function () {\n\t\t\t//$.Widget.prototype.enable.call(this);\n\t\t\tthis.element && this.element.prop('disabled', false);\n\t\t\tthis.button && this.button.prop('disabled', false);\n\t\t\tthis.dialog && this.dialog.removeClass('ui-colorpicker-disabled');\n\t\t\tthis.options.disabled = false;\n\n\t\t\tthis.parts && $.each(this.parts, function (index, part) {\n\t\t\t\tpart.disable && part.disable(false);\n\t\t\t});\n\t\t},\n\t\t\n\t\tdisable: function () {\n\t\t\t//$.Widget.prototype.disable.call(this);\n\t\t\tthis.element && this.element.prop('disabled', true);\n\t\t\tthis.button && this.button.prop('disabled', true);\n\t\t\tthis.dialog && this.dialog.addClass('ui-colorpicker-disabled');\n\t\t\tthis.options.disabled = true;\n\n\t\t\tthis.parts && $.each(this.parts, function (index, part) {\n\t\t\t\tpart.disable && part.disable(true);\n\t\t\t});\n\t\t},\n\n\t\t_setImageBackground: function() {\n\t\t\tif (this.image && this.options.buttonColorize) {\n\t\t\t\tthis.image.css('background-color', this.color.set? this._formatColor('RGBA', this.color) : '');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * If an alternate field is specified, set it according to the current color.\n\t\t */\n\t\t_setAltField: function () {\n\t\t\tif (this.options.altOnChange && this.options.altField && this.options.altProperties) {\n\t\t\t\tvar index,\n\t\t\t\t\tproperty,\n\t\t\t\t\tproperties = this.options.altProperties.split(',');\n\n\t\t\t\tfor (index = 0; index <= properties.length; ++index) {\n\t\t\t\t\tproperty = $.trim(properties[index]);\n\t\t\t\t\tswitch (property) {\n\t\t\t\t\t\tcase 'color':\n\t\t\t\t\t\tcase 'fill':\n\t\t\t\t\t\tcase 'stroke':\n\t\t\t\t\t\tcase 'background-color':\n\t\t\t\t\t\tcase 'backgroundColor':\n\t\t\t\t\t\tcase 'outline-color':\n\t\t\t\t\t\tcase 'border-color':\n\t\t\t\t\t\t\t$(this.options.altField).css(property, this.color.set? this.color.toCSS() : '');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.options.altAlpha && \n\t\t\t\t\t$(this.options.altField).css('opacity', this.color.set? this.color.getAlpha() : '');\n\t\t\t}\n\t\t},\n\n\t\t_setColor: function(text) {\n\t\t\tthis.color\t\t\t= this._parseColor(text) || new $.colorpicker.Color();\n\t\t\tthis.currentColor\t= this.color.copy();\n\n\t\t\tthis._setImageBackground();\n\t\t\tthis._setAltField();\n\t\t},\n\n\t\tsetColor: function(text) {\n\t\t\tthis._setColor(text);\n\t\t\tthis._change();\n\t\t},\n\n\t\tgetColor: function(format) {\n\t\t\treturn this._formatColor(format || this.options.colorFormat, this.color);\n\t\t},\n\n\t\t_generateInline: function() {\n\t\t\tvar that = this;\n\n\t\t\t$(that.element).html(that.options.inlineFrame ? _container_inlineFrame : _container_inline);\n\n\t\t\tthat.dialog = $('.ui-colorpicker', that.element);\n\t\t},\n\n\t\t_generatePopup: function() {\n\t\t\tvar that = this;\n\n\t\t\tthat.dialog = $(_container_popup).appendTo('body');\n\n\t\t\t// Close on clicking outside window and controls\n\t\t\tif (that.events.document_click_html === null) {\n\t\t\t\t$(document).on('touchstart click', 'html', that.events.document_click_html = function (event) {\n\t\t\t\t\tif (!that.opened || event.target === that.element[0] || that.overlay) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if clicked on any part of dialog\n\t\t\t\t\tif (that.dialog.is(event.target) || that.dialog.has(event.target).length > 0) {\n\t\t\t\t\t\tthat.element.blur();\t// inside window!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if clicked on known external elements\n\t\t\t\t\tvar p,\n\t\t\t\t\t\tparents = $(event.target).parents();\n\t\t\t\t\t// add the event.target in case of buttonImageOnly and closeOnOutside both are set to true\n\t\t\t\t\tparents.push(event.target);\n\t\t\t\t\tfor (p = 0; p <= parents.length; ++p) {\n\t\t\t\t\t\t// button\n\t\t\t\t\t\tif (that.button !== null && parents[p] === that.button[0]) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// showOn alt\n\t\t\t\t\t\tif (/\\balt|all|both\\b/.test(that.options.showOn) && $(that.options.altField).is(parents[p])) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// no closeOnOutside\n\t\t\t\t\tif (!that.options.closeOnOutside) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.close(that.options.revert);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (that.events.document_keydown === null) {\n\t\t\t\t$(document).on('keydown', that.events.document_keydown = function (event) {\n\t\t\t\t\t// close on ESC key\n\t\t\t\t\tif (that.opened && event.keyCode === 27 && that.options.closeOnEscape) {\n\t\t\t\t\t\tthat.close(that.options.revert);\n\t\t\t\t\t}\n\n\t\t\t\t\t// OK on Enter key\n\t\t\t\t\tif (that.opened && event.keyCode === 13 && that.options.okOnEnter) {\n\t\t\t\t\t\tthat.close();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Close (with OK) on tab key in element\n\t\t\tthat.element.keydown(function (event) {\n\t\t\t\tif (event.keyCode === 9) {\n\t\t\t\t\tthat.close();\n\t\t\t\t}\n\t\t\t}).keyup(function (event) {\n\t\t\t\tvar color = that._parseColor(that.element.val());\n\t\t\t\tif (color && !that.color.equals(color)) {\n\t\t\t\t\tthat.color = color;\n\t\t\t\t\tthat._change();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_generate: function () {\n\t\t\tvar that = this,\n\t\t\t\tindex,\n\t\t\t\tpart,\n\t\t\t\tparts_list,\n\t\t\t\tlayout_parts,\n\t\t\t\ttable,\n\t\t\t\tclasses;\n\n\t\t\tthat._setColor(that.inline || !that.element.is('input') ? that.options.color : that.element.val());\n\n\t\t\tthat[that.inline ? '_generateInline' : '_generatePopup']();\n\n\t\t\t// Determine the parts to include in this colorpicker\n\t\t\tif (typeof that.options.parts === 'string') {\n\t\t\t\tif ($.colorpicker.partslists[that.options.parts]) {\n\t\t\t\t\tparts_list = $.colorpicker.partslists[that.options.parts];\n\t\t\t\t} else {\n\t\t\t\t\t// automatic\n\t\t\t\t\tparts_list = $.colorpicker.partslists[that.inline ? 'inline' : 'popup'];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparts_list = that.options.parts;\n\t\t\t}\n\n\t\t\t// Add any parts to the internal parts list\n\t\t\tthat.parts = {};\n\t\t\t$.each(parts_list, function(index, part) {\n\t\t\t\tif ($.colorpicker.parts[part]) {\n\t\t\t\t\tthat.parts[part] = new $.colorpicker.parts[part](that);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!that.generated) {\n\t\t\t\tlayout_parts = [];\n\n\t\t\t\t$.each(that.options.layout, function(part, pos) {\n\t\t\t\t\tif (that.parts[part]) {\n\t\t\t\t\t\tlayout_parts.push({\n\t\t\t\t\t\t\t'part': part,\n\t\t\t\t\t\t\t'pos': pos\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttable = $(_layoutTable(layout_parts, function(cell, x, y) {\n\t\t\t\t\tclasses = ['ui-colorpicker-' + cell.part + '-container'];\n\n\t\t\t\t\tif (x > 0) {\n\t\t\t\t\t\tclasses.push('ui-colorpicker-padding-left');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y > 0) {\n\t\t\t\t\t\tclasses.push('ui-colorpicker-padding-top');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ' 1 ? ' colspan=\"' + cell.pos[2] + '\"' : '')\n\t\t\t\t\t\t+ (cell.pos[3] > 1 ? ' rowspan=\"' + cell.pos[3] + '\"' : '')\n\t\t\t\t\t\t+ ' valign=\"top\">';\n\t\t\t\t})).appendTo(that.dialog);\n\t\t\t\tif (that.options.inlineFrame) {\n\t\t\t\t\ttable.addClass('ui-dialog-content ui-widget-content');\n\t\t\t\t}\n\n\t\t\t\tthat._initAllParts();\n\t\t\t\tthat._updateAllParts();\n\t\t\t\tthat.generated = true;\n\t\t\t}\n\t\t},\n\n\t\t_effectGeneric: function (element, show, slide, fade, callback) {\n\t\t\tvar that = this;\n\n\t\t\tif ($.effects && $.effects[that.options.showAnim]) {\n\t\t\t\telement[show](that.options.showAnim, that.options.showOptions, that.options.duration, callback);\n\t\t\t} else {\n\t\t\t\telement[(that.options.showAnim === 'slideDown' ?\n\t\t\t\t\t\t\t\tslide\n\t\t\t\t\t\t\t:\t(that.options.showAnim === 'fadeIn' ?\n\t\t\t\t\t\t\t\t\tfade\n\t\t\t\t\t\t\t\t:\tshow))]((that.options.showAnim ? that.options.duration : null), callback);\n\t\t\t\tif (!that.options.showAnim || !that.options.duration) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_effectShow: function(element, callback) {\n\t\t\tthis._effectGeneric(element, 'show', 'slideDown', 'fadeIn', callback);\n\t\t},\n\n\t\t_effectHide: function(element, callback) {\n\t\t\tthis._effectGeneric(element, 'hide', 'slideUp', 'fadeOut', callback);\n\t\t},\n\t\t\t\t\n\t\topen: function() {\n\t\t\tvar that = this,\n\t\t\t\toffset,\n\t\t\t\tbottom, right,\n\t\t\t\theight, width,\n\t\t\t\tx, y,\n\t\t\t\tzIndex,\n\t\t\t\telement,\n\t\t\t\tposition;\n\n\t\t\tif (!that.opened) {\n\t\t\t\tthat._generate();\n\t\t\t\t\n\t\t\t\tif (that.element.is(':hidden')) {\n\t\t\t\t\telement = $('
').insertBefore(that.element);\n\t\t\t\t} else {\n\t\t\t\t\telement = that.element;\n\t\t\t\t}\t\t\t\n\t\t\t\t\n\t\t\t\tif (that.element.is(':hidden')) {\n\t\t\t\t\telement.remove();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Automatically find highest z-index.\n\t\t\t\tzIndex = 0;\n\t\t\t\t$(that.element[0]).parents().each(function() {\n\t\t\t\t\tvar z = $(this).css('z-index');\n\t\t\t\t\tif ((typeof(z) === 'number' || typeof(z) === 'string') && z !== '' && !isNaN(z)) {\n\t\t\t\t\t\tif (z > zIndex) {\n\t\t\t\t\t\t\tzIndex = parseInt(z, 10);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$(this).siblings().each(function() {\n\t\t\t\t\t\t\tvar z = $(this).css('z-index');\n\t\t\t\t\t\t\tif ((typeof(z) === 'number' || typeof(z) === 'string') && z !== '' && !isNaN(z)) {\n\t\t\t\t\t\t\t\tif (z > zIndex) {\n\t\t\t\t\t\t\t\t\tzIndex = parseInt(z, 10);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tzIndex += 2;\n\t\t\t\tthat.dialog.css('z-index', zIndex);\n\t\t\t\t\t\t\t\t\n\t\t\t\tif (that.options.modal) {\n\t\t\t\t\tthat.overlay = $('
').appendTo('body').css('z-index', zIndex - 1);\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\tif (that.events.window_resize !== null) {\n\t\t\t\t\t\t$(window).off('resize', that.events.window_resize);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthat.events.window_resize = function() {\n\t\t\t\t\t\tif (that.overlay) {\n\t\t\t\t\t\t\tthat.overlay.width($(document).width());\n\t\t\t\t\t\t\tthat.overlay.height($(document).height());\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t$(window).on('resize', that.events.window_resize);\n\t\t\t\t\tthat.events.window_resize();\t\t\t\n\t\t\t\t}\n\n\t\t\t\tthat._effectShow(this.dialog);\n\n\t\t\t\tif (that.options.position) {\n\t\t\t\t\tposition = $.extend({}, that.options.position);\n\t\t\t\t\tif (position.of === 'element') {\n\t\t\t\t\t\tposition.of = element;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tposition = {\n\t\t\t\t\t\tmy:\t\t\t'left top',\n\t\t\t\t\t\tat:\t\t\t'left bottom',\n\t\t\t\t\t\tof:\t\t\telement,\n\t\t\t\t\t\tcollision:\t'flip'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tthat.dialog.position(position);\n\t\t\t\t\n\t\t\t\tthat.opened = true;\n\t\t\t\tthat._callback('open', true);\n\n\t\t\t\t// Without waiting for domready the width of the map is 0 and we\n\t\t\t\t// wind up with the cursor stuck in the upper left corner\n\t\t\t\t$(function() {\n\t\t\t\t\tthat._repaintAllParts();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tclose: function (cancel) {\n\t\t\tvar that = this;\n\n\t\t\tif (!that.opened) {\n\t\t\t\treturn;\n\t\t\t}\t\t\t\t\n\t\t\t\t\n if (cancel) {\n\t\t\t\tthat.color = that.currentColor.copy();\n that._change();\n that._callback('cancel', true);\n } else {\n\t\t\t\tthat.currentColor\t= that.color.copy();\n that._callback('ok', true);\n }\n\t\t\tthat.changed\t\t= false;\n\n\t\t\tif (that.overlay) {\n\t\t\t\t$(window).off('resize', that.events.window_resize);\t\t\t\t\t\n\t\t\t\tthat.overlay.remove();\n\t\t\t}\n\t\t\t\n\t\t\t// tear down the interface\n\t\t\tthat._effectHide(that.dialog, function () {\n\t\t\t\tthat.dialog.remove();\n\t\t\t\tthat.dialog\t\t= null;\n\t\t\t\tthat.generated\t= false;\n\n\t\t\t\tthat.opened\t\t= false;\n\t\t\t\tthat._callback('close', true);\n\t\t\t});\n\t\t},\n\n\t\tdestroy: function() {\n\t\t\tvar that = this;\n\t\t\tif (that.events.document_click_html !== null) {\n\t\t\t\t$(document).off('touchstart click', 'html', that.events.document_click_html);\n\t\t\t}\n\t\t\t\n\t\t\tif (that.events.document_keydown !== null) {\n\t\t\t\t$(document).off('keydown', that.events.document_keydown);\n\t\t\t}\n\t\t\t\n\t\t\tif (that.events.resizeOverlay !== null) {\n\t\t\t\t$(window).off('resize', that.events.resizeOverlay);\t\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.element.off();\n\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.overlay.remove();\n\t\t\t}\n\t\t\t\n\t\t\tif (this.dialog !== null) {\n\t\t\t\tthis.dialog.remove();\n\t\t\t}\n\t\t\t\n\t\t\tif (this.image !== null) {\n\t\t\t\tthis.image.remove();\n\t\t\t}\n\n\t\t\tif (this.button !== null) {\n\t\t\t\tthis.button.remove();\n\t\t\t}\n\t\t},\n\n\t\t_callback: function (callback, spaces) {\n\t\t\tvar that = this,\n\t\t\t\tdata,\n\t\t\t\tlab;\n\n\t\t\tif (that.color.set) {\n\t\t\t\tdata = {\n\t\t\t\t\tformatted: that._formatColor(that.options.colorFormat, that.color),\n\t\t\t\t\tcolorPicker: that\n\t\t\t\t};\n\n\t\t\t\tlab = that.color.getLAB();\n\t\t\t\tlab.a = (lab.a * 2) - 1;\n\t\t\t\tlab.b = (lab.b * 2) - 1;\n\n\t\t\t\tif (spaces === true) {\n\t\t\t\t\tdata.a\t\t= that.color.getAlpha();\n\t\t\t\t\tdata.rgb\t= that.color.getRGB();\n\t\t\t\t\tdata.hsv\t= that.color.getHSV();\n\t\t\t\t\tdata.cmyk\t= that.color.getCMYK();\n\t\t\t\t\tdata.hsl\t= that.color.getHSL();\n\t\t\t\t\tdata.lab\t= lab;\n\t\t\t\t}\n\n\t\t\t\treturn that._trigger(callback, null, data);\n\t\t\t} else {\n\t\t\t\treturn that._trigger(callback, null, {\n\t\t\t\t\tformatted: '',\n\t\t\t\t\tcolorPicker: that\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_initAllParts: function () {\n\t\t\t$.each(this.parts, function (index, part) {\n\t\t\t\tif (part.init) {\n\t\t\t\t\tpart.init();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_updateAllParts: function () {\n\t\t\t$.each(this.parts, function (index, part) {\n\t\t\t\tif (part.update) {\n\t\t\t\t\tpart.update();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_repaintAllParts: function () {\n\t\t\t$.each(this.parts, function (index, part) {\n\t\t\t\tif (part.repaint) {\n\t\t\t\t\tpart.repaint();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\t\n\t\t_change: function (stoppedChanging /* = true */) {\n\t\t\t// Limit color palette\n\t\t\tif (this.color.set && this.options.limit && $.colorpicker.limits[this.options.limit]) {\n\t\t\t\t$.colorpicker.limits[this.options.limit](this.color, this);\n\t\t\t}\n\n\t\t\t// Set changed if different from starting color\n\t\t\tthis.changed = !this.color.equals(this.currentColor);\n\n\t\t\t// update input element content\n\t\t\tif (!this.inline) {\n\t\t\t\tif (!this.color.set) {\n\t\t\t\t\tif (this.element.val() !== '') {\n\t\t\t\t\t\tthis.element.val('').change();\n\t\t\t\t\t}\n\t\t\t\t} else if (!this.color.equals(this._parseColor(this.element.val()))) {\n\t\t\t\t\tthis.element.val(this._formatColor(this.options.colorFormat, this.color)).change();\n\t\t\t\t}\n\n\t\t\t\tthis._setImageBackground();\n\t\t\t}\n\n\t\t\t// Set the alt field\n\t\t\tthis._setAltField();\n\n\t\t\t// update color option\n\t\t\tthis.options.color = this.color.set ? this.color.toCSS() : '';\n\n\t\t\tif (this.opened) {\n\t\t\t\tthis._repaintAllParts();\n\t\t\t}\n\n\t\t\t// callbacks\n\t\t\tthis._callback('select');\n\n\t\t\tif (typeof stoppedChanging === 'undefined' ? true : !!stoppedChanging) {\n\t\t\t\tthis._callback('stop');\n\t\t\t}\n\t\t},\n\n\t\t// This will be deprecated by jQueryUI 1.9 widget\n\t\t_hoverable: function (e) {\n\t\t\te.hover(function () {\n\t\t\t\te.addClass(\"ui-state-hover\");\n\t\t\t}, function () {\n\t\t\t\te.removeClass(\"ui-state-hover\");\n\t\t\t});\n\t\t},\n\n\t\t// This will be deprecated by jQueryUI 1.9 widget\n\t\t_focusable: function (e) {\n\t\t\te.focus(function () {\n\t\t\t\te.addClass(\"ui-state-focus\");\n\t\t\t}).blur(function () {\n\t\t\t\te.removeClass(\"ui-state-focus\");\n\t\t\t});\n\t\t},\n\n\t\t_getRegional: function(name) {\n\t\t\treturn $.colorpicker.regional[this.options.regional][name] !== undefined ?\n\t\t\t\t$.colorpicker.regional[this.options.regional][name] : $.colorpicker.regional[''][name];\n },\n\n\t\t_getSwatches: function() {\n\t\t\tif (typeof(this.options.swatches) === 'string') {\n\t\t\t\treturn $.colorpicker.swatches[this.options.swatches];\n\t\t\t}\n\n\t\t\tif ($.isPlainObject(this.options.swatches)) {\n\t\t\t\treturn this.options.swatches;\n\t\t\t}\n\n\t\t\treturn $.colorpicker.swatches.html;\n\t\t},\n\t\t\n\t\t_eachSwatch: function (callback) {\n\t\t\tvar currentSwatches = this._getSwatches(),\n\t\t\t\tname;\n\t\t\t$.each(currentSwatches, function (nameOrIndex, swatch) {\n\t\t\t\tname = $.isArray(currentSwatches) ? swatch.name : nameOrIndex;\n\t\t\t\treturn callback(name, swatch);\n\t\t\t});\n\t\t},\n\n\t\t_getSwatch: function(name) {\n\t\t\tvar swatch = false;\n\n\t\t\tthis._eachSwatch(function(swatchName, current) {\n\t\t\t\tif (swatchName.toLowerCase() == name.toLowerCase()) {\n\t\t\t\t\tswatch = current;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn swatch;\n },\n\t\t\n\t\t_parseFormat: function(format, text) {\n\t\t\tvar that = this,\n\t\t\t\ttypeRegexps = {\n\t\t\t\t\tx:\tfunction() {return '([0-9a-fA-F]{2})';}\n\t\t\t\t,\td:\tfunction() {return '([12]?[0-9]{1,2})';}\n\t\t\t\t,\tf:\tfunction() {return '([0-9]*\\\\.?[0-9]*)';}\n\t\t\t\t,\tp:\tfunction() {return '([0-9]*\\\\.?[0-9]*)';}\n\t\t\t\t},\n\t\t\t\ttypeConverters = {\n\t\t\t\t\tx:\tfunction(v)\t{return parseInt(v, 16) / 255.;}\n\t\t\t\t,\td:\tfunction(v)\t{return v / 255.;}\n\t\t\t\t,\tf:\tfunction(v)\t{return v;}\n\t\t\t\t,\tp:\tfunction(v)\t{return v * 0.01;}\n\t\t\t\t},\n\t\t\t\tsetters = {\n\t\t\t\t\tr:\t'setRGB'\n\t\t\t\t,\tg:\t'setRGB'\n\t\t\t\t,\tb:\t'setRGB'\n\t\t\t\t,\th:\t'setHSV'\n\t\t\t\t,\ts:\t'setHSV'\n\t\t\t\t,\tv:\t'setHSV'\n\t\t\t\t,\tc:\t'setCMYK'\n\t\t\t\t,\tm:\t'setCMYK'\n\t\t\t\t,\ty:\t'setCMYK'\n\t\t\t\t,\tk:\t'setCMYK'\n\t\t\t\t,\tL:\t'setLAB'\n\t\t\t\t,\tA:\t'setLAB'\n\t\t\t\t,\tB:\t'setLAB'\n\t\t\t\t},\n\t\t\t\tsetterChannels = {\n\t\t\t\t\tsetRGB:\t\t[ 'r', 'g', 'b']\n\t\t\t\t,\tsetHSV:\t\t[ 'h', 's', 'v' ]\n\t\t\t\t,\tsetCMYK:\t[ 'c', 'm', 'y', 'k' ]\n\t\t\t\t,\tsetLAB:\t\t[ 'L', 'A', 'B' ]\n\t\t\t\t},\n\t\t\t\tchannels = [],\n\t\t\t\tconverters = [],\t\t\t\t\t\t\n\t\t\t\tsetter = null,\n\t\t\t\tcolor,\n\t\t\t\tpattern;\n\n\t\t\t// Construct pattern\n\t\t\tpattern = format.replace(/[()\\\\^$.|?*+[\\]]/g, function(m) {\n\t\t\t\treturn '\\\\'+m;\n\t\t\t});\n\n\n\t\t\tpattern = pattern.replace(/\\\\?[argbhsvcmykLAB][xdfp]/g, function(variable) {\n\t\t\t\tif (variable.match(/^\\\\/)) {\n\t\t\t\t\treturn variable.slice(1);\n\t\t\t\t}\n\n\t\t\t\tvar channel = variable.charAt(0),\n\t\t\t\t\ttype = variable.charAt(1);\n\n\t\t\t\tchannels.push(channel);\n\t\t\t\tconverters.push(typeConverters[type]);\n\t\t\t\tif (setters[channel]) {\n\t\t\t\t\tsetter = setters[channel];\n\t\t\t\t}\n\n\t\t\t\treturn typeRegexps[type]();\n\t\t\t});\n\n\t\t\tif (setter) {\n\t\t\t\tvar values = text.match(new RegExp(pattern));\n\t\t\t\tif (values) {\n\t\t\t\t\tvar args = [],\n\t\t\t\t\t\tchannelIndex;\n\t\t\t\t\t\n\t\t\t\t\tvalues.shift();\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t$.each(setterChannels[setter], function(index, channel) {\n\t\t\t\t\t\tchannelIndex = $.inArray(channel, channels);\n\t\t\t\t\t\targs[index] = converters[channelIndex](values[channelIndex]);\n\t\t\t\t\t});\n\n\t\t\t\t\tcolor = new $.colorpicker.Color();\n\t\t\t\t\tcolor[setter].apply(color, args);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn color;\n\t\t},\n\n _parseColor: function(text) {\n var that = this,\n\t\t\t\tcolor;\n\t\t\n\t\t\tvar formats = $.isArray(that.options.colorFormat)\n\t\t\t\t\t? that.options.colorFormat\n\t\t\t\t\t: [ that.options.colorFormat ];\n\n\t\t\t$.each(formats, function(index, format) {\n\t\t\t\tif ($.colorpicker.parsers[format]) {\n\t\t\t\t\tcolor = $.colorpicker.parsers[format](text, that);\n\t\t\t\t} else {\n\t\t\t\t\tcolor = that._parseFormat(format, text);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (color) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tif (!color) {\n\t\t\t\t// fallback; check all registered parsers\n\t\t\t\t$.each($.colorpicker.parsers, function(name, parser) {\n\t\t\t\t\tcolor = parser(text, that);\n\t\t\t\t\tif (color) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (color) {\n\t\t\t\treturn color;\n\t\t\t}\n\n\t\t\treturn false;\n },\n\n\t\t_exactName: function(color) {\n\t\t\tvar name\t= false;\n\n\t\t\tthis._eachSwatch(function(n, swatch) {\n\t\t\t\tif (color.equals(new $.colorpicker.Color(swatch.r, swatch.g, swatch.b))) {\n\t\t\t\t\tname = n;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn name;\n\t\t},\n\n\t\t_closestName: function(color) {\n\t\t\tvar rgb\t\t\t= color.getRGB(),\n\t\t\t\tdistance\t= null,\n\t\t\t\tname\t\t= false,\n\t\t\t\td;\n\n\t\t\tthis._eachSwatch(function(n, swatch) {\n\t\t\t\td = color.distance(new $.colorpicker.Color(swatch.r, swatch.g, swatch.b));\n\t\t\t\tif (d < distance || distance === null) {\n\t\t\t\t\tname = n;\n\t\t\t\t\tif (d <= 1e-20) {\t// effectively 0 by maximum rounding error\n\t\t\t\t\t\treturn false;\t// can't get much closer than 0\n\t\t\t\t\t}\n\t\t\t\t\tdistance = d;\t// safety net\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn name;\n\t\t},\n\n\t\t_formatColor: function (formats, color) {\t\t\t\n\t\t\tvar that\t\t= this,\n\t\t\t\ttext\t\t= null,\n\t\t\t\ttypes\t\t= {\t'x':\tfunction(v) {return _intToHex(v * 255);}\n\t\t\t\t\t\t\t,\t'd':\tfunction(v) {return Math.round(v * 255);}\n\t\t\t\t\t\t\t,\t'f':\tfunction(v) {return v;}\n\t\t\t\t\t\t\t,\t'p':\tfunction(v) {return v * 100.;}\n\t\t\t\t\t\t\t},\n\t\t\t\tchannels\t= color.getChannels();\n\n\t\t\tif (!$.isArray(formats)) {\n\t\t\t\tformats = [formats];\n\t\t\t}\n\n\t\t\t$.each(formats, function(index, format) {\n\t\t\t\tif ($.colorpicker.writers[format]) {\n\t\t\t\t\ttext = $.colorpicker.writers[format](color, that);\t\t\n\t\t\t\t\treturn (text === false);\n\t\t\t\t} else {\n\t\t\t\t\ttext = format.replace(/\\\\?[argbhsvcmykLAB][xdfp]/g, function(m) {\n\t\t\t\t\t\tif (m.match(/^\\\\/)) {\n\t\t\t\t\t\t\treturn m.slice(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn types[m.charAt(1)](channels[m.charAt(0)]);\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\treturn text;\n\t\t}\n\t});\n\t\n\treturn $.vanderlee.colorpicker;\n}));\n","var settings = {\n maxLines: 20, // maximal number of the lines\n button_arrange_bools: {enabled: true}, // if button arrange bool is visible\n line: {\n number: {enabled: true, name: ''},\n instance: {enabled: true, name: 'Instance'},\n id: {enabled: true, name: 'ID', width: '200px', style: 'padding-left: 4px', _class: 'ids', inputStyle: ''},\n idSelect: {enabled: true, name: '', style: 'padding-left: 4px'},\n aggregate: {enabled: true, name: 'Aggregation', width: '70px', style: 'padding-left: 5px', values: ['minmax', 'average', 'min', 'max', 'total', 'onchange']},\n chartType: {enabled: true, name: 'Chart Type', width: '90px', values: ['line', 'bar', 'scatterplot', 'steps', /*'pie',*/ 'spline']},\n fill: {enabled: true, name: 'Fill(0to1)', width: '70px', style: 'width: 70px; text-align: right'},\n points: {enabled: true, name: 'Points', width: '50px', type: 'checkbox'},\n color: {enabled: true, name: 'Color', width: '120px', style: 'padding-left: 5px', _class: 'input-color'},\n min: {enabled: true, name: 'Min', width: '50px', style: 'padding-left: 5px'},\n max: {enabled: true, name: 'Max', width: '50px', style: 'padding-left: 5px'},\n unit: {enabled: true, name: 'Unit', width: '70px', style: 'padding-left: 5px'},\n yaxe: {enabled: true, name: 'Y Axis', width: '140px', style: 'padding-left: 5px', values: ['', 'off', 'left', 'right', 'leftColor', 'rightColor'], defaultValueName: 'default'},\n xaxe: {enabled: true, name: 'X Axis', width: '140px', style: 'padding-left: 5px', values: ['', 'off', 'top', 'bottom', 'topColor', 'bottomColor'], defaultValueName: 'default'},\n name: {enabled: true, name: 'Name', width: '200px', style: 'padding-left: 5px'},\n extraOptions: {enabled: true, name: 'More', width: '90px', style: 'text-align: center'},\n removeButton: {enabled: true, name: '', width: '', style: 'padding-left: 5px'}\n },\n extraOptions: {\n offset: {enabled: true, name: 'Offset', width: '130px', style: '', type: 'number'}, // support of time offset\n yOffset: {enabled: true, name: 'Y-Offset', width: '70px', style: '', type: 'number'}, // support of Y offset\n xticks: {enabled: true, name: 'X-Axis ticks', width: '70px', style: '', type: 'number'},\n yticks: {enabled: true, name: 'Y-Axis ticks', width: '70px', style: '', type: 'number'},\n thickness: {enabled: true, name: 'ØL', width: '70px', style: '', type: 'number', title: 'Line Width', default: 1},\n shadowsize: {enabled: true, name: 'ØS', width: '70px', style: '', type: 'number', title: 'Shadow Size', default: 0},\n commonYAxis: {enabled: true, name: 'Common Y Axis', width: '', style: '', values: ['', '1', '2', '3', '4', '5'], default: '', names: ['default']},\n ignoreNull: {enabled: true, name: 'NULL as', width: '', style: '', values: ['false', 'true', '0'], default: 'false', names: ['default', 'ignore null values', 'use 0 instead of null values']},\n smoothing: {enabled: false, name: 'Smoothing', width: '70px', style: '', type: 'number'},\n afterComma: {enabled: true, name: 'After comma', width: '70px', style: '', type: 'number', default: 2},\n dashes: {enabled: true, name: 'Dashes', width: '', style: '', type: 'checkbox', default: false},\n dashLength: {enabled: true, name: 'Dashes length', width: '70px', style: '', type: 'number', default: 10},\n spaceLength: {enabled: true, name: 'Space length', width: '70px', style: '', type: 'number', default: 10}\n },\n chapter_time: {enabled: true},\n time_timeType: {enabled: true},\n time_relativeEnd: {enabled: true},\n time_range: {enabled: true},\n time_live: {enabled: true},\n time_start: {enabled: true},\n time_end: {enabled: true},\n time_aggregateType: {enabled: true},\n time_aggregateSpan: {enabled: true},\n time_ticks: {enabled: true},\n\n chapter_options: {enabled: true},\n options_width: {enabled: true},\n options_height: {enabled: true},\n options_noborder: {enabled: true},\n options_window_bg: {enabled: true},\n options_bg_custom: {enabled: true},\n options_bg: {enabled: true},\n options_x_labels_color: {enabled: true},\n options_y_labels_color: {enabled: true},\n options_title: {enabled: true},\n options_titlePos: {enabled: true},\n options_titleColor: {enabled: true},\n options_titleSize: {enabled: true},\n options_legend: {enabled: true},\n options_legColumns: {enabled: true},\n options_legBg: {enabled: true},\n options_legBgOpacity: {enabled: true},\n\n options_barColor: {enabled: true},\n options_barLabels: {enabled: true},\n options_barWidth: {enabled: true},\n options_barFontSize:{enabled: true},\n options_barFontColor:{enabled: true},\n\n options_smoothing: {enabled: false},\n options_afterComma: {enabled: false},\n options_useComma: {enabled: true},\n options_zoom: {enabled: true},\n options_noedit: {enabled: true},\n options_animation: {enabled: true},\n options_border_color: {enabled: true},\n options_grid_color: {enabled: true},\n options_border_width: {enabled: true},\n\n option_markline: {enabled: true} // it is extra option and not options\n};","// DO NOT EDIT THIS FILE!!! IT WILL BE AUTOMATICALLY GENERATED FROM src/i18n\n/*global systemDictionary:true */\n'use strict';\n\nsystemDictionary = {\n \"0\": { \"cn\": \"0\", \"en\": \"0\"},\n \"1\": { \"cn\": \"1\", \"en\": \"1\"},\n \"2\": { \"cn\": \"2\", \"en\": \"2\"},\n \"3\": { \"cn\": \"3\", \"en\": \"3\"},\n \"4\": { \"cn\": \"4\", \"en\": \"4\"},\n \"5\": { \"cn\": \"5\", \"en\": \"5\"},\n \"Ok\": { \"cn\": \"Ok\", \"en\": \"Ok\"},\n \"role\": { \"cn\": \"role\", \"en\": \"role\"},\n \"Update objects\": { \"cn\": \"Update objects\", \"en\": \"Update objects\"},\n \"All\": { \"cn\": \"All\", \"en\": \"All\"},\n \"With\": { \"cn\": \"With\", \"en\": \"With\"},\n \"Without\": { \"cn\": \"Without\", \"en\": \"Without\"},\n \"Update states\": { \"cn\": \"Update states\", \"en\": \"Update states\"},\n \"edit file\": { \"cn\": \"edit file\", \"en\": \"edit file\"},\n \"restart script\": { \"cn\": \"restart script\", \"en\": \"restart script\"},\n \"Select\": { \"cn\": \"Select\", \"en\": \"Select\"},\n \"Select ID\": { \"cn\": \"Select ID\", \"en\": \"Select ID\"},\n \"add children\": { \"cn\": \"add children\", \"en\": \"add children\"},\n \"edit enum\": { \"cn\": \"edit enum\", \"en\": \"edit enum\"},\n \"System settings\": { \"cn\": \"System settings\", \"en\": \"System settings\"},\n \"reload\": { \"cn\": \"reload\", \"en\": \"reload\"},\n \"Delete object\": { \"cn\": \"Delete object\", \"en\": \"Delete object\"},\n \"no null\": { \"cn\": \" no null\", \"en\": \" no null\"},\n \"%s ago\": { \"cn\": \"%s ago\", \"en\": \"%s ago\"},\n \"Y-Offset\": { \"cn\": \"Y-Offset\", \"en\": \"Y-Offset\"},\n \"ID\": { \"cn\": \"ID\", \"en\": \"ID\"},\n \"Role\": { \"cn\": \"Role\", \"en\": \"Role\"},\n \"Room\": { \"cn\": \"Room\", \"en\": \"Room\"},\n \"Value\": { \"cn\": \"Value\", \"en\": \"Value\"},\n \"none\": { \"cn\": \"none\", \"en\": \"none\"},\n \"Save into:\": { \"cn\": \"Save into:\", \"en\": \"Save into:\"},\n \"Name:\": { \"cn\": \"Name:\", \"en\": \"Name:\"},\n \"save\": { \"cn\": \"save\", \"en\": \"save\"},\n \"load\": { \"cn\": \"load\", \"en\": \"load\"},\n \"Presets\": { \"cn\": \"Presets\", \"en\": \"Presets\"},\n \"IDs\": { \"cn\": \"IDs\", \"en\": \"IDs\"},\n \"new\": { \"cn\": \"new\", \"en\": \"new\"},\n \"Enter chart name\": { \"cn\": \"Enter chart name\", \"en\": \"Enter chart name\"},\n \"save %s\": { \"cn\": \"save %s\", \"en\": \"save %s\"},\n \"Input data\": { \"cn\": \"Input data\", \"en\": \"Input data\"},\n \"Options\": { \"cn\": \"Options\", \"en\": \"Options\"},\n \"Range:\": { \"cn\": \"Range:\", \"en\": \"Range:\"},\n \"5 seconds\": { \"cn\": \"5 seconds\", \"en\": \"5 seconds\"},\n \"10 seconds\": { \"cn\": \"10 seconds\", \"en\": \"10 seconds\"},\n \"15 seconds\": { \"cn\": \"15 seconds\", \"en\": \"15 seconds\"},\n \"20 seconds\": { \"cn\": \"20 seconds\", \"en\": \"20 seconds\"},\n \"30 seconds\": { \"cn\": \"30 seconds\", \"en\": \"30 seconds\"},\n \"1 minute\": { \"cn\": \"1 minute\", \"en\": \"1 minute\"},\n \"2 minutes\": { \"cn\": \"2 minutes\", \"en\": \"2 minutes\"},\n \"5 minutes\": { \"cn\": \"5 minutes\", \"en\": \"5 minutes\"},\n \"10 minutes\": { \"cn\": \"10 minutes\", \"en\": \"10 minutes\"},\n \"15 minutes\": { \"cn\": \"15 minutes\", \"en\": \"15 minutes\"},\n \"20 minutes\": { \"cn\": \"20 minutes\", \"en\": \"20 minutes\"},\n \"30 minutes\": { \"cn\": \"30 minutes\", \"en\": \"30 minutes\"},\n \"1 hour\": { \"cn\": \"1 hour\", \"en\": \"1 hour\"},\n \"2 hours\": { \"cn\": \"2 hours\", \"en\": \"2 hours\"},\n \"3 hours\": { \"cn\": \"3 hours\", \"en\": \"3 hours\"},\n \"6 hours\": { \"cn\": \"6 hours\", \"en\": \"6 hours\"},\n \"12 hours\": { \"cn\": \"12 hours\", \"en\": \"12 hours\"},\n \"1 day\": { \"cn\": \"1 day\", \"en\": \"1 day\"},\n \"2 days\": { \"cn\": \"2 days\", \"en\": \"2 days\"},\n \"3 days\": { \"cn\": \"3 days\", \"en\": \"3 days\"},\n \"7 days\": { \"cn\": \"7 days\", \"en\": \"7 days\"},\n \"14 days\": { \"cn\": \"14 days\", \"en\": \"14 days\"},\n \"1 month\": { \"cn\": \"1 month\", \"en\": \"1 month\"},\n \"2 months\": { \"cn\": \"2 months\", \"en\": \"2 months\"},\n \"3 months\": { \"cn\": \"3 months\", \"en\": \"3 months\"},\n \"6 months\": { \"cn\": \"6 months\", \"en\": \"6 months\"},\n \"1 year\": { \"cn\": \"1 year\", \"en\": \"1 year\"},\n \"2 years\": { \"cn\": \"2 years\", \"en\": \"2 years\"},\n \"Width:\": { \"cn\": \"Width:\", \"en\": \"Width:\"},\n \"Height:\": { \"cn\": \"Height:\", \"en\": \"Height:\"},\n \"line\": { \"cn\": \"Line\", \"en\": \"Line\"},\n \"area\": { \"cn\": \"Area\", \"en\": \"Area\"},\n \"bar\": { \"cn\": \"Bar\", \"en\": \"Bar\"},\n \"lineplot\": { \"cn\": \"Line plot\", \"en\": \"Line plot\"},\n \"scatterplot\": { \"cn\": \"Scatter plot\", \"en\": \"Scatter plot\"},\n \"steps\": { \"cn\": \"Steps\", \"en\": \"Steps\"},\n \"spline\": { \"cn\": \"Spline\", \"en\": \"Spline\"},\n \"Stack\": { \"cn\": \"Stack\", \"en\": \"Stack\"},\n \"Window background:\": { \"cn\": \"Window background:\", \"en\": \"Window background:\"},\n \"Custom chart background:\": { \"cn\": \"Custom chart background:\", \"en\": \"Custom chart background:\"},\n \"Chart background:\": { \"cn\": \"Chart background:\", \"en\": \"Chart background:\"},\n \"X axis labels color:\": { \"cn\": \"X labels color:\", \"en\": \"X labels color:\"},\n \"Y axis labels color:\": { \"cn\": \"Y labels color:\", \"en\": \"Y labels color:\"},\n \"Show legend:\": { \"cn\": \"Show legend:\", \"en\": \"Show legend:\"},\n \"Title:\": { \"cn\": \"Title:\", \"en\": \"Title:\"},\n \"Title position:\": { \"cn\": \"Title position:\", \"en\": \"Title position:\"},\n \"Top, left, inside\": { \"cn\": \"Top, left, inside\", \"en\": \"Top, left, inside\"},\n \"Top, right, inside\": { \"cn\": \"Top, right, inside\", \"en\": \"Top, right, inside\"},\n \"Top, center, inside\": { \"cn\": \"Top, center, inside\", \"en\": \"Top, center, inside\"},\n \"Middle, left, inside\": { \"cn\": \"Middle, left, inside\", \"en\": \"Middle, left, inside\"},\n \"Middle, right, inside\": { \"cn\": \"Middle, right, inside\", \"en\": \"Middle, right, inside\"},\n \"Bottom, left, inside\": { \"cn\": \"Bottom, left, inside\", \"en\": \"Bottom, left, inside\"},\n \"Bottom, right, inside\": { \"cn\": \"Bottom, right, inside\", \"en\": \"Bottom, right, inside\"},\n \"Bottom, center, inside\": { \"cn\": \"Bottom, center, inside\", \"en\": \"Bottom, center, inside\"},\n \"Top, right, outside\": { \"cn\": \"Top, right, outside\", \"en\": \"Top, right, outside\"},\n \"Middle, right, outside\": { \"cn\": \"Middle, right, outside\", \"en\": \"Middle, right, outside\"},\n \"Bottom, right, outside\": { \"cn\": \"Bottom, right, outside\", \"en\": \"Bottom, right, outside\"},\n \"Bottom, center, outside\": { \"cn\": \"Bottom, center, outside\", \"en\": \"Bottom, center, outside\"},\n \"Min:\": { \"cn\": \"Minimum:\", \"en\": \"Minimum:\"},\n \"Max:\": { \"cn\": \"Maximum:\", \"en\": \"Maximum:\"},\n \"User defined names:\": { \"cn\": \"User defined names:\", \"en\": \"User defined names:\"},\n \"Predefined background:\": { \"cn\": \"Predefined background:\", \"en\": \"Predefined background:\"},\n \"User defined\": { \"cn\": \"User defined\", \"en\": \"User defined\"},\n \"Background:\": { \"cn\": \"Background:\", \"en\": \"Background:\"},\n \"Hover details:\": { \"cn\": \"Hover details:\", \"en\": \"Hover details:\"},\n \"Time format:\": { \"cn\": \"Time format:\", \"en\": \"Time format:\"},\n \"Default\": { \"cn\": \"Default\", \"en\": \"Default\"},\n \"Smoothing\": { \"cn\": \"Smoothing\", \"en\": \"Smoothing\"},\n \"After comma\": { \"cn\": \"After comma\", \"en\": \"After comma\"},\n \"Open\": { \"cn\": \"Open\", \"en\": \"Open\"},\n \"Update\": { \"cn\": \"Update\", \"en\": \"Update\"},\n \"Reset settings\": { \"cn\": \"Reset settings\", \"en\": \"Reset settings\"},\n \"From\": { \"cn\": \"From: \", \"en\": \"From: \"},\n \"Last changed\": { \"cn\": \"Last changed\", \"en\": \"Last changed\"},\n \"Time stamp\": { \"cn\": \"Time stamp\", \"en\": \"Time stamp\"},\n \"Acknowledged\": { \"cn\": \"Acknowledged\", \"en\": \"Acknowledged\"},\n \"Edit\": { \"cn\": \"Edit\", \"en\": \"Edit\"},\n \"Members\": { \"cn\": \"Members\", \"en\": \"Members\"},\n \"Loading...\": { \"cn\": \"Loading...\", \"en\": \"Loading...\"},\n \"Processing...\": { \"cn\": \"Processing...\", \"en\": \"Processing...\"},\n \"With lines\": { \"cn\": \"With lines\", \"en\": \"With lines\"},\n \"Without lines\": { \"cn\": \"Without lines\", \"en\": \"Without lines\"},\n \"Inside / With lines\": { \"cn\": \"Inside / With lines\", \"en\": \"Inside / With lines\"},\n \"Outside/ With lines\": { \"cn\": \"Outside/ With lines\", \"en\": \"Outside/ With lines\"},\n \"Inside / No lines\": { \"cn\": \"Inside / No lines\", \"en\": \"Inside / No lines\"},\n \"Outside / No lines\": { \"cn\": \"Outside / No lines\", \"en\": \"Outside / No lines\"},\n \"Interpolate:\": { \"cn\": \"Interpolate:\", \"en\": \"Interpolate:\"},\n \"Steps\": { \"cn\": \"Steps\", \"en\": \"Steps\"},\n \"Pie\": { \"cn\": \"Pie\", \"en\": \"Pie\"},\n \"Top, left\": { \"cn\": \"Top, left\", \"en\": \"Top, left\"},\n \"Top, right\": { \"cn\": \"Top, right\", \"en\": \"Top, right\"},\n \"Bottom, left\": { \"cn\": \"Bottom, left\", \"en\": \"Bottom, left\"},\n \"Bottom, right\": { \"cn\": \"Bottom, right\", \"en\": \"Bottom, right\"},\n \"Title color:\": { \"cn\": \"Title color:\", \"en\": \"Title color:\"},\n \"Title size:\": { \"cn\": \"Title size:\", \"en\": \"Title size:\"},\n \"Fill range:\": { \"cn\": \"Fill range:\", \"en\": \"Fill range:\"},\n \"Units:\": { \"cn\": \"Units:\", \"en\": \"Units:\"},\n \"yes\": { \"cn\": \"yes\", \"en\": \"yes\"},\n \"bottom\": { \"cn\": \"bottom\", \"en\": \"bottom\"},\n \"top\": { \"cn\": \"top\", \"en\": \"top\"},\n \"left\": { \"cn\": \"left\", \"en\": \"left\"},\n \"right\": { \"cn\": \"right\", \"en\": \"right\"},\n \"No border:\": { \"cn\": \"No border:\", \"en\": \"No border:\"},\n \"Time\": { \"cn\": \"Time\", \"en\": \"Time\"},\n \"day\": { \"cn\": \"day\", \"en\": \"day\"},\n \"month\": { \"cn\": \"month\", \"en\": \"month\"},\n \"year\": { \"cn\": \"year\", \"en\": \"year\"},\n \"Individual\": { \"cn\": \"Individual\", \"en\": \"Individual\"},\n \"Aggregation:\": { \"cn\": \"Type:\", \"en\": \"Type:\"},\n \"relative\": { \"cn\": \"relative\", \"en\": \"relative\"},\n \"static\": { \"cn\": \"static\", \"en\": \"static\"},\n \"now\": { \"cn\": \"now\", \"en\": \"now\"},\n \"today\": { \"cn\": \"today\", \"en\": \"today\"},\n \"this month\": { \"cn\": \"this month\", \"en\": \"this month\"},\n \"this year\": { \"cn\": \"this year\", \"en\": \"this year\"},\n \"Start:\": { \"cn\": \"Start:\", \"en\": \"Start:\"},\n \"End:\": { \"cn\": \"End:\", \"en\": \"End:\"},\n \"Aggregate\": { \"cn\": \"Aggregate\", \"en\": \"Aggregate\"},\n \"Step type:\": { \"cn\": \"Step type:\", \"en\": \"Step type:\"},\n \"seconds\": { \"cn\": \"seconds\", \"en\": \"seconds\"},\n \"Seconds\": { \"cn\": \"Seconds\", \"en\": \"Seconds\"},\n \"Step span:\": { \"cn\": \"Step span:\", \"en\": \"Step span:\"},\n \"Link\": { \"cn\": \"Link\", \"en\": \"Link\"},\n \"Counts\": { \"cn\": \"Counts\", \"en\": \"Counts\"},\n \"ignore 'null'\": { \"cn\": \"ignore 'null'\", \"en\": \"ignore 'null'\"},\n \"Time Span\": { \"cn\": \"Time Span\", \"en\": \"Time Span\"},\n \"Appearance\": { \"cn\": \"Appearance\", \"en\": \"Appearance\"},\n \"Title\": { \"cn\": \"Title\", \"en\": \"Title\"},\n \"Offset\": { \"cn\": \"X-Offset\", \"en\": \"X-Offset\"},\n \"Aggregation\": { \"cn\": \"Type\", \"en\": \"Type\"},\n \"Chart Type\": { \"cn\": \"Chart Type\", \"en\": \"Chart Type\"},\n \"Color\": { \"cn\": \"Color\", \"en\": \"Color\"},\n \"Min\": { \"cn\": \"Min\", \"en\": \"Min\"},\n \"Max\": { \"cn\": \"Max\", \"en\": \"Max\"},\n \"Unit\": { \"cn\": \"Unit\", \"en\": \"Unit\"},\n \"Y Axis\": { \"cn\": \"Y Axis\", \"en\": \"Y Axis\"},\n \"X Axis\": { \"cn\": \"X Axis\", \"en\": \"X Axis\"},\n \"update Preview\": { \"cn\": \"update Preview\", \"en\": \"update Preview\"},\n \"Cancel\": { \"cn\": \"Cancel\", \"en\": \"Cancel\"},\n \"Name\": { \"cn\": \"Name\", \"en\": \"Name\"},\n \"Live update every:\": { \"cn\": \"Live update every:\", \"en\": \"Live update every:\"},\n \"counts\": { \"cn\": \"counts\", \"en\": \"counts\"},\n \"Add new line\": { \"cn\": \"Add new line\", \"en\": \"Add new line\"},\n \"Animation:\": { \"cn\": \"Animation:\", \"en\": \"Animation:\"},\n \"no\": { \"cn\": \"no\", \"en\": \"no\"},\n \"0s\": { \"cn\": \"0 seconds\", \"en\": \"0 seconds\"},\n \"300ms\": { \"cn\": \"300ms\", \"en\": \"300ms\"},\n \"500ms\": { \"cn\": \"500ms\", \"en\": \"500ms\"},\n \"1s\": { \"cn\": \"1 second\", \"en\": \"1 second\"},\n \"2s\": { \"cn\": \"2 seconds\", \"en\": \"2 seconds\"},\n \"3s\": { \"cn\": \"3 seconds\", \"en\": \"3 seconds\"},\n \"5s\": { \"cn\": \"5 seconds\", \"en\": \"5 seconds\"},\n \"10s\": { \"cn\": \"10 seconds\", \"en\": \"10 seconds\"},\n \"30s\": { \"cn\": \"30 seconds\", \"en\": \"30 seconds\"},\n \"60s\": { \"cn\": \"60 seconds\", \"en\": \"60 seconds\"},\n \"2m\": { \"cn\": \"2 minutes\", \"en\": \"2 minutes\"},\n \"3m\": { \"cn\": \"3 minutes\", \"en\": \"3 minutes\"},\n \"4m\": { \"cn\": \"4 minutes\", \"en\": \"4 minutes\"},\n \"5m\": { \"cn\": \"5 minutes\", \"en\": \"5 minutes\"},\n \"10m\": { \"cn\": \"10 minutes\", \"en\": \"10 minutes\"},\n \"15m\": { \"cn\": \"15 minutes\", \"en\": \"15 minutes\"},\n \"30m\": { \"cn\": \"30 minutes\", \"en\": \"30 minutes\"},\n \"45m\": { \"cn\": \"45 minutes\", \"en\": \"45 minutes\"},\n \"1H\": { \"cn\": \"1 hour\", \"en\": \"1 hour\"},\n \"2H\": { \"cn\": \"2 hours\", \"en\": \"2 hours\"},\n \"6H\": { \"cn\": \"6 hours\", \"en\": \"6 hours\"},\n \"12H\": { \"cn\": \"12 hours\", \"en\": \"12 hours\"},\n \"1D\": { \"cn\": \"1 day\", \"en\": \"1 day\"},\n \"2D\": { \"cn\": \"2 days\", \"en\": \"2 days\"},\n \"3D\": { \"cn\": \"3 days\", \"en\": \"3 days\"},\n \"4D\": { \"cn\": \"4 days\", \"en\": \"4 days\"},\n \"1W\": { \"cn\": \"1 week\", \"en\": \"1 week\"},\n \"2W\": { \"cn\": \"2 weeks\", \"en\": \"2 weeks\"},\n \"4W\": { \"cn\": \"4 weeks\", \"en\": \"4 weeks\"},\n \"8W\": { \"cn\": \"8 weeks\", \"en\": \"8 weeks\"},\n \"12W\": { \"cn\": \"12 weeks\", \"en\": \"12 weeks\"},\n \"26W\": { \"cn\": \"26 weeks\", \"en\": \"26 weeks\"},\n \"1M\": { \"cn\": \"1 month\", \"en\": \"1 month\"},\n \"2M\": { \"cn\": \"2 months\", \"en\": \"2 months\"},\n \"3M\": { \"cn\": \"3 months\", \"en\": \"3 months\"},\n \"6M\": { \"cn\": \"6 months\", \"en\": \"6 months\"},\n \"1Y\": { \"cn\": \"1 year\", \"en\": \"1 year\"},\n \"2Y\": { \"cn\": \"2 years\", \"en\": \"2 years\"},\n \"average\": { \"cn\": \"average\", \"en\": \"average\"},\n \"max\": { \"cn\": \"max\", \"en\": \"max\"},\n \"min\": { \"cn\": \"min\", \"en\": \"min\"},\n \"total\": { \"cn\": \"total\", \"en\": \"total\"},\n \"off\": { \"cn\": \"off\", \"en\": \"off\"},\n \"leftColor\": { \"cn\": \"left colored\", \"en\": \"left colored\"},\n \"rightColor\": { \"cn\": \"right colored\", \"en\": \"right colored\"},\n \"topColor\": { \"cn\": \"top colored\", \"en\": \"top colored\"},\n \"bottomColor\": { \"cn\": \"bottom colored\", \"en\": \"bottom colored\"},\n \"default\": { \"cn\": \"default\", \"en\": \"default\"},\n \"Auto-update:\": { \"cn\": \"Auto-update:\", \"en\": \"Auto-update:\"},\n \"Use comma:\": { \"cn\": \"Use comma:\", \"en\": \"Use comma:\"},\n \"Common Y Axis\": { \"cn\": \"Common Y Axis\", \"en\": \"Common Y Axis\"},\n \"Instance\": { \"cn\": \"Instance\", \"en\": \"Instance\"},\n \"Line Width\": { \"cn\": \"Line Width\", \"en\": \"Line Width\"},\n \"Shadow Size\": { \"cn\": \"Shadow Size\", \"en\": \"Shadow Size\"},\n \"ignore 'null':\": { \"cn\": \"ignore 'null':\", \"en\": \"ignore 'null':\"},\n \"onchange\": { \"cn\": \"on change\", \"en\": \"on change\"},\n \"Border color:\": { \"cn\": \"Border color:\", \"en\": \"Border color:\"},\n \"Grid color:\": { \"cn\": \"Grid color:\", \"en\": \"Grid color:\"},\n \"Border width:\": { \"cn\": \"Border width:\", \"en\": \"Border width:\"},\n \"Enable zoom and pan:\": { \"cn\": \"Enable zoom and pan:\", \"en\": \"Enable zoom and pan:\"},\n \"Arrange bools\": { \"cn\": \"Arrange booleans\", \"en\": \"Arrange booleans\"},\n \"NULL as\": { \"cn\": \"NULL as\", \"en\": \"NULL as\"},\n \"MinMax\": { \"cn\": \"MinMax\", \"en\": \"MinMax\"},\n \"null\": { \"cn\": \"null\", \"en\": \"null\"},\n \"true\": { \"cn\": \"last value\", \"en\": \"last value\"},\n \"last value\": { \"cn\": \"last value\", \"en\": \"last value\"},\n \"Hide edit button:\": { \"cn\": \"Hide edit button:\", \"en\": \"Hide edit button:\"},\n \"minmax\": { \"cn\": \"minmax\", \"en\": \"minmax\"},\n \"ØL\": { \"cn\": \"ØL\", \"en\": \"ØL\"},\n \"ØS\": { \"cn\": \"ØS\", \"en\": \"ØS\"},\n \"Line\": { \"cn\": \"Line\", \"en\": \"Line\"},\n \"false\": { \"cn\": \"null\", \"en\": \"null\"},\n \"end of minute\": { \"cn\": \"end of minute\", \"en\": \"end of minute\"},\n \"end of 5 minutes\": { \"cn\": \"end of 5 minutes\", \"en\": \"end of 5 minutes\"},\n \"end of 10 minutes\": { \"cn\": \"end of 10 minutes\", \"en\": \"end of 10 minutes\"},\n \"end of 30 minutes\": { \"cn\": \"end of 30 minutes\", \"en\": \"end of 30 minutes\"},\n \"end of hour\": { \"cn\": \"end of hour\", \"en\": \"end of hour\"},\n \"end of 2 hours\": { \"cn\": \"end of 2 hours\", \"en\": \"end of 2 hours\"},\n \"end of 3 hours\": { \"cn\": \"end of 3 hours\", \"en\": \"end of 3 hours\"},\n \"end of 4 hours\": { \"cn\": \"end of 4 hours\", \"en\": \"end of 4 hours\"},\n \"end of 6 hours\": { \"cn\": \"end of 6 hours\", \"en\": \"end of 6 hours\"},\n \"end of 8 hours\": { \"cn\": \"end of 8 hours\", \"en\": \"end of 8 hours\"},\n \"end of 12 hours\": { \"cn\": \"end of 12 hours\", \"en\": \"end of 12 hours\"},\n \"end of day\": { \"cn\": \"end of day\", \"en\": \"end of day\"},\n \"end of sunday\": { \"cn\": \"end of sunday\", \"en\": \"end of sunday\"},\n \"end of saturday\": { \"cn\": \"end of saturday\", \"en\": \"end of saturday\"},\n \"1minute\": { \"cn\": \"end of minute\", \"en\": \"end of minute\"},\n \"5minutes\": { \"cn\": \"end of 5 minutes\", \"en\": \"end of 5 minutes\"},\n \"10minutes\": { \"cn\": \"end of 10 minutes\", \"en\": \"end of 10 minutes\"},\n \"30minutes\": { \"cn\": \"end of 30 minutes\", \"en\": \"end of 30 minutes\"},\n \"1hour\": { \"cn\": \"end of hour\", \"en\": \"end of hour\"},\n \"2hours\": { \"cn\": \"end of 2 hours\", \"en\": \"end of 2 hours\"},\n \"3hours\": { \"cn\": \"end of 3 hours\", \"en\": \"end of 3 hours\"},\n \"4hours\": { \"cn\": \"end of 4 hours\", \"en\": \"end of 4 hours\"},\n \"6hours\": { \"cn\": \"end of 6 hours\", \"en\": \"end of 6 hours\"},\n \"8hours\": { \"cn\": \"end of 8 hours\", \"en\": \"end of 8 hours\"},\n \"12hours\": { \"cn\": \"end of 12 hours\", \"en\": \"end of 12 hours\"},\n \"weekEurope\": { \"cn\": \"end of day\", \"en\": \"end of day\"},\n \"weekUsa\": { \"cn\": \"end of sunday\", \"en\": \"end of sunday\"},\n \"Bar settings\": { \"cn\": \"Bar settings\", \"en\": \"Bar settings\"},\n \"Fill color:\": { \"cn\": \"Fill color:\", \"en\": \"Fill color:\"},\n \"Show labels:\": { \"cn\": \"Show labels:\", \"en\": \"Show labels:\"},\n \"top over\": { \"cn\": \"top over\", \"en\": \"top over\"},\n \"top under\": { \"cn\": \"top under\", \"en\": \"top under\"},\n \"middle\": { \"cn\": \"middle\", \"en\": \"middle\"},\n \"Bars width:\": { \"cn\": \"Bars width:\", \"en\": \"Bars width:\"},\n \"Label font size:\": { \"cn\": \"Label font size:\", \"en\": \"Label font size:\"},\n \"Label color:\": { \"cn\": \"Label color:\", \"en\": \"Label color:\"},\n \"Markings\": { \"cn\": \"Markings\", \"en\": \"Markings\"},\n \"Line ID\": { \"cn\": \"Line ID\", \"en\": \"Line ID\"},\n \"Fill\": { \"cn\": \"Fill\", \"en\": \"Fill\"},\n \"ØL\": { \"cn\": \"ØL\", \"en\": \"ØL\"},\n \"ØS\": { \"cn\": \"ØS\", \"en\": \"ØS\"},\n \"Text\": { \"cn\": \"Text\", \"en\": \"Text\"},\n \"Text position\": { \"cn\": \"Text position\", \"en\": \"Text position\"},\n \"Text offset\": { \"cn\": \"Text offset\", \"en\": \"Text offset\"},\n \"Text size\": { \"cn\": \"Text size\", \"en\": \"Text size\"},\n \"Text color\": { \"cn\": \"Text color\", \"en\": \"Text color\"},\n \"Add new markings\": { \"cn\": \"Add new markings\", \"en\": \"Add new markings\"},\n \"Left\": { \"cn\": \"Left\", \"en\": \"Left\"},\n \"Right\": { \"cn\": \"Right\", \"en\": \"Right\"},\n \"Upper value or ID\": { \"cn\": \"Upper value or ID\", \"en\": \"Upper value or ID\"},\n \"Lower value or ID\": { \"cn\": \"Lower value or ID\", \"en\": \"Lower value or ID\"},\n \"X-Axis ticks\": { \"cn\": \"X-Axis ticks\", \"en\": \"X-Axis ticks\"},\n \"Y-Axis ticks\": { \"cn\": \"Y-Axis ticks\", \"en\": \"Y-Axis ticks\"},\n \"ignore null values\": { \"cn\": \"ignore null values\", \"en\": \"ignore null values\"},\n \"Ticks from:\": { \"cn\": \"Use X-ticks from:\", \"en\": \"Use X-ticks from:\"},\n \"use 0 instead of null values\": { \"cn\": \"use 0 instead of null values\", \"en\": \"use 0 instead of null values\"},\n \"More\": { \"cn\": \"more\", \"en\": \"more\"},\n \"Edit options for line %s\": { \"cn\": \"Edit options for line %s\", \"en\": \"Edit options for line %s\"},\n \"Legend columns:\": { \"cn\": \"Legend columns:\", \"en\": \"Legend columns:\"},\n \"Legend opacity (from 0 to 1):\": { \"cn\": \"Legend opacity (from 0 to 1):\", \"en\": \"Legend opacity (from 0 to 1):\"},\n \"Legend background:\": { \"cn\": \"Legend background:\", \"en\": \"Legend background:\"},\n \"Fill(0to1)\": { \"cn\": \"Fill(0to1)\", \"en\": \"Fill(0to1)\"},\n \"Points\": { \"cn\": \"Points\", \"en\": \"Points\"},\n};"]} \ No newline at end of file diff --git a/www/js/flot.js b/www/js/flot.js new file mode 100644 index 0000000..5bef849 --- /dev/null +++ b/www/js/flot.js @@ -0,0 +1,2 @@ +!function(a){a.color={},a.color.make=function(e,t,n,i){var o={};return o.r=e||0,o.g=t||0,o.b=n||0,o.a=null!=i?i:1,o.add=function(e,t){for(var n=0;ne.datamax&&n!=h&&(e.datamax=n)}for(B.each(C(),function(e,t){t.datamin=u,t.datamax=d,t.used=!1}),e=0;et.max||("x"==t.direction?(a="center",i=k.left+t.p2c(n.v),"bottom"==t.position?o=l.top+l.padding:(o=l.top+l.height-l.padding,r="bottom")):(r="middle",o=k.top+t.p2c(n.v),"left"==t.position?(i=l.left+l.width-l.padding,a="right"):i=l.left+l.padding),d.addText(c,i,o,n.label,f,null,null,a,r))}),function(){null!=z.legend.container?B(z.legend.container).html(""):p.find(".legend").remove();if(!z.legend.show)return;for(var e,t,n=[],i=[],o=!1,a=z.legend.labelFormatter,r=0;r"),n.push(""),o=!0),n.push('
'+s.label+"")}o&&n.push("");if(0==n.length)return;var c=''+n.join("")+"
";if(null!=z.legend.container)B(z.legend.container).html(c);else{var f="",g=z.legend.position,u=z.legend.margin;null==u[0]&&(u=[u,u]),"n"==g.charAt(0)?f+="top:"+(u[1]+k.top)+"px;":"s"==g.charAt(0)&&(f+="bottom:"+(u[1]+k.bottom)+"px;"),"e"==g.charAt(1)?f+="right:"+(u[0]+k.right)+"px;":"w"==g.charAt(1)&&(f+="left:"+(u[0]+k.left)+"px;");var d=B('
'+c.replace('style="','style="position:absolute;'+f+";")+"
").appendTo(p);if(0!=z.legend.backgroundOpacity){var h=z.legend.backgroundColor;null==h&&((h=(h=z.grid.backgroundColor)&&"string"==typeof h?B.color.parse(h):B.color.extract(d,"background-color")).a=1,h=h.toString());var m=d.children();B('
').prependTo(d).css("opacity",z.legend.backgroundOpacity)}}}()}function s(){d.clear(),O(D.drawBackground,[y]);var e=z.grid;e.show&&e.backgroundColor&&(y.save(),y.translate(k.left,k.top),y.fillStyle=J(z.grid.backgroundColor,T,0,"rgba(255, 255, 255, 0)"),y.fillRect(0,0,M,T),y.restore()),e.show&&!e.aboveData&&u();for(var t=0;tr.axis.max||l.tol.axis.max)){r.from=Math.max(r.from,r.axis.min),r.to=Math.min(r.to,r.axis.max),l.from=Math.max(l.from,l.axis.min),l.to=Math.min(l.to,l.axis.max);var s=r.from===r.to,c=l.from===l.to;if(!s||!c)if(r.from=Math.floor(r.axis.p2c(r.from)),r.to=Math.floor(r.axis.p2c(r.to)),l.from=Math.floor(l.axis.p2c(l.from)),l.to=Math.floor(l.axis.p2c(l.to)),s||c){var f=a.lineWidth||z.grid.markingsLineWidth,g=f%2?.5:0;y.beginPath(),y.strokeStyle=a.color||z.grid.markingsColor,y.lineWidth=f,s?(y.moveTo(r.to+g,l.from),y.lineTo(r.to+g,l.to)):(y.moveTo(r.from,l.to+g),y.lineTo(r.to,l.to+g)),y.stroke()}else y.fillStyle=a.color||z.grid.markingsColor,y.fillRect(r.from,l.to,r.to-r.from,l.from-l.to)}}t=C(),n=z.grid.borderWidth;for(var u=0;uv.max||"full"==b&&("object"==typeof n&&0o.max){if(d>o.max)continue;f=(o.max-g)/(d-g)*(u-f)+f,g=o.max}else if(g<=d&&d>o.max){if(g>o.max)continue;u=(o.max-g)/(d-g)*(u-f)+f,d=o.max}if(f<=u&&fi.max){if(u>i.max)continue;g=(i.max-f)/(u-f)*(d-g)+g,f=i.max}else if(f<=u&&u>i.max){if(f>i.max)continue;d=(i.max-f)/(u-f)*(d-g)+g,u=i.max}f==l&&g==s||y.moveTo(i.p2c(f)+t,o.p2c(g)+n),l=u,s=d,y.lineTo(i.p2c(u)+t,o.p2c(d)+n)}}y.stroke()}y.save(),y.translate(k.left,k.top),y.lineJoin="round";var n=e.lines.lineWidth,i=e.shadowSize;if(0i.length+o);){var g=i[(r+=o)-o],u=i[r-o+s],d=i[r],h=i[r+s];if(l){if(0t.max){if(d>t.max)continue;u=(t.max-g)/(d-g)*(h-u)+u,g=t.max}else if(g<=d&&d>t.max){if(g>t.max)continue;h=(t.max-g)/(d-g)*(h-u)+u,d=t.max}if(l||(y.beginPath(),y.moveTo(t.p2c(g),n.p2c(a)),l=!0),u>=n.max&&h>=n.max)y.lineTo(t.p2c(g),n.p2c(n.max)),y.lineTo(t.p2c(d),n.p2c(n.max));else if(u<=n.min&&h<=n.min)y.lineTo(t.p2c(g),n.p2c(n.min)),y.lineTo(t.p2c(d),n.p2c(n.min));else{var m=g,p=d;u<=h&&u=n.min?(g=(n.min-u)/(h-u)*(d-g)+g,u=n.min):h<=u&&h=n.min&&(d=(n.min-u)/(h-u)*(d-g)+g,h=n.min),h<=u&&u>n.max&&h<=n.max?(g=(n.max-u)/(h-u)*(d-g)+g,u=n.max):u<=h&&h>n.max&&u<=n.max&&(d=(n.max-u)/(h-u)*(d-g)+g,h=n.max),g!=m&&y.lineTo(t.p2c(m),n.p2c(u)),y.lineTo(t.p2c(g),n.p2c(u)),y.lineTo(t.p2c(d),n.p2c(h)),d!=p&&(y.lineTo(t.p2c(d),n.p2c(h)),y.lineTo(t.p2c(p),n.p2c(h)))}}}}(e.datapoints,e.xaxis,e.yaxis));0a.max||ur.max||(y.beginPath(),g=a.p2c(g),u=r.p2c(u)+i,"circle"==l?y.arc(g,u,t,0,o?Math.PI:2*Math.PI,!1):l(y,g,u,t,o),y.closePath(),n&&(y.fillStyle=n,y.fill()),y.stroke())}}y.save(),y.translate(k.left,k.top);var n=e.points.lineWidth,i=e.shadowSize,o=e.points.radius,a=e.points.symbol;0==n&&(n=1e-4);if(0r.max||hl.max||(gr.max&&(u=r.max,p=!1),dl.max&&(h=l.max,v=!1),g=r.p2c(g),d=l.p2c(d),u=r.p2c(u),h=l.p2c(h),a&&(s.fillStyle=a(d,h),s.fillRect(g,h,u-g,d-h)),0=Math.min(T,v)&&x+k<=h&&h<=x+M:v+k<=d&&d<=v+M&&h>=Math.min(T,x)&&h<=Math.max(T,x))&&(s=[i,o/a])}}}return s?(i=s[0],o=s[1],a=S[i].datapoints.pointsize,{datapoint:S[i].datapoints.points.slice(o*a,(o+1)*a),dataIndex:o,series:S[i],seriesIndex:i}):null}(o,a,n);if(l&&(l.pageX=parseInt(l.series.xaxis.p2c(l.datapoint[0])+i.left+k.left,10),l.pageY=parseInt(l.series.yaxis.p2c(l.datapoint[1])+i.top+k.top,10)),z.grid.autoHighlight){for(var s=0;so.max||ia.max)){var l=e.points.radius+e.points.lineWidth/2;c.lineWidth=l,c.strokeStyle=r;var s=1.5*l;n=o.p2c(n),i=a.p2c(i),c.beginPath(),"circle"==e.points.symbol?c.arc(n,i,s,0,2*Math.PI,!1):e.points.symbol(c,n,i,s,!1),c.closePath(),c.stroke()}}function $(e,t){var n,i="string"==typeof e.highlightColor?e.highlightColor:B.color.parse(e.color).scale("a",.5).toString(),o=i;switch(e.bars.align){case"left":n=0;break;case"right":n=-e.bars.barWidth;break;default:n=-e.bars.barWidth/2}c.lineWidth=e.bars.lineWidth,c.strokeStyle=i,w(t[0],t[1],t[2]||0,n,n+e.bars.barWidth,function(){return o},e.xaxis,e.yaxis,c,e.bars.horizontal,e.bars.lineWidth)}function J(e,t,n,i){if("string"==typeof e)return e;for(var o=y.createLinearGradient(0,n,0,t),a=0,r=e.colors.length;a
").css({position:"absolute",top:0,left:0,bottom:0,right:0,"font-size":"smaller",color:"#545454"}).insertAfter(this.element)),t=this.text[e]=B("
").addClass(e).css({position:"absolute",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)),t},U.prototype.getTextInfo=function(e,t,n,i,o){var a,r,l,s;if(t=""+t,a="object"==typeof n?n.style+" "+n.variant+" "+n.weight+" "+n.size+"px/"+n.lineHeight+"px "+n.family:n,null==(r=this._textCache[e])&&(r=this._textCache[e]={}),null==(l=r[a])&&(l=r[a]={}),null==(s=l[t])){var c=B("
").html(t).css({position:"absolute","max-width":o,top:-9999}).appendTo(this.getTextLayer(e));"object"==typeof n?c.css({font:a,color:n.color}):"string"==typeof n&&c.addClass(n),s=l[t]={width:c.outerWidth(!0),height:c.outerHeight(!0),element:c,positions:[]},c.detach()}return s},U.prototype.addText=function(e,t,n,i,o,a,r,l,s){var c=this.getTextInfo(e,i,o,a,r),f=c.positions;"center"==l?t-=c.width/2:"right"==l&&(t-=c.width),"middle"==s?n-=c.height/2:"bottom"==s&&(n-=c.height);for(var g,u=0;g=f[u];u++)if(g.x==t&&g.y==n)return void(g.active=!0);g={active:!0,rendered:!1,element:f.length?c.element.clone():c.element,x:t,y:n},f.push(g),g.element.css({top:Math.round(n),left:Math.round(t),"text-align":l})},U.prototype.removeText=function(e,t,n,i,o,a){if(null==i){var r=this._textCache[e];if(null!=r)for(var l in r)if(d.call(r,l)){var s=r[l];for(var c in s)if(d.call(s,c))for(var f=s[c].positions,g=0;u=f[g];g++)u.active=!1}}else{var u;for(f=this.getTextInfo(e,i,o,a).positions,g=0;u=f[g];g++)u.x==t&&u.y==n&&(u.active=!1)}},B.plot=function(e,t,n){return new i(B(e),t,n,B.plot.plugins)},B.plot.version="0.8.3",B.plot.plugins=[],B.fn.plot=function(e,t){return this.each(function(){B.plot(this,e,t)})}}(jQuery),function(r,l,s){var c,f=[],g=r.resize=r.extend(r.resize,{}),u=!1,n="setTimeout",d="resize",h=d+"-special-event",m="pendingDelay",i="activeDelay",o="throttleWindow";function p(e){!0===u&&(u=e||1);for(var t=f.length-1;0<=t;t--){var n=r(f[t]);if(n[0]==l||n.is(":visible")){var i=n.width(),o=n.height(),a=n.data(h);!a||i===a.w&&o===a.h||(n.trigger(d,[a.w=i,a.h=o]),u=e||!0)}else(a=n.data(h)).w=0,a.h=0}null!==c&&(u&&(null==e||e-u<1e3)?c=l.requestAnimationFrame(p):(c=setTimeout(p,g[m]),u=!1))}g[m]=200,g[i]=20,g[o]=!0,r.event.special[d]={setup:function(){if(!g[o]&&this[n])return!1;var e=r(this);f.push(this),e.data(h,{w:e.width(),h:e.height()}),1===f.length&&(c=s,p())},teardown:function(){if(!g[o]&&this[n])return!1;for(var e=r(this),t=f.length-1;0<=t;t--)if(f[t]==this){f.splice(t,1);break}e.removeData(h),f.length||(u?cancelAnimationFrame(c):clearTimeout(c),c=null)},add:function(e){if(!g[o]&&this[n])return!1;var a;function t(e,t,n){var i=r(this),o=i.data(h)||{};o.w=t!==s?t:i.width(),o.h=n!==s?n:i.height(),a.apply(this,arguments)}if(r.isFunction(e))return a=e,t;a=e.handler,e.handler=t}},l.requestAnimationFrame||(l.requestAnimationFrame=l.webkitRequestAnimationFrame||l.mozRequestAnimationFrame||l.oRequestAnimationFrame||l.msRequestAnimationFrame||function(e,t){return l.setTimeout(function(){e((new Date).getTime())},g[i])}),l.cancelAnimationFrame||(l.cancelAnimationFrame=l.webkitCancelRequestAnimationFrame||l.mozCancelRequestAnimationFrame||l.oCancelRequestAnimationFrame||l.msCancelRequestAnimationFrame||clearTimeout)}(jQuery,this),jQuery.plot.plugins.push({init:function(t){function n(){var e=t.getPlaceholder();0!=e.width()&&0!=e.height()&&(t.resize(),t.setupGrid(),t.draw())}t.hooks.bindEvents.push(function(e,t){e.getPlaceholder().resize(n)}),t.hooks.shutdown.push(function(e,t){e.getPlaceholder().unbind("resize",n)})},options:{},name:"resize",version:"1.0"}),function(n){function x(e,t){return t*Math.floor(e/t)}function s(e,t,n,i){if("function"==typeof e.strftime)return e.strftime(t);var o,a=function(e,t){return t=""+(null==t?"0":t),1==(e=""+e).length?t+e:e},r=[],l=!1,s=e.getHours(),c=s<12;null==n&&(n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),null==i&&(i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),o=12=i);++a);var r=o[a][0],l=o[a][1];if("year"==l){if(null!=v.minTickSize&&"year"==v.minTickSize[1])r=Math.floor(v.minTickSize[0]);else{var s=Math.pow(10,Math.floor(Math.log(e.delta/w.year)/Math.LN10)),c=e.delta/w.year/s;r=c<1.5?1:c<3?2:c<7.5?5:10,r*=s}r<1&&(r=1)}e.tickSize=v.tickSize||[r,l];var f=e.tickSize[0];l=e.tickSize[1];var g=f*w[l];"second"==l?n.setSeconds(x(n.getSeconds(),f)):"minute"==l?n.setMinutes(x(n.getMinutes(),f)):"hour"==l?n.setHours(x(n.getHours(),f)):"month"==l?n.setMonth(x(n.getMonth(),f)):"quarter"==l?n.setMonth(3*x(n.getMonth()/3,f)):"year"==l&&n.setFullYear(x(n.getFullYear(),f)),n.setMilliseconds(0),w.minute<=g&&n.setSeconds(0),w.hour<=g&&n.setMinutes(0),w.day<=g&&n.setHours(0),4*w.day<=g&&n.setDate(1),2*w.month<=g&&n.setMonth(x(n.getMonth(),3)),2*w.quarter<=g&&n.setMonth(x(n.getMonth(),6)),w.year<=g&&n.setMonth(0);var u,d=0,h=Number.NaN;do{if(u=h,h=n.getTime(),t.push(h),"month"==l||"quarter"==l)if(f<1){n.setDate(1);var m=n.getTime();n.setMonth(n.getMonth()+("quarter"==l?3:1));var p=n.getTime();n.setTime(h+d*w.hour+(p-m)*f),d=n.getHours(),n.setHours(0)}else n.setMonth(n.getMonth()+f*("quarter"==l?3:1));else"year"==l?n.setFullYear(n.getFullYear()+f):n.setTime(h+g)}while(h=e.min&&i<=e.max&&t.push([i,n])}return t.sort(function(e,t){return e[0]-t[0]}),t}function i(e,t,n){if("categories"==e[t].options.mode){if(!e[t].categories){var i={},o=e[t].options.categories||{};if(l.isArray(o))for(var a=0;at&&(t=e[n]);return t+1}(n),s=0;sn.xaxis.max||an.yaxis.max||u.push(n.xaxis.p2c(o)+f.left,n.yaxis.p2c(a)+f.top);for(g=u.length,i=0;i=e&&Math.abs(f.second.y-f.first.y)>=e}c.clearSelection=u,c.setSelection=function(e,t){var n,i=c.getOptions();"y"==i.selection.mode?(f.first.x=0,f.second.x=c.width()):(n=d(e,"x"),f.first.x=n.axis.p2c(n.from),f.second.x=n.axis.p2c(n.to)),"x"==i.selection.mode?(f.first.y=0,f.second.y=c.height()):(n=d(e,"y"),f.first.y=n.axis.p2c(n.from),f.second.y=n.axis.p2c(n.to)),f.show=!0,c.triggerRedrawOverlay(),!t&&h()&&r()},c.getSelection=t,c.hooks.bindEvents.push(function(e,t){null!=e.getOptions().selection.mode&&(t.mousemove(o),t.mousedown(a))}),c.hooks.drawOverlay.push(function(e,t){if(f.show&&h()){var n=e.getPlotOffset(),i=e.getOptions();t.save(),t.translate(n.left,n.top);var o=m.color.parse(i.selection.color);t.strokeStyle=o.scale("a",.8).toString(),t.lineWidth=1,t.lineJoin=i.selection.shape,t.fillStyle=o.scale("a",.4).toString();var a=Math.min(f.first.x,f.second.x)+.5,r=Math.min(f.first.y,f.second.y)+.5,l=Math.abs(f.second.x-f.first.x)-1,s=Math.abs(f.second.y-f.first.y)-1;t.fillRect(a,r,l,s),t.strokeRect(a,r,l,s),t.restore()}}),c.hooks.shutdown.push(function(e,t){t.unbind("mousemove",o),t.unbind("mousedown",a),i&&m(document).unbind("mouseup",i)})},options:{selection:{mode:null,color:"#e8cfac",shape:"round",minSize:5}},name:"selection",version:"1.1"})}(jQuery),function(t){t.plot.plugins.push({init:function(r){var o=!1;function a(e,t){var n=function(e){for(var t=r.getData(),n=0;n'+e+""})}),r.hooks.draw.push(function(e,t){!function(e){var t=e.getOptions();if(t.legend.hideable){var n=e.getPlaceholder();if(c(n.find(".graphlabel")),c(n.find(".legendColorBox")),!o&&(o=!0,t.legend.hidden)){for(var i=0;i=t.length?null:t[n]:null}(t,e.getData());if(i){for(var o,a,r,l,s,c,f,g=n.pointsize,u=n.points,d=i.datapoints.pointsize,h=i.datapoints.points,p=[],v=t.lines.show,x=2=u.length);){if(f=p.length,null==u[y]){for(m=0;m=h.length){if(!v)for(m=0;mr[1]&&(o=r[1]));var s=o-i;a&&(null!=a[0]&&sa[1]&&c<1)||(n.min=i,n.max=o)}}),r.setupGrid(),r.draw(),e.preventEvent||r.getPlaceholder().trigger("plotzoom",[r,e])},r.pan=function(e){var l={x:+e.left,y:+e.top};isNaN(l.x)&&(l.x=0),isNaN(l.y)&&(l.y=0),u.each(r.getAxes(),function(e,t){var n,i,o=t.options,a=l[t.direction];n=t.c2p(t.p2c(t.min)+a),i=t.c2p(t.p2c(t.max)+a);var r=o.panRange;!1!==r&&(r&&(null!=r[0]&&r[0]>n&&(n+=a=r[0]-n,i+=a),null!=r[1]&&r[1]T.max){if(h>T.max)continue;g=(T.max-u)/(h-u)*(d-g)+g,u=T.max}else if(u<=h&&h>T.max){if(u>T.max)continue;d=(T.max-u)/(h-u)*(d-g)+g,h=T.max}if(g<=d&&gM.max){if(d>M.max)continue;u=(M.max-g)/(d-g)*(h-u)+u,g=M.max}else if(g<=d&&d>M.max){if(g>M.max)continue;h=(M.max-g)/(d-g)*(h-u)+u,d=M.max}g==r&&u==l||y.moveTo(M.p2c(g)+e,T.p2c(u)+t);for(var m,p=M.p2c(g)+e,v=T.p2c(u)+t,x=M.p2c(d)+e,b=T.p2c(h)+t;0==(m=w(0"+$.plot.formatDate(n,z.config.timeFormatDate,months[systemLang],days[systemLang])+"":$.plot.formatDate(n,z.config.timeFormatTime,months[systemLang],days[systemLang]):""+$.plot.formatDate(n,z.config.timeFormatDate,months[systemLang],days[systemLang])+"":$.plot.formatDate(n,z.config.timeFormat,months[systemLang],days[systemLang])}function I(e,t){var n=z.config.l[t.n-1].afterComma;if(null!=n){var i=n?Math.pow(10,n):1,o=(Math.round(e*i)/i).toString(),a=o.indexOf("."),r=-1===a?0:o.length-a-1;e=r
'+O(t[1],o)+"
").css({position:"absolute",left:n.left,top:n.top}).appendTo(z.chart.getPlaceholder())))});(z.config.barFontSize||z.config.barFontColor)&&$(".data-point-label").css({"font-size":z.config.barFontSize||void 0,color:z.config.barFontColor||void 0})},e?parseInt(e)+200:0),k&&k.length&&setTimeout(function(){for(var e=z.chart.getData(),t=0,n=0;n'+k[n].d+""),$('
'+o+"
").css({position:"absolute",left:i.left,top:i.top,"font-size":k[n].fs||void 0,color:k[n].fc||void 0}).appendTo(z.chart.getPlaceholder())}""!==k[n].vl&&null!==k[n].vl&&void 0!==k[n].vl&&t++,t++}},e?parseInt(e)+200:0)}return function(){var e=!(T=[]),t=$("#"+z.options.titleId);if(z.config.title&&!t.html()&&(t.html(z.config.titlePos?decodeURI(z.config.title):""),z.config.titleColor&&t.css("color",z.config.titleColor),z.config.titleSize&&t.css("font-size",z.config.titleSize),z.config.titlePos)){for(var n=z.config.titlePos.split(";"),i={},o=0;os&&(s=y[c][y[c].length-1][0])}null===z.config.min||void 0===z.config.min||""===z.config.min||"NaN"===z.config.min.toString()?z.config.min=void 0:z.config.min=parseFloat(z.config.min),z.config.noBorder?(z.config.width||(z.config.width="100%"),z.config.height||(z.config.height="100%"),-1!==z.config.width.indexOf("%")?$("#chart_container").css({width:"calc("+z.config.width+" - 20px)"}):$("#chart_container").css({width:z.config.width}),-1!==z.config.height.indexOf("%")?$("#chart_container").css({height:"calc("+z.config.height+" - 20px)"}):$("#chart_container").css({height:z.config.height})):$("#chart_container").addClass("chart-container").css({width:z.config.width,height:z.config.height}),"null"===z.config.timeFormat&&(z.config.timeFormat=void 0),z.config.timeFormat&&(-1!==z.config.timeFormat.indexOf("%H:%M:%S")?z.config.timeFormatTime="%H:%M:%S":-1!==z.config.timeFormat.indexOf("%I:%M:%S")?z.config.timeFormatTime="%I:%M:%S":-1!==z.config.timeFormat.indexOf("%H:%M.")?z.config.timeFormatTime="%H:%M.":-1!==z.config.timeFormat.indexOf("%H:%M")?z.config.timeFormatTime="%H:%M":z.config.timeFormatTime=null,-1!==z.config.timeFormat.indexOf("%d.%m.%y")?z.config.timeFormatDate="%d.%m.%y":-1!==z.config.timeFormat.indexOf("%x %p")?z.config.timeFormatDate="%x %p":-1!==z.config.timeFormat.indexOf("%d/%m/%y")?z.config.timeFormatDate="%d/%m/%y":-1!==z.config.timeFormat.indexOf("%m.%d.%y")?z.config.timeFormatDate="%m.%d.%y":-1!==z.config.timeFormat.indexOf("%d.%m")?z.config.timeFormatDate="%d.%m":-1!==z.config.timeFormat.indexOf("%a")?z.config.timeFormatDate="%a":z.config.timeFormatDate=null),S={grid:{hoverable:"true"===z.config.hoverDetail||!0===z.config.hoverDetail,backgroundColor:z.config.bg||void 0,borderWidth:z.config.border_width||"0"===z.config.border_width||0===z.config.border_width?parseInt(z.config.border_width,10):void 0,borderColor:z.config.border_color||void 0},yaxes:[],xaxes:[],legend:{show:!!z.config.legend,position:z.config.legend,hideable:!0,noColumns:parseInt(z.config.legColumns,10)||void 0,backgroundColor:z.config.legBg||void 0,backgroundOpacity:void 0!==z.config.legBgOpacity?parseFloat(z.config.legBgOpacity):.85,labelFormatter:function(e,t){return"__hide_me__"===e?null:''+e+""}}},z.config.zoom&&(S.zoom={interactive:!0,trigger:"dblclick",amount:1.5},S.pan={interactive:!0,cursor:"move",frameRate:20});var u,d=z.config.animation<1e3?20:50;for(u=0;u'+e+""})})},options:w,name:"hiddenGraphsEx",version:"1.0"}),z.chart=$.plot("#"+z.options.chartId,T,S),W(z.config.animation);var b=$("#"+z.options.chartId);z.options.tooltipId=z.options.tooltipId||"tooltip","true"!==z.config.hoverDetail&&!0!==z.config.hoverDetail||(b.unbind("plothover").bind("plothover",function(e,t,n){if(n){var i,o=n.datapoint[0].toFixed(2);i="boolean"===z.config.l[n.seriesIndex-D].type?!!Math.round(n.datapoint[1]-z.config.l[n.seriesIndex-D].yOffset):(n.datapoint[1]-z.config.l[n.seriesIndex-D].yOffset).toFixed(2);var a=n.series.label?n.series.label+"
":"";a+=$.plot.formatDate(new Date(parseInt(o,10)),z.config.timeFormat)+"
",a+=""+O(i,n.seriesIndex-D)+"";var r=$("#"+z.options.tooltipId).html(a);$(this).height()-n.pageY').css({position:"absolute",display:"none",border:"1px solid #fdd",padding:"2px","background-color":"#fee",opacity:.8}).appendTo("body")),z.config.zoom&&z.options.cbOnZoom&&b.unbind("plotzoom").bind("plotzoom",function(e,t,n){z.zoomTimeout&&clearTimeout(z.zoomTimeout),z.zoomTimeout=setTimeout(z.options.cbOnZoom,500)}).unbind("plotpan").bind("plotpan",function(e,t,n){z.zoomTimeout&&clearTimeout(z.zoomTimeout),z.zoomTimeout=setTimeout(z.options.cbOnZoom,500)})}(),this.update=function(e,t,n){if(e){for(var i=1/0,o=0,a=0;ao&&(o=e[a][e[a].length-1][0]),"bar"===f.l[a].chartType){S.xaxes[a].ticks=[];for(var r=0;rc.start&&o.unshift([c.start,null]),o[o.length-1][0]t[1].pageX?t[1].pageX+i/2:t[0].pageX+i/2;chart.zoom(a,o),zoomTimeout&&clearTimeout(zoomTimeout),zoomTimeout=setTimeout(onZoom,500)}lastWidth=i}else chart.pan(lastX-n)}lastX=n}})),config.live&&"relative"===config.timeType&&(!0!==config.live&&"true"!==config.live||(config.live=30),config.live=parseInt(config.live,10)||30,startLiveUpdate())}function _readOneLine(n,i){socket.emit("getObject",config.l[n].id,function(e,t){!e&&t&&t.common?(config.l[n].name=config.l[n].name||t.common.name,config.l[n].unit=config.l[n].unit||(t.common.unit?t.common.unit.replace("�","°"):""),config.l[n].type=t.common.type):(config.l[n].name=config.l[n].name||config.l[n].id,config.l[n].unit=config.l[n].unit||""),"object"==typeof config.l[n].name&&(config.l[n].name=config.l[n].name[systemLang]||config.l[n].name.en),readOneChart(config.l[n].id,config.l[n].instance,n,i)})}function readTicks(l){config.ticks?socket.emit("getObject",config.ticks,function(e,t){var r=JSON.parse(JSON.stringify(getStartStop(0)));r.instance=config.l[0].instance,r.sessionId=sessionId,r.aggregate="onchange",console.log("Ticks: "+new Date(r.start)+" - "+new Date(r.end)),socket.emit("getHistory",config.ticks,r,function(e,t,n,i){if(e&&console.error(e),sessionId&&i&&i!==sessionId)console.warn("Ignore request with sessionId="+i+", actual is "+sessionId);else{if(!e&&t){var o=ticks||[];ticks&&ticks.length&&ticks.splice(0,ticks.length);for(var a=0;ar.start&&o.unshift([r.start,""]),o[o.length-1][0]=config.m.length)return n&&n();!config.m[i].oid&&config.m[i].v&&parseFloat(config.m[i].v)!=config.m[i].v&&-1!==config.m[i].v.indexOf(".")?(-1===subscribes.indexOf(config.m[i].v)&&subscribes.push(config.m[i].v),readValue(config.m[i].v,i,function(e,t){config.m[e].oid=config.m[e].v,config.m[e].v=t,!config.m[i].oidl&&config.m[i].vl&&parseFloat(config.m[i].vl)!=config.m[i].vl&&-1!==config.m[i].vl.indexOf(".")?(-1===subscribes.indexOf(config.m[i].vl)&&subscribes.push(config.m[i].vl),readValue(config.m[i].vl,i,function(e,t){config.m[e].oidl=config.m[e].vl,config.m[e].vl=t,setTimeout(readMarkings,0,n,i+1)})):setTimeout(readMarkings,0,n,i+1)})):!config.m[i].oidl&&config.m[i].vl&&parseFloat(config.m[i].vl)!=config.m[i].vl&&-1!==config.m[i].vl.indexOf(".")?(-1===subscribes.indexOf(config.m[i].vl)&&subscribes.push(config.m[i].vl),readValue(config.m[i].vl,i,function(e,t){config.m[e].oidl=config.m[e].vl,config.m[e].vl=t,setTimeout(readMarkings,0,n,i+1)})):setTimeout(readMarkings,0,n,i+1)}function _readData(e,t){if((t=t||0)>=config.l.length)return e&&e();""!==config.l[t]&&void 0!==config.l[t]&&seriesData.push([]),_readOneLine(t,function(){setTimeout(function(){_readData(e,t+1)},10)})}function subscribeAll(e,t,n){n=n||0,!e||!e.length||n>=e.length?t&&t():socket.emit("subscribe",e[n],function(){setTimeout(function(){subscribeAll(e,t,n+1)},0)})}function readData(e){disconnectTimeout&&($("#no-connection").hide(),clearTimeout(disconnectTimeout),disconnectTimeout=null),sessionId++,config.l&&(e||$("#server-disconnect").show(),_readData(function(){readTicks(function(e){readMarkings(function(){subscribed||(subscribed=!0,subscribeAll()),$("#server-disconnect").hide(),prepareChart()})})})),config.noedit||$("#edit").show().click(function(){window.open(location.href.replace("index.html","edit.html"),"flot").focus()})}function startLiveUpdate(){liveInterval=setInterval(function(){if(config.zoomed){for(var e=0,t=null,n=0;nconfig.l[n].zMin)&&(t=config.l[n].zMin);if(!(e+(e-t)/20>=(new Date).getTime()))return;e=(new Date).getTime()-now.getTime();for(var i=[],o=0;o=1){return\"rgb(\"+[o.r,o.g,o.b].join(\",\")+\")\"}else{return\"rgba(\"+[o.r,o.g,o.b,o.a].join(\",\")+\")\"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=\"\"&&c!=\"transparent\")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),\"body\"));if(c==\"rgba(0, 0, 0, 0)\")c=\"transparent\";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name==\"transparent\")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function($){var hasOwnProperty=Object.prototype.hasOwnProperty;if(!$.fn.detach){$.fn.detach=function(){return this.each(function(){if(this.parentNode){this.parentNode.removeChild(this)}})}}function Canvas(cls,container){var element=container.children(\".\"+cls)[0];if(element==null){element=document.createElement(\"canvas\");element.className=cls;$(element).css({direction:\"ltr\",position:\"absolute\",left:0,top:0}).appendTo(container);if(!element.getContext){if(window.G_vmlCanvasManager){element=window.G_vmlCanvasManager.initElement(element)}else{throw new Error(\"Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode.\")}}}this.element=element;var context=this.context=element.getContext(\"2d\");var devicePixelRatio=window.devicePixelRatio||1,backingStoreRatio=context.webkitBackingStorePixelRatio||context.mozBackingStorePixelRatio||context.msBackingStorePixelRatio||context.oBackingStorePixelRatio||context.backingStorePixelRatio||1;this.pixelRatio=devicePixelRatio/backingStoreRatio;this.resize(container.width(),container.height());this.textContainer=null;this.text={};this._textCache={}}Canvas.prototype.resize=function(width,height){if(width<=0||height<=0){throw new Error(\"Invalid dimensions for plot, width = \"+width+\", height = \"+height)}var element=this.element,context=this.context,pixelRatio=this.pixelRatio;if(this.width!=width){element.width=width*pixelRatio;element.style.width=width+\"px\";this.width=width}if(this.height!=height){element.height=height*pixelRatio;element.style.height=height+\"px\";this.height=height}context.restore();context.save();context.scale(pixelRatio,pixelRatio)};Canvas.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)};Canvas.prototype.render=function(){var cache=this._textCache;for(var layerKey in cache){if(hasOwnProperty.call(cache,layerKey)){var layer=this.getTextLayer(layerKey),layerCache=cache[layerKey];layer.hide();for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){if(position.active){if(!position.rendered){layer.append(position.element);position.rendered=true}}else{positions.splice(i--,1);if(position.rendered){position.element.detach()}}}if(positions.length==0){delete styleCache[key]}}}}}layer.show()}}};Canvas.prototype.getTextLayer=function(classes){var layer=this.text[classes];if(layer==null){if(this.textContainer==null){this.textContainer=$(\"
\").css({position:\"absolute\",top:0,left:0,bottom:0,right:0,\"font-size\":\"smaller\",color:\"#545454\"}).insertAfter(this.element)}layer=this.text[classes]=$(\"
\").addClass(classes).css({position:\"absolute\",top:0,left:0,bottom:0,right:0}).appendTo(this.textContainer)}return layer};Canvas.prototype.getTextInfo=function(layer,text,font,angle,width){var textStyle,layerCache,styleCache,info;text=\"\"+text;if(typeof font===\"object\"){textStyle=font.style+\" \"+font.variant+\" \"+font.weight+\" \"+font.size+\"px/\"+font.lineHeight+\"px \"+font.family}else{textStyle=font}layerCache=this._textCache[layer];if(layerCache==null){layerCache=this._textCache[layer]={}}styleCache=layerCache[textStyle];if(styleCache==null){styleCache=layerCache[textStyle]={}}info=styleCache[text];if(info==null){var element=$(\"
\").html(text).css({position:\"absolute\",\"max-width\":width,top:-9999}).appendTo(this.getTextLayer(layer));if(typeof font===\"object\"){element.css({font:textStyle,color:font.color})}else if(typeof font===\"string\"){element.addClass(font)}info=styleCache[text]={width:element.outerWidth(true),height:element.outerHeight(true),element:element,positions:[]};element.detach()}return info};Canvas.prototype.addText=function(layer,x,y,text,font,angle,width,halign,valign){var info=this.getTextInfo(layer,text,font,angle,width),positions=info.positions;if(halign==\"center\"){x-=info.width/2}else if(halign==\"right\"){x-=info.width}if(valign==\"middle\"){y-=info.height/2}else if(valign==\"bottom\"){y-=info.height}for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=true;return}}position={active:true,rendered:false,element:positions.length?info.element.clone():info.element,x:x,y:y};positions.push(position);position.element.css({top:Math.round(y),left:Math.round(x),\"text-align\":halign})};Canvas.prototype.removeText=function(layer,x,y,text,font,angle){if(text==null){var layerCache=this._textCache[layer];if(layerCache!=null){for(var styleKey in layerCache){if(hasOwnProperty.call(layerCache,styleKey)){var styleCache=layerCache[styleKey];for(var key in styleCache){if(hasOwnProperty.call(styleCache,key)){var positions=styleCache[key].positions;for(var i=0,position;position=positions[i];i++){position.active=false}}}}}}}else{var positions=this.getTextInfo(layer,text,font,angle).positions;for(var i=0,position;position=positions[i];i++){if(position.x==x&&position.y==y){position.active=false}}}};function Plot(placeholder,data_,options_,plugins){var series=[],options={colors:[\"#edc240\",\"#afd8f8\",\"#cb4b4b\",\"#4da74d\",\"#9440ed\"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:\"#ccc\",container:null,position:\"ne\",margin:5,backgroundColor:null,backgroundOpacity:.85,sorted:null},xaxis:{show:null,position:\"bottom\",mode:null,font:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null},yaxis:{autoscaleMargin:.02,position:\"left\"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:\"#ffffff\",symbol:\"circle\"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:\"left\",horizontal:false,zero:true},shadowSize:3,highlightColor:null},grid:{show:true,aboveData:false,color:\"#545454\",backgroundColor:null,borderColor:null,tickColor:null,margin:0,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:\"#f4f4f4\",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},interaction:{redrawOverlayInterval:1e3/60},hooks:{}},surface=null,overlay=null,eventHolder=null,ctx=null,octx=null,xaxes=[],yaxes=[],plotOffset={left:0,right:0,top:0,bottom:0},plotWidth=0,plotHeight=0,hooks={processOptions:[],processRawData:[],processDatapoints:[],processOffset:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},plot=this;plot.setData=setData;plot.setupGrid=setupGrid;plot.draw=draw;plot.getPlaceholder=function(){return placeholder};plot.getCanvas=function(){return surface.element};plot.getPlotOffset=function(){return plotOffset};plot.width=function(){return plotWidth};plot.height=function(){return plotHeight};plot.offset=function(){var o=eventHolder.offset();o.left+=plotOffset.left;o.top+=plotOffset.top;return o};plot.getData=function(){return series};plot.getAxes=function(){var res={},i;$.each(xaxes.concat(yaxes),function(_,axis){if(axis)res[axis.direction+(axis.n!=1?axis.n:\"\")+\"axis\"]=axis});return res};plot.getXAxes=function(){return xaxes};plot.getYAxes=function(){return yaxes};plot.c2p=canvasToAxisCoords;plot.p2c=axisToCanvasCoords;plot.getOptions=function(){return options};plot.highlight=highlight;plot.unhighlight=unhighlight;plot.triggerRedrawOverlay=triggerRedrawOverlay;plot.pointOffset=function(point){return{left:parseInt(xaxes[axisNumber(point,\"x\")-1].p2c(+point.x)+plotOffset.left,10),top:parseInt(yaxes[axisNumber(point,\"y\")-1].p2c(+point.y)+plotOffset.top,10)}};plot.shutdown=shutdown;plot.destroy=function(){shutdown();placeholder.removeData(\"plot\").empty();series=[];options=null;surface=null;overlay=null;eventHolder=null;ctx=null;octx=null;xaxes=[];yaxes=[];hooks=null;highlights=[];plot=null};plot.resize=function(){var width=placeholder.width(),height=placeholder.height();surface.resize(width,height);overlay.resize(width,height)};plot.hooks=hooks;initPlugins(plot);parseOptions(options_);setupCanvases();setData(data_);setupGrid();draw();bindEvents();function executeHooks(hook,args){args=[plot].concat(args);for(var i=0;imaxIndex){maxIndex=sc}}}if(neededColors<=maxIndex){neededColors=maxIndex+1}var c,colors=[],colorPool=options.colors,colorPoolSize=colorPool.length,variation=0;for(i=0;i=0){if(variation<.5){variation=-variation-.2}else variation=0}else variation=-variation}colors[i]=c.scale(\"rgb\",1+variation)}var colori=0,s;for(i=0;iaxis.datamax&&max!=fakeInfinity)axis.datamax=max}$.each(allAxes(),function(_,axis){axis.datamin=topSentry;axis.datamax=bottomSentry;axis.used=false});for(i=0;i0&&points[k-ps]!=null&&points[k-ps]!=points[k]&&points[k-ps+1]!=points[k+1]){for(m=0;mxmax)xmax=val}if(f.y){if(valymax)ymax=val}}}if(s.bars.show){var delta;switch(s.bars.align){case\"left\":delta=0;break;case\"right\":delta=-s.bars.barWidth;break;default:delta=-s.bars.barWidth/2}if(s.bars.horizontal){ymin+=delta;ymax+=delta+s.bars.barWidth}else{xmin+=delta;xmax+=delta+s.bars.barWidth}}updateAxis(s.xaxis,xmin,xmax);updateAxis(s.yaxis,ymin,ymax)}$.each(allAxes(),function(_,axis){if(axis.datamin==topSentry)axis.datamin=null;if(axis.datamax==bottomSentry)axis.datamax=null})}function setupCanvases(){placeholder.css(\"padding\",0).children().filter(function(){return!$(this).hasClass(\"flot-overlay\")&&!$(this).hasClass(\"flot-base\")}).remove();if(placeholder.css(\"position\")==\"static\")placeholder.css(\"position\",\"relative\");surface=new Canvas(\"flot-base\",placeholder);overlay=new Canvas(\"flot-overlay\",placeholder);ctx=surface.context;octx=overlay.context;eventHolder=$(overlay.element).unbind();var existing=placeholder.data(\"plot\");if(existing){existing.shutdown();overlay.clear()}placeholder.data(\"plot\",plot)}function bindEvents(){if(options.grid.hoverable){eventHolder.mousemove(onMouseMove);eventHolder.bind(\"mouseleave\",onMouseLeave)}if(options.grid.clickable)eventHolder.click(onClick);executeHooks(hooks.bindEvents,[eventHolder])}function shutdown(){if(redrawTimeout)clearTimeout(redrawTimeout);eventHolder.unbind(\"mousemove\",onMouseMove);eventHolder.unbind(\"mouseleave\",onMouseLeave);eventHolder.unbind(\"click\",onClick);executeHooks(hooks.shutdown,[eventHolder])}function setTransformationHelpers(axis){function identity(x){return x}var s,m,t=axis.options.transform||identity,it=axis.options.inverseTransform;if(axis.direction==\"x\"){s=axis.scale=plotWidth/Math.abs(t(axis.max)-t(axis.min));m=Math.min(t(axis.max),t(axis.min))}else{s=axis.scale=plotHeight/Math.abs(t(axis.max)-t(axis.min));s=-s;m=Math.max(t(axis.max),t(axis.min))}if(t==identity)axis.p2c=function(p){return(p-m)*s};else axis.p2c=function(p){return(t(p)-m)*s};if(!it)axis.c2p=function(c){return m+c/s};else axis.c2p=function(c){return it(m+c/s)}}function measureTickLabels(axis){var opts=axis.options,ticks=axis.ticks||[],labelWidth=opts.labelWidth||0,labelHeight=opts.labelHeight||0,maxWidth=labelWidth||(axis.direction==\"x\"?Math.floor(surface.width/(ticks.length||1)):null),legacyStyles=axis.direction+\"Axis \"+axis.direction+axis.n+\"Axis\",layer=\"flot-\"+axis.direction+\"-axis flot-\"+axis.direction+axis.n+\"-axis \"+legacyStyles,font=opts.font||\"flot-tick-label tickLabel\";for(var i=0;i=0;--i)allocateAxisBoxFirstPhase(allocatedAxes[i]);adjustLayoutForThingsStickingOut();$.each(allocatedAxes,function(_,axis){allocateAxisBoxSecondPhase(axis)})}plotWidth=surface.width-plotOffset.left-plotOffset.right;plotHeight=surface.height-plotOffset.bottom-plotOffset.top;$.each(axes,function(_,axis){setTransformationHelpers(axis)});if(showGrid){drawAxisLabels()}insertLegend()}function setRange(axis){var opts=axis.options,min=+(opts.min!=null?opts.min:axis.datamin),max=+(opts.max!=null?opts.max:axis.datamax),delta=max-min;if(delta==0){var widen=max==0?1:.01;if(opts.min==null)min-=widen;if(opts.max==null||opts.min!=null)max+=widen}else{var margin=opts.autoscaleMargin;if(margin!=null){if(opts.min==null){min-=delta*margin;if(min<0&&axis.datamin!=null&&axis.datamin>=0)min=0}if(opts.max==null){max+=delta*margin;if(max>0&&axis.datamax!=null&&axis.datamax<=0)max=0}}}axis.min=min;axis.max=max}function setupTickGeneration(axis){var opts=axis.options;var noTicks;if(typeof opts.ticks==\"number\"&&opts.ticks>0)noTicks=opts.ticks;else noTicks=.3*Math.sqrt(axis.direction==\"x\"?surface.width:surface.height);var delta=(axis.max-axis.min)/noTicks,dec=-Math.floor(Math.log(delta)/Math.LN10),maxDec=opts.tickDecimals;if(maxDec!=null&&dec>maxDec){dec=maxDec}var magn=Math.pow(10,-dec),norm=delta/magn,size;if(norm<1.5){size=1}else if(norm<3){size=2;if(norm>2.25&&(maxDec==null||dec+1<=maxDec)){size=2.5;++dec}}else if(norm<7.5){size=5}else{size=10}size*=magn;if(opts.minTickSize!=null&&size0){if(opts.min==null)axis.min=Math.min(axis.min,niceTicks[0]);if(opts.max==null&&niceTicks.length>1)axis.max=Math.max(axis.max,niceTicks[niceTicks.length-1])}axis.tickGenerator=function(axis){var ticks=[],v,i;for(i=0;i1&&/\\..*0$/.test((ts[1]-ts[0]).toFixed(extraDec))))axis.tickDecimals=extraDec}}}}function setTicks(axis){var oticks=axis.options.ticks,ticks=[];if(oticks==null||typeof oticks==\"number\"&&oticks>0)ticks=axis.tickGenerator(axis);else if(oticks){if($.isFunction(oticks))ticks=oticks(axis);else ticks=oticks}var i,v;axis.ticks=[];for(i=0;i1)label=t[1]}else v=+t;if(label===null)label=axis.tickFormatter(v,axis);if(!isNaN(v))axis.ticks.push({v:v,label:label})}}function snapRangeToTicks(axis,ticks){if(axis.options.autoscaleMargin&&ticks.length>0){if(axis.options.min==null)axis.min=Math.min(axis.min,ticks[0].v);if(axis.options.max==null&&ticks.length>1)axis.max=Math.max(axis.max,ticks[ticks.length-1].v)}}function draw(){surface.clear();executeHooks(hooks.drawBackground,[ctx]);var grid=options.grid;if(grid.show&&grid.backgroundColor)drawBackground();if(grid.show&&!grid.aboveData){drawGrid()}for(var i=0;ito){var tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function drawBackground(){ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.fillStyle=getColorOrGradient(options.grid.backgroundColor,plotHeight,0,\"rgba(255, 255, 255, 0)\");ctx.fillRect(0,0,plotWidth,plotHeight);ctx.restore()}function drawGrid(){var i,axes,bw,bc;ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var markings=options.grid.markings;if(markings){if($.isFunction(markings)){axes=plot.getAxes();axes.xmin=axes.xaxis.min;axes.xmax=axes.xaxis.max;axes.ymin=axes.yaxis.min;axes.ymax=axes.yaxis.max;markings=markings(axes)}for(i=0;ixrange.axis.max||yrange.toyrange.axis.max)continue;xrange.from=Math.max(xrange.from,xrange.axis.min);xrange.to=Math.min(xrange.to,xrange.axis.max);yrange.from=Math.max(yrange.from,yrange.axis.min);yrange.to=Math.min(yrange.to,yrange.axis.max);var xequal=xrange.from===xrange.to,yequal=yrange.from===yrange.to;if(xequal&&yequal){continue}xrange.from=Math.floor(xrange.axis.p2c(xrange.from));xrange.to=Math.floor(xrange.axis.p2c(xrange.to));yrange.from=Math.floor(yrange.axis.p2c(yrange.from));yrange.to=Math.floor(yrange.axis.p2c(yrange.to));if(xequal||yequal){var lineWidth=m.lineWidth||options.grid.markingsLineWidth,subPixel=lineWidth%2?.5:0;ctx.beginPath();ctx.strokeStyle=m.color||options.grid.markingsColor;ctx.lineWidth=lineWidth;if(xequal){ctx.moveTo(xrange.to+subPixel,yrange.from);ctx.lineTo(xrange.to+subPixel,yrange.to)}else{ctx.moveTo(xrange.from,yrange.to+subPixel);ctx.lineTo(xrange.to,yrange.to+subPixel)}ctx.stroke()}else{ctx.fillStyle=m.color||options.grid.markingsColor;ctx.fillRect(xrange.from,yrange.to,xrange.to-xrange.from,yrange.from-yrange.to)}}}axes=allAxes();bw=options.grid.borderWidth;for(var j=0;jaxis.max||t==\"full\"&&(typeof bw==\"object\"&&bw[axis.position]>0||bw>0)&&(v==axis.min||v==axis.max))continue;if(axis.direction==\"x\"){x=axis.p2c(v);yoff=t==\"full\"?-plotHeight:t;if(axis.position==\"top\")yoff=-yoff}else{y=axis.p2c(v);xoff=t==\"full\"?-plotWidth:t;if(axis.position==\"left\")xoff=-xoff}if(ctx.lineWidth==1){if(axis.direction==\"x\")x=Math.floor(x)+.5;else y=Math.floor(y)+.5}ctx.moveTo(x,y);ctx.lineTo(x+xoff,y+yoff)}ctx.stroke()}if(bw){bc=options.grid.borderColor;if(typeof bw==\"object\"||typeof bc==\"object\"){if(typeof bw!==\"object\"){bw={top:bw,right:bw,bottom:bw,left:bw}}if(typeof bc!==\"object\"){bc={top:bc,right:bc,bottom:bc,left:bc}}if(bw.top>0){ctx.strokeStyle=bc.top;ctx.lineWidth=bw.top;ctx.beginPath();ctx.moveTo(0-bw.left,0-bw.top/2);ctx.lineTo(plotWidth,0-bw.top/2);ctx.stroke()}if(bw.right>0){ctx.strokeStyle=bc.right;ctx.lineWidth=bw.right;ctx.beginPath();ctx.moveTo(plotWidth+bw.right/2,0-bw.top);ctx.lineTo(plotWidth+bw.right/2,plotHeight);ctx.stroke()}if(bw.bottom>0){ctx.strokeStyle=bc.bottom;ctx.lineWidth=bw.bottom;ctx.beginPath();ctx.moveTo(plotWidth+bw.right,plotHeight+bw.bottom/2);ctx.lineTo(0,plotHeight+bw.bottom/2);ctx.stroke()}if(bw.left>0){ctx.strokeStyle=bc.left;ctx.lineWidth=bw.left;ctx.beginPath();ctx.moveTo(0-bw.left/2,plotHeight+bw.bottom);ctx.lineTo(0-bw.left/2,0);ctx.stroke()}}else{ctx.lineWidth=bw;ctx.strokeStyle=options.grid.borderColor;ctx.strokeRect(-bw/2,-bw/2,plotWidth+bw,plotHeight+bw)}}ctx.restore()}function drawAxisLabels(){$.each(allAxes(),function(_,axis){var box=axis.box,legacyStyles=axis.direction+\"Axis \"+axis.direction+axis.n+\"Axis\",layer=\"flot-\"+axis.direction+\"-axis flot-\"+axis.direction+axis.n+\"-axis \"+legacyStyles,font=axis.options.font||\"flot-tick-label tickLabel\",tick,x,y,halign,valign;surface.removeText(layer);if(!axis.show||axis.ticks.length==0)return;for(var i=0;iaxis.max)continue;if(axis.direction==\"x\"){halign=\"center\";x=plotOffset.left+axis.p2c(tick.v);if(axis.position==\"bottom\"){y=box.top+box.padding}else{y=box.top+box.height-box.padding;valign=\"bottom\"}}else{valign=\"middle\";y=plotOffset.top+axis.p2c(tick.v);if(axis.position==\"left\"){x=box.left+box.width-box.padding;halign=\"right\"}else{x=box.left+box.padding}}surface.addText(layer,x,y,tick.label,font,null,null,halign,valign)}})}function drawSeries(series){if(series.lines.show)drawSeriesLines(series);if(series.bars.show)drawSeriesBars(series);if(series.points.show)drawSeriesPoints(series)}function drawSeriesLines(series){function plotLine(datapoints,xoffset,yoffset,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,prevx=null,prevy=null;ctx.beginPath();for(var i=ps;i=y2&&y1>axisy.max){if(y2>axisy.max)continue;x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max){if(y1>axisy.max)continue;x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1<=x2&&x1=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(x1!=prevx||y1!=prevy)ctx.moveTo(axisx.p2c(x1)+xoffset,axisy.p2c(y1)+yoffset);prevx=x2;prevy=y2;ctx.lineTo(axisx.p2c(x2)+xoffset,axisy.p2c(y2)+yoffset)}ctx.stroke()}function plotLineArea(datapoints,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize,bottom=Math.min(Math.max(0,axisy.min),axisy.max),i=0,top,areaOpen=false,ypos=1,segmentStart=0,segmentEnd=0;while(true){if(ps>0&&i>points.length+ps)break;i+=ps;var x1=points[i-ps],y1=points[i-ps+ypos],x2=points[i],y2=points[i+ypos];if(areaOpen){if(ps>0&&x1!=null&&x2==null){segmentEnd=i;ps=-ps;ypos=2;continue}if(ps<0&&i==segmentStart+ps){ctx.fill();areaOpen=false;ps=-ps;ypos=1;i=segmentStart=segmentEnd+ps;continue}}if(x1==null||x2==null)continue;if(x1<=x2&&x1=x2&&x1>axisx.max){if(x2>axisx.max)continue;y1=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x1=axisx.max}else if(x2>=x1&&x2>axisx.max){if(x1>axisx.max)continue;y2=(axisx.max-x1)/(x2-x1)*(y2-y1)+y1;x2=axisx.max}if(!areaOpen){ctx.beginPath();ctx.moveTo(axisx.p2c(x1),axisy.p2c(bottom));areaOpen=true}if(y1>=axisy.max&&y2>=axisy.max){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.max));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.max));continue}else if(y1<=axisy.min&&y2<=axisy.min){ctx.lineTo(axisx.p2c(x1),axisy.p2c(axisy.min));ctx.lineTo(axisx.p2c(x2),axisy.p2c(axisy.min));continue}var x1old=x1,x2old=x2;if(y1<=y2&&y1=axisy.min){x1=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.min}else if(y2<=y1&&y2=axisy.min){x2=(axisy.min-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.min}if(y1>=y2&&y1>axisy.max&&y2<=axisy.max){x1=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y1=axisy.max}else if(y2>=y1&&y2>axisy.max&&y1<=axisy.max){x2=(axisy.max-y1)/(y2-y1)*(x2-x1)+x1;y2=axisy.max}if(x1!=x1old){ctx.lineTo(axisx.p2c(x1old),axisy.p2c(y1))}ctx.lineTo(axisx.p2c(x1),axisy.p2c(y1));ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));if(x2!=x2old){ctx.lineTo(axisx.p2c(x2),axisy.p2c(y2));ctx.lineTo(axisx.p2c(x2old),axisy.p2c(y2))}}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);ctx.lineJoin=\"round\";var lw=series.lines.lineWidth,sw=series.shadowSize;if(lw>0&&sw>0){ctx.lineWidth=sw;ctx.strokeStyle=\"rgba(0,0,0,0.1)\";var angle=Math.PI/18;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/2),Math.cos(angle)*(lw/2+sw/2),series.xaxis,series.yaxis);ctx.lineWidth=sw/2;plotLine(series.datapoints,Math.sin(angle)*(lw/2+sw/4),Math.cos(angle)*(lw/2+sw/4),series.xaxis,series.yaxis)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;var fillStyle=getFillStyle(series.lines,series.color,0,plotHeight);if(fillStyle){ctx.fillStyle=fillStyle;plotLineArea(series.datapoints,series.xaxis,series.yaxis)}if(lw>0)plotLine(series.datapoints,0,0,series.xaxis,series.yaxis);ctx.restore()}function drawSeriesPoints(series){function plotPoints(datapoints,radius,fillStyle,offset,shadow,axisx,axisy,symbol){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;iaxisx.max||yaxisy.max)continue;ctx.beginPath();x=axisx.p2c(x);y=axisy.p2c(y)+offset;if(symbol==\"circle\")ctx.arc(x,y,radius,0,shadow?Math.PI:Math.PI*2,false);else symbol(ctx,x,y,radius,shadow);ctx.closePath();if(fillStyle){ctx.fillStyle=fillStyle;ctx.fill()}ctx.stroke()}}ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var lw=series.points.lineWidth,sw=series.shadowSize,radius=series.points.radius,symbol=series.points.symbol;if(lw==0)lw=1e-4;if(lw>0&&sw>0){var w=sw/2;ctx.lineWidth=w;ctx.strokeStyle=\"rgba(0,0,0,0.1)\";plotPoints(series.datapoints,radius,null,w+w/2,true,series.xaxis,series.yaxis,symbol);ctx.strokeStyle=\"rgba(0,0,0,0.2)\";plotPoints(series.datapoints,radius,null,w/2,true,series.xaxis,series.yaxis,symbol)}ctx.lineWidth=lw;ctx.strokeStyle=series.color;plotPoints(series.datapoints,radius,getFillStyle(series.points,series.color),0,false,series.xaxis,series.yaxis,symbol);ctx.restore()}function drawBar(x,y,b,barLeft,barRight,fillStyleCallback,axisx,axisy,c,horizontal,lineWidth){var left,right,bottom,top,drawLeft,drawRight,drawTop,drawBottom,tmp;if(horizontal){drawBottom=drawRight=drawTop=true;drawLeft=false;left=b;right=x;top=y+barLeft;bottom=y+barRight;if(rightaxisx.max||topaxisy.max)return;if(leftaxisx.max){right=axisx.max;drawRight=false}if(bottomaxisy.max){top=axisy.max;drawTop=false}left=axisx.p2c(left);bottom=axisy.p2c(bottom);right=axisx.p2c(right);top=axisy.p2c(top);if(fillStyleCallback){c.fillStyle=fillStyleCallback(bottom,top);c.fillRect(left,top,right-left,bottom-top)}if(lineWidth>0&&(drawLeft||drawRight||drawTop||drawBottom)){c.beginPath();c.moveTo(left,bottom);if(drawLeft)c.lineTo(left,top);else c.moveTo(left,top);if(drawTop)c.lineTo(right,top);else c.moveTo(right,top);if(drawRight)c.lineTo(right,bottom);else c.moveTo(right,bottom);if(drawBottom)c.lineTo(left,bottom);else c.moveTo(left,bottom);c.stroke()}}function drawSeriesBars(series){function plotBars(datapoints,barLeft,barRight,fillStyleCallback,axisx,axisy){var points=datapoints.points,ps=datapoints.pointsize;for(var i=0;i\");fragments.push(\"\");rowStarted=true}fragments.push('
'+''+entry.label+\"\")}if(rowStarted)fragments.push(\"\");if(fragments.length==0)return;var table=''+fragments.join(\"\")+\"
\";if(options.legend.container!=null)$(options.legend.container).html(table);else{var pos=\"\",p=options.legend.position,m=options.legend.margin;if(m[0]==null)m=[m,m];if(p.charAt(0)==\"n\")pos+=\"top:\"+(m[1]+plotOffset.top)+\"px;\";else if(p.charAt(0)==\"s\")pos+=\"bottom:\"+(m[1]+plotOffset.bottom)+\"px;\";if(p.charAt(1)==\"e\")pos+=\"right:\"+(m[0]+plotOffset.right)+\"px;\";else if(p.charAt(1)==\"w\")pos+=\"left:\"+(m[0]+plotOffset.left)+\"px;\";var legend=$('
'+table.replace('style=\"','style=\"position:absolute;'+pos+\";\")+\"
\").appendTo(placeholder);if(options.legend.backgroundOpacity!=0){var c=options.legend.backgroundColor;if(c==null){c=options.grid.backgroundColor;if(c&&typeof c==\"string\")c=$.color.parse(c);else c=$.color.extract(legend,\"background-color\");c.a=1;c=c.toString()}var div=legend.children();$('
').prependTo(legend).css(\"opacity\",options.legend.backgroundOpacity)}}}var highlights=[],redrawTimeout=null;function findNearbyItem(mouseX,mouseY,seriesFilter){var maxDistance=options.grid.mouseActiveRadius,smallestDistance=maxDistance*maxDistance+1,item=null,foundPoint=false,i,j,ps;for(i=series.length-1;i>=0;--i){if(!seriesFilter(series[i]))continue;var s=series[i],axisx=s.xaxis,axisy=s.yaxis,points=s.datapoints.points,mx=axisx.c2p(mouseX),my=axisy.c2p(mouseY),maxx=maxDistance/axisx.scale,maxy=maxDistance/axisy.scale;ps=s.datapoints.pointsize;if(axisx.options.inverseTransform)maxx=Number.MAX_VALUE;if(axisy.options.inverseTransform)maxy=Number.MAX_VALUE;if(s.lines.show||s.points.show){for(j=0;jmaxx||x-mx<-maxx||y-my>maxy||y-my<-maxy)continue;var dx=Math.abs(axisx.p2c(x)-mouseX),dy=Math.abs(axisy.p2c(y)-mouseY),dist=dx*dx+dy*dy;if(dist=Math.min(b,x)&&my>=y+barLeft&&my<=y+barRight:mx>=x+barLeft&&mx<=x+barRight&&my>=Math.min(b,y)&&my<=Math.max(b,y))item=[i,j/ps]}}}if(item){i=item[0];j=item[1];ps=series[i].datapoints.pointsize;return{datapoint:series[i].datapoints.points.slice(j*ps,(j+1)*ps),dataIndex:j,series:series[i],seriesIndex:i}}return null}function onMouseMove(e){if(options.grid.hoverable)triggerClickHoverEvent(\"plothover\",e,function(s){return s[\"hoverable\"]!=false})}function onMouseLeave(e){if(options.grid.hoverable)triggerClickHoverEvent(\"plothover\",e,function(s){return false})}function onClick(e){triggerClickHoverEvent(\"plotclick\",e,function(s){return s[\"clickable\"]!=false})}function triggerClickHoverEvent(eventname,event,seriesFilter){var offset=eventHolder.offset(),canvasX=event.pageX-offset.left-plotOffset.left,canvasY=event.pageY-offset.top-plotOffset.top,pos=canvasToAxisCoords({left:canvasX,top:canvasY});pos.pageX=event.pageX;pos.pageY=event.pageY;var item=findNearbyItem(canvasX,canvasY,seriesFilter);if(item){item.pageX=parseInt(item.series.xaxis.p2c(item.datapoint[0])+offset.left+plotOffset.left,10);item.pageY=parseInt(item.series.yaxis.p2c(item.datapoint[1])+offset.top+plotOffset.top,10)}if(options.grid.autoHighlight){for(var i=0;iaxisx.max||yaxisy.max)return;var pointRadius=series.points.radius+series.points.lineWidth/2;octx.lineWidth=pointRadius;octx.strokeStyle=highlightColor;var radius=1.5*pointRadius;x=axisx.p2c(x);y=axisy.p2c(y);octx.beginPath();if(series.points.symbol==\"circle\")octx.arc(x,y,radius,0,2*Math.PI,false);else series.points.symbol(octx,x,y,radius,false);octx.closePath();octx.stroke()}function drawBarHighlight(series,point){var highlightColor=typeof series.highlightColor===\"string\"?series.highlightColor:$.color.parse(series.color).scale(\"a\",.5).toString(),fillStyle=highlightColor,barLeft;switch(series.bars.align){case\"left\":barLeft=0;break;case\"right\":barLeft=-series.bars.barWidth;break;default:barLeft=-series.bars.barWidth/2}octx.lineWidth=series.bars.lineWidth;octx.strokeStyle=highlightColor;drawBar(point[0],point[1],point[2]||0,barLeft,barLeft+series.bars.barWidth,function(){return fillStyle},series.xaxis,series.yaxis,octx,series.bars.horizontal,series.bars.lineWidth)}function getColorOrGradient(spec,bottom,top,defaultColor){if(typeof spec==\"string\")return spec;else{var gradient=ctx.createLinearGradient(0,top,0,bottom);for(var i=0,l=spec.colors.length;i=0;t--){if(i[t]==this){i.splice(t,1);break}}e.removeData(m);if(!i.length){if(r){cancelAnimationFrame(a)}else{clearTimeout(a)}a=null}},add:function(e){if(!n[f]&&this[s]){return false}var i;function a(e,n,a){var r=$(this),s=r.data(m)||{};s.w=n!==t?n:r.width();s.h=a!==t?a:r.height();i.apply(this,arguments)}if($.isFunction(e)){i=e;return a}else{i=e.handler;e.handler=a}}};function h(t){if(r===true){r=t||1}for(var s=i.length-1;s>=0;s--){var l=$(i[s]);if(l[0]==e||l.is(\":visible\")){var f=l.width(),c=l.height(),d=l.data(m);if(d&&(f!==d.w||c!==d.h)){l.trigger(u,[d.w=f,d.h=c]);r=t||true}}else{d=l.data(m);d.w=0;d.h=0}}if(a!==null){if(r&&(t==null||t-r<1e3)){a=e.requestAnimationFrame(h)}else{a=setTimeout(h,n[o]);r=false}}}if(!e.requestAnimationFrame){e.requestAnimationFrame=function(){return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t,i){return e.setTimeout(function(){t((new Date).getTime())},n[l])}}()}if(!e.cancelAnimationFrame){e.cancelAnimationFrame=function(){return e.webkitCancelRequestAnimationFrame||e.mozCancelRequestAnimationFrame||e.oCancelRequestAnimationFrame||e.msCancelRequestAnimationFrame||clearTimeout}()}})(jQuery,this);(function($){var options={};function init(plot){function onResize(){var placeholder=plot.getPlaceholder();if(placeholder.width()==0||placeholder.height()==0)return;plot.resize();plot.setupGrid();plot.draw()}function bindEvents(plot,eventHolder){plot.getPlaceholder().resize(onResize)}function shutdown(plot,eventHolder){plot.getPlaceholder().unbind(\"resize\",onResize)}plot.hooks.bindEvents.push(bindEvents);plot.hooks.shutdown.push(shutdown)}$.plot.plugins.push({init:init,options:options,name:\"resize\",version:\"1.0\"})})(jQuery);","/* Javascript plotting library for jQuery, version 0.8.3.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n(function($){var options={xaxis:{timezone:null,timeformat:null,twelveHourClock:false,monthNames:null}};function floorInBase(n,base){return base*Math.floor(n/base)}function formatDate(d,fmt,monthNames,dayNames){if(typeof d.strftime==\"function\"){return d.strftime(fmt)}var leftPad=function(n,pad){n=\"\"+n;pad=\"\"+(pad==null?\"0\":pad);return n.length==1?pad+n:n};var r=[];var escape=false;var hours=d.getHours();var isAM=hours<12;if(monthNames==null){monthNames=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}if(dayNames==null){dayNames=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]}var hours12;if(hours>12){hours12=hours-12}else if(hours==0){hours12=12}else{hours12=hours}for(var i=0;i=minSize){break}}var size=spec[i][0];var unit=spec[i][1];if(unit==\"year\"){if(opts.minTickSize!=null&&opts.minTickSize[1]==\"year\"){size=Math.floor(opts.minTickSize[0])}else{var magn=Math.pow(10,Math.floor(Math.log(axis.delta/timeUnitSize.year)/Math.LN10));var norm=axis.delta/timeUnitSize.year/magn;if(norm<1.5){size=1}else if(norm<3){size=2}else if(norm<7.5){size=5}else{size=10}size*=magn}if(size<1){size=1}}axis.tickSize=opts.tickSize||[size,unit];var tickSize=axis.tickSize[0];unit=axis.tickSize[1];var step=tickSize*timeUnitSize[unit];if(unit==\"second\"){d.setSeconds(floorInBase(d.getSeconds(),tickSize))}else if(unit==\"minute\"){d.setMinutes(floorInBase(d.getMinutes(),tickSize))}else if(unit==\"hour\"){d.setHours(floorInBase(d.getHours(),tickSize))}else if(unit==\"month\"){d.setMonth(floorInBase(d.getMonth(),tickSize))}else if(unit==\"quarter\"){d.setMonth(3*floorInBase(d.getMonth()/3,tickSize))}else if(unit==\"year\"){d.setFullYear(floorInBase(d.getFullYear(),tickSize))}d.setMilliseconds(0);if(step>=timeUnitSize.minute){d.setSeconds(0)}if(step>=timeUnitSize.hour){d.setMinutes(0)}if(step>=timeUnitSize.day){d.setHours(0)}if(step>=timeUnitSize.day*4){d.setDate(1)}if(step>=timeUnitSize.month*2){d.setMonth(floorInBase(d.getMonth(),3))}if(step>=timeUnitSize.quarter*2){d.setMonth(floorInBase(d.getMonth(),6))}if(step>=timeUnitSize.year){d.setMonth(0)}var carry=0;var v=Number.NaN;var prev;do{prev=v;v=d.getTime();ticks.push(v);if(unit==\"month\"||unit==\"quarter\"){if(tickSize<1){d.setDate(1);var start=d.getTime();d.setMonth(d.getMonth()+(unit==\"quarter\"?3:1));var end=d.getTime();d.setTime(v+carry*timeUnitSize.hour+(end-start)*tickSize);carry=d.getHours();d.setHours(0)}else{d.setMonth(d.getMonth()+tickSize*(unit==\"quarter\"?3:1))}}else if(unit==\"year\"){d.setFullYear(d.getFullYear()+tickSize)}else{d.setTime(v+step)}}while(vindex)index=categories[v];return index+1}function categoriesTickGenerator(axis){var res=[];for(var label in axis.categories){var v=axis.categories[label];if(v>=axis.min&&v<=axis.max)res.push([v,label])}res.sort(function(a,b){return a[0]-b[0]});return res}function setupCategoriesForAxis(series,axis,datapoints){if(series[axis].options.mode!=\"categories\")return;if(!series[axis].categories){var c={},o=series[axis].options.categories||{};if($.isArray(o)){for(var i=0;i\n * modified by: Avi Kohn https://github.com/AMKohn\n * based on the spline interpolation described at:\n * http://scaledinnovation.com/analytics/splines/aboutSplines.html\n *\n * Example usage: (add in plot options series object)\n * for linespline:\n * series: {\n * ...\n * lines: {\n * show: false\n * },\n * splines: {\n * show: true,\n * tension: x, (float between 0 and 1, defaults to 0.5),\n * lineWidth: y (number, defaults to 2),\n * fill: z (float between 0 .. 1 or false, as in flot documentation)\n * },\n * ...\n * }\n * areaspline:\n * series: {\n * ...\n * lines: {\n * show: true,\n * lineWidth: 0, (line drawing will not execute)\n * fill: x, (float between 0 .. 1, as in flot documentation)\n * ...\n * },\n * splines: {\n * show: true,\n * tension: 0.5 (float between 0 and 1)\n * },\n * ...\n * }\n *\n */\n\n(function($) {\n 'use strict'\n\n /**\n * @param {Number} x0, y0, x1, y1: coordinates of the end (knot) points of the segment\n * @param {Number} x2, y2: the next knot (not connected, but needed to calculate p2)\n * @param {Number} tension: control how far the control points spread\n * @return {Array}: p1 -> control point, from x1 back toward x0\n * p2 -> the next control point, returned to become the next segment's p1\n *\n * @api private\n */\n function getControlPoints(x0, y0, x1, y1, x2, y2, tension) {\n\n var pow = Math.pow,\n sqrt = Math.sqrt,\n d01, d12, fa, fb, p1x, p1y, p2x, p2y;\n\n // Scaling factors: distances from this knot to the previous and following knots.\n d01 = sqrt(pow(x1 - x0, 2) + pow(y1 - y0, 2));\n d12 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));\n\n fa = tension * d01 / (d01 + d12);\n fb = tension - fa;\n\n p1x = x1 + fa * (x0 - x2);\n p1y = y1 + fa * (y0 - y2);\n\n p2x = x1 - fb * (x0 - x2);\n p2y = y1 - fb * (y0 - y2);\n\n return [p1x, p1y, p2x, p2y];\n }\n\n var line = [];\n\n function drawLine(points, ctx, height, fill, seriesColor) {\n var c = $.color.parse(seriesColor);\n\n c.a = typeof fill == \"number\" ? fill : .3;\n c.normalize();\n c = c.toString();\n\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n\n var plength = points.length;\n\n for (var i = 0; i < plength; i++) {\n try {\n ctx[points[i][3]].apply(ctx, points[i][2]);\n } catch(e) {\n console.log(e);\n break;\n }\n }\n\n ctx.stroke();\n\n ctx.lineWidth = 0;\n ctx.lineTo(points[plength - 1][0], height);\n ctx.lineTo(points[0][0], height);\n\n ctx.closePath();\n\n if (fill !== false) {\n ctx.fillStyle = c;\n ctx.fill();\n }\n }\n\n /**\n * @param {Object} ctx: canvas context\n * @param {String} type: accepted strings: 'bezier' or 'quadratic' (defaults to quadratic)\n * @param {Array} points: 2 points for which to draw the interpolation\n * @param {Array} cpoints: control points for those segment points\n *\n * @api private\n */\n function queue(ctx, type, points, cpoints) {\n if (type === void 0 || (type !== 'bezier' && type !== 'quadratic')) {\n type = 'quadratic';\n }\n type = type + 'CurveTo';\n\n if (line.length == 0) line.push([points[0], points[1], cpoints.concat(points.slice(2)), type]);\n else if (type == \"quadraticCurveTo\" && points.length == 2) {\n cpoints = cpoints.slice(0, 2).concat(points);\n\n line.push([points[0], points[1], cpoints, type]);\n }\n else line.push([points[2], points[3], cpoints.concat(points.slice(2)), type]);\n }\n\n /**\n * @param {Object} plot\n * @param {Object} ctx: canvas context\n * @param {Object} series\n *\n * @api private\n */\n\n function drawSpline(plot, ctx, series) {\n // Not interested if spline is not requested\n if (series.splines.show !== true) {\n return;\n }\n\n var cp = [],\n // array of control points\n tension = series.splines.tension || 0.5,\n idx, x, y, points = series.datapoints.points,\n ps = series.datapoints.pointsize,\n plotOffset = plot.getPlotOffset(),\n len = points.length,\n pts = [];\n\n line = [];\n\n // Cannot display a linespline/areaspline if there are less than 3 points\n if (len / ps < 4) {\n $.extend(series.lines, series.splines);\n return;\n }\n\n for (idx = 0; idx < len; idx += ps) {\n x = points[idx];\n y = points[idx + 1];\n if (x == null || x < series.xaxis.min || x > series.xaxis.max || y < series.yaxis.min || y > series.yaxis.max) {\n continue;\n }\n\n pts.push(series.xaxis.p2c(x) + plotOffset.left, series.yaxis.p2c(y) + plotOffset.top);\n }\n\n len = pts.length;\n\n // Draw an open curve, not connected at the ends\n for (idx = 0; idx < len - 2; idx += 2) {\n cp = cp.concat(getControlPoints.apply(this, pts.slice(idx, idx + 6).concat([tension])));\n }\n\n ctx.save();\n ctx.strokeStyle = series.color;\n ctx.lineWidth = series.splines.lineWidth;\n\n queue(ctx, 'quadratic', pts.slice(0, 4), cp.slice(0, 2));\n\n for (idx = 2; idx < len - 3; idx += 2) {\n queue(ctx, 'bezier', pts.slice(idx, idx + 4), cp.slice(2 * idx - 2, 2 * idx + 2));\n }\n\n queue(ctx, 'quadratic', pts.slice(len - 2, len), [cp[2 * len - 10], cp[2 * len - 9], pts[len - 4], pts[len - 3]]);\n\n drawLine(line, ctx, plot.height() + 10, series.splines.fill, series.color);\n\n ctx.restore();\n }\n\n $.plot.plugins.push({\n init: function(plot) {\n plot.hooks.drawSeries.push(drawSpline);\n },\n options: {\n series: {\n splines: {\n show: false,\n lineWidth: 2,\n tension: 0.5,\n fill: false\n }\n }\n },\n name: 'spline',\n version: '0.8.2'\n });\n})(jQuery);","/* Javascript plotting library for jQuery, version 0.8.3.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n(function($){function init(plot){var selection={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false};var savedhandlers={};var mouseUpHandler=null;function onMouseMove(e){if(selection.active){updateSelection(e);plot.getPlaceholder().trigger(\"plotselecting\",[getSelection()])}}function onMouseDown(e){if(e.which!=1)return;document.body.focus();if(document.onselectstart!==undefined&&savedhandlers.onselectstart==null){savedhandlers.onselectstart=document.onselectstart;document.onselectstart=function(){return false}}if(document.ondrag!==undefined&&savedhandlers.ondrag==null){savedhandlers.ondrag=document.ondrag;document.ondrag=function(){return false}}setSelectionPos(selection.first,e);selection.active=true;mouseUpHandler=function(e){onMouseUp(e)};$(document).one(\"mouseup\",mouseUpHandler)}function onMouseUp(e){mouseUpHandler=null;if(document.onselectstart!==undefined)document.onselectstart=savedhandlers.onselectstart;if(document.ondrag!==undefined)document.ondrag=savedhandlers.ondrag;selection.active=false;updateSelection(e);if(selectionIsSane())triggerSelectedEvent();else{plot.getPlaceholder().trigger(\"plotunselected\",[]);plot.getPlaceholder().trigger(\"plotselecting\",[null])}return false}function getSelection(){if(!selectionIsSane())return null;if(!selection.show)return null;var r={},c1=selection.first,c2=selection.second;$.each(plot.getAxes(),function(name,axis){if(axis.used){var p1=axis.c2p(c1[axis.direction]),p2=axis.c2p(c2[axis.direction]);r[name]={from:Math.min(p1,p2),to:Math.max(p1,p2)}}});return r}function triggerSelectedEvent(){var r=getSelection();plot.getPlaceholder().trigger(\"plotselected\",[r]);if(r.xaxis&&r.yaxis)plot.getPlaceholder().trigger(\"selected\",[{x1:r.xaxis.from,y1:r.yaxis.from,x2:r.xaxis.to,y2:r.yaxis.to}])}function clamp(min,value,max){return valuemax?max:value}function setSelectionPos(pos,e){var o=plot.getOptions();var offset=plot.getPlaceholder().offset();var plotOffset=plot.getPlotOffset();pos.x=clamp(0,e.pageX-offset.left-plotOffset.left,plot.width());pos.y=clamp(0,e.pageY-offset.top-plotOffset.top,plot.height());if(o.selection.mode==\"y\")pos.x=pos==selection.first?0:plot.width();if(o.selection.mode==\"x\")pos.y=pos==selection.first?0:plot.height()}function updateSelection(pos){if(pos.pageX==null)return;setSelectionPos(selection.second,pos);if(selectionIsSane()){selection.show=true;plot.triggerRedrawOverlay()}else clearSelection(true)}function clearSelection(preventEvent){if(selection.show){selection.show=false;plot.triggerRedrawOverlay();if(!preventEvent)plot.getPlaceholder().trigger(\"plotunselected\",[])}}function extractRange(ranges,coord){var axis,from,to,key,axes=plot.getAxes();for(var k in axes){axis=axes[k];if(axis.direction==coord){key=coord+axis.n+\"axis\";if(!ranges[key]&&axis.n==1)key=coord+\"axis\";if(ranges[key]){from=ranges[key].from;to=ranges[key].to;break}}}if(!ranges[key]){axis=coord==\"x\"?plot.getXAxes()[0]:plot.getYAxes()[0];from=ranges[coord+\"1\"];to=ranges[coord+\"2\"]}if(from!=null&&to!=null&&from>to){var tmp=from;from=to;to=tmp}return{from:from,to:to,axis:axis}}function setSelection(ranges,preventEvent){var axis,range,o=plot.getOptions();if(o.selection.mode==\"y\"){selection.first.x=0;selection.second.x=plot.width()}else{range=extractRange(ranges,\"x\");selection.first.x=range.axis.p2c(range.from);selection.second.x=range.axis.p2c(range.to)}if(o.selection.mode==\"x\"){selection.first.y=0;selection.second.y=plot.height()}else{range=extractRange(ranges,\"y\");selection.first.y=range.axis.p2c(range.from);selection.second.y=range.axis.p2c(range.to)}selection.show=true;plot.triggerRedrawOverlay();if(!preventEvent&&selectionIsSane())triggerSelectedEvent()}function selectionIsSane(){var minSize=plot.getOptions().selection.minSize;return Math.abs(selection.second.x-selection.first.x)>=minSize&&Math.abs(selection.second.y-selection.first.y)>=minSize}plot.clearSelection=clearSelection;plot.setSelection=setSelection;plot.getSelection=getSelection;plot.hooks.bindEvents.push(function(plot,eventHolder){var o=plot.getOptions();if(o.selection.mode!=null){eventHolder.mousemove(onMouseMove);eventHolder.mousedown(onMouseDown)}});plot.hooks.drawOverlay.push(function(plot,ctx){if(selection.show&&selectionIsSane()){var plotOffset=plot.getPlotOffset();var o=plot.getOptions();ctx.save();ctx.translate(plotOffset.left,plotOffset.top);var c=$.color.parse(o.selection.color);ctx.strokeStyle=c.scale(\"a\",.8).toString();ctx.lineWidth=1;ctx.lineJoin=o.selection.shape;ctx.fillStyle=c.scale(\"a\",.4).toString();var x=Math.min(selection.first.x,selection.second.x)+.5,y=Math.min(selection.first.y,selection.second.y)+.5,w=Math.abs(selection.second.x-selection.first.x)-1,h=Math.abs(selection.second.y-selection.first.y)-1;ctx.fillRect(x,y,w,h);ctx.strokeRect(x,y,w,h);ctx.restore()}});plot.hooks.shutdown.push(function(plot,eventHolder){eventHolder.unbind(\"mousemove\",onMouseMove);eventHolder.unbind(\"mousedown\",onMouseDown);if(mouseUpHandler)$(document).unbind(\"mouseup\",mouseUpHandler)})}$.plot.plugins.push({init:init,options:{selection:{mode:null,color:\"#e8cfac\",shape:\"round\",minSize:5}},name:\"selection\",version:\"1.1\"})})(jQuery);","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this file,\n * You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/*\n * Plugin to hide series in flot graphs.\n *\n * To activate, set legend.hideable to true in the flot options object.\n * To hide one or more series by default, set legend.hidden to an array of\n * label strings.\n *\n * At the moment, this only works with line and point graphs.\n *\n * Example:\n *\n * var plotdata = [\n * {\n * data: [[1, 1], [2, 1], [3, 3], [4, 2], [5, 5]],\n * label: \"graph 1\"\n * },\n * {\n * data: [[1, 0], [2, 1], [3, 0], [4, 4], [5, 3]],\n * label: \"graph 2\"\n * }\n * ];\n *\n * plot = $.plot($(\"#placeholder\"), plotdata, {\n * series: {\n * points: { show: true },\n * lines: { show: true }\n * },\n * legend: {\n * hideable: true,\n * hidden: [\"graph 1\", \"graph 2\"]\n * }\n * });\n *\n */\n(function ($) {\n var options = { };\n\n function init(plot) {\n var drawnOnce = false;\n\n function findPlotSeries(label) {\n var plotdata = plot.getData();\n for (var i = 0; i < plotdata.length; i++) {\n if (plotdata[i].label == label) {\n return plotdata[i];\n }\n }\n return null;\n }\n\n function plotLabelClicked(label, mouseOut) {\n var series = findPlotSeries(label);\n if (!series) {\n return;\n }\n\n var options = plot.getOptions();\n var switchedOff = false;\n\n if (typeof series.points.oldShow === \"undefined\") {\n series.points.oldShow = false;\n }\n if (typeof series.lines.oldShow === \"undefined\") {\n series.lines.oldShow = false;\n }\n\n if (series.points.show && !series.points.oldShow) {\n series.points.show = false;\n series.points.oldShow = true;\n switchedOff = true;\n }\n if (series.lines.show && !series.lines.oldShow) {\n series.lines.show = false;\n series.lines.oldShow = true;\n switchedOff = true;\n }\n\n if (switchedOff) {\n series.oldColor = series.color;\n series.color = \"#fff\";\n setHidden(options, label, true);\n } else {\n var switchedOn = false;\n\n if (!series.points.show && series.points.oldShow) {\n series.points.show = true;\n series.points.oldShow = false;\n switchedOn = true;\n }\n if (!series.lines.show && series.lines.oldShow) {\n \t series.lines.show = true;\n series.lines.oldShow = false;\n switchedOn = true;\n }\n\n if (switchedOn) {\n \t series.color = series.oldColor;\n setHidden(options, label, false);\n \t}\n }\n }\n\n function setSetupRedraw () {\n // HACK: Reset the data, triggering recalculation of graph bounds\n plot.setData(plot.getData());\n\n plot.setupGrid();\n plot.draw();\n }\n\n function setHidden(options, label, hide) {\n // Record state to a new variable in the legend option object.\n if (!options.legend.hidden) {\n options.legend.hidden = [];\n }\n\n var pos = options.legend.hidden.indexOf(label);\n\n if (hide) {\n if (pos < 0) {\n options.legend.hidden.push(label);\n }\n } else {\n if (pos > -1) {\n options.legend.hidden.splice(pos, 1);\n }\n }\n }\n\n function setHideAction(elem) {\n elem.mouseenter(function() { $(this).css(\"cursor\", \"pointer\"); })\n .mouseleave(function() { $(this).css(\"cursor\", \"default\"); })\n .unbind(\"click\").click(function() {\n if ($(this).is(\".legendColorBox\")) {\n plotLabelClicked($(this).next('.legendLabel').text());\n } else {\n plotLabelClicked($(this).parent().text());\n }\n setSetupRedraw();\n });\n }\n\n function plotLabelHandlers(plot) {\n var options = plot.getOptions();\n\n if (!options.legend.hideable) {\n return;\n }\n\n var p = plot.getPlaceholder();\n\n setHideAction(p.find(\".graphlabel\"));\n setHideAction(p.find(\".legendColorBox\"));\n\n if (!drawnOnce) {\n drawnOnce = true;\n if (options.legend.hidden) {\n for (var i = 0; i < options.legend.hidden.length; i++) {\n plotLabelClicked(options.legend.hidden[i], true);\n }\n setSetupRedraw();\n }\n }\n }\n\n function checkOptions(plot, options) {\n if (!options.legend.hideable) {\n return;\n }\n\n options.legend.labelFormatter = function(label, series) {\n return '' + label + '';\n };\n }\n\n function hideDatapointsIfNecessary(plot, s, datapoints) {\n var options = plot.getOptions();\n\n if (!options.legend.hideable) {\n return;\n }\n\n if (options.legend.hidden &&\n options.legend.hidden.indexOf(s.label) > -1) {\n var off = false;\n\n if (s.points.show) {\n s.points.show = false;\n s.points.oldShow = true;\n off = true;\n }\n if (s.lines.show) {\n s.lines.show = false;\n s.lines.oldShow = true;\n off = true;\n }\n\n if (off) {\n s.oldColor = s.color;\n s.color = \"#fff\";\n }\n }\n\n if (!s.points.show && !s.lines.show) {\n s.datapoints.format = [ null, null ];\n }\n }\n\n plot.hooks.processOptions.push(checkOptions);\n\n plot.hooks.draw.push(function (plot, ctx) {\n plotLabelHandlers(plot);\n });\n\n plot.hooks.processDatapoints.push(hideDatapointsIfNecessary);\n }\n\n $.plot.plugins.push({\n init: init,\n options: options,\n name: 'hiddenGraphs',\n version: '1.1'\n });\n\n})(jQuery);\n","/*\nFlot plugin for computing bottoms for filled line and bar charts.\n\nThe case: you've got two series that you want to fill the area\nbetween. In Flot terms, you need to use one as the fill bottom of the\nother. You can specify the bottom of each data point as the third\ncoordinate manually, or you can use this plugin to compute it for you.\n\nIn order to name the other series, you need to give it an id, like this\n\n var dataset = [\n { data: [ ... ], id: \"foo\" } , // use default bottom\n { data: [ ... ], fillBetween: \"foo\" }, // use first dataset as bottom\n ];\n\n $.plot($(\"#placeholder\"), dataset, { line: { show: true, fill: true }});\n\nAs a convenience, if the id given is a number that doesn't appear as\nan id in the series, it is interpreted as the index in the array\ninstead (so fillBetween: 0 can also mean the first series).\n \nInternally, the plugin modifies the datapoints in each series. For\nline series, extra data points might be inserted through\ninterpolation. Note that at points where the bottom line is not\ndefined (due to a null point or start/end of line), the current line\nwill show a gap too. The algorithm comes from the jquery.flot.stack.js\nplugin, possibly some code could be shared.\n*/\n\n(function ($) {\n var options = {\n series: { fillBetween: null } // or number\n };\n \n function init(plot) {\n function findBottomSeries(s, allseries) {\n var i;\n for (i = 0; i < allseries.length; ++i) {\n if (allseries[i].id == s.fillBetween)\n return allseries[i];\n }\n\n if (typeof s.fillBetween == \"number\") {\n i = s.fillBetween;\n \n if (i < 0 || i >= allseries.length)\n return null;\n\n return allseries[i];\n }\n \n return null;\n }\n \n function computeFillBottoms(plot, s, datapoints) {\n if (s.fillBetween == null)\n return;\n\n var other = findBottomSeries(s, plot.getData());\n if (!other)\n return;\n\n var ps = datapoints.pointsize,\n points = datapoints.points,\n otherps = other.datapoints.pointsize,\n otherpoints = other.datapoints.points,\n newpoints = [],\n px, py, intery, qx, qy, bottom,\n withlines = s.lines.show,\n withbottom = ps > 2 && datapoints.format[2].y,\n withsteps = withlines && s.lines.steps,\n fromgap = true,\n i = 0, j = 0, l;\n\n while (true) {\n if (i >= points.length)\n break;\n\n l = newpoints.length;\n\n if (points[i] == null) {\n // copy gaps\n for (m = 0; m < ps; ++m)\n newpoints.push(points[i + m]);\n i += ps;\n }\n else if (j >= otherpoints.length) {\n // for lines, we can't use the rest of the points\n if (!withlines) {\n for (m = 0; m < ps; ++m)\n newpoints.push(points[i + m]);\n }\n i += ps;\n }\n else if (otherpoints[j] == null) {\n // oops, got a gap\n for (m = 0; m < ps; ++m)\n newpoints.push(null);\n fromgap = true;\n j += otherps;\n }\n else {\n // cases where we actually got two points\n px = points[i];\n py = points[i + 1];\n qx = otherpoints[j];\n qy = otherpoints[j + 1];\n bottom = 0;\n\n if (px == qx) {\n for (m = 0; m < ps; ++m)\n newpoints.push(points[i + m]);\n\n //newpoints[l + 1] += qy;\n bottom = qy;\n \n i += ps;\n j += otherps;\n }\n else if (px > qx) {\n // we got past point below, might need to\n // insert interpolated extra point\n if (withlines && i > 0 && points[i - ps] != null) {\n intery = py + (points[i - ps + 1] - py) * (qx - px) / (points[i - ps] - px);\n newpoints.push(qx);\n newpoints.push(intery)\n for (m = 2; m < ps; ++m)\n newpoints.push(points[i + m]);\n bottom = qy; \n }\n\n j += otherps;\n }\n else { // px < qx\n if (fromgap && withlines) {\n // if we come from a gap, we just skip this point\n i += ps;\n continue;\n }\n \n for (m = 0; m < ps; ++m)\n newpoints.push(points[i + m]);\n \n // we might be able to interpolate a point below,\n // this can give us a better y\n if (withlines && j > 0 && otherpoints[j - otherps] != null)\n bottom = qy + (otherpoints[j - otherps + 1] - qy) * (px - qx) / (otherpoints[j - otherps] - qx);\n\n //newpoints[l + 1] += bottom;\n \n i += ps;\n }\n\n fromgap = false;\n \n if (l != newpoints.length && withbottom)\n newpoints[l + 2] = bottom;\n }\n\n // maintain the line steps invariant\n if (withsteps && l != newpoints.length && l > 0\n && newpoints[l] != null\n && newpoints[l] != newpoints[l - ps]\n && newpoints[l + 1] != newpoints[l - ps + 1]) {\n for (m = 0; m < ps; ++m)\n newpoints[l + ps + m] = newpoints[l + m];\n newpoints[l + 1] = newpoints[l - ps + 1];\n }\n }\n\n datapoints.points = newpoints;\n }\n \n plot.hooks.processDatapoints.push(computeFillBottoms);\n }\n \n $.plot.plugins.push({\n init: init,\n options: options,\n name: 'fillbetween',\n version: '1.0'\n });\n})(jQuery);\n","/* Javascript plotting library for jQuery, version 0.8.3.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case\"mousedown\":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,\"mousemove mouseup\",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&\"mousemove\":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)max){var tmp=min;min=max;max=tmp}if(pr){if(pr[0]!=null&&minpr[1]){max=pr[1]}}var range=max-min;if(zr&&(zr[0]!=null&&range1||zr[1]!=null&&range>zr[1]&&amount<1))return;opts.min=min;opts.max=max});plot.setupGrid();plot.draw();if(!args.preventEvent)plot.getPlaceholder().trigger(\"plotzoom\",[plot,args])};plot.pan=function(args){var delta={x:+args.left,y:+args.top};if(isNaN(delta.x))delta.x=0;if(isNaN(delta.y))delta.y=0;$.each(plot.getAxes(),function(_,axis){var opts=axis.options,min,max,d=delta[axis.direction];min=axis.c2p(axis.p2c(axis.min)+d),max=axis.c2p(axis.p2c(axis.max)+d);var pr=opts.panRange;if(pr===false)return;if(pr){if(pr[0]!=null&&pr[0]>min){d=pr[0]-min;min+=d;max+=d}if(pr[1]!=null&&pr[1],\n *\n * // lineWidth\n * // default: 2\n * // The width of the dashed line in pixels.\n * lineWidth: ,\n *\n * // dashLength\n * // default: 10\n * // Controls the length of the individual dashes and the amount of\n * // space between them.\n * // If this is a number, the dashes and spaces will have that length.\n * // If this is an array, it is read as [ dashLength, spaceLength ]\n * dashLength: or \n * }\n * }\n * }\n */\n(function($){\n var options = {\n series: {\n dashes: {\n show: false,\n lineWidth: 2,\n dashLength: 10\n }\n }\n };\n function init(plot) {\n plot.hooks.drawSeries.push(function(plot, ctx, series) {\n if (!series.dashes.show) return;\n\n var plotOffset = plot.getPlotOffset(),\n axisx = series.xaxis,\n axisy = series.yaxis;\n\n function plotDashes(xoffset, yoffset) {\n\n var points = series.datapoints.points,\n ps = series.datapoints.pointsize,\n prevx = null,\n prevy = null,\n dashRemainder = 0,\n dashOn = true,\n dashOnLength,\n dashOffLength;\n\n if (series.dashes.dashLength[0]) {\n dashOnLength = series.dashes.dashLength[0];\n if (series.dashes.dashLength[1]) {\n dashOffLength = series.dashes.dashLength[1];\n } else {\n dashOffLength = dashOnLength;\n }\n } else {\n dashOffLength = dashOnLength = series.dashes.dashLength;\n }\n\n ctx.beginPath();\n\n for (var i = ps; i < points.length; i += ps) {\n\n var x1 = points[i - ps],\n y1 = points[i - ps + 1],\n x2 = points[i],\n y2 = points[i + 1];\n\n if (x1 == null || x2 == null) continue;\n\n // clip with ymin\n if (y1 <= y2 && y1 < axisy.min) {\n if (y2 < axisy.min) continue; // line segment is outside\n // compute new intersection point\n x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.min;\n } else if (y2 <= y1 && y2 < axisy.min) {\n if (y1 < axisy.min) continue;\n x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.min;\n }\n\n // clip with ymax\n if (y1 >= y2 && y1 > axisy.max) {\n if (y2 > axisy.max) continue;\n x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y1 = axisy.max;\n } else if (y2 >= y1 && y2 > axisy.max) {\n if (y1 > axisy.max) continue;\n x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;\n y2 = axisy.max;\n }\n\n // clip with xmin\n if (x1 <= x2 && x1 < axisx.min) {\n if (x2 < axisx.min) continue;\n y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.min;\n } else if (x2 <= x1 && x2 < axisx.min) {\n if (x1 < axisx.min) continue;\n y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.min;\n }\n\n // clip with xmax\n if (x1 >= x2 && x1 > axisx.max) {\n if (x2 > axisx.max) continue;\n y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x1 = axisx.max;\n } else if (x2 >= x1 && x2 > axisx.max) {\n if (x1 > axisx.max) continue;\n y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;\n x2 = axisx.max;\n }\n\n if (x1 != prevx || y1 != prevy) {\n ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);\n }\n\n var ax1 = axisx.p2c(x1) + xoffset,\n ay1 = axisy.p2c(y1) + yoffset,\n ax2 = axisx.p2c(x2) + xoffset,\n ay2 = axisy.p2c(y2) + yoffset,\n dashOffset;\n\n function lineSegmentOffset(segmentLength) {\n\n var c = Math.sqrt(Math.pow(ax2 - ax1, 2) + Math.pow(ay2 - ay1, 2));\n\n if (c <= segmentLength) {\n return {\n deltaX: ax2 - ax1,\n deltaY: ay2 - ay1,\n distance: c,\n remainder: segmentLength - c\n }\n } else {\n var xsign = ax2 > ax1 ? 1 : -1,\n ysign = ay2 > ay1 ? 1 : -1;\n return {\n deltaX: xsign * Math.sqrt(Math.pow(segmentLength, 2) / (1 + Math.pow((ay2 - ay1)/(ax2 - ax1), 2))),\n deltaY: ysign * Math.sqrt(Math.pow(segmentLength, 2) - Math.pow(segmentLength, 2) / (1 + Math.pow((ay2 - ay1)/(ax2 - ax1), 2))),\n distance: segmentLength,\n remainder: 0\n };\n }\n }\n //-end lineSegmentOffset\n\n do {\n\n dashOffset = lineSegmentOffset(\n dashRemainder > 0 ? dashRemainder :\n dashOn ? dashOnLength : dashOffLength);\n\n if (dashOffset.deltaX != 0 || dashOffset.deltaY != 0) {\n if (dashOn) {\n ctx.lineTo(ax1 + dashOffset.deltaX, ay1 + dashOffset.deltaY);\n } else {\n ctx.moveTo(ax1 + dashOffset.deltaX, ay1 + dashOffset.deltaY);\n }\n }\n\n dashOn = !dashOn;\n dashRemainder = dashOffset.remainder;\n ax1 += dashOffset.deltaX;\n ay1 += dashOffset.deltaY;\n\n } while (dashOffset.distance > 0);\n\n prevx = x2;\n prevy = y2;\n }\n\n ctx.stroke();\n }\n //-end plotDashes\n\n ctx.save();\n ctx.translate(plotOffset.left, plotOffset.top);\n ctx.lineJoin = 'round';\n\n var lw = series.dashes.lineWidth,\n sw = series.shadowSize;\n\n // FIXME: consider another form of shadow when filling is turned on\n if (lw > 0 && sw > 0) {\n // draw shadow as a thick and thin line with transparency\n ctx.lineWidth = sw;\n ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n // position shadow at angle from the mid of line\n var angle = Math.PI/18;\n plotDashes(Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2));\n ctx.lineWidth = sw/2;\n plotDashes(Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4));\n }\n\n ctx.lineWidth = lw;\n ctx.strokeStyle = series.color;\n\n if (lw > 0) {\n plotDashes(0, 0);\n }\n\n ctx.restore();\n\n });\n //-end draw hook\n }\n //-end init\n\n $.plot.plugins.push({\n init: init,\n options: options,\n name: 'dashes',\n version: '0.1'\n });\n\n})(jQuery);\n","/*\n * The MIT License\n\nCopyright (c) 2010,2011,2012, 2013 by Juergen Marsch\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n/*\n * Added changerequest from Thodoris Greasidis\n * It makes growing more \n */\n(function ($){\n \"use strict\";\n var pluginName = \"grow\", pluginVersion = \"0.4\";\n var options = {\n series: {\n grow: {\n active: false,\n stepDelay: 20,\n steps:100,\n growings:[\n {\n valueIndex: 1,\n stepMode: \"linear\",\n stepDirection: \"up\"\n } \n ]\n }\n }\n };\n function init(plot) {\n var done = false;\n var growfunc;\n var plt = plot;\n var data = null;\n var opt = null;\n var serie = null;\n var valueIndex;\n plot.hooks.bindEvents.push(processbindEvents);\n plot.hooks.drawSeries.push(processSeries);\n plot.hooks.shutdown.push(shutdown);\t\t\n function processSeries(plot, canvascontext, series){\n opt = plot.getOptions();\n valueIndex = opt.series.grow.valueIndex;\n if(opt.series.grow.active === true){\n if (done === false){\n data = plot.getData();\n data.actualStep = 0;\n data.growingIndex = 0;\n for (var j = 0; j < data.length; j++){\n data[j].dataOrg = clone(data[j].data);\n for (var i = 0; i < data[j].data.length; i++){ data[j].data[i][valueIndex] = 0;}\n }\n plot.setData(data);\n done = true;\n }\n }\n }\n function processbindEvents(plot,eventHolder){\n opt = plot.getOptions();\n if (opt.series.grow.active === true){\n var d = plot.getData();\n for (var j = 0; j < data.length; j++) {\n opt.series.grow.steps = Math.max(opt.series.grow.steps, d[j].grow.steps);\n }\n if(opt.series.grow.stepDelay === 0){ opt.series.grow.stepDelay++;}\n growingLoop();\n if (isPluginRegistered(\"resize\")) {\n plot.getPlaceholder().bind(\"resize\", onResize);\n }\n }\n }\n function growingLoop(){\n var growing, startTime = new Date(), timeDiff;\n if (data.actualStep < opt.series.grow.steps){\n data.actualStep++;\n for(var j = 0; j < data.length; j++){\n for(var g = 0; g < data[j].grow.growings.length; g++){\n growing = data[j].grow.growings[g];\n if (typeof growing.stepMode === \"function\"){\n growing.stepMode(data[j],data.actualStep,growing);\n }\n else{\n if (growing.stepMode === \"linear\"){ growLinear();}\n else if (growing.stepMode === \"maximum\"){ growMaximum();}\n else if (growing.stepMode === \"delay\"){ growDelay();}\n else{growNone();}\n }\n }\n }\n plt.setData(data);\n plt.draw();\n timeDiff = new Date() - startTime;\n growfunc = window.setTimeout(growingLoop, Math.max(0,opt.series.grow.stepDelay - timeDiff));\n }\n else{ window.clearTimeout(growfunc); growfunc = null; }\n function growNone(){\n if (data.actualStep === 1){\n for (var i = 0; i < data[j].data.length; i++){\n data[j].data[i][valueIndex] = data[j].dataOrg[i][growing.valueIndex];\n }\n }\n }\n function growLinear(){\n if (data.actualStep <= data[j].grow.steps){\n for (var i = 0; i < data[j].data.length; i++){\t\n if (growing.stepDirection === \"up\"){\t\n data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex] / data[j].grow.steps * data.actualStep;\n }\n else if(growing.stepDirection === \"down\"){\n data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex] + (data[j].yaxis.max - data[j].dataOrg[i][growing.valueIndex]) / data[j].grow.steps * (data[j].grow.steps - data.actualStep); \n }\n }\n }\n }\n function growMaximum(){\n if (data.actualStep <= data[j].grow.steps){\n for (var i = 0; i < data[j].data.length; i++){\n if (growing.stepDirection === \"up\"){\n data[j].data[i][growing.valueIndex] = Math.min(data[j].dataOrg[i][growing.valueIndex], data[j].yaxis.max / data[j].grow.steps * data.actualStep);\n }\n else if (growing.stepDirection === \"down\"){\n data[j].data[i][growing.valueIndex] = Math.max(data[j].dataOrg[i][growing.valueIndex], data[j].yaxis.max / data[j].grow.steps * (data[j].grow.steps - data.actualStep) ); \n }\n }\n }\n }\n function growDelay(){\n if (data.actualStep == data[j].grow.steps){\n for (var i = 0; i < data[j].data.length; i++){\n data[j].data[i][growing.valueIndex] = data[j].dataOrg[i][growing.valueIndex];\n }\n }\n }\n }\n function onResize() {\n if (growfunc) { window.clearTimeout(growfunc); growfunc = null; }\n }\n function shutdown(plot, eventHolder) {\n plot.getPlaceholder().unbind(\"resize\", onResize);\n }\n function isPluginRegistered(pluginName) {\n var plugins = $.plot.plugins;\n for (var i = 0, len = plugins.length; i < len; i++) {\n var plug = plugins[i];\n if (plug.name === pluginName) {\n return true;\n }\n }\n return false;\n }\n function clone(obj){\n if(obj === null || typeof(obj) !== 'object'){ return obj;}\n var temp = new obj.constructor();\n for(var key in obj){temp[key] = clone(obj[key]); }\n return temp;\n }\n }\n $.plot.plugins.push({\n init: init,\n options: options,\n name: pluginName,\n version: pluginVersion\n });\n})(jQuery);","(function(deparam){\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n var jquery = require('jquery');\n module.exports = deparam(jquery);\n } else if (typeof define === 'function' && define.amd){\n define(['jquery'], function(jquery){\n return deparam(jquery);\n });\n } else {\n var global\n try {\n global = (false || eval)('this'); // best cross-browser way to determine global for < ES5\n } catch (e) {\n global = window; // fails only if browser (https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives)\n }\n global.deparam = deparam(jQuery); // assume jQuery is in global namespace\n }\n})(function ($) {\n var deparam = function( params, coerce ) {\n var obj = {},\n coerce_types = { 'true': !0, 'false': !1, 'null': null };\n\n // Iterate over all name=value pairs.\n params.replace(/\\+/g, ' ').split('&').forEach(function(v){\n var param = v.split( '=' ),\n key = decodeURIComponent( param[0] ),\n val,\n cur = obj,\n i = 0,\n\n // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it\n // into its component parts.\n keys = key.split( '][' ),\n keys_last = keys.length - 1;\n\n // If the first keys part contains [ and the last ends with ], then []\n // are correctly balanced.\n if ( /\\[/.test( keys[0] ) && /\\]$/.test( keys[ keys_last ] ) ) {\n // Remove the trailing ] from the last keys part.\n keys[ keys_last ] = keys[ keys_last ].replace( /\\]$/, '' );\n\n // Split first keys part into two parts on the [ and add them back onto\n // the beginning of the keys array.\n keys = keys.shift().split('[').concat( keys );\n\n keys_last = keys.length - 1;\n } else {\n // Basic 'foo' style key.\n keys_last = 0;\n }\n\n // Are we dealing with a name=value pair, or just a name?\n if ( param.length === 2 ) {\n val = decodeURIComponent( param[1] );\n\n // Coerce values.\n if ( coerce ) {\n val = val && !isNaN(val) && ((+val + '') === val) ? +val // number\n : val === 'undefined' ? undefined // undefined\n : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null\n : val; // string\n }\n\n if ( keys_last ) {\n // Complex key, build deep object structure based on a few rules:\n // * The 'cur' pointer starts at the object top-level.\n // * [] = array push (n is set to array length), [n] = array if n is\n // numeric, otherwise object.\n // * If at the last keys part, set the value.\n // * For each keys part, if the current level is undefined create an\n // object or array based on the type of the next keys part.\n // * Move the 'cur' pointer to the next level.\n // * Rinse & repeat.\n for ( ; i <= keys_last; i++ ) {\n key = keys[i] === '' ? cur.length : keys[i];\n cur = cur[key] = i < keys_last\n ? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )\n : val;\n }\n\n } else {\n // Simple key, even simpler rules, since only scalars and shallow\n // arrays are allowed.\n\n if ( Object.prototype.toString.call( obj[key] ) === '[object Array]' ) {\n // val is already an array, so push on the next value.\n obj[key].push( val );\n\n } else if ( {}.hasOwnProperty.call(obj, key) ) {\n // val isn't an array, but since a second value has been specified,\n // convert val into an array.\n obj[key] = [ obj[key], val ];\n\n } else {\n // val is a scalar.\n obj[key] = val;\n }\n }\n\n } else if ( key ) {\n // No value was defined, so set something meaningful.\n obj[key] = coerce\n ? undefined\n : '';\n }\n });\n\n return obj;\n };\n $.prototype.deparam = $.deparam = deparam;\n return deparam;\n});\n","var months = {\n 'en': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'de': ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n 'ru': ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n 'es': ['Jan', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],\n 'fr': ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'it': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'pl': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n 'pt': ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', 'Out', 'Nov', 'Dez'],\n 'nl': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n};\nvar days = {\n 'en': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'de': ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n 'ru': ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'],\n 'es': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'fr': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'it': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'pl': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'pt': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n 'nl': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n};","//options: {\n// chartId: \n// titleId:\n// tooltipId:\n// cbOnZoom:\n// }\n\nfunction CustomChart(options, config, seriesData, markLines, ticks) {\n 'use strict';\n \n if (!(this instanceof CustomChart)) return new CustomChart(options, config, seriesData, markLines, ticks);\n \n this.chart = null;\n this.config = config;\n this.options = options;\n \n var that = this;\n var series;\n var markingsOffset = 0;\n var settings;\n var backgrounds = [\n ['#8e9eab', '#eef2f3'], // Portrait\n ['#517fa4', '#243949'], // Instagram\n ['#485563', '#29323c'], // ServQuick\n ['#abbaab', '#00ffff'], // Metallic Toad\n ['#ECE9E6', '#00ffff'], // Clouds\n ['#16222A', '#3A6073'], // Mirage\n ['#1F1C2C', '#928DAB'], // Steel Gray\n ['#003973', '#E5E5BE'], // Horizon\n ['#D1913C', '#FFD194'], // Koko Caramel\n ['#136a8a', '#267871'] // Turquoise flow\n ];\n\n function _yFormatter(y, line) {\n if (typeof y === 'boolean') return '' + y;\n var unit = that.config.l[line].unit ? ' ' + that.config.l[line].unit : '';\n if (that.config.l[line].afterComma !== undefined && that.config.l[line].afterComma !== null) {\n y = parseFloat(y);\n if (that.config.useComma) {\n return y.toFixed(that.config.l[line].afterComma).toString().replace('.', ',') + unit;\n } else {\n return y.toFixed(that.config.l[line].afterComma) + unit;\n }\n } else {\n if (that.config.useComma) {\n y = parseFloat(y);\n return y.toString().replace('.', ',') + unit;\n } else {\n return y + unit;\n }\n }\n }\n\n function _tickXFormatter(number, object) {\n if (ticks) return ' ';\n var now = new Date(parseInt(number, 10));\n if (that.config.timeFormatDate && that.config.timeFormatTime) {\n if (!object.ticks.length) {\n return '' + $.plot.formatDate(now, that.config.timeFormatDate, months[systemLang], days[systemLang]) + '';\n }\n var d = new Date(object.ticks[object.ticks.length - 1].v);\n if (d.getDate() !== now.getDate()) {\n return '' + $.plot.formatDate(now, that.config.timeFormatDate, months[systemLang], days[systemLang]) + '';\n }\n return $.plot.formatDate(now, that.config.timeFormatTime, months[systemLang], days[systemLang]);\n } else {\n return $.plot.formatDate(now, that.config.timeFormat, months[systemLang], days[systemLang]);\n }\n }\n\n function _tickYFormatter(number, object) {\n // If tickDecimals was specified, ensure that we have exactly that\n // much precision; otherwise default to the value's own precision.\n var afterComma = that.config.l[object.n - 1].afterComma;\n\n if (afterComma !== null && afterComma !== undefined) {\n var factor = afterComma ? Math.pow(10, afterComma) : 1;\n var formatted = (Math.round(number * factor) / factor).toString();\n var decimal = formatted.indexOf('.');\n var precision = decimal === -1 ? 0 : formatted.length - decimal - 1;\n\n if (precision < afterComma) {\n number = (precision ? formatted : formatted + '.') + factor.toString().substr(1, afterComma - precision);\n } else {\n number = formatted;\n }\n }\n\n if (that.config.useComma) number = number.toString().replace('.', ',');\n\n var unit = that.config.l[object.n - 1].unit;\n\n return number + (unit ? (' ' + unit) : '');\n }\n\n function showLabels (animation) {\n if (that.config.barLabels) {\n setTimeout(function () {\n var data = that.chart.getData();\n\n for (var d = 0; d < data.length; d++) {\n if (!that.config.l[d] || that.config.l[d].chartType !== 'bar') continue;\n\n $.each(data[d].data, function (i, el) {\n if (el[1] === null) return;\n if (!i) return;\n if (i === data[d].data.length - 1) return;\n var o;\n if (that.config.barLabels === 'topover') {\n o = that.chart.pointOffset({x: el[0], y: el[1]});\n o.top -= 20;\n } else if (that.config.barLabels === 'topunder') {\n o = that.chart.pointOffset({x: el[0], y: el[1]});\n //o.top += 10;\n } else if (that.config.barLabels === 'bottom') {\n o = that.chart.pointOffset({x: el[0], y: 0});\n o.top += 20;\n } else {//if (that.config.barLabels === 'middle') {\n o = that.chart.pointOffset({x: el[0], y: el[1] / 2});\n }\n\n $('
' + _yFormatter(el[1], d) + '
').css({\n position: 'absolute',\n left: o.left,\n top: o.top\n }).appendTo(that.chart.getPlaceholder());\n });\n }\n if (that.config.barFontSize || that.config.barFontColor) {\n $('.data-point-label').css({\n 'font-size': that.config.barFontSize || undefined,\n color: that.config.barFontColor || undefined\n });\n }\n\n }, animation ? parseInt(animation) + 200 : 0);\n }\n\n if (markLines && markLines.length) {\n setTimeout(function () {\n var data = that.chart.getData();\n var num = 0;\n for (var m = 0; m < markLines.length; m++) {\n if (markLines[m].d && data[markLines[m].l + markingsOffset]) {\n var line = data[num].data;\n var o;\n var text;\n if (markLines[m].p === 'l') {\n o = that.chart.pointOffset({x: line[0][0], y: line[0][1], yaxis: data[markLines[m].l + markingsOffset].yaxis, xaxis: data[markLines[m].l + markingsOffset].xaxis});\n o.top -= markLines[m].py;\n text = markLines[m].d;\n } else {//if (markLines[m].p === 'r') {\n o = that.chart.pointOffset({x: line[1][0], y: line[1][1], yaxis: data[markLines[m].l + markingsOffset].yaxis, xaxis: data[markLines[m].l + markingsOffset].xaxis});\n o.top -= markLines[m].py;\n text = '
' + markLines[m].d + '
';\n }\n $('
' + text + '
').css({\n position: 'absolute',\n left: o.left,\n top: o.top,\n 'font-size': markLines[m].fs || undefined,\n color: markLines[m].fc || undefined\n }).appendTo(that.chart.getPlaceholder());\n }\n if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {\n num++;\n }\n num++;\n }\n }, animation ? parseInt(animation) + 200 : 0);\n }\n }\n\n (function _constructor () {\n series = [];\n var smoothing = false;\n var $title = $('#' + that.options.titleId);\n\n if (that.config.title && !$title.html()) {\n $title.html(that.config.titlePos ? decodeURI(that.config.title) : '');\n if (that.config.titleColor) $title.css('color', that.config.titleColor);\n if (that.config.titleSize) $title.css('font-size', that.config.titleSize);\n if (that.config.titlePos) {\n var parts = that.config.titlePos.split(';');\n var css = {};\n for (var t = 0; t < parts.length; t++) {\n var p = parts[t].split(':');\n\n // Bottom inside\n if (p[0] === 'bottom' && p[1] == '5') {\n if (that.config.height.indexOf('%') === -1) {\n css.top = parseInt(that.config.height, 10) - $title.height() - 45;\n } else {\n css.top = 'calc(' + that.config.height + ' - ' + ($title.height() + 45) + 'px)';\n }\n } else\t// Bottom outside\n if (p[0] === 'bottom' && p[1] == '-5') {\n if (that.config.height.indexOf('%') === -1) {\n css.top = parseInt(that.config.height, 10) + 5;\n } else {\n css.top = 'calc(' + that.config.height + ' + 5px)';\n }\n } else\t// Middle\n if (p[0] === 'top' && p[1] == '50') {\n if (that.config.height.indexOf('%') === -1) {\n css.top = (parseInt(that.config.height, 10) - $title.height()) / 2;\n } else {\n css.top = 'calc(50% - ' + ($title.height() / 2) + 'px)';\n }\n } else\t// Center\n if (p[0] === 'left' && p[1] == '50') {\n if (that.config.width.indexOf('%') === -1) {\n css.left = (parseInt(that.config.width, 10) - $title.width()) / 2;\n } else {\n css.left = 'calc(50% - ' + ($title.width() / 2) + 'px)';\n }\n } else\t// Right inside\n if (p[0] === 'right' && p[1] == '5') {\n if (that.config.width.indexOf('%') === -1) {\n css.left = parseInt(that.config.width, 10) - $title.width() - 45;\n } else {\n css.left = 'calc(' + that.config.width + ' - ' + ($title.width() + 45) + 'px)';\n }\n } else\t// Right outside\n if (p[0] === 'right' && p[1] == '-5') {\n if (that.config.width.indexOf('%') === -1) {\n css.left = parseInt(that.config.width, 10) + 25;\n } else {\n css.left = 'calc(' + that.config.width + ' + 5px)';\n }\n } else {\n css[p[0]] = p[1];\n }\n }\n\n $title.css(css);\n }\n }\n\n // Replace background\n if (that.config.bg && that.config.bg.length < 3 && backgrounds[that.config.bg]) that.config.bg = {colors: backgrounds[that.config.bg]};\n\n markingsOffset = 0;\n // draw horizontal lines\n if (markLines && markLines.length) {\n for (var m = 0; m < markLines.length; m++) {\n markingsOffset++;\n markLines[m].v = parseFloat(markLines[m].v) || 0; // value\n markLines[m].l = parseInt(markLines[m].l) || 0; // line number\n markLines[m].s = parseFloat(markLines[m].s) || 0; // shadow size\n markLines[m].t = parseFloat(markLines[m].t) || 0; // line width\n markLines[m].py = parseFloat(markLines[m].py) || 0; // y offset of label\n series.push({\n id: 'line' + m,\n xaxis: {show: false},\n color: markLines[m].c || undefined,\n lines: {\n show: true,\n fill: markLines[m].f === '1' || markLines[m].f === 1 || markLines[m].f === 'true' || markLines[m].f === true,\n steps: true,\n lineWidth: markLines[m].t\n },\n data: [[0, markLines[m].v], [100, markLines[m].v]],\n label: '__hide_me__',\n shadowSize: markLines[m].s\n });\n // if lower value set\n if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {\n markingsOffset++;\n markLines[m].vl = parseFloat(markLines[m].vl) || 0;\n series.push({\n xaxis: {show: false},\n color: markLines[m].c || undefined,\n lines: {\n show: true,\n fill: true,\n steps: true,\n lineWidth: markLines[m].t\n },\n data: [[0, markLines[m].vl], [100, markLines[m].vl]],\n fillBetween: 'line' + m,\n label: '__hide_me__',\n shadowSize: markLines[m].s\n });\n }\n }\n }\n\n //todo make bar working\n// if (that.config.renderer !== 'bar' || that.config._ids.length <= 1) {\n var xMin = Infinity;\n var xMax = 0;\n for (var i = 0; i < seriesData.length; i++) {\n if (seriesData[i] && that.config.l[i]) {\n\n that.config.l[i].chartType = that.config.l[i].chartType || that.config.chartType || 'line';\n that.config.l[i].dashes = that.config.l[i].dashes === true || that.config.l[i].dashes === 'true';\n that.config.l[i].dashLength = parseFloat(that.config.l[i].dashLength) || 10;\n that.config.l[i].spaceLength = parseFloat(that.config.l[i].spaceLength) || 10;\n var isLine = that.config.l[i].chartType !== 'scatterplot' && that.config.l[i].chartType !== 'bar' && that.config.l[i].chartType !== 'spline';\n\n var option = {\n color: that.config.l[i].color || undefined,\n lines: {\n show: (!that.config.l[i].dashes && isLine),\n fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : (that.config.l[i].chartType === 'area' || that.config.l[i].chartType === 'bar'),\n steps: (that.config.l[i].chartType === 'steps'),\n lineWidth: that.config.l[i].thickness\n },\n splines: {\n show: (that.config.l[i].chartType === 'spline'),\n tension: 0.5, //(float between 0 and 1, defaults to 0.5),\n lineWidth: that.config.l[i].thickness,\n fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : false //(float between 0 .. 1 or false, as in flot documentation)\n },\n bars: {\n show: (that.config.l[i].chartType === 'bar'),\n order: i + 1,\n barWidth: 0.6,\n lineWidth: that.config.l[i].thickness,\n fill: (that.config.l[i].fill && that.config.l[i].fill !== '0') ? parseFloat(that.config.l[i].fill) : false,\n fillColor: that.config.barColor || undefined,\n align: 'center'\n },\n points: {\n show: (that.config.l[i].chartType === 'lineplot' || that.config.l[i].chartType === 'scatterplot' || that.config.l[i].points === 'true' || that.config.l[i].points === true)\n },\n data: seriesData[i],\n label: that.config.l[i].name,\n shadowSize: that.config.l[i].shadowsize,\n dashes: {\n show: that.config.l[i].dashes && isLine,\n lineWidth: that.config.l[i].thickness,\n dashLength: [that.config.l[i].dashLength, that.config.l[i].spaceLength]\n }\n };\n\n if ((that.config.smoothing && that.config.smoothing > 0) || (that.config.l[i].smoothing && that.config.l[i].smoothing > 0)) {\n smoothing = true;\n that.config.l[i].smoothing = parseInt(that.config.l[i].smoothing || that.config.smoothing);\n option.data = avg(option.data, that.config.l[i].smoothing);\n } else {\n that.config.l[i].smoothing = 0;\n }\n\n that.config.l[i].afterComma = (that.config.l[i].afterComma === undefined || that.config.l[i].afterComma === '') ? that.config.afterComma : parseInt(that.config.l[i].afterComma, 10);\n\n if (that.config.l[i].chartType === 'bar') {\n option.bars.barWidth = (option.data[option.data.length - 1][0] - option.data[0][0]) / option.data.length * (parseFloat(that.config.barWidth) || 0.5);\n }\n /*\n if (that.config.l[i].chartType === 'pie') {\n series.legend = {\n show: !!that.config.legend,\n position: that.config.legend\n };\n } else if (that.config.l[i].chartType === 'bar') {\n var series = {\n series: {\n bars: {\n show: that.config.l[i].chartType === 'bar',\n barWidth: 0.6,\n align: \"center\"\n },\n pie: {\n show: that.config.l[i].chartType === 'pie'\n },\n legend: {\n show: !!that.config.legend,\n position: that.config.legend\n }\n }\n };\n */\n\n series.push(option);\n\n if (seriesData[i][0][0] < xMin) xMin = seriesData[i][0][0];\n if (seriesData[i][seriesData[i].length - 1][0] > xMax) xMax = seriesData[i][seriesData[i].length - 1][0];\n }\n }\n\n\n if (that.config.min === null || that.config.min === undefined || that.config.min === '' || that.config.min.toString() === 'NaN') {\n that.config.min = undefined;\n } else {\n that.config.min = parseFloat(that.config.min);\n }\n\n if (that.config.noBorder) {\n if (!that.config.width) that.config.width = '100%';\n if (!that.config.height) that.config.height = '100%';\n\n if (that.config.width.indexOf('%') !== -1) {\n $('#chart_container').css({width: 'calc(' + that.config.width + ' - 20px)'}); // original 20px\n } else {\n $('#chart_container').css({width: that.config.width});\n }\n if (that.config.height.indexOf('%') !== -1) {\n $('#chart_container').css({height: 'calc(' + that.config.height + ' - 20px)'});// original 20px\n } else {\n $('#chart_container').css({height: that.config.height});\n }\n\n } else {\n $('#chart_container').addClass('chart-container').css({width: that.config.width, height: that.config.height});\n// $('#chart_container').css({'padding-bottom':\"100px\"})\n }\n\n if (that.config.timeFormat === 'null') that.config.timeFormat = undefined;\n\n if (that.config.timeFormat) {\n if (that.config.timeFormat.indexOf('%H:%M:%S') !== -1) {\n that.config.timeFormatTime = '%H:%M:%S';\n } else if (that.config.timeFormat.indexOf('%I:%M:%S') !== -1) {\n that.config.timeFormatTime = '%I:%M:%S';\n } else if (that.config.timeFormat.indexOf('%H:%M.') !== -1) {\n that.config.timeFormatTime = '%H:%M.';\n } else if (that.config.timeFormat.indexOf('%H:%M') !== -1) {\n that.config.timeFormatTime = '%H:%M';\n } else {\n that.config.timeFormatTime = null;\n }\n if (that.config.timeFormat.indexOf('%d.%m.%y') !== -1) {\n that.config.timeFormatDate = '%d.%m.%y';\n } else if (that.config.timeFormat.indexOf('%x %p') !== -1) {\n that.config.timeFormatDate = '%x %p';\n } else if (that.config.timeFormat.indexOf('%d/%m/%y') !== -1) {\n that.config.timeFormatDate = '%d/%m/%y';\n } else if (that.config.timeFormat.indexOf('%m.%d.%y') !== -1) {\n that.config.timeFormatDate = '%m.%d.%y';\n } else if (that.config.timeFormat.indexOf('%d.%m') !== -1) {\n that.config.timeFormatDate = '%d.%m';\n } else if (that.config.timeFormat.indexOf('%a') !== -1) {\n that.config.timeFormatDate = '%a';\n } else {\n that.config.timeFormatDate = null;\n }\n }\n\n settings = {\n grid: {\n hoverable: (that.config.hoverDetail === 'true' || that.config.hoverDetail === true),\n backgroundColor: that.config.bg || undefined,\n borderWidth: (!that.config.border_width && that.config.border_width !== '0' && that.config.border_width !== 0) ? undefined : parseInt(that.config.border_width, 10),\n borderColor: that.config.border_color || undefined\n },\n yaxes: [],\n xaxes: [],\n legend: {\n show: !!that.config.legend,\n position: that.config.legend,\n hideable: true,\n noColumns: parseInt(that.config.legColumns, 10) || undefined,\n backgroundColor: that.config.legBg || undefined,\n backgroundOpacity: that.config.legBgOpacity !== undefined ? parseFloat(that.config.legBgOpacity) : 0.85,\n labelFormatter: function (label, series) {\n if (label === '__hide_me__') return null;\n return '' + label + '';\n }\n }\n };\n\n if (that.config.zoom) {\n settings.zoom = {\n interactive: true,\n trigger: 'dblclick', // or \"click\" for single click\n amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n };\n settings.pan = {\n interactive: true,\n cursor: 'move', // CSS mouse cursor value used when dragging, e.g. \"pointer\"\n frameRate: 20\n };\n }\n\n var steps = that.config.animation < 1000 ? 20 : 50;\n\n var ii;\n for (ii = 0; ii < that.config.l.length; ii++) {\n\n that.config.l[ii].yaxe = that.config.l[ii].yaxe || '';\n that.config.l[ii].xaxe = that.config.l[ii].xaxe || '';\n that.config.l[ii].commonYAxis = that.config.l[ii].commonYAxis || '';\n\n var yaxi = {\n show: that.config.l[ii].yaxe !== 'off',\n min: (that.config.l[ii].min !== '' && that.config.l[ii].min !== null && that.config.l[ii].min !== undefined) ? parseFloat(that.config.l[ii].min) : undefined,\n max: (that.config.l[ii].max !== '' && that.config.l[ii].max !== null && that.config.l[ii].max !== undefined) ? parseFloat(that.config.l[ii].max) : undefined,\n position: that.config.l[ii].yaxe.indexOf('left') > -1 ? 'left' : 'right',\n font: {\n color: that.config.l[ii].yaxe.indexOf('Color') > -1 ? that.config.l[ii].color : (that.config.y_labels_color || 'black')\n },\n zoomRange: false, // or [ number, number ] (min range, max range) or false\n panRange: false, // or [ number, number ] (min, max) or false\n // to do\n /*{\n size: 11,\n lineHeight: 13,\n style: \"italic\",\n weight: \"bold\",\n family: \"sans-serif\",\n variant: \"small-caps\",\n color: \"#545454\"\n }*/\n ticks: parseInt(that.config.l[ii].yticks, 10) || undefined,\n tickColor: that.config.grid_color || undefined,\n tickFormatter: _tickYFormatter\n };\n\n var xaxi = {\n show: that.config.l[ii].xaxe !== 'off',\n position: that.config.l[ii].xaxe.indexOf('top') !== -1 ? 'top' : 'bottom',\n font: {\n color: that.config.l[ii].xaxe.indexOf('Color') !== -1 ? that.config.l[ii].color : (that.config.x_labels_color || 'black')\n },\n zoomRange: null, // or [ number, number ] (min range, max range) or false\n panRange: null, // or [ number, number ] (min, max) or false\n mode: 'time',\n //timeformat: that.config.timeFormat,\n //timezone: \"browser\",\n tickFormatter: that.config.timeFormat ? _tickXFormatter : null,\n minTickSize: (that.config.l[ii].chartType === 'bar') ? series[ii + markingsOffset].bars.barWidth : undefined,\n tickColor: that.config.grid_color || undefined,\n ticks: parseInt(that.config.l[ii].xticks, 10) || undefined,\n min: undefined,\n max: undefined\n };\n\n // prepare for bar\n if (that.config.l[ii].chartType === 'bar') {\n settings.legend.hideable = false;\n\n xaxi.ticks = [];\n for (var m = 0; m < seriesData[ii].length; m++) {\n xaxi.ticks.push(seriesData[ii][m][0]);\n // Normally first and last points are invalid\n }\n seriesData[ii][0][1] = null;\n seriesData[ii][seriesData[ii].length - 1][1] = null;\n } else if (ticks) {\n xaxi.ticks = ticks;\n }\n\n if (that.config.zoom) {\n var now = new Date();\n xaxi.zoomRange = [null, now.getTime()]; // or [ number, number] (min range, max range) or false\n xaxi.panRange = [null, now.getTime()]; // or [ number, number] (min range, max range) or false\n }\n\n settings.yaxes.push(yaxi);\n settings.xaxes.push(xaxi);\n\n // Support for commonYAxis\n if (that.config.l[ii].commonYAxis !== '') {\n series[ii + markingsOffset].yaxis = parseInt(that.config.l[ii].commonYAxis);\n } else {\n series[ii + markingsOffset].yaxis = ii + 1;\n }\n series[ii + markingsOffset].xaxis = ii + 1;\n\n series[ii + markingsOffset].curvedLines = {\n apply: !!that.config.l[ii].smoothing,\n active: !!that.config.l[ii].smoothing,\n monotonicFit: true\n };\n }\n\n // set yaxis\n if (markLines && markLines.length) {\n var num = 0;\n for (var mm = 0; mm < markLines.length; mm++) {\n if (series[markLines[mm].l + markingsOffset]) {\n markLines[mm].l = parseInt(markLines[mm].l, 10);\n series[num].yaxis = series[markLines[mm].l + markingsOffset].yaxis;\n series[num].data[0][0] = xMin;\n series[num].data[1][0] = xMax;\n num++;\n // if lower value set\n if (markLines[mm].vl !== '' && markLines[mm].vl !== null && markLines[mm].vl !== undefined) {\n series[num].yaxis = series[markLines[mm].l + markingsOffset].yaxis;\n series[num].data[0][0] = xMin;\n series[num].data[1][0] = xMax;\n num++;\n }\n }\n }\n }\n\n if (smoothing) {\n settings.series = settings.series || {};\n settings.series.curvedLines = {\n apply: true,\n active: true,\n monotonicFit: true\n };\n }\n if (that.config.animation) {\n settings.series = settings.series || {};\n settings.series.grow = {\n active: true,\n steps: steps,\n stepDelay: that.config.animation / steps\n };\n }\n\n // hiddengraphs overload the labelFormatter, so we should overload the hiddengraphs\n $.plot.plugins.push({\n init: function (plot) {\n plot.hooks.processOptions.push(function checkOptions(plot, options) {\n if (!options.legend.hideable) {\n return;\n }\n\n options.legend.labelFormatter = function(label, series) {\n if (label === '__hide_me__') return null;\n return '' + label + '';\n };\n });\n },\n options: options,\n name: 'hiddenGraphsEx',\n version: '1.0'\n });\n\n that.chart = $.plot('#' + that.options.chartId, series, settings);\n\n showLabels(that.config.animation);\n\n var $div = $('#' + that.options.chartId);\n\n that.options.tooltipId = that.options.tooltipId || 'tooltip';\n\n // Hoover\n if (that.config.hoverDetail === 'true' || that.config.hoverDetail === true) {\n $div.unbind('plothover').bind('plothover', function (event, pos, item) {\n if (item) {\n var x = item.datapoint[0].toFixed(2);\n var y;\n\n if (that.config.l[item.seriesIndex - markingsOffset].type === 'boolean') {\n y = !!Math.round(item.datapoint[1] - that.config.l[item.seriesIndex - markingsOffset].yOffset);\n } else {\n y = (item.datapoint[1] - that.config.l[item.seriesIndex - markingsOffset].yOffset).toFixed(2);\n }\n\n var text = item.series.label ? item.series.label + '
' : '';\n text += $.plot.formatDate(new Date(parseInt(x, 10)), that.config.timeFormat) + '
';\n text += '' + _yFormatter(y, item.seriesIndex - markingsOffset) + '';\n\n var $tooltip = $('#' + that.options.tooltipId).html(text);\n if ($(this).height() - item.pageY < $tooltip.height()) {\n item.pageY -= 10 + $tooltip.height();\n }\n if ($(this).width() - item.pageX < $tooltip.width()) {\n item.pageX -= 10 + $tooltip.width();\n }\n $tooltip.css({top: item.pageY + 5, left: item.pageX + 5}).fadeIn(200);\n } else {\n $('#tooltip').hide();\n }\n });\n\n if (!$('#' + that.options.tooltipId).length) {\n $('
').css({\n position: 'absolute',\n display: 'none',\n border: '1px solid #fdd',\n padding: '2px',\n 'background-color': '#fee',\n opacity: 0.80\n }).appendTo('body');\n }\n }\n\n if (that.config.zoom && that.options.cbOnZoom) {\n $div.unbind('plotzoom').bind('plotzoom', function (e, plot, args) {\n if (that.zoomTimeout) clearTimeout(that.zoomTimeout);\n that.zoomTimeout = setTimeout(that.options.cbOnZoom, 500);\n }).unbind('plotpan').bind('plotpan', function (e, plot, args) {\n if (that.zoomTimeout) clearTimeout(that.zoomTimeout);\n that.zoomTimeout = setTimeout(that.options.cbOnZoom, 500);\n })\n }\n })();\n\n this.update = function (newSeriesData, newMarkingsData, newTicks) {\n if (newSeriesData) {\n var xMin = Infinity;\n var xMax = 0;\n\n for (var index = 0; index < config.l.length; index++) {\n series[index + markingsOffset].data = newSeriesData[index];\n if (newSeriesData[index][0][0] < xMin) xMin = newSeriesData[index][0][0];\n if (newSeriesData[index][newSeriesData[index].length - 1][0] > xMax) xMax = newSeriesData[index][newSeriesData[index].length - 1][0];\n\n // prepare for bar\n if (config.l[index].chartType === 'bar') {\n settings.xaxes[index].ticks = [];\n for (var m = 0; m < newSeriesData[index].length; m++) {\n settings.xaxes[index].ticks.push(newSeriesData[index][m][0]);\n }\n // Normally first and last points are invalid\n newSeriesData[index][0][1] = null;\n newSeriesData[index][newSeriesData[index].length - 1][1] = null;\n }\n }\n\n // update xmin and xmax\n if (markLines && markLines.length) {\n var num_ = 0;\n for (var m = 0; m < markLines.length; m++) {\n series[num_].data[0][0] = xMin;\n series[num_].data[1][0] = xMax;\n num_++;\n // if lower value set\n if (markLines[m].vl !== '' && markLines[m].vl !== null && markLines[m].vl !== undefined) {\n series[num_].data[0][0] = xMin;\n series[num_].data[1][0] = xMax;\n num_++;\n }\n }\n }\n\n $('.data-point-label').remove();\n $('.marklines-label').remove();\n\n if (settings.series && settings.series.grow) settings.series.grow.active = false;\n }\n if (newMarkingsData) {\n if (newMarkingsData && newMarkingsData.length) {\n var num = 0;\n for (var mm = 0; mm < newMarkingsData.length; mm++) {\n series[num].data[0][1] = newMarkingsData[mm].v;\n series[num].data[1][1] = newMarkingsData[mm].v;\n num++;\n // if lower value set\n if (newMarkingsData[mm].vl !== '' && newMarkingsData[mm].vl !== null && newMarkingsData[mm].vl !== undefined) {\n series[num].data[0][1] = newMarkingsData[mm].vl;\n series[num].data[1][1] = newMarkingsData[mm].vl;\n num++;\n }\n }\n }\n }\n this.chart = $.plot('#' + this.options.chartId, series, settings);\n showLabels(false);\n };\n\n this.getRange = function () {\n var opt = this.chart.getOptions();\n var result = [];\n for (var index = 0; index < opt.xaxes.length; index++) {\n result[index] = {\n min: Math.round(opt.xaxes[index].min),\n max: Math.round(opt.xaxes[index].max)\n };\n settings.xaxes[index].max = result[index].max;\n settings.xaxes[index].min = result[index].min;\n }\n return result;\n };\n\n this.setRange = function (minMaxArr) {\n for (var index = 0; index < settings.xaxes.length; index++) {\n settings.xaxes[index].min = minMaxArr[index].min;\n settings.xaxes[index].max = minMaxArr[index].max;\n }\n };\n\n this.resetZoom = function (time) {\n time = time || new Date();\n for (var index = 0; index < settings.xaxes.length; index++) {\n settings.xaxes[index].zoomRange = [null, time.getTime()];\n settings.xaxes[index].panRange = [null, time.getTime()];\n }\n };\n\n this.zoom = function (positionX, amount) {\n var offset = this.chart.offset();\n this.chart.zoom({\n center: {\n left: positionX - offset.left,\n height: this.chart.height() / 2\n },\n amount: amount\n });\n };\n\n this.pan = function (positionX) {\n this.chart.pan({left: positionX, top: 0});\n };\n\n return this;\n}\n\n\n\n","'use strict';\n\n// Show \"no connection\" message after 5 seconds\nvar disconnectTimeout = setTimeout(function () {\n disconnectTimeout = null;\n //Show disconnected message\n $('#no-connection').show();\n}, 5000);\n\nvar sessionId = 1;\n// Analyse query\nvar path = location.href.split('?')[1];\n\nvar systemLang = 'en';\nif (typeof sysLang !== 'undefined') {\n systemLang = sysLang || 'en';\n}\n\n\n// convert old format to new one\n// OLD: http://localhost:8082/flot/index.html?range=1440&renderer=line&axeX=l&axeY=inside&_ids=system.adapter.admin.0.memRss%2Csystem.adapter.email.0.memRss&_colors=%23c05020%3B%2330c020%3B%236060c0\n// NEW: http://localhost:8082/flot/index.html?l%5B0%5D%5Bid%5D=system.adapter.admin.0.memRss&l%5B0%5D%5Boffset%5D=0&l%5B0%5D%5Baggregate%5D=average&l%5B0%5D%5Bcolor%5D=%23FF0000&l%5B0%5D%5Bthickness%5D=3&l%5B1%5D%5Bid%5D=system.adapter.email.0.memRss&l%5B1%5D%5Boffset%5D=0&l%5B1%5D%5Bart%5D=average&l%5B1%5D%5Bcolor%5D=%2300FF00&l%5B1%5D%5Bthickness%5D=3&timeType=relative&relativeEnd=now&range=10&aggregateType=step&aggregateSpan=300&legend=sw\n// OLD =>\n//{\n// _colors: \"#c05020;#30c020;#6060c0\"\n// _ids: \"system.adapter.admin.0.memRss,system.adapter.email.0.memRss\"\n// axeX: \"lines\"\n// axeY: \"inside\"\n// range: \"1440\"\n// renderer: \"line\"\n//}\n// NEW =>\n//{\n// \"l\" : [\n// {\n// \"id\" : \"system.adapter.admin.0.memRss\",\n// \"offset\" : \"0\",\n// \"aggregate\" : \"minmax\",\n// \"color\" : \"#FF0000\",\n// \"thickness\" : \"3\"\n// }, {\n// \"id\" : \"system.adapter.email.0.memRss\",\n// \"offset\" : \"0\",\n// \"aggregate\" : \"minmax\",\n// \"color\" : \"#00FF00\",\n// \"thickness\" : \"3\"\n// }\n// ],\n// \"timeType\" : \"relative\",\n// \"relativeEnd\" : \"now\",\n// \"range\" : \"10\",\n// \"aggregateType\" : \"step\",\n// \"aggregateSpan\" : \"300\",\n// \"legend\" : \"sw //}\n\nvar config = deparam(path || '');\n\nif (config.lines) {\n config.l = JSON.parse(JSON.stringify(config.lines));\n delete config.lines;\n}\n\nif (config._ids) {\n var ids = config._ids ? config._ids.split(';') : [];\n var colors = config._colors ? config._colors.split(';') : [];\n var names = config._names ? config._names.split(';') : [];\n var units = config._units ? config._units.split(';') : [];\n config.l = [];\n for (var i = 0; i < ids.length; i++) {\n config.l.push({\n id: ids[i],\n offset: 0,\n name: names[i] || '',\n aggregate: 'onchange',\n color: colors[i] || 'blue',\n thickness: config.strokeWidth || 1,\n shadowsize: config.strokeWidth || 1,\n min: config.min || '',\n max: config.max || '',\n unit: units[i] || ''\n });\n }\n config.aggregateType = 'step';\n config.aggregateSpan = 300;\n config.relativeEnd = 'now';\n}\n\n// convert art to aggregate\nif (config.l) {\n for (var j = 0; j < config.l.length; j++) {\n if (config.l[j].art) {\n config.l[j].aggregate = config.l[j].art;\n delete config.l[j].art;\n }\n if (config.instance && !config.l[j].instance) {\n config.l[j].instance = config.instance;\n }\n }\n}\n\n// Set default values\nconfig.width = config.width || '100%';\nconfig.height = config.height || '100%';\nconfig.timeFormat = config.timeFormat || '%H:%M:%S %e.%m.%y';\nconfig.useComma = config.useComma === 'true' || config.useComma === true;\nconfig.zoom = config.zoom === 'true' || config.zoom === true;\nconfig.animation = parseInt(config.animation) || 0;\nconfig.noedit = config.noedit === 'true' || config.noedit === true;\nconfig.afterComma = (config.afterComma === undefined) ? 2 : parseInt(config.afterComma, 10);\nconfig.timeType = config.timeArt || config.timeType || 'relative';\n// if ((config.max !== undefined && config.max !== '' && config.max !== null && parseFloat(config.max) != NaN)) config.max = parseFloat(config.max);\nvar seriesData = [];\nvar ticks = null;\nvar liveInterval;\n\nvar navOptions = {};\nvar socketURL = '';\nvar socketSESSION = '';\nvar now = new Date();\nvar divId = 'chart_placeholder';\n\n// for zoom\nvar zoomTimeout = null;\nvar lastX = null;\nvar mouseDown = false;\nvar lastWidth = null;\nvar chart = null;\n\nvar isApp = false;\nvar subscribes = [];\nvar subscribed = false;\n// because of security issue\ntry {\n if ((window.top !== window.self) && (typeof window.top.app !== 'undefined') && (typeof window.top.socketUrl !== 'undefined')) {\n isApp = true;\n }\n} catch (e) {\n\n}\n\nif (isApp) {\n\tsocketURL = window.top.socketUrl; // if flot runs in iframe inside the app use the socketURL determined by app.js\n} else {\n\tif (typeof socketUrl !== 'undefined') {\n\t\tsocketURL = socketUrl;\n\t\tif (socketURL && socketURL[0] === ':') {\n\t\t\tsocketURL = location.protocol + '//' + location.hostname + socketURL;\n\t\t}\n\t\tsocketSESSION = socketSession;\n\t}\n}\nvar socket = io.connect(socketURL, {\n 'query': 'key=' + socketSESSION,\n 'reconnection limit': 10000,\n 'max reconnection attempts': Infinity,\n upgrade: typeof socketForceWebSockets !== 'undefined' ? !socketForceWebSockets : undefined,\n rememberUpgrade: typeof socketForceWebSockets !== 'undefined' ? socketForceWebSockets : undefined,\n transports: typeof socketForceWebSockets !== 'undefined' ? (socketForceWebSockets ? ['websocket'] : undefined) : undefined\n});\n\nsocket.on('connect', function () {\n if (disconnectTimeout) {\n $('#no-connection').hide();\n clearTimeout(disconnectTimeout);\n disconnectTimeout = null;\n }\n setTimeout(function () {\n socket.emit('name', 'flot');\n }, 50);\n\n setTimeout(function () {\n readData();\n }, 100);\n});\n\nsocket.on('stateChange', function (id, state) {\n if (!chart || !config || !config.m) return;\n console.log(id + ' - ' + state.val);\n for (var m = 0; m < config.m.length; m++) {\n if (config.m[m].oid === id) {\n config.m[m].v = parseFloat(state.val) || 0;\n }\n if (config.m[m].oidl === id) {\n config.m[m].vl = parseFloat(state.val) || 0;\n }\n }\n chart.update(null, config.m);\n});\n\nif (config.window_bg) $('body').css('background', config.window_bg);\n\nsocket.on('disconnect', function () {\n if (!disconnectTimeout) {\n disconnectTimeout = setTimeout(function () {\n disconnectTimeout = null;\n //Show disconnected message\n $('#no-connection').show();\n }, 5000);\n }\n});\n\nfunction addTime(time, offset, plusOrMinus, isOffsetInMinutes) {\n time = new Date(time);\n\n if (typeof offset === 'string') {\n if (offset[1] === 'm') {\n offset = parseInt(offset, 10);\n time.setMonth(plusOrMinus ? time.getMonth() + offset : time.getMonth() - offset);\n time = time.getTime();\n } else if (offset[1] === 'y') {\n offset = parseInt(offset, 10);\n time.setFullYear(plusOrMinus ? time.getFullYear() + offset : time.getFullYear() - offset);\n time = time.getTime();\n } else {\n time = time.getTime();\n if (isOffsetInMinutes) {\n if (plusOrMinus) {\n time += (parseInt(offset, 10) || 0) * 60000;\n } else {\n time -= (parseInt(offset, 10) || 0) * 60000;\n }\n\n } else {\n if (plusOrMinus) {\n time += (parseInt(offset, 10) || 0) * 1000;\n } else {\n time -= (parseInt(offset, 10) || 0) * 1000;\n }\n }\n }\n } else {\n time = time.getTime();\n if (isOffsetInMinutes) {\n if (plusOrMinus) {\n time += (parseInt(offset, 10) || 0) * 60000;\n } else {\n time -= (parseInt(offset, 10) || 0) * 60000;\n }\n\n } else {\n if (plusOrMinus) {\n time += (parseInt(offset, 10) || 0) * 1000;\n } else {\n time -= (parseInt(offset, 10) || 0) * 1000;\n }\n }\n }\n return time;\n}\n\nfunction getStartStop(index, step) {\n var option = {};\n var end;\n var start;\n var _now;\n config.l[index].offset = config.l[index].offset || 0;\n\n var isMonthRange = (config.range.indexOf('m') === -1) ? false : true;\n // check config range\n if (isMonthRange && config.l.length > 1) {\n var monthRange = parseInt(config.range, 10) || 1;\n for (var a = 0; a < config.l.length; a++) {\n if (config.l[a].offset && config.l[a].offset !== 0) {\n // Check what the month has first index\n _now = addTime(now, config.l[0].offset);\n var minusMonth = new Date(_now);\n minusMonth.setMonth(minusMonth.getMonth() - monthRange);\n config.range = Math.floor((_now - minusMonth.getTime()) / 60000) + '';\n break;\n }\n }\n }\n\n if (config.zoomed) {\n navOptions[index].end = config.l[index].zMax;\n navOptions[index].start = config.l[index].zMin;\n return navOptions[index];\n } else {\n if (!step) {\n if (config.timeType === 'static') {\n var startTime;\n var endTime;\n var y;\n var m;\n if (config.start_time !== undefined) {\n startTime = config.start_time.split(':').map(Number);\n } else {\n startTime = [0, 0];\n }\n\n if (config.end_time !== undefined) {\n endTime = config.end_time.split(':').map(Number);\n } else {\n endTime = [24, 0];\n }\n\n // offset is in seconds\n start = new Date(config.start).setHours(startTime[0], startTime[1]);\n end = new Date(config.end) .setHours(endTime[0], endTime[1]);\n start = addTime(start, config.l[index].offset);\n end = addTime(end, config.l[index].offset);\n } else {\n if (config.relativeEnd === 'now') {\n _now = new Date(now);\n } else if (config.relativeEnd.indexOf('minute') !== -1) {\n var minutes = parseInt(config.relativeEnd, 10) || 1;\n _now = new Date(now);\n _now.setMinutes(Math.floor(_now.getMinutes() / minutes) * minutes + minutes);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd.indexOf('hour') !== -1) {\n var hours = parseInt(config.relativeEnd, 10) || 1;\n _now = new Date(now);\n _now.setHours(Math.floor(_now.getHours() / hours) * hours + hours);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd === 'today') {\n _now = new Date(now);\n _now.setDate(_now.getDate() + 1);\n _now.setHours(0);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd === 'weekUsa') {\n //var week = parseInt(config.relativeEnd, 10) || 1;\n _now = new Date(now);\n _now.setDate(_now.getDate() - _now.getDay() + 7);\n _now.setHours(0);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd === 'weekEurope') {\n //var _week = parseInt(config.relativeEnd, 10) || 1;\n _now = new Date(now);\n // If\n if (_now.getDay() === 0) {\n _now.setDate(_now.getDate() + 1);\n } else {\n _now.setDate(_now.getDate() - _now.getDay() + 8);\n }\n _now.setHours(0);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd === 'month') {\n _now = new Date(now);\n _now.setMonth(_now.getMonth() + 1);\n _now.setDate(1);\n _now.setHours(0);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n } else if (config.relativeEnd === 'year') {\n _now = new Date(now);\n _now.setFullYear(_now.getFullYear() + 1);\n _now.setMonth(0);\n _now.setDate(1);\n _now.setHours(0);\n _now.setMinutes(0);\n _now.setSeconds(0);\n _now.setMilliseconds(0);\n }\n\n end = addTime(_now, config.l[index].offset);\n start = addTime(end, config.range, false, true);\n }\n\n option = {\n start: start,\n end: end,\n ignoreNull: (config.l[index].ignoreNull === undefined) ? config.ignoreNull : config.l[index].ignoreNull,\n aggregate: config.l[index].aggregate || config.aggregate || 'minmax'\n };\n\n if (config.aggregateType === 'step') {\n option.step = config.aggregateSpan * 1000;\n } else if (config.aggregateType === 'count') {\n option.count = config.aggregateSpan || (document.getElementById('chart_container').clientWidth / 10);\n }\n\n navOptions[index] = option;\n return option;\n\n } else {\n end = addTime(now, config.l[index].offset);\n start = end - step;\n\n option = {\n start: start,\n end: end,\n ignoreNull: (config.l[index].ignoreNull === undefined) ? config.ignoreNull : config.l[index].ignoreNull,\n aggregate: config.l[index].aggregate || config.aggregate || 'minmax',\n count: 1\n };\n\n navOptions[index].end = end;\n navOptions[index].start = addTime(end, config.range, false, true);\n return option;\n }\n }\n}\n\nfunction readOneChart(id, instance, index, callback) {\n\n var option = getStartStop(index);\n option.instance = instance;\n option.sessionId = sessionId;\n config.l[index].yOffset = parseFloat(config.l[index].yOffset) || 0;\n\n //console.log(JSON.stringify(option));\n console.log(new Date(option.start) + ' - ' + new Date(option.end));\n socket.emit('getHistory', id, option, function (err, res, stepIgnore, _sessionId) {\n if (err) console.error(err);\n\n if (sessionId && _sessionId && _sessionId !== sessionId) {\n console.warn('Ignore request with sessionId=' + _sessionId + ', actual is ' + sessionId);\n return;\n }\n\n if (!err && res) {\n //option.ignoreNull = (config.l[index].ignoreNull === undefined) ? (config.ignoreNull === 'true' || config.ignoreNull === true) : (config.l[index].ignoreNull === 'true' || config.l[index].ignoreNull === true);\n option.yOffset = config.l[index].yOffset;\n\n var _series = seriesData[index];\n\n for (var i = 0; i < res.length; i++) {\n // if less 2000.01.01 00:00:00\n if (res[i].ts < 946681200000) res[i].ts = res[i].ts * 1000;\n\n // Convert boolean values to numbers\n if (res[i].val === 'true' || res[i].val === true) {\n res[i].val = 1;\n } else if (res[i].val === 'false' || res[i].val === false) {\n res[i].val = 0;\n }\n if (typeof res[i].val === 'string') res[i].val = parseFloat(res[i].val);\n\n _series.push([res[i].ts, res[i].val !== null ? res[i].val + option.yOffset : null]);\n }\n // add start and end\n if (_series.length) {\n if (_series[0][0] > option.start) _series.unshift([option.start, null]);\n if (_series[_series.length - 1][0] < option.end) _series.push([option.end, null]);\n } else {\n _series.push([option.start, null]);\n _series.push([option.end, null]);\n }\n // free memory\n res = null;\n }\n\n if (callback) callback(id, index);\n });\n}\n\nfunction readValue(id, index, callback) {\n socket.emit('getState', id, function (err, state) {\n if (state) {\n callback(index, parseFloat(state.val) || 0);\n } else {\n callback(index, 0);\n }\n });\n}\n\nfunction prepareChart() {\n chart = new CustomChart({\n chartId: divId,\n titleId: 'title',\n tooltipId: 'tooltip',\n cbOnZoom: onZoom\n }, config, seriesData, config.m, ticks);\n\n if (config.zoom) {\n $('#resetZoom').unbind('click').click(function () {\n seriesData = [];\n $('#resetZoom').hide();\n config.zoomed = false;\n now = new Date();\n readData(true);\n });\n\n // handlers for zoom and pan\n $('#' + divId)\n // flot can pan and zoom with mouse itself\n /*.unbind('mousedown')\n .mousedown(function (e) {\n mouseDown = true;\n lastX = e.pageX;\n })\n .unbind('mouseup').mouseup(function () {\n mouseDown = false;\n if (zoomTimeout) clearTimeout(zoomTimeout);\n zoomTimeout = setTimeout(onZoom, 500);\n })\n .unbind('mousemove')\n .mousemove(function(e) {\n if (mouseDown) {\n chart.pan(e.pageX - lastX);\n }\n lastX = e.pageX;\n })\n .unbind('mousewheel DOMMouseScroll')\n .bind('mousewheel DOMMouseScroll', function(event) {\n var amount = (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) ? 0.9 : 1.1;\n chart.zoom(event.originalEvent.pageX, amount);\n if (zoomTimeout) clearTimeout(zoomTimeout);\n zoomTimeout = setTimeout(onZoom, 500);\n })*/\n .unbind('touchstart')\n .on('touchstart', function (e) {\n e.preventDefault();\n mouseDown = true;\n var touches = e.touches || e.originalEvent.touches;\n if (touches) {\n lastX = touches[touches.length - 1].pageX;\n if (touches.length > 1) {\n lastWidth = Math.abs(touches[0].pageX - touches[1].pageX);\n } else {\n lastWidth = null;\n }\n }\n })\n .unbind('touchend')\n .on('touchend', function(e) {\n e.preventDefault();\n mouseDown = false;\n if (zoomTimeout) clearTimeout(zoomTimeout);\n zoomTimeout = setTimeout(onZoom, 500);\n })\n .unbind('touchmove')\n .on('touchmove', function (e) {\n e.preventDefault();\n var touches = e.touches || e.originalEvent.touches;\n if (!touches) return;\n if (mouseDown) {\n var pageX = touches[touches.length - 1].pageX;\n if (touches.length > 1) {\n // zoom\n var width = Math.abs(touches[0].pageX - touches[1].pageX);\n\n if (lastWidth !== null && width !== lastWidth) {\n var amount = (width > lastWidth) ? 1.1 : 0.9;\n var positionX = (touches[0].pageX > touches[1].pageX) ? (touches[1].pageX + width / 2) : (touches[0].pageX + width / 2);\n\n chart.zoom(positionX, amount);\n\n if (zoomTimeout) clearTimeout(zoomTimeout);\n zoomTimeout = setTimeout(onZoom, 500);\n }\n lastWidth = width;\n } else {\n // swipe\n chart.pan(lastX - pageX);\n }\n }\n lastX = pageX;\n });\n }\n\n if (config.live && config.timeType === 'relative') {\n if (config.live === true || config.live === 'true') config.live = 30;\n config.live = parseInt(config.live, 10) || 30;\n startLiveUpdate();\n }\n}\n\nfunction _readOneLine(index, cb) {\n socket.emit('getObject', config.l[index].id, function (err, res) {\n if (!err && res && res.common) {\n config.l[index].name = config.l[index].name || res.common.name;\n config.l[index].unit = config.l[index].unit || (res.common.unit ? res.common.unit.replace('�', '°') : '');\n config.l[index].type = res.common.type;\n } else {\n config.l[index].name = config.l[index].name || config.l[index].id;\n config.l[index].unit = config.l[index].unit || '';\n }\n if (typeof config.l[index].name === 'object') {\n config.l[index].name = config.l[index].name[systemLang] || config.l[index].name.en;\n }\n readOneChart(config.l[index].id, config.l[index].instance, index, cb);\n });\n}\n\nfunction readTicks(callback) {\n if (!config.ticks) {\n callback && callback(null);\n } else {\n socket.emit('getObject', config.ticks, function (err, res) {\n var index = 0;\n var option = JSON.parse(JSON.stringify(getStartStop(index)));\n option.instance = config.l[index].instance;\n option.sessionId = sessionId;\n option.aggregate = 'onchange';\n\n //console.log(JSON.stringify(option));\n console.log('Ticks: ' + new Date(option.start) + ' - ' + new Date(option.end));\n socket.emit('getHistory', config.ticks, option, function (err, res, stepIgnore, _sessionId) {\n if (err) console.error(err);\n\n if (sessionId && _sessionId && _sessionId !== sessionId) {\n console.warn('Ignore request with sessionId=' + _sessionId + ', actual is ' + sessionId);\n return;\n }\n\n if (!err && res) {\n var _series = ticks || [];\n if (ticks && ticks.length) ticks.splice(0, ticks.length);\n\n for (var i = 0; i < res.length; i++) {\n // if less 2000.01.01 00:00:00\n if (res[i].ts < 946681200000) res[i].ts = res[i].ts * 1000;\n\n if (!res[i].val !== null) _series.push([res[i].ts, res[i].val]);\n }\n // add start and end\n if (_series.length) {\n if (_series[0][0] > option.start) _series.unshift([option.start, '']);\n if (_series[_series.length - 1][0] < option.end) _series.push([option.end, '']);\n } else {\n _series.push([option.start, '']);\n _series.push([option.end, '']);\n }\n // free memory\n res = null;\n ticks = _series;\n }\n if (callback) callback(_series);\n });\n });\n }\n}\n\nfunction readMarkings(cb, m) {\n m = m || 0;\n if (!config.m || !config.m.length || m >= config.m.length) {\n return cb && cb();\n } else {\n if (!config.m[m].oid && config.m[m].v && parseFloat(config.m[m].v) != config.m[m].v && config.m[m].v.indexOf('.') !== -1) {\n if (subscribes.indexOf(config.m[m].v) === -1) subscribes.push(config.m[m].v);\n\n readValue(config.m[m].v, m, function (index, val) {\n config.m[index].oid = config.m[index].v;\n config.m[index].v = val;\n\n if (!config.m[m].oidl && config.m[m].vl && parseFloat(config.m[m].vl) != config.m[m].vl && config.m[m].vl.indexOf('.') !== -1) {\n if (subscribes.indexOf(config.m[m].vl) === -1) subscribes.push(config.m[m].vl);\n readValue(config.m[m].vl, m, function (index, val) {\n config.m[index].oidl = config.m[index].vl;\n config.m[index].vl = val;\n setTimeout(readMarkings, 0, cb, m + 1);\n });\n } else {\n setTimeout(readMarkings, 0, cb, m + 1);\n }\n });\n } else\n if (!config.m[m].oidl && config.m[m].vl && parseFloat(config.m[m].vl) != config.m[m].vl && config.m[m].vl.indexOf('.') !== -1) {\n if (subscribes.indexOf(config.m[m].vl) === -1) subscribes.push(config.m[m].vl);\n readValue(config.m[m].vl, m, function (index, val) {\n config.m[index].oidl = config.m[index].vl;\n config.m[index].vl = val;\n setTimeout(readMarkings, 0, cb, m + 1);\n });\n } else {\n setTimeout(readMarkings, 0, cb, m + 1);\n }\n }\n}\n\nfunction _readData(callback, j) {\n j = j || 0;\n if (j >= config.l.length) {\n return callback && callback();\n } else {\n if (config.l[j] !== '' && config.l[j] !== undefined) seriesData.push([]);\n _readOneLine(j, function () {\n setTimeout(function () {\n _readData(callback, j + 1);\n }, 10);\n });\n }\n}\n\nfunction subscribeAll(subscribes, cb, s) {\n s = s || 0;\n if (!subscribes || !subscribes.length || s >= subscribes.length) {\n cb && cb();\n } else {\n socket.emit('subscribe', subscribes[s], function () {\n setTimeout(function () {\n subscribeAll(subscribes, cb, s + 1);\n }, 0);\n });\n }\n}\n\nfunction readData(hidden) {\n if (disconnectTimeout) {\n $('#no-connection').hide();\n clearTimeout(disconnectTimeout);\n disconnectTimeout = null;\n }\n sessionId++;\n\n if (config.l) {\n if (!hidden) $('#server-disconnect').show();\n\n // todo\n// if (config.renderer === 'pie' || (config.renderer === 'bar' && config._ids.length > 1)) {\n//\n// seriesData = [[]];\n// for (var j = 0; j < config._ids.length; j++) {\n// readOneValue(config._ids[j], j, function (_id, _index, value) {\n// if (config.renderer === 'pie') {\n// seriesData[0][_index] = {label: config.l[_index].name, data: value};\n// } else {\n// seriesData[0][_index] = [config.l[_index].name, value];\n// }\n// if (_index === config._ids.length - 1) {\n// graphCreate(divId, );\n// }\n// });\n// }\n// } else {\n _readData(function () {\n readTicks(function (_ticks) {\n readMarkings(function () {\n if (!subscribed) {\n subscribed = true;\n subscribeAll();\n }\n\n $('#server-disconnect').hide();\n prepareChart();\n });\n });\n });\n }\n\n if (!config.noedit) {\n // install edit button\n $('#edit')\n .show()\n .click(function () {\n var win = window.open(location.href.replace('index.html', 'edit.html'), 'flot');\n win.focus();\n });\n }\n}\n\nfunction startLiveUpdate() {\n liveInterval = setInterval(function () {\n if (config.zoomed) {\n var max = 0;\n var min = null;\n\n // Find min and max of all lines\n for (var index = 0; index < config.l.length; index++) {\n if (max < config.l[index].zMax) max = config.l[index].zMax;\n if (min === null || min > config.l[index].zMin) min = config.l[index].zMin;\n }\n\n // if 20%\n if ((max + ((max - min) / 20)) >= new Date().getTime()) {\n max = new Date().getTime() - now.getTime();\n var result = [];\n for (var _index = 0; _index < config.l.length; _index++) {\n config.l[_index].zMax += max;\n config.l[_index].zMin += max;\n result.push({min: config.l[_index].zMin, max: config.l[_index].zMax});\n }\n chart.setRange(result);\n } else {\n return;\n }\n }\n\n console.log('on time');\n updateLive();\n }, config.live * 1000);\n}\n\nfunction updateLive() {\n var ready = 0;\n now = new Date();\n $('.loader').show();\n sessionId++;\n\n if (config.zoom) chart.resetZoom(now);\n\n for (var index = 0; index < config.l.length; index++) {\n ready++;\n seriesData[index] = [];\n readOneChart(config.l[index].id, config.l[index].instance, index, function () {\n if (!--ready) {\n readTicks(function (_ticks) {\n chart.update(seriesData, null, _ticks);\n $('.loader').hide();\n });\n }\n });\n }\n}\n\nfunction avg(data, range) {\n var r = [];\n var rd;\n var i1;\n var s;\n var cnt;\n for(var i = 0; i < data.length; i++) {\n if (i < range) {\n i1 = 0;\n } else {\n i1 = i - range + 1;\n }\n rd = [data[i][0], null];\n if (data[i][1] !== null) {\n s = 0;\n cnt = 0;\n for(var j = i1; j <= i; j++) {\n if (data[j][1] === null) continue;\n s += data[j][1];\n cnt++;\n }\n rd[1] = s / cnt;\n }\n r.push(rd);\n }\n return r;\n}\n\nfunction onZoom() {\n if (!config.zoomed) {\n $('#resetZoom').show();\n config.zoomed = true;\n }\n\n var result = chart.getRange();\n\n for (var r = 0; r < result.length; r++) {\n config.l[r].zMin = result[r].min;\n config.l[r].zMax = result[r].max;\n }\n\n console.log('on zoom');\n updateLive();\n}\n"]} \ No newline at end of file