From 97ebbfb194f7e44e5ca76c16669eb527380ae3c3 Mon Sep 17 00:00:00 2001 From: lh_wang Date: Sat, 8 Aug 2015 23:05:47 +0800 Subject: [PATCH] add dashborad --- meitu/.idea/misc.xml | 3 - meitu/.idea/workspace.xml | 45 +- meitu/css/main.css | 226 +++++--- meitu/css/tianqi.css | 809 +++++++++++++++++++++++++++++ meitu/index.html | 374 +++++++------ meitu/js/home/dashboard.js | 40 +- meitu/js/home/info.js | 7 +- meitu/js/lib/gauge.min.js | 61 +++ meitu/js/lib/justgage.1.0.1.min.js | 12 + meitu/js/lib/raphael.2.1.0.min.js | 10 + 10 files changed, 1328 insertions(+), 259 deletions(-) create mode 100644 meitu/css/tianqi.css create mode 100644 meitu/js/lib/gauge.min.js create mode 100644 meitu/js/lib/justgage.1.0.1.min.js create mode 100644 meitu/js/lib/raphael.2.1.0.min.js diff --git a/meitu/.idea/misc.xml b/meitu/.idea/misc.xml index 9b198b6..45aa70f 100644 --- a/meitu/.idea/misc.xml +++ b/meitu/.idea/misc.xml @@ -31,9 +31,6 @@ - - $USER_HOME$/.subversion - diff --git a/meitu/.idea/workspace.xml b/meitu/.idea/workspace.xml index 84b5ab1..0db81d1 100644 --- a/meitu/.idea/workspace.xml +++ b/meitu/.idea/workspace.xml @@ -21,21 +21,11 @@ - + - - - - - - - - - - - - + + @@ -49,8 +39,8 @@ @@ -256,6 +246,9 @@ + + $USER_HOME$/.subversion + @@ -288,6 +281,14 @@ + + + + @@ -328,14 +329,6 @@ - - - - - - - - @@ -344,5 +337,13 @@ + + + + + + + + \ No newline at end of file diff --git a/meitu/css/main.css b/meitu/css/main.css index 28b3466..d17f204 100644 --- a/meitu/css/main.css +++ b/meitu/css/main.css @@ -44,6 +44,7 @@ html body { } } /*----*/ + #map { width: 100%; height: 100%; @@ -69,7 +70,7 @@ html body { background-color: #FFFFFF; border: 1px solid #ccc; border-left: 0; - border-right:0; + border-right: 0; box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .2), 0 2px 6px 0 rgba(0, 0, 0, .19); -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .2), 0 2px 6px 0 rgba(0, 0, 0, .19); } @@ -117,16 +118,15 @@ html body { top: 60px; width: 50px; min-height: 50px; - z-index:10001; + z-index: 10001; } .tools>div { width: 40px; height: 40px; margin-left: auto; margin-right: auto; - border: 1px solid #CCCAC9; background-color: #fff; - border-radius: 2px; + border-radius: 1px; margin-bottom: 10px; text-align: center; color: #676768; @@ -144,6 +144,7 @@ html body { margin-top: -1px; } .tools_items i { + margin-top: 3px; font-size: 18px; } /*--------------------仪表盘---------------------------*/ @@ -174,97 +175,178 @@ html body { margin-top: 3px; margin-left: auto; margin-right: auto; - background-color:#0091FF; + background-color: #0091FF; +} +.e_charts_0 { + position: relative; + left: -10px; + top: -11px; + color: #E60079; + width: 22px; + background-color: #FFFFFF; +} +.e_charts_120 { + position: relative; + right: -18px; + top: -24px; + color: #E60079; + background-color: #FFFFFF; + width: 22px; + text-align: right; +} +.charts_data { + position: absolute; + top: 60px; + left: 60px; + width: 200px; + height: 240px; + z-index: 10012; + background-color: #FFF; + opacity: 0.9; + display:none; +} +.speed_dash_container { + width: 100px; + height: 80px; + margin-left: auto; + margin-right: auto; + /*border: 1px solid red;*/ +} +.speed_title { + font-size: 12px; + color: #999999; + width: 40px; + text-align: center; + margin-left: auto; + margin-right: auto; } -.e_charts_0{ - position:relative; - left:-10px; - top:-11px; - color:#E60079; - width: 22px; - background-color:#FFFFFF; +.speed_lable{ + margin-top:-6px; + color:#999; } -.e_charts_120{ - position:relative; - right:-18px; - top:-24px; - color:#E60079; - background-color:#FFFFFF; - width: 22px; - text-align:right; +.speed_data{ + clear: both; + width:200px; + height:70px; + color:#999999; + padding:5px; } +.speed_data>div{ + height:20px; +} + +.speed_data>div>div{ + width: 80px; +} + +.speed_title_strong{ + color:#0091FF; + font-size:13px; + font-style: italic; +} + /*-----------------router----------------------------**/ -.router{ - position:absolute; - left:10px; - top:110px; - width:45px; - min-height:220px; - background-color:#fff; - opacity:0.8; -} -#router_canvas{ +.router { + position: absolute; + left: 10px; + top: 110px; + width: 45px; + min-height: 220px; + background-color: #fff; + opacity: 0.8; +} +#router_canvas { -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); } - /*-----------------SN_info--------------------------------*/ -.SN_info{ - position:absolute; - left:0px; - right:0px; - bottom:5px; - height:130px; - z-index:10000; + +.SN_info { + position: absolute; + left: 0px; + right: 0px; + bottom: 5px; + height: 130px; + z-index: 10000; overflow: hidden; } - -.SN_info_wrapper{ - height:130px; +.SN_info_wrapper { + height: 130px; -webkit-transform: translate3d(0px, 0px, 0px); transform: translate3d(0px, 0px, 0px); } - -.SN_info_item{ - height:130px; - float:left; - background-color:#fff; - margin-left:10px; - margin-right:10px; - box-sizing:border-box; - border-radius:2px; - border:1px solid #ddd; +.SN_info_item { + height: 130px; + float: left; + background-color: #fff; + margin-left: 10px; + margin-right: 10px; + box-sizing: border-box; + border-radius: 2px; + border: 1px solid #ddd; } - -.SN_info_img{ - margin-top:20px; - width:100px; - height:100px; - margin-right:2px; +.SN_info_img { + margin-top: 20px; + width: 100px; + height: 100px; + margin-right: 2px; } - -.SN_info_img img{ - max-height:100px; - max-width:100px; +.SN_info_img img { + max-height: 100px; + max-width: 100px; } - -.SN_info_tui{ +.SN_info_tui { position: relative; - margin-top:20px; - margin-left:4px; - height:100px; + margin-top: 20px; + margin-left: 4px; + height: 100px; overflow: hidden; } +.SN_info_tui_div { + overflow: hidden; + text-overflow: ellipsis; + height: 19px; +} +.SN_info_tui_icon { + color: #00C348; + margin-right: 5px; +} +.SN_info_rmb { + color: red; + font-size: 14px; + margin +} +#SN_info_btn { + position: absolute; + top: 2px; + width: 25px; + margin-left: -12px; + left: 50%; + z-index: 10002; +} +.SN_info_btn_icon { + color: #0091FF; + font-size: 17px; + cursor: pointer; +} - - +/*天气预报*/ +.tianqi_container{ + position:absolute; + min-width:100px; + min-height:100px; + left:50%; + margin-left:-60px; + bottom:140px; + z-index:10090; +} diff --git a/meitu/css/tianqi.css b/meitu/css/tianqi.css new file mode 100644 index 0000000..3117c67 --- /dev/null +++ b/meitu/css/tianqi.css @@ -0,0 +1,809 @@ +/* SUNNY */ +.sunny { + -webkit-animation: sunny 15s linear infinite; + animation: sunny 15s linear infinite; + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%); + background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%); + height: 140px; + width: 20px; + margin-left: -15px; + position: absolute; + left: 90px; + top: 20px; +} +.sunny:before { + background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%); + background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%); + content: ''; + height: 140px; + width: 20px; + opacity: 1; + position: absolute; + bottom: 0px; + left: 0px; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.sunny:after { + background: #FFEE44; + border-radius: 50%; + box-shadow: rgba(255,255,0,0.2) 0 0 0 15px; + content: ''; + height: 80px; + width: 80px; + position: absolute; + left: -30px; + top: 30px; +} +@-webkit-keyframes sunny { + 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } +} +@keyframes sunny { + 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } +} + +/* CLOUDY */ +.cloudy { + -webkit-animation: cloudy 5s ease-in-out infinite; + animation: cloudy 5s ease-in-out infinite; + background: #FFFFFF; + border-radius: 50%; + box-shadow: + #FFFFFF 65px -15px 0 -5px, + #FFFFFF 25px -25px, + #FFFFFF 30px 10px, + #FFFFFF 60px 15px 0 -10px, + #FFFFFF 85px 5px 0 -5px; + height: 50px; + width: 50px; + margin-left: -60px; + position: absolute; + left: 255px; + top: 70px; +} +.cloudy:after { + -webkit-animation: cloudy_shadow 5s ease-in-out infinite; + animation: cloudy_shadow 5s ease-in-out infinite; + background: #000000; + border-radius: 50%; + content: ''; + height: 15px; + width: 120px; + opacity: 0.2; + position: absolute; + left: 5px; + bottom: -60px; + -webkit-transform: scale(.7); + -ms-transform: scale(.7); + transform: scale(.7); +} +@-webkit-keyframes cloudy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@keyframes cloudy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@-webkit-keyframes cloudy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity:.05; } +} +@keyframes cloudy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity:.05; } +} + +/* RAINY */ +.rainy { + -webkit-animation: rainy 5s ease-in-out infinite 1s; + animation: rainy 5s ease-in-out infinite 1s; + background: #CCCCCC; + border-radius: 50%; + box-shadow: + #CCCCCC 65px -15px 0 -5px, + #CCCCCC 25px -25px, + #CCCCCC 30px 10px, + #CCCCCC 60px 15px 0 -10px, + #CCCCCC 85px 5px 0 -5px; + display: block; + height: 50px; + width: 50px; + margin-left: -60px; + position: absolute; + left: 427px; + top: 70px; +} +.rainy:after { + -webkit-animation: rainy_shadow 5s ease-in-out infinite 1s; + animation: rainy_shadow 5s ease-in-out infinite 1s; + background: #000000; + border-radius: 50%; + content: ''; + height: 15px; + width: 120px; + opacity: 0.2; + position: absolute; + left: 5px; + bottom: -60px; + -webkit-transform: scale(.7); + -ms-transform: scale(.7); + transform: scale(.7); +} +.rainy:before { + -webkit-animation: rainy_rain .7s infinite linear; + animation: rainy_rain .7s infinite linear; + content: ''; + background: #CCCCCC; + border-radius: 50%; + display: block; + height: 6px; + width: 3px; + opacity: 0.3; + -webkit-transform: scale(.9); + -ms-transform: scale(.9); + transform: scale(.9); +} +@-webkit-keyframes rainy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@keyframes rainy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@-webkit-keyframes rainy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@keyframes rainy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@-webkit-keyframes rainy_rain { + 0% { + box-shadow: + rgba(0,0,0,0) 30px 30px, + rgba(0,0,0,0) 40px 40px, + #000 50px 75px, + #000 55px 50px, + #000 70px 100px, + #000 80px 95px, + #000 110px 45px, + #000 90px 35px; + } + 25% { + box-shadow: + #000 30px 45px, + #000 40px 60px, + #000 50px 90px, + #000 55px 65px, + rgba(0,0,0,0) 70px 120px, + rgba(0,0,0,0) 80px 120px, + #000 110px 70px, + #000 90px 60px; + } + 26% { + box-shadow: + #000 30px 45px, + #000 40px 60px, + #000 50px 90px, + #000 55px 65px, + rgba(0,0,0,0) 70px 40px, + rgba(0,0,0,0) 80px 20px, + #000 110px 70px, + #000 90px 60px; + } + 50% { + box-shadow: + #000 30px 70px, + #000 40px 80px, + rgba(0,0,0,0) 50px 100px, + #000 55px 80px, + #000 70px 60px, + #000 80px 45px, + #000 110px 95px, + #000 90px 85px; + } + 51% { + box-shadow: + #000 30px 70px, + #000 40px 80px, + rgba(0,0,0,0) 50px 45px, + #000 55px 80px, + #000 70px 60px, + #000 80px 45px, + #000 110px 95px, + #000 90px 85px; + } + 75% { + box-shadow: + #000 30px 95px, + #000 40px 100px, + #000 50px 60px, + rgba(0,0,0,0) 55px 95px, + #000 70px 80px, + #000 80px 70px, + rgba(0,0,0,0) 110px 120px, + rgba(0,0,0,0) 90px 110px; + } + 76% { + box-shadow: + #000 30px 95px, + #000 40px 100px, + #000 50px 60px, + rgba(0,0,0,0) 55px 35px, + #000 70px 80px, + #000 80px 70px, + rgba(0,0,0,0) 110px 25px, + rgba(0,0,0,0) 90px 15px; + } + 100% { + box-shadow: + rgba(0,0,0,0) 30px 120px, + rgba(0,0,0,0) 40px 120px, + #000 50px 75px, + #000 55px 50px, + #000 70px 100px, + #000 80px 95px, + #000 110px 45px, + #000 90px 35px; + } +} +@keyframes rainy_rain { + 0% { + box-shadow: + rgba(0,0,0,0) 30px 30px, + rgba(0,0,0,0) 40px 40px, + #000 50px 75px, + #000 55px 50px, + #000 70px 100px, + #000 80px 95px, + #000 110px 45px, + #000 90px 35px; + } + 25% { + box-shadow: + #000 30px 45px, + #000 40px 60px, + #000 50px 90px, + #000 55px 65px, + rgba(0,0,0,0) 70px 120px, + rgba(0,0,0,0) 80px 120px, + #000 110px 70px, + #000 90px 60px; + } + 26% { + box-shadow: + #000 30px 45px, + #000 40px 60px, + #000 50px 90px, + #000 55px 65px, + rgba(0,0,0,0) 70px 40px, + rgba(0,0,0,0) 80px 20px, + #000 110px 70px, + #000 90px 60px; + } + 50% { + box-shadow: + #000 30px 70px, + #000 40px 80px, + rgba(0,0,0,0) 50px 100px, + #000 55px 80px, + #000 70px 60px, + #000 80px 45px, + #000 110px 95px, + #000 90px 85px; + } + 51% { + box-shadow: + #000 30px 70px, + #000 40px 80px, + rgba(0,0,0,0) 50px 45px, + #000 55px 80px, + #000 70px 60px, + #000 80px 45px, + #000 110px 95px, + #000 90px 85px; + } + 75% { + box-shadow: + #000 30px 95px, + #000 40px 100px, + #000 50px 60px, + rgba(0,0,0,0) 55px 95px, + #000 70px 80px, + #000 80px 70px, + rgba(0,0,0,0) 110px 120px, + rgba(0,0,0,0) 90px 110px; + } + 76% { + box-shadow: + #000 30px 95px, + #000 40px 100px, + #000 50px 60px, + rgba(0,0,0,0) 55px 35px, + #000 70px 80px, + #000 80px 70px, + rgba(0,0,0,0) 110px 25px, + rgba(0,0,0,0) 90px 15px; + } + 100% { + box-shadow: + rgba(0,0,0,0) 30px 120px, + rgba(0,0,0,0) 40px 120px, + #000 50px 75px, + #000 55px 50px, + #000 70px 100px, + #000 80px 95px, + #000 110px 45px, + #000 90px 35px; + } +} + +/* RAINBOW */ +.rainbow { + -webkit-animation: rainbow 5s ease-in-out infinite; + animation: rainbow 5s ease-in-out infinite; + border-radius: 170px 0 0 0; + box-shadow: + #FB323C -2px -2px 0 1px, + #F99716 -4px -4px 0 3px, + #FEE124 -6px -6px 0 5px, + #AFDF2E -8px -8px 0 7px, + #6AD7F8 -10px -10px 0 9px, + #60B1F5 -12px -12px 0 11px, + #A3459B -14px -14px 0 13px; + height: 70px; + width: 70px; + margin-left: -40px; + position: absolute; + left: 610px; + top: 71px; + -webkit-transform: rotate(40deg); + -ms-transform: rotate(40deg); + transform: rotate(40deg); +} +.rainbow:after { + -webkit-animation: rainbow_shadow 5s ease-in-out infinite; + animation: rainbow_shadow 5s ease-in-out infinite; + background: #000000; + border-radius: 50%; + content: ''; + opacity: 0.2; + height: 15px; + width: 120px; + position: absolute; + bottom: -23px; + left: 17px; + -webkit-transform: rotate(-40deg); + -ms-transform: rotate(-40deg); + transform: rotate(-40deg); + -webkit-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; +} +@-webkit-keyframes rainbow { + 50% { -webkit-transform: rotate(50deg); transform: rotate(50deg); } +} +@keyframes rainbow { + 50% { -webkit-transform: rotate(50deg); transform: rotate(50deg); } +} +@-webkit-keyframes rainbow_shadow { + 50% { -webkit-transform: rotate(-50deg) translate(10px) scale(.7); transform: rotate(-50deg) translate(10px) scale(.7); opacity: 0.05; } +} +@keyframes rainbow_shadow { + 50% { -webkit-transform: rotate(-50deg) translate(10px) scale(.7); transform: rotate(-50deg) translate(10px) scale(.7); opacity: 0.05; } +} + +/* STARRY */ +.starry { + -webkit-animation: starry_star 5s ease-in-out infinite; + animation: starry_star 5s ease-in-out infinite; + background: #fff; + border-radius: 50%; + box-shadow: + #FFFFFF 26px 7px 0 -1px, + rgba(255,255,255,0.1) -36px -19px 0 -1px, + rgba(255,255,255,0.1) -51px -34px 0 -1px, + #FFFFFF -52px -62px 0 -1px, + #FFFFFF 14px -37px, + rgba(255,255,255,0.1) 41px -19px, + #FFFFFF 34px -50px, + rgba(255,255,255,0.1) 14px -71px 0 -1px, + #FFFFFF 64px -21px 0 -1px, + rgba(255,255,255,0.1) 32px -85px 0 -1px, + #FFFFFF 64px -90px, + rgba(255,255,255,0.1) 60px -67px 0 -1px, + #FFFFFF 34px -127px, + rgba(255,255,255,0.1) -26px -103px 0 -1px; + height: 4px; + width: 4px; + margin-left: -10px; + opacity: 1; + position: absolute; + left: 777px; + top: 150px; +} +.starry:after { + -webkit-animation: starry 5s ease-in-out infinite; + animation: starry 5s ease-in-out infinite; + border-radius: 50%; + box-shadow: #FFFFFF -25px 0; + content: ''; + height: 100px; + width: 100px; + position: absolute; + top: -106px; + -webkit-transform: rotate(-5deg); + -ms-transform: rotate(-5deg); + transform: rotate(-5deg); + -webkit-transform-origin: 0 50%; + -ms-transform-origin: 0 50%; + transform-origin: 0 50%; +} + +@-webkit-keyframes starry { + 50% { -webkit-transform: rotate(10deg); transform: rotate(10deg); } +} + +@keyframes starry { + 50% { -webkit-transform: rotate(10deg); transform: rotate(10deg); } +} +@-webkit-keyframes starry_star { + 50% { + box-shadow: + rgba(255,255,255,0.1) 26px 7px 0 -1px, + #FFFFFF -36px -19px 0 -1px, + #FFFFFF -51px -34px 0 -1px, + rgba(255,255,255,0.1) -52px -62px 0 -1px, + rgba(255,255,255,0.1) 14px -37px, + #FFFFFF 41px -19px, + rgba(255,255,255,0.1) 34px -50px, + #FFFFFF 14px -71px 0 -1px, + rgba(255,255,255,0.1) 64px -21px 0 -1px, + #FFFFFF 32px -85px 0 -1px, + rgba(255,255,255,0.1) 64px -90px, + #FFFFFF 60px -67px 0 -1px, + rgba(255,255,255,0.1) 34px -127px, + #FFFFFF -26px -103px 0 -1px; + } +} +@keyframes starry_star { + 50% { + box-shadow: + rgba(255,255,255,0.1) 26px 7px 0 -1px, + #FFFFFF -36px -19px 0 -1px, + #FFFFFF -51px -34px 0 -1px, + rgba(255,255,255,0.1) -52px -62px 0 -1px, + rgba(255,255,255,0.1) 14px -37px, + #FFFFFF 41px -19px, + rgba(255,255,255,0.1) 34px -50px, + #FFFFFF 14px -71px 0 -1px, + rgba(255,255,255,0.1) 64px -21px 0 -1px, + #FFFFFF 32px -85px 0 -1px, + rgba(255,255,255,0.1) 64px -90px, + #FFFFFF 60px -67px 0 -1px, + rgba(255,255,255,0.1) 34px -127px, + #FFFFFF -26px -103px 0 -1px; + } +} + +/* STORMY */ +.stormy { + -webkit-animation: stormy 5s ease-in-out infinite; + animation: stormy 5s ease-in-out infinite; + background: #222222; + border-radius: 50%; + box-shadow: + #222222 65px -15px 0 -5px, + #222222 25px -25px, + #222222 30px 10px, + #222222 60px 15px 0 -10px, + #222222 85px 5px 0 -5px; + height: 50px; + width: 50px; + margin-left: -60px; + position: absolute; + left: 947px; + top: 70px; +} +.stormy:after { + -webkit-animation: stormy_shadow 5s ease-in-out infinite; + animation: stormy_shadow 5s ease-in-out infinite; + background: #000; + border-radius: 50%; + content: ''; + height: 15px; + width: 120px; + opacity: 0.2; + position: absolute; + left: 5px; + bottom: -60px; + -webkit-transform: scale(.7); + -ms-transform: scale(.7); + transform: scale(.7); +} +.stormy:before { + -webkit-animation: stormy_thunder 2s steps(1, end) infinite; + animation: stormy_thunder 2s steps(1, end) infinite; + border-left: 0px solid transparent; + border-right: 7px solid transparent; + border-top: 43px solid yellow; + box-shadow: yellow -7px -32px; + content: ''; + display: block; + height: 0; + width: 0; + position: absolute; + left: 57px; + top: 70px; + -webkit-transform: rotate(14deg); + -ms-transform: rotate(14deg); + transform: rotate(14deg); + -webkit-transform-origin: 50% -60px; + -ms-transform-origin: 50% -60px; + transform-origin: 50% -60px; +} +@-webkit-keyframes stormy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@keyframes stormy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@-webkit-keyframes stormy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@keyframes stormy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@-webkit-keyframes stormy_thunder { + 0% { -webkit-transform: rotate(20deg); transform: rotate(20deg); opacity:1; } + 5% { -webkit-transform: rotate(-34deg); transform: rotate(-34deg); opacity:1; } + 10% { -webkit-transform: rotate(0deg); transform: rotate(0deg); opacity:1; } + 15% { -webkit-transform: rotate(-34deg); transform: rotate(-34deg); opacity:0; } +} +@keyframes stormy_thunder { + 0% { -webkit-transform: rotate(20deg); transform: rotate(20deg); opacity:1; } + 5% { -webkit-transform: rotate(-34deg); transform: rotate(-34deg); opacity:1; } + 10% { -webkit-transform: rotate(0deg); transform: rotate(0deg); opacity:1; } + 15% { -webkit-transform: rotate(-34deg); transform: rotate(-34deg); opacity:0; } +} + +/* SNOWY */ +.snowy { + -webkit-animation: snowy 5s ease-in-out infinite 1s; + animation: snowy 5s ease-in-out infinite 1s; + background: #FFFFFF; + border-radius: 50%; + box-shadow: + #FFFFFF 65px -15px 0 -5px, + #FFFFFF 25px -25px, + #FFFFFF 30px 10px, + #FFFFFF 60px 15px 0 -10px, + #FFFFFF 85px 5px 0 -5px; + display: block; + height: 50px; + width: 50px; + margin-left: -60px; + position: absolute; + left: 1112px; + top: 70px; +} +.snowy:after { + -webkit-animation: snowy_shadow 5s ease-in-out infinite 1s; + animation: snowy_shadow 5s ease-in-out infinite 1s; + background: #000000; + border-radius: 50%; + content: ''; + height: 15px; + width: 120px; + opacity: 0.2; + position: absolute; + left: 8px; + bottom: -60px; + -webkit-transform: scale(.7); + -ms-transform: scale(.7); + transform: scale(.7); +} +.snowy:before { + -webkit-animation: snowy_snow 2s infinite linear; + animation: snowy_snow 2s infinite linear; + content: ''; + border-radius: 50%; + display: block; + height: 7px; + width: 7px; + opacity: 0.8; + -webkit-transform: scale(.9); + -ms-transform: scale(.9); + transform: scale(.9); +} +@-webkit-keyframes snowy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@keyframes snowy { + 50% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } +} +@-webkit-keyframes snowy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@keyframes snowy_shadow { + 50% { -webkit-transform: translateY(20px) scale(1); transform: translateY(20px) scale(1); opacity: 0.05; } +} +@-webkit-keyframes snowy_snow { + 0% { + box-shadow: + rgba(238,238,238,0) 30px 30px, + rgba(238,238,238,0) 40px 40px, + #EEEEEE 50px 75px, + #EEEEEE 55px 50px, + #EEEEEE 70px 100px, + #EEEEEE 80px 95px, + #EEEEEE 110px 45px, + #EEEEEE 90px 35px; + } + 25% { + box-shadow: + #EEEEEE 30px 45px, + #EEEEEE 40px 60px, + #EEEEEE 50px 90px, + #EEEEEE 55px 65px, + rgba(238,238,238,0) 70px 120px, + rgba(238,238,238,0) 80px 120px, + #EEEEEE 110px 70px, + #EEEEEE 90px 60px; + } + 26% { + box-shadow: + #EEEEEE 30px 45px, + #EEEEEE 40px 60px, + #EEEEEE 50px 90px, + #EEEEEE 55px 65px, + rgba(238,238,238,0) 70px 40px, + rgba(238,238,238,0) 80px 20px, + #EEEEEE 110px 70px, + #EEEEEE 90px 60px; + } + 50% { + box-shadow: + #EEEEEE 30px 70px, + #EEEEEE 40px 80px, + rgba(238,238,238,0) 50px 100px, + #EEEEEE 55px 80px, + #EEEEEE 70px 60px, + #EEEEEE 80px 45px, + #EEEEEE 110px 95px, + #EEEEEE 90px 85px; + } + 51% { + box-shadow: + #EEEEEE 30px 70px, + #EEEEEE 40px 80px, + rgba(238,238,238,0) 50px 45px, + #EEEEEE 55px 80px, + #EEEEEE 70px 60px, + #EEEEEE 80px 45px, + #EEEEEE 110px 95px, + #EEEEEE 90px 85px; + } + 75% { + box-shadow: + #EEEEEE 30px 95px, + #EEEEEE 40px 100px, + #EEEEEE 50px 60px, + rgba(238,238,238,0) 55px 95px, + #EEEEEE 70px 80px, + #EEEEEE 80px 70px, + rgba(238,238,238,0) 110px 120px, + rgba(238,238,238,0) 90px 110px; + } + 76% { + box-shadow: + #EEEEEE 30px 95px, + #EEEEEE 40px 100px, + #EEEEEE 50px 60px, + rgba(238,238,238,0) 55px 35px, + #EEEEEE 70px 80px, + #EEEEEE 80px 70px, + rgba(238,238,238,0) 110px 25px, + rgba(238,238,238,0) 90px 15px; + } + 100% { + box-shadow: + rgba(238,238,238,0) 30px 120px, + rgba(238,238,238,0) 40px 120px, + #EEEEEE 50px 75px, + #EEEEEE 55px 50px, + #EEEEEE 70px 100px, + #EEEEEE 80px 95px, + #EEEEEE 110px 45px, + #EEEEEE 90px 35px; + } +} +@keyframes snowy_snow { + 0% { + box-shadow: + rgba(238,238,238,0) 30px 30px, + rgba(238,238,238,0) 40px 40px, + #EEEEEE 50px 75px, + #EEEEEE 55px 50px, + #EEEEEE 70px 100px, + #EEEEEE 80px 95px, + #EEEEEE 110px 45px, + #EEEEEE 90px 35px; + } + 25% { + box-shadow: + #EEEEEE 30px 45px, + #EEEEEE 40px 60px, + #EEEEEE 50px 90px, + #EEEEEE 55px 65px, + rgba(238,238,238,0) 70px 120px, + rgba(238,238,238,0) 80px 120px, + #EEEEEE 110px 70px, + #EEEEEE 90px 60px; + } + 26% { + box-shadow: + #EEEEEE 30px 45px, + #EEEEEE 40px 60px, + #EEEEEE 50px 90px, + #EEEEEE 55px 65px, + rgba(238,238,238,0) 70px 40px, + rgba(238,238,238,0) 80px 20px, + #EEEEEE 110px 70px, + #EEEEEE 90px 60px; + } + 50% { + box-shadow: + #EEEEEE 30px 70px, + #EEEEEE 40px 80px, + rgba(238,238,238,0) 50px 100px, + #EEEEEE 55px 80px, + #EEEEEE 70px 60px, + #EEEEEE 80px 45px, + #EEEEEE 110px 95px, + #EEEEEE 90px 85px; + } + 51% { + box-shadow: + #EEEEEE 30px 70px, + #EEEEEE 40px 80px, + rgba(238,238,238,0) 50px 45px, + #EEEEEE 55px 80px, + #EEEEEE 70px 60px, + #EEEEEE 80px 45px, + #EEEEEE 110px 95px, + #EEEEEE 90px 85px; + } + 75% { + box-shadow: + #EEEEEE 30px 95px, + #EEEEEE 40px 100px, + #EEEEEE 50px 60px, + rgba(238,238,238,0) 55px 95px, + #EEEEEE 70px 80px, + #EEEEEE 80px 70px, + rgba(238,238,238,0) 110px 120px, + rgba(238,238,238,0) 90px 110px; + } + 76% { + box-shadow: + #EEEEEE 30px 95px, + #EEEEEE 40px 100px, + #EEEEEE 50px 60px, + rgba(238,238,238,0) 55px 35px, + #EEEEEE 70px 80px, + #EEEEEE 80px 70px, + rgba(238,238,238,0) 110px 25px, + rgba(238,238,238,0) 90px 15px; + } + 100% { + box-shadow: + rgba(238,238,238,0) 30px 120px, + rgba(238,238,238,0) 40px 120px, + #EEEEEE 50px 75px, + #EEEEEE 55px 50px, + #EEEEEE 70px 100px, + #EEEEEE 80px 95px, + #EEEEEE 110px 45px, + #EEEEEE 90px 35px; + } +} + diff --git a/meitu/index.html b/meitu/index.html index ed41b92..a27a3c9 100644 --- a/meitu/index.html +++ b/meitu/index.html @@ -1,159 +1,215 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 美途 - - - - - - -
- - - -
-
-
- -
-
-
-
- -
-
吐槽
-
-
-
- -
-
活动
-
-
-
- -
-
上报
-
-
-
- -
-
分享
-
-
-
- -
-
刷新
-
-
- -
-
-
-
0
-
120
-
-
- -
- -
- -
-
- - -
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 美途 + + + + + + + + +
+ + + +
+
+
+ +
+
+
+
+ +
+
吐槽
+
+
+
+ +
+
活动
+
+
+
+ +
+
上报
+
+
+
+ +
+
分享
+
+
+
+ +
+
刷新
+
+
+ +
+
+
+
0
+
120
+
+
+
+
+
时速
+ +
+
0
+
km/h
+
120
+
+
+
+
+
+ 时速: + 50km/h +
+
+ 时长: + 50km/h +
+
+
+
+ 到达: + 18:56 +
+
+ 距离: + 245km +
+
+
+ 模拟车速:50,000 km/h +
+
+ + + 安徽省安庆市望江县长岭镇农信社1001号 + +
+
+
+ +
+
+ + + + +
+ +
+ +
+
+ +
+
+ +
+ + + + + + \ No newline at end of file diff --git a/meitu/js/home/dashboard.js b/meitu/js/home/dashboard.js index 1b2820d..aeea8ad 100644 --- a/meitu/js/home/dashboard.js +++ b/meitu/js/home/dashboard.js @@ -1,6 +1,42 @@ - define('home/dashboard', function(require, exports, module) { + var zepto = require('lib/zepto_pj'); var mapInstance = require('home/map'); - + var charts = $('#charts'); + var charts_dash = $('#charts_dash'); + + + charts.on('click', function() { + if(charts_dash.css('display') === 'none'){ + charts_dash.fadeIn(); + var opts = { + lines: 12, + angle: 0, + lineWidth: 0.22, + pointer: { + length: 0.9, + strokeWidth: 0.061, + color: '#3BC1FF' + }, + limitMax: 'false', + colorStart: '#00C348', + colorStop: '#00C348', + strokeColor: '#E0E0E0', + generateGradient: true + }; + var target = document.getElementById('speed_dash'); + var gauge = new Gauge(target).setOptions(opts); + gauge.maxValue = 100; + gauge.animationSpeed = 10; + gauge.set(50); + + setInterval(function(){ + gauge.set(50 + Math.random() * (-40)); + }, 500); + }else{ + charts_dash.fadeOut(); + } + + }); + }); \ No newline at end of file diff --git a/meitu/js/home/info.js b/meitu/js/home/info.js index dabe47a..c4e7007 100644 --- a/meitu/js/home/info.js +++ b/meitu/js/home/info.js @@ -90,12 +90,17 @@ define('home/info', function (require, exports, module) { //隐藏和显示 var SN_info_btn = $('#SN_info_btn'); var SN_info = $('.SN_info'); + var SN_info_item = $('.SN_info_item'); SN_info_btn.on('click', function(){ if(parseInt(SN_info.css('height')) > 100){ - SN_info.css('height', '20px'); + SN_info.css('height', '25px'); + $('.SN_info_btn_icon').css('fontSize', '20px'); + SN_info_item.hide(); }else{ SN_info.css('height', '130px'); + SN_info_item.show(); + $('.SN_info_btn_icon').css('fontSize', '17px'); } }); diff --git a/meitu/js/lib/gauge.min.js b/meitu/js/lib/gauge.min.js new file mode 100644 index 0000000..243f883 --- /dev/null +++ b/meitu/js/lib/gauge.min.js @@ -0,0 +1,61 @@ + +(function(){var AnimatedText,AnimatedTextFactory,Bar,BaseDonut,BaseGauge,Donut,Gauge,GaugePointer,TextRenderer,ValueUpdater,addCommas,cutHex,formatNumber,mergeObjects,secondsToString,updateObjectValues,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key];}function ctor(){this.constructor=child;}ctor.prototype=parent.prototype;child.prototype=new ctor();child.__super__=parent.prototype;return child;};(function(){var browserRequestAnimationFrame,isCancelled,lastId,vendor,vendors,_i,_len;vendors=['ms','moz','webkit','o'];for(_i=0,_len=vendors.length;_i<_len;_i++){vendor=vendors[_i];if(window.requestAnimationFrame){break;} +window.requestAnimationFrame=window[vendor+'RequestAnimationFrame'];window.cancelAnimationFrame=window[vendor+'CancelAnimationFrame']||window[vendor+'CancelRequestAnimationFrame'];} +browserRequestAnimationFrame=null;lastId=0;isCancelled={};if(!requestAnimationFrame){window.requestAnimationFrame=function(callback,element){var currTime,id,lastTime,timeToCall;currTime=new Date().getTime();timeToCall=Math.max(0,16-(currTime-lastTime));id=window.setTimeout(function(){return callback(currTime+timeToCall);},timeToCall);lastTime=currTime+timeToCall;return id;};return window.cancelAnimationFrame=function(id){return clearTimeout(id);};}else if(!window.cancelAnimationFrame){browserRequestAnimationFrame=window.requestAnimationFrame;window.requestAnimationFrame=function(callback,element){var myId;myId=++lastId;browserRequestAnimationFrame(function(){if(!isCancelled[myId]){return callback();}},element);return myId;};return window.cancelAnimationFrame=function(id){return isCancelled[id]=true;};}})();String.prototype.hashCode=function(){var char,hash,i,_i,_ref;hash=0;if(this.length===0){return hash;} +for(i=_i=0,_ref=this.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){char=this.charCodeAt(i);hash=((hash<<5)-hash)+char;hash=hash&hash;} +return hash;};secondsToString=function(sec){var hr,min;hr=Math.floor(sec/3600);min=Math.floor((sec-(hr*3600))/60);sec-=(hr*3600)+(min*60);sec+='';min+='';while(min.length<2){min='0'+min;} +while(sec.length<2){sec='0'+sec;} +hr=hr?hr+':':'';return hr+min+':'+sec;};formatNumber=function(num){return addCommas(num.toFixed(0));};updateObjectValues=function(obj1,obj2){var key,val;for(key in obj2){if(!__hasProp.call(obj2,key))continue;val=obj2[key];obj1[key]=val;} +return obj1;};mergeObjects=function(obj1,obj2){var key,out,val;out={};for(key in obj1){if(!__hasProp.call(obj1,key))continue;val=obj1[key];out[key]=val;} +for(key in obj2){if(!__hasProp.call(obj2,key))continue;val=obj2[key];out[key]=val;} +return out;};addCommas=function(nStr){var rgx,x,x1,x2;nStr+='';x=nStr.split('.');x1=x[0];x2='';if(x.length>1){x2='.'+x[1];} +rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');} +return x1+x2;};cutHex=function(nStr){if(nStr.charAt(0)==="#"){return nStr.substring(1,7);} +return nStr;};ValueUpdater=(function(){ValueUpdater.prototype.animationSpeed=32;function ValueUpdater(addToAnimationQueue,clear){if(addToAnimationQueue==null){addToAnimationQueue=true;} +this.clear=clear!=null?clear:true;if(addToAnimationQueue){AnimationUpdater.add(this);}} +ValueUpdater.prototype.update=function(force){var diff;if(force==null){force=false;} +if(force||this.displayedValue!==this.value){if(this.ctx&&this.clear){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);} +diff=this.value-this.displayedValue;if(Math.abs(diff/this.animationSpeed)<=0.001){this.displayedValue=this.value;}else{this.displayedValue=this.displayedValue+diff/this.animationSpeed;} +this.render();return true;} +return false;};return ValueUpdater;})();BaseGauge=(function(_super){__extends(BaseGauge,_super);function BaseGauge(){_ref=BaseGauge.__super__.constructor.apply(this,arguments);return _ref;} +BaseGauge.prototype.displayScale=1;BaseGauge.prototype.setTextField=function(textField){return this.textField=textField instanceof TextRenderer?textField:new TextRenderer(textField);};BaseGauge.prototype.setMinValue=function(minValue,updateStartValue){var gauge,_i,_len,_ref1,_results;this.minValue=minValue;if(updateStartValue==null){updateStartValue=true;} +if(updateStartValue){this.displayedValue=this.minValue;_ref1=this.gp||[];_results=[];for(_i=0,_len=_ref1.length;_i<_len;_i++){gauge=_ref1[_i];_results.push(gauge.displayedValue=this.minValue);} +return _results;}};BaseGauge.prototype.setOptions=function(options){if(options==null){options=null;} +this.options=mergeObjects(this.options,options);if(this.textField){this.textField.el.style.fontSize=options.fontSize+'px';} +if(this.options.angle>.5){this.gauge.options.angle=.5;} +this.configDisplayScale();return this;};BaseGauge.prototype.configDisplayScale=function(){var backingStorePixelRatio,devicePixelRatio,height,prevDisplayScale,width;prevDisplayScale=this.displayScale;if(this.options.highDpiSupport===false){delete this.displayScale;}else{devicePixelRatio=window.devicePixelRatio||1;backingStorePixelRatio=this.ctx.webkitBackingStorePixelRatio||this.ctx.mozBackingStorePixelRatio||this.ctx.msBackingStorePixelRatio||this.ctx.oBackingStorePixelRatio||this.ctx.backingStorePixelRatio||1;this.displayScale=devicePixelRatio/backingStorePixelRatio;} +if(this.displayScale!==prevDisplayScale){width=this.canvas.G__width||this.canvas.width;height=this.canvas.G__height||this.canvas.height;this.canvas.width=width*this.displayScale;this.canvas.height=height*this.displayScale;this.canvas.style.width=""+width+"px";this.canvas.style.height=""+height+"px";this.canvas.G__width=width;this.canvas.G__height=height;} +return this;};return BaseGauge;})(ValueUpdater);TextRenderer=(function(){function TextRenderer(el){this.el=el;} +TextRenderer.prototype.render=function(gauge){return this.el.innerHTML=formatNumber(gauge.displayedValue);};return TextRenderer;})();AnimatedText=(function(_super){__extends(AnimatedText,_super);AnimatedText.prototype.displayedValue=0;AnimatedText.prototype.value=0;AnimatedText.prototype.setVal=function(value){return this.value=1*value;};function AnimatedText(elem,text){this.elem=elem;this.text=text!=null?text:false;this.value=1*this.elem.innerHTML;if(this.text){this.value=0;}} +AnimatedText.prototype.render=function(){var textVal;if(this.text){textVal=secondsToString(this.displayedValue.toFixed(0));}else{textVal=addCommas(formatNumber(this.displayedValue));} +return this.elem.innerHTML=textVal;};return AnimatedText;})(ValueUpdater);AnimatedTextFactory={create:function(objList){var elem,out,_i,_len;out=[];for(_i=0,_len=objList.length;_i<_len;_i++){elem=objList[_i];out.push(new AnimatedText(elem));} +return out;}};GaugePointer=(function(_super){__extends(GaugePointer,_super);GaugePointer.prototype.displayedValue=0;GaugePointer.prototype.value=0;GaugePointer.prototype.options={strokeWidth:0.035,length:0.1,color:"#000000"};function GaugePointer(gauge){this.gauge=gauge;this.ctx=this.gauge.ctx;this.canvas=this.gauge.canvas;GaugePointer.__super__.constructor.call(this,false,false);this.setOptions();} +GaugePointer.prototype.setOptions=function(options){if(options==null){options=null;} +updateObjectValues(this.options,options);this.length=this.canvas.height*this.options.length;this.strokeWidth=this.canvas.height*this.options.strokeWidth;this.maxValue=this.gauge.maxValue;this.minValue=this.gauge.minValue;this.animationSpeed=this.gauge.animationSpeed;return this.options.angle=this.gauge.options.angle;};GaugePointer.prototype.render=function(){var angle,centerX,centerY,endX,endY,startX,startY,x,y;angle=this.gauge.getAngle.call(this,this.displayedValue);centerX=this.canvas.width/2;centerY=this.canvas.height*0.9;x=Math.round(centerX+this.length*Math.cos(angle));y=Math.round(centerY+this.length*Math.sin(angle));startX=Math.round(centerX+this.strokeWidth*Math.cos(angle-Math.PI/2));startY=Math.round(centerY+this.strokeWidth*Math.sin(angle-Math.PI/2));endX=Math.round(centerX+this.strokeWidth*Math.cos(angle+Math.PI/2));endY=Math.round(centerY+this.strokeWidth*Math.sin(angle+Math.PI/2));this.ctx.fillStyle=this.options.color;this.ctx.beginPath();this.ctx.arc(centerX,centerY,this.strokeWidth,0,Math.PI*2,true);this.ctx.fill();this.ctx.beginPath();this.ctx.moveTo(startX,startY);this.ctx.lineTo(x,y);this.ctx.lineTo(endX,endY);return this.ctx.fill();};return GaugePointer;})(ValueUpdater);Bar=(function(){function Bar(elem){this.elem=elem;} +Bar.prototype.updateValues=function(arrValues){this.value=arrValues[0];this.maxValue=arrValues[1];this.avgValue=arrValues[2];return this.render();};Bar.prototype.render=function(){var avgPercent,valPercent;if(this.textField){this.textField.text(formatNumber(this.value));} +if(this.maxValue===0){this.maxValue=this.avgValue*2;} +valPercent=(this.value/this.maxValue)*100;avgPercent=(this.avgValue/this.maxValue)*100;$(".bar-value",this.elem).css({"width":valPercent+"%"});return $(".typical-value",this.elem).css({"width":avgPercent+"%"});};return Bar;})();Gauge=(function(_super){__extends(Gauge,_super);Gauge.prototype.elem=null;Gauge.prototype.value=[20];Gauge.prototype.maxValue=80;Gauge.prototype.minValue=0;Gauge.prototype.displayedAngle=0;Gauge.prototype.displayedValue=0;Gauge.prototype.lineWidth=40;Gauge.prototype.paddingBottom=0.1;Gauge.prototype.percentColors=null;Gauge.prototype.options={colorStart:"#6fadcf",colorStop:void 0,gradientType:0,strokeColor:"#e0e0e0",pointer:{length:0.8,strokeWidth:0.035},angle:0.15,lineWidth:0.44,fontSize:40,limitMax:false};function Gauge(canvas){this.canvas=canvas;Gauge.__super__.constructor.call(this);this.percentColors=null;if(typeof G_vmlCanvasManager!=='undefined'){this.canvas=window.G_vmlCanvasManager.initElement(this.canvas);} +this.ctx=this.canvas.getContext('2d');this.gp=[new GaugePointer(this)];this.setOptions();this.render();} +Gauge.prototype.setOptions=function(options){var gauge,_i,_len,_ref1;if(options==null){options=null;} +Gauge.__super__.setOptions.call(this,options);this.configPercentColors();this.lineWidth=this.canvas.height*(1-this.paddingBottom)*this.options.lineWidth;this.radius=this.canvas.height*(1-this.paddingBottom)-this.lineWidth;this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);this.render();_ref1=this.gp;for(_i=0,_len=_ref1.length;_i<_len;_i++){gauge=_ref1[_i];gauge.setOptions(this.options.pointer);gauge.render();} +return this;};Gauge.prototype.configPercentColors=function(){var bval,gval,i,rval,_i,_ref1,_results;this.percentColors=null;if(this.options.percentColors!==void 0){this.percentColors=new Array();_results=[];for(i=_i=0,_ref1=this.options.percentColors.length-1;0<=_ref1?_i<=_ref1:_i>=_ref1;i=0<=_ref1?++_i:--_i){rval=parseInt((cutHex(this.options.percentColors[i][1])).substring(0,2),16);gval=parseInt((cutHex(this.options.percentColors[i][1])).substring(2,4),16);bval=parseInt((cutHex(this.options.percentColors[i][1])).substring(4,6),16);_results.push(this.percentColors[i]={pct:this.options.percentColors[i][0],color:{r:rval,g:gval,b:bval}});} +return _results;}};Gauge.prototype.set=function(value){var i,max_hit,val,_i,_j,_len,_ref1;if(!(value instanceof Array)){value=[value];} +if(value.length>this.gp.length){for(i=_i=0,_ref1=value.length-this.gp.length;0<=_ref1?_i<_ref1:_i>_ref1;i=0<=_ref1?++_i:--_i){this.gp.push(new GaugePointer(this));}} +i=0;max_hit=false;for(_j=0,_len=value.length;_j<_len;_j++){val=value[_j];if(val>this.maxValue){this.maxValue=this.value*1.1;max_hit=true;} +this.gp[i].value=val;this.gp[i++].setOptions({maxValue:this.maxValue,angle:this.options.angle});} +this.value=value[value.length-1];if(max_hit){if(!this.options.limitMax){return AnimationUpdater.run();}}else{return AnimationUpdater.run();}};Gauge.prototype.getAngle=function(value){return(1+this.options.angle)*Math.PI+((value-this.minValue)/(this.maxValue-this.minValue))*(1-this.options.angle*2)*Math.PI;};Gauge.prototype.getColorForPercentage=function(pct,grad){var color,endColor,i,rangePct,startColor,_i,_ref1;if(pct===0){color=this.percentColors[0].color;}else{color=this.percentColors[this.percentColors.length-1].color;for(i=_i=0,_ref1=this.percentColors.length-1;0<=_ref1?_i<=_ref1:_i>=_ref1;i=0<=_ref1?++_i:--_i){if(pct<=this.percentColors[i].pct){if(grad===true){startColor=this.percentColors[i-1];endColor=this.percentColors[i];rangePct=(pct-startColor.pct)/(endColor.pct-startColor.pct);color={r:Math.floor(startColor.color.r*(1-rangePct)+endColor.color.r*rangePct),g:Math.floor(startColor.color.g*(1-rangePct)+endColor.color.g*rangePct),b:Math.floor(startColor.color.b*(1-rangePct)+endColor.color.b*rangePct)};}else{color=this.percentColors[i].color;} +break;}}} +return'rgb('+[color.r,color.g,color.b].join(',')+')';};Gauge.prototype.getColorForValue=function(val,grad){var pct;pct=(val-this.minValue)/(this.maxValue-this.minValue);return this.getColorForPercentage(pct,grad);};Gauge.prototype.render=function(){var displayedAngle,fillStyle,gauge,h,w,_i,_len,_ref1,_results;w=this.canvas.width/2;h=this.canvas.height*(1-this.paddingBottom);displayedAngle=this.getAngle(this.displayedValue);if(this.textField){this.textField.render(this);} +this.ctx.lineCap="butt";if(this.options.customFillStyle!==void 0){fillStyle=this.options.customFillStyle(this);}else if(this.percentColors!==null){fillStyle=this.getColorForValue(this.displayedValue,true);}else if(this.options.colorStop!==void 0){if(this.options.gradientType===0){fillStyle=this.ctx.createRadialGradient(w,h,9,w,h,70);}else{fillStyle=this.ctx.createLinearGradient(0,0,w,0);} +fillStyle.addColorStop(0,this.options.colorStart);fillStyle.addColorStop(1,this.options.colorStop);}else{fillStyle=this.options.colorStart;} +this.ctx.strokeStyle=fillStyle;this.ctx.beginPath();this.ctx.arc(w,h,this.radius,(1+this.options.angle)*Math.PI,displayedAngle,false);this.ctx.lineWidth=this.lineWidth;this.ctx.stroke();this.ctx.strokeStyle=this.options.strokeColor;this.ctx.beginPath();this.ctx.arc(w,h,this.radius,displayedAngle,(2-this.options.angle)*Math.PI,false);this.ctx.stroke();_ref1=this.gp;_results=[];for(_i=0,_len=_ref1.length;_i<_len;_i++){gauge=_ref1[_i];_results.push(gauge.update(true));} +return _results;};return Gauge;})(BaseGauge);BaseDonut=(function(_super){__extends(BaseDonut,_super);BaseDonut.prototype.lineWidth=15;BaseDonut.prototype.displayedValue=0;BaseDonut.prototype.value=33;BaseDonut.prototype.maxValue=80;BaseDonut.prototype.minValue=0;BaseDonut.prototype.options={lineWidth:0.10,colorStart:"#6f6ea0",colorStop:"#c0c0db",strokeColor:"#eeeeee",shadowColor:"#d5d5d5",angle:0.35};function BaseDonut(canvas){this.canvas=canvas;BaseDonut.__super__.constructor.call(this);if(typeof G_vmlCanvasManager!=='undefined'){this.canvas=window.G_vmlCanvasManager.initElement(this.canvas);} +this.ctx=this.canvas.getContext('2d');this.setOptions();this.render();} +BaseDonut.prototype.getAngle=function(value){return(1-this.options.angle)*Math.PI+((value-this.minValue)/(this.maxValue-this.minValue))*((2+this.options.angle)-(1-this.options.angle))*Math.PI;};BaseDonut.prototype.setOptions=function(options){if(options==null){options=null;} +BaseDonut.__super__.setOptions.call(this,options);this.lineWidth=this.canvas.height*this.options.lineWidth;this.radius=this.canvas.height/2-this.lineWidth/2;return this;};BaseDonut.prototype.set=function(value){this.value=value;if(this.value>this.maxValue){this.maxValue=this.value*1.1;} +return AnimationUpdater.run();};BaseDonut.prototype.render=function(){var displayedAngle,grdFill,h,start,stop,w;displayedAngle=this.getAngle(this.displayedValue);w=this.canvas.width/2;h=this.canvas.height/2;if(this.textField){this.textField.render(this);} +grdFill=this.ctx.createRadialGradient(w,h,39,w,h,70);grdFill.addColorStop(0,this.options.colorStart);grdFill.addColorStop(1,this.options.colorStop);start=this.radius-this.lineWidth/2;stop=this.radius+this.lineWidth/2;this.ctx.strokeStyle=this.options.strokeColor;this.ctx.beginPath();this.ctx.arc(w,h,this.radius,(1-this.options.angle)*Math.PI,(2+this.options.angle)*Math.PI,false);this.ctx.lineWidth=this.lineWidth;this.ctx.lineCap="round";this.ctx.stroke();this.ctx.strokeStyle=grdFill;this.ctx.beginPath();this.ctx.arc(w,h,this.radius,(1-this.options.angle)*Math.PI,displayedAngle,false);return this.ctx.stroke();};return BaseDonut;})(BaseGauge);Donut=(function(_super){__extends(Donut,_super);function Donut(){_ref1=Donut.__super__.constructor.apply(this,arguments);return _ref1;} +Donut.prototype.strokeGradient=function(w,h,start,stop){var grd;grd=this.ctx.createRadialGradient(w,h,start,w,h,stop);grd.addColorStop(0,this.options.shadowColor);grd.addColorStop(0.12,this.options._orgStrokeColor);grd.addColorStop(0.88,this.options._orgStrokeColor);grd.addColorStop(1,this.options.shadowColor);return grd;};Donut.prototype.setOptions=function(options){var h,start,stop,w;if(options==null){options=null;} +Donut.__super__.setOptions.call(this,options);w=this.canvas.width/2;h=this.canvas.height/2;start=this.radius-this.lineWidth/2;stop=this.radius+this.lineWidth/2;this.options._orgStrokeColor=this.options.strokeColor;this.options.strokeColor=this.strokeGradient(w,h,start,stop);return this;};return Donut;})(BaseDonut);window.AnimationUpdater={elements:[],animId:null,addAll:function(list){var elem,_i,_len,_results;_results=[];for(_i=0,_len=list.length;_i<_len;_i++){elem=list[_i];_results.push(AnimationUpdater.elements.push(elem));} +return _results;},add:function(object){return AnimationUpdater.elements.push(object);},run:function(){var animationFinished,elem,_i,_len,_ref2;animationFinished=true;_ref2=AnimationUpdater.elements;for(_i=0,_len=_ref2.length;_i<_len;_i++){elem=_ref2[_i];if(elem.update()){animationFinished=false;}} +if(!animationFinished){return AnimationUpdater.animId=requestAnimationFrame(AnimationUpdater.run);}else{return cancelAnimationFrame(AnimationUpdater.animId);}}};window.Gauge=Gauge;window.Donut=Donut;window.BaseDonut=BaseDonut;window.TextRenderer=TextRenderer;}).call(this); \ No newline at end of file diff --git a/meitu/js/lib/justgage.1.0.1.min.js b/meitu/js/lib/justgage.1.0.1.min.js new file mode 100644 index 0000000..5e0e534 --- /dev/null +++ b/meitu/js/lib/justgage.1.0.1.min.js @@ -0,0 +1,12 @@ +/** + * JustGage - a handy JavaScript plugin for generating and animating nice & clean dashboard gauges. + * Copyright (c) 2012 Bojan Djuricic - pindjur(at)gmail(dot)com | http://www.madcog.com + * Licensed under MIT. + * Date: 31/07/2012 + * @author Bojan Djuricic (@Toorshia) + * @version 1.0 + * + * http://www.justgage.com + */ + +JustGage=function(x){if(!x.id){alert("Missing id parameter for gauge!");return false}if(!document.getElementById(x.id)){alert('No element with id: "'+x.id+'" found!');return false}this.config={id:x.id,title:(x.title)?x.title:"Title",titleFontColor:(x.titleFontColor)?x.titleFontColor:"#999999",value:(x.value)?x.value:0,valueFontColor:(x.valueFontColor)?x.valueFontColor:"#010101",min:(x.min)?x.min:0,max:(x.max)?x.max:100,showMinMax:(x.showMinMax!=null)?x.showMinMax:true,gaugeWidthScale:(x.gaugeWidthScale)?x.gaugeWidthScale:1,gaugeColor:(x.gaugeColor)?x.gaugeColor:"#edebeb",label:(x.label)?x.label:"",showInnerShadow:(x.showInnerShadow!=null)?x.showInnerShadow:true,shadowOpacity:(x.shadowOpacity)?x.shadowOpacity:0.2,shadowSize:(x.shadowSize)?x.shadowSize:5,shadowVerticalOffset:(x.shadowVerticalOffset)?x.shadowVerticalOffset:3,levelColors:(x.levelColors)?x.levelColors:percentColors,levelColorsGradient:(x.levelColorsGradient!=null)?x.levelColorsGradient:true,labelFontColor:(x.labelFontColor)?x.labelFontColor:"#b3b3b3",startAnimationTime:(x.startAnimationTime)?x.startAnimationTime:700,startAnimationType:(x.startAnimationType)?x.startAnimationType:">",refreshAnimationTime:(x.refreshAnimationTime)?x.refreshAnimationTime:700,refreshAnimationType:(x.refreshAnimationType)?x.refreshAnimationType:">"};if(x.value>this.config.max){this.config.value=this.config.max}if(x.value1.25){c=1.25*q;l=q}else{c=d;l=d/1.25}var i=(d-c)/2;var g=(q-l)/2;var s=((l/8)>10)?(l/10):10;var n=i+c/2;var m=g+l/6.5;var k=((l/6.4)>16)?(l/6.4):16;var r=i+c/2;var p=g+l/1.4;var b=((l/16)>10)?(l/16):10;var f=i+c/2;var e=p+k/2+6;var j=((l/16)>10)?(l/16):10;var w=i+(c/10)+(c/6.666666666666667*this.config.gaugeWidthScale)/2;var v=g+l/1.126760563380282;var h=((l/16)>10)?(l/16):10;var u=i+c-(c/10)-(c/6.666666666666667*this.config.gaugeWidthScale)/2;var t=g+l/1.126760563380282;this.params={canvasW:d,canvasH:q,widgetW:c,widgetH:l,dx:i,dy:g,titleFontSize:s,titleX:n,titleY:m,valueFontSize:k,valueX:r,valueY:p,labelFontSize:b,labelX:f,labelY:e,minFontSize:j,minX:w,minY:v,maxFontSize:h,maxX:u,maxY:t};this.canvas.customAttributes.pki=function(K,L,N,E,O,F,D,y){var B=(1-(K-L)/(N-L))*Math.PI,G=E/2-E/10,J=G-E/6.666666666666667*y,C=E/2+F,A=O/1.25+D,H=E/2+F+G*Math.cos(B),P=O-(O-A)+D-G*Math.sin(B),M=E/2+F+J*Math.cos(B),z=O-(O-A)+D-J*Math.sin(B),I;I+="M"+(C-J)+","+A+" ";I+="L"+(C-G)+","+A+" ";I+="A"+G+","+G+" 0 0,1 "+H+","+P+" ";I+="L"+M+","+z+" ";I+="A"+J+","+J+" 0 0,0 "+(C-J)+","+A+" ";I+="z ";return{path:I}};this.gauge=this.canvas.path().attr({stroke:"none",fill:this.config.gaugeColor,pki:[this.config.max,this.config.min,this.config.max,this.params.widgetW,this.params.widgetH,this.params.dx,this.params.dy,this.config.gaugeWidthScale]});this.gauge.id=this.config.id+"-gauge";this.level=this.canvas.path().attr({stroke:"none",fill:getColorForPercentage((this.config.value-this.config.min)/(this.config.max-this.config.min),this.config.levelColors,this.config.levelColorsGradient),pki:[this.config.min,this.config.min,this.config.max,this.params.widgetW,this.params.widgetH,this.params.dx,this.params.dy,this.config.gaugeWidthScale]});this.level.id=this.config.id+"-level";this.txtTitle=this.canvas.text(this.params.titleX,this.params.titleY,this.config.title);this.txtTitle.attr({"font-size":this.params.titleFontSize,"font-weight":"bold","font-family":"Arial",fill:this.config.titleFontColor,"fill-opacity":"1"});this.txtTitle.id=this.config.id+"-txttitle";this.txtValue=this.canvas.text(this.params.valueX,this.params.valueY,this.originalValue);this.txtValue.attr({"font-size":this.params.valueFontSize,"font-weight":"bold","font-family":"Arial",fill:this.config.valueFontColor,"fill-opacity":"0"});this.txtValue.id=this.config.id+"-txtvalue";this.txtLabel=this.canvas.text(this.params.labelX,this.params.labelY,this.config.label);this.txtLabel.attr({"font-size":this.params.labelFontSize,"font-weight":"normal","font-family":"Arial",fill:this.config.labelFontColor,"fill-opacity":"0"});this.txtLabel.id=this.config.id+"-txtlabel";this.txtMin=this.canvas.text(this.params.minX,this.params.minY,this.config.min);this.txtMin.attr({"font-size":this.params.minFontSize,"font-weight":"normal","font-family":"Arial",fill:this.config.labelFontColor,"fill-opacity":(this.config.showMinMax==true)?"1":"0"});this.txtMin.id=this.config.id+"-txtmin";this.txtMax=this.canvas.text(this.params.maxX,this.params.maxY,this.config.max);this.txtMax.attr({"font-size":this.params.maxFontSize,"font-weight":"normal","font-family":"Arial",fill:this.config.labelFontColor,"fill-opacity":(this.config.showMinMax==true)?"1":"0"});this.txtMax.id=this.config.id+"-txtmax";var a=this.canvas.canvas.childNodes[1];var o="http://www.w3.org/2000/svg";if(ie<9){onCreateElementNsReady(function(){this.generateShadow()})}else{this.generateShadow(o,a)}this.level.animate({pki:[this.config.value,this.config.min,this.config.max,this.params.widgetW,this.params.widgetH,this.params.dx,this.params.dy,this.config.gaugeWidthScale]},this.config.startAnimationTime,this.config.startAnimationType);this.txtValue.animate({"fill-opacity":"1"},this.config.startAnimationTime,this.config.startAnimationType);this.txtLabel.animate({"fill-opacity":"1"},this.config.startAnimationTime,this.config.startAnimationType)};JustGage.prototype.refresh=function(b){originalVal=b;if(b>this.config.max){b=this.config.max}if(b",b[0]){}return a>4?a:c}()); \ No newline at end of file diff --git a/meitu/js/lib/raphael.2.1.0.min.js b/meitu/js/lib/raphael.2.1.0.min.js new file mode 100644 index 0000000..4153bba --- /dev/null +++ b/meitu/js/lib/raphael.2.1.0.min.js @@ -0,0 +1,10 @@ +// +--------------------------------------------------------------------+ \\ +// Raphal 2.1.0 - JavaScript Vector Library \\ +// +-------------------------------------------------------------------- \\ +// Copyright 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) \\ +// Copyright 2008-2012 Sencha Labs (http://sencha.com) \\ +// +-------------------------------------------------------------------- \\ +// Licensed under the MIT (http://raphaeljs.com/license.html) license. \\ +// +--------------------------------------------------------------------+ \\ + +(function(a){var b="0.3.4",c="hasOwnProperty",d=/[\.\/]/,e="*",f=function(){},g=function(a,b){return a-b},h,i,j={n:{}},k=function(a,b){var c=j,d=i,e=Array.prototype.slice.call(arguments,2),f=k.listeners(a),l=0,m=!1,n,o=[],p={},q=[],r=h,s=[];h=a,i=0;for(var t=0,u=f.length;tf*b.top){e=b.percents[y],p=b.percents[y-1]||0,t=t/b.top*(e-p),o=b.percents[y+1],j=b.anim[e];break}f&&d.attr(b.anim[b.percents[y]])}if(!!j){if(!k){for(var A in j)if(j[g](A))if(U[g](A)||d.paper.customAttributes[g](A)){u[A]=d.attr(A),u[A]==null&&(u[A]=T[A]),v[A]=j[A];switch(U[A]){case C:w[A]=(v[A]-u[A])/t;break;case"colour":u[A]=a.getRGB(u[A]);var B=a.getRGB(v[A]);w[A]={r:(B.r-u[A].r)/t,g:(B.g-u[A].g)/t,b:(B.b-u[A].b)/t};break;case"path":var D=bR(u[A],v[A]),E=D[1];u[A]=D[0],w[A]=[];for(y=0,z=u[A].length;yd)return d;while(cf?c=e:d=e,e=(d-c)/2+c}return e}function n(a,b){var c=o(a,b);return((l*c+k)*c+j)*c}function m(a){return((i*a+h)*a+g)*a}var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;return n(a,1/(200*f))}function cq(){return this.x+q+this.y+q+this.width+" "+this.height}function cp(){return this.x+q+this.y}function cb(a,b,c,d,e,f){a!=null?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function bH(b,c,d){b=a._path2curve(b),c=a._path2curve(c);var e,f,g,h,i,j,k,l,m,n,o=d?0:[];for(var p=0,q=b.length;p=0&&y<=1&&A>=0&&A<=1&&(d?n++:n.push({x:x.x,y:x.y,t1:y,t2:A}))}}return n}function bF(a,b){return bG(a,b,1)}function bE(a,b){return bG(a,b)}function bD(a,b,c,d,e,f,g,h){if(!(x(a,c)x(e,g)||x(b,d)x(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(!k)return;var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(n<+y(a,c).toFixed(2)||n>+x(a,c).toFixed(2)||n<+y(e,g).toFixed(2)||n>+x(e,g).toFixed(2)||o<+y(b,d).toFixed(2)||o>+x(b,d).toFixed(2)||o<+y(f,h).toFixed(2)||o>+x(f,h).toFixed(2))return;return{x:l,y:m}}}function bC(a,b,c,d,e,f,g,h,i){if(!(i<0||bB(a,b,c,d,e,f,g,h)n)k/=2,l+=(m1?1:i<0?0:i;var j=i/2,k=12,l=[-0.1252,.1252,-0.3678,.3678,-0.5873,.5873,-0.7699,.7699,-0.9041,.9041,-0.9816,.9816],m=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],n=0;for(var o=0;od;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function bx(){return this.hex}function bv(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("?"),h=d.cache=d.cache||{},i=d.count=d.count||[];if(h[g](f)){bu(i,f);return c?c(h[f]):h[f]}i.length>=1e3&&delete h[i.shift()],i.push(f),h[f]=a[m](b,e);return c?c(h[f]):h[f]}return d}function bu(a,b){for(var c=0,d=a.length;c',bl=bk.firstChild,bl.style.behavior="url(#default#VML)";if(!bl||typeof bl.adj!="object")return a.type=p;bk=null}a.svg=!(a.vml=a.type=="VML"),a._Paper=j,a.fn=k=j.prototype=a.prototype,a._id=0,a._oid=0,a.is=function(a,b){b=v.call(b);if(b=="finite")return!M[g](+a);if(b=="array")return a instanceof Array;return b=="null"&&a===null||b==typeof a&&a!==null||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||H.call(a).slice(8,-1).toLowerCase()==b},a.angle=function(b,c,d,e,f,g){if(f==null){var h=b-d,i=c-e;if(!h&&!i)return 0;return(180+w.atan2(-i,-h)*180/B+360)%360}return a.angle(b,c,f,g)-a.angle(d,e,f,g)},a.rad=function(a){return a%360*B/180},a.deg=function(a){return a*180/B%360},a.snapTo=function(b,c,d){d=a.is(d,"finite")?d:10;if(a.is(b,E)){var e=b.length;while(e--)if(z(b[e]-c)<=d)return b[e]}else{b=+b;var f=c%b;if(fb-d)return c-f+b}return c};var bn=a.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=w.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)});a.setWindow=function(b){eve("raphael.setWindow",a,h.win,b),h.win=b,h.doc=h.win.document,a._engine.initWin&&a._engine.initWin(h.win)};var bo=function(b){if(a.vml){var c=/^\s+|\s+$/g,d;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),d=e.body}catch(f){d=createPopup().document.body}var g=d.createTextRange();bo=bv(function(a){try{d.style.color=r(a).replace(c,p);var b=g.queryCommandValue("ForeColor");b=(b&255)<<16|b&65280|(b&16711680)>>>16;return"#"+("000000"+b.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=h.doc.createElement("i");i.title="Raphal Colour Picker",i.style.display="none",h.doc.body.appendChild(i),bo=bv(function(a){i.style.color=a;return h.doc.defaultView.getComputedStyle(i,p).getPropertyValue("color")})}return bo(b)},bp=function(){return"hsb("+[this.h,this.s,this.b]+")"},bq=function(){return"hsl("+[this.h,this.s,this.l]+")"},br=function(){return this.hex},bs=function(b,c,d){c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);if(c==null&&a.is(b,D)){var e=a.getRGB(b);b=e.r,c=e.g,d=e.b}if(b>1||c>1||d>1)b/=255,c/=255,d/=255;return[b,c,d]},bt=function(b,c,d,e){b*=255,c*=255,d*=255;var f={r:b,g:c,b:d,hex:a.rgb(b,c,d),toString:br};a.is(e,"finite")&&(f.opacity=e);return f};a.color=function(b){var c;a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b?(c=a.hsb2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b?(c=a.hsl2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):(a.is(b,"string")&&(b=a.getRGB(b)),a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b?(c=a.rgb2hsl(b),b.h=c.h,b.s=c.s,b.l=c.l,c=a.rgb2hsb(b),b.v=c.b):(b={hex:"none"},b.r=b.g=b.b=b.h=b.s=b.v=b.l=-1)),b.toString=br;return b},a.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;a=a%360/60,i=c*b,h=i*(1-z(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h);if(a>1||b>1||c>1)a/=360,b/=100,c/=100;a*=360;var e,f,g,h,i;a=a%360/60,i=2*b*(c<.5?c:1-c),h=i*(1-z(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.rgb2hsb=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;f=x(a,b,c),g=f-y(a,b,c),d=g==0?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=g==0?0:g/f;return{h:d,s:e,b:f,toString:bp}},a.rgb2hsl=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;g=x(a,b,c),h=y(a,b,c),i=g-h,d=i==0?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=i==0?0:f<.5?i/(2*f):i/(2-2*f);return{h:d,s:e,l:f,toString:bq}},a._path2string=function(){return this.join(",").replace(Y,"$1")};var bw=a._preload=function(a,b){var c=h.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,h.doc.body.removeChild(this)},c.onerror=function(){h.doc.body.removeChild(this)},h.doc.body.appendChild(c),c.src=a};a.getRGB=bv(function(b){if(!b||!!((b=r(b)).indexOf("-")+1))return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx};if(b=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:bx};!X[g](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bo(b));var c,d,e,f,h,i,j,k=b.match(L);if(k){k[2]&&(f=R(k[2].substring(5),16),e=R(k[2].substring(3,5),16),d=R(k[2].substring(1,3),16)),k[3]&&(f=R((i=k[3].charAt(3))+i,16),e=R((i=k[3].charAt(2))+i,16),d=R((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));if(k[5]){j=k[5][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsb2rgb(d,e,f,h)}if(k[6]){j=k[6][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsl2rgb(d,e,f,h)}k={r:d,g:e,b:f,toString:bx},k.hex="#"+(16777216|f|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);return k}return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx}},a),a.hsb=bv(function(b,c,d){return a.hsb2rgb(b,c,d).hex}),a.hsl=bv(function(b,c,d){return a.hsl2rgb(b,c,d).hex}),a.rgb=bv(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),a.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b}));return c.hex},a.getColor.reset=function(){delete this.start},a.parsePathString=function(b){if(!b)return null;var c=bz(b);if(c.arr)return bJ(c.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];a.is(b,E)&&a.is(b[0],E)&&(e=bJ(b)),e.length||r(b).replace(Z,function(a,b,c){var f=[],g=b.toLowerCase();c.replace(_,function(a,b){b&&f.push(+b)}),g=="m"&&f.length>2&&(e.push([b][n](f.splice(0,2))),g="l",b=b=="m"?"l":"L");if(g=="r")e.push([b][n](f));else while(f.length>=d[g]){e.push([b][n](f.splice(0,d[g])));if(!d[g])break}}),e.toString=a._path2string,c.arr=bJ(e);return e},a.parseTransformString=bv(function(b){if(!b)return null;var c={r:3,s:4,t:2,m:6},d=[];a.is(b,E)&&a.is(b[0],E)&&(d=bJ(b)),d.length||r(b).replace($,function(a,b,c){var e=[],f=v.call(b);c.replace(_,function(a,b){b&&e.push(+b)}),d.push([b][n](e))}),d.toString=a._path2string;return d});var bz=function(a){var b=bz.ps=bz.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[g](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])});return b[a]};a.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=A(j,3),l=A(j,2),m=i*i,n=m*i,o=k*a+l*3*i*c+j*3*i*i*e+n*g,p=k*b+l*3*i*d+j*3*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,x=j*e+i*g,y=j*f+i*h,z=90-w.atan2(q-s,r-t)*180/B;(q>s||r=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},a.isBBoxIntersect=function(b,c){var d=a.isPointInsideBBox;return d(c,b.x,b.y)||d(c,b.x2,b.y)||d(c,b.x,b.y2)||d(c,b.x2,b.y2)||d(b,c.x,c.y)||d(b,c.x2,c.y)||d(b,c.x,c.y2)||d(b,c.x2,c.y2)||(b.xc.x||c.xb.x)&&(b.yc.y||c.yb.y)},a.pathIntersection=function(a,b){return bH(a,b)},a.pathIntersectionNumber=function(a,b){return bH(a,b,1)},a.isPointInsidePath=function(b,c,d){var e=a.pathBBox(b);return a.isPointInsideBBox(e,c,d)&&bH(b,[["M",c,d],["H",e.x2+10]],1)%2==1},a._removedFactory=function(a){return function(){eve("raphael.log",null,"Raphal: you are calling to method "+a+" of removed object",a)}};var bI=a.pathBBox=function(a){var b=bz(a);if(b.bbox)return b.bbox;if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=bR(a);var c=0,d=0,e=[],f=[],g;for(var h=0,i=a.length;h1&&(v=w.sqrt(v),c=v*c,d=v*d);var x=c*c,y=d*d,A=(f==g?-1:1)*w.sqrt(z((x*y-x*u*u-y*t*t)/(x*u*u+y*t*t))),C=A*c*u/d+(a+h)/2,D=A*-d*t/c+(b+i)/2,E=w.asin(((b-D)/d).toFixed(9)),F=w.asin(((i-D)/d).toFixed(9));E=aF&&(E=E-B*2),!g&&F>E&&(F=F-B*2)}else E=j[0],F=j[1],C=j[2],D=j[3];var G=F-E;if(z(G)>k){var H=F,I=h,J=i;F=E+k*(g&&F>E?1:-1),h=C+c*w.cos(F),i=D+d*w.sin(F),m=bO(h,i,c,d,e,0,g,I,J,[F,H,C,D])}G=F-E;var K=w.cos(E),L=w.sin(E),M=w.cos(F),N=w.sin(F),O=w.tan(G/4),P=4/3*c*O,Q=4/3*d*O,R=[a,b],S=[a+P*L,b-Q*K],T=[h+P*N,i-Q*M],U=[h,i];S[0]=2*R[0]-S[0],S[1]=2*R[1]-S[1];if(j)return[S,T,U][n](m);m=[S,T,U][n](m).join()[s](",");var V=[];for(var W=0,X=m.length;W"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y)),i=f-2*d+b-(h-2*f+d),j=2*(d-b)-2*(f-d),k=b-d,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y));return{min:{x:y[m](0,p),y:y[m](0,o)},max:{x:x[m](0,p),y:x[m](0,o)}}}),bR=a._path2curve=bv(function(a,b){var c=!b&&bz(a);if(!b&&c.curve)return bJ(c.curve);var d=bL(a),e=b&&bL(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=function(a,b){var c,d;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null);switch(a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][n](bO[m](0,[b.x,b.y][n](a.slice(1))));break;case"S":c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][n](a.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][n](bN(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][n](bN(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][n](bM(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][n](bM(b.x,b.y,a[1],b.y));break;case"V":a=["C"][n](bM(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][n](bM(b.x,b.y,b.X,b.Y))}return a},i=function(a,b){if(a[b].length>7){a[b].shift();var c=a[b];while(c.length)a.splice(b++,0,["C"][n](c.splice(0,6)));a.splice(b,1),l=x(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&a[g][0]=="M"&&b[g][0]!="M"&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=x(d.length,e&&e.length||0))};for(var k=0,l=x(d.length,e&&e.length||0);ke){if(c&&!l.start){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),k+=["C"+m.start.x,m.start.y,m.m.x,m.m.y,m.x,m.y];if(f)return k;l.start=k,k=["M"+m.x,m.y+"C"+m.n.x,m.n.y,m.end.x,m.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!b&&!c){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n);return{x:m.x,y:m.y,alpha:m.alpha}}}n+=j,g=+i[5],h=+i[6]}k+=i.shift()+i}l.end=k,m=b?n:c?l:a.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),m.alpha&&(m={x:m.x,y:m.y,alpha:m.alpha});return m}},cu=ct(1),cv=ct(),cw=ct(0,1);a.getTotalLength=cu,a.getPointAtLength=cv,a.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return cw(a,b).end;var d=cw(a,c,1);return b?cw(d,b).end:d},cl.getTotalLength=function(){if(this.type=="path"){if(this.node.getTotalLength)return this.node.getTotalLength();return cu(this.attrs.path)}},cl.getPointAtLength=function(a){if(this.type=="path")return cv(this.attrs.path,a)},cl.getSubpath=function(b,c){if(this.type=="path")return a.getSubpath(this.attrs.path,b,c)};var cx=a.easing_formulas={linear:function(a){return a},"<":function(a){return A(a,1.7)},">":function(a){return A(a,.48)},"<>":function(a){var b=.48-a/1.04,c=w.sqrt(.1734+b*b),d=c-b,e=A(z(d),1/3)*(d<0?-1:1),f=-c-b,g=A(z(f),1/3)*(f<0?-1:1),h=e+g+.5;return(1-h)*3*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a=a-1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){if(a==!!a)return a;return A(2,-10*a)*w.sin((a-.075)*2*B/.3)+1},bounce:function(a){var b=7.5625,c=2.75,d;a<1/c?d=b*a*a:a<2/c?(a-=1.5/c,d=b*a*a+.75):a<2.5/c?(a-=2.25/c,d=b*a*a+.9375):(a-=2.625/c,d=b*a*a+.984375);return d}};cx.easeIn=cx["ease-in"]=cx["<"],cx.easeOut=cx["ease-out"]=cx[">"],cx.easeInOut=cx["ease-in-out"]=cx["<>"],cx["back-in"]=cx.backIn,cx["back-out"]=cx.backOut;var cy=[],cz=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,16)},cA=function(){var b=+(new Date),c=0;for(;c1&&!d.next){for(s in k)k[g](s)&&(r[s]=d.totalOrigin[s]);d.el.attr(r),cE(d.anim,d.el,d.anim.percents[0],null,d.totalOrigin,d.repeat-1)}d.next&&!d.stop&&cE(d.anim,d.el,d.next,null,d.totalOrigin,d.repeat)}}a.svg&&m&&m.paper&&m.paper.safari(),cy.length&&cz(cA)},cB=function(a){return a>255?255:a<0?0:a};cl.animateWith=function(b,c,d,e,f,g){var h=this;if(h.removed){g&&g.call(h);return h}var i=d instanceof cD?d:a.animation(d,e,f,g),j,k;cE(i,h,i.percents[0],null,h.attr());for(var l=0,m=cy.length;l.5)*2-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&n!=.5&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/);if(j=="linear"){var t=e.shift();t=-d(t);if(isNaN(t))return null;var u=[0,0,f.cos(a.rad(t)),f.sin(a.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=a._parseDots(e);if(!w)return null;k=k.replace(/[\(\)\s,\xb0#]/g,"_"),b.gradient&&k!=b.gradient.id&&(p.defs.removeChild(b.gradient),delete b.gradient);if(!b.gradient){s=q(j+"Gradient",{id:k}),b.gradient=s,q(s,j=="radial"?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:b.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;x1?G.opacity/100:G.opacity});case"stroke":G=a.getRGB(p),i.setAttribute(o,G.hex),o=="stroke"&&G[b]("opacity")&&q(i,{"stroke-opacity":G.opacity>1?G.opacity/100:G.opacity}),o=="stroke"&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":(d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p);break;case"opacity":k.gradient&&!k[b]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),H&&(I=H.getElementsByTagName("stop"),q(I[I.length-1],{"stop-opacity":p}));break};default:o=="font-size"&&(p=e(p,10)+"px");var J=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[J]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(d.type=="text"&&!!(f[b]("text")||f[b]("font")||f[b]("font-size")||f[b]("x")||f[b]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(a._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[b]("text")){g.text=f.text;while(h.firstChild)h.removeChild(h.firstChild);var j=c(f.text).split("\n"),k=[],m;for(var n=0,o=j.length;n"));var $=X.getBoundingClientRect();t.W=m.w=($.right-$.left)/Y,t.H=m.h=($.bottom-$.top)/Y,t.X=m.x,t.Y=m.y+t.H/2,("x"in i||"y"in i)&&(t.path.v=a.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));var _=["x","y","text","font","font-family","font-weight","font-style","font-size"];for(var ba=0,bb=_.length;ba.25&&(c=e.sqrt(.25-i(b-.5,2))*((c>.5)*2-1)+.5),m=b+n+c);return o}),f=f.split(/\s*\-\s*/);if(l=="linear"){var p=f.shift();p=-d(p);if(isNaN(p))return null}var q=a._parseDots(f);if(!q)return null;b=b.shape||b.node;if(q.length){b.removeChild(g),g.on=!0,g.method="none",g.color=q[0].color,g.color2=q[q.length-1].color;var r=[];for(var s=0,t=q.length;s')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},a._engine.initWin(a._g.win),a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b.container,d=b.height,e,f=b.width,g=b.x,h=b.y;if(!c)throw new Error("VML container not found.");var i=new a._Paper,j=i.canvas=a._g.doc.createElement("div"),k=j.style;g=g||0,h=h||0,f=f||512,d=d||342,i.width=f,i.height=d,f==+f&&(f+="px"),d==+d&&(d+="px"),i.coordsize=u*1e3+n+u*1e3,i.coordorigin="0 0",i.span=a._g.doc.createElement("span"),i.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",j.appendChild(i.span),k.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,d),c==1?(a._g.doc.body.appendChild(j),k.left=g+"px",k.top=h+"px",k.position="absolute"):c.firstChild?c.insertBefore(j,c.firstChild):c.appendChild(j),i.renderfix=function(){};return i},a.prototype.clear=function(){a.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=a._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},a.prototype.remove=function(){a.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;return!0};var G=a.st;for(var H in E)E[b](H)&&!G[b](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}(window.Raphael) \ No newline at end of file