7,8c7 < < --- > 10c9 < Candlestick or Waterfall Chart - RJM Programming - http://www.rjmprogramming.com.au (Copyright © 2013 rjmprogramming.com.au all rights reserved.) --- > Candlestick Chart - RJM Programming - http://www.rjmprogramming.com.au (Copyright © 2013 rjmprogramming.com.au all rights reserved.) 13d11 < 17,21d14 < $candlestick = "Candlestick"; < $xgd = ""; < $gd = ""; < $ntt=false; < $nondefs="legend:'none', width:600, height:400"; 24c17 < $GETvalue = "Low,Opening,Closing,High"; --- > $GETvalue = "Value1,Value2,Value3,Value4"; 33,49d25 < $ourtitles=explode(";", $_GET['title']); < if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "waterfall") !== false) { < $candlestick = "Waterfall"; < $nondefs.=", bar: { groupWidth: '100%' }, candlestick: { fallingColor: { strokeWidth: 0, fill: '#a52714' }, risingColor: { strokeWidth: 0, fill: '#0f9d58' } } "; < } < $GETtitle = $ourtitles[sizeof($ourtitles) - 1]; < } else if (isset($_POST['data'])) { < $GETtitle = urldecode($_POST['title']); < //$GETlabel = urldecode($_POST['label']); < //$GETvalue = urldecode($_POST['value']); < $GETdata = urldecode($_POST['data']); < $ourtitles=explode(";", urldecode($_POST['title'])); < if (sizeof($ourtitles) > 1 && strpos(strtolower($ourtitles[0]), "waterfall") !== false) { < $candlestick = "Waterfall"; < $nondefs=", legend: 'none', bar: { groupWidth: '100%' }, candlestick: { fallingColor: { strokeWidth: 0, fill: '#a52714' }, risingColor: { strokeWidth: 0, fill: '#0f9d58' } } "; < } < $GETtitle = $ourtitles[sizeof($ourtitles) - 1]; 52,56d27 < < $newextras=$nondefs; < < < echo " var refresh=0; prerefresh=0; \n"; 60,93c31 < // A column for custom tooltip content < if ((isset($_GET['data']) || isset($_POST['data'])) && (isset($_GET['tooltip']) || isset($_POST['tooltip']) || strpos($GETdata, "'") !== false || strpos($GETdata, '"') !== false)) { < $ntt=true; < //$newextras=$nondefs . ", focusTarget: 'category', tooltip: {isHtml: true} "; < $newextras=$nondefs . ", tooltip: {isHtml: true}, showTip: true"; //, selectionMode: 'multiple', tooltip: {trigger: 'selection'}, aggregationTarget: 'none' "; < echo " var tooltip = [ \n"; < $bits=explode("~,", substr($GETdata,1)); < $delts=""; < for ($iy=1; $iy", $postbits[0])); < echo $delts . str_replace("%3C", "<", str_replace("%3E", ">", $postbits[0])); < $delts=","; < } < echo "]; \n"; < $gd=$GETdata; < for ($iy=1; $iy echo ' var data = google.visualization.arrayToDataTable([ ' . "\n"; 97d34 < } 106,152c43 < < if ($ntt) { < < //echo " var selection; \n"; < echo " var sliceid = 0; /" . "/ thanks to https://gist.github.com/alexrainman/bb8d49357250df0859c0 \n"; < < echo " function checkhere() { prerefresh++; if (prerefresh == 20) { if (refresh == 0) { refresh=1; document.getElementById('ihide').value=1; } } \n"; < echo " refresh=document.getElementById('ihide').value; if (refresh != 0) { prerefresh=0; refresh++; document.getElementById('ihide').value=refresh; if (refresh == 10) { var huhss=document.URL.split('&xx='); if (huhss.length == 1) { location.href=document.URL + '&xx=1'; } else { var two=eval(huhss[1]); two++; location.href=huhss[0] + '&xx=' + two; } } } setTimeout(checkhere,1000); \n } \n"; < < echo " checkhere(); \n"; < < echo " function eventHandler(e){ \n"; < echo " chart.setSelection([e]); \n"; < echo " try { \n"; < echo " selection = chart.getSelection(); \n"; < echo " sliceid = selection[0].row; \n"; < echo " } \n"; < echo " catch(err) { \n"; < echo " ; \n"; < echo " } \n"; < echo ' $(".google-visualization-tooltip-item-list li:eq(0)").css("font-weight", "bold"); ' . "\n"; < echo ' $(".google-visualization-tooltip-item-list li:eq(1)").html(tooltip[sliceid]).css("font-family", "Arial"); ' . "\n"; < echo " } \n"; < < echo " function ceventHandler(e){ document.getElementById('ihide').value='1'; \n"; < //echo " google.visualization.events.addListener(chart, 'select', eventHandler); \n"; < echo " chart.setSelection([e]); \n"; < echo " try { \n"; < echo " selection = chart.getSelection(); \n"; < echo " sliceid = selection[0].row; \n"; < echo " } \n"; < echo " catch(err) { \n"; < echo " ; \n"; < echo " } \n"; < echo ' $(".google-visualization-tooltip-item-list li:eq(0)").css("font-weight", "bold"); ' . "\n"; < echo ' $(".google-visualization-tooltip-item-list li:eq(1)").html(tooltip[sliceid]).css("font-family", "Verdana"); ' . "\n"; < echo " } \n"; < < < if (strpos($xgd, "<") !== false) { < //echo " google.visualization.events.addListener(chart, 'select', eventHandler); \n"; < echo " google.visualization.events.addListener(chart, 'onmouseover', ceventHandler); \n"; < } else { < echo " google.visualization.events.addListener(chart, 'onmouseover', eventHandler); \n"; < } < } < echo " chart.draw(data, {" . $newextras . "}); \n } \n"; --- > echo " chart.draw(data, {legend:'none', width:600, height:400}); \n } \n"; 156d46 < if (!isset($_GET['value'])) { 158,161c48 < } else { < echo " \n"; < } < echo "

" . $GETtitle . " " . $candlestick . " Chart

\n"; --- > echo "

" . $GETtitle . " Candlestick Chart

\n"; 164c51 < echo 'Another ' . strtolower($candlestick) . ' chart?' . " \n"; --- > echo 'Another candlestick chart?' . " \n"; 168,169d54 < echo ' var dlsa, dlp2="", exra = "", four; ' . "\n"; < echo ' var iof=0; ' . "\n"; 171c56 < echo ' var extra = "", subtitle=["' . $GETtitle . '"]; ' . "\n"; --- > echo ' var extra = ""; ' . "\n"; 177,178c62,63 < echo ' var title = prompt("Enter Candlestick Chart Title (prefix waterfall (followed by ;) before title is an available option)", "' . $GETtitle . '"); ' . "\n"; < echo ' if (title != null) { subtitle=title.split(";"); ' . "\n"; --- > echo ' var title = prompt("Enter Candlestick Chart Title", "' . $GETtitle . '"); ' . "\n"; > echo ' if (title != null) { ' . "\n"; 186,188c71 < //echo ' datalineprefix = prompt("Enter " + label + " " + thisline, ""); ' . "\n"; < echo " datalineprefix = prompt('Enter ' + label + ' ' + thisline + ' (optionally append with ' + '\\n\\n' + ',\"A tooltip (regarding low: {n1} opening: {n2} closing: {n3} high: {n4}) of some sort like {day}\" ' + '\\n\\n' + ' or maybe perhaps ' + '\\n\\n' + ',\"A tooltip (regarding low: {n1} opening: {n2} closing: {n3} high: {n4}) of some sort like {day}\"' + '\\n\\n' + ' as an example of what is possible with HTML included)', ''); " . "\n"; < echo ' if (datalineprefix != null) { iof=0; dlsa=datalineprefix.split(","); if (dlsa.length > 1 && (eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(39))) > eval(datalineprefix.indexOf(",")) && eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(34))) > eval(datalineprefix.indexOf(",")))) { while (eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(39))) > eval(datalineprefix.indexOf(",")) && eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(34))) > eval(datalineprefix.indexOf(","))) { datalineprefix=datalineprefix.replace(",", "%2C"); iof+=0; } } datalineprefix=datalineprefix.replace(/#/g, "%23"); if (datalineprefix.indexOf("{") != -1 && datalineprefix.indexOf(",") != -1) { dlsa=datalineprefix.split(","); if (dlsa.length > 1) { datalineprefix=datalineprefix.replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{title}",encodeURIComponent(subtitle[eval(-1 + subtitle.length)])).replace("{title}",encodeURIComponent(subtitle[eval(-1 + subtitle.length)])); } } } ' . "\n"; --- > echo ' datalineprefix = prompt("Enter " + label + " " + thisline, ""); ' . "\n"; 190,195c73 < echo ' if (datalinesuffix.length != 0) { ' . "\n"; < //echo ' datalineprefix = prompt("Enter " + label + " " + thisline + " (for no more hit Cancel button)", ""); ' . "\n"; < echo " datalineprefix = prompt('Enter ' + label + ' ' + thisline + ' (for no more please hit Cancel button and optionally append with ' + '\\n\\n' + ',\"A tooltip (regarding low: {n1} opening: {n2} closing: {n3} high: {n4}) of some sort like {day}\" ' + '\\n\\n' + ' or maybe perhaps ' + '\\n\\n' + ',\"A tooltip (regarding low: {n1} opening: {n2} closing: {n3} high: {n4}) of some sort like {day}\"' + '\\n\\n' + ' as an example of what is possible with HTML included)', ''); " . "\n"; < echo ' if (datalineprefix != null) { iof=0; dlsa=datalineprefix.split(","); if (dlsa.length > 1 && (eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(39))) > eval(datalineprefix.indexOf(",")) && eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(34))) > eval(datalineprefix.indexOf(",")))) { while (eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(39))) > eval(datalineprefix.indexOf(",")) && eval(-1 + iof + datalineprefix.indexOf(String.fromCharCode(34))) > eval(datalineprefix.indexOf(","))) { datalineprefix=datalineprefix.replace(",", "%2C"); iof+=0; } } datalineprefix=datalineprefix.replace(/#/g, "%23"); if (datalineprefix.indexOf("{") != -1 && datalineprefix.indexOf(",") != -1) { dlsa=datalineprefix.split(","); if (dlsa.length > 1) { datalineprefix=datalineprefix.replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{day}",encodeURIComponent(dlsa[0])).replace("{title}",encodeURIComponent(subtitle[eval(-1 + subtitle.length)])).replace("{title}",encodeURIComponent(subtitle[eval(-1 + subtitle.length)])); } } } ' . "\n"; < echo ' } ' . "\n"; < //echo ' } ' . "\n"; --- > echo ' if (datalinesuffix.length != 0) datalineprefix = prompt("Enter " + label + " " + thisline + " (for no more hit Cancel button)", ""); ' . "\n"; 218,221c96 < echo ' if (datalinesuffix != null) { four=datalinesuffix.split(","); datalineprefix = datalineprefix.replace("{n1}", four[0]).replace("{n2}", four[1]).replace("{n3}", four[2]).replace("{n4}", four[3]).replace("{n1}", four[0]).replace("{n2}", four[1]).replace("{n3}", four[2]).replace("{n4}", four[3]).replace("{title}", encodeURIComponent(subtitle[eval(-1 + subtitle.length)])); } ' . "\n"; < //echo ' datac = datac + comma + " [~" + datalineprefix + "~," + datalinesuffix + "] "; ' . "\n"; < echo ' if (datalineprefix.indexOf("' . "'" . '") == -1) { four=datalinesuffix.split(","); if (exra != "") { exra=String.fromCharCode(39) + " low: " + four[0] + " opening: " + four[1] + " closing: " + four[2] + " high: " + four[3] + String.fromCharCode(39) + ","; } datac = datac + comma + " [~" + datalineprefix + "~," + exra + datalinesuffix + "] "; } ' . "\n"; < echo ' if (datalineprefix.indexOf("' . "'" . '") != -1) { four=datalinesuffix.split(","); exra=String.fromCharCode(39) + " low: " + four[0] + " opening: " + four[1] + " closing: " + four[2] + " high: " + four[3] + String.fromCharCode(39) + ","; datac = datac + comma + " [~" + datalineprefix.replace(",", "~,") + "," + datalinesuffix + "] "; } ' . "\n"; --- > echo ' datac = datac + comma + " [~" + datalineprefix + "~," + datalinesuffix + "] "; ' . "\n"; 230d104 <