1function rgb2hex(rgb) { 2 if (/^#[0-9A-F]{6}$/i.test(rgb)) return rgb; 3 4 rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 5 function hex(x) { 6 return ("0" + parseInt(x).toString(16)).slice(-2); 7 } 8 return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); 9} 10 11var graphActive = false 12 13var graphData; 14var graphAreaData; 15 16 17function renderGraphsJetDetail() { 18 if (!graphActive) { 19 20 $('#graph_line').each(function () { 21 $(this).css('display', 'block'); 22 23 var xAxis = $(this).attr('data-graph-x').split(";"); 24 var yValues = $(this).attr('data-graph-y').split(";"); 25 var yMax = 0; 26 var data = []; 27 var printGraph = false; 28 29 for (var i = 0; i < xAxis.length; i++) { 30 var newDataPoint = { 'x': xAxis[i] } 31 if (yValues[i]) { 32 newDataPoint['y'] = yValues[i]; 33 yMax = Math.max(yMax, yValues[i]); 34 } 35 data.push(newDataPoint); 36 } 37 38 var labels = [$(this).attr('data-label')]; 39 40 var labelAdditionalData = { 41 'titleX': $(this).attr('data-title-x'), 42 'titleY': $(this).attr('data-title-y'), 43 'measureX': $(this).attr('data-measure-x'), 44 'measureY': $(this).attr('data-measure-y'), 45 } 46 47 if (yMax > 9) { 48 var numLines = Math.ceil(yMax / 2) + 1; 49 } 50 else if (yMax > 1) { 51 var numLines = Math.ceil(yMax) + 1; 52 } 53 else { 54 var numLines = 5; 55 } 56 57 new Morris.Line({ 58 element: 'graph_line', // ID of the element in which to draw the chart. 59 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 60 xkey: 'x', // The name of the data record attribute that contains x-values. 61 ykeys: ['y'], // A list of names of data record attributes that contain y-values. 62 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 63 parseTime: false, 64 ymax: Math.ceil(yMax), 65 postUnits: ' l/min', 66 ymin: 0, 67 hideHover: true, 68 labelAdditionalData: labelAdditionalData, 69 70 numLines: numLines, 71 72 yLabelFormat: function (y) { 73 if (typeof y !== 'undefined') { 74 if (yMax > 1) { 75 return Math.round(y); 76 } 77 return (Math.round(y * 100)/100).toFixed(2); 78 } 79 }, 80 hoverCallback: function (index, options, content, row) { 81 if (typeof row.y !== 'undefined') { 82 83 var html = '<p>' + options.labelAdditionalData.titleX + ': ' + row.x + ' ' + options.labelAdditionalData.measureX + '</p>'; 84 85 html += '<p><strong>' + options.labelAdditionalData.titleY + ': ' + row.y + ' ' + options.labelAdditionalData.measureY + '</strong></p>'; 86 } 87 return html; 88 } 89 }); 90 }); 91 92 $('#graph_area').each(function () { 93 $(this).css('display', 'block'); 94 var xAxis = $(this).attr('data-graph-x').split(";"); 95 var yValuesMin = $(this).attr('data-graph-y-min').split(";"); 96 var yValuesMax = $(this).attr('data-graph-y-max').split(";"); 97 var yMax = 0; 98 var data = []; 99 var printGraph = false; 100 101 for (var i = 0; i < xAxis.length; i++) { 102 var newDataPoint = { 'x': xAxis[i] } 103 if (yValuesMin[i]) { 104 newDataPoint['yMin'] = yValuesMin[i]; 105 yMax = Math.max(yMax, yValuesMin[i]); 106 } 107 if (yValuesMax[i]) { 108 newDataPoint['yMax'] = yValuesMax[i]; 109 yMax = Math.max(yMax, yValuesMax[i]); 110 } 111 data.push(newDataPoint); 112 } 113 114 var labels = [$(this).attr('data-label')]; 115 116 var labelAdditionalData = { 117 'titleY': $(this).attr('data-title-y'), 118 'titleYmin': $(this).attr('data-title-y-min'), 119 'titleYmax': $(this).attr('data-title-y-max'), 120 'measureX': $(this).attr('data-measure-x'), 121 'measureY': $(this).attr('data-measure-y') 122 }; 123 124 if (yMax > 9) { 125 var numLines = Math.ceil(yMax / 2) + 1; 126 } 127 else if (yMax > 1) { 128 var numLines = Math.ceil(yMax) + 1; 129 } 130 else { 131 var numLines = 5; 132 } 133 134 new Morris.Area({ 135 element: 'graph_area', // ID of the element in which to draw the chart. 136 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 137 xkey: 'x', // The name of the data record attribute that contains x-values. 138 ykeys: ['yMax', 'yMin'], // A list of names of data record attributes that contain y-values. 139 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 140 parseTime: false, 141 ymax: Math.ceil(yMax), 142 numLines: numLines, 143 postUnits: ' l/min', 144 ymin: 0, 145 hideHover: true, 146 behaveLikeLine: true, 147 148 fillOpacity: 1, 149 labelAdditionalData: labelAdditionalData, 150 lineColors: ["#0b62a4", '#000000'], 151 pointFillColors: ["#0b62a4", "#0b62a4"], 152 153 yLabelFormat: function (y) { 154 if (typeof y !== 'undefined') { 155 if (yMax > 1) { 156 return Math.round(y); 157 } 158 return (Math.round(y * 100)/100).toFixed(2); 159 } 160 }, 161 hoverCallback: function (index, options, content, row) { 162 163 if (typeof row.yMax !== 'undefined' || typeof row.yMin !== 'undefined') { 164 var html = '<p><strong>' + options.labelAdditionalData.titleY + ' ' + row.x + ' ' + options.labelAdditionalData.measureX + '</strong></p>'; 165 166 } 167 168 if (typeof row.yMax !== 'undefined') { 169 html += '<p>' + options.labelAdditionalData.titleYmax + ': ' + row.yMax + ' ' + options.labelAdditionalData.measureY + '</p>'; 170 } 171 172 if (typeof row.yMin !== 'undefined') { 173 html += '<p>' + options.labelAdditionalData.titleYmin + ': ' + row.yMin + ' ' + options.labelAdditionalData.measureY + '</p>'; 174 } 175 176 return html; 177 } 178 }); 179 180 181 $('path[fill="#000000"]').attr('fill', $('#graph_area').parents('.products-tech-full').css('background-color')); 182 $('path[stroke="#000000"]').attr('stroke', '#0b62a4'); 183 184 185 $('#graph_area path[stroke="#aaaaaa"]').each(function () { 186 $(this).parent().append(this); 187 }); 188 189 }); 190 191 graphActive = true; 192 193 } 194} 195 196 197 198function renderGraphs() { 199 for (graph in graphData.graphs) { 200 201 //var yMax = Math.max( graphData.yMax, graphAreaData.yMax ); 202 var yMax = 0; 203 for (key in graphData.graphs[graph].data) { 204 var arr = graphData.graphs[graph].data[key]; 205 if ( parseFloat( arr['y'] ) > yMax) { 206 yMax = parseFloat( arr['y'] ); 207 } 208 } 209 210 if (yMax > 9) { 211 var numLines = Math.ceil(yMax / 2) + 1; 212 } 213 else if (yMax > 1) { 214 var numLines = Math.ceil(yMax) + 1; 215 } 216 else { 217 var numLines = 5; 218 } 219 220 new Morris.Line({ 221 element: graph, // ID of the element in which to draw the chart. 222 data: graphData.graphs[graph].data, // Chart data records -- each entry in this array corresponds to a point on the chart. 223 xkey: 'x', // The name of the data record attribute that contains x-values. 224 ykeys: ['y'], // A list of names of data record attributes that contain y-values. 225 labels: graphData.graphs[graph].labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 226 parseTime: false, 227 ymax: Math.ceil(yMax), 228 numLines: numLines, 229 postUnits: ' l/min', 230 ymin: 0, 231 hideHover: true, 232 labelAdditionalData: graphData.graphs[graph].labelAdditionalData, 233 234 yLabelFormat: function (y) { 235 if (typeof y !== 'undefined') { 236 if (yMax > 1) { 237 return Math.round(y); 238 } 239 return (Math.round(y * 100)/100).toFixed(2); 240 } 241 }, 242 hoverCallback: function (index, options, content, row) { 243 if (typeof row.y !== 'undefined') { 244 var html = '<p>' + options.labelAdditionalData.titleX + ': ' + row.x + ' ' + options.labelAdditionalData.measureX + '</p>'; 245 html += '<p><strong>' + options.labelAdditionalData.titleY + ': ' + row.y + ' ' + options.labelAdditionalData.measureY + '</strong></p>'; 246 } 247 return html; 248 } 249 }); 250 251 delete graphData.graphs[graph]; 252 } 253 254 255 for (graph in graphAreaData.graphs) { 256 257 var yMax = 0; 258 for (key in graphAreaData.graphs[graph].data) { 259 var arr = graphAreaData.graphs[graph].data[key]; 260 if ( parseFloat( arr['yMax'] ) > yMax) { 261 yMax = parseFloat( arr['yMax'] ); 262 } 263 } 264 //var yMax = Math.max( graphData.yMax, graphAreaData.yMax ); 265 266 //var yMax = graphAreaData.yMax; 267 268 if (yMax > 9) { 269 var numLines = Math.ceil(yMax / 2) + 1; 270 } 271 else if (yMax > 1) { 272 var numLines = Math.ceil(yMax) + 1; 273 } 274 else { 275 var numLines = 5; 276 } 277 278 new Morris.Area({ 279 element: graph, // ID of the element in which to draw the chart. 280 data: graphAreaData.graphs[graph].data, // Chart data records -- each entry in this array corresponds to a point on the chart. 281 xkey: 'x', // The name of the data record attribute that contains x-values. 282 ykeys: ['yMax', 'yMin'], // A list of names of data record attributes that contain y-values. 283 labels: graphAreaData.graphs[graph].labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 284 parseTime: false, 285 ymax: Math.ceil(yMax), 286 postUnits: ' l/min', 287 ymin: 0, 288 hideHover: true, 289 behaveLikeLine: true, 290 numLines: numLines, 291 fillOpacity: 1, 292 labelAdditionalData: graphAreaData.graphs[graph].labelAdditionalData, 293 294 295 lineColors: ["#0b62a4", '#000000'], 296 297 pointFillColors: ["#0b62a4", "#0b62a4"], 298 299 yLabelFormat: function (y) { 300 if (typeof y !== 'undefined') { 301 if (yMax > 1) { 302 return Math.round(y); 303 } 304 return (Math.round(y * 100)/100).toFixed(2); 305 } 306 }, 307 hoverCallback: function (index, options, content, row) { 308 309 if (typeof row.yMax !== 'undefined' || typeof row.yMin !== 'undefined') { 310 var html = '<p><strong>' + options.labelAdditionalData.titleY + ' ' + row.x + ' ' + options.labelAdditionalData.measureX + '</strong></p>'; 311 312 } 313 314 if (typeof row.yMax !== 'undefined') { 315 html += '<p>' + options.labelAdditionalData.titleYmax + ': ' + row.yMax + ' ' + options.labelAdditionalData.measureY + '</p>'; 316 } 317 318 if (typeof row.yMin !== 'undefined') { 319 html += '<p>' + options.labelAdditionalData.titleYmin + ': ' + row.yMin + ' ' + options.labelAdditionalData.measureY + '</p>'; 320 } 321 322 return html; 323 } 324 }); 325 326 327 $('path[fill="#000000"]').attr('fill', $('#' + graph).parents('[data-duese]').css('background-color')); 328 $('path[stroke="#000000"]').attr('stroke', '#0b62a4'); 329 330 331 $('#' + graph + ' path[stroke="#aaaaaa"]').each(function () { 332 $(this).parent().append(this); 333 }); 334 335 336 delete graphAreaData.graphs[graph]; 337 } 338} 339 340 341 342 343 344$(document).ready(function () { 345 346 347 348 349 350 351 352 353 354 355 356 357 $('[data-toggle]').click(function () { 358 var toggleObject = $('#' + $(this).attr('data-toggle')); 359 if (toggleObject.hasClass('active')) { 360 toggleObject.removeClass('active'); 361 } else { 362 toggleObject.addClass('active'); 363 } 364 }); 365 366 367 368 369 $('[data-enlarge-graph-detail]').click(function () { 370 371 372 $('body').append('<div class="graph-overlay"><div class="graph-large"><div class="graph-title">' + $(this).parent().find('.graph-title').text() + '</div><a class="close-graph-overlay" data-close-graph></a><div id="graph-large" class="large"></div></div></div>'); 373 374 if ($(this).attr('data-enlarge-graph-detail') == 'line') { 375 376 377 var xAxis = $('#graph_line').attr('data-graph-x').split(";"); 378 var yValues = $('#graph_line').attr('data-graph-y').split(";"); 379 380 var yMax = 0; 381 382 var data = []; 383 var printGraph = false;
384 385 for (var i = 0; i < xAxis.length; i++) { 386 387 var newDataPoint = { 'x': xAxis[i] } 388 389 if (yValues[i]) { 390 newDataPoint['y'] = yValues[i]; 391 yMax = Math.max(yMax, yValues[i]); 392 } 393 394 data.push(newDataPoint); 395 } 396 397 var labels = [$('#graph_line').attr('data-label')]; 398 399 var labelAdditionalData = { 400 'titleX': $('#graph_line').attr('data-title-x'), 401 'titleY': $('#graph_line').attr('data-title-y'), 402 'measureX': $('#graph_line').attr('data-measure-x'), 403 'measureY': $('#graph_line').attr('data-measure-y'), 404 } 405 406 if (yMax > 9) { 407 var numLines = Math.ceil(yMax / 2) + 1; 408 } 409 else if (yMax > 1) { 410 var numLines = Math.ceil(yMax) + 1; 411 } 412 else { 413 var numLines = 5; 414 } 415 416 new Morris.Line({ 417 element: 'graph-large', // ID of the element in which to draw the chart. 418 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 419 xkey: 'x', // The name of the data record attribute that contains x-values. 420 ykeys: ['y'], // A list of names of data record attributes that contain y-values. 421 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 422 parseTime: false, 423 ymax: Math.ceil(yMax), 424 postUnits: ' l/min', 425 ymin: 0, 426 hideHover: true, 427 labelAdditionalData: labelAdditionalData, 428 numLines: numLines, 429 yLabelFormat: function (y) { 430 if (typeof y !== 'undefined') { 431 if (yMax > 1) { 432 return Math.round(y); 433 } 434 return (Math.round(y * 100)/100).toFixed(2); 435 } 436 }, 437 hoverCallback: function (index, options, content, row) { 438 if (typeof row.y !== 'undefined') { 439 440 var html = '<p>' + options.labelAdditionalData.titleX + ': ' + row.x + ' ' + options.labelAdditionalData.measureX + '</p>'; 441 442 html += '<p><strong>' + options.labelAdditionalData.titleY + ': ' + row.y + ' ' + options.labelAdditionalData.measureY + '</strong></p>'; 443 } 444 return html; 445 } 446 }); 447 448 449 } else { 450 451 $('#graph_area').css('display', 'block'); 452 var xAxis = $('#graph_area').attr('data-graph-x').split(";"); 453 454 var yValuesMin = $('#graph_area').attr('data-graph-y-min').split(";"); 455 var yValuesMax = $('#graph_area').attr('data-graph-y-max').split(";"); 456 457 var yMax = 0; 458 459 var data = []; 460 var printGraph = false; 461 462 for (var i = 0; i < xAxis.length; i++) { 463 464 var newDataPoint = { 'x': xAxis[i] } 465 466 if (yValuesMin[i]) { 467 newDataPoint['yMin'] = yValuesMin[i]; 468 yMax = Math.max(yMax, yValuesMin[i]); 469 } 470 471 472 if (yValuesMax[i]) { 473 newDataPoint['yMax'] = yValuesMax[i]; 474 yMax = Math.max(yMax, yValuesMax[i]); 475 } 476 477 data.push(newDataPoint); 478 479 } 480 481 var labels = [$('#graph_area').attr('data-label')]; 482 483 var labelAdditionalData = { 484 'titleY': $('#graph_area').attr('data-title-y'), 485 'titleYmin': $('#graph_area').attr('data-title-y-min'), 486 'titleYmax': $('#graph_area').attr('data-title-y-max'), 487 'measureX': $('#graph_area').attr('data-measure-x'), 488 'measureY': $('#graph_area').attr('data-measure-y') 489 }; 490 491 if (yMax > 9) { 492 var numLines = Math.ceil(yMax / 2) + 1; 493 } 494 else if (yMax > 1) { 495 var numLines = Math.ceil(yMax) + 1; 496 } 497 else { 498 var numLines = 5; 499 } 500 501 new Morris.Area({ 502 element: 'graph-large', // ID of the element in which to draw the chart. 503 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 504 xkey: 'x', // The name of the data record attribute that contains x-values. 505 ykeys: ['yMax', 'yMin'], // A list of names of data record attributes that contain y-values. 506 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 507 parseTime: false, 508 ymax: Math.ceil(yMax), 509 postUnits: ' l/min', 510 ymin: 0, 511 hideHover: true, 512 behaveLikeLine: true, 513 numLines: numLines, 514 fillOpacity: 1, 515 labelAdditionalData: labelAdditionalData, 516 lineColors: ["#0b62a4", '#000000'], 517 pointFillColors: ["#0b62a4", "#0b62a4"], 518 519 yLabelFormat: function (y) { 520 if (typeof y !== 'undefined') { 521 if (yMax > 1) { 522 return Math.round(y); 523 } 524 return (Math.round(y * 100)/100).toFixed(2); 525 } 526 }, 527 hoverCallback: function (index, options, content, row) { 528 529 if (typeof row.yMax !== 'undefined' || typeof row.yMin !== 'undefined') { 530 var html = '<p><strong>' + options.labelAdditionalData.titleY + ' ' + row.x + ' ' + options.labelAdditionalData.measureX + '</strong></p>'; 531 532 } 533 534 if (typeof row.yMax !== 'undefined') { 535 html += '<p>' + options.labelAdditionalData.titleYmax + ': ' + row.yMax + ' ' + options.labelAdditionalData.measureY + '</p>'; 536 } 537 538 if (typeof row.yMin !== 'undefined') { 539 html += '<p>' + options.labelAdditionalData.titleYmin + ': ' + row.yMin + ' ' + options.labelAdditionalData.measureY + '</p>'; 540 } 541 542 return html; 543 } 544 }); 545 546 547 $('path[fill="#000000"]').attr('fill', $('#graph_area').parents('.products-tech-full').css('background-color')); 548 $('path[stroke="#000000"]').attr('stroke', '#0b62a4'); 549 550 551 $('#graph_area path[stroke="#aaaaaa"]').each(function () { 552 $(this).parent().append(this); 553 }); 554 555 556 557 558 559 560 561 } 562 563 564 565 566 567 }); 568 569 570 571 572 573 574 575 576 577 578 $('[data-enlarge-graph]').click(function () { 579 580 581 $('body').append('<div class="graph-overlay"><div class="graph-large"><div class="graph-title">' + $(this).parent().find('.graph-title').text() + '</div><a class="close-graph-overlay" data-close-graph></a><div id="graph-large" class="large"></div></div></div>'); 582 583 584 585 586 if ($(this).attr('data-enlarge-graph') == '8') { 587 var graphDataHolder = $(this).parent().find('[data-graph-holder]'); 588 589 var xAxis = graphDataHolder.attr('data-graph-x').split(";"); 590 var yValues = graphDataHolder.attr('data-graph-y').split(";"); 591 var data = []; 592 var yMax = 0; 593 594 $('.graph-large').append('<div class="graph-large-x-label">' + graphDataHolder.attr('data-measure-x') + '</div>'); 595 596 for (var i = 0; i < xAxis.length; i++) { 597 598 599 if (yValues[i]) { 600 601 var newDataPoint = { 'x': xAxis[i] } 602 603 newDataPoint['y'] = yValues[i]; 604 yMax = Math.max(graphData.yMax, yValues[i]); 605 606 data.push(newDataPoint); 607 608 } 609 610 611 } 612 613 var labels = [graphDataHolder.attr('data-label')]; 614 615 var labelAdditionalData = { 616 'titleX': graphDataHolder.attr('data-title-x'), 617 'titleY': graphDataHolder.attr('data-title-y'), 618 'measureX': graphDataHolder.attr('data-measure-x'), 619 'measureY': graphDataHolder.attr('data-measure-y'), 620 } 621 622 if (yMax > 9) { 623 var numLines = Math.ceil(yMax / 2) + 1; 624 } 625 else if (yMax > 1) { 626 var numLines = Math.ceil(yMax) + 1; 627 } 628 else { 629 var numLines = 5; 630 } 631 632 new Morris.Line({ 633 element: 'graph-large', // ID of the element in which to draw the chart. 634 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 635 xkey: 'x', // The name of the data record attribute that contains x-values. 636 ykeys: ['y'], // A list of names of data record attributes that contain y-values. 637 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 638 parseTime: false, 639 ymax: Math.ceil(yMax), 640 numLines: numLines, 641 postUnits: ' l/min', 642 ymin: 0, 643 hideHover: true, 644 fillOpacity: 1, 645 labelAdditionalData: labelAdditionalData, 646 yLabelFormat: function (y) { 647 if (typeof y !== 'undefined') { 648 if (yMax > 1) { 649 return Math.round(y); 650 } 651 return (Math.round(y * 100)/100).toFixed(2); 652 } 653 }, 654 hoverCallback: function (index, options, content, row) { 655 if (typeof row.y !== 'undefined') { 656 657 var html = '<p>' + options.labelAdditionalData.titleX + ': ' + row.x + ' ' + options.labelAdditionalData.measureX + '</p>'; 658 659 html += '<p><strong>' + options.labelAdditionalData.titleY + ': ' + row.y + ' ' + options.labelAdditionalData.measureY + '</strong></p>'; 660 } 661 return html; 662 } 663 }); 664 } 665 666 667 if ($(this).attr('data-enlarge-graph') == '11') { 668 var graphDataHolder = $(this).parent().find('[data-graph-area-holder]'); 669 670 var xAxis = graphDataHolder.attr('data-graph-x').split(";"); 671 var yValuesMin = graphDataHolder.attr('data-graph-y-min').split(";"); 672 var yValuesMax = graphDataHolder.attr('data-graph-y-max').split(";"); 673 var data = []; 674 var yMax = 0; 675 676 $('.graph-large').append('<div class="graph-large-x-label">' + graphDataHolder.attr('data-measure-x') + '</div>'); 677 678 for (var i = 0; i < xAxis.length; i++) { 679 680 if (yValuesMin[i] || yValuesMax[i]) { 681 var newDataPoint = { 'x': xAxis[i] } 682 683 if (yValuesMin[i]) { 684 newDataPoint['yMin'] = yValuesMin[i]; 685 yMax = Math.max(yMax, yValuesMin[i]); 686 } 687 688 if (yValuesMax[i]) { 689 newDataPoint['yMax'] = yValuesMax[i]; 690 yMax = Math.max(yMax, yValuesMax[i]); 691 } 692 693 data.push(newDataPoint); 694 } 695 } 696 697 var labels = [graphDataHolder.attr('data-label')]; 698 var labelAdditionalData = { 699 'titleY': graphDataHolder.attr('data-title-y'), 700 'titleYmin': graphDataHolder.attr('data-title-y-min'), 701 'titleYmax': graphDataHolder.attr('data-title-y-max'), 702 'measureX': graphDataHolder.attr('data-measure-x'), 703 'measureY': graphDataHolder.attr('data-measure-y') 704 } 705 706 if (yMax > 9) { 707 var numLines = Math.ceil(yMax / 2) + 1; 708 } 709 else if (yMax > 1) { 710 var numLines = Math.ceil(yMax) + 1; 711 } 712 else { 713 var numLines = 5; 714 } 715 716 new Morris.Area({ 717 element: 'graph-large', // ID of the element in which to draw the chart. 718 data: data, // Chart data records -- each entry in this array corresponds to a point on the chart. 719 xkey: 'x', // The name of the data record attribute that contains x-values. 720 ykeys: ['yMax', 'yMin'], // A list of names of data record attributes that contain y-values. 721 labels: labels, // Labels for the ykeys -- will be displayed when you hover over the chart. 722 parseTime: false, 723 ymax: Math.ceil(yMax), 724 numLines: numLines, 725 postUnits: ' l/min', 726 ymin: 0, 727 hideHover: true, 728 behaveLikeLine: true, 729 730 fillOpacity: 1, 731 labelAdditionalData: labelAdditionalData, 732 733 734 lineColors: ["#0b62a4", '#000000'], 735 736 pointFillColors: ["#0b62a4", "#0b62a4"], 737 738 yLabelFormat: function (y) { 739 if (typeof y !== 'undefined') { 740 if (yMax > 1) { 741 return Math.round(y); 742 } 743 return (Math.round(y * 100)/100).toFixed(2); 744 } 745 }, 746 hoverCallback: function (index, options, content, row) { 747 748 if (typeof row.yMax !== 'undefined' || typeof row.yMin !== 'undefined') { 749 var html = '<p><strong>' + options.labelAdditionalData.titleY + ' ' + row.x + ' ' + options.labelAdditionalData.measureX + '</strong></p>'; 750 } 751 752 if (typeof row.yMax !== 'undefined') { 753 html += '<p>' + options.labelAdditionalData.titleYmax + ': ' + row.yMax + ' ' + options.labelAdditionalData.measureY + '</p>'; 754 } 755 756 if (typeof row.yMin !== 'undefined') { 757 html += '<p>' + options.labelAdditionalData.titleYmin + ': ' + row.yMin + ' ' + options.labelAdditionalData.measureY + '</p>'; 758 } 759 760 return html; 761 } 762 }); 763 764 $('path[fill="#000000"]').attr('fill', $('#graph-large').parents('.graph-large').
764css('background-color')); 765 $('path[stroke="#000000"]').attr('stroke', '#0b62a4'); 766 767 768 $('#graph-large path[stroke="#aaaaaa"]').each(function () { 769 $(this).parent().append(this); 770 }); 771 } 772 }); 773 774 $('[data-close-graph]').live('click', function () { $('.graph-overlay').remove() }); 775 776 graphData = {}; 777 778 graphData.graphs = {}; 779 graphData.yMax = 0; 780 781 var axisconcat = []; 782 $('[data-graph-x]').each(function () { 783 var newaxis = $(this).attr('data-graph-x').split(';'); 784 axisconcat = axisconcat.concat(newaxis); 785 }); 786 graphData.xAxis = axisconcat.filter(function (item, pos) { return axisconcat.indexOf(item) == pos }); 787 788 789 790 791 // graphData.xAxis = [1,2,3,4,5,6,7,8,9,10,25]; 792 793 $('[data-graph-holder]').each(function () { 794 $(this).css('display', 'block'); 795 796 var xAxis = $(this).attr('data-graph-x').split(";"); 797 798 var yValues = $(this).attr('data-graph-y').split(";"); 799 800 801 var data = []; 802 var printGraph = false; 803 804 for (var i = 0; i < graphData.xAxis.length; i++) { 805 806 var newDataPoint = { 'x': graphData.xAxis[i] } 807 808 if (yValues[i]) { 809 newDataPoint['y'] = yValues[i]; 810 graphData.yMax = Math.max(graphData.yMax, yValues[i]); 811 } 812 813 data.push(newDataPoint); 814 815 } 816 817 graphData.graphs[$(this).attr('id')] = { 818 'labels': [$(this).attr('data-label')], 819 'labelAdditionalData': { 820 'titleX': $(this).attr('data-title-x'), 821 'titleY': $(this).attr('data-title-y'), 822 'measureX': $(this).attr('data-measure-x'), 823 'measureY': $(this).attr('data-measure-y') 824 }, 825 'data': data 826 }; 827 }); 828 829 graphAreaData = {}; 830 831 graphAreaData.graphs = {}; 832 graphAreaData.yMax = 0; 833 834 835 $('[data-graph-area-holder]').each(function () { 836 $(this).css('display', 'block'); 837 838 var xAxis = $(this).attr('data-graph-x').split(";"); 839 840 var yValuesMin = $(this).attr('data-graph-y-min').split(";"); 841 var yValuesMax = $(this).attr('data-graph-y-max').split(";"); 842 843 844 var data = []; 845 var printGraph = false; 846 847 for (var i = 0; i < graphData.xAxis.length; i++) { 848 849 var newDataPoint = { 'x': graphData.xAxis[i] } 850 851 if (yValuesMin[i]) { 852 newDataPoint['yMin'] = yValuesMin[i]; 853 graphAreaData.yMax = Math.max(graphAreaData.yMax, yValuesMin[i]); 854 } 855 856 857 if (yValuesMax[i]) { 858 newDataPoint['yMax'] = yValuesMax[i]; 859 graphAreaData.yMax = Math.max(graphAreaData.yMax, yValuesMax[i]); 860 } 861 862 data.push(newDataPoint); 863 864 } 865 866 graphAreaData.graphs[$(this).attr('id')] = { 867 'labels': [$(this).attr('data-label')], 868 labelAdditionalData: { 869 'titleY': $(this).attr('data-title-y'), 870 'titleYmin': $(this).attr('data-title-y-min'), 871 'titleYmax': $(this).attr('data-title-y-max'), 872 'measureX': $(this).attr('data-measure-x'), 873 'measureY': $(this).attr('data-measure-y') 874 }, 875 'data': data 876 }; 877 }); 878 879}); 880 881 882$('[data-filter-duesen]').click(function () { 883 $('[data-filter-duesen]').removeClass('active'); 884 $(this).addClass('active'); 885 886 if ($(this).attr('data-filter-duesen') == 'all') { 887 $('[data-duese]').removeClass('hidden'); 888 } else { 889 $('[data-duese]').addClass('hidden'); 890 $('[data-duese="' + $(this).attr('data-filter-duesen') + '"]').removeClass('hidden'); 891 } 892});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.