<!--DEBUG:--><!--DEBUG:--><style>
body {
  font-family: 'Open Sans', arial, sans-serif; }

/*.td-banner-wrap-full.td-logo-wrap-full,*/
.td-page-header,
.td-crumb-container {
  display: none; }

.t-g-main-container {
  padding: 19px 19px 20px 20px; }

.t-g-title {
  background-color: #222222;
  border-radius: 3px;
  color: #FFFFFF;
  display: inline-table;
  font-family: 'Open Sans', arial, sans-serif;
  font-size: 11px;
  font-weight: bold;
  line-height: 16px;
  padding: 2px 15px;
  position: relative;
  top: -3px;
  vertical-align: middle; }

.spinner {
  margin: 40px auto;
  width: 70px;
  text-align: center; }

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both; }

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s; }

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s; }

@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0); }

  40% {
    -webkit-transform: scale(1); } }

@keyframes sk-bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
    transform: scale(0); }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

.modal {
  top: 80px;
  z-index: 1000000; }

/*.modal{
    display: block !important;
}
.modal-dialog{
    overflow-y: initial !important
}*/
.modal-body {
  overflow-y: auto; }

#prompt_dialog .modal-body {
  height: 130px; }

/*#myModal{
  z-index: 1000000;
}*/
.modal-backdrop {
  z-index: 999999; }

#myModal .modal-body {
  height: 330px; }

#prompt_dialog textarea {
  height: 72px;
  min-height: 72px;
  resize: none; }

.chosen-container span {
  cursor: pointer; }

#t_g_title_container2 {
  text-align: left;
  padding: 0;
  display: none;
  font-weight: bold; }

#t_g_title_container2 .timeline-title {
  position: relative;
  margin-top: 0;
  padding: 10px 20px;
  margin-bottom: 14px;
  font-weight: bold;
  background-color: #f0f0f0; }
  #t_g_title_container2 .timeline-title::before {
    position: absolute;
    top: 100%;
    left: 0;
    content: '';
    border-style: solid;
    border-color: transparent;
    border-width: 0 15px 15px 0;
    border-right-color: #ccc; }

#words_names {
  height: 60px;
  min-height: 60px; }

#t_g_main_container2 {
  position: relative; }

/* nav*/
/* highcharts */
.highcharts-axis-line,
.highcharts-tick {
  stroke: #c1c1c1; }

.highcharts-tooltip-box {
  fill: rgba(255, 255, 255, 0.92); }

.highcharts-tooltip .tooltip-date {
  font-size: 11px; }
.highcharts-tooltip table {
  margin: 0;
  background-color: #fff; }
  .highcharts-tooltip table th {
    background-color: #f7f7f7; }
  .highcharts-tooltip table td {
    text-align: right; }

.highcharts-spline-series path {
  stroke-width: 2px !important; }

/* top words */
.accordion-container{
  position: relative;
  width: auto;
  height: auto;
  margin: 0;
  /*display: inline-block;*/
}
.accordion-container > h2{
  text-align: center;
  color: #fff;
  padding-bottom: 5px;
  margin-bottom: 30px;
  border-bottom: 1px solid #ddd;
}
.t-w-b-set{
  position: relative;
  width: 100%;
  height: auto;
  background-color: #f5f5f5;
  float: left;
}
.t-w-b-set > span{
  display: block;
  padding: 3px 10px;
  text-decoration: none;
  color: #555;
  font-weight: 600;
  border-bottom: 1px solid #ddd;
  -webkit-transition:all 0.2s linear;
  -moz-transition:all 0.2s linear;
  transition:all 0.2s linear;
  cursor: pointer;
}
.t-w-b-set > span i{
  position:relative;
  float: right;
  color: #666;
}
.t-w-b-set > span.active{
  background-color:#3399cc;
  color: #fff;
}
.t-w-b-set > span.active i{
  color: #fff;
}
.t-w-b-set > span a {
  font-weight: bold;
  color: #666;
}
.t-w-b-set > span.active a {
  font-weight: bold;
  color: #fff;
}
.t-w-b-content{
  position:relative;
  width: 100%;
  font-size: 15px;
  height: auto;
  background-color: #ffa;
  border-bottom: 1px solid #ddd;
  display:none;
}
.t-w-b-content p{
  padding: 0;
  margin: 0;
}
.t-w-b-chart
{
    cursor: pointer;
}
.t-w-b-main-container {
    padding: 0;
}
.t-w-b-title {
    background-color: #222222;
    border-radius: 3px;
    color: #FFFFFF;
    display: inline-table;
    font-family: 'Open Sans', arial, sans-serif;
    font-size: 11px;
    font-weight: bold;
    line-height: 16px;
    padding: 2px 15px;
    position: relative;
    top: -3px;
    vertical-align: middle;
    margin: 16px;
}
td.t-w-b-td {
  background-color: white;
  overflow:hidden;
  text-overflow: ellipsis;
  /*white-space: nowrap;*/
}
td.t-w-b-td > a {
  /*display: inline-block;*/
  background-color: white;
  overflow:hidden;
  text-overflow: ellipsis;
  /*white-space: nowrap;*/
}

td.width-date {
  width: 15%;
  padding: 10px;
  vertical-align: top;
}
td.width-data {
  padding: 0px;
  text-align: left;
}

table.t-w-b-tbl {
  background-color: white;
  width: 100%;
}

.header-word {
    white-space: nowrap;
    overflow: hidden;
    margin: 0px 20px 0px 0px;
    text-overflow: ellipsis;
    /*width: 15%;*/
    width: 35%;
    position: relative;
    float: left;
    padding-left: 5px;
}
.header-word.ranks {
  width: 16%;
}
.header-word.number {
  width: 4%;
}

.t-w-b-set .title {
  font-size: 100%;
  font-weight: bold;
}
.header-counts.title {
}
.header-counts.title span:nth-child(3) {
  text-align: center;
}
.header-word .highlight-new {
  color: red;
  /*padding: 10px 0px 10px 0px;*/
}
.header-word .highlight-today {
  color: green;
  /*padding: 10px 0px 10px 0px;*/
}
.header-word .highlight-7days {
  color: #31708f;
  /*padding: 10px 0px 10px 0px;*/
}
.t-w-b-td .highlight-fragments {
  color: orange;
  /*padding: 10px 0px 10px 0px;*/
}
.header-chains {
    white-space: nowrap;
    overflow: hidden;
    margin: 0px 20px 0px 0px;
    text-overflow: ellipsis;
    width: 21%;
    float: left;
    font-size: 80%;
    font-weight: normal;
}
.header-chevron {
    float: left;
    padding: 3px 0px 0px 0px;
    font-size: 80%;
}
.header-search a {
  float: left;
  padding: 0px 4px 0px 0px;
}
.header-search {
    /*white-space: nowrap;
    overflow: hidden;*/
    /*margin: 0px 20px 0px 0px;*/
    /*text-overflow: ellipsis;*/
    /*width: 11%;*/
    width: 13%;
    float: right;
}
.header-search.small {
  font-size:10px;
  padding: 5px 0px 0px 0px;
  height: 23px;
}
.header-counts {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 20%;
    float: left;
}
.header-counts span {
  float: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
}
.header-counts span:nth-child(1) {
  width: 55px;
}
.header-counts span:nth-child(2) {
  width: 65px;
}
.header-counts span:nth-child(3) {
  width: 55px;
}
.star-container {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/star.png) no-repeat;
  background-size: 17px;
  /*background-position: center;*/
  background-position: 2px 1px;
  width: 20px;
  float: left;
}
.label-container-empty {
  position: relative;
  vertical-align: middle;
  background-size: 17px;
  /*background-position: center;*/
  background-position: 2px 1px;
  width: 20px;
  float: left;
}
.social-container .rank {
  font-size: 7px;
  text-align: center;
  color: #000000;
  font-weight: 600;
  line-height: 22px;
}
.star-container .digest-rank {
  font-size: 7px;
  text-align: center;
  color: #ffffff;
  font-weight: 600;
  line-height: 22px;
}
.smile-container {
  position: relative;
  width: 20px;
  float: left;
}
.social-container.tw {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/twitter.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.tw.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.tw.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.tw.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
/* FB */
.social-container.fb {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/facebook.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.fb.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.fb.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.fb.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
/* GPlus */
.social-container.gplus {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/gplus.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.gplus.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.gplus.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.gplus.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.fragment-s-s {
  position: relative;
  display: inline-flex;
  height: 22px;
  vertical-align: middle;
}
.word-s-s {
  position: relative;
  display: inline-flex;
  height: 22px;
  vertical-align: middle;
}
.fragment-s-s img, .word-s-s img {
  display: inline-block;
  cursor: pointer;
}
.fragment-s-s .smile, .word-s-s .smile {
  width: 17px;
  position: relative;
  padding-bottom: 10px;
}
/*.header-word .smile {
  width: 17px;
  position: relative;
  display: inline-table;
}*/

/*@media screen and (min-width: 300px) {
    .header-counts, .header-search, .header-word, .header-chains {
      width: 100%;
    }
}*/
.icon-bing {
  background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAANiklEQVR4Xu1dfXBdRRU/Z+97TduURgrlQygiXxaBOlAEaybt/XgEw0eLA8GBqaigKKig6Ag6OBOcYRRQsYggOoAjgyIBRygQGt7de9O0IEIdgY7yYUVhAGmJ8MwIviR3j7P4MlNrWnbvu3tzb969/+bs2XN+55d9+3H2LELxtTQC2NLeF85DQYAWJ0FBgIIALY5Ai7tfjAAFAVocgRZ3vxgBCgK0OAIt7n4xAhQEaHEEWtz9YgQoCNDiCLS4+8UIUBCgxRFocfenYwSY7JNaHPtMuJ8KAZYtWzZnzpw5FwHAaiHE4YwxiqLoScuybq3Vajdt2rRpPBNotKARxglQqVQOEEI8CACHT4VvFEW/Q8STwzB8rQXxn3aXjRKgp6enrV6vbwKAI3blqRBiOAzDFQBQ/CykTAmjBHBd94sAcJ2KT4jY6/v+XSqyhUxyCJgmwAYA6FQ0t59zfqaibCGWEAKmCbANAPZUsVVOCoeGhj6gIlvIJIeAUQLYtv0GY6xD0dxnOOeLFWULsYQQKAiQEJB5VVMQIK+RS8juggAJAZlXNQUB8hq5hOwuCJAQkHlVUxAgr5FLyO6CAAkBmVc1BQHyGrmE7C4IkBCQeVVTECCvkUvI7oIACQGZVzUFAfIauYTsLgiQEJB5VVMQIK+RS8juggAJAZlXNQUB8hq5hOxuGQL09vbOqtVq+01MTCwkot0BoB0ASohIiDhORG8i4utEtLVWq73cKqnqM5IAtm0fyBhbBgBLhRBLEHGxEGI/y7KYyj9OFEWCMfYSET3NGNuMiJsQ8ZFqtfoXlfZ5kpkRBLBtezYinoiIpwDACQDwHhNBIKIXGWMPEdF97e3t69auXfumiX7S1JlnAqDjOC4ifhIATgOAeWkCJ4T4FyL+xrKsn1WrVT+vdxpyRwDbtuch4rmIKO8cHJJm0HfR1xYAWNPe3n5z3kaF3BCgu7u7PYqiiycmJr5iWdaCjAR+RzNeQ8Rr5s6de31eiJB5AvT19bGhoaFPE9G3GGN7ZzTw/2OWEOIlRPxGEAS3Zf2nIdMEqFQqRwshfipn83kI/I42yjuPpVLps9Vq9U9ZtT+TBLBtW67Pvyn/i+RaPavgKdr1byKSo8EPsjgaZI4A3d3di8bGxn7VWMcrYpwLsfvGxsbO2bBhw+tZsjZTBJAzeyL6hep9wiwBqWjLFiHEKWEYPq0ob1wsMwQQQtSJqKy6W2ccGUMdCCFqjLGVnPP1hrrQUpsZAmhZHUNYzswB4FnG2N8A4FUikoGoS1VENAsAOhBxryiKFjHGDjO1m9gwXc4LTg+C4IEYriTaZCYT4AkAkKVphsrl8qPr1q37hw5ylUqlQwghVx/LhRDdRHR8kqOTHPEaI8Ggjl1Jy84oAkRR9KwsPCWEuCMMw78mCZZt2/swxnoB4FMAcHQSuuV2MgDYYRg+noS+ODpmBAGIqMoYu9r3/YfigKDbxvO8ZUT0NQBYBdDcu0tRFG1ta2s7dnBw8EVdO5KQzzsBHpaBCIJgYxJg6OpwXfcYIcR3GWOObtsd5De1tbV1DgwMvD0nSfPLJQGEECOIeEkQBD9PE6yd9eW67lmNYlhK5XCm0oOI1/m+f3Ha/uSRAA/I00Df919NG6xd9ed53t5EJAnZHdcuxtgJ1Wq1Grd9nHa5IUAjS+fyIAi+k8UtVQm+PLhav379lQBwWZxgENHz8+bNOzLNk8RcEEAumRDx7CAIfh0H2LTbOI5zvhDixpjLxis4531p2ZwHArwl18tpD43NBsDzvE8Q0a26q4QoimRy6sFhGP69WRtU2medABNEtCoLO2YqYO4o43neJUT0Pd22aU4Is06ACzjnP9YFMEvyruve0tg8UjZLjgKzZ89epLt7qdzBdoJZJsBtnPNz4jiVpTaNUvmyYPaU1dJ3YetlnPOrTPuSSQJEUfTC3LlzjxoYGPinaQDS0O84zvFCiId1JoVyW3toaOh9pu3LJAEav/v3mnY+Tf2e591MROfq9ImIx/m+/5hOG13ZzBFACBGEYejqOpJ1edu29yeiLZZlyaNn1e8qznmsPQXVDjJHAER0fd8PVB3Ik5zuhBAR/+D7fiInjzvDKVMEmOkl413XPQ4AHtUgLZXL5T1NrgYyRQBE/Krv+9rrZg1Ap13Udd0/A8DBqoYQ0UeCIFinKq8rlykCCCEODcNQAjRjP8/z1hCRfEFN9fs651yefxj5MkMARHzF9/13G/EyQ0pd15VZRXeqmoSIt/i+f56qvK5cZggAAC3xYoht24cwxp7TCJTPOa9oyGuJFgTQgqt54d7eXmvr1q1jGptCmznnRzXf89QaCgKYQnYXel3X3QoAC1W6lruiQ0NDRgpeyP6NEsB1XXkN6l0qjrbKT4DEwnXd5wHgQBVchBCvhmG4j4psHBnTBFB+Ng4AtnDOs1LwIQ6Wym0cx3kBERepNDA9OTZNAJnqvL+KowCwjXO+l6JsrsVWrFhRsyxrvooTMk0sCIKDVGTjyBglwIoVK56wLGuJomHU1tY2ZzpSoxXtS0RMlrhhjI2qKkPEx33f/6CqvK6cUQK4rit3sJSzZBljS6rV6lO6TuRJ3nGcpTKoGjbfxzk/VUNeS9QoAWzbvpEx9jlVi4jovCAIZAbNjP1c15V43Kjh4BrO+Zc05LVEjRLAcZyLEHGNqkVEdHsQBKtV5fMo57puPwCcoWG70bQ40wToRET5grjq93qtVtt7ppZpbaSHyQstu6kCYjopxCgBZAVPxpjcC5it6nDj3nwu8v9VfZqUcxznbES8XbWdvD08Ojq6u8l/CKMEkI66riuraOpk+Axxzm1VkPIk53neI0T0IVWbiejBIAh6VOXjyBkngOM4X0bE7+sYh4jLfd8f1mmTdVnHcTxE1Lr3R0SfD4LgBpO+GSdApVI5QAghizXo9PUo51xW+yaTzqelWx4AjYyMyORO5fQuIUQky9UMDw+/YtJOnaDEtiPGz4Ds60LOuc5yKbZ9phu6riuXcdfq9COEGAjD8CSdNnFk0yKAVhKEdEROgCzLOsb3/WfjOJaVNo7jHIGI8r9/jo5NRHRaEAT36LSJI5sKARpDoEz1UjoB286RzfV6/cMbN25U3jqNA4KpNo1CU78FgMWafWxZvnz5YX19fUKznbZ4KgSQVskr04h4k66FcigcHR1dZXIppGuTinxPT09bvV6/HwA8FfkdZM7lnMubxca/1AiwdOnSckdHxx9j1vi/q1arnZ0XEsj3iUZGRuSO38oYEXx6jz32OLK/vz+K0Va7SWoEaIwCq+QrG9pW/rfBA6VS6czBwUFZWi2zX2dn527lcvluWe4lppEncc4HYrbVbpYqAaR1tm3fyxiLe7r1RKlU+ujg4KDMqMnc10j4lLuYsXL4EPFu3/d1zgmaxiB1Ariuux8AyCNf+XRbnO8NRLzA9/074jQ21cZ13Y9HUXS9aqLHjnbIymeWZR2RdvGr1AnQ+Ck4HRHvaiYYiHgPEV3MOZe1f6ftq1QqBxHRdUR0cjNGTNeN6GkhQOOn4FrGWLPn3G8R0Q+J6JowDF9rJgC6bbu7u/caHx+/FBEv1DnsmqofIro6CIJLdW1IQn7aCNDYG5DVspUzhnbmcKOwkkwk+ZHpWvye572fiL4AAPK5Oq3NnansR8T7u7q6Vqax5p+y/yRYFFeHnDGXSqVQ7vjF1THFb+kjjLE7S6XSPUlNFl3XPZiIViLixwDg+ARtfWzWrFnOdK5spm0EmATRtu09GWOyHsCRSQG7nR75nt+wzMEjoqfGx8efGx4eluXXdnbIhF1dXfuUy+VDAWAJER0rhOiyLCvxrFx5979er7vT/YTMtBNABqurq2thuVyWCaTKp2VNkGU8iqJtlmXVEHHywYi2KIo6LMuSt3XKTehWaiqEeMyyrB7f90eUGhgUygQBpH89PT3z6/W6XEPH2To1CFHiqgfr9foZWTnfyAwBGiuDkmVZ8v68nFnPuE8WgFywYMElaW3zqgCYKQJMGux53moikrkAqT4IrQJYTJlRRDw/a5tX0pdMEkAaJjdYhBCy/HpnTNAz0Uy+HgoA5yT9hE1SzmWWAA0HUV6kEEJ8mzHWkZTTKemRW9aX+b7/kyyntmWdAG/HSi4VLcu6gog+k8YsvUmCjAshbrIsqy8Ls/x38iUXBJh0oru7+71RFF0+MTGxWrPg4jvh0PTfG8/A3SaEuDKrw/1UTuaKAJMOdHV17Vsuly9ExPOIaN+mo9eEgiiKXi6VSjdHUXRDWjX+mzD3/5rmkgCTXjReGT8RAM4SQpwa9yhWF9DG869rieiXRDQYhuGEro6syOeaANuDKFPO5s+fvxwRZSaOHUXR0Un9TERRNFYqlX5PRCEAPFSr1Ybzkp72TkSbMQTY0VGZl7dt27YljDF5xrCYiA5slGWR270yGaVdCPF24WbG2BgAyFQzeY9xGxG9iIgy6+gZIcTmhQsXPtnf3y9lZtw3Ywkw4yJlyKGCAIaAzYvaggB5iZQhOwsCGAI2L2oLAuQlUobsLAhgCNi8qC0IkJdIGbKzIIAhYPOitiBAXiJlyM6CAIaAzYvaggB5iZQhOwsCGAI2L2oLAuQlUobsLAhgCNi8qC0IkJdIGbKzIIAhYPOi9j/ky13MA/auiwAAAABJRU5ErkJggg==') no-repeat;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    background-size: 11px;
    /* background-position: center; */
    /* background-position: 2px 1px; */
    width: 14px;
    height: 14px;
    float: left;
}

#t_w_container2 {
  overflow: hidden;
}

.dates-string {
  font-size: 10px;
  background-color: rgba(255, 235, 59, 0.27);
}

.spinner {
  margin: 40px auto 0;
  width: 70px;
  text-align: center;
}

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;

  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}
  .list-group {
    padding: 0;
    margin: 0;
  }
  .list-group-item {
    position: relative;
    display: block;
    padding: 4px 6px;
    margin-bottom: -1px;
    background-color: #fff;
    border: 1px solid #ddd;
    font-size: small;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% { -webkit-transform: scale(0) }
  40% { -webkit-transform: scale(1) }
}

@keyframes sk-bouncedelay {
  0%, 80%, 100% { 
    -webkit-transform: scale(0);
    transform: scale(0);
  } 40% { 
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

/* fragments (fixes): begin; */
.table-fragments {
  border-collapse: collapse;
}
.table-fragments td, .table-fragments th {
  border: 1px solid white;
}
.table-fragments tr:first-child th {
  border-top: 0;
}
.table-fragments tr:last-child td {
  border-bottom: 0;
}
.table-fragments tr td:first-child,
.table-fragments tr th:first-child {
  border-left: 0;
}
.table-fragments tr td:last-child,
.table-fragments tr th:last-child {
  border-right: 0;
}

.table-fragments th {
  font-weight: 600;
}
.table-fragments .header-small {
  width: 1%;
}
.table-fragments .header-fragments {
  width: 60%;
}
.table-fragments .star, .table-fragments .smile {
  width: 17px;
  cursor: pointer;
}
/*.table-fragments tr:nth-child(1) {
    background-color: #F5F5F5;
}*/
.table-fragments tr:nth-child(odd) {
    background-color: #F5F5F5;
}
.borderless>tbody>tr>td, .borderless>tbody>tr>th, .borderless>tfoot>tr>td, .borderless>tfoot>tr>th, .borderless>thead>tr>td, .borderless>thead>tr>th {
    border: none;
    border-top: 0px;
}
.td-page-content table {
    margin-bottom: 0px;
}
.table {
    margin-bottom: 0px;
}
/* fragments (fixes): end */
</style>

<!--script src="//rawgithub.com/phpepe/highcharts-regression/master/highcharts-regression.js?8"></script-->

<!--div class="row" id="copy_share_link_container" style="display:none">
  <div class="col-md-11">
  </div>
  <div class="col-md-1">
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABzklEQVRIS7VWwU3DQBDciZT7kg5IB9ABoQLoACPlrPwIHYQKCN+7SAkdQAWYDkIFQAfhm0g3aM0ZmZA4MiYrWX74bmZvdnbPkH+INE2HJM8A9EjOATw4524UGk3xrbUPAM7WcUhm3vvTRgTW2gTAdFuSJC+bEmzMviAk+dyUIANwUiHzy58JBoNBN4TwJCLdCokeaxMkSdJpt9u3AJJdBgkh/CyytfZYRA5E5MN7Py8DKLAx5orkEEBH9SU5AtDdUuhr59w4P0EEngJQgjzUzyJyuVqt3jYBTyaTrFjb7/d7rVYrIalkWQghK74jHvlVs9rg5UXeLF8Zv5NMysC7JMr3pmk6E5GLisUfKov3XtfVDiVQKY4qnPDsve/VRo4bYK2t9LIWsxHBLolILgCMl8vl3Ww2y2tSJ/IiG2Peoj3X96r+SnAY30Pn3H0tgsKmALSI5Vq8qGu0H3SoiYh6/lBENJlRmUhtCkCNojadhxAev21azkb7gWQHwGK90WIiOj3H8bQ5EUlsabQb59zoT6PCGDMUEX2067fGr1FRR9tYO+3mKovXH3Zrku5vXMea7P3C2e+VWXWKYgLUdtEmI8TflnO9PvN7GMjUorr2E9qPBb6pd8XuAAAAAElFTkSuQmCC" style="cursor:pointer" title="Share current session" id="copy_share_link">
  </div>
</div-->
<div id="t_g_title_container2"></div>
<div id="t_g_main_container2">
      <div class="spinner" id="spinner1">
        <div class="bounce1"></div>
        <div class="bounce2"></div>
        <div class="bounce3"></div>
      </div>
      <div id="t_g_container2">
      </div>
      <div id="t_w_container2">
      </div>
      <div id="t_m_container2"></div>
    </div>


<script>
function _linear(data, decimalPlaces) {
  //console.info(data);
  //console.info(decimalPlaces);
  var sum = [0, 0, 0, 0, 0], n = 0, results = [], N = data.length;

  for (; n < data.length; n++) {
    if (data[n]['x'] != null) {
      data[n][0] = data[n].x;
      data[n][1] = data[n].y;
    }
    if (data[n][1] != null) {
      sum[0] += data[n][0]; //Σ(X) 
      sum[1] += data[n][1]; //Σ(Y)
      sum[2] += data[n][0] * data[n][0]; //Σ(X^2)
      sum[3] += data[n][0] * data[n][1]; //Σ(XY)
      sum[4] += data[n][1] * data[n][1]; //Σ(Y^2)
    } else {
      N -= 1;
    }
  }

  var gradient = (N * sum[3] - sum[0] * sum[1]) / (N * sum[2] - sum[0] * sum[0]);
  var intercept = (sum[1] / N) - (gradient * sum[0]) / N;
  // var correlation = (N * sum[3] - sum[0] * sum[1]) / Math.sqrt((N * sum[2] - sum[0] * sum[0]) * (N * sum[4] - sum[1] * sum[1]));
  
  for (var i = 0, len = data.length; i < len; i++) {
var coorY = data[i][0] * gradient + intercept;
if (decimalPlaces)
  coorY = parseFloat(coorY.toFixed(decimalPlaces));
      var coordinate = [data[i][0], coorY];
      results.push(coordinate);
  }

  results.sort(function(a,b){
     if(a[0] > b[0]){ return 1;}
      if(a[0] < b[0]){ return -1;}
        return 0;
  });

  var string = 'y = ' + Math.round(gradient*100) / 100 + 'x + ' + Math.round(intercept*100) / 100;
  
  return {equation: [gradient, intercept], points: results, string: string};
}


(function (H) {
    H.wrap(H.Tooltip.prototype, 'hide', function () {});
}(Highcharts));
jQuery(function () {

// marker show on load (fix)
Highcharts.Series.prototype.drawPoints = function() {};

// TOP Words Widget JS
var shortCodeParams = {"all_ranks_field_display":"1","sentiment_rank_field_display":"1","similarity_rank_field_display":"1","social_tw_posts_field_display":"1","social_tw_reposts_field_display":"1","social_tw_likes_field_display":"1","social_tw_sentiment_field_display":"1","name_field_display":"1","chains_field_display":"1","days_field_display":"1","articles_field_display":"1","value_field_display":"1","search_field_display":"1"};

//console.info(shortCodeParams);

function strip_tags(str) {
  return str.replace(/<\/?[^>]+>/gi, '');
}

//function topWordsWidgetShow() {
var dateToday = new Date().toJSON().slice(0, 10).replace(/-/g, '-');
function getSmile(fragmentSentiment, word) {
    var word = word || '...';
    if (typeof fragmentSentiment == '' || fragmentSentiment == null) {
      return '<div class="label-container-empty">' + 
      '<div class="rank">&nbsp;</div>' +
      '</div>';
    }
    var fragmentSentimentCheck = Math.round(fragmentSentiment);
    fragmentSentiment = Math.round(fragmentSentiment * 10) / 10;
    if (fragmentSentimentCheck > 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_positive_t.png">';
    } else if (fragmentSentimentCheck == 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_indifferent_t.png">';
    } else if (fragmentSentimentCheck < 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_negative_t.png">';
    }
    return '<div class="smile-container">' + smile + '</div>';
}
function getStar(digestRank) {
  if (digestRank >= 1) {
    var star = 
      '<div class="star-container" title="Similarity rank: ' + digestRank + '">' + 
        '<div class="digest-rank">' + digestRank.toFixed(0) + '</div>' +
      '</div>';
    } else {
      var star = '<div class="label-container-empty">' + 
      '<div class="rank">&nbsp;</div>' +
      '</div>';
    }
  return star;
}
function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
function getSocialLabel(rank, socialType, title, boxType) {
  var boxType = boxType || 'word';
  var title = title || 'Social rank';
  var socialType = socialType || 'tw';
  if (isNumber(rank)) {
    var label = 
    '<div class="social-container ' + socialType + '" title="' + title + '">' + 
      '<div class="rank">' + shortenLargeNumber(rank.toFixed(0)) + '</div>' +
    '</div>';
    /*
    '<div class="social-container ' + socialType + '" title="' + title + ': ' + rank + '">' + 
      '<div class="rank">' + shortenLargeNumber(rank.toFixed(0)) + '</div>' +
    '</div>';
     */
  } else {
    if (boxType == 'word') {
      var label = '<div class="label-container-empty">' + 
        '<div class="rank">&nbsp;</div>' +
        '</div>';
    } else {
      var label = '';
    }
  }
  /*if (socialType == 'fb') {
    console.info(label);
  }*/
  return label;
}
function getSocialSmile(rank, socialType, title, boxType) {
  var boxType = boxType || 'word';
  var title = title || 'Social rank';
  var socialType = socialType || 'tw';
  var label = '';
  if (isNumber(rank)) {
    var rankCheck = Math.round(rank);
    rank = Math.round(rank * 10) / 10;
    if (rankCheck > 0) {
      var smile = 'sentiment-positive';
    } else if (rankCheck == 0) {
      var smile = 'sentiment-indifferent';
    } else if (rankCheck < 0) {
      var smile = 'sentiment-negative';
    } else {
      var smile = false;
    }
    if (smile) {
      var label = 
        '<div class="social-container ' + socialType + ' ' + smile + '" title="' + title + '">' + 
          '<div class="rank">&nbsp</div>' +
        '</div>';
        /*'<div class="social-container ' + socialType + ' ' + smile + '" title="' + title + ': ' + rank + '">' + 
          '<div class="rank">&nbsp</div>' +
        '</div>';*/
    }
  } else {
    if (boxType == 'word') {
      var label = '<div class="label-container-empty">' + 
        '<div class="rank">&nbsp;</div>' +
        '</div>';
    }
  }
  return label;
}
function shortenLargeNumber(num, digits) {
    var units = ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'],
        decimal;

    for(var i=units.length-1; i>=0; i--) {
        decimal = Math.pow(1000, i+1);

        if(num <= -decimal || num >= decimal) {
            return +(num / decimal).toFixed(digits) + units[i];
        }
    }

    return num;
}

function drawTopWords() {
    var timeLineContainer = '#t-w-b-container';
    var topWordsContainer = '#t_w_container2';

    jQuery(topWordsContainer).html('');
    jQuery(timeLineContainer).find('#spinner2').show();

    var accordion = '';

    /*var queryParams = {};
    queryParams.currentPageUrl = encodeURIComponent(document.location.pathname);*/
    var drawTopWordsAPIUrl = getApiUrlByOptions();
    drawTopWordsAPIUrl = drawTopWordsAPIUrl
      .replace('graph_api.php', 'top_words_api.php')
      .replace('timelineGraphAPI2', 'topWordsAPI2')
      .replace('method%255D%3Ddata', 'method%255D%3DgetData2');
    //console.info(drawTopWordsAPIUrl);
    //console.info(decodeURIComponent(drawTopWordsAPIUrl));
    //return true;
    jQuery.getJSON(drawTopWordsAPIUrl/*decodeURIComponent('%API_URL_CUSTOM%')*/, function (data) {
        var response = data;
        
        console.info(queryParams);
        console.info('isChartLoadedFirstTime: ' + isChartLoadedFirstTime);
        console.info('isPopWordsLoadedFirstTime: ' + isPopWordsLoadedFirstTime);

        if (isPopWordsLoadedFirstTime) {
          isPopWordsLoadedFirstTime = false;
          if (queryParams.hasOwnProperty('shareUrl')) {
            shareUrl = decodeURIComponent(queryParams.shareUrl);
            queryParams = getQueryParams(shareUrl);
          }
          AchartType = queryParams['params[chartType]'];
          ApresentWordsType = queryParams['params[presentWords][type]'];
        } else {
          console.info(jQuery('#chart_type').val());
          AchartType = jQuery('#chart_type').val();
          ApresentWordsType = jQuery('#present_words_type').val();
        }

        /*if (isChartLoadedFirstTime) {
          if (queryParams.hasOwnProperty('shareUrl')) {
            shareUrl = decodeURIComponent(queryParams.shareUrl);
            queryParams = getQueryParams(shareUrl);
          }
          AchartType = queryParams['params[chartType]'];
          ApresentWordsType = queryParams['params[presentWords][type]'];
        } else {
          AchartType = jQuery('#chart_type').val();
          ApresentWordsType = jQuery('#present_words_type').val();
        }*/

        // filter result array by new array (extraSeries) changed by linear regression function
        if (AchartType == 'type7') {
          //console.info(response.data);
          
          var extraSeries = [];
          jQuery.each(response.data, function(i) {
            var regression = _linear(response.data[i].data, 2);
            console.info(regression.points[0][1] + ' ? ' + regression.points[regression.points.length - 1][1]);
            // fade
            if ((ApresentWordsType == 'trends_fade') && (regression.points[0][1] < regression.points[regression.points.length - 1][1])) {
              console.info('skip:fade');
            }
            // grow
            else if ((ApresentWordsType == 'trends_grow') && (regression.points[0][1] > regression.points[regression.points.length - 1][1])) {
              console.info('skip:grow');
            } else if (regression.points.length <= 1) {
              console.info('skip:length<=1');
            } else {
                extraSeries.push(response.data[i]);
            }
          });
          console.info(extraSeries);
          /*var responseDataType7 = [];
          response.data.filter(function(el) {
            jQuery.each(extraSeries, function(i) {
              if (extraSeries[i]['name'] == el.name) {
                responseDataType7.push(el);
                return false;
              }
            });
          });*/
          response.data = extraSeries;
        }
        
        if (response === undefined) {
          jQuery('.t-w-b-main-container').remove();
        }
        accordion += '<div id="t-w-b-accordion-container" class="accordion-container">';
        accordion+="<div class=\"t-w-b-set\">";
        accordion+='<span data-title="accordion-header" class="word-toggle-span">&nbsp;' + 

        

        '<i class="fa fa-chevron-right word-toggle-i" aria-hidden="true" style="float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;"></i>'+
          
        '<span class="header-word number title">&nbsp;</span>' +

          (
          shortCodeParams.all_ranks_field_display == 1 ? 
          '<span class="header-word ranks title">Ranks</span>' : 
          ''
          ) + 
          (
          shortCodeParams.name_field_display == 1 ?
          '<span class="header-word title" title="A POP-word(tm) detected in some content of an article (title, description, etc...), can be single word or synthetic words chain">Term</span>' :
          ''
          ) +
          /*(
          shortCodeParams.chains_field_display == 1 ?
          '<span class="header-chains title" title="List of chains">&nbsp;Chains</span>' :
          ''
          ) +*/ 
          '<span class="header-counts title"><span title="Term\'s frequency or Similarity rate (percentage of a terms set or an absolute value - depends on chart type)">Value</span><span title="Total number of articles for selected date range with this term detected">Articles</span><span title="Number of days when this term was detected">Days </span></span><span class="header-search title">&nbsp;Search</span></span>';
        accordion+="</div>";
        var partsNum;
        var wordsNum = 1;
        var maxWords = 7;
        var maxParts = 100000;
        var responseDataLen = Object.keys(response.data).length;
        //console.info(response.data);
        jQuery.each(response.data, function (wordNumber, parts) {
            partsNum = 1;
            firstActive = (partsNum == 1 && responseDataLen == 1);
                if (!parts.hasOwnProperty('digestRank')) {
                  parts.digestRank = null;
                }
                var wordDigestRankString = getStar(parts.digestRank)
                if (!parts.hasOwnProperty('sentiment')) {
                  parts.sentiment = null;
                }
                var wordSentimentString = getSmile(parts.sentiment, parts.nameFormated);

                // TW
                if (!parts.hasOwnProperty('socialTWReposts')) {
                  parts.socialTWReposts = null;
                }
                //var wordSocialTWRepostsString = getSocialLabel(parts.socialTWReposts, 'tw', 'TW reposts');
                if (!parts.hasOwnProperty('socialTWLikes')) {
                  parts.socialTWLikes = null;
                }
                //var wordSocialTWLikesString = getSocialLabel(parts.socialTWLikes, 'tw', 'TW likes');
                if (!parts.hasOwnProperty('socialTWSentiment')) {
                  parts.socialTWSentiment = null;
                }
                var wordSocialTWSentimentString = getSocialSmile(parts.socialTWSentiment, 'tw', 'TW sentiment: ' + parts.socialTWSentiment);
                if (!parts.hasOwnProperty('socialTWPosts')) {
                  parts.socialTWPosts = null;
                }
                var wordSocialTWPostsString = getSocialLabel(parts.socialTWPosts, 'tw', 'TW: Posts: ' + parts.socialTWPosts + ', Reposts: ' + parts.socialTWReposts + ', Likes: ' + parts.socialTWLikes);

                var wordSocialTWString = 
                  wordSocialTWPostsString +
                  wordSocialTWSentimentString
                  /*(shortCodeParams.social_tw_posts_field_display == 1 ? wordSocialTWPostsString : '') +
                  (shortCodeParams.social_tw_reposts_field_display == 1 ? wordSocialTWRepostsString : '') +
                  (shortCodeParams.social_tw_likes_field_display == 1 ? wordSocialTWLikesString : '') +
                  (shortCodeParams.social_tw_sentiment_field_display == 1 ? wordSocialTWSentimentString : '')*/;
                if ((parts.socialTWPosts == 0) &&
                    (parts.socialTWReposts == 0) &&
                    (parts.socialTWLikes == 0) &&
                    (parts.socialTWSentiment == 0)) {
                  var isWordSocialTWZero = true;
                } else {
                  var isWordSocialTWZero = false;
                }

                /*// TEST
                parts.socialGPlusPosts = 10;
                parts.socialGPlusReposts = 3;
                parts.socialGPlusLikes = 23;
                parts.socialGPlusSentiment = -2.3;*/

                // FB
                if (!parts.hasOwnProperty('socialFBReposts')) {
                  parts.socialFBReposts = null;
                }
                //var wordSocialFBRepostsString = getSocialLabel(parts.socialFBReposts, 'fb', 'FB reposts');
                if (!parts.hasOwnProperty('socialFBLikes')) {
                  parts.socialFBLikes = null;
                }
                //var wordSocialFBLikesString = getSocialLabel(parts.socialFBLikes, 'fb', 'FB likes');
                if (!parts.hasOwnProperty('socialFBSentiment')) {
                  parts.socialFBSentiment = null;
                }
                var wordSocialFBSentimentString = getSocialSmile(parts.socialFBSentiment, 'fb', 'FB sentiment: ' + parts.socialFBSentiment);
                if (!parts.hasOwnProperty('socialFBPosts')) {
                  parts.socialFBPosts = null;
                }
                var wordSocialFBPostsString = getSocialLabel(parts.socialFBPosts, 'fb', 'FB: Posts: ' + parts.socialFBPosts + ', Reposts: ' + parts.socialFBReposts + ', Likes: ' + parts.socialFBLikes);

                var wordSocialFBString = 
                  wordSocialFBPostsString + 
                  wordSocialFBSentimentString
                  /*(shortCodeParams.social_fb_posts_field_display == 1 ? wordSocialFBPostsString : '') +
                  (shortCodeParams.social_fb_reposts_field_display == 1 ? wordSocialFBRepostsString : '') +
                  (shortCodeParams.social_fb_likes_field_display == 1 ? wordSocialFBLikesString : '') +
                  (shortCodeParams.social_fb_sentiment_field_display == 1 ? wordSocialFBSentimentString : '')*/;
                if ((parts.socialFBPosts == 0) &&
                    (parts.socialFBReposts == 0) &&
                    (parts.socialFBLikes == 0) &&
                    (parts.socialFBSentiment == 0)) {
                  var isWordSocialFBZero = true;
                } else {
                  var isWordSocialFBZero = false;
                }

                // GPlus
                if (!parts.hasOwnProperty('socialGPlusReposts')) {
                  parts.socialGPlusReposts = null;
                }
                //var wordSocialGPlusRepostsString = getSocialLabel(parts.socialGPlusReposts, 'gplus', 'GPlus reposts');
                if (!parts.hasOwnProperty('socialGPlusLikes')) {
                  parts.socialGPlusLikes = null;
                }
                //var wordSocialGPlusLikesString = getSocialLabel(parts.socialGPlusLikes, 'gplus', 'GPlus likes');
                if (!parts.hasOwnProperty('socialGPlusSentiment')) {
                  parts.socialGPlusSentiment = null;
                }
                var wordSocialGPlusSentimentString = getSocialSmile(parts.socialGPlusSentiment, 'gplus', 'GPlus sentiment: ' + parts.socialGPlusSentiment);
                if (!parts.hasOwnProperty('socialGPlusPosts')) {
                  parts.socialGPlusPosts = null;
                }
                var wordSocialGPlusPostsString = getSocialLabel(parts.socialGPlusPosts, 'gplus', 'GPlus: Posts: ' + parts.socialGPlusPosts + ', Reposts: ' + parts.socialGPlusReposts + ', Likes: ' + parts.socialGPlusLikes);

                var wordSocialGPlusString = 
                  wordSocialGPlusPostsString + 
                  wordSocialGPlusSentimentString
                  /*(shortCodeParams.social_gplus_posts_field_display == 1 ? wordSocialGPlusPostsString : '') +
                  (shortCodeParams.social_gplus_reposts_field_display == 1 ? wordSocialGPlusRepostsString : '') +
                  (shortCodeParams.social_gplus_likes_field_display == 1 ? wordSocialGPlusLikesString : '') +
                  (shortCodeParams.social_gplus_sentiment_field_display == 1 ? wordSocialGPlusSentimentString : '')*/;
                if ((parts.socialGPlusPosts == 0) &&
                    (parts.socialGPlusReposts == 0) &&
                    (parts.socialGPlusLikes == 0) &&
                    (parts.socialGPlusSentiment == 0)) {
                  var isWordSocialGPlusZero = true;
                } else {
                  var isWordSocialGPlusZero = false;
                }

                var word = parts.name;
                var wordInQuotes = '"' + word + '"';
                //var datesString = parts.datesYmd.join(', ');
                var chainsString = (parts.hasOwnProperty('chains') && parts.chains.length) ? parts.chains.join(', ') : '&nbsp;';
                accordion+="<div class=\"t-w-b-set\">";
                accordion+="<span " + (firstActive ? 'class="word-toggle-span active"' : 'class="word-toggle-span"') + ">&nbsp;"+
                
                

                "<i class='fa fa-chevron-right word-toggle-i' aria-hidden='true'  style='float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;'></i>" + 
                  
                  '<span class="header-word number badge alert-info">' + /*shortenLargeNumber(*/wordsNum/*)*/ + '</span>' +

                  (shortCodeParams.all_ranks_field_display == 1 ?
                  "<span class='header-word ranks'>" +
                  '<div class="word-s-s">' +
                  (shortCodeParams.sentiment_rank_field_display == 1 ? wordSentimentString : '') +
                  (shortCodeParams.similarity_rank_field_display == 1 ? wordDigestRankString : '') +
                  (!isWordSocialTWZero ? wordSocialTWString : '') +
                  (!isWordSocialFBZero ? wordSocialFBString : '') +
                  (!isWordSocialGPlusZero ? wordSocialGPlusString : '') +
                  '</div></span>' : '') +
                  (
                  shortCodeParams.name_field_display == 1 ?
                  '<span class="header-word">'+parts.nameFormated+"</span>" :
                  ''
                  ) + 
                  /*(
                  shortCodeParams.name_field_display == 1 ?
                  "<span class='header-chains' title='"+chainsString+"'>"+chainsString+"</span>" :
                  ''
                  ) +*/
                  "<span class='header-counts'><span title='" + parts.indicatorValue + "' class='badge alert-danger'>" + shortenLargeNumber(parts.indicatorValue) + "</span> <span title='" + shortenLargeNumber(parts.countFragments) + "' class='badge alert-success'>"+shortenLargeNumber(parts.countFragments)+"</span> <span title='"+parts.countDates+"' class='badge alert-info'>"+parts.countDates+"</span></span><span class='header-search small'><a href='javascript:void(0)' onclick='searchWord(" + wordInQuotes + ")' title='Search on Chart'><i class='fa fa-search' aria-hidden='true'></i></a>&nbsp;<a href='https://www.google.com/search?q="+word+"' target='_blank' title='Search on Google'><i class='fa fa-google' aria-hidden='true'></i></a>&nbsp;<a href='https://en.wikipedia.org/wiki/"+word+"' target='_blank' title='Search on Wiki'><i class='fa fa-wikipedia-w' aria-hidden='true'></i></a>&nbsp;<a href='https://www.facebook.com/search/top/?q="+word+"' target='_blank' title='Search on FB'><i class='fa fa-facebook' aria-hidden='true'></i></a>&nbsp;<a href='https://twitter.com/search?f=tweets&vertical=default&q="+word+"' target='_blank' title='Search on TW'><i class='fa fa-twitter' aria-hidden='true'></i></a>&nbsp;<a href='https://plus.google.com/s/"+word+"' target='_blank' title='Search on G+'><i class='fa fa-google-plus' aria-hidden='true'></i></a>&nbsp;<a href='http://www.bing.com/search?q="+word+"' target='_blank' title='Search on Bing'><span class='icon-bing'>&nbsp;</span></a></span></span>";
                accordion+="<div class=\"t-w-b-content\" " + (firstActive ? 'style="display:block"' : '') + ">";
                accordion+="<table class='t-w-b-tbl'>";
                
                accordion+="<tr>";
                
                accordion+="<td colspan=2 class='dates-string'><strong>Chains:</strong> " + chainsString + "</td>";
                accordion+="</tr>";

                var datesString = '';
                jQuery.each(parts.datesYmd, function(i) {
                  
                  var datesStringCurrent = '<a href="#c_date_' + wordNumber + '_' + parts.datesYmd[i] + '">' + parts.datesYmd[i] + '</a>';
                  if (parts.datesYmd[i] == dateToday) {
                    var datesStringCurrent = '<span title="Days" class="badge alert-info">' + datesStringCurrent + '</span>';
                  } else {
                    
                  }
                  datesString += datesStringCurrent + ', ';
                });
                datesString = datesString.slice(0, -2);
                accordion+="<td colspan=2 class='dates-string'>" + datesString + "</td>";
                accordion+="</tr>";
                
                var returnMaxParts = false;
                jQuery.each(parts.fragmentsFormated, function (date, chunk) { 
                    if (returnMaxParts) {
                      return false;
                    }
                    date = date.split('|');
                    var dateFormat = date[0];
                    
                    var dateUnformated = date[0].split(' ')[0];
                    var dateUnformatedOld = '';
                    var dateUnformatedNew = (dateUnformatedOld == dateUnformated) ? '' : dateUnformated;
                    dateUnformatedOld = dateUnformated;
                    
                    var timestamp = date[1];
                    accordion+="<tr class='date_" + timestamp + "' id='c_date_" + wordNumber + '_' + dateUnformatedNew + "'>";
                    accordion+="<td class='t-w-b-td width-date'><span id='date_formated'>" + dateFormat + "</span></td>";
                    accordion+="<td class='t-w-b-td width-data'>";
                    var fragmentsPart = [];
                    var partsIndex = 1;
                    jQuery.each(chunk, function (m, part) {
                      if (partsNum <= maxParts) {
                          if (typeof part[2] != "undefined") {
                            var fragmentDigestRank = part[2].hasOwnProperty('digest_rank') ? part[2].digest_rank : false;
                            /*if ((fragmentDigestRank + '').indexOf('.') != -1) {
                              fragmentDigestRank = fragmentDigestRank.toFixed(1);
                            }*/
                            fragmentDigestRank = Math.round(fragmentDigestRank * 10) / 10;
                            if (fragmentDigestRank) {
                              var fragmentDigestRankString = getStar(fragmentDigestRank);
                            } else {
                              var fragmentDigestRankString = '';
                            }

                            var fragmentSentiment = part[2].hasOwnProperty('SENTIMENT_RATE') ? part[2].SENTIMENT_RATE : false;
                            if (fragmentSentiment) {
                              var fragmentSentimentString = getSmile(fragmentSentiment);
                            } else {
                              var fragmentSentimentString = '';
                            }

                            // TW
                            if (!part[2].hasOwnProperty('social_tw_posts')) {
                              part[2].social_tw_posts = null;
                            }
                            var fragmentSocialTWPostsString = getSocialLabel(part[2].social_tw_posts, 'tw', 'TW posts: ' + part[2].social_tw_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_reposts')) {
                              part[2].social_tw_reposts = null;
                            }
                            var fragmentSocialTWRepostsString = getSocialLabel(part[2].social_tw_reposts, 'tw', 'TW reposts: ' + part[2].social_tw_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_likes')) {
                              part[2].social_tw_likes = null;
                            }
                            var fragmentSocialTWLikesString = getSocialLabel(part[2].social_tw_likes, 'tw', 'TW likes: ' + part[2].social_tw_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_sentiment')) {
                              part[2].social_tw_sentiment = null;
                            }
                            var fragmentSocialTWSentimentString = getSocialSmile(part[2].social_tw_sentiment, 'tw', 'TW sentiment: ' + part[2].social_tw_sentiment, 'fragments');

                            if ((part[2].social_tw_posts == 0) &&
                                (part[2].social_tw_reposts == 0) &&
                                (part[2].social_tw_likes == 0) &&
                                (part[2].social_tw_sentiment == 0)) {
                              var isFragmentSocialTWZero = true;
                            } else {
                              var isFragmentSocialTWZero = false;
                            }

                            var fragmentSocialTWString = fragmentSocialTWPostsString +
                              fragmentSocialTWRepostsString +
                              fragmentSocialTWLikesString +
                              fragmentSocialTWSentimentString;

                            /*// TEST
                            part[2].social_gplus_posts = 1;
                            part[2].social_gplus_reposts = 1;
                            part[2].social_gplus_likes = 1;
                            part[2].social_gplus_sentiment = -10;*/

                            // FB
                            if (!part[2].hasOwnProperty('social_fb_posts')) {
                              part[2].social_fb_posts = null;
                            }
                            var fragmentSocialFBPostsString = getSocialLabel(part[2].social_fb_posts, 'fb', 'FB posts: ' + part[2].social_fb_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_reposts')) {
                              part[2].social_fb_reposts = null;
                            }
                            var fragmentSocialFBRepostsString = getSocialLabel(part[2].social_fb_reposts, 'fb', 'FB reposts: ' + part[2].social_fb_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_likes')) {
                              part[2].social_fb_likes = null;
                            }
                            var fragmentSocialFBLikesString = getSocialLabel(part[2].social_fb_likes, 'fb', 'FB likes: ' + part[2].social_fb_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_sentiment')) {
                              part[2].social_fb_sentiment = null;
                            }
                            var fragmentSocialFBSentimentString = getSocialSmile(part[2].social_fb_sentiment, 'fb', 'FB sentiment: ' + part[2].social_fb_sentiment, 'fragments');

                            if ((part[2].social_fb_posts == 0) &&
                                (part[2].social_fb_reposts == 0) &&
                                (part[2].social_fb_likes == 0) &&
                                (part[2].social_fb_sentiment == 0)) {
                              var isFragmentSocialFBZero = true;
                            } else {
                              var isFragmentSocialFBZero = false;
                            }

                            var fragmentSocialFBString = fragmentSocialFBPostsString +
                              fragmentSocialFBRepostsString +
                              fragmentSocialFBLikesString +
                              fragmentSocialFBSentimentString;

                            // GPlus
                            if (!part[2].hasOwnProperty('social_gplus_posts')) {
                              part[2].social_gplus_posts = null;
                            }
                            var fragmentSocialGPlusPostsString = getSocialLabel(part[2].social_gplus_posts, 'gplus', 'GPlus posts: ' + part[2].social_gplus_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_reposts')) {
                              part[2].social_gplus_reposts = null;
                            }
                            var fragmentSocialGPlusRepostsString = getSocialLabel(part[2].social_gplus_reposts, 'gplus', 'GPlus reposts: ' + part[2].social_gplus_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_likes')) {
                              part[2].social_gplus_likes = null;
                            }
                            var fragmentSocialGPlusLikesString = getSocialLabel(part[2].social_gplus_likes, 'gplus', 'GPlus likes: ' + part[2].social_gplus_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_sentiment')) {
                              part[2].social_gplus_sentiment = null;
                            }
                            var fragmentSocialGPlusSentimentString = getSocialSmile(part[2].social_gplus_sentiment, 'gplus', 'GPlus sentiment: ' + part[2].social_gplus_sentiment, 'fragments');

                            if ((part[2].social_gplus_posts == 0) &&
                                (part[2].social_gplus_reposts == 0) &&
                                (part[2].social_gplus_likes == 0) &&
                                (part[2].social_gplus_sentiment == 0)) {
                              var isFragmentSocialGPlusZero = true;
                            } else {
                              var isFragmentSocialGPlusZero = false;
                            }

                            var fragmentSocialGPlusString = fragmentSocialGPlusPostsString +
                              fragmentSocialGPlusRepostsString +
                              fragmentSocialGPlusLikesString +
                              fragmentSocialGPlusSentimentString;

                            /*var fragmentLabels = 
                              fragmentSentimentString +
                              fragmentDigestRankString +
                              (!isFragmentSocialTWZero ? fragmentSocialTWString : '') +
                              (!isFragmentSocialFBZero ? fragmentSocialFBString : '');*/
                          } else {
                            var isFragmentSocialFBZero = true;
                            var isFragmentSocialTWZero = true;
                            var isFragmentSocialGPlusZero = true;
                            //var fragmentLabels = '';
                          }

                          var part0 = strip_tags(part[0]);
                          var isFirstLetterSmall = (part0.charAt(0) === part0.charAt(0).toLowerCase());

                          var fragmentData = 
                            '<tr>' +

                            '<td>' +
                            partsIndex + ". " + 
                            '</td>' +
                            
                            '<td>' +
                            "<a href=\""+part[1]+"\" target=\"_blank\" title=\""+strip_tags(part[0])+"\">"+
                            (isFirstLetterSmall ? '...' : '') +
                            part[0]+"...</a>" + ' ' + 
                            '</td>' +
                           
                            '<td>' +
                            '<div class="fragment-s-s">' + (fragmentSentimentString ? fragmentSentimentString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (fragmentDigestRankString ? fragmentDigestRankString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialTWZero ? fragmentSocialTWString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialFBZero ? fragmentSocialFBString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialGPlusZero ? fragmentSocialGPlusString : '') + '</div>' +
                            '</td>' +


                            '</td>' +
                            '</tr>';

                          fragmentsPart.push(fragmentData);
                          partsNum++;
                          partsIndex++;
                      } else {
                          returnMaxParts = true;
                          return false;
                      }
                    });
                    accordion+= 
                      '<table class="table-fragments">' + 
                      '<tr>' +
                        '<th class="header-small">№</th>' +
                        '<th class="header-fragments">Fragment</th>' +
                        '<th class="header-small"><img title="Sentiment rank" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_positive_t.png" class="smile"></th>' +
                        '<th class="small"><img title="Similarity rank" class="star" src="/wp-content/plugins/timeline-graph-widget/images/star.png"></th>' +
                        '<th>Twitter</th>' +
                        '<th>Facebook</th>' +
                        '<th>Google+</th>' +
                      '</tr>' + 
                      fragmentsPart.join('') + 
                      '</table>';
                      accordion+="</td>";
                      accordion+="</tr>";

                });
                accordion+="</table>";
                accordion+="</div>";
                accordion+="</div>";
                wordsNum++;
              });

        // Total (begin)
        if (responseDataLen >= 1) {
          accordion+="<div class=\"t-w-b-set\">";
          accordion+="<span class=\"word-toggle-span\" style=\"border:0\">";

          var wordDigestRankString = getStar(response.info.digestRankTotal);
          var wordSentimentString = getSmile(null/*response.info.sentimentSum*/);

          var socialTWSumString = getSocialLabel(response.info.socialTWPostsTotal, 'tw', 'TW: Posts: ' + response.info.socialTWPostsTotal + ', Reposts: ' + response.info.socialTWRepostsTotal + ', Likes: ' + response.info.socialTWLikesTotal);
          var socialTWSentimentSumString = getSmile(null);

          var socialFBSumString = getSocialLabel(response.info.socialFBPostsTotal, 'fb', 'FB: Posts: ' + response.info.socialFBPostsTotal + ', Reposts: ' + response.info.socialFBRepostsTotal + ', Likes: ' + response.info.socialFBLikesTotal);
          var socialFBSentimentSumString = getSmile(null);

          var socialGPlusSumString = getSocialLabel(response.info.socialGPlusPostsTotal, 'gplus', 'GPlus: Posts: ' + response.info.socialGPlusPostsTotal + ', Reposts: ' + response.info.socialGPlusRepostsTotal + ', Likes: ' + response.info.socialGPlusLikesTotal);
          var socialGPlusSentimentSumString = getSmile(null);

          accordion+= '<i class="fa fa-tag word-toggle-i" aria-hidden="true" style="float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;" title="Total"></i>'/*'<span style="    width: 6px;">&nbsp;</span>'*/ +

          '<span class="header-word number">&nbsp;</span>' +

          '<span class="header-word ranks">' +

          wordSentimentString +
          wordDigestRankString +

          socialTWSumString +
          socialTWSentimentSumString +

          socialFBSumString +
          socialFBSentimentSumString +
          "</span>" +
          //'<div class="social-container tw" title="TW: Posts: 9, Reposts: 5, Likes: 6"><div class="rank">9</div></div>'+
          /*'<div class="social-container tw sentiment-negative" title="TW sentiment: -10"><div class="rank">&nbsp;</div></div><div class="label-container-empty"><div class="rank">&nbsp;</div></div><div class="label-container-empty"><div class="rank">&nbsp;</div></div></div></span>';*/

          "<span class=\"header-word\">&nbsp;" +
          "</span>" +
          
          /*"<span class=\"header-chains\">&nbsp;" +
          "</span>" +*/
          
          "<span class=\"header-counts\">" +
          "<span title='Total value' class='badge alert-danger'>" + shortenLargeNumber(response.info.indicatorValuesAll) + "</span> <span title='Total articles' class='badge alert-success'>" + shortenLargeNumber(response.info.fragmentsAll) + "</span> <span title='Max days' class='badge alert-info'>" + shortenLargeNumber(response.info.countDatesAll) + "</span>" +
          "</span>"+

          "<span class=\"header-search small\">&nbsp;" +
          "</span>"+ 

          "</span>" + 
          "</div>";
        }
        // Total (end)
       
        accordion+="</div>";

        jQuery(timeLineContainer).find('#spinner2').hide();
        //jQuery(timeLineContainer).append(accordion);
        jQuery(topWordsContainer).html(accordion);

        jQuery(".word-toggle-span:not(:last)").on("click", function(){
            if (jQuery(this).hasClass('active')) {
                jQuery(this).removeClass("active");
                jQuery(this).siblings('.t-w-b-content').slideUp(200);
                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-down").addClass("fa-chevron-right");
            } else {
                jQuery('.word-toggle-span.active').find('.word-toggle-i').removeClass("fa-chevron-down").addClass('fa-chevron-right');
                //jQuery('.word-toggle-span.active').removeClass('active');

                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-down").addClass("fa-chevron-right");
                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-right").addClass("fa-chevron-down");
                jQuery(this).addClass("active");
                //jQuery('.t-w-b-content').slideUp(200);
                jQuery(this).siblings('.t-w-b-content').slideDown(200);
            }
            if (jQuery(this).data('title') == "accordion-header") {
              if(jQuery(this).hasClass('active')) {
                jQuery('#t-w-b-accordion-container')
                  .find('.t-w-b-content')
                  .show();
              } else {
                jQuery('#t-w-b-accordion-container')
                  .find('.t-w-b-content')
                  .hide();
              }
            }
        });
    });
}
//}

// Map widget JS
function createMap(options) {
    /*if (!options) {
      jQuery(timeLineMainContainer).find('#spinner1').hide();
      return false;
    }*/
    //map = jQuery(timeLineContainer).highcharts();
    /*if (map) {
      options.chart.height = jQuery(timeLineContainer).height();
      options.chart.width  = jQuery(timeLineContainer).width();
    }*/
    var mapContainer = '#t_m_container2';
    jQuery(mapContainer).highcharts('mapChart', options);
    /*var mapContainer = '#t_m_container2';
    Highcharts.mapChart('t_m_container2', options);*/
    //jQuery(mapContainer).show();
}


function getMapOptions(dataMapOptions) {
    var mapOptions = {
        legend: {
          enabled: false
        },
        title: {
            text: ''
        },
        subtitle: {
            text: ''
        },
        mapNavigation: {
            enabled: true,
            buttonOptions: {
                verticalAlign: 'bottom'
            }
        },
        colorAxis: {
            //min: 0
        },
        series: []
    };

   /* var seriesSingle = {
       
        joinBy: 'hc-key',
        name: 'Value',
        states: {
            hover: {
                color: '#BADA55'
            }
        },
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
      };
      seriesSingle.mapData = Highcharts.maps['countries/us/us-all-all'];
      seriesSingle.data = dataMapOptions[1];
    mapOptions.series.push(seriesSingle);*/
    //console.info(dataMapOptions);
    jQuery.each(dataMapOptions, function(i) {
      if (!dataMapOptions[i].length) {
        return;
      }
      var seriesSingle = {
        joinBy: 'hc-key',
        name: 'Value',
        states: {
            hover: {
                color: '#BADA55'
            }
        },
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
      };

      seriesSingle.mapData = Highcharts.maps[('' + i)];
      seriesSingle.data = dataMapOptions[i];
      seriesSingle.value = jQuery('#countFieldName option:selected').text();

      mapOptions.series.push(seriesSingle);
    });
    
    return mapOptions;
}
function drawMap() {
    var mapContainer = '#t_m_container2';
    jQuery(mapContainer).html('');
    //jQuery(mapContainer).find('#spinner2').show();

    var drawMapAPIUrl = getApiUrlByOptions();
    drawMapAPIUrl = drawMapAPIUrl
      .replace('graph_api.php', 'map_api.php')
      .replace('timelineGraphAPI2', 'mapAPI2')
      .replace('method%255D%3Ddata', 'method%255D%3DgetData');

    jQuery.getJSON(drawMapAPIUrl, function (data) {
        var dataMapOptions = {};
        var hcKeyUsAllTeritoriesUrl = 'countries/us/custom/us-all-territories';
        var hcKeyUsAllAllUrl = 'countries/us/us-all-all';
        dataMapOptions[hcKeyUsAllTeritoriesUrl] = [];
        dataMapOptions[hcKeyUsAllAllUrl] = [];
        jQuery.each(data.data, function(i) {
          //console.info('====BEGIN===='  + data.data[i].name);
          var hcKey = {};
          hcKey.usAll = getPropertiesFromDataByName(data.data[i].name, hcKeyUsAllTeritoriesUrl, 'hc-key');
          /*hcKey.usAllAll = getPropertiesFromDataByName(data.data[i].name, hcKeyUsAllAllUrl, 'hc-key');*/
          
          //console.info(hcKey.usAllAll);

          if (hcKey.usAll) {
            dataMapOptions[hcKeyUsAllTeritoriesUrl].push({
              'hc-key': hcKey.usAll, 
              'value': data.data[i].value,
              'color' : data.data[i].color,
            });
          }/* else if (hcKey.usAllAll) {
            dataMapOptions[hcKeyUsAllAllUrl].push({'hc-key': hcKey.usAllAll, 'value': data[i].value});
          }*/
          //console.info('====END====' + data.data[i].name);
        });

        mapOptions = getMapOptions(dataMapOptions);
        createMap(mapOptions);
    });
}

function getPropertiesFromDataByName(name, mapUrl, key) {
var key = key || false;
var mapUrl = mapUrl || 'countries/us/us-all';

var maps = Highcharts.maps[mapUrl].features;
var data = {};
jQuery.each(maps, function(i){
   if (typeof maps[i].properties.name != undefined) {
   data[maps[i].properties.name] = maps[i].properties;
   }
});

var result = false;
if (!data.hasOwnProperty(name)) {
 return result;
}
if (data[name][key]){
result = data[name][key];
} else {
result = data[name];
}
return result;
}

// Timeline Graph Widget JS 
    //var chart;
    function getQueryParams(qs) {
        qs = qs.split('+').join(' ');
        var params = {},
            tokens,
            re = /[?&]?([^=]+)=([^&]*)/g;
        while (tokens = re.exec(qs)) {
            params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
        }
        return params;
    }
    //---------------------------
    var colorsListPattern = ["#000080", "#0074D9", "#39CCCC", "#3D9970", "#2ECC40", "#FFDC00", "#FF851B", "#e83e00", "#85144b", "#F012BE", "#B10DC9"];
    var datepickerOptions = {
      dateFormat: 'yy-mm-dd'
    };
    /*var DateTo   = new Date();
    var DateFrom = new Date(DateTo.getTime());
    DateFrom.setDate(DateFrom.getDate() - 7);*/
    jQuery('#date_from')
      .datepicker(datepickerOptions);
      //.datepicker('setDate', DateFrom);
    jQuery('#date_to')
      .datepicker(datepickerOptions);
      //.datepicker('setDate', DateTo);
    //---------------------------
    var colorsList = [
        '#ff7e00','#FF0000','#00FF00','#D7DF01','#FF00FF','#0074D9','#800000','#808000','#008000','#800080','#008080','#000080','#A2A2A2','#00FFFF','#2196F3','#8A2BE2','#E07777','#5F9EA0','#844229','#6495ED','#006400','#daa604','#DDA0DD','#e83e00','#0000FF','#000000','#7FFF00'
    ];
    var prevDayCurrent = 0;
    var isChartLoadedFirstTime = true;
    var isPopWordsLoadedFirstTime = true;
    var myModal = jQuery('#myModal');
    var timeLineMainContainer = '#t_g_main_container2';
    var timeLineContainer = '#t_g_container2';
    var timeLineTitleContainer = '#t_g_title_container2';
    var topWordsContainer = '#t_w_container2';
    jQuery(topWordsContainer).html('');
    var queryParams = getQueryParams(document.location.search);
    if (queryParams.hasOwnProperty('showOnPageGraphOnly') && queryParams.showOnPageGraphOnly == 1) {
      jQuery('.td-header-wrap').hide();
      jQuery('.td-footer-container').hide();
      jQuery('.td-sub-footer-container').hide();
      jQuery('#main .td-container-border').find('p').hide();
    }
    if (queryParams.hasOwnProperty('notShowChart') && queryParams.notShowChart == 1) {
      var notShowChart = true;
    } else {
      var notShowChart = false;
    }
    if (queryParams.hasOwnProperty('notShowPopWords') && queryParams.notShowPopWords == 1) {
      var notShowPopWords = true;
    } else {
      var notShowPopWords = false;
    }
    if (queryParams.hasOwnProperty('notShowMap') && queryParams.notShowMap == 1) {
      var notShowMap = true;
    } else {
      var notShowMap = false;
    }
    if (queryParams.hasOwnProperty('notShowChartButtons') && queryParams.notShowChartButtons == 1) {
      var notShowChartButtons = true;
    } else {
      var notShowChartButtons = false;
    }
    var chartMouseOverObjsList = {
      data:{},
      prevData:[]
    };

    var sortCustom = function(data) {
        data.sort(function(a,b) {
            if(a.indicatorValue>b.indicatorValue) return -1;
            if(a.indicatorValue<b.indicatorValue) return 1;
            return 0;
        });
    };
    function getChartOptions(data) {
      var sortDataFix = data.info.hasOwnProperty('sortDataFix');
      if (sortDataFix && data.info.sortDataFix == 'countDesc') {
        // japan style
        jQuery('#sortDataFix').val('countDesc');
        sortCustom(data.data);
      }

      if (isChartLoadedFirstTime) {
        chartType = data.info.chartType;
        colors = data.info.colors;
      } else {
        chartType = jQuery('#chart_type').val();
        colors = jQuery('#colors').val();
      }

      if (chartType == 'type7') {
        var series = data.data;
        /*var series = [{
          regression: true,
          regressionSettings: {
            hideInLegend: true,
            type: 'linear',
            //name: "AAAA: {series.name} %r"
            //color: 'rgba(223, 183, 83, .9)',
            //dashStyle: 'dash'
          },
          name: 'Test input1',
          //color: 'rgba(223, 83, 83, .5)',
          data: [
            [1503916301786, 6],
            [1603916318555, 13],
            [1703916330132, 2],
           
          ]

        },
        {
          regression: true,
          regressionSettings: {
            type: 'linear',
            //hideInLegend: true,
            //color: 'rgba(223, 183, 83, .9)',
            //dashStyle: 'dash'
          },
          name: 'Test input2',
          //color: 'rgba(223, 83, 83, .5)',
          data: [
            [1503916301786, 7],
            [1603916318555, 4],
            [1703916330132, 3],
           
          ]

        }];*/
      
      /*var series =  [{
        regression: true,
        regressionSettings: {
          type: 'linear',
          color: 'rgba(223, 183, 83, .9)',
          dashStyle: 'dash'
        },
        name: 'Test input',
        color: 'rgba(223, 83, 83, .5)',
        data: [
          [1, 1],
          [2, 3],
          [3, 9],
         
        ]
      }];*/
      
      } else if (chartType == 'type6') {
        // Define tasks
        /*var tasks = [{
            name: 'Sleep',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 0),
                to: Date.UTC(0, 0, 0, 0),
                value: 10
            }, {
                from: Date.UTC(0, 0, 0, 22),
                to: Date.UTC(0, 0, 0, 24),
                value: 11
            }]
        }, {
            name: 'Family time',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 6),
                to: Date.UTC(0, 0, 0, 8),
                value: 20
            }, {
                from: Date.UTC(0, 0, 0, 16),
                to: Date.UTC(0, 0, 0, 22)
            }]
        }, {
            name: 'Eat',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 7),
                to: Date.UTC(0, 0, 0, 8),
                label: 'Breakfast'
            }, {
                from: Date.UTC(0, 0, 0, 12),
                to: Date.UTC(0, 0, 0, 12, 30)
            }, {
                from: Date.UTC(0, 0, 0, 16),
                to: Date.UTC(0, 0, 0, 17),
                label: 'Dinner'
            }, {
                from: Date.UTC(0, 0, 0, 20, 30),
                to: Date.UTC(0, 0, 0, 21)
            }]
        }, {
            name: 'Work',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 8),
                to: Date.UTC(0, 0, 0, 16)
            }]
        }];*/

        // Define milestones
        /*var milestones = [{
            name: 'Get to bed',
            time: Date.UTC(0, 0, 0, 22),
            task: 1,
            marker: {
                symbol: 'triangle',
                lineWidth: 1,
                lineColor: 'black',
                radius: 8
            }
        }];*/

        // re-structure the tasks into line seriesvar series = [];
        var tasks = data.data;
        var series = [];
        tasksNames = [];
        var newNameLoop = true;
        jQuery.each(tasks.reverse(), function(i, task) {
            var item = {
                name: task.name,
                data: [],
                indicatorValue: task.indicatorValue
            };
            newNameLoop = true;
            tasksNames.push(task.name);
            jQuery.each(task.data, function(j, interval) {
                var from = interval[0];
                var to = interval[0];
                
                if (!newNameLoop) {
                    var dataLabels = {};
                } else {
                var dataLabels = { 
                        //rotation: 0,
                        //backgroundColor: '#FFFFFF',
                        //color: '#000000',
                        //x: 0,
                        //y: 0,
                        /*enabled: true,
                        align: 'center',
                        //x: 3,
                        verticalAlign: 'middle',
                        //overflow: true,
                        crop: false,
                        format: '{series.name}'*/
                        
                        format: '{series.name}',
                        enabled: true,
                        align: 'left',
                        verticalAlign: 'middle',
                        //color: '#294469',
                        /*shadow: false,
                        overflow: false,*/
                        //x: -25,
                        /*style: {
                            "fontSize": "10px", 
                            "textShadow": "0px"
                        }*/
                };
                }

                if (typeof task.data[j + 1] != 'undefined') {
                    var fromNext = task.data[j + 1][0];
                    
                    var date1 = new Date(to);
                    var date2 = new Date(fromNext);
                    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
                    var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24)); 
                    
                    if (diffDays == 0) {
                        //to = to + 1 * (1000 * 60 * 60 * 5);
                        to = fromNext - 1 * (1000 * 60 * 60);
                        //to += 1 * (1000 * 60 * 60 * 24);
                        //interval[1] = null;
                        //var dataLabels = {};
                    }
                }

                item.data.push({
                    x: from,
                    y: i,
                    //label: interval.label,
                    from: from,
                    to: to,
                    value: interval[1],
                    dataLabels: dataLabels

                }, {
                    x: to,
                    y: i,
                    from: from,
                    to: to,
                    value: interval[1]
                });
                
                // add a null value between intervals
                if (task.data[j + 1]) {
                    item.data.push(
                        [(interval.to + task.data[j + 1].from) / 2, null]
                    );
                }
                newNameLoop = false;
            });

            series.push(item);
        });
      } else {
        var series = data.data;
      }

      //console.info(series);

      if (data.info.hasOwnProperty('uniqueDates')) {
        var uniqueDatesLength = data.info.uniqueDates.length;
      } else {
        var uniqueDatesLength = 0;
      }
      var chartOptions = {
          resetZoomButton: {
            theme: {
                display: 'none'
            }
          },
          defs: {
            patterns: []
          },
          lang: {
            optionsKey: 'Extended options',
            shareKey: 'Share current session',
            exportKey: 'Export to json',
            noData: 'Sorry, no data for selected period, please change options.',
            barKey: 'Chart type - Bar',
            lineKey: 'Chart type - Line',
            areaKey: 'Chart type - Area',
            ganttKey: 'Chart type - Gantt',
            linearRegression: 'Chart type - Linear Regression',
            prevKey: 'Previous day',
            nextKey: 'Next day',
            todayKey: 'Today',
            yesterdayKey: 'Yesterday',
            weekKey: 'Week',
            monthKey: 'Month',
          },
          exporting: {
            buttons: {
                customButton1: {
                    text: ' Options ',
                    _titleKey: 'optionsKey',
                    onclick: function () {
                      jQuery('#my_modal').click();
                    }
                },
                customButton2: {
                    text: ' Share ',
                    _titleKey: 'shareKey',
                    onclick: function () {
                      var shareLink =
                        document.location.origin +
                        document.location.pathname +
                        '?shareUrl=' +
                        encodeURIComponent(
                          getApiUrlByOptions()
                        );
                      /*window.prompt(
                          'Copy to clipboard: Ctrl+C, Enter',
                          shareLink
                      );*/
                      jQuery('#prompt_container').html('<!-- Trigger the modal with a button -->'+
                        '<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#prompt_dialog" id="prompt_dialog_btn" style="display:none">Open Modal</button>' +
                        '<!-- Modal -->' +
                        '<div id="prompt_dialog" class="modal fade" role="dialog" tabindex="-1">' +
                          '<div class="modal-dialog">' +
                            '<!-- Modal content-->' +
                            '<div class="modal-content">' +
                              '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal">&times;</button>' +
                                '<h4 class="modal-title">Share</h4>' +
                              '</div>' +
                              '<div class="modal-body">' +
                                '<p><textarea>' + shareLink + '</textarea></p>' +
                              '</div>' +
                              '<div class="modal-footer">' +
                                '<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>' +
                              '</div>' +
                            '</div>' +
                          '</div>' +
                        '</div>'
                        //'<script>' +
                        //'jQuery("#prompt_dialog").find("textarea").select();' +
                        /*'jQuery("#prompt_dialog").find("textarea").focus(' +'function(e) {' +
                            'e.target.select();' +
                            'jQuery(e.target).one("mouseup", function(e) {' +
                              'e.preventDefault();' +
                          '});' +
                        '});' +
                        '<' + '/script>'*/
                        );
                        jQuery('#prompt_container').appendTo('body');
                        jQuery('#prompt_dialog_btn').click();
                        //jQuery('#prompt_dialog').find('textarea').focus();
                        var shareInterval = setInterval(function() {
                          if (jQuery('#prompt_dialog').css('display') == 'none') {
                            clearInterval(shareInterval);
                          }else {
                            jQuery('#prompt_dialog').find('textarea').select();
                          }
                        }, 1000);
                    }
                },
                customButton_LR: {
                    text: ' Linear Regression ',
                    _titleKey: 'linearRegression',
                    onclick: function () {
                        changeChartType('type7');
                    }
                },
                customButton3: {
                    text: ' Gantt ',
                    _titleKey: 'ganttKey',
                    onclick: function () {
                        changeChartType('type6');
                    }
                },
                customButton4: {
                    text: ' Line ',
                    _titleKey: 'lineKey',
                    onclick: function () {
                      changeChartType('type5');
                    }
                },
                customButton5: {
                    text: ' Area ',
                    _titleKey: 'areaKey',
                    onclick: function () {
                      changeChartType('type1');
                    }
                },
                customButton6: {
                    text: ' Bar ',
                    _titleKey: 'barKey',
                    onclick: function () {
                        changeChartType('type3');
                    }
                },
                customButton7: {
                    text: ' Next ',
                    _titleKey: 'nextKey',
                    onclick: function () {
                      --prevDayCurrent;
                      changeChartDays('-' + prevDayCurrent + 'days', '-' + prevDayCurrent + 'days');
                    }
                },
                customButton8: {
                    text: ' Prev ',
                    _titleKey: 'prevKey',
                    onclick: function () {
                      ++prevDayCurrent;
                      changeChartDays('-' + prevDayCurrent + 'days', '-' + prevDayCurrent + 'days');
                    }
                },
                customButton9: {
                    text: ' Today ',
                    _titleKey: 'todayKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-0days');
                    }
                },
                customButton10: {
                    text: ' Yesterday ',
                    _titleKey: 'yesterdayKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-1days', '-1days');
                    }
                },
                customButton11: {
                    text: ' 7days ',
                    _titleKey: 'weekKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-6days');
                    }
                },
                customButton12: {
                    text: ' 30days ',
                    _titleKey: 'monthKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-29days');
                    }
                },
            }
        },
          rangeSelector: {
              /*selected: 1,
              allButtonsEnabled: true,
              buttons: [{
                  type: 'day',
                  count: 1,
                  text: '1d'
              },{
                  type: 'day',
                  count: 8,
                  text: '7d'
              },{
                  type: 'month',
                  count: 1,
                  text: '1m'
              }, {
                  type: 'all',
                  text: 'All'
              }],
              inputEnabled: false,*/
              enabled: false
          },
          /*navigation: {
              buttonOptions: {
                  enabled: false
              }
          },*/
          // scrollbar begin
          navigator: {
              enabled: false
          },
          scrollbar : {
              enabled : false
          },
          // scrollbar end
          /*yAxis: {
              labels: {
                  formatter: function () {
                      return (this.value > 0 ? ' + ' : '') + this.value + '%';
                  }
              },
              plotLines: [{
                  value: 0,
                  width: 2,
                  color: 'silver'
              }]
          },*/
          yAxis: {
              title: {text: null},
              //reversedStacks: false
              /*max: 600*/
              gridLineDashStyle: 'longdash'
          },
          xAxis: {
            
             type: 'datetime',
             ordinal: false,
        //min:Date.UTC(2016, 08, 01),
        //max:Date.UTC(2016, 09, 15),
            events: {
              afterSetExtremes: function (e) {
                /*var minAxis = this.min,
                    maxAxis = this.max;
                jQuery.each(this.chart.series, function (l, s) {
                  if (l == this.chart.series.length - 1) {
                    return true;
                  }
                  points = s.points;
                  if (points.length > 0) {
                    min = points[0].y,
                    max = points[0].y;
                    jQuery.each(points, function(i, p) {
                      if(p.x >= minAxis && p.x <= maxAxis) {
                        if(p.y > max)
                          max = p.y;
                        if(p.y < min)
                          min = p.y;
                      }
                    });
                  } else {
                    max = 0;
                  }
                  if (max == 0) {
                    this.chart.series[l].update({showInLegend: false});
                  } else {
                    this.chart.series[l].update({showInLegend: true});
                  }
                });*/
              }
            }
          },
          colors: [],
          plotOptions: {
            series: {
               /*turboThreshold: 10,*/
                //boostThreshold: 50,
                /*events: {
                  click: function(e) {
                    console.info(e);
                    console.info(this);
                  }
                },*/
                //allowPointSelect: true,
                states: {
                    hover: {
                        lineWidth: 0
                    }
                },
                /*marker: {
                  enabled: true
                },*/
                animation: false,
                stickyTracking: false,
                connectNulls: true,
                cursor: 'pointer',
                stacking: "normal",
                fillOpacity: 0.7,
                point: {
                  events: {
                      click: function(e) {
                        searchWord(this.series.name, this.series.color);
                      },
                      mouseOver: function(e) {
                        var popWordsTdId = 'date_' + this.x;
                        if (!Object.keys(chartMouseOverObjsList.data).length || !chartMouseOverObjsList.data.hasOwnProperty(popWordsTdId)) {
                          chartMouseOverObjsList.data[popWordsTdId] =
                            jQuery('#t-w-b-accordion-container')
                              .find('.' + popWordsTdId)
                              .find('#date_formated');
                        }
                        var currentData = chartMouseOverObjsList.data[popWordsTdId];
                        if (!chartMouseOverObjsList.prevData.length) {
                          chartMouseOverObjsList.prevData = currentData;
                        }
                        jQuery.each(chartMouseOverObjsList.prevData, function(i) {
                            jQuery(chartMouseOverObjsList.prevData[i])
                                .css('background', 'white');
                        });
                        chartMouseOverObjsList.prevData = currentData;
                        jQuery.each(currentData, function(i) {
                            jQuery(currentData[i])
                                .css('background', 'yellow');
                        });
                      }
                  }
              }
            },
            area: {
              stickyTracking: false,
              connectNulls: true,
            //   stacking: "normal",
              lineWidth: 0/*,
              trackByArea: true*/
            },
            // column: {
            //     stacking: 'normal'
            // }
          },
          title: {
              text: '',
              align: 'left',
              //width: 100
          },
          chart: {
              /*height: 600,*/
            //   type: 'area',
            //   type: 'column',
              className: 't-g-chart',
              style: {
                fontFamily: ['Open Sans', 'arial', 'sans-serif']
              },
              events: {
                load: function(event) {
                  //chart = this;
                  afterGraphLoad(data);
                }/*,
                click: function(event) {
                  console.info(event);
                  console.info(this);
                }*/
              },
              marginTop:50
          },
          tooltip: {
             //split: true,
             //shared: false,
            
              //shared: true,
              //pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',
              //pointFormat: '',
              valueDecimals: 0,
              style: {},
            //   backgroundColor: 'rgba(247,247,247,0.9)',
              useHTML: true,
              //followPointer: true,
              borderRadius: 0,
              shadow: false,
              /*positioner: function(boxWidth, boxHeight, point) {
                  // Set up the variables
                  var chart = this.chart,
                      plotLeft = chart.plotLeft,
                      plotTop = chart.plotTop,
                      plotWidth = chart.plotWidth,
                      plotHeight = chart.plotHeight,
                      distance = 5,
                      pointX = point.plotX,
                      pointY = point.plotY,
                      x = pointX + plotLeft + (chart.inverted ? distance : -boxWidth - distance),
                      y = pointY - boxHeight + plotTop + 15,
                      // 15 means the point is 15 pixels up from the bottom of the tooltip
                      alignedRight;
                  // It is too far to the left, adjust it
                  if (x < 7) {
                      x = plotLeft + pointX + distance;
                  }
                  // Test to see if the tooltip is too far to the right,
                  // if it is, move it back to be inside and then up to not cover the point.
                  if ((x + boxWidth) > (plotLeft + plotWidth)) {
                      x -= (x + boxWidth) - (plotLeft + plotWidth);
                      y = pointY - boxHeight + plotTop - distance;
                      alignedRight = true;
                  }
                  // If it is now above the plot area, align it to the top of the plot area
                  //if (y < plotTop + 5) {
                  //    y = plotTop + 5;
                  //    // If the tooltip is still covering the point, move it below instead
                  //    if (alignedRight && pointY >= y && pointY <= (y + boxHeight)) {
                  //        y = pointY + plotTop + distance; // below
                  //    }
                  //}
                  // Now if the tooltip is below the chart, move it up. It's better to cover the
                  // point than to disappear outside the chart. #834.
                  if (y + boxHeight > plotTop + plotHeight) {
                      y = Math.max(plotTop, plotTop + plotHeight - boxHeight - distance); // below
                  }
                  return {
                      x: x,
                      y: 100
                  };
              }*/
          },
          legend: {
            /*itemStyle: {
                width:'50px',
                textOverflow: 'ellipsis',
                overflow: 'hidden'
            },*/
            itemStyle: {
            },
            itemMarginTop: 0,
            itemMarginBottom: 8,
            enabled: true,
            labelFormatter: function() {
              if (this.hasOwnProperty('yData')) {
                var yData = this.yData;
              } else {
                var yData = false;
              }
              if (yData) {
                var isPercentage = (jQuery('#data_values').val() == 'percentage');
                var count = this.options.indicatorValue;
                var name = this.name + ' (' + count + ')';
              } else {
                var name = this.name;
              }
              return name;
            }
          },
          series: series
      };

      //console.info(chartOptions);

      //if (isMobile()) {
        // jQuery(timeLineTitleContainer).html('<strong>' + data.info.title + '</strong>').show();
        jQuery(timeLineTitleContainer).html('<h2 class="timeline-title">' + data.info.title + '</h2>').show();
      /*} else {
        chartOptions.title.text = data.info.title;
      }*/

      /*if (isChartLoadedFirstTime) {
        chartType = data.info.chartType;
        colors = data.info.colors;
      } else {
        chartType = jQuery('#chart_type').val();
        colors = jQuery('#colors').val();
      }*/
      switch(colors) {
        case 'custom':
          chartOptions.colors = colorsList;
          break;
        case 'standart':
          delete chartOptions.colors;
          break;
        case 'colorPatternFill':
          chartOptions.colors = colorsList;
          break;
      }

      switch(chartType) {
        case 'type1':
          chartOptions.chart.type = 'area';
          break;
        case 'type2':
          chartOptions.chart.type = 'column';
          break;
        case 'type3':
          chartOptions.chart.type = 'column';
          delete chartOptions.plotOptions.area;
          break;
        case 'type4':
          chartOptions.chart.type = 'line';
          break;
        case 'type5':
          chartOptions.chart.type = 'spline';
          break;
        case 'type6':
          delete chartOptions.chart.type;
          break;
        case 'type7':
          chartOptions.chart.type = 'scatter';
          break;
      }

      chartOptions.plotOptions.series.states.hover.lineWidth = data.info.lineWidth;

      if (notShowChartButtons == 1) {
        chartOptions.exporting = {enabled: false};
      }
      chartOptions.defs.patterns = getDefsPatterns(data.data.length);
      chartOptions.tooltip.formatter1 = function() {
        var points = this.points;
        
        var sortedPoints = points.sort(function(a, b) {
          if (data.info.orderBy.field == 'name') {
            var fieldA = 'a.series.name';
            var fieldB = 'b.series.name';
          } else if (data.info.orderBy.field == 'indicatorValue') {
            var fieldA = 'a.y';
            var fieldB = 'b.y';
          }
          if (data.info.orderBy.direction) {
            r = (fieldA > fieldB) ? 1 : (fieldA < fieldB) ? -1 : 0;
          } else {
            r = (fieldA < fieldB) ? 1 : (fieldA > fieldB) ? -1 : 0;
          }
          return r;
        });
        var addToEndOfLabelsString = sortedPoints.length > 10 ? '...' : '';
        sortedPoints = sortedPoints.slice(0, 10);
        var Date1 = new Date(this.x);
        var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
        var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
        var labelsString = '';
        var labelsHeader =
        //   '<span style="font-size:11px">' +
          '<span class="tooltip-date">' +
          days[Date1.getUTCDay()] + ', ' +
          months[Date1.getUTCMonth()] + ' ' +
          Date1.getUTCDate() + ', ' +
          (('0' + Date1.getUTCHours()).slice(-2)) +
          ':' +
          (('0' + Date1.getUTCMinutes()).slice(-2)) +
          '</span>';
        labelsString += labelsHeader;
        labelsString += "<table>";
        jQuery.each(sortedPoints, function(i, point) {
          if (point.series.color.indexOf('#') == 0) { // color: custom, standart
            var name = '<span style="color:' + point.series.color + ';">'+ point.series.name + '</span>';
          } else {  // color pattern-fill
            //var color = colorsList[i];
            /*   point.series.renderer.rect(100, 100, 100, 100, 5)
            .attr({
                'stroke-width': 2,
                stroke: 'red',
                fill: 'yellow',
                zIndex: 3
            })
            .add();*/
            color = point.series.options.colorTooltip;
            var name =
              //'<g class="highcharts-legend-item" transform="translate(8,3)"><text x="21" style="color:#333333;font-size:12px;font-weight:bold;cursor:pointer;fill:#333333;" text-anchor="start" y="15"><tspan>ﾐ籍ｻﾐｵﾐｺﾑ��ｰﾐｽﾐｴﾑ� ﾐ｣ﾑ��ｸﾐｺ</tspan></text><rect x="0" y="4" width="16" height="12" fill="url(#highcharts-default-pattern-2)"></rect></g>' +
              //'<span style="width:10px;height:10px;background-color:' + point.series.color + '"></span>&nbsp;' +
              //'<span style="font-weight:bold">'+ point.series.name + '</span>';
              '<span style="color:' + color + ';">'+ point.series.name + '</span>';
          }
          var value = point.y;
          if (jQuery('#data_values').val() == 'percentage') {
            value += '%';
          }
          labelsString += '<tr><th>' + name + '</th><td><strong>' + value + '</strong></td></tr>';
        });
        labelsString += addToEndOfLabelsString;
        labelsString += "</table>";
        return labelsString;
      };
      if (data.info.errors.status == 1) {
        chartOptions.lang.noData = data.info.errors.message;
        chartOptions.series = [];
      }
      
        /*chartOptions1 = {series: []};
        chartOptions1.series = chartOptions.series;*/
      
        //console.info(chartType);
        if (chartType == 'type7') {
          chartOptions.legend = {};
          chartOptions.legend.labelFormatter = function() {
            name = this.name
            // + ' (' + this.options.indicatorValue + ')';
            return name;
          }

          chartOptions.plotOptions = {};
          chartOptions.chart.type = 'scatter';
          chartOptions.tooltip = {
            //shared: true,
            /*formatter: function() {
              return false;
              
              //if (!this.series.options.hasOwnProperty('isRegressionLine')) {
              //  return false;
              //}
              //return this.extraForTooltip;
              
              //return this.point.name + ': <b>' + Math.ceil(this.point.value) + '</b>';
            }*/
          }
          /*chartOptions.plotOptions.series = {
            states: {
              hover: {
                enabled: false
              }
            }
          };*/
          chartOptions.plotOptions.scatter = {
            /*tooltip: {
              
              pointFormatter: function() {
                return false;
              }
            },*/
            /*dataLabels: {
              enabled: false
            },*/
            showInLegend: false,
            /*states: {
              hover: {
                enabled: false
              }
            },
            marker: {
                enabled: false
            },*/
            point: {
                /*showInLegend: false,
                events: {
                    show: function () {
                        console.info(this);
                        this.remove();
                    }
                }*/
            },
            events: {
                show: function () {
                    this.graph.hide();
                }
            }
          };
          
        } else if (chartType == 'type6') {
        // needs to chage for gantt chart type (chartType = 'type6')
          /*delete chartOptions.xAxis;
          delete chartOptions.yAxis;
          delete chartOptions.tooltip;
          delete chartOptions.title;
          delete chartOptions.scrollbar;
          delete chartOptions.resetZoomButton;
          delete chartOptions.rangeSelector;
          delete chartOptions.navigator;
          delete chartOptions.legend;
          delete chartOptions.lang;
          delete chartOptions.exporting;
          delete chartOptions.defs;
          delete chartOptions.colors;
          delete chartOptions.chart;*/
          
          //delete chartOptions.plotOptions;
           //chartOptions.chart.type = 'line';
          chartOptions.plotOptions.line = {};
          chartOptions.plotOptions.line.lineWidth = data.info.lineWidth;
          //chartOptions.plotOptions.series.states.hover.lineWidth = data.info.lineWidth;
          

          chartOptions.tooltip = {
            formatter: function() {
                /*return '<b>'+ tasks[this.y].name + '</b><br/>' +
                    Highcharts.dateFormat('%Y-%m-%d %H:%M', this.point.options.from) + ' | value: ' + this.point.options.value;*/
                            var Date1 = new Date(this.point.options.from);
                var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
                var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
                var labelsString = '';
                var labelsHeader =
                //   '<span style="font-size:11px">' +
                  '<span class="tooltip-date">' +
                  days[Date1.getUTCDay()] + ', ' +
                  months[Date1.getUTCMonth()] + ' ' +
                  Date1.getUTCDate() + ', ' +
                  (('0' + Date1.getUTCHours()).slice(-2)) +
                  ':' +
                  (('0' + Date1.getUTCMinutes()).slice(-2)) +
                  '</span>';
                labelsString += labelsHeader;
                //labelsString += "<table>";
                  var value = this.point.options.value;
                  if (jQuery('#data_values').val() == 'percentage') {
                    value += '%';
                  }
                  //labelsString += '<tr><th><span><br>' + tasks[this.y].name + '</span></th><td><strong>' + value + '</strong></td></tr>';
                  labelsString += '<br><span>' + tasks[this.y].name + '</span>: <strong>' + value + '</strong>';
                
                //labelsString += "</table>";
                return labelsString; 
            }
          };
      
          chartOptions.legend.reversed = true;
          chartOptions.legend.labelFormatter = function() {
              var name = this.name + ' (' + this.options.indicatorValue + ')';
              return name;
            }


            //chartOptions.yAxis.labels = {};
            //chartOptions.yAxis.labels.enabled = true;
            chartOptions.yAxis.categories = tasksNames;/*Array.apply(null, Array(tasks.length)).map(function (_, i) {return i;});*/

          chartOptions.plotOptions.series.connectNulls = false;
          delete chartOptions.plotOptions.series.stacking;
        }

      return chartOptions;
    }
    function getApiUrlByOptions() {
      chart = jQuery(timeLineContainer).highcharts();
      if (queryParams.hasOwnProperty('shareUrl')) {
        if (isChartLoadedFirstTime) {
          shareUrl = queryParams.shareUrl;
          return shareUrl;
        } else {
          shareUrl = decodeURIComponent(shareUrl);
          queryParams = getQueryParams(shareUrl);
        }
      }
      var optionsParams = {
        params:{
          orderBy:{},
          countWords:{},
          date: {},
          presentWords: {}
        }
      };
      if (chart) {
        optionsParams.params.returnSocialFields = {
          'tw': {
            'posts': 0,
            'reposts': 0,
            'likes': 0,
            'sentiment': 0,
          },
          'fb': {
            'posts': 0,
            'reposts': 0,
            'likes': 0,
            'sentiment': 0,
          }
        };
        optionsParams.params.returnSocialFields.tw.posts = Number(jQuery('#social_tw_posts').prop('checked'));
        optionsParams.params.returnSocialFields.tw.reposts = Number(jQuery('#social_tw_reposts').prop('checked'));
        optionsParams.params.returnSocialFields.tw.likes = Number(jQuery('#social_tw_likes').prop('checked'));
        optionsParams.params.returnSocialFields.tw.sentiment = Number(jQuery('#social_tw_sentiment').prop('checked'));
        
        optionsParams.params.showLegendWords = Number(jQuery('#show_legend_words').prop('checked'));
        var legendWordsNotVisibleList = [];
        jQuery(chart.series).each(function(i) {
          var isNotVisible = !this.visible;
          if (isNotVisible) {
            legendWordsNotVisibleList.push(this.name);
          }
        });
        if (legendWordsNotVisibleList.length) {
          optionsParams.params.legendWordsNotVisibleList = encodeURIComponent(
            legendWordsNotVisibleList.join(',')
          );
        }
      }
      var wordsNames = jQuery('#words_names').val();
      if (wordsNames != '') {
        var wordsNamesCount = wordsNames.split(',').length;
        if (wordsNamesCount == 1) {
          jQuery('#data_values').val('original');
        }
      }
      optionsParams.params.wordsNames = encodeURIComponent(wordsNames);
      optionsParams.params.chartType = jQuery('#chart_type').val();
      optionsParams.params.colors = jQuery('#colors').val();
      optionsParams.params.count = myModal.find('#count').val();
      optionsParams.params.orderBy.field = myModal.find('#order_field').val();
      optionsParams.params.orderBy.direction = myModal.find('#order_direction').val();
      optionsParams.params.groupWords = myModal.find('#group_words').val();
      optionsParams.params.countFieldName = myModal.find('#countFieldName').val();

      /*var countFieldNameLabels = [];
      myModal.find('#countFieldName option').each(function()
      {
         var data = {};
         data[jQuery(this).val()] = jQuery(this).text();
         countFieldNameLabels.push(data);
      });
      optionsParams.params.countFieldNameLabels = encodeURIComponent(countFieldNameLabels.join(','));*/

      optionsParams.params.countWords.min =
        ((myModal.find('#count_words_min').val() != '') ?
        myModal.find('#count_words_min').val() :
        '');
      optionsParams.params.countWords.max =
        ((myModal.find('#count_words_max').val() != '') ?
        myModal.find('#count_words_max').val() :
        '');
      optionsParams.params.topWords = Number(jQuery('#top_words').prop('checked'));
      optionsParams.params.presentWords.type = myModal.find('#present_words_type').val();
      optionsParams.params.presentWords.days = myModal.find('#present_words_days').val();
      optionsParams.params.debug = Number(myModal.find('#debug').val());
      optionsParams.params.date.from = myModal.find('#date_from').val();
      optionsParams.params.date.to = myModal.find('#date_to').val();
      optionsParams.params.date.fromModify = myModal.find('#date_from_modify').val();
      optionsParams.params.date.toModify = myModal.find('#date_to_modify').val();

      optionsParams.params.category = myModal.find('#category').val();
      optionsParams.params.method = myModal.find('#method').val();
      optionsParams.params.type = myModal.find('#type').val();
      optionsParams.params.sortDataFix = myModal.find('#sortDataFix').val();

      optionsParams.params.dbDataSource = jQuery('#db_data_source').val();
      optionsParams.params.mergeSimilarWords = Number(jQuery('#merge_similar_words').prop('checked'));
      optionsParams.params.dataAveraging = jQuery('#data_averaging').val();
      optionsParams.params.lineWidth = jQuery('#line_width').val();
      var wordsContainer2 = '#words2';
      var chosenSpans = jQuery('.chosen-container').find('span');
      /*if (!chosenSpans.length) {
        jQuery('#words_restore_all').click();
      }*/
      jQuery(wordsContainer2).find('option').remove();
      jQuery.each(chosenSpans, function(i) {
        var name = jQuery(chosenSpans[i]).text();
        var color = jQuery(chosenSpans[i]).data('color');
        if (typeof color != 'undefined') {
          var value = name + '|' + color;
        } else {
          var value = name;
        }
        jQuery(wordsContainer2).append(
          jQuery('<option>', {
            value:value, text:name
          }
        ));
      });
      var words = jQuery(wordsContainer2 + ' option').map(function(){ return this.value }).get();
      if (words && words.length) {
        optionsParams.params.words = words.join(',');
        optionsParams.params.words = encodeURIComponent(optionsParams.params.words);
      }
      if (jQuery("#words2 option").length == 1) {
        jQuery('#data_values').val('original');
      }
      optionsParams.params.dataValues = jQuery('#data_values').val();
    //   optionsParams.params.colorsListPattern = encodeURIComponent(colorsListPattern.join(','));
      optionsParams.params.colorsListPattern = encodeURIComponent(colorsList.join(','));
      if (queryParams.hasOwnProperty('apiUrl')) {
        var split = queryParams.apiUrl.split('?');
        var queryParamsApiUrl = split[0];
        var queryParamsApiPath = getQueryParams(split[1]);

        if (isChartLoadedFirstTime) {
          var queryParamsCurrentPageUrl = queryParams.hasOwnProperty('currentPageUrl') ? queryParams.currentPageUrl : '/';

          jQuery.each(queryParamsApiPath, function(key, value) {
            key1 = key
              .replace('params[', '')
              .replace('][', '%_%')
              .replace(']', '');
            if (key1.indexOf('%_%') != -1) {
              key2 = key1.split('%_%');
              var key2len = key2.length;
              if (key2len == 1) {
                optionsParams.params[key2[0]] = value;
              } else if (key2len == 2) {
                optionsParams.params[key2[0]][key2[1]] = value;
              } else if (key2len == 3) {
                optionsParams.params[key2[0]][key2[1]][key2[2]] = value;
              }
            } else {
              optionsParams.params[key1] = value;
            }
            if ((key1 == 'category') && (queryParamsCurrentPageUrl == '/')) {
              jQuery('#myModal').find('#category').val(value);
            }
          });

        }

        queryParamsApiUrl +=
          /*'?params[method]=data' +
          '&params[type]=2' +
          '&' + jQuery.param(optionsParams);*/
          '?' + jQuery.param(optionsParams);

        queryParamsApiUrl = '/wp-admin/admin-ajax.php?action=TimelineGraphSocialAPI2&apiUrl=' + encodeURIComponent(queryParamsApiUrl) + '&currentPageUrl=' + encodeURIComponent(queryParams.currentPageUrl);
      }
      return queryParamsApiUrl;
    }
    function createChart(options) {
        if (!options) {
          jQuery(timeLineMainContainer).find('#spinner1').hide();
          return false;
        }
        chart = jQuery(timeLineContainer).highcharts();
        if (chart) {
          options.chart.height = jQuery(timeLineContainer).height();
          options.chart.width  = jQuery(timeLineContainer).width();
        }

        //jQuery(timeLineContainer).highcharts('StockChart', options);
        jQuery(timeLineContainer).highcharts(options);
        
        jQuery(timeLineContainer).show();
    }
    function fillSearchForm(data) {
        // new place - test variant change place!!!
        var wordsContainer = jQuery('#words');
        wordsContainer.find('option').remove();
        jQuery.each(data.data, function(i) {
          var name = data.data[i]['name'];
          wordsContainer.append(
            jQuery('<option>', {
              value:name, text:name
            }
          ));
        });
        if (isChartLoadedFirstTime) {
          // !place important
          if (data.info.hasOwnProperty('chartType')) {
            jQuery('#chart_type').val(data.info.chartType).change();
          }

          wordsContainer.chosen({width: '100%'});
          wordsContainer.on('change', function() {
            chosenSpansInit();
          });
          jQuery('#words_restore_all').on('click', function() {
            jQuery(wordsContainer).find('option').attr('selected', 'selected');
            jQuery(wordsContainer).trigger('chosen:updated');
            chosenSpansInit();
          });
          jQuery('#words_clear_all').on('click', function() {
            jQuery(wordsContainer).find('option').attr('selected', false);
            jQuery(wordsContainer).trigger('chosen:updated');
          });
          jQuery('#words option').attr('selected', 'selected');
          jQuery('#words').trigger('chosen:updated');
          chosenSpansInit();
          jQuery('#words_clear_all').click();
        } else {
          if (jQuery('.chosen-container').find('.chosen-choices li').length > 1) {
            jQuery('#words_restore_all').click();
          } else {
            jQuery(wordsContainer).val('').trigger('chosen:updated');
          }
        }
        // ---

        if (data.info.hasOwnProperty('date')) {
          var dateFrom = data.info.date.from.split(' ')[0];
          var dateTo   = data.info.date.to.split(' ')[0];
          jQuery('#date_from').val(dateFrom);
          jQuery('#date_to').val(dateTo);
        }
        if (data.info.hasOwnProperty('count')) {
          jQuery('#count').val(data.info.count);
        }
        if (data.info.hasOwnProperty('orderBy')) {
          jQuery('#order_field').val(data.info.orderBy.field);
          jQuery('#order_direction').val(data.info.orderBy.direction);
        }
        if (data.info.hasOwnProperty('countFieldName')) {
          jQuery('#countFieldName').val(data.info.countFieldName).change();
        }
        if (data.info.hasOwnProperty('countWords')) {
          jQuery('#count_words_min').val(data.info.countWords.min);
          if (data.info.countWords.max != 0) {
            jQuery('#count_words_max').val(data.info.countWords.max);
          }
        }
        if (data.info.hasOwnProperty('topWords')) {
          jQuery('#top_words').prop('checked', data.info.topWords);
        }

        if (data.info.hasOwnProperty('presentWords')) {
          jQuery('#present_words_type').val(data.info.presentWords.type).change();
          jQuery('#present_words_days').val(data.info.presentWords.days);
        }
        if (data.info.hasOwnProperty('groupWords')) {
          jQuery('#group_words').val(data.info.groupWords);
        }
        /*if (data.info.hasOwnProperty('chartType')) {
          jQuery('#chart_type').val(data.info.chartType).change();
        }*/
        if (data.info.hasOwnProperty('wordsNames')) {
          jQuery('#words_names').val(stripslashes(data.info.wordsNames));
        }
        if (data.info.hasOwnProperty('colors')) {
          jQuery('#colors').val(data.info.colors);
        }
        if (data.info.hasOwnProperty('dbDataSource')) {
          jQuery('#db_data_source').val(data.info.dbDataSource);
        }
        if (data.info.hasOwnProperty('showLegendWords')) {
          jQuery('#show_legend_words').prop('checked', data.info.showLegendWords);
        }
        if (data.info.hasOwnProperty('mergeSimilarWords')) {
          jQuery('#merge_similar_words').prop('checked', data.info.mergeSimilarWords);
        }
        if (data.info.hasOwnProperty('dataValues')) {
          jQuery('#data_values').val(data.info.dataValues);
        }
        if (data.info.hasOwnProperty('dataAveraging')) {
          jQuery('#data_averaging').val(data.info.dataAveraging);
        }
        
        // old place - test variant change place!!!
    }
    if (!notShowChart) {
      jQuery.getJSON(getApiUrlByOptions(), function (data) {
          fillSearchForm(data);
          chartOptions = getChartOptions(data);
          createChart(chartOptions);
      });
    } else {
      jQuery(timeLineMainContainer).find('#spinner1').hide();
    }
    function afterGraphLoad(data) {
      // remove blue line from scrollbar (commented it - deprecated?)
      //jQuery('.highcharts-series.highcharts-series-' + data.data.length).remove();
      
      jQuery(timeLineMainContainer).find('#spinner1').hide();
      //jQuery('#copy_share_link_container').show();
      chart = jQuery(timeLineContainer).highcharts();

      var menuItems = {
          textKey: 'exportKey',
          onclick: function() {
            /*if (!data.data.length) {
             return false;
            }*/
            var blob = new Blob([JSON.stringify(data.data)], {
                //type: 'text/plain;charset=us-ascii;',
                type: 'text/json;charset=utf-8;'
            });
            saveAs(blob, data.info.title + '.json');
          }
      };
      if (isChartLoadedFirstTime) {
        var height = jQuery(window).height();
        if (isMobile()) {
        } else {
          //height -= 200;
        }
        if (height > 0) {
          chart.setSize(
            jQuery(timeLineContainer).width(),
            height, false
          );
        }
        isChartLoadedFirstTime = false;
      }
      chart.options.exporting.buttons.contextButton.menuItems[5] = menuItems;
      var legendWordsChecked = jQuery('#show_legend_words').prop('checked');
      if (legendWordsChecked) {
          jQuery(chart.series).each(function() {
              this.setVisible(false, false);
          });
      } else {
          jQuery(chart.series).each(function() {
              this.setVisible(true, false);
          });
      }
      if (queryParams.hasOwnProperty('shareUrl')) {
        if (data.info.hasOwnProperty('legendWordsNotVisibleList') && data.info.legendWordsNotVisibleList.length) {
          jQuery(chart.series).each(function(i) {
              if (jQuery.inArray(this.name, data.info.legendWordsNotVisibleList) != -1) {
                this.setVisible(false, false);
              }
          });
        }
      }
    }
    jQuery('#apply').on('click', function() {
      extraSeries = [];
      jQuery(timeLineTitleContainer).html('');
      jQuery(timeLineContainer).hide();
      jQuery(timeLineMainContainer).find('#spinner1').show();
      //jQuery('#copy_share_link_container').hide();
      jQuery.getJSON(getApiUrlByOptions(), function (data) {
          //jQuery(timeLineMainContainer).find('#spinner1').hide();
          //chart.series[0].setData(data);
          //chart.redraw();
        //   jQuery(timeLineContainer).empty();
          fillSearchForm(data);
          chartOptions = getChartOptions(data);
          createChart(chartOptions);
      });
      //topWordsWidget();
      //mapWidget();
    });
    /*jQuery('#copy_share_link').on('click', function() {
      var shareLink =
        document.location.origin +
        document.location.pathname +
        '?shareUrl=' +
        encodeURIComponent(
          getApiUrlByOptions()
        );
      window.prompt(
          'Copy to clipboard: Ctrl+C, Enter',
          shareLink
      );
    });*/
    function getDefsPatterns(count) {
      var patternsList = [
          'M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11', // inclined lines left
          'M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9',  // inclined lines right
          'M 3 3 L 8 3 L 8 8 L 3 8 Z', // square
          'M 2 5 L 5 2 L 8 5 L 5 8 Z', // rhomb
          'M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0', // circle (points)
          'M 0 3 L 10 3 M 0 8 L 10 8', // horizontal lines
          'M 3 0 L 3 10 M 8 0 L 8 10', // vertical lines
      ];
      patternsList = replicateArray(patternsList, count);
      var i2 = 0,
          i3 = 0,
          colorsListPatternLen = colorsListPattern.length,
          patterns = [],
          patternRotate = 0;
      jQuery.each(patternsList, function (i) {
          for (i2 = 0; i2 < colorsListPatternLen; i2++) {
              if (i <= 1) {
                var pattern = patternsList[patternRotate];
                patternRotate = Number(!patternRotate);
              } else {
                var pattern = patternsList[i];
              }
              var patternId = 'highcharts-default-pattern-' + i3;
              patterns.push({
                  'id': patternId,
                  'path': {
                    d: pattern,
                    stroke: colorsListPattern[i2],
                    strokeWidth: 5
                  }
              });
              i3++;
          }
      });
      return patterns;
    }
    function replicateArray(array, n) {
      var arrays = Array.apply(null, new Array(n));
      arrays = arrays.map(function() { return array });
      return [].concat.apply([], arrays);
    }
    // TODO: 
    /*jQuery('#chart_type').on('change', function() {
      if (jQuery(this).val() == 'type3' || jQuery(this).val() == 'type4' || jQuery(this).val() == 'type5') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(4).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
      } else {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(1).prop('disabled', true);
        jQuery('#data_values').val('percentage');
        jQuery('#data_averaging').prop('disabled', true);
      }
    });*/
    jQuery('#chart_type').on('change', function() {
      if (jQuery(this).val() == 'type7') {
        //jQuery('#present_words_type').find('option[value="trends_any"]').attr('selected', 'selected');
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#present_words_type').val('trends_any').change();
      } else if (jQuery(this).val() == 'type6') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#count').val(20);
        jQuery('#line_width').val(15).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
      } else if (jQuery(this).val() == 'type4' || 
          jQuery(this).val() == 'type5') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(4).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
        jQuery('#present_words_type').val(0);
      } else {
        jQuery('#present_words_type').val(0);
        jQuery('#order_field').val('name');
        jQuery('#order_direction').val('asc');
        jQuery('#line_width').val(1).prop('disabled', true);
        jQuery('#data_values').val('percentage');
        jQuery('#data_averaging').prop('disabled', true);
      }
    });
    function changeChartType(charType) {
    //   var charType = charType || 'area';
      var charType = charType || 'type3';
      jQuery('#chart_type').val(charType).change();
      jQuery('#apply').click();
    }
    function changeChartDays(daysFrom, daysTo) {
      jQuery('#count_words_min').val('');
      jQuery('#date_from').val('');
      jQuery('#date_to').val('');
      jQuery('#date_from_modify').val(daysFrom);
      jQuery('#date_to_modify').val(daysTo);
      jQuery('#apply').click();
    }
    function mapWidget() {
      if (notShowMap) {
        return false;
      }
      drawMap();
    }
    function topWordsWidget() {
      if (notShowPopWords) {
        return false;
      }
      drawTopWords();
      /*jQuery(topWordsContainer).html('');
      jQuery.ajax({
          url: '/wp-admin/admin-ajax.php?action=topWordsAPI2',
          method: 'post',
          data: {apiUrl: encodeURIComponent(getApiUrlByOptions())},
          success: function (data) {
              if (!data) {
                return false;
              }
              jQuery(topWordsContainer).html(data);
              drawTopWords();
          }
      });*/
    }
    function chosenSpansInit() {
      var chosenSpans = jQuery('.chosen-container').find('span');
      jQuery.each(chosenSpans, function(i) {
        jQuery(chosenSpans[i]).css('font-weight', '');
        var isChoosen = jQuery(chosenSpans[i]).data('chosen');
        if (isChoosen) {
          return;
        }
        jQuery(chosenSpans[i]).data('chosen', true);
        jQuery(chosenSpans[i]).spectrum({
          showPalette: true,
          showInput: false,
          move: function(color) {
              var color = color.toHexString();
              jQuery(chosenSpans[i])
                .css('color', color)
                .data('color', color);
          },
          change: function(color) {
              var color = color.toHexString();
              jQuery(chosenSpans[i]).data('colorOld', color);
          }
          //hideAfterPaletteSelect:true,
          //allowEmpty:true
        });
        jQuery('.sp-container .sp-cancel').on('click', function() {
          var chosenSpans = jQuery('.chosen-container').find('span');
          jQuery.each(chosenSpans, function(i) {
            if (jQuery(chosenSpans[i]).css('font-weight') == 'bold') {
              var colorOld = jQuery(chosenSpans[i]).data('colorOld');
              if (typeof colorOld == 'undefined') {
                colorOld = '#000000';
              }
              jQuery(chosenSpans[i])
                .data('color', colorOld)
                .css('color', colorOld);
              return false;
            }
          });
        });
        jQuery(chosenSpans[i]).on('click', function() {
          var chosenSpans2 = jQuery('.chosen-container').find('span');
          jQuery.each(chosenSpans2, function(i2) {
            jQuery(chosenSpans2[i2]).css('font-weight', '');
          });
          jQuery(chosenSpans[i]).css('font-weight', 'bold');
          jQuery(chosenSpans[i]).spectrum('show');
        });
      });
    }
    function isMobile() {
      try{ document.createEvent("TouchEvent"); return true; }
      catch(e){ return false; }
    }
    //topWordsWidget();
    //mapWidget();
    function stripslashes(str) {
      str = str.replace(/\'/g, "'");
      str = str.replace(/\"/g, '"');
      str = str.replace(/\\/g, "");
      return str;
    }
    jQuery('#present_words_type').on('change', function() {
      if (jQuery(this).val() == 'trends_any') {
        /*jQuery('#order_field').val('name');
        jQuery('#order_direction').val('asc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'trends_grow') {
        /*jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('asc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'trends_fade') {
        /*jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'regular' || jQuery(this).val() == 'irregular') {
        jQuery('#present_words_days_container').show();
      } else {
        jQuery('#present_words_days_container').hide();
      }
       jQuery('#present_words_days').val('');
    });
    jQuery('#countFieldName').on('change', function() {
      var countFieldNameValue = jQuery(this).val();
      if (countFieldNameValue == 'Sentiment') {
        jQuery('#chart_type').val('type2')/*.change()*/;
        jQuery('#count_words_min').val('-10');
        jQuery('#data_values').val('original');
      }

      /*var orderDirection = jQuery('#order_field').val();
      if (orderDirection.indexOf('count') != -1) {
        switch (countFieldNameValue) {
          case 'SimilarityRate':
          case 'Sentiment':
            var orderDirectionValue = 'countMax';
            break;
          default:
            var orderDirectionValue = 'indicatorValue';
        }
        jQuery('#order_field').val(orderDirectionValue);
      }*/

      /*if (jQuery(this).val() == 'Count') {
        jQuery('.count_words_title').html('Frequency');
        jQuery('#count_words_min').val('');
      } else if (jQuery(this).val() == 'SimilarityRate') {
        jQuery('.count_words_title').html('Similarity');
        jQuery('#count_words_min').val('');
      }*/
    });
    jQuery('#top_words').on('click', function(i) {
      //if (jQuery('#top_words').prop('checked')) {
      jQuery('#count_words_min').val('');
      jQuery('#count_words_max').val('');
      //}
    });
    /*jQuery('#myModal').on('shown.bs.modal', function () {
      jQuery('#words', this).chosen({width: "100%"});
    });*/
});
function searchWord(name, color) {
  var color = color || '#FF0000';
  jQuery('#date_from').val('');
  jQuery('#date_to').val('');
  jQuery('#date_from_modify').val('-29days');
  jQuery('#words_names').val('^' + name + '$');
  jQuery('#count_words_min').val(0);
  jQuery('#data_values').val('original');
  var wordsContainer = jQuery('#words');
  jQuery(wordsContainer)
    .find('option[value="' + name + '"]')
    .attr('selected', 'selected');
  jQuery(wordsContainer).trigger('chosen:updated');
  var spans = jQuery('.chosen-container').find('span');
  if (spans.length) {
    jQuery(jQuery(spans)[0]).data('color', color);
  }
  jQuery('#apply').click();
}
</script>
<!-- Latest compiled and minified CSS -->
<!--link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"-->
<!-- Optional theme -->
<!--link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"-->
<!-- Latest compiled and minified JavaScript -->
<!--script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script-->
<!--link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script-->
<!-- Trigger the modal with a button -->

<div id="prompt_container"></div>
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" id="my_modal" style="display:none" onclick="jQuery('#myModal').appendTo('body')">Open Modal</button>
<div id="myModal" class="modal fade" role="dialog" tabindex='-1'>
  <div class="modal-dialog modal-lg">

    <!-- Modal content-->
    <div class="modal-content">

      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Options</h4>
      </div>

      <div class="modal-body">

        <div class="row">
          <div class="col-md-12">

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
            <div class="form-group" title="Defines dates range to select data for correspondent period">
                <label for="date_from">Date from:</label>
                <input type="text" class="form-control" id="date_from" value="">
                <input type="hidden" class="form-control" id="date_from_modify" value="">
                <input type="hidden" class="form-control" id="date_to_modify" value="">
            </div>
            </div>

            <div class="col-md-3" title="Defines dates range to select data for correspondent period">
            <div class="form-group">
                <label for="date_to">Date to:</label>
                <input type="text" class="form-control" id="date_to" value="">
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Defines a way of filling areas on chart">
                <label for="colors">Filling schema:</label>
                <select class="form-control" id="colors">
                  <option value="custom" selected>Colors custom</option>
                  <option value="standart">Colors standard</option>
                  <option value="colorPatternFill">Colors + patterns</option>
                  <option value="patternFill">Patterns</option>
                </select>
            </div>
                <!--div class="form-group" title="Defines a source of data collected and merged as unique for correspondent time period">
                <label for="db_data_source">Data period:</label>
                <select class="form-control" id="db_data_source">
                  <option value="6h">6h</option>
                  <option value="12h">12h</option>
                  <option value="24h">24h</option>
                </select>
                </div-->
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Define type of visual chart representation">
                <label for="chart_type">Chart type:</label>
                <select class="form-control" id="chart_type">
                  <option value="type2">Bar basic</option>
                  <option value="type3">Bar stacked</option>
                  <option value="type1">Area stacked</option>
                  <option value="type4">Line</option>
                  <option value="type5">Line spline</option>
                  <option value="type6">Gantt</option>
                  <option value="type7">Linear Regression</option>
                </select>
              </div>
            <!--div class="form-group" title="Define a mode of terms words expansion, if Yes - shorten terms will be expanded to more wide that contains short as a parts">
              <label for="group_words">Unify terms:</label>
              <select class="form-control" id="group_words">
                <option value="group">Yes</option>
                <option value="notGroup">No</option>
              </select>
            </div-->
            </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-6">
              <div class="form-group well well-sm">
                <strong>TW:</strong>
                &nbsp;<input type="checkbox" id="social_tw_posts" value="0" checked="checked">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_tw_reposts" value="0" checked="checked">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_tw_likes" value="0" checked="checked">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_tw_sentiment" value="0" checked="checked">&nbsp;Sentiment
              </div>
            </div>

            <div class="col-md-6">
              <div class="form-group well well-sm">
                <strong>FB:</strong>
                &nbsp;<input type="checkbox" id="social_fb_posts" value="0" checked="checked">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_fb_reposts" value="0" checked="checked">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_fb_likes" value="0" checked="checked">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_fb_sentiment" value="0" checked="checked">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div>

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <div class="form-group well well-sm">
                <strong>FB:</strong>
                &nbsp;<input type="checkbox" id="social_fb_posts" value="0">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_fb_reposts" value="0">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_fb_likes" value="0">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_fb_sentiment" value="0">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <div class="form-group well well-sm">
                <strong>GPlus:</strong>
                &nbsp;<input type="checkbox" id="social_gplus_posts" value="0">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_gplus_reposts" value="0">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_gplus_likes" value="0">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_gplus_sentiment" value="0">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
            <div class="form-group" title="Defines maximum terms number to display, if Frequency min/max is empty - selects top terms by frequency of match in matched articles">
              <label for="count">Max. terms:</label>
                <input type="text" class="form-control" id="count" value=50>
            </div>
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Defines a data order direction">
              <label for="order_field">Order by:</label>
              <select class="form-control" id="order_field">
                <option value="date">Date</option>
                <option value="name">Name</option>
                <option value="indicatorValue">Count</option>
              </select>
            </div>
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Defines a data order direction">
              <label for="order_direction">Order direction:</label>
              <select class="form-control" id="order_direction">
                <option value="asc">ASC</option>
                <option value="desc">DESC</option>
              </select>
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Define type of visual chart representation">
                <label for="chart_type">Chart type:</label>
                <select class="form-control" id="chart_type">
                  <option value="type2">Bar basic</option>
                  <option value="type3">Bar stacked</option>
                  <option value="type1">Area stacked</option>
                  <option value="type4">Line</option>
                  <option value="type5">Line spline</option>
                  <option value="type6">Gantt</option>
                  <option value="type7">Linear Regression</option>
                </select>
                </div>
            </div>

            </div>
          </div-->

          <!--div class="row">
            <div class="col-md-12">
            <div class="col-md-3">
            <div class="form-group" title="Use 'Frequency (Count)' or 'Max similarity rate (Similarity Rate)'">
              <label for="countFieldName">Indicator:</label>
                <select class="form-control" id="countFieldName">
                  <option value="Count">Frequency</option>
                  <option value="SimilarityRate">Max similarity rate</option>
                  <option value="Sentiment">Sentiment rate</option>
                  <option value="ArticlesUnique">Articles count (unique)</option>
                  <option value="Articles">Articles count (not unique)</option>
                  <option value="SocialTWPosts">TW posts</option>
                  <option value="SocialTWReposts">TW reposts</option>
                  <option value="SocialTWLikes">TW likes</option>
                  <option value="SocialTWSentiment">TW sentiment</option>
                  <option value="SocialFBPosts">FB posts</option>
                  <option value="SocialFBReposts">FB reposts</option>
                  <option value="SocialFBLikes">FB likes</option>
                  <option value="SocialFBSentiment">FB sentiment</option>
                  <option value="SocialGPlusPosts">G+ posts</option>
                  <option value="SocialGPlusReposts">G+ reposts</option>
                  <option value="SocialGPlusLikes">G+ likes</option>
                  <option value="SocialGPlusSentiment">G+ sentiment</option>
                </select>
            </div>
            </div>
            <div class="col-md-3">
            <div class="form-group" title="Defines a frequencies range to select data. If empty - the top terms by Max. terms limit will be selected">
              <label for="count_words_min">Min:</label>
                <input type="text" class="form-control" id="count_words_min" value="">
            </div>
            </div>
            <div class="col-md-3">
            <div class="form-group" title="Defines a frequencies range to select data. If empty - the top terms by Max. terms limit will be selected">
              <label for="count_words_max">Max:</label>
                <input type="text" class="form-control" id="count_words_max" value="">
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Defines a way of filling areas on chart">
                <label for="colors">Filling schema:</label>
                <select class="form-control" id="colors">
                  <option value="custom" selected>Colors custom</option>
                  <option value="standart">Colors standard</option>
                  <option value="colorPatternFill">Colors + patterns</option>
                  <option value="patternFill">Patterns</option>
                </select>
                </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
                <div class="form-group">
                <label for="data_values">Data values:</label>
                <select class="form-control" id="data_values">
                  <option value="percentage">Percentage</option>
                  <option value="original">Original</option>
                </select>
                </div>
            </div>

            <div class="col-md-3">
              <div class="form-group">
              <label for="line_width">Line width:</label>
              <input type="text" class="form-control" id="line_width" value=1 disabled="disabled">
              </div>
            </div>

            <div class="col-md-3">
              <div class="form-group">
              <label for="data_averaging">Data averaging:</label>
              <select class="form-control" id="data_averaging" disabled="disabled">
                <option value="0" selected>None</option>
                <option value="3">3 points</option>
                <option value="5">5 points</option>
              </select>
              </div>
            </div>

            <div class="col-md-3">
              <div class="form-group" title="If checked all terms on a chart and legend will be turned Off and can be one by one turned On by click on term's word in legend area">
                <div class="checkbox">
                  <label><input type="checkbox" id="show_legend_words">Off all terms</label>
                </div>
              </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
        <div class="col-md-12">
          <div class="col-md-3">
            <div class="form-group" title="If checked - top words will be excluded">
              <div class="checkbox">
                <label><input type="checkbox" id="top_words">No top</label>
              </div>
            </div>
          </div>
          <div class="col-md-3">
            <div class="form-group" title="Regular - means include only appeared at each days for period specified; Irregular - means remove appeared at each days for period specified; Single per day - means may appeared many times in one day but once for current period; Single per period - means appeared once for current period; Single daily - means include only appeared at each days for current period">
              <label for="present_words_type">Occurring:</label>
              <select class="form-control" id="present_words_type">
                <option value="0" selected>None</option>
                <option value="regular">Regular</option>
                <option value="irregular">Irregular</option>
                <option value="single">Single per day</option>
                <option value="single_per_period">Single per period</option>
                <option value="single_daily">Single daily</option>
                <option value="trends_any">Trends any</option>
                <option value="trends_grow">Trends to grow</option>
                <option value="trends_fade">Trends to fade</option>
              </select>
            </div>
          </div>
          <div class="col-md-3">
            <div class="form-group" style="display:none" id="present_words_days_container" title="Number of days to use in Occurring filter to include or exclude some measurements">
                <label for="present_words_days">Period, days:</label>
                <input type="text" class="form-control" id="present_words_days" value="">
            </div>
          </div>
          <div class="col-md-3">
          
          </div>
        </div>
        </div>

        <div class="row" style="display:none">
          <div class="col-md-12">

              <div class="col-md-3">
              </div>

              <div class="col-md-3">
                  <div class="form-group">
                    <div class="checkbox">
                      <label><input type="checkbox" id="merge_similar_words">Merge similar terms</label>
                    </div>
                  </div>
              </div>

              <div class="col-md-3">
              </div>

              <div class="col-md-3">
              </div>

          </div>
        </div>

        <div class="row" style="display:none">
          <div class="col-md-12">

          <div class="col-md-3">
              <div class="form-group">
              <label for="debug">Debug:</label>
              <select class="form-control" id="debug">
                <option value=0>0</option>
                <option value=1>1</option>
              </select>
              </div>
          </div>

          </div>
        </div-->

        <div class="row">
          <div class="col-md-12">
            <!-- <script>
            function setStatesForSearch() {
              jQuery('#group_words').val('notGroup');
              jQuery('#words_names').val('^Alabama$,^Alaska$,^Arizona$,^Arkansas$,^California$,^Colorado$,^Connecticut$,^Delaware$,^Florida$,^Georgia$,^Hawaii$,^Idaho$,^Illinois$,^Indiana$,^Iowa$,^Kansas$,^Kentucky$,^Louisiana$,^Maine$,^Maryland$,^Massachusetts$,^Michigan$,^Minnesota$,^Mississippi$,^Missouri$,^Montana$,^Nebraska$,^Nevada$,^New Hampshire$,^New Jersey$,^New Mexico$,^New York$,^North Carolina$,^North Dakota$,^Ohio$,^Oklahoma$,^Oregon$,^Pennsylvania$,^Rhode Island$,^South Carolina$,^South Dakota$,^Tennessee$,^Texas$,^Utah$,^Vermont$,^Virginia$,^Washington$,^West Virginia$,^Wisconsin$,^Wyoming$');
            }
            </script> -->
            <div class="col-md-12">
              <div class="form-group" title="Enter csv RE of keywords list to match">
                <label for="words_names">Search URL:</label>
                <textarea rows="2" id="words_names" placeholder='http://***'></textarea>
              </div>
            </div>

          </div>
        </div>

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <select id="words2" multiple style="display:none">
              </select>
              <label for="words">Words list:</label>
              <select id="words" multiple data-placeholder="Select some words">
              </select>
            </div>


            <div id="words_colors_container">
            </div>

          </div>

          <div class="col-md-12">
            <div class="col-md-3" style="cursor: pointer" id="words_restore_all" title="Restore all words">
              Restore all <span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
            </div>
            <div class="col-md-3" style="cursor: pointer" id="words_clear_all" title="Clear all words">
              Clear all <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
            </div>
            <div class="col-md-3">&nbsp
            </div>
            <div class="col-md-3" style="float:right;text-align:right;cursor: pointer" id="words_colors_picker">
              
            </div>
          </div>

        </div-->

      </div>

      <input type="hidden" class="form-control" id="category" value="/">
      <input type="hidden" class="form-control" id="method" value="dataSocial">
      <input type="hidden" class="form-control" id="type" value="2">
      <input type="hidden" class="form-control" id="sortDataFix" value="">

      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal" id="apply">Apply</button>
      </div>

    </div>

  </div>
</div>
<!--DEBUG:--><!--DEBUG:--><!--DEBUG-spv--><style>
body {
  font-family: 'Open Sans', arial, sans-serif; }

/*.td-banner-wrap-full.td-logo-wrap-full,*/
.td-page-header,
.td-crumb-container {
  display: none; }

.t-g-main-container {
  padding: 19px 19px 20px 20px; }

.t-g-title {
  background-color: #222222;
  border-radius: 3px;
  color: #FFFFFF;
  display: inline-table;
  font-family: 'Open Sans', arial, sans-serif;
  font-size: 11px;
  font-weight: bold;
  line-height: 16px;
  padding: 2px 15px;
  position: relative;
  top: -3px;
  vertical-align: middle; }

.spinner {
  margin: 40px auto;
  width: 70px;
  text-align: center; }

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both; }

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s; }

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s; }

@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0); }

  40% {
    -webkit-transform: scale(1); } }

@keyframes sk-bouncedelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
    transform: scale(0); }

  40% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

.modal {
  top: 80px;
  z-index: 1000000; }

/*.modal{
    display: block !important;
}
.modal-dialog{
    overflow-y: initial !important
}*/
.modal-body {
  overflow-y: auto; }

#prompt_dialog .modal-body {
  height: 130px; }

/*#myModal{
  z-index: 1000000;
}*/
.modal-backdrop {
  z-index: 999999; }

#myModal .modal-body {
  height: 330px; }

#prompt_dialog textarea {
  height: 72px;
  min-height: 72px;
  resize: none; }

.chosen-container span {
  cursor: pointer; }

#t_g_title_container2 {
  text-align: left;
  padding: 0;
  display: none;
  font-weight: bold; }

#t_g_title_container2 .timeline-title {
  position: relative;
  margin-top: 0;
  padding: 10px 20px;
  margin-bottom: 14px;
  font-weight: bold;
  background-color: #f0f0f0; }
  #t_g_title_container2 .timeline-title::before {
    position: absolute;
    top: 100%;
    left: 0;
    content: '';
    border-style: solid;
    border-color: transparent;
    border-width: 0 15px 15px 0;
    border-right-color: #ccc; }

#words_names {
  height: 60px;
  min-height: 60px; }

#t_g_main_container2 {
  position: relative; }

/* nav*/
/* highcharts */
.highcharts-axis-line,
.highcharts-tick {
  stroke: #c1c1c1; }

.highcharts-tooltip-box {
  fill: rgba(255, 255, 255, 0.92); }

.highcharts-tooltip .tooltip-date {
  font-size: 11px; }
.highcharts-tooltip table {
  margin: 0;
  background-color: #fff; }
  .highcharts-tooltip table th {
    background-color: #f7f7f7; }
  .highcharts-tooltip table td {
    text-align: right; }

.highcharts-spline-series path {
  stroke-width: 2px !important; }

/* top words */
.accordion-container{
  position: relative;
  width: auto;
  height: auto;
  margin: 0;
  /*display: inline-block;*/
}
.accordion-container > h2{
  text-align: center;
  color: #fff;
  padding-bottom: 5px;
  margin-bottom: 30px;
  border-bottom: 1px solid #ddd;
}
.t-w-b-set{
  position: relative;
  width: 100%;
  height: auto;
  background-color: #f5f5f5;
  float: left;
}
.t-w-b-set > span{
  display: block;
  padding: 3px 10px;
  text-decoration: none;
  color: #555;
  font-weight: 600;
  border-bottom: 1px solid #ddd;
  -webkit-transition:all 0.2s linear;
  -moz-transition:all 0.2s linear;
  transition:all 0.2s linear;
  cursor: pointer;
}
.t-w-b-set > span i{
  position:relative;
  float: right;
  color: #666;
}
.t-w-b-set > span.active{
  background-color:#3399cc;
  color: #fff;
}
.t-w-b-set > span.active i{
  color: #fff;
}
.t-w-b-set > span a {
  font-weight: bold;
  color: #666;
}
.t-w-b-set > span.active a {
  font-weight: bold;
  color: #fff;
}
.t-w-b-content{
  position:relative;
  width: 100%;
  font-size: 15px;
  height: auto;
  background-color: #ffa;
  border-bottom: 1px solid #ddd;
  display:none;
}
.t-w-b-content p{
  padding: 0;
  margin: 0;
}
.t-w-b-chart
{
    cursor: pointer;
}
.t-w-b-main-container {
    padding: 0;
}
.t-w-b-title {
    background-color: #222222;
    border-radius: 3px;
    color: #FFFFFF;
    display: inline-table;
    font-family: 'Open Sans', arial, sans-serif;
    font-size: 11px;
    font-weight: bold;
    line-height: 16px;
    padding: 2px 15px;
    position: relative;
    top: -3px;
    vertical-align: middle;
    margin: 16px;
}
td.t-w-b-td {
  background-color: white;
  overflow:hidden;
  text-overflow: ellipsis;
  /*white-space: nowrap;*/
}
td.t-w-b-td > a {
  /*display: inline-block;*/
  background-color: white;
  overflow:hidden;
  text-overflow: ellipsis;
  /*white-space: nowrap;*/
}

td.width-date {
  width: 15%;
  padding: 10px;
  vertical-align: top;
}
td.width-data {
  padding: 0px;
  text-align: left;
}

table.t-w-b-tbl {
  background-color: white;
  width: 100%;
}

.header-word {
    white-space: nowrap;
    overflow: hidden;
    margin: 0px 20px 0px 0px;
    text-overflow: ellipsis;
    /*width: 15%;*/
    width: 35%;
    position: relative;
    float: left;
    padding-left: 5px;
}
.header-word.ranks {
  width: 16%;
}
.header-word.number {
  width: 4%;
}

.t-w-b-set .title {
  font-size: 100%;
  font-weight: bold;
}
.header-counts.title {
}
.header-counts.title span:nth-child(3) {
  text-align: center;
}
.header-word .highlight-new {
  color: red;
  /*padding: 10px 0px 10px 0px;*/
}
.header-word .highlight-today {
  color: green;
  /*padding: 10px 0px 10px 0px;*/
}
.header-word .highlight-7days {
  color: #31708f;
  /*padding: 10px 0px 10px 0px;*/
}
.t-w-b-td .highlight-fragments {
  color: orange;
  /*padding: 10px 0px 10px 0px;*/
}
.header-chains {
    white-space: nowrap;
    overflow: hidden;
    margin: 0px 20px 0px 0px;
    text-overflow: ellipsis;
    width: 21%;
    float: left;
    font-size: 80%;
    font-weight: normal;
}
.header-chevron {
    float: left;
    padding: 3px 0px 0px 0px;
    font-size: 80%;
}
.header-search a {
  float: left;
  padding: 0px 4px 0px 0px;
}
.header-search {
    /*white-space: nowrap;
    overflow: hidden;*/
    /*margin: 0px 20px 0px 0px;*/
    /*text-overflow: ellipsis;*/
    /*width: 11%;*/
    width: 13%;
    float: right;
}
.header-search.small {
  font-size:10px;
  padding: 5px 0px 0px 0px;
  height: 23px;
}
.header-counts {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 20%;
    float: left;
}
.header-counts span {
  float: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
}
.header-counts span:nth-child(1) {
  width: 55px;
}
.header-counts span:nth-child(2) {
  width: 65px;
}
.header-counts span:nth-child(3) {
  width: 55px;
}
.star-container {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/star.png) no-repeat;
  background-size: 17px;
  /*background-position: center;*/
  background-position: 2px 1px;
  width: 20px;
  float: left;
}
.label-container-empty {
  position: relative;
  vertical-align: middle;
  background-size: 17px;
  /*background-position: center;*/
  background-position: 2px 1px;
  width: 20px;
  float: left;
}
.social-container .rank {
  font-size: 7px;
  text-align: center;
  color: #000000;
  font-weight: 600;
  line-height: 22px;
}
.star-container .digest-rank {
  font-size: 7px;
  text-align: center;
  color: #ffffff;
  font-weight: 600;
  line-height: 22px;
}
.smile-container {
  position: relative;
  width: 20px;
  float: left;
}
.social-container.tw {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/twitter.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.tw.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.tw.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.tw.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_tw_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
/* FB */
.social-container.fb {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/facebook.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.fb.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.fb.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.fb.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_fb_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
/* GPlus */
.social-container.gplus {
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  background: url(/wp-content/plugins/timeline-graph-widget/images/gplus.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
    /*background-position: center;*/
  width: 20px;
  float: left;
}
.social-container.gplus.sentiment-positive {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_positive.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.gplus.sentiment-negative {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_negative.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.social-container.gplus.sentiment-indifferent {
  background: url(/wp-content/plugins/timeline-graph-widget/images/social_gplus_sentiment_indifferent.png) no-repeat;
  background-size: 17px;
  background-position: 2px 1px;
}
.fragment-s-s {
  position: relative;
  display: inline-flex;
  height: 22px;
  vertical-align: middle;
}
.word-s-s {
  position: relative;
  display: inline-flex;
  height: 22px;
  vertical-align: middle;
}
.fragment-s-s img, .word-s-s img {
  display: inline-block;
  cursor: pointer;
}
.fragment-s-s .smile, .word-s-s .smile {
  width: 17px;
  position: relative;
  padding-bottom: 10px;
}
/*.header-word .smile {
  width: 17px;
  position: relative;
  display: inline-table;
}*/

/*@media screen and (min-width: 300px) {
    .header-counts, .header-search, .header-word, .header-chains {
      width: 100%;
    }
}*/
.icon-bing {
  background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAANiklEQVR4Xu1dfXBdRRU/Z+97TduURgrlQygiXxaBOlAEaybt/XgEw0eLA8GBqaigKKig6Ag6OBOcYRRQsYggOoAjgyIBRygQGt7de9O0IEIdgY7yYUVhAGmJ8MwIviR3j7P4MlNrWnbvu3tzb969/+bs2XN+55d9+3H2LELxtTQC2NLeF85DQYAWJ0FBgIIALY5Ai7tfjAAFAVocgRZ3vxgBCgK0OAIt7n4xAhQEaHEEWtz9YgQoCNDiCLS4+8UIUBCgxRFocfenYwSY7JNaHPtMuJ8KAZYtWzZnzpw5FwHAaiHE4YwxiqLoScuybq3Vajdt2rRpPBNotKARxglQqVQOEEI8CACHT4VvFEW/Q8STwzB8rQXxn3aXjRKgp6enrV6vbwKAI3blqRBiOAzDFQBQ/CykTAmjBHBd94sAcJ2KT4jY6/v+XSqyhUxyCJgmwAYA6FQ0t59zfqaibCGWEAKmCbANAPZUsVVOCoeGhj6gIlvIJIeAUQLYtv0GY6xD0dxnOOeLFWULsYQQKAiQEJB5VVMQIK+RS8juggAJAZlXNQUB8hq5hOwuCJAQkHlVUxAgr5FLyO6CAAkBmVc1BQHyGrmE7C4IkBCQeVVTECCvkUvI7oIACQGZVzUFAfIauYTsLgiQEJB5VVMQIK+RS8juggAJAZlXNQUB8hq5hOxuGQL09vbOqtVq+01MTCwkot0BoB0ASohIiDhORG8i4utEtLVWq73cKqnqM5IAtm0fyBhbBgBLhRBLEHGxEGI/y7KYyj9OFEWCMfYSET3NGNuMiJsQ8ZFqtfoXlfZ5kpkRBLBtezYinoiIpwDACQDwHhNBIKIXGWMPEdF97e3t69auXfumiX7S1JlnAqDjOC4ifhIATgOAeWkCJ4T4FyL+xrKsn1WrVT+vdxpyRwDbtuch4rmIKO8cHJJm0HfR1xYAWNPe3n5z3kaF3BCgu7u7PYqiiycmJr5iWdaCjAR+RzNeQ8Rr5s6de31eiJB5AvT19bGhoaFPE9G3GGN7ZzTw/2OWEOIlRPxGEAS3Zf2nIdMEqFQqRwshfipn83kI/I42yjuPpVLps9Vq9U9ZtT+TBLBtW67Pvyn/i+RaPavgKdr1byKSo8EPsjgaZI4A3d3di8bGxn7VWMcrYpwLsfvGxsbO2bBhw+tZsjZTBJAzeyL6hep9wiwBqWjLFiHEKWEYPq0ob1wsMwQQQtSJqKy6W2ccGUMdCCFqjLGVnPP1hrrQUpsZAmhZHUNYzswB4FnG2N8A4FUikoGoS1VENAsAOhBxryiKFjHGDjO1m9gwXc4LTg+C4IEYriTaZCYT4AkAkKVphsrl8qPr1q37hw5ylUqlQwghVx/LhRDdRHR8kqOTHPEaI8Ggjl1Jy84oAkRR9KwsPCWEuCMMw78mCZZt2/swxnoB4FMAcHQSuuV2MgDYYRg+noS+ODpmBAGIqMoYu9r3/YfigKDbxvO8ZUT0NQBYBdDcu0tRFG1ta2s7dnBw8EVdO5KQzzsBHpaBCIJgYxJg6OpwXfcYIcR3GWOObtsd5De1tbV1DgwMvD0nSfPLJQGEECOIeEkQBD9PE6yd9eW67lmNYlhK5XCm0oOI1/m+f3Ha/uSRAA/I00Df919NG6xd9ed53t5EJAnZHdcuxtgJ1Wq1Grd9nHa5IUAjS+fyIAi+k8UtVQm+PLhav379lQBwWZxgENHz8+bNOzLNk8RcEEAumRDx7CAIfh0H2LTbOI5zvhDixpjLxis4531p2ZwHArwl18tpD43NBsDzvE8Q0a26q4QoimRy6sFhGP69WRtU2medABNEtCoLO2YqYO4o43neJUT0Pd22aU4Is06ACzjnP9YFMEvyruve0tg8UjZLjgKzZ89epLt7qdzBdoJZJsBtnPNz4jiVpTaNUvmyYPaU1dJ3YetlnPOrTPuSSQJEUfTC3LlzjxoYGPinaQDS0O84zvFCiId1JoVyW3toaOh9pu3LJAEav/v3mnY+Tf2e591MROfq9ImIx/m+/5hOG13ZzBFACBGEYejqOpJ1edu29yeiLZZlyaNn1e8qznmsPQXVDjJHAER0fd8PVB3Ik5zuhBAR/+D7fiInjzvDKVMEmOkl413XPQ4AHtUgLZXL5T1NrgYyRQBE/Krv+9rrZg1Ap13Udd0/A8DBqoYQ0UeCIFinKq8rlykCCCEODcNQAjRjP8/z1hCRfEFN9fs651yefxj5MkMARHzF9/13G/EyQ0pd15VZRXeqmoSIt/i+f56qvK5cZggAAC3xYoht24cwxp7TCJTPOa9oyGuJFgTQgqt54d7eXmvr1q1jGptCmznnRzXf89QaCgKYQnYXel3X3QoAC1W6lruiQ0NDRgpeyP6NEsB1XXkN6l0qjrbKT4DEwnXd5wHgQBVchBCvhmG4j4psHBnTBFB+Ng4AtnDOs1LwIQ6Wym0cx3kBERepNDA9OTZNAJnqvL+KowCwjXO+l6JsrsVWrFhRsyxrvooTMk0sCIKDVGTjyBglwIoVK56wLGuJomHU1tY2ZzpSoxXtS0RMlrhhjI2qKkPEx33f/6CqvK6cUQK4rit3sJSzZBljS6rV6lO6TuRJ3nGcpTKoGjbfxzk/VUNeS9QoAWzbvpEx9jlVi4jovCAIZAbNjP1c15V43Kjh4BrO+Zc05LVEjRLAcZyLEHGNqkVEdHsQBKtV5fMo57puPwCcoWG70bQ40wToRET5grjq93qtVtt7ppZpbaSHyQstu6kCYjopxCgBZAVPxpjcC5it6nDj3nwu8v9VfZqUcxznbES8XbWdvD08Ojq6u8l/CKMEkI66riuraOpk+Axxzm1VkPIk53neI0T0IVWbiejBIAh6VOXjyBkngOM4X0bE7+sYh4jLfd8f1mmTdVnHcTxE1Lr3R0SfD4LgBpO+GSdApVI5QAghizXo9PUo51xW+yaTzqelWx4AjYyMyORO5fQuIUQky9UMDw+/YtJOnaDEtiPGz4Ds60LOuc5yKbZ9phu6riuXcdfq9COEGAjD8CSdNnFk0yKAVhKEdEROgCzLOsb3/WfjOJaVNo7jHIGI8r9/jo5NRHRaEAT36LSJI5sKARpDoEz1UjoB286RzfV6/cMbN25U3jqNA4KpNo1CU78FgMWafWxZvnz5YX19fUKznbZ4KgSQVskr04h4k66FcigcHR1dZXIppGuTinxPT09bvV6/HwA8FfkdZM7lnMubxca/1AiwdOnSckdHxx9j1vi/q1arnZ0XEsj3iUZGRuSO38oYEXx6jz32OLK/vz+K0Va7SWoEaIwCq+QrG9pW/rfBA6VS6czBwUFZWi2zX2dn527lcvluWe4lppEncc4HYrbVbpYqAaR1tm3fyxiLe7r1RKlU+ujg4KDMqMnc10j4lLuYsXL4EPFu3/d1zgmaxiB1Ariuux8AyCNf+XRbnO8NRLzA9/074jQ21cZ13Y9HUXS9aqLHjnbIymeWZR2RdvGr1AnQ+Ck4HRHvaiYYiHgPEV3MOZe1f6ftq1QqBxHRdUR0cjNGTNeN6GkhQOOn4FrGWLPn3G8R0Q+J6JowDF9rJgC6bbu7u/caHx+/FBEv1DnsmqofIro6CIJLdW1IQn7aCNDYG5DVspUzhnbmcKOwkkwk+ZHpWvye572fiL4AAPK5Oq3NnansR8T7u7q6Vqax5p+y/yRYFFeHnDGXSqVQ7vjF1THFb+kjjLE7S6XSPUlNFl3XPZiIViLixwDg+ARtfWzWrFnOdK5spm0EmATRtu09GWOyHsCRSQG7nR75nt+wzMEjoqfGx8efGx4eluXXdnbIhF1dXfuUy+VDAWAJER0rhOiyLCvxrFx5979er7vT/YTMtBNABqurq2thuVyWCaTKp2VNkGU8iqJtlmXVEHHywYi2KIo6LMuSt3XKTehWaiqEeMyyrB7f90eUGhgUygQBpH89PT3z6/W6XEPH2To1CFHiqgfr9foZWTnfyAwBGiuDkmVZ8v68nFnPuE8WgFywYMElaW3zqgCYKQJMGux53moikrkAqT4IrQJYTJlRRDw/a5tX0pdMEkAaJjdYhBCy/HpnTNAz0Uy+HgoA5yT9hE1SzmWWAA0HUV6kEEJ8mzHWkZTTKemRW9aX+b7/kyyntmWdAG/HSi4VLcu6gog+k8YsvUmCjAshbrIsqy8Ls/x38iUXBJh0oru7+71RFF0+MTGxWrPg4jvh0PTfG8/A3SaEuDKrw/1UTuaKAJMOdHV17Vsuly9ExPOIaN+mo9eEgiiKXi6VSjdHUXRDWjX+mzD3/5rmkgCTXjReGT8RAM4SQpwa9yhWF9DG869rieiXRDQYhuGEro6syOeaANuDKFPO5s+fvxwRZSaOHUXR0Un9TERRNFYqlX5PRCEAPFSr1Ybzkp72TkSbMQTY0VGZl7dt27YljDF5xrCYiA5slGWR270yGaVdCPF24WbG2BgAyFQzeY9xGxG9iIgy6+gZIcTmhQsXPtnf3y9lZtw3Ywkw4yJlyKGCAIaAzYvaggB5iZQhOwsCGAI2L2oLAuQlUobsLAhgCNi8qC0IkJdIGbKzIIAhYPOitiBAXiJlyM6CAIaAzYvaggB5iZQhOwsCGAI2L2oLAuQlUobsLAhgCNi8qC0IkJdIGbKzIIAhYPOi9j/ky13MA/auiwAAAABJRU5ErkJggg==') no-repeat;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    background-size: 11px;
    /* background-position: center; */
    /* background-position: 2px 1px; */
    width: 14px;
    height: 14px;
    float: left;
}

#t_w_container2 {
  overflow: hidden;
}

.dates-string {
  font-size: 10px;
  background-color: rgba(255, 235, 59, 0.27);
}

.spinner {
  margin: 40px auto 0;
  width: 70px;
  text-align: center;
}

.spinner > div {
  width: 18px;
  height: 18px;
  background-color: #333;

  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
  animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.spinner .bounce1 {
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.spinner .bounce2 {
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}
  .list-group {
    padding: 0;
    margin: 0;
  }
  .list-group-item {
    position: relative;
    display: block;
    padding: 4px 6px;
    margin-bottom: -1px;
    background-color: #fff;
    border: 1px solid #ddd;
    font-size: small;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
@-webkit-keyframes sk-bouncedelay {
  0%, 80%, 100% { -webkit-transform: scale(0) }
  40% { -webkit-transform: scale(1) }
}

@keyframes sk-bouncedelay {
  0%, 80%, 100% { 
    -webkit-transform: scale(0);
    transform: scale(0);
  } 40% { 
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

/* fragments (fixes): begin; */
.table-fragments {
  border-collapse: collapse;
}
.table-fragments td, .table-fragments th {
  border: 1px solid white;
}
.table-fragments tr:first-child th {
  border-top: 0;
}
.table-fragments tr:last-child td {
  border-bottom: 0;
}
.table-fragments tr td:first-child,
.table-fragments tr th:first-child {
  border-left: 0;
}
.table-fragments tr td:last-child,
.table-fragments tr th:last-child {
  border-right: 0;
}

.table-fragments th {
  font-weight: 600;
}
.table-fragments .header-small {
  width: 1%;
}
.table-fragments .header-fragments {
  width: 60%;
}
.table-fragments .star, .table-fragments .smile {
  width: 17px;
  cursor: pointer;
}
/*.table-fragments tr:nth-child(1) {
    background-color: #F5F5F5;
}*/
.table-fragments tr:nth-child(odd) {
    background-color: #F5F5F5;
}
.borderless>tbody>tr>td, .borderless>tbody>tr>th, .borderless>tfoot>tr>td, .borderless>tfoot>tr>th, .borderless>thead>tr>td, .borderless>thead>tr>th {
    border: none;
    border-top: 0px;
}
.td-page-content table {
    margin-bottom: 0px;
}
.table {
    margin-bottom: 0px;
}
/* fragments (fixes): end */
</style>

<!--script src="//rawgithub.com/phpepe/highcharts-regression/master/highcharts-regression.js?8"></script-->

<!--div class="row" id="copy_share_link_container" style="display:none">
  <div class="col-md-11">
  </div>
  <div class="col-md-1">
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABzklEQVRIS7VWwU3DQBDciZT7kg5IB9ABoQLoACPlrPwIHYQKCN+7SAkdQAWYDkIFQAfhm0g3aM0ZmZA4MiYrWX74bmZvdnbPkH+INE2HJM8A9EjOATw4524UGk3xrbUPAM7WcUhm3vvTRgTW2gTAdFuSJC+bEmzMviAk+dyUIANwUiHzy58JBoNBN4TwJCLdCokeaxMkSdJpt9u3AJJdBgkh/CyytfZYRA5E5MN7Py8DKLAx5orkEEBH9SU5AtDdUuhr59w4P0EEngJQgjzUzyJyuVqt3jYBTyaTrFjb7/d7rVYrIalkWQghK74jHvlVs9rg5UXeLF8Zv5NMysC7JMr3pmk6E5GLisUfKov3XtfVDiVQKY4qnPDsve/VRo4bYK2t9LIWsxHBLolILgCMl8vl3Ww2y2tSJ/IiG2Peoj3X96r+SnAY30Pn3H0tgsKmALSI5Vq8qGu0H3SoiYh6/lBENJlRmUhtCkCNojadhxAev21azkb7gWQHwGK90WIiOj3H8bQ5EUlsabQb59zoT6PCGDMUEX2067fGr1FRR9tYO+3mKovXH3Zrku5vXMea7P3C2e+VWXWKYgLUdtEmI8TflnO9PvN7GMjUorr2E9qPBb6pd8XuAAAAAElFTkSuQmCC" style="cursor:pointer" title="Share current session" id="copy_share_link">
  </div>
</div-->
<div id="t_g_title_container2"></div>
<div id="t_g_main_container2">
      <div class="spinner" id="spinner1">
        <div class="bounce1"></div>
        <div class="bounce2"></div>
        <div class="bounce3"></div>
      </div>
      <div id="t_g_container2">
      </div>
      <div id="t_w_container2">
      </div>
      <div id="t_m_container2"></div>
    </div>


<script>
function _linear(data, decimalPlaces) {
  //console.info(data);
  //console.info(decimalPlaces);
  var sum = [0, 0, 0, 0, 0], n = 0, results = [], N = data.length;

  for (; n < data.length; n++) {
    if (data[n]['x'] != null) {
      data[n][0] = data[n].x;
      data[n][1] = data[n].y;
    }
    if (data[n][1] != null) {
      sum[0] += data[n][0]; //Σ(X) 
      sum[1] += data[n][1]; //Σ(Y)
      sum[2] += data[n][0] * data[n][0]; //Σ(X^2)
      sum[3] += data[n][0] * data[n][1]; //Σ(XY)
      sum[4] += data[n][1] * data[n][1]; //Σ(Y^2)
    } else {
      N -= 1;
    }
  }

  var gradient = (N * sum[3] - sum[0] * sum[1]) / (N * sum[2] - sum[0] * sum[0]);
  var intercept = (sum[1] / N) - (gradient * sum[0]) / N;
  // var correlation = (N * sum[3] - sum[0] * sum[1]) / Math.sqrt((N * sum[2] - sum[0] * sum[0]) * (N * sum[4] - sum[1] * sum[1]));
  
  for (var i = 0, len = data.length; i < len; i++) {
var coorY = data[i][0] * gradient + intercept;
if (decimalPlaces)
  coorY = parseFloat(coorY.toFixed(decimalPlaces));
      var coordinate = [data[i][0], coorY];
      results.push(coordinate);
  }

  results.sort(function(a,b){
     if(a[0] > b[0]){ return 1;}
      if(a[0] < b[0]){ return -1;}
        return 0;
  });

  var string = 'y = ' + Math.round(gradient*100) / 100 + 'x + ' + Math.round(intercept*100) / 100;
  
  return {equation: [gradient, intercept], points: results, string: string};
}


(function (H) {
    H.wrap(H.Tooltip.prototype, 'hide', function () {});
}(Highcharts));
jQuery(function () {

// marker show on load (fix)
Highcharts.Series.prototype.drawPoints = function() {};

// TOP Words Widget JS
var shortCodeParams = {"all_ranks_field_display":"1","sentiment_rank_field_display":"1","similarity_rank_field_display":"1","social_tw_posts_field_display":"1","social_tw_reposts_field_display":"1","social_tw_likes_field_display":"1","social_tw_sentiment_field_display":"1","name_field_display":"1","chains_field_display":"1","days_field_display":"1","articles_field_display":"1","value_field_display":"1","search_field_display":"1"};

//console.info(shortCodeParams);

function strip_tags(str) {
  return str.replace(/<\/?[^>]+>/gi, '');
}

//function topWordsWidgetShow() {
var dateToday = new Date().toJSON().slice(0, 10).replace(/-/g, '-');
function getSmile(fragmentSentiment, word) {
    var word = word || '...';
    if (typeof fragmentSentiment == '' || fragmentSentiment == null) {
      return '<div class="label-container-empty">' + 
      '<div class="rank">&nbsp;</div>' +
      '</div>';
    }
    var fragmentSentimentCheck = Math.round(fragmentSentiment);
    fragmentSentiment = Math.round(fragmentSentiment * 10) / 10;
    if (fragmentSentimentCheck > 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_positive_t.png">';
    } else if (fragmentSentimentCheck == 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_indifferent_t.png">';
    } else if (fragmentSentimentCheck < 0) {
      var smile = '<img title="&nbsp;Sentiment rank: ' + fragmentSentiment + '" class="smile" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_negative_t.png">';
    }
    return '<div class="smile-container">' + smile + '</div>';
}
function getStar(digestRank) {
  if (digestRank >= 1) {
    var star = 
      '<div class="star-container" title="Similarity rank: ' + digestRank + '">' + 
        '<div class="digest-rank">' + digestRank.toFixed(0) + '</div>' +
      '</div>';
    } else {
      var star = '<div class="label-container-empty">' + 
      '<div class="rank">&nbsp;</div>' +
      '</div>';
    }
  return star;
}
function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
function getSocialLabel(rank, socialType, title, boxType) {
  var boxType = boxType || 'word';
  var title = title || 'Social rank';
  var socialType = socialType || 'tw';
  if (isNumber(rank)) {
    var label = 
    '<div class="social-container ' + socialType + '" title="' + title + '">' + 
      '<div class="rank">' + shortenLargeNumber(rank.toFixed(0)) + '</div>' +
    '</div>';
    /*
    '<div class="social-container ' + socialType + '" title="' + title + ': ' + rank + '">' + 
      '<div class="rank">' + shortenLargeNumber(rank.toFixed(0)) + '</div>' +
    '</div>';
     */
  } else {
    if (boxType == 'word') {
      var label = '<div class="label-container-empty">' + 
        '<div class="rank">&nbsp;</div>' +
        '</div>';
    } else {
      var label = '';
    }
  }
  /*if (socialType == 'fb') {
    console.info(label);
  }*/
  return label;
}
function getSocialSmile(rank, socialType, title, boxType) {
  var boxType = boxType || 'word';
  var title = title || 'Social rank';
  var socialType = socialType || 'tw';
  var label = '';
  if (isNumber(rank)) {
    var rankCheck = Math.round(rank);
    rank = Math.round(rank * 10) / 10;
    if (rankCheck > 0) {
      var smile = 'sentiment-positive';
    } else if (rankCheck == 0) {
      var smile = 'sentiment-indifferent';
    } else if (rankCheck < 0) {
      var smile = 'sentiment-negative';
    } else {
      var smile = false;
    }
    if (smile) {
      var label = 
        '<div class="social-container ' + socialType + ' ' + smile + '" title="' + title + '">' + 
          '<div class="rank">&nbsp</div>' +
        '</div>';
        /*'<div class="social-container ' + socialType + ' ' + smile + '" title="' + title + ': ' + rank + '">' + 
          '<div class="rank">&nbsp</div>' +
        '</div>';*/
    }
  } else {
    if (boxType == 'word') {
      var label = '<div class="label-container-empty">' + 
        '<div class="rank">&nbsp;</div>' +
        '</div>';
    }
  }
  return label;
}
function shortenLargeNumber(num, digits) {
    var units = ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'],
        decimal;

    for(var i=units.length-1; i>=0; i--) {
        decimal = Math.pow(1000, i+1);

        if(num <= -decimal || num >= decimal) {
            return +(num / decimal).toFixed(digits) + units[i];
        }
    }

    return num;
}

function drawTopWords() {
    var timeLineContainer = '#t-w-b-container';
    var topWordsContainer = '#t_w_container2';

    jQuery(topWordsContainer).html('');
    jQuery(timeLineContainer).find('#spinner2').show();

    var accordion = '';

    /*var queryParams = {};
    queryParams.currentPageUrl = encodeURIComponent(document.location.pathname);*/
    var drawTopWordsAPIUrl = getApiUrlByOptions();
    drawTopWordsAPIUrl = drawTopWordsAPIUrl
      .replace('graph_api.php', 'top_words_api.php')
      .replace('timelineGraphAPI2', 'topWordsAPI2')
      .replace('method%255D%3Ddata', 'method%255D%3DgetData2');
    //console.info(drawTopWordsAPIUrl);
    //console.info(decodeURIComponent(drawTopWordsAPIUrl));
    //return true;
    jQuery.getJSON(drawTopWordsAPIUrl/*decodeURIComponent('%API_URL_CUSTOM%')*/, function (data) {
        var response = data;
        
        console.info(queryParams);
        console.info('isChartLoadedFirstTime: ' + isChartLoadedFirstTime);
        console.info('isPopWordsLoadedFirstTime: ' + isPopWordsLoadedFirstTime);

        if (isPopWordsLoadedFirstTime) {
          isPopWordsLoadedFirstTime = false;
          if (queryParams.hasOwnProperty('shareUrl')) {
            shareUrl = decodeURIComponent(queryParams.shareUrl);
            queryParams = getQueryParams(shareUrl);
          }
          AchartType = queryParams['params[chartType]'];
          ApresentWordsType = queryParams['params[presentWords][type]'];
        } else {
          console.info(jQuery('#chart_type').val());
          AchartType = jQuery('#chart_type').val();
          ApresentWordsType = jQuery('#present_words_type').val();
        }

        /*if (isChartLoadedFirstTime) {
          if (queryParams.hasOwnProperty('shareUrl')) {
            shareUrl = decodeURIComponent(queryParams.shareUrl);
            queryParams = getQueryParams(shareUrl);
          }
          AchartType = queryParams['params[chartType]'];
          ApresentWordsType = queryParams['params[presentWords][type]'];
        } else {
          AchartType = jQuery('#chart_type').val();
          ApresentWordsType = jQuery('#present_words_type').val();
        }*/

        // filter result array by new array (extraSeries) changed by linear regression function
        if (AchartType == 'type7') {
          //console.info(response.data);
          
          var extraSeries = [];
          jQuery.each(response.data, function(i) {
            var regression = _linear(response.data[i].data, 2);
            console.info(regression.points[0][1] + ' ? ' + regression.points[regression.points.length - 1][1]);
            // fade
            if ((ApresentWordsType == 'trends_fade') && (regression.points[0][1] < regression.points[regression.points.length - 1][1])) {
              console.info('skip:fade');
            }
            // grow
            else if ((ApresentWordsType == 'trends_grow') && (regression.points[0][1] > regression.points[regression.points.length - 1][1])) {
              console.info('skip:grow');
            } else if (regression.points.length <= 1) {
              console.info('skip:length<=1');
            } else {
                extraSeries.push(response.data[i]);
            }
          });
          console.info(extraSeries);
          /*var responseDataType7 = [];
          response.data.filter(function(el) {
            jQuery.each(extraSeries, function(i) {
              if (extraSeries[i]['name'] == el.name) {
                responseDataType7.push(el);
                return false;
              }
            });
          });*/
          response.data = extraSeries;
        }
        
        if (response === undefined) {
          jQuery('.t-w-b-main-container').remove();
        }
        accordion += '<div id="t-w-b-accordion-container" class="accordion-container">';
        accordion+="<div class=\"t-w-b-set\">";
        accordion+='<span data-title="accordion-header" class="word-toggle-span">&nbsp;' + 

        

        '<i class="fa fa-chevron-right word-toggle-i" aria-hidden="true" style="float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;"></i>'+
          
        '<span class="header-word number title">&nbsp;</span>' +

          (
          shortCodeParams.all_ranks_field_display == 1 ? 
          '<span class="header-word ranks title">Ranks</span>' : 
          ''
          ) + 
          (
          shortCodeParams.name_field_display == 1 ?
          '<span class="header-word title" title="A POP-word(tm) detected in some content of an article (title, description, etc...), can be single word or synthetic words chain">Term</span>' :
          ''
          ) +
          /*(
          shortCodeParams.chains_field_display == 1 ?
          '<span class="header-chains title" title="List of chains">&nbsp;Chains</span>' :
          ''
          ) +*/ 
          '<span class="header-counts title"><span title="Term\'s frequency or Similarity rate (percentage of a terms set or an absolute value - depends on chart type)">Value</span><span title="Total number of articles for selected date range with this term detected">Articles</span><span title="Number of days when this term was detected">Days </span></span><span class="header-search title">&nbsp;Search</span></span>';
        accordion+="</div>";
        var partsNum;
        var wordsNum = 1;
        var maxWords = 7;
        var maxParts = 100000;
        var responseDataLen = Object.keys(response.data).length;
        //console.info(response.data);
        jQuery.each(response.data, function (wordNumber, parts) {
            partsNum = 1;
            firstActive = (partsNum == 1 && responseDataLen == 1);
                if (!parts.hasOwnProperty('digestRank')) {
                  parts.digestRank = null;
                }
                var wordDigestRankString = getStar(parts.digestRank)
                if (!parts.hasOwnProperty('sentiment')) {
                  parts.sentiment = null;
                }
                var wordSentimentString = getSmile(parts.sentiment, parts.nameFormated);

                // TW
                if (!parts.hasOwnProperty('socialTWReposts')) {
                  parts.socialTWReposts = null;
                }
                //var wordSocialTWRepostsString = getSocialLabel(parts.socialTWReposts, 'tw', 'TW reposts');
                if (!parts.hasOwnProperty('socialTWLikes')) {
                  parts.socialTWLikes = null;
                }
                //var wordSocialTWLikesString = getSocialLabel(parts.socialTWLikes, 'tw', 'TW likes');
                if (!parts.hasOwnProperty('socialTWSentiment')) {
                  parts.socialTWSentiment = null;
                }
                var wordSocialTWSentimentString = getSocialSmile(parts.socialTWSentiment, 'tw', 'TW sentiment: ' + parts.socialTWSentiment);
                if (!parts.hasOwnProperty('socialTWPosts')) {
                  parts.socialTWPosts = null;
                }
                var wordSocialTWPostsString = getSocialLabel(parts.socialTWPosts, 'tw', 'TW: Posts: ' + parts.socialTWPosts + ', Reposts: ' + parts.socialTWReposts + ', Likes: ' + parts.socialTWLikes);

                var wordSocialTWString = 
                  wordSocialTWPostsString +
                  wordSocialTWSentimentString
                  /*(shortCodeParams.social_tw_posts_field_display == 1 ? wordSocialTWPostsString : '') +
                  (shortCodeParams.social_tw_reposts_field_display == 1 ? wordSocialTWRepostsString : '') +
                  (shortCodeParams.social_tw_likes_field_display == 1 ? wordSocialTWLikesString : '') +
                  (shortCodeParams.social_tw_sentiment_field_display == 1 ? wordSocialTWSentimentString : '')*/;
                if ((parts.socialTWPosts == 0) &&
                    (parts.socialTWReposts == 0) &&
                    (parts.socialTWLikes == 0) &&
                    (parts.socialTWSentiment == 0)) {
                  var isWordSocialTWZero = true;
                } else {
                  var isWordSocialTWZero = false;
                }

                /*// TEST
                parts.socialGPlusPosts = 10;
                parts.socialGPlusReposts = 3;
                parts.socialGPlusLikes = 23;
                parts.socialGPlusSentiment = -2.3;*/

                // FB
                if (!parts.hasOwnProperty('socialFBReposts')) {
                  parts.socialFBReposts = null;
                }
                //var wordSocialFBRepostsString = getSocialLabel(parts.socialFBReposts, 'fb', 'FB reposts');
                if (!parts.hasOwnProperty('socialFBLikes')) {
                  parts.socialFBLikes = null;
                }
                //var wordSocialFBLikesString = getSocialLabel(parts.socialFBLikes, 'fb', 'FB likes');
                if (!parts.hasOwnProperty('socialFBSentiment')) {
                  parts.socialFBSentiment = null;
                }
                var wordSocialFBSentimentString = getSocialSmile(parts.socialFBSentiment, 'fb', 'FB sentiment: ' + parts.socialFBSentiment);
                if (!parts.hasOwnProperty('socialFBPosts')) {
                  parts.socialFBPosts = null;
                }
                var wordSocialFBPostsString = getSocialLabel(parts.socialFBPosts, 'fb', 'FB: Posts: ' + parts.socialFBPosts + ', Reposts: ' + parts.socialFBReposts + ', Likes: ' + parts.socialFBLikes);

                var wordSocialFBString = 
                  wordSocialFBPostsString + 
                  wordSocialFBSentimentString
                  /*(shortCodeParams.social_fb_posts_field_display == 1 ? wordSocialFBPostsString : '') +
                  (shortCodeParams.social_fb_reposts_field_display == 1 ? wordSocialFBRepostsString : '') +
                  (shortCodeParams.social_fb_likes_field_display == 1 ? wordSocialFBLikesString : '') +
                  (shortCodeParams.social_fb_sentiment_field_display == 1 ? wordSocialFBSentimentString : '')*/;
                if ((parts.socialFBPosts == 0) &&
                    (parts.socialFBReposts == 0) &&
                    (parts.socialFBLikes == 0) &&
                    (parts.socialFBSentiment == 0)) {
                  var isWordSocialFBZero = true;
                } else {
                  var isWordSocialFBZero = false;
                }

                // GPlus
                if (!parts.hasOwnProperty('socialGPlusReposts')) {
                  parts.socialGPlusReposts = null;
                }
                //var wordSocialGPlusRepostsString = getSocialLabel(parts.socialGPlusReposts, 'gplus', 'GPlus reposts');
                if (!parts.hasOwnProperty('socialGPlusLikes')) {
                  parts.socialGPlusLikes = null;
                }
                //var wordSocialGPlusLikesString = getSocialLabel(parts.socialGPlusLikes, 'gplus', 'GPlus likes');
                if (!parts.hasOwnProperty('socialGPlusSentiment')) {
                  parts.socialGPlusSentiment = null;
                }
                var wordSocialGPlusSentimentString = getSocialSmile(parts.socialGPlusSentiment, 'gplus', 'GPlus sentiment: ' + parts.socialGPlusSentiment);
                if (!parts.hasOwnProperty('socialGPlusPosts')) {
                  parts.socialGPlusPosts = null;
                }
                var wordSocialGPlusPostsString = getSocialLabel(parts.socialGPlusPosts, 'gplus', 'GPlus: Posts: ' + parts.socialGPlusPosts + ', Reposts: ' + parts.socialGPlusReposts + ', Likes: ' + parts.socialGPlusLikes);

                var wordSocialGPlusString = 
                  wordSocialGPlusPostsString + 
                  wordSocialGPlusSentimentString
                  /*(shortCodeParams.social_gplus_posts_field_display == 1 ? wordSocialGPlusPostsString : '') +
                  (shortCodeParams.social_gplus_reposts_field_display == 1 ? wordSocialGPlusRepostsString : '') +
                  (shortCodeParams.social_gplus_likes_field_display == 1 ? wordSocialGPlusLikesString : '') +
                  (shortCodeParams.social_gplus_sentiment_field_display == 1 ? wordSocialGPlusSentimentString : '')*/;
                if ((parts.socialGPlusPosts == 0) &&
                    (parts.socialGPlusReposts == 0) &&
                    (parts.socialGPlusLikes == 0) &&
                    (parts.socialGPlusSentiment == 0)) {
                  var isWordSocialGPlusZero = true;
                } else {
                  var isWordSocialGPlusZero = false;
                }

                var word = parts.name;
                var wordInQuotes = '"' + word + '"';
                //var datesString = parts.datesYmd.join(', ');
                var chainsString = (parts.hasOwnProperty('chains') && parts.chains.length) ? parts.chains.join(', ') : '&nbsp;';
                accordion+="<div class=\"t-w-b-set\">";
                accordion+="<span " + (firstActive ? 'class="word-toggle-span active"' : 'class="word-toggle-span"') + ">&nbsp;"+
                
                

                "<i class='fa fa-chevron-right word-toggle-i' aria-hidden='true'  style='float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;'></i>" + 
                  
                  '<span class="header-word number badge alert-info">' + /*shortenLargeNumber(*/wordsNum/*)*/ + '</span>' +

                  (shortCodeParams.all_ranks_field_display == 1 ?
                  "<span class='header-word ranks'>" +
                  '<div class="word-s-s">' +
                  (shortCodeParams.sentiment_rank_field_display == 1 ? wordSentimentString : '') +
                  (shortCodeParams.similarity_rank_field_display == 1 ? wordDigestRankString : '') +
                  (!isWordSocialTWZero ? wordSocialTWString : '') +
                  (!isWordSocialFBZero ? wordSocialFBString : '') +
                  (!isWordSocialGPlusZero ? wordSocialGPlusString : '') +
                  '</div></span>' : '') +
                  (
                  shortCodeParams.name_field_display == 1 ?
                  '<span class="header-word">'+parts.nameFormated+"</span>" :
                  ''
                  ) + 
                  /*(
                  shortCodeParams.name_field_display == 1 ?
                  "<span class='header-chains' title='"+chainsString+"'>"+chainsString+"</span>" :
                  ''
                  ) +*/
                  "<span class='header-counts'><span title='" + parts.indicatorValue + "' class='badge alert-danger'>" + shortenLargeNumber(parts.indicatorValue) + "</span> <span title='" + shortenLargeNumber(parts.countFragments) + "' class='badge alert-success'>"+shortenLargeNumber(parts.countFragments)+"</span> <span title='"+parts.countDates+"' class='badge alert-info'>"+parts.countDates+"</span></span><span class='header-search small'><a href='javascript:void(0)' onclick='searchWord(" + wordInQuotes + ")' title='Search on Chart'><i class='fa fa-search' aria-hidden='true'></i></a>&nbsp;<a href='https://www.google.com/search?q="+word+"' target='_blank' title='Search on Google'><i class='fa fa-google' aria-hidden='true'></i></a>&nbsp;<a href='https://en.wikipedia.org/wiki/"+word+"' target='_blank' title='Search on Wiki'><i class='fa fa-wikipedia-w' aria-hidden='true'></i></a>&nbsp;<a href='https://www.facebook.com/search/top/?q="+word+"' target='_blank' title='Search on FB'><i class='fa fa-facebook' aria-hidden='true'></i></a>&nbsp;<a href='https://twitter.com/search?f=tweets&vertical=default&q="+word+"' target='_blank' title='Search on TW'><i class='fa fa-twitter' aria-hidden='true'></i></a>&nbsp;<a href='https://plus.google.com/s/"+word+"' target='_blank' title='Search on G+'><i class='fa fa-google-plus' aria-hidden='true'></i></a>&nbsp;<a href='http://www.bing.com/search?q="+word+"' target='_blank' title='Search on Bing'><span class='icon-bing'>&nbsp;</span></a></span></span>";
                accordion+="<div class=\"t-w-b-content\" " + (firstActive ? 'style="display:block"' : '') + ">";
                accordion+="<table class='t-w-b-tbl'>";
                
                accordion+="<tr>";
                
                accordion+="<td colspan=2 class='dates-string'><strong>Chains:</strong> " + chainsString + "</td>";
                accordion+="</tr>";

                var datesString = '';
                jQuery.each(parts.datesYmd, function(i) {
                  
                  var datesStringCurrent = '<a href="#c_date_' + wordNumber + '_' + parts.datesYmd[i] + '">' + parts.datesYmd[i] + '</a>';
                  if (parts.datesYmd[i] == dateToday) {
                    var datesStringCurrent = '<span title="Days" class="badge alert-info">' + datesStringCurrent + '</span>';
                  } else {
                    
                  }
                  datesString += datesStringCurrent + ', ';
                });
                datesString = datesString.slice(0, -2);
                accordion+="<td colspan=2 class='dates-string'>" + datesString + "</td>";
                accordion+="</tr>";
                
                var returnMaxParts = false;
                jQuery.each(parts.fragmentsFormated, function (date, chunk) { 
                    if (returnMaxParts) {
                      return false;
                    }
                    date = date.split('|');
                    var dateFormat = date[0];
                    
                    var dateUnformated = date[0].split(' ')[0];
                    var dateUnformatedOld = '';
                    var dateUnformatedNew = (dateUnformatedOld == dateUnformated) ? '' : dateUnformated;
                    dateUnformatedOld = dateUnformated;
                    
                    var timestamp = date[1];
                    accordion+="<tr class='date_" + timestamp + "' id='c_date_" + wordNumber + '_' + dateUnformatedNew + "'>";
                    accordion+="<td class='t-w-b-td width-date'><span id='date_formated'>" + dateFormat + "</span></td>";
                    accordion+="<td class='t-w-b-td width-data'>";
                    var fragmentsPart = [];
                    var partsIndex = 1;
                    jQuery.each(chunk, function (m, part) {
                      if (partsNum <= maxParts) {
                          if (typeof part[2] != "undefined") {
                            var fragmentDigestRank = part[2].hasOwnProperty('digest_rank') ? part[2].digest_rank : false;
                            /*if ((fragmentDigestRank + '').indexOf('.') != -1) {
                              fragmentDigestRank = fragmentDigestRank.toFixed(1);
                            }*/
                            fragmentDigestRank = Math.round(fragmentDigestRank * 10) / 10;
                            if (fragmentDigestRank) {
                              var fragmentDigestRankString = getStar(fragmentDigestRank);
                            } else {
                              var fragmentDigestRankString = '';
                            }

                            var fragmentSentiment = part[2].hasOwnProperty('SENTIMENT_RATE') ? part[2].SENTIMENT_RATE : false;
                            if (fragmentSentiment) {
                              var fragmentSentimentString = getSmile(fragmentSentiment);
                            } else {
                              var fragmentSentimentString = '';
                            }

                            // TW
                            if (!part[2].hasOwnProperty('social_tw_posts')) {
                              part[2].social_tw_posts = null;
                            }
                            var fragmentSocialTWPostsString = getSocialLabel(part[2].social_tw_posts, 'tw', 'TW posts: ' + part[2].social_tw_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_reposts')) {
                              part[2].social_tw_reposts = null;
                            }
                            var fragmentSocialTWRepostsString = getSocialLabel(part[2].social_tw_reposts, 'tw', 'TW reposts: ' + part[2].social_tw_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_likes')) {
                              part[2].social_tw_likes = null;
                            }
                            var fragmentSocialTWLikesString = getSocialLabel(part[2].social_tw_likes, 'tw', 'TW likes: ' + part[2].social_tw_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_tw_sentiment')) {
                              part[2].social_tw_sentiment = null;
                            }
                            var fragmentSocialTWSentimentString = getSocialSmile(part[2].social_tw_sentiment, 'tw', 'TW sentiment: ' + part[2].social_tw_sentiment, 'fragments');

                            if ((part[2].social_tw_posts == 0) &&
                                (part[2].social_tw_reposts == 0) &&
                                (part[2].social_tw_likes == 0) &&
                                (part[2].social_tw_sentiment == 0)) {
                              var isFragmentSocialTWZero = true;
                            } else {
                              var isFragmentSocialTWZero = false;
                            }

                            var fragmentSocialTWString = fragmentSocialTWPostsString +
                              fragmentSocialTWRepostsString +
                              fragmentSocialTWLikesString +
                              fragmentSocialTWSentimentString;

                            /*// TEST
                            part[2].social_gplus_posts = 1;
                            part[2].social_gplus_reposts = 1;
                            part[2].social_gplus_likes = 1;
                            part[2].social_gplus_sentiment = -10;*/

                            // FB
                            if (!part[2].hasOwnProperty('social_fb_posts')) {
                              part[2].social_fb_posts = null;
                            }
                            var fragmentSocialFBPostsString = getSocialLabel(part[2].social_fb_posts, 'fb', 'FB posts: ' + part[2].social_fb_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_reposts')) {
                              part[2].social_fb_reposts = null;
                            }
                            var fragmentSocialFBRepostsString = getSocialLabel(part[2].social_fb_reposts, 'fb', 'FB reposts: ' + part[2].social_fb_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_likes')) {
                              part[2].social_fb_likes = null;
                            }
                            var fragmentSocialFBLikesString = getSocialLabel(part[2].social_fb_likes, 'fb', 'FB likes: ' + part[2].social_fb_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_fb_sentiment')) {
                              part[2].social_fb_sentiment = null;
                            }
                            var fragmentSocialFBSentimentString = getSocialSmile(part[2].social_fb_sentiment, 'fb', 'FB sentiment: ' + part[2].social_fb_sentiment, 'fragments');

                            if ((part[2].social_fb_posts == 0) &&
                                (part[2].social_fb_reposts == 0) &&
                                (part[2].social_fb_likes == 0) &&
                                (part[2].social_fb_sentiment == 0)) {
                              var isFragmentSocialFBZero = true;
                            } else {
                              var isFragmentSocialFBZero = false;
                            }

                            var fragmentSocialFBString = fragmentSocialFBPostsString +
                              fragmentSocialFBRepostsString +
                              fragmentSocialFBLikesString +
                              fragmentSocialFBSentimentString;

                            // GPlus
                            if (!part[2].hasOwnProperty('social_gplus_posts')) {
                              part[2].social_gplus_posts = null;
                            }
                            var fragmentSocialGPlusPostsString = getSocialLabel(part[2].social_gplus_posts, 'gplus', 'GPlus posts: ' + part[2].social_gplus_posts, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_reposts')) {
                              part[2].social_gplus_reposts = null;
                            }
                            var fragmentSocialGPlusRepostsString = getSocialLabel(part[2].social_gplus_reposts, 'gplus', 'GPlus reposts: ' + part[2].social_gplus_reposts, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_likes')) {
                              part[2].social_gplus_likes = null;
                            }
                            var fragmentSocialGPlusLikesString = getSocialLabel(part[2].social_gplus_likes, 'gplus', 'GPlus likes: ' + part[2].social_gplus_likes, 'fragments');

                            if (!part[2].hasOwnProperty('social_gplus_sentiment')) {
                              part[2].social_gplus_sentiment = null;
                            }
                            var fragmentSocialGPlusSentimentString = getSocialSmile(part[2].social_gplus_sentiment, 'gplus', 'GPlus sentiment: ' + part[2].social_gplus_sentiment, 'fragments');

                            if ((part[2].social_gplus_posts == 0) &&
                                (part[2].social_gplus_reposts == 0) &&
                                (part[2].social_gplus_likes == 0) &&
                                (part[2].social_gplus_sentiment == 0)) {
                              var isFragmentSocialGPlusZero = true;
                            } else {
                              var isFragmentSocialGPlusZero = false;
                            }

                            var fragmentSocialGPlusString = fragmentSocialGPlusPostsString +
                              fragmentSocialGPlusRepostsString +
                              fragmentSocialGPlusLikesString +
                              fragmentSocialGPlusSentimentString;

                            /*var fragmentLabels = 
                              fragmentSentimentString +
                              fragmentDigestRankString +
                              (!isFragmentSocialTWZero ? fragmentSocialTWString : '') +
                              (!isFragmentSocialFBZero ? fragmentSocialFBString : '');*/
                          } else {
                            var isFragmentSocialFBZero = true;
                            var isFragmentSocialTWZero = true;
                            var isFragmentSocialGPlusZero = true;
                            //var fragmentLabels = '';
                          }

                          var part0 = strip_tags(part[0]);
                          var isFirstLetterSmall = (part0.charAt(0) === part0.charAt(0).toLowerCase());

                          var fragmentData = 
                            '<tr>' +

                            '<td>' +
                            partsIndex + ". " + 
                            '</td>' +
                            
                            '<td>' +
                            "<a href=\""+part[1]+"\" target=\"_blank\" title=\""+strip_tags(part[0])+"\">"+
                            (isFirstLetterSmall ? '...' : '') +
                            part[0]+"...</a>" + ' ' + 
                            '</td>' +
                           
                            '<td>' +
                            '<div class="fragment-s-s">' + (fragmentSentimentString ? fragmentSentimentString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (fragmentDigestRankString ? fragmentDigestRankString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialTWZero ? fragmentSocialTWString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialFBZero ? fragmentSocialFBString : '') + '</div>' +
                            '</td>' +

                            '<td>' +
                            '<div class="fragment-s-s">' + (!isFragmentSocialGPlusZero ? fragmentSocialGPlusString : '') + '</div>' +
                            '</td>' +


                            '</td>' +
                            '</tr>';

                          fragmentsPart.push(fragmentData);
                          partsNum++;
                          partsIndex++;
                      } else {
                          returnMaxParts = true;
                          return false;
                      }
                    });
                    accordion+= 
                      '<table class="table-fragments">' + 
                      '<tr>' +
                        '<th class="header-small">№</th>' +
                        '<th class="header-fragments">Fragment</th>' +
                        '<th class="header-small"><img title="Sentiment rank" src="/wp-content/plugins/timeline-graph-widget/images/digest_sentiment_positive_t.png" class="smile"></th>' +
                        '<th class="small"><img title="Similarity rank" class="star" src="/wp-content/plugins/timeline-graph-widget/images/star.png"></th>' +
                        '<th>Twitter</th>' +
                        '<th>Facebook</th>' +
                        '<th>Google+</th>' +
                      '</tr>' + 
                      fragmentsPart.join('') + 
                      '</table>';
                      accordion+="</td>";
                      accordion+="</tr>";

                });
                accordion+="</table>";
                accordion+="</div>";
                accordion+="</div>";
                wordsNum++;
              });

        // Total (begin)
        if (responseDataLen >= 1) {
          accordion+="<div class=\"t-w-b-set\">";
          accordion+="<span class=\"word-toggle-span\" style=\"border:0\">";

          var wordDigestRankString = getStar(response.info.digestRankTotal);
          var wordSentimentString = getSmile(null/*response.info.sentimentSum*/);

          var socialTWSumString = getSocialLabel(response.info.socialTWPostsTotal, 'tw', 'TW: Posts: ' + response.info.socialTWPostsTotal + ', Reposts: ' + response.info.socialTWRepostsTotal + ', Likes: ' + response.info.socialTWLikesTotal);
          var socialTWSentimentSumString = getSmile(null);

          var socialFBSumString = getSocialLabel(response.info.socialFBPostsTotal, 'fb', 'FB: Posts: ' + response.info.socialFBPostsTotal + ', Reposts: ' + response.info.socialFBRepostsTotal + ', Likes: ' + response.info.socialFBLikesTotal);
          var socialFBSentimentSumString = getSmile(null);

          var socialGPlusSumString = getSocialLabel(response.info.socialGPlusPostsTotal, 'gplus', 'GPlus: Posts: ' + response.info.socialGPlusPostsTotal + ', Reposts: ' + response.info.socialGPlusRepostsTotal + ', Likes: ' + response.info.socialGPlusLikesTotal);
          var socialGPlusSentimentSumString = getSmile(null);

          accordion+= '<i class="fa fa-tag word-toggle-i" aria-hidden="true" style="float: left;padding: 6px 0px 0px 0px;font-size: 60%;display:none;" title="Total"></i>'/*'<span style="    width: 6px;">&nbsp;</span>'*/ +

          '<span class="header-word number">&nbsp;</span>' +

          '<span class="header-word ranks">' +

          wordSentimentString +
          wordDigestRankString +

          socialTWSumString +
          socialTWSentimentSumString +

          socialFBSumString +
          socialFBSentimentSumString +
          "</span>" +
          //'<div class="social-container tw" title="TW: Posts: 9, Reposts: 5, Likes: 6"><div class="rank">9</div></div>'+
          /*'<div class="social-container tw sentiment-negative" title="TW sentiment: -10"><div class="rank">&nbsp;</div></div><div class="label-container-empty"><div class="rank">&nbsp;</div></div><div class="label-container-empty"><div class="rank">&nbsp;</div></div></div></span>';*/

          "<span class=\"header-word\">&nbsp;" +
          "</span>" +
          
          /*"<span class=\"header-chains\">&nbsp;" +
          "</span>" +*/
          
          "<span class=\"header-counts\">" +
          "<span title='Total value' class='badge alert-danger'>" + shortenLargeNumber(response.info.indicatorValuesAll) + "</span> <span title='Total articles' class='badge alert-success'>" + shortenLargeNumber(response.info.fragmentsAll) + "</span> <span title='Max days' class='badge alert-info'>" + shortenLargeNumber(response.info.countDatesAll) + "</span>" +
          "</span>"+

          "<span class=\"header-search small\">&nbsp;" +
          "</span>"+ 

          "</span>" + 
          "</div>";
        }
        // Total (end)
       
        accordion+="</div>";

        jQuery(timeLineContainer).find('#spinner2').hide();
        //jQuery(timeLineContainer).append(accordion);
        jQuery(topWordsContainer).html(accordion);

        jQuery(".word-toggle-span:not(:last)").on("click", function(){
            if (jQuery(this).hasClass('active')) {
                jQuery(this).removeClass("active");
                jQuery(this).siblings('.t-w-b-content').slideUp(200);
                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-down").addClass("fa-chevron-right");
            } else {
                jQuery('.word-toggle-span.active').find('.word-toggle-i').removeClass("fa-chevron-down").addClass('fa-chevron-right');
                //jQuery('.word-toggle-span.active').removeClass('active');

                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-down").addClass("fa-chevron-right");
                jQuery(this).find(".word-toggle-i").removeClass("fa-chevron-right").addClass("fa-chevron-down");
                jQuery(this).addClass("active");
                //jQuery('.t-w-b-content').slideUp(200);
                jQuery(this).siblings('.t-w-b-content').slideDown(200);
            }
            if (jQuery(this).data('title') == "accordion-header") {
              if(jQuery(this).hasClass('active')) {
                jQuery('#t-w-b-accordion-container')
                  .find('.t-w-b-content')
                  .show();
              } else {
                jQuery('#t-w-b-accordion-container')
                  .find('.t-w-b-content')
                  .hide();
              }
            }
        });
    });
}
//}

// Map widget JS
function createMap(options) {
    /*if (!options) {
      jQuery(timeLineMainContainer).find('#spinner1').hide();
      return false;
    }*/
    //map = jQuery(timeLineContainer).highcharts();
    /*if (map) {
      options.chart.height = jQuery(timeLineContainer).height();
      options.chart.width  = jQuery(timeLineContainer).width();
    }*/
    var mapContainer = '#t_m_container2';
    jQuery(mapContainer).highcharts('mapChart', options);
    /*var mapContainer = '#t_m_container2';
    Highcharts.mapChart('t_m_container2', options);*/
    //jQuery(mapContainer).show();
}


function getMapOptions(dataMapOptions) {
    var mapOptions = {
        legend: {
          enabled: false
        },
        title: {
            text: ''
        },
        subtitle: {
            text: ''
        },
        mapNavigation: {
            enabled: true,
            buttonOptions: {
                verticalAlign: 'bottom'
            }
        },
        colorAxis: {
            //min: 0
        },
        series: []
    };

   /* var seriesSingle = {
       
        joinBy: 'hc-key',
        name: 'Value',
        states: {
            hover: {
                color: '#BADA55'
            }
        },
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
      };
      seriesSingle.mapData = Highcharts.maps['countries/us/us-all-all'];
      seriesSingle.data = dataMapOptions[1];
    mapOptions.series.push(seriesSingle);*/
    //console.info(dataMapOptions);
    jQuery.each(dataMapOptions, function(i) {
      if (!dataMapOptions[i].length) {
        return;
      }
      var seriesSingle = {
        joinBy: 'hc-key',
        name: 'Value',
        states: {
            hover: {
                color: '#BADA55'
            }
        },
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
      };

      seriesSingle.mapData = Highcharts.maps[('' + i)];
      seriesSingle.data = dataMapOptions[i];
      seriesSingle.value = jQuery('#countFieldName option:selected').text();

      mapOptions.series.push(seriesSingle);
    });
    
    return mapOptions;
}
function drawMap() {
    var mapContainer = '#t_m_container2';
    jQuery(mapContainer).html('');
    //jQuery(mapContainer).find('#spinner2').show();

    var drawMapAPIUrl = getApiUrlByOptions();
    drawMapAPIUrl = drawMapAPIUrl
      .replace('graph_api.php', 'map_api.php')
      .replace('timelineGraphAPI2', 'mapAPI2')
      .replace('method%255D%3Ddata', 'method%255D%3DgetData');

    jQuery.getJSON(drawMapAPIUrl, function (data) {
        var dataMapOptions = {};
        var hcKeyUsAllTeritoriesUrl = 'countries/us/custom/us-all-territories';
        var hcKeyUsAllAllUrl = 'countries/us/us-all-all';
        dataMapOptions[hcKeyUsAllTeritoriesUrl] = [];
        dataMapOptions[hcKeyUsAllAllUrl] = [];
        jQuery.each(data.data, function(i) {
          //console.info('====BEGIN===='  + data.data[i].name);
          var hcKey = {};
          hcKey.usAll = getPropertiesFromDataByName(data.data[i].name, hcKeyUsAllTeritoriesUrl, 'hc-key');
          /*hcKey.usAllAll = getPropertiesFromDataByName(data.data[i].name, hcKeyUsAllAllUrl, 'hc-key');*/
          
          //console.info(hcKey.usAllAll);

          if (hcKey.usAll) {
            dataMapOptions[hcKeyUsAllTeritoriesUrl].push({
              'hc-key': hcKey.usAll, 
              'value': data.data[i].value,
              'color' : data.data[i].color,
            });
          }/* else if (hcKey.usAllAll) {
            dataMapOptions[hcKeyUsAllAllUrl].push({'hc-key': hcKey.usAllAll, 'value': data[i].value});
          }*/
          //console.info('====END====' + data.data[i].name);
        });

        mapOptions = getMapOptions(dataMapOptions);
        createMap(mapOptions);
    });
}

function getPropertiesFromDataByName(name, mapUrl, key) {
var key = key || false;
var mapUrl = mapUrl || 'countries/us/us-all';

var maps = Highcharts.maps[mapUrl].features;
var data = {};
jQuery.each(maps, function(i){
   if (typeof maps[i].properties.name != undefined) {
   data[maps[i].properties.name] = maps[i].properties;
   }
});

var result = false;
if (!data.hasOwnProperty(name)) {
 return result;
}
if (data[name][key]){
result = data[name][key];
} else {
result = data[name];
}
return result;
}

// Timeline Graph Widget JS 
    //var chart;
    function getQueryParams(qs) {
        qs = qs.split('+').join(' ');
        var params = {},
            tokens,
            re = /[?&]?([^=]+)=([^&]*)/g;
        while (tokens = re.exec(qs)) {
            params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
        }
        return params;
    }
    //---------------------------
    var colorsListPattern = ["#000080", "#0074D9", "#39CCCC", "#3D9970", "#2ECC40", "#FFDC00", "#FF851B", "#e83e00", "#85144b", "#F012BE", "#B10DC9"];
    var datepickerOptions = {
      dateFormat: 'yy-mm-dd'
    };
    /*var DateTo   = new Date();
    var DateFrom = new Date(DateTo.getTime());
    DateFrom.setDate(DateFrom.getDate() - 7);*/
    jQuery('#date_from')
      .datepicker(datepickerOptions);
      //.datepicker('setDate', DateFrom);
    jQuery('#date_to')
      .datepicker(datepickerOptions);
      //.datepicker('setDate', DateTo);
    //---------------------------
    var colorsList = [
        '#ff7e00','#FF0000','#00FF00','#D7DF01','#FF00FF','#0074D9','#800000','#808000','#008000','#800080','#008080','#000080','#A2A2A2','#00FFFF','#2196F3','#8A2BE2','#E07777','#5F9EA0','#844229','#6495ED','#006400','#daa604','#DDA0DD','#e83e00','#0000FF','#000000','#7FFF00'
    ];
    var prevDayCurrent = 0;
    var isChartLoadedFirstTime = true;
    var isPopWordsLoadedFirstTime = true;
    var myModal = jQuery('#myModal');
    var timeLineMainContainer = '#t_g_main_container2';
    var timeLineContainer = '#t_g_container2';
    var timeLineTitleContainer = '#t_g_title_container2';
    var topWordsContainer = '#t_w_container2';
    jQuery(topWordsContainer).html('');
    var queryParams = getQueryParams(document.location.search);
    if (queryParams.hasOwnProperty('showOnPageGraphOnly') && queryParams.showOnPageGraphOnly == 1) {
      jQuery('.td-header-wrap').hide();
      jQuery('.td-footer-container').hide();
      jQuery('.td-sub-footer-container').hide();
      jQuery('#main .td-container-border').find('p').hide();
    }
    if (queryParams.hasOwnProperty('notShowChart') && queryParams.notShowChart == 1) {
      var notShowChart = true;
    } else {
      var notShowChart = false;
    }
    if (queryParams.hasOwnProperty('notShowPopWords') && queryParams.notShowPopWords == 1) {
      var notShowPopWords = true;
    } else {
      var notShowPopWords = false;
    }
    if (queryParams.hasOwnProperty('notShowMap') && queryParams.notShowMap == 1) {
      var notShowMap = true;
    } else {
      var notShowMap = false;
    }
    if (queryParams.hasOwnProperty('notShowChartButtons') && queryParams.notShowChartButtons == 1) {
      var notShowChartButtons = true;
    } else {
      var notShowChartButtons = false;
    }
    var chartMouseOverObjsList = {
      data:{},
      prevData:[]
    };

    var sortCustom = function(data) {
        data.sort(function(a,b) {
            if(a.indicatorValue>b.indicatorValue) return -1;
            if(a.indicatorValue<b.indicatorValue) return 1;
            return 0;
        });
    };
    function getChartOptions(data) {
      var sortDataFix = data.info.hasOwnProperty('sortDataFix');
      if (sortDataFix && data.info.sortDataFix == 'countDesc') {
        // japan style
        jQuery('#sortDataFix').val('countDesc');
        sortCustom(data.data);
      }

      if (isChartLoadedFirstTime) {
        chartType = data.info.chartType;
        colors = data.info.colors;
      } else {
        chartType = jQuery('#chart_type').val();
        colors = jQuery('#colors').val();
      }

      if (chartType == 'type7') {
        var series = data.data;
        /*var series = [{
          regression: true,
          regressionSettings: {
            hideInLegend: true,
            type: 'linear',
            //name: "AAAA: {series.name} %r"
            //color: 'rgba(223, 183, 83, .9)',
            //dashStyle: 'dash'
          },
          name: 'Test input1',
          //color: 'rgba(223, 83, 83, .5)',
          data: [
            [1503916301786, 6],
            [1603916318555, 13],
            [1703916330132, 2],
           
          ]

        },
        {
          regression: true,
          regressionSettings: {
            type: 'linear',
            //hideInLegend: true,
            //color: 'rgba(223, 183, 83, .9)',
            //dashStyle: 'dash'
          },
          name: 'Test input2',
          //color: 'rgba(223, 83, 83, .5)',
          data: [
            [1503916301786, 7],
            [1603916318555, 4],
            [1703916330132, 3],
           
          ]

        }];*/
      
      /*var series =  [{
        regression: true,
        regressionSettings: {
          type: 'linear',
          color: 'rgba(223, 183, 83, .9)',
          dashStyle: 'dash'
        },
        name: 'Test input',
        color: 'rgba(223, 83, 83, .5)',
        data: [
          [1, 1],
          [2, 3],
          [3, 9],
         
        ]
      }];*/
      
      } else if (chartType == 'type6') {
        // Define tasks
        /*var tasks = [{
            name: 'Sleep',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 0),
                to: Date.UTC(0, 0, 0, 0),
                value: 10
            }, {
                from: Date.UTC(0, 0, 0, 22),
                to: Date.UTC(0, 0, 0, 24),
                value: 11
            }]
        }, {
            name: 'Family time',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 6),
                to: Date.UTC(0, 0, 0, 8),
                value: 20
            }, {
                from: Date.UTC(0, 0, 0, 16),
                to: Date.UTC(0, 0, 0, 22)
            }]
        }, {
            name: 'Eat',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 7),
                to: Date.UTC(0, 0, 0, 8),
                label: 'Breakfast'
            }, {
                from: Date.UTC(0, 0, 0, 12),
                to: Date.UTC(0, 0, 0, 12, 30)
            }, {
                from: Date.UTC(0, 0, 0, 16),
                to: Date.UTC(0, 0, 0, 17),
                label: 'Dinner'
            }, {
                from: Date.UTC(0, 0, 0, 20, 30),
                to: Date.UTC(0, 0, 0, 21)
            }]
        }, {
            name: 'Work',
            intervals: [{ // From-To pairs
                from: Date.UTC(0, 0, 0, 8),
                to: Date.UTC(0, 0, 0, 16)
            }]
        }];*/

        // Define milestones
        /*var milestones = [{
            name: 'Get to bed',
            time: Date.UTC(0, 0, 0, 22),
            task: 1,
            marker: {
                symbol: 'triangle',
                lineWidth: 1,
                lineColor: 'black',
                radius: 8
            }
        }];*/

        // re-structure the tasks into line seriesvar series = [];
        var tasks = data.data;
        var series = [];
        tasksNames = [];
        var newNameLoop = true;
        jQuery.each(tasks.reverse(), function(i, task) {
            var item = {
                name: task.name,
                data: [],
                indicatorValue: task.indicatorValue
            };
            newNameLoop = true;
            tasksNames.push(task.name);
            jQuery.each(task.data, function(j, interval) {
                var from = interval[0];
                var to = interval[0];
                
                if (!newNameLoop) {
                    var dataLabels = {};
                } else {
                var dataLabels = { 
                        //rotation: 0,
                        //backgroundColor: '#FFFFFF',
                        //color: '#000000',
                        //x: 0,
                        //y: 0,
                        /*enabled: true,
                        align: 'center',
                        //x: 3,
                        verticalAlign: 'middle',
                        //overflow: true,
                        crop: false,
                        format: '{series.name}'*/
                        
                        format: '{series.name}',
                        enabled: true,
                        align: 'left',
                        verticalAlign: 'middle',
                        //color: '#294469',
                        /*shadow: false,
                        overflow: false,*/
                        //x: -25,
                        /*style: {
                            "fontSize": "10px", 
                            "textShadow": "0px"
                        }*/
                };
                }

                if (typeof task.data[j + 1] != 'undefined') {
                    var fromNext = task.data[j + 1][0];
                    
                    var date1 = new Date(to);
                    var date2 = new Date(fromNext);
                    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
                    var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24)); 
                    
                    if (diffDays == 0) {
                        //to = to + 1 * (1000 * 60 * 60 * 5);
                        to = fromNext - 1 * (1000 * 60 * 60);
                        //to += 1 * (1000 * 60 * 60 * 24);
                        //interval[1] = null;
                        //var dataLabels = {};
                    }
                }

                item.data.push({
                    x: from,
                    y: i,
                    //label: interval.label,
                    from: from,
                    to: to,
                    value: interval[1],
                    dataLabels: dataLabels

                }, {
                    x: to,
                    y: i,
                    from: from,
                    to: to,
                    value: interval[1]
                });
                
                // add a null value between intervals
                if (task.data[j + 1]) {
                    item.data.push(
                        [(interval.to + task.data[j + 1].from) / 2, null]
                    );
                }
                newNameLoop = false;
            });

            series.push(item);
        });
      } else {
        var series = data.data;
      }

      //console.info(series);

      if (data.info.hasOwnProperty('uniqueDates')) {
        var uniqueDatesLength = data.info.uniqueDates.length;
      } else {
        var uniqueDatesLength = 0;
      }
      var chartOptions = {
          resetZoomButton: {
            theme: {
                display: 'none'
            }
          },
          defs: {
            patterns: []
          },
          lang: {
            optionsKey: 'Extended options',
            shareKey: 'Share current session',
            exportKey: 'Export to json',
            noData: 'Sorry, no data for selected period, please change options.',
            barKey: 'Chart type - Bar',
            lineKey: 'Chart type - Line',
            areaKey: 'Chart type - Area',
            ganttKey: 'Chart type - Gantt',
            linearRegression: 'Chart type - Linear Regression',
            prevKey: 'Previous day',
            nextKey: 'Next day',
            todayKey: 'Today',
            yesterdayKey: 'Yesterday',
            weekKey: 'Week',
            monthKey: 'Month',
          },
          exporting: {
            buttons: {
                customButton1: {
                    text: ' Options ',
                    _titleKey: 'optionsKey',
                    onclick: function () {
                      jQuery('#my_modal').click();
                    }
                },
                customButton2: {
                    text: ' Share ',
                    _titleKey: 'shareKey',
                    onclick: function () {
                      var shareLink =
                        document.location.origin +
                        document.location.pathname +
                        '?shareUrl=' +
                        encodeURIComponent(
                          getApiUrlByOptions()
                        );
                      /*window.prompt(
                          'Copy to clipboard: Ctrl+C, Enter',
                          shareLink
                      );*/
                      jQuery('#prompt_container').html('<!-- Trigger the modal with a button -->'+
                        '<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#prompt_dialog" id="prompt_dialog_btn" style="display:none">Open Modal</button>' +
                        '<!-- Modal -->' +
                        '<div id="prompt_dialog" class="modal fade" role="dialog" tabindex="-1">' +
                          '<div class="modal-dialog">' +
                            '<!-- Modal content-->' +
                            '<div class="modal-content">' +
                              '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal">&times;</button>' +
                                '<h4 class="modal-title">Share</h4>' +
                              '</div>' +
                              '<div class="modal-body">' +
                                '<p><textarea>' + shareLink + '</textarea></p>' +
                              '</div>' +
                              '<div class="modal-footer">' +
                                '<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>' +
                              '</div>' +
                            '</div>' +
                          '</div>' +
                        '</div>'
                        //'<script>' +
                        //'jQuery("#prompt_dialog").find("textarea").select();' +
                        /*'jQuery("#prompt_dialog").find("textarea").focus(' +'function(e) {' +
                            'e.target.select();' +
                            'jQuery(e.target).one("mouseup", function(e) {' +
                              'e.preventDefault();' +
                          '});' +
                        '});' +
                        '<' + '/script>'*/
                        );
                        jQuery('#prompt_container').appendTo('body');
                        jQuery('#prompt_dialog_btn').click();
                        //jQuery('#prompt_dialog').find('textarea').focus();
                        var shareInterval = setInterval(function() {
                          if (jQuery('#prompt_dialog').css('display') == 'none') {
                            clearInterval(shareInterval);
                          }else {
                            jQuery('#prompt_dialog').find('textarea').select();
                          }
                        }, 1000);
                    }
                },
                customButton_LR: {
                    text: ' Linear Regression ',
                    _titleKey: 'linearRegression',
                    onclick: function () {
                        changeChartType('type7');
                    }
                },
                customButton3: {
                    text: ' Gantt ',
                    _titleKey: 'ganttKey',
                    onclick: function () {
                        changeChartType('type6');
                    }
                },
                customButton4: {
                    text: ' Line ',
                    _titleKey: 'lineKey',
                    onclick: function () {
                      changeChartType('type5');
                    }
                },
                customButton5: {
                    text: ' Area ',
                    _titleKey: 'areaKey',
                    onclick: function () {
                      changeChartType('type1');
                    }
                },
                customButton6: {
                    text: ' Bar ',
                    _titleKey: 'barKey',
                    onclick: function () {
                        changeChartType('type3');
                    }
                },
                customButton7: {
                    text: ' Next ',
                    _titleKey: 'nextKey',
                    onclick: function () {
                      --prevDayCurrent;
                      changeChartDays('-' + prevDayCurrent + 'days', '-' + prevDayCurrent + 'days');
                    }
                },
                customButton8: {
                    text: ' Prev ',
                    _titleKey: 'prevKey',
                    onclick: function () {
                      ++prevDayCurrent;
                      changeChartDays('-' + prevDayCurrent + 'days', '-' + prevDayCurrent + 'days');
                    }
                },
                customButton9: {
                    text: ' Today ',
                    _titleKey: 'todayKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-0days');
                    }
                },
                customButton10: {
                    text: ' Yesterday ',
                    _titleKey: 'yesterdayKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-1days', '-1days');
                    }
                },
                customButton11: {
                    text: ' 7days ',
                    _titleKey: 'weekKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-6days');
                    }
                },
                customButton12: {
                    text: ' 30days ',
                    _titleKey: 'monthKey',
                    onclick: function () {
                      prevDayCurrent = 0;
                      changeChartDays('-29days');
                    }
                },
            }
        },
          rangeSelector: {
              /*selected: 1,
              allButtonsEnabled: true,
              buttons: [{
                  type: 'day',
                  count: 1,
                  text: '1d'
              },{
                  type: 'day',
                  count: 8,
                  text: '7d'
              },{
                  type: 'month',
                  count: 1,
                  text: '1m'
              }, {
                  type: 'all',
                  text: 'All'
              }],
              inputEnabled: false,*/
              enabled: false
          },
          /*navigation: {
              buttonOptions: {
                  enabled: false
              }
          },*/
          // scrollbar begin
          navigator: {
              enabled: false
          },
          scrollbar : {
              enabled : false
          },
          // scrollbar end
          /*yAxis: {
              labels: {
                  formatter: function () {
                      return (this.value > 0 ? ' + ' : '') + this.value + '%';
                  }
              },
              plotLines: [{
                  value: 0,
                  width: 2,
                  color: 'silver'
              }]
          },*/
          yAxis: {
              title: {text: null},
              //reversedStacks: false
              /*max: 600*/
              gridLineDashStyle: 'longdash'
          },
          xAxis: {
            
             type: 'datetime',
             ordinal: false,
        //min:Date.UTC(2016, 08, 01),
        //max:Date.UTC(2016, 09, 15),
            events: {
              afterSetExtremes: function (e) {
                /*var minAxis = this.min,
                    maxAxis = this.max;
                jQuery.each(this.chart.series, function (l, s) {
                  if (l == this.chart.series.length - 1) {
                    return true;
                  }
                  points = s.points;
                  if (points.length > 0) {
                    min = points[0].y,
                    max = points[0].y;
                    jQuery.each(points, function(i, p) {
                      if(p.x >= minAxis && p.x <= maxAxis) {
                        if(p.y > max)
                          max = p.y;
                        if(p.y < min)
                          min = p.y;
                      }
                    });
                  } else {
                    max = 0;
                  }
                  if (max == 0) {
                    this.chart.series[l].update({showInLegend: false});
                  } else {
                    this.chart.series[l].update({showInLegend: true});
                  }
                });*/
              }
            }
          },
          colors: [],
          plotOptions: {
            series: {
               /*turboThreshold: 10,*/
                //boostThreshold: 50,
                /*events: {
                  click: function(e) {
                    console.info(e);
                    console.info(this);
                  }
                },*/
                //allowPointSelect: true,
                states: {
                    hover: {
                        lineWidth: 0
                    }
                },
                /*marker: {
                  enabled: true
                },*/
                animation: false,
                stickyTracking: false,
                connectNulls: true,
                cursor: 'pointer',
                stacking: "normal",
                fillOpacity: 0.7,
                point: {
                  events: {
                      click: function(e) {
                        searchWord(this.series.name, this.series.color);
                      },
                      mouseOver: function(e) {
                        var popWordsTdId = 'date_' + this.x;
                        if (!Object.keys(chartMouseOverObjsList.data).length || !chartMouseOverObjsList.data.hasOwnProperty(popWordsTdId)) {
                          chartMouseOverObjsList.data[popWordsTdId] =
                            jQuery('#t-w-b-accordion-container')
                              .find('.' + popWordsTdId)
                              .find('#date_formated');
                        }
                        var currentData = chartMouseOverObjsList.data[popWordsTdId];
                        if (!chartMouseOverObjsList.prevData.length) {
                          chartMouseOverObjsList.prevData = currentData;
                        }
                        jQuery.each(chartMouseOverObjsList.prevData, function(i) {
                            jQuery(chartMouseOverObjsList.prevData[i])
                                .css('background', 'white');
                        });
                        chartMouseOverObjsList.prevData = currentData;
                        jQuery.each(currentData, function(i) {
                            jQuery(currentData[i])
                                .css('background', 'yellow');
                        });
                      }
                  }
              }
            },
            area: {
              stickyTracking: false,
              connectNulls: true,
            //   stacking: "normal",
              lineWidth: 0/*,
              trackByArea: true*/
            },
            // column: {
            //     stacking: 'normal'
            // }
          },
          title: {
              text: '',
              align: 'left',
              //width: 100
          },
          chart: {
              /*height: 600,*/
            //   type: 'area',
            //   type: 'column',
              className: 't-g-chart',
              style: {
                fontFamily: ['Open Sans', 'arial', 'sans-serif']
              },
              events: {
                load: function(event) {
                  //chart = this;
                  afterGraphLoad(data);
                }/*,
                click: function(event) {
                  console.info(event);
                  console.info(this);
                }*/
              },
              marginTop:50
          },
          tooltip: {
             //split: true,
             //shared: false,
            
              //shared: true,
              //pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',
              //pointFormat: '',
              valueDecimals: 0,
              style: {},
            //   backgroundColor: 'rgba(247,247,247,0.9)',
              useHTML: true,
              //followPointer: true,
              borderRadius: 0,
              shadow: false,
              /*positioner: function(boxWidth, boxHeight, point) {
                  // Set up the variables
                  var chart = this.chart,
                      plotLeft = chart.plotLeft,
                      plotTop = chart.plotTop,
                      plotWidth = chart.plotWidth,
                      plotHeight = chart.plotHeight,
                      distance = 5,
                      pointX = point.plotX,
                      pointY = point.plotY,
                      x = pointX + plotLeft + (chart.inverted ? distance : -boxWidth - distance),
                      y = pointY - boxHeight + plotTop + 15,
                      // 15 means the point is 15 pixels up from the bottom of the tooltip
                      alignedRight;
                  // It is too far to the left, adjust it
                  if (x < 7) {
                      x = plotLeft + pointX + distance;
                  }
                  // Test to see if the tooltip is too far to the right,
                  // if it is, move it back to be inside and then up to not cover the point.
                  if ((x + boxWidth) > (plotLeft + plotWidth)) {
                      x -= (x + boxWidth) - (plotLeft + plotWidth);
                      y = pointY - boxHeight + plotTop - distance;
                      alignedRight = true;
                  }
                  // If it is now above the plot area, align it to the top of the plot area
                  //if (y < plotTop + 5) {
                  //    y = plotTop + 5;
                  //    // If the tooltip is still covering the point, move it below instead
                  //    if (alignedRight && pointY >= y && pointY <= (y + boxHeight)) {
                  //        y = pointY + plotTop + distance; // below
                  //    }
                  //}
                  // Now if the tooltip is below the chart, move it up. It's better to cover the
                  // point than to disappear outside the chart. #834.
                  if (y + boxHeight > plotTop + plotHeight) {
                      y = Math.max(plotTop, plotTop + plotHeight - boxHeight - distance); // below
                  }
                  return {
                      x: x,
                      y: 100
                  };
              }*/
          },
          legend: {
            /*itemStyle: {
                width:'50px',
                textOverflow: 'ellipsis',
                overflow: 'hidden'
            },*/
            itemStyle: {
            },
            itemMarginTop: 0,
            itemMarginBottom: 8,
            enabled: true,
            labelFormatter: function() {
              if (this.hasOwnProperty('yData')) {
                var yData = this.yData;
              } else {
                var yData = false;
              }
              if (yData) {
                var isPercentage = (jQuery('#data_values').val() == 'percentage');
                var count = this.options.indicatorValue;
                var name = this.name + ' (' + count + ')';
              } else {
                var name = this.name;
              }
              return name;
            }
          },
          series: series
      };

      //console.info(chartOptions);

      //if (isMobile()) {
        // jQuery(timeLineTitleContainer).html('<strong>' + data.info.title + '</strong>').show();
        jQuery(timeLineTitleContainer).html('<h2 class="timeline-title">' + data.info.title + '</h2>').show();
      /*} else {
        chartOptions.title.text = data.info.title;
      }*/

      /*if (isChartLoadedFirstTime) {
        chartType = data.info.chartType;
        colors = data.info.colors;
      } else {
        chartType = jQuery('#chart_type').val();
        colors = jQuery('#colors').val();
      }*/
      switch(colors) {
        case 'custom':
          chartOptions.colors = colorsList;
          break;
        case 'standart':
          delete chartOptions.colors;
          break;
        case 'colorPatternFill':
          chartOptions.colors = colorsList;
          break;
      }

      switch(chartType) {
        case 'type1':
          chartOptions.chart.type = 'area';
          break;
        case 'type2':
          chartOptions.chart.type = 'column';
          break;
        case 'type3':
          chartOptions.chart.type = 'column';
          delete chartOptions.plotOptions.area;
          break;
        case 'type4':
          chartOptions.chart.type = 'line';
          break;
        case 'type5':
          chartOptions.chart.type = 'spline';
          break;
        case 'type6':
          delete chartOptions.chart.type;
          break;
        case 'type7':
          chartOptions.chart.type = 'scatter';
          break;
      }

      chartOptions.plotOptions.series.states.hover.lineWidth = data.info.lineWidth;

      if (notShowChartButtons == 1) {
        chartOptions.exporting = {enabled: false};
      }
      chartOptions.defs.patterns = getDefsPatterns(data.data.length);
      chartOptions.tooltip.formatter1 = function() {
        var points = this.points;
        
        var sortedPoints = points.sort(function(a, b) {
          if (data.info.orderBy.field == 'name') {
            var fieldA = 'a.series.name';
            var fieldB = 'b.series.name';
          } else if (data.info.orderBy.field == 'indicatorValue') {
            var fieldA = 'a.y';
            var fieldB = 'b.y';
          }
          if (data.info.orderBy.direction) {
            r = (fieldA > fieldB) ? 1 : (fieldA < fieldB) ? -1 : 0;
          } else {
            r = (fieldA < fieldB) ? 1 : (fieldA > fieldB) ? -1 : 0;
          }
          return r;
        });
        var addToEndOfLabelsString = sortedPoints.length > 10 ? '...' : '';
        sortedPoints = sortedPoints.slice(0, 10);
        var Date1 = new Date(this.x);
        var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
        var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
        var labelsString = '';
        var labelsHeader =
        //   '<span style="font-size:11px">' +
          '<span class="tooltip-date">' +
          days[Date1.getUTCDay()] + ', ' +
          months[Date1.getUTCMonth()] + ' ' +
          Date1.getUTCDate() + ', ' +
          (('0' + Date1.getUTCHours()).slice(-2)) +
          ':' +
          (('0' + Date1.getUTCMinutes()).slice(-2)) +
          '</span>';
        labelsString += labelsHeader;
        labelsString += "<table>";
        jQuery.each(sortedPoints, function(i, point) {
          if (point.series.color.indexOf('#') == 0) { // color: custom, standart
            var name = '<span style="color:' + point.series.color + ';">'+ point.series.name + '</span>';
          } else {  // color pattern-fill
            //var color = colorsList[i];
            /*   point.series.renderer.rect(100, 100, 100, 100, 5)
            .attr({
                'stroke-width': 2,
                stroke: 'red',
                fill: 'yellow',
                zIndex: 3
            })
            .add();*/
            color = point.series.options.colorTooltip;
            var name =
              //'<g class="highcharts-legend-item" transform="translate(8,3)"><text x="21" style="color:#333333;font-size:12px;font-weight:bold;cursor:pointer;fill:#333333;" text-anchor="start" y="15"><tspan>ﾐ籍ｻﾐｵﾐｺﾑ��ｰﾐｽﾐｴﾑ� ﾐ｣ﾑ��ｸﾐｺ</tspan></text><rect x="0" y="4" width="16" height="12" fill="url(#highcharts-default-pattern-2)"></rect></g>' +
              //'<span style="width:10px;height:10px;background-color:' + point.series.color + '"></span>&nbsp;' +
              //'<span style="font-weight:bold">'+ point.series.name + '</span>';
              '<span style="color:' + color + ';">'+ point.series.name + '</span>';
          }
          var value = point.y;
          if (jQuery('#data_values').val() == 'percentage') {
            value += '%';
          }
          labelsString += '<tr><th>' + name + '</th><td><strong>' + value + '</strong></td></tr>';
        });
        labelsString += addToEndOfLabelsString;
        labelsString += "</table>";
        return labelsString;
      };
      if (data.info.errors.status == 1) {
        chartOptions.lang.noData = data.info.errors.message;
        chartOptions.series = [];
      }
      
        /*chartOptions1 = {series: []};
        chartOptions1.series = chartOptions.series;*/
      
        //console.info(chartType);
        if (chartType == 'type7') {
          chartOptions.legend = {};
          chartOptions.legend.labelFormatter = function() {
            name = this.name
            // + ' (' + this.options.indicatorValue + ')';
            return name;
          }

          chartOptions.plotOptions = {};
          chartOptions.chart.type = 'scatter';
          chartOptions.tooltip = {
            //shared: true,
            /*formatter: function() {
              return false;
              
              //if (!this.series.options.hasOwnProperty('isRegressionLine')) {
              //  return false;
              //}
              //return this.extraForTooltip;
              
              //return this.point.name + ': <b>' + Math.ceil(this.point.value) + '</b>';
            }*/
          }
          /*chartOptions.plotOptions.series = {
            states: {
              hover: {
                enabled: false
              }
            }
          };*/
          chartOptions.plotOptions.scatter = {
            /*tooltip: {
              
              pointFormatter: function() {
                return false;
              }
            },*/
            /*dataLabels: {
              enabled: false
            },*/
            showInLegend: false,
            /*states: {
              hover: {
                enabled: false
              }
            },
            marker: {
                enabled: false
            },*/
            point: {
                /*showInLegend: false,
                events: {
                    show: function () {
                        console.info(this);
                        this.remove();
                    }
                }*/
            },
            events: {
                show: function () {
                    this.graph.hide();
                }
            }
          };
          
        } else if (chartType == 'type6') {
        // needs to chage for gantt chart type (chartType = 'type6')
          /*delete chartOptions.xAxis;
          delete chartOptions.yAxis;
          delete chartOptions.tooltip;
          delete chartOptions.title;
          delete chartOptions.scrollbar;
          delete chartOptions.resetZoomButton;
          delete chartOptions.rangeSelector;
          delete chartOptions.navigator;
          delete chartOptions.legend;
          delete chartOptions.lang;
          delete chartOptions.exporting;
          delete chartOptions.defs;
          delete chartOptions.colors;
          delete chartOptions.chart;*/
          
          //delete chartOptions.plotOptions;
           //chartOptions.chart.type = 'line';
          chartOptions.plotOptions.line = {};
          chartOptions.plotOptions.line.lineWidth = data.info.lineWidth;
          //chartOptions.plotOptions.series.states.hover.lineWidth = data.info.lineWidth;
          

          chartOptions.tooltip = {
            formatter: function() {
                /*return '<b>'+ tasks[this.y].name + '</b><br/>' +
                    Highcharts.dateFormat('%Y-%m-%d %H:%M', this.point.options.from) + ' | value: ' + this.point.options.value;*/
                            var Date1 = new Date(this.point.options.from);
                var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
                var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
                var labelsString = '';
                var labelsHeader =
                //   '<span style="font-size:11px">' +
                  '<span class="tooltip-date">' +
                  days[Date1.getUTCDay()] + ', ' +
                  months[Date1.getUTCMonth()] + ' ' +
                  Date1.getUTCDate() + ', ' +
                  (('0' + Date1.getUTCHours()).slice(-2)) +
                  ':' +
                  (('0' + Date1.getUTCMinutes()).slice(-2)) +
                  '</span>';
                labelsString += labelsHeader;
                //labelsString += "<table>";
                  var value = this.point.options.value;
                  if (jQuery('#data_values').val() == 'percentage') {
                    value += '%';
                  }
                  //labelsString += '<tr><th><span><br>' + tasks[this.y].name + '</span></th><td><strong>' + value + '</strong></td></tr>';
                  labelsString += '<br><span>' + tasks[this.y].name + '</span>: <strong>' + value + '</strong>';
                
                //labelsString += "</table>";
                return labelsString; 
            }
          };
      
          chartOptions.legend.reversed = true;
          chartOptions.legend.labelFormatter = function() {
              var name = this.name + ' (' + this.options.indicatorValue + ')';
              return name;
            }


            //chartOptions.yAxis.labels = {};
            //chartOptions.yAxis.labels.enabled = true;
            chartOptions.yAxis.categories = tasksNames;/*Array.apply(null, Array(tasks.length)).map(function (_, i) {return i;});*/

          chartOptions.plotOptions.series.connectNulls = false;
          delete chartOptions.plotOptions.series.stacking;
        }

      return chartOptions;
    }
    function getApiUrlByOptions() {
      chart = jQuery(timeLineContainer).highcharts();
      if (queryParams.hasOwnProperty('shareUrl')) {
        if (isChartLoadedFirstTime) {
          shareUrl = queryParams.shareUrl;
          return shareUrl;
        } else {
          shareUrl = decodeURIComponent(shareUrl);
          queryParams = getQueryParams(shareUrl);
        }
      }
      var optionsParams = {
        params:{
          orderBy:{},
          countWords:{},
          date: {},
          presentWords: {}
        }
      };
      if (chart) {
        optionsParams.params.returnSocialFields = {
          'tw': {
            'posts': 0,
            'reposts': 0,
            'likes': 0,
            'sentiment': 0,
          },
          'fb': {
            'posts': 0,
            'reposts': 0,
            'likes': 0,
            'sentiment': 0,
          }
        };
        optionsParams.params.returnSocialFields.tw.posts = Number(jQuery('#social_tw_posts').prop('checked'));
        optionsParams.params.returnSocialFields.tw.reposts = Number(jQuery('#social_tw_reposts').prop('checked'));
        optionsParams.params.returnSocialFields.tw.likes = Number(jQuery('#social_tw_likes').prop('checked'));
        optionsParams.params.returnSocialFields.tw.sentiment = Number(jQuery('#social_tw_sentiment').prop('checked'));
        
        optionsParams.params.showLegendWords = Number(jQuery('#show_legend_words').prop('checked'));
        var legendWordsNotVisibleList = [];
        jQuery(chart.series).each(function(i) {
          var isNotVisible = !this.visible;
          if (isNotVisible) {
            legendWordsNotVisibleList.push(this.name);
          }
        });
        if (legendWordsNotVisibleList.length) {
          optionsParams.params.legendWordsNotVisibleList = encodeURIComponent(
            legendWordsNotVisibleList.join(',')
          );
        }
      }
      var wordsNames = jQuery('#words_names').val();
      if (wordsNames != '') {
        var wordsNamesCount = wordsNames.split(',').length;
        if (wordsNamesCount == 1) {
          jQuery('#data_values').val('original');
        }
      }
      optionsParams.params.wordsNames = encodeURIComponent(wordsNames);
      optionsParams.params.chartType = jQuery('#chart_type').val();
      optionsParams.params.colors = jQuery('#colors').val();
      optionsParams.params.count = myModal.find('#count').val();
      optionsParams.params.orderBy.field = myModal.find('#order_field').val();
      optionsParams.params.orderBy.direction = myModal.find('#order_direction').val();
      optionsParams.params.groupWords = myModal.find('#group_words').val();
      optionsParams.params.countFieldName = myModal.find('#countFieldName').val();

      /*var countFieldNameLabels = [];
      myModal.find('#countFieldName option').each(function()
      {
         var data = {};
         data[jQuery(this).val()] = jQuery(this).text();
         countFieldNameLabels.push(data);
      });
      optionsParams.params.countFieldNameLabels = encodeURIComponent(countFieldNameLabels.join(','));*/

      optionsParams.params.countWords.min =
        ((myModal.find('#count_words_min').val() != '') ?
        myModal.find('#count_words_min').val() :
        '');
      optionsParams.params.countWords.max =
        ((myModal.find('#count_words_max').val() != '') ?
        myModal.find('#count_words_max').val() :
        '');
      optionsParams.params.topWords = Number(jQuery('#top_words').prop('checked'));
      optionsParams.params.presentWords.type = myModal.find('#present_words_type').val();
      optionsParams.params.presentWords.days = myModal.find('#present_words_days').val();
      optionsParams.params.debug = Number(myModal.find('#debug').val());
      optionsParams.params.date.from = myModal.find('#date_from').val();
      optionsParams.params.date.to = myModal.find('#date_to').val();
      optionsParams.params.date.fromModify = myModal.find('#date_from_modify').val();
      optionsParams.params.date.toModify = myModal.find('#date_to_modify').val();

      optionsParams.params.category = myModal.find('#category').val();
      optionsParams.params.method = myModal.find('#method').val();
      optionsParams.params.type = myModal.find('#type').val();
      optionsParams.params.sortDataFix = myModal.find('#sortDataFix').val();

      optionsParams.params.dbDataSource = jQuery('#db_data_source').val();
      optionsParams.params.mergeSimilarWords = Number(jQuery('#merge_similar_words').prop('checked'));
      optionsParams.params.dataAveraging = jQuery('#data_averaging').val();
      optionsParams.params.lineWidth = jQuery('#line_width').val();
      var wordsContainer2 = '#words2';
      var chosenSpans = jQuery('.chosen-container').find('span');
      /*if (!chosenSpans.length) {
        jQuery('#words_restore_all').click();
      }*/
      jQuery(wordsContainer2).find('option').remove();
      jQuery.each(chosenSpans, function(i) {
        var name = jQuery(chosenSpans[i]).text();
        var color = jQuery(chosenSpans[i]).data('color');
        if (typeof color != 'undefined') {
          var value = name + '|' + color;
        } else {
          var value = name;
        }
        jQuery(wordsContainer2).append(
          jQuery('<option>', {
            value:value, text:name
          }
        ));
      });
      var words = jQuery(wordsContainer2 + ' option').map(function(){ return this.value }).get();
      if (words && words.length) {
        optionsParams.params.words = words.join(',');
        optionsParams.params.words = encodeURIComponent(optionsParams.params.words);
      }
      if (jQuery("#words2 option").length == 1) {
        jQuery('#data_values').val('original');
      }
      optionsParams.params.dataValues = jQuery('#data_values').val();
    //   optionsParams.params.colorsListPattern = encodeURIComponent(colorsListPattern.join(','));
      optionsParams.params.colorsListPattern = encodeURIComponent(colorsList.join(','));
      if (queryParams.hasOwnProperty('apiUrl')) {
        var split = queryParams.apiUrl.split('?');
        var queryParamsApiUrl = split[0];
        var queryParamsApiPath = getQueryParams(split[1]);

        if (isChartLoadedFirstTime) {
          var queryParamsCurrentPageUrl = queryParams.hasOwnProperty('currentPageUrl') ? queryParams.currentPageUrl : '/';

          jQuery.each(queryParamsApiPath, function(key, value) {
            key1 = key
              .replace('params[', '')
              .replace('][', '%_%')
              .replace(']', '');
            if (key1.indexOf('%_%') != -1) {
              key2 = key1.split('%_%');
              var key2len = key2.length;
              if (key2len == 1) {
                optionsParams.params[key2[0]] = value;
              } else if (key2len == 2) {
                optionsParams.params[key2[0]][key2[1]] = value;
              } else if (key2len == 3) {
                optionsParams.params[key2[0]][key2[1]][key2[2]] = value;
              }
            } else {
              optionsParams.params[key1] = value;
            }
            if ((key1 == 'category') && (queryParamsCurrentPageUrl == '/')) {
              jQuery('#myModal').find('#category').val(value);
            }
          });

        }

        queryParamsApiUrl +=
          /*'?params[method]=data' +
          '&params[type]=2' +
          '&' + jQuery.param(optionsParams);*/
          '?' + jQuery.param(optionsParams);

        queryParamsApiUrl = '/wp-admin/admin-ajax.php?action=TimelineGraphSocialAPI2&apiUrl=' + encodeURIComponent(queryParamsApiUrl) + '&currentPageUrl=' + encodeURIComponent(queryParams.currentPageUrl);
      }
      return queryParamsApiUrl;
    }
    function createChart(options) {
        if (!options) {
          jQuery(timeLineMainContainer).find('#spinner1').hide();
          return false;
        }
        chart = jQuery(timeLineContainer).highcharts();
        if (chart) {
          options.chart.height = jQuery(timeLineContainer).height();
          options.chart.width  = jQuery(timeLineContainer).width();
        }

        //jQuery(timeLineContainer).highcharts('StockChart', options);
        jQuery(timeLineContainer).highcharts(options);
        
        jQuery(timeLineContainer).show();
    }
    function fillSearchForm(data) {
        // new place - test variant change place!!!
        var wordsContainer = jQuery('#words');
        wordsContainer.find('option').remove();
        jQuery.each(data.data, function(i) {
          var name = data.data[i]['name'];
          wordsContainer.append(
            jQuery('<option>', {
              value:name, text:name
            }
          ));
        });
        if (isChartLoadedFirstTime) {
          // !place important
          if (data.info.hasOwnProperty('chartType')) {
            jQuery('#chart_type').val(data.info.chartType).change();
          }

          wordsContainer.chosen({width: '100%'});
          wordsContainer.on('change', function() {
            chosenSpansInit();
          });
          jQuery('#words_restore_all').on('click', function() {
            jQuery(wordsContainer).find('option').attr('selected', 'selected');
            jQuery(wordsContainer).trigger('chosen:updated');
            chosenSpansInit();
          });
          jQuery('#words_clear_all').on('click', function() {
            jQuery(wordsContainer).find('option').attr('selected', false);
            jQuery(wordsContainer).trigger('chosen:updated');
          });
          jQuery('#words option').attr('selected', 'selected');
          jQuery('#words').trigger('chosen:updated');
          chosenSpansInit();
          jQuery('#words_clear_all').click();
        } else {
          if (jQuery('.chosen-container').find('.chosen-choices li').length > 1) {
            jQuery('#words_restore_all').click();
          } else {
            jQuery(wordsContainer).val('').trigger('chosen:updated');
          }
        }
        // ---

        if (data.info.hasOwnProperty('date')) {
          var dateFrom = data.info.date.from.split(' ')[0];
          var dateTo   = data.info.date.to.split(' ')[0];
          jQuery('#date_from').val(dateFrom);
          jQuery('#date_to').val(dateTo);
        }
        if (data.info.hasOwnProperty('count')) {
          jQuery('#count').val(data.info.count);
        }
        if (data.info.hasOwnProperty('orderBy')) {
          jQuery('#order_field').val(data.info.orderBy.field);
          jQuery('#order_direction').val(data.info.orderBy.direction);
        }
        if (data.info.hasOwnProperty('countFieldName')) {
          jQuery('#countFieldName').val(data.info.countFieldName).change();
        }
        if (data.info.hasOwnProperty('countWords')) {
          jQuery('#count_words_min').val(data.info.countWords.min);
          if (data.info.countWords.max != 0) {
            jQuery('#count_words_max').val(data.info.countWords.max);
          }
        }
        if (data.info.hasOwnProperty('topWords')) {
          jQuery('#top_words').prop('checked', data.info.topWords);
        }

        if (data.info.hasOwnProperty('presentWords')) {
          jQuery('#present_words_type').val(data.info.presentWords.type).change();
          jQuery('#present_words_days').val(data.info.presentWords.days);
        }
        if (data.info.hasOwnProperty('groupWords')) {
          jQuery('#group_words').val(data.info.groupWords);
        }
        /*if (data.info.hasOwnProperty('chartType')) {
          jQuery('#chart_type').val(data.info.chartType).change();
        }*/
        if (data.info.hasOwnProperty('wordsNames')) {
          jQuery('#words_names').val(stripslashes(data.info.wordsNames));
        }
        if (data.info.hasOwnProperty('colors')) {
          jQuery('#colors').val(data.info.colors);
        }
        if (data.info.hasOwnProperty('dbDataSource')) {
          jQuery('#db_data_source').val(data.info.dbDataSource);
        }
        if (data.info.hasOwnProperty('showLegendWords')) {
          jQuery('#show_legend_words').prop('checked', data.info.showLegendWords);
        }
        if (data.info.hasOwnProperty('mergeSimilarWords')) {
          jQuery('#merge_similar_words').prop('checked', data.info.mergeSimilarWords);
        }
        if (data.info.hasOwnProperty('dataValues')) {
          jQuery('#data_values').val(data.info.dataValues);
        }
        if (data.info.hasOwnProperty('dataAveraging')) {
          jQuery('#data_averaging').val(data.info.dataAveraging);
        }
        
        // old place - test variant change place!!!
    }
    if (!notShowChart) {
      jQuery.getJSON(getApiUrlByOptions(), function (data) {
          fillSearchForm(data);
          chartOptions = getChartOptions(data);
          createChart(chartOptions);
      });
    } else {
      jQuery(timeLineMainContainer).find('#spinner1').hide();
    }
    function afterGraphLoad(data) {
      // remove blue line from scrollbar (commented it - deprecated?)
      //jQuery('.highcharts-series.highcharts-series-' + data.data.length).remove();
      
      jQuery(timeLineMainContainer).find('#spinner1').hide();
      //jQuery('#copy_share_link_container').show();
      chart = jQuery(timeLineContainer).highcharts();

      var menuItems = {
          textKey: 'exportKey',
          onclick: function() {
            /*if (!data.data.length) {
             return false;
            }*/
            var blob = new Blob([JSON.stringify(data.data)], {
                //type: 'text/plain;charset=us-ascii;',
                type: 'text/json;charset=utf-8;'
            });
            saveAs(blob, data.info.title + '.json');
          }
      };
      if (isChartLoadedFirstTime) {
        var height = jQuery(window).height();
        if (isMobile()) {
        } else {
          //height -= 200;
        }
        if (height > 0) {
          chart.setSize(
            jQuery(timeLineContainer).width(),
            height, false
          );
        }
        isChartLoadedFirstTime = false;
      }
      chart.options.exporting.buttons.contextButton.menuItems[5] = menuItems;
      var legendWordsChecked = jQuery('#show_legend_words').prop('checked');
      if (legendWordsChecked) {
          jQuery(chart.series).each(function() {
              this.setVisible(false, false);
          });
      } else {
          jQuery(chart.series).each(function() {
              this.setVisible(true, false);
          });
      }
      if (queryParams.hasOwnProperty('shareUrl')) {
        if (data.info.hasOwnProperty('legendWordsNotVisibleList') && data.info.legendWordsNotVisibleList.length) {
          jQuery(chart.series).each(function(i) {
              if (jQuery.inArray(this.name, data.info.legendWordsNotVisibleList) != -1) {
                this.setVisible(false, false);
              }
          });
        }
      }
    }
    jQuery('#apply').on('click', function() {
      extraSeries = [];
      jQuery(timeLineTitleContainer).html('');
      jQuery(timeLineContainer).hide();
      jQuery(timeLineMainContainer).find('#spinner1').show();
      //jQuery('#copy_share_link_container').hide();
      jQuery.getJSON(getApiUrlByOptions(), function (data) {
          //jQuery(timeLineMainContainer).find('#spinner1').hide();
          //chart.series[0].setData(data);
          //chart.redraw();
        //   jQuery(timeLineContainer).empty();
          fillSearchForm(data);
          chartOptions = getChartOptions(data);
          createChart(chartOptions);
      });
      //topWordsWidget();
      //mapWidget();
    });
    /*jQuery('#copy_share_link').on('click', function() {
      var shareLink =
        document.location.origin +
        document.location.pathname +
        '?shareUrl=' +
        encodeURIComponent(
          getApiUrlByOptions()
        );
      window.prompt(
          'Copy to clipboard: Ctrl+C, Enter',
          shareLink
      );
    });*/
    function getDefsPatterns(count) {
      var patternsList = [
          'M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11', // inclined lines left
          'M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9',  // inclined lines right
          'M 3 3 L 8 3 L 8 8 L 3 8 Z', // square
          'M 2 5 L 5 2 L 8 5 L 5 8 Z', // rhomb
          'M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0', // circle (points)
          'M 0 3 L 10 3 M 0 8 L 10 8', // horizontal lines
          'M 3 0 L 3 10 M 8 0 L 8 10', // vertical lines
      ];
      patternsList = replicateArray(patternsList, count);
      var i2 = 0,
          i3 = 0,
          colorsListPatternLen = colorsListPattern.length,
          patterns = [],
          patternRotate = 0;
      jQuery.each(patternsList, function (i) {
          for (i2 = 0; i2 < colorsListPatternLen; i2++) {
              if (i <= 1) {
                var pattern = patternsList[patternRotate];
                patternRotate = Number(!patternRotate);
              } else {
                var pattern = patternsList[i];
              }
              var patternId = 'highcharts-default-pattern-' + i3;
              patterns.push({
                  'id': patternId,
                  'path': {
                    d: pattern,
                    stroke: colorsListPattern[i2],
                    strokeWidth: 5
                  }
              });
              i3++;
          }
      });
      return patterns;
    }
    function replicateArray(array, n) {
      var arrays = Array.apply(null, new Array(n));
      arrays = arrays.map(function() { return array });
      return [].concat.apply([], arrays);
    }
    // TODO: 
    /*jQuery('#chart_type').on('change', function() {
      if (jQuery(this).val() == 'type3' || jQuery(this).val() == 'type4' || jQuery(this).val() == 'type5') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(4).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
      } else {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(1).prop('disabled', true);
        jQuery('#data_values').val('percentage');
        jQuery('#data_averaging').prop('disabled', true);
      }
    });*/
    jQuery('#chart_type').on('change', function() {
      if (jQuery(this).val() == 'type7') {
        //jQuery('#present_words_type').find('option[value="trends_any"]').attr('selected', 'selected');
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#present_words_type').val('trends_any').change();
      } else if (jQuery(this).val() == 'type6') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#count').val(20);
        jQuery('#line_width').val(15).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
      } else if (jQuery(this).val() == 'type4' || 
          jQuery(this).val() == 'type5') {
        jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');
        jQuery('#line_width').val(4).prop('disabled', false);
        jQuery('#data_values').val('original');
        jQuery('#data_averaging').prop('disabled', false);
        jQuery('#present_words_type').val(0);
      } else {
        jQuery('#present_words_type').val(0);
        jQuery('#order_field').val('name');
        jQuery('#order_direction').val('asc');
        jQuery('#line_width').val(1).prop('disabled', true);
        jQuery('#data_values').val('percentage');
        jQuery('#data_averaging').prop('disabled', true);
      }
    });
    function changeChartType(charType) {
    //   var charType = charType || 'area';
      var charType = charType || 'type3';
      jQuery('#chart_type').val(charType).change();
      jQuery('#apply').click();
    }
    function changeChartDays(daysFrom, daysTo) {
      jQuery('#count_words_min').val('');
      jQuery('#date_from').val('');
      jQuery('#date_to').val('');
      jQuery('#date_from_modify').val(daysFrom);
      jQuery('#date_to_modify').val(daysTo);
      jQuery('#apply').click();
    }
    function mapWidget() {
      if (notShowMap) {
        return false;
      }
      drawMap();
    }
    function topWordsWidget() {
      if (notShowPopWords) {
        return false;
      }
      drawTopWords();
      /*jQuery(topWordsContainer).html('');
      jQuery.ajax({
          url: '/wp-admin/admin-ajax.php?action=topWordsAPI2',
          method: 'post',
          data: {apiUrl: encodeURIComponent(getApiUrlByOptions())},
          success: function (data) {
              if (!data) {
                return false;
              }
              jQuery(topWordsContainer).html(data);
              drawTopWords();
          }
      });*/
    }
    function chosenSpansInit() {
      var chosenSpans = jQuery('.chosen-container').find('span');
      jQuery.each(chosenSpans, function(i) {
        jQuery(chosenSpans[i]).css('font-weight', '');
        var isChoosen = jQuery(chosenSpans[i]).data('chosen');
        if (isChoosen) {
          return;
        }
        jQuery(chosenSpans[i]).data('chosen', true);
        jQuery(chosenSpans[i]).spectrum({
          showPalette: true,
          showInput: false,
          move: function(color) {
              var color = color.toHexString();
              jQuery(chosenSpans[i])
                .css('color', color)
                .data('color', color);
          },
          change: function(color) {
              var color = color.toHexString();
              jQuery(chosenSpans[i]).data('colorOld', color);
          }
          //hideAfterPaletteSelect:true,
          //allowEmpty:true
        });
        jQuery('.sp-container .sp-cancel').on('click', function() {
          var chosenSpans = jQuery('.chosen-container').find('span');
          jQuery.each(chosenSpans, function(i) {
            if (jQuery(chosenSpans[i]).css('font-weight') == 'bold') {
              var colorOld = jQuery(chosenSpans[i]).data('colorOld');
              if (typeof colorOld == 'undefined') {
                colorOld = '#000000';
              }
              jQuery(chosenSpans[i])
                .data('color', colorOld)
                .css('color', colorOld);
              return false;
            }
          });
        });
        jQuery(chosenSpans[i]).on('click', function() {
          var chosenSpans2 = jQuery('.chosen-container').find('span');
          jQuery.each(chosenSpans2, function(i2) {
            jQuery(chosenSpans2[i2]).css('font-weight', '');
          });
          jQuery(chosenSpans[i]).css('font-weight', 'bold');
          jQuery(chosenSpans[i]).spectrum('show');
        });
      });
    }
    function isMobile() {
      try{ document.createEvent("TouchEvent"); return true; }
      catch(e){ return false; }
    }
    //topWordsWidget();
    //mapWidget();
    function stripslashes(str) {
      str = str.replace(/\'/g, "'");
      str = str.replace(/\"/g, '"');
      str = str.replace(/\\/g, "");
      return str;
    }
    jQuery('#present_words_type').on('change', function() {
      if (jQuery(this).val() == 'trends_any') {
        /*jQuery('#order_field').val('name');
        jQuery('#order_direction').val('asc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'trends_grow') {
        /*jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('asc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'trends_fade') {
        /*jQuery('#order_field').val('indicatorValue');
        jQuery('#order_direction').val('desc');*/
        jQuery('#data_values').val('original');
        jQuery('#count_words_min').val('').change();
        jQuery('#chart_type').val('type7');
      } else if (jQuery(this).val() == 'regular' || jQuery(this).val() == 'irregular') {
        jQuery('#present_words_days_container').show();
      } else {
        jQuery('#present_words_days_container').hide();
      }
       jQuery('#present_words_days').val('');
    });
    jQuery('#countFieldName').on('change', function() {
      var countFieldNameValue = jQuery(this).val();
      if (countFieldNameValue == 'Sentiment') {
        jQuery('#chart_type').val('type2')/*.change()*/;
        jQuery('#count_words_min').val('-10');
        jQuery('#data_values').val('original');
      }

      /*var orderDirection = jQuery('#order_field').val();
      if (orderDirection.indexOf('count') != -1) {
        switch (countFieldNameValue) {
          case 'SimilarityRate':
          case 'Sentiment':
            var orderDirectionValue = 'countMax';
            break;
          default:
            var orderDirectionValue = 'indicatorValue';
        }
        jQuery('#order_field').val(orderDirectionValue);
      }*/

      /*if (jQuery(this).val() == 'Count') {
        jQuery('.count_words_title').html('Frequency');
        jQuery('#count_words_min').val('');
      } else if (jQuery(this).val() == 'SimilarityRate') {
        jQuery('.count_words_title').html('Similarity');
        jQuery('#count_words_min').val('');
      }*/
    });
    jQuery('#top_words').on('click', function(i) {
      //if (jQuery('#top_words').prop('checked')) {
      jQuery('#count_words_min').val('');
      jQuery('#count_words_max').val('');
      //}
    });
    /*jQuery('#myModal').on('shown.bs.modal', function () {
      jQuery('#words', this).chosen({width: "100%"});
    });*/
});
function searchWord(name, color) {
  var color = color || '#FF0000';
  jQuery('#date_from').val('');
  jQuery('#date_to').val('');
  jQuery('#date_from_modify').val('-29days');
  jQuery('#words_names').val('^' + name + '$');
  jQuery('#count_words_min').val(0);
  jQuery('#data_values').val('original');
  var wordsContainer = jQuery('#words');
  jQuery(wordsContainer)
    .find('option[value="' + name + '"]')
    .attr('selected', 'selected');
  jQuery(wordsContainer).trigger('chosen:updated');
  var spans = jQuery('.chosen-container').find('span');
  if (spans.length) {
    jQuery(jQuery(spans)[0]).data('color', color);
  }
  jQuery('#apply').click();
}
</script>
<!-- Latest compiled and minified CSS -->
<!--link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"-->
<!-- Optional theme -->
<!--link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"-->
<!-- Latest compiled and minified JavaScript -->
<!--script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script-->
<!--link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script-->
<!-- Trigger the modal with a button -->

<div id="prompt_container"></div>
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" id="my_modal" style="display:none" onclick="jQuery('#myModal').appendTo('body')">Open Modal</button>
<div id="myModal" class="modal fade" role="dialog" tabindex='-1'>
  <div class="modal-dialog modal-lg">

    <!-- Modal content-->
    <div class="modal-content">

      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Options</h4>
      </div>

      <div class="modal-body">

        <div class="row">
          <div class="col-md-12">

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

              <div class="col-md-3">
              &nbsp;
              </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
            <div class="form-group" title="Defines dates range to select data for correspondent period">
                <label for="date_from">Date from:</label>
                <input type="text" class="form-control" id="date_from" value="">
                <input type="hidden" class="form-control" id="date_from_modify" value="">
                <input type="hidden" class="form-control" id="date_to_modify" value="">
            </div>
            </div>

            <div class="col-md-3" title="Defines dates range to select data for correspondent period">
            <div class="form-group">
                <label for="date_to">Date to:</label>
                <input type="text" class="form-control" id="date_to" value="">
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Defines a way of filling areas on chart">
                <label for="colors">Filling schema:</label>
                <select class="form-control" id="colors">
                  <option value="custom" selected>Colors custom</option>
                  <option value="standart">Colors standard</option>
                  <option value="colorPatternFill">Colors + patterns</option>
                  <option value="patternFill">Patterns</option>
                </select>
            </div>
                <!--div class="form-group" title="Defines a source of data collected and merged as unique for correspondent time period">
                <label for="db_data_source">Data period:</label>
                <select class="form-control" id="db_data_source">
                  <option value="6h">6h</option>
                  <option value="12h">12h</option>
                  <option value="24h">24h</option>
                </select>
                </div-->
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Define type of visual chart representation">
                <label for="chart_type">Chart type:</label>
                <select class="form-control" id="chart_type">
                  <option value="type2">Bar basic</option>
                  <option value="type3">Bar stacked</option>
                  <option value="type1">Area stacked</option>
                  <option value="type4">Line</option>
                  <option value="type5">Line spline</option>
                  <option value="type6">Gantt</option>
                  <option value="type7">Linear Regression</option>
                </select>
              </div>
            <!--div class="form-group" title="Define a mode of terms words expansion, if Yes - shorten terms will be expanded to more wide that contains short as a parts">
              <label for="group_words">Unify terms:</label>
              <select class="form-control" id="group_words">
                <option value="group">Yes</option>
                <option value="notGroup">No</option>
              </select>
            </div-->
            </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-6">
              <div class="form-group well well-sm">
                <strong>TW:</strong>
                &nbsp;<input type="checkbox" id="social_tw_posts" value="0" checked="checked">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_tw_reposts" value="0" checked="checked">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_tw_likes" value="0" checked="checked">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_tw_sentiment" value="0" checked="checked">&nbsp;Sentiment
              </div>
            </div>

            <div class="col-md-6">
              <div class="form-group well well-sm">
                <strong>FB:</strong>
                &nbsp;<input type="checkbox" id="social_fb_posts" value="0" checked="checked">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_fb_reposts" value="0" checked="checked">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_fb_likes" value="0" checked="checked">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_fb_sentiment" value="0" checked="checked">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div>

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <div class="form-group well well-sm">
                <strong>FB:</strong>
                &nbsp;<input type="checkbox" id="social_fb_posts" value="0">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_fb_reposts" value="0">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_fb_likes" value="0">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_fb_sentiment" value="0">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div>

        <div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <div class="form-group well well-sm">
                <strong>GPlus:</strong>
                &nbsp;<input type="checkbox" id="social_gplus_posts" value="0">&nbsp;Posts
                &nbsp;<input type="checkbox" id="social_gplus_reposts" value="0">&nbsp;Reposts
                &nbsp;<input type="checkbox" id="social_gplus_likes" value="0">&nbsp;Likes
                &nbsp;<input type="checkbox" id="social_gplus_sentiment" value="0">&nbsp;Sentiment
              </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
            <div class="form-group" title="Defines maximum terms number to display, if Frequency min/max is empty - selects top terms by frequency of match in matched articles">
              <label for="count">Max. terms:</label>
                <input type="text" class="form-control" id="count" value=50>
            </div>
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Defines a data order direction">
              <label for="order_field">Order by:</label>
              <select class="form-control" id="order_field">
                <option value="date">Date</option>
                <option value="name">Name</option>
                <option value="indicatorValue">Count</option>
              </select>
            </div>
            </div>

            <div class="col-md-3">
            <div class="form-group" title="Defines a data order direction">
              <label for="order_direction">Order direction:</label>
              <select class="form-control" id="order_direction">
                <option value="asc">ASC</option>
                <option value="desc">DESC</option>
              </select>
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Define type of visual chart representation">
                <label for="chart_type">Chart type:</label>
                <select class="form-control" id="chart_type">
                  <option value="type2">Bar basic</option>
                  <option value="type3">Bar stacked</option>
                  <option value="type1">Area stacked</option>
                  <option value="type4">Line</option>
                  <option value="type5">Line spline</option>
                  <option value="type6">Gantt</option>
                  <option value="type7">Linear Regression</option>
                </select>
                </div>
            </div>

            </div>
          </div-->

          <!--div class="row">
            <div class="col-md-12">
            <div class="col-md-3">
            <div class="form-group" title="Use 'Frequency (Count)' or 'Max similarity rate (Similarity Rate)'">
              <label for="countFieldName">Indicator:</label>
                <select class="form-control" id="countFieldName">
                  <option value="Count">Frequency</option>
                  <option value="SimilarityRate">Max similarity rate</option>
                  <option value="Sentiment">Sentiment rate</option>
                  <option value="ArticlesUnique">Articles count (unique)</option>
                  <option value="Articles">Articles count (not unique)</option>
                  <option value="SocialTWPosts">TW posts</option>
                  <option value="SocialTWReposts">TW reposts</option>
                  <option value="SocialTWLikes">TW likes</option>
                  <option value="SocialTWSentiment">TW sentiment</option>
                  <option value="SocialFBPosts">FB posts</option>
                  <option value="SocialFBReposts">FB reposts</option>
                  <option value="SocialFBLikes">FB likes</option>
                  <option value="SocialFBSentiment">FB sentiment</option>
                  <option value="SocialGPlusPosts">G+ posts</option>
                  <option value="SocialGPlusReposts">G+ reposts</option>
                  <option value="SocialGPlusLikes">G+ likes</option>
                  <option value="SocialGPlusSentiment">G+ sentiment</option>
                </select>
            </div>
            </div>
            <div class="col-md-3">
            <div class="form-group" title="Defines a frequencies range to select data. If empty - the top terms by Max. terms limit will be selected">
              <label for="count_words_min">Min:</label>
                <input type="text" class="form-control" id="count_words_min" value="">
            </div>
            </div>
            <div class="col-md-3">
            <div class="form-group" title="Defines a frequencies range to select data. If empty - the top terms by Max. terms limit will be selected">
              <label for="count_words_max">Max:</label>
                <input type="text" class="form-control" id="count_words_max" value="">
            </div>
            </div>

            <div class="col-md-3">
                <div class="form-group" title="Defines a way of filling areas on chart">
                <label for="colors">Filling schema:</label>
                <select class="form-control" id="colors">
                  <option value="custom" selected>Colors custom</option>
                  <option value="standart">Colors standard</option>
                  <option value="colorPatternFill">Colors + patterns</option>
                  <option value="patternFill">Patterns</option>
                </select>
                </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-3">
                <div class="form-group">
                <label for="data_values">Data values:</label>
                <select class="form-control" id="data_values">
                  <option value="percentage">Percentage</option>
                  <option value="original">Original</option>
                </select>
                </div>
            </div>

            <div class="col-md-3">
              <div class="form-group">
              <label for="line_width">Line width:</label>
              <input type="text" class="form-control" id="line_width" value=1 disabled="disabled">
              </div>
            </div>

            <div class="col-md-3">
              <div class="form-group">
              <label for="data_averaging">Data averaging:</label>
              <select class="form-control" id="data_averaging" disabled="disabled">
                <option value="0" selected>None</option>
                <option value="3">3 points</option>
                <option value="5">5 points</option>
              </select>
              </div>
            </div>

            <div class="col-md-3">
              <div class="form-group" title="If checked all terms on a chart and legend will be turned Off and can be one by one turned On by click on term's word in legend area">
                <div class="checkbox">
                  <label><input type="checkbox" id="show_legend_words">Off all terms</label>
                </div>
              </div>
            </div>

          </div>
        </div-->

        <!--div class="row">
        <div class="col-md-12">
          <div class="col-md-3">
            <div class="form-group" title="If checked - top words will be excluded">
              <div class="checkbox">
                <label><input type="checkbox" id="top_words">No top</label>
              </div>
            </div>
          </div>
          <div class="col-md-3">
            <div class="form-group" title="Regular - means include only appeared at each days for period specified; Irregular - means remove appeared at each days for period specified; Single per day - means may appeared many times in one day but once for current period; Single per period - means appeared once for current period; Single daily - means include only appeared at each days for current period">
              <label for="present_words_type">Occurring:</label>
              <select class="form-control" id="present_words_type">
                <option value="0" selected>None</option>
                <option value="regular">Regular</option>
                <option value="irregular">Irregular</option>
                <option value="single">Single per day</option>
                <option value="single_per_period">Single per period</option>
                <option value="single_daily">Single daily</option>
                <option value="trends_any">Trends any</option>
                <option value="trends_grow">Trends to grow</option>
                <option value="trends_fade">Trends to fade</option>
              </select>
            </div>
          </div>
          <div class="col-md-3">
            <div class="form-group" style="display:none" id="present_words_days_container" title="Number of days to use in Occurring filter to include or exclude some measurements">
                <label for="present_words_days">Period, days:</label>
                <input type="text" class="form-control" id="present_words_days" value="">
            </div>
          </div>
          <div class="col-md-3">
          
          </div>
        </div>
        </div>

        <div class="row" style="display:none">
          <div class="col-md-12">

              <div class="col-md-3">
              </div>

              <div class="col-md-3">
                  <div class="form-group">
                    <div class="checkbox">
                      <label><input type="checkbox" id="merge_similar_words">Merge similar terms</label>
                    </div>
                  </div>
              </div>

              <div class="col-md-3">
              </div>

              <div class="col-md-3">
              </div>

          </div>
        </div>

        <div class="row" style="display:none">
          <div class="col-md-12">

          <div class="col-md-3">
              <div class="form-group">
              <label for="debug">Debug:</label>
              <select class="form-control" id="debug">
                <option value=0>0</option>
                <option value=1>1</option>
              </select>
              </div>
          </div>

          </div>
        </div-->

        <div class="row">
          <div class="col-md-12">
            <!-- <script>
            function setStatesForSearch() {
              jQuery('#group_words').val('notGroup');
              jQuery('#words_names').val('^Alabama$,^Alaska$,^Arizona$,^Arkansas$,^California$,^Colorado$,^Connecticut$,^Delaware$,^Florida$,^Georgia$,^Hawaii$,^Idaho$,^Illinois$,^Indiana$,^Iowa$,^Kansas$,^Kentucky$,^Louisiana$,^Maine$,^Maryland$,^Massachusetts$,^Michigan$,^Minnesota$,^Mississippi$,^Missouri$,^Montana$,^Nebraska$,^Nevada$,^New Hampshire$,^New Jersey$,^New Mexico$,^New York$,^North Carolina$,^North Dakota$,^Ohio$,^Oklahoma$,^Oregon$,^Pennsylvania$,^Rhode Island$,^South Carolina$,^South Dakota$,^Tennessee$,^Texas$,^Utah$,^Vermont$,^Virginia$,^Washington$,^West Virginia$,^Wisconsin$,^Wyoming$');
            }
            </script> -->
            <div class="col-md-12">
              <div class="form-group" title="Enter csv RE of keywords list to match">
                <label for="words_names">Search URL:</label>
                <textarea rows="2" id="words_names" placeholder='http://***'></textarea>
              </div>
            </div>

          </div>
        </div>

        <!--div class="row">
          <div class="col-md-12">

            <div class="col-md-12">
              <select id="words2" multiple style="display:none">
              </select>
              <label for="words">Words list:</label>
              <select id="words" multiple data-placeholder="Select some words">
              </select>
            </div>


            <div id="words_colors_container">
            </div>

          </div>

          <div class="col-md-12">
            <div class="col-md-3" style="cursor: pointer" id="words_restore_all" title="Restore all words">
              Restore all <span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
            </div>
            <div class="col-md-3" style="cursor: pointer" id="words_clear_all" title="Clear all words">
              Clear all <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
            </div>
            <div class="col-md-3">&nbsp
            </div>
            <div class="col-md-3" style="float:right;text-align:right;cursor: pointer" id="words_colors_picker">
              
            </div>
          </div>

        </div-->

      </div>

      <input type="hidden" class="form-control" id="category" value="/">
      <input type="hidden" class="form-control" id="method" value="dataSocial">
      <input type="hidden" class="form-control" id="type" value="2">
      <input type="hidden" class="form-control" id="sortDataFix" value="">

      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal" id="apply">Apply</button>
      </div>

    </div>

  </div>
</div>
<!--DEBUG-spv-->{"id":703199,"date":"2017-09-25T10:26:44","date_gmt":"2017-09-25T08:26:44","guid":{"rendered":"http:\/\/nhub.news\/top-words-timeline-social\/"},"modified":"2017-09-25T10:26:44","modified_gmt":"2017-09-25T08:26:44","slug":"top-words-timeline-social","status":"publish","type":"page","link":"http:\/\/nhub.news\/fr\/top-words-timeline-social\/","title":{"rendered":"Top words timeline social"},"content":{"rendered":"\n<script>jQuery(function(){jQuery(\".vc_icon_element-icon\").css(\"top\", \"0px\");});<\/script><script>jQuery(function(){jQuery(\"#td_post_ranks\").css(\"height\", \"10px\");});<\/script><script>jQuery(function(){jQuery(\".td-post-content\").find(\"p\").find(\"img\").hide();});<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/pages\/703199"}],"collection":[{"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/comments?post=703199"}],"version-history":[{"count":0,"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/pages\/703199\/revisions"}],"wp:attachment":[{"href":"http:\/\/nhub.news\/fr\/wp-json\/wp\/v2\/media?parent=703199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}