function createTL(feed,datastream,width,height,color){
if (typeof(google) == 'undefined'){ document.write("<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>"); } document.write("<script type=\"text/javascript\"> google.load(\'visualization\',\'1\',{packages:[\'annotatedtimeline\']}); function drawVisualizationTL(){var headID = document.getElementsByTagName('head')[0]; var newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.src = 'http://apps.pachube.com/history/archive_json.php?f=",feed,"&d=",datastream,"&callback=processTL'; headID.appendChild(newScript); } function processTL(archive){ var d; var valTL; var dataTL = new google.visualization.DataTable(); dataTL.addColumn('datetime', 'Date'); dataTL.addColumn('number', 'Datastream value'); for ( var i in archive['time'] ) { var thisrowTL = dataTL.addRow(); var timestamp = archive['time'][i]; var ts_parts = timestamp.split('T'); var d_parts = ts_parts[0].split('-'); var t_parts = ts_parts[1].split(':'); d = new Date(parseInt(d_parts[0],10), parseInt(d_parts[1],10)-1 ,parseInt(d_parts[2],10), parseInt(t_parts[0],10), parseInt(t_parts[1],10), parseInt(t_parts[2],10) ); valTL = parseFloat(archive['value'][i]); dataTL.setValue(thisrowTL, 0, d); dataTL.setValue(thisrowTL, 1, valTL); } var chartTL = new google.visualization.AnnotatedTimeLine(document.getElementById('visualizationTL')); chartTL.draw(dataTL, {displayAnnotations:true,thickness:1,displayExactValues:true,fill:20,colors:['#",color,"']}); } google.setOnLoadCallback(drawVisualizationTL);</script><div id=\"visualizationTL\" style=\"width:",width,"px; height:",height,"px; font-size:small;\"></div><div style=\"width:",width,"px; background-color:#fff; margin:3px; padding-top:6px;\"><a href=\"http://www.pachube.com/feeds/",feed,"\" target=\"_new\"><img src=\"http://apps.pachube.com/google_viz/powered_by_pachube.png\" alt=\"powered by pachube!\" border=\"0\" style=\"\"></a></div>");}

function createHL(feed,datastream,width,height,color){
if (typeof(google) == 'undefined'){ document.write("<script type=\"text/javascript\" src=\"http://www.google.com/jsapi\"></script>"); } document.write("<script type=\"text/javascript\"> google.load(\'visualization\',\'1\',{packages:[\'annotatedtimeline\']}); function drawVisualizationHL(){var headID = document.getElementsByTagName('head')[0]; var newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.src = 'http://apps.pachube.com/history/archive_json.php?f=",feed,"&d=",datastream,"&callback=processHL'; headID.appendChild(newScript); } function processHL(archive){ var d; var valHL; var dataHL = new google.visualization.DataTable(); dataHL.addColumn('datetime', 'Date'); dataHL.addColumn('number', 'Datastream value'); for ( var i in archive['time'] ) { var thisrowHL = dataHL.addRow(); var timestamp = archive['time'][i]; var ts_parts = timestamp.split('T'); var d_parts = ts_parts[0].split('-'); var t_parts = ts_parts[1].split(':'); d = new Date(parseInt(d_parts[0],10), parseInt(d_parts[1],10)-1 ,parseInt(d_parts[2],10), parseInt(t_parts[0],10), parseInt(t_parts[1],10), parseInt(t_parts[2],10) ); valHL = parseFloat(archive['value'][i]); dataHL.setValue(thisrowHL, 0, d); dataHL.setValue(thisrowHL, 1, valHL); } var chartHL = new google.visualization.AnnotatedTimeLine(document.getElementById('visualizationHL')); chartHL.draw(dataHL, {displayAnnotations:true,thickness:1,displayExactValues:true,fill:20,colors:['#",color,"']}); } google.setOnLoadCallback(drawVisualizationHL);</script><div id=\"visualizationHL\" style=\"width:",width,"px; height:",height,"px; font-size:small;\"></div><div style=\"width:",width,"px; background-color:#fff; margin:3px; padding-top:6px;\"><a href=\"http://www.pachube.com/feeds/",feed,"\" target=\"_new\"><img src=\"http://apps.pachube.com/google_viz/powered_by_pachube.png\" alt=\"powered by pachube!\" border=\"0\" style=\"\"></a></div>");}

