From 7d71d3876a665a9adb6d9f73180a014e30cd4d85 Mon Sep 17 00:00:00 2001 From: zhongjin Date: Fri, 14 Sep 2018 14:10:24 +0800 Subject: [PATCH] new --- www/css/images/128/bar-alpha.png | Bin 0 -> 1564 bytes www/css/images/128/bar.png | Bin 0 -> 1076 bytes www/css/images/128/map.png | Bin 0 -> 37070 bytes www/css/images/bar-alpha.png | Bin 0 -> 2195 bytes www/css/images/bar-opacity.png | Bin 0 -> 134 bytes www/css/images/bar-pointer.png | Bin 0 -> 198 bytes www/css/images/bar.png | Bin 0 -> 382 bytes www/css/images/map-opacity.png | Bin 0 -> 139 bytes www/css/images/map-pointer.png | Bin 0 -> 344 bytes www/css/images/map.png | Bin 0 -> 78245 bytes www/css/images/preview-opacity.png | Bin 0 -> 135 bytes www/css/images/ui-colorpicker.png | Bin 0 -> 494 bytes www/css/jquery.colorpicker.css | 239 ++++++++++++++++++++++++++ www/edit.html | 120 ++++++++++++++ www/edit.html.map | 1 + www/img/favicon.png | Bin 0 -> 1894 bytes www/index.html | 258 +++++++++++++++++++++++++++++ www/index.html.map | 1 + www/js/edit.js | 2 + www/js/edit.js.map | 1 + www/js/flot.js | 2 + www/js/flot.js.map | 1 + 22 files changed, 625 insertions(+) create mode 100644 www/css/images/128/bar-alpha.png create mode 100644 www/css/images/128/bar.png create mode 100644 www/css/images/128/map.png create mode 100644 www/css/images/bar-alpha.png create mode 100644 www/css/images/bar-opacity.png create mode 100644 www/css/images/bar-pointer.png create mode 100644 www/css/images/bar.png create mode 100644 www/css/images/map-opacity.png create mode 100644 www/css/images/map-pointer.png create mode 100644 www/css/images/map.png create mode 100644 www/css/images/preview-opacity.png create mode 100644 www/css/images/ui-colorpicker.png create mode 100644 www/css/jquery.colorpicker.css create mode 100644 www/edit.html create mode 100644 www/edit.html.map create mode 100644 www/img/favicon.png create mode 100644 www/index.html create mode 100644 www/index.html.map create mode 100644 www/js/edit.js create mode 100644 www/js/edit.js.map create mode 100644 www/js/flot.js create mode 100644 www/js/flot.js.map diff --git a/www/css/images/128/bar-alpha.png b/www/css/images/128/bar-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..454dc9ef9ce3cb9b4a2ebe65ba6bd5bad2237e16 GIT binary patch literal 1564 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

nbk6FjFAn1VVZCS#_qkd&(-y*qU4p!bs;7%-& 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 literal 0 HcmV?d00001 diff --git a/www/css/images/bar-pointer.png b/www/css/images/bar-pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..6e980cfa770d279c7efc37fb0bdff1deff63a357 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W}!3HEbPUl(xDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH!whjv*Ddl5{jr{W{;ka>tfgQqqILdi#3!i|3h?c2zGw z#Ol?(`M+?s#t8$Hy*xfIx*WJJS4eRme=Qg|T=*M0u-BGwpK*Z!m t%!!uM22OEoD;Zb1viDr+OKo6aX2?F7d|uo8wGz-y22WQ%mvv4FO#oNUKbZgk literal 0 HcmV?d00001 diff --git a/www/css/images/bar.png b/www/css/images/bar.png new file mode 100644 index 0000000000000000000000000000000000000000..80eb2bbe76b26159a17b1cc19aca8e39da447e3e GIT binary patch literal 382 zcmV-^0fGLBP)}1*%UwHVKz(1$>|B5)7j`^u&Pnwz>oj`>(>aS jpPwhotNJUGfy02oX)8y=1{2rcK#dHZu6{1-oD!M<2x%(! literal 0 HcmV?d00001 diff --git a/www/css/images/map-pointer.png b/www/css/images/map-pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..64992968bc5b4d8e96312a6f7ea541e220a17401 GIT binary patch literal 344 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%0A&S-# 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

^m(L~pIE4v{JJ6sFjTx7 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 literal 0 HcmV?d00001 diff --git a/www/css/images/preview-opacity.png b/www/css/images/preview-opacity.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd9a2f8b9d2a8ff3f52bf7ca4c772196a5dd8d6 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih{( zJaZG%Q-e|yQz{EjrrH1%X?nUihE&{2vMGMX!z^TAX6E+H$nXKH$<(wz|Nq+?{eN?F gbMw(m21Yi9jg}lG!VlE;12r*ty85}Sb4q9e04Z`PuJ3|JkpZKt2f0_1>B8UAzk*LrsvW-|w#t9LM=i;QKzqOSCMDT-Uuo zkummb0H}e}YPD!E7*M<2mUn1btya69PN%nKy#E}eYBU-*tXM3b=W@B@U4AAphkInj k12|Bt+U6kg>PvtD0M *, +.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 0000000000000000000000000000000000000000..42987bd6c8f293c9eafd126435173fd12b2798d9 GIT binary patch literal 1894 zcmb_d`#Teg8=q^(B3jd2CUeVWHZ8f8OEhvR(DtR; zVQnimGb5xBPIGI?JuR0|4d0#b-*BGi^LgLr^FE*VdEWPz_a%CJo>c;B0097ilA9~q zN0O8N;V<%%$PYRCQ<9`oea<=ong^hZ5+NJoc-|2Jcvie$94RN!3OLuGQ~=;W=RcI{ zPHwy;DXQU}1M$BmN8_(VrbGd7k#R|QWKt9!b^>_}X$(+XrkPp{XrQJOFvnkTKn#sWe&IP}`=>Zher-LYW$eQm1$J?jPK+7Pa*> z?d+9TYytc#l&)0CjZ|zw{ZdCY(%^A)6^;Yv8RyLX4mam>ZA`$RBl;7kYmR$s&EjuW zu!;!FWz2A}HrT;|KXK7mT^~wsiq}l3+!~E9u9^7m4cN7D?4haW!Zmwqi~4f|N3*MO z;AVa4Lzk(Sy2@Mh`A<-}nhu)=QS~^34^_rkE26gQo~t-vHF zb#@hZRtD2=ISI;X*G1?ZR1H%v(c3ly95R}p;YcrvZf$!>?c}u$oiPaQ3mWa4XD*;u+n{uM2@v-6(z&~$4Q+2+t&HUs?W2)`t+%3ZFVDmTzpz;&?mzwwb+sl4r)TuMXzRL28gPV2i^E23C5;`Y+yz5E3-Fr#L)S)dfG5;RjzmyyK zc9L#hs51eLTYnM3xSday1@2odddW8O9|^m9CeGG=dktooG9LIEm~TR}7%R9wVI~mM z^SlRNBG#*}MDr-Dn`ZDH>_rRXiR%9Uc18c5s}>;qA?7v-MnJ|BUzC%I{nE(Fs#vnb z;|D<+KI|>~5LXqXj%w!4+6h6g2$^f|)?9_&SHBPcg&{s~i7QM0zw>|!72C|s5Gh!t zPJ!Wru!*8n_{Q{(+dN|ZS7qulqHgVX}MJR1_Tl_ORcu77%$oe7DS~|aZ zk|>`Q^EfE;;GJ>4Q7GV1_}*dm?Dlc^YIp?e4O6iBIHMjQ*$0fgIb_MkX@$(W0LR+) zY7&s+4G6D?rH z;<;;~5;N2^`Kg^~$l8QHnp>rF2rAc@>2g2wQ@L|z`SW#N#z5_g&kKAT#R_sT1x6;# zDhlNh8qWiHiuvzYxVti$oRdqC@K-EC(zI=Wc6`SBYb4v|qUDkJR!>TuvBnX`jM$Yv ztb&ZU^6;?bwNmr7W_oHQKm-vqYd_ca65WYGe|?Q!sij|WQw z8y{0m%LljCOKfro%SDNPyEm&9_^+~mzKvXUz)0uBN{&XTC@ylQZNa+Y$T(41L#qL+ zS%ErWvqN==z)WvPnTMa>`3O*Y7Mnw#Z7IXcqxh60QLyJnmEFlot 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