Here's the full HTML file and CSV file. Place them in the same folder.
Works on one computer but not others ??

chart.hideDataColumns(dataCol) and chart.showDataColumns(dataCol)
don't seem to work the way I expect ... is there no access to the
"chart" object?

Jason


"test.html"

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Timeline Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi";></
script>
<script src ="http://maps.google.com/maps?
file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAYJCwMIlgY9myjyxnDUveNhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxR3bARcy05r05z4AIiRJYJMlsDq8Q"
type="text/javascript"></script>
<script type='text/javascript'>google.load('visualization', '1',
{'packages':['table', 'annotatedtimeline']});</script>
<script type='text/javascript'>
        var csvFileName = 'data.txt';   // input csv file name
        var iCols;                                                              
                // stores the number of columns per site
        var iSites;                                                             
                // number of sites
        var data;                                                               
                // google data table
        var chart;                                                              
                // googel chart object
        var dataArray = [];                                                     
        // data read from csv file
        var check_value = new Array();                                  // 
array of checkbox values
        var strHTML = "";                                                       
        // holds HTML code to be outputted
        //var nowDate = new date();
        var minDate = new Date (7000,0,0,0);
        var maxDate = new Date (0,0,0,0);
        var year;
        var month;
        var day;
        var hour;

        $(document).ready(function(){
                $.get(csvFileName, function(dataFile){
                        dataArray=dataFile.split(/\n/);                         
                                                                                
                                // define end of
line delimieer .. i think?
                        for (x in dataArray) dataArray[x]=dataArray[x].split
(",");                                                                          
        // copy data from csv file into array
                        for (var i = 1; dataArray[0][i].substr(0,4) == 
dataArray[0][i
+1].substr(0,4); i++) iCols = i+1;              // return the number of columns
per site .. assumes first 4 characters of each heading is the same for
a given site.
                        iSites = (dataArray[0].length - 1) / iCols;             
                                                                                
                        //
Calculate the number of sites ... (array length / # columns)
                        insertHTMLTable();                                      
                                                                                
                                                // fill in generic html
table tags based on first four characters of column heading is csv
file.
                        fillTableHeadings();                                    
                                                                                
                                        // fill in column and row
heading (taken from csv file)
                        data = new google.visualization.DataTable();            
                                                                                
                //
initialize data table
                        data.addColumn('datetime', 'Date/Time');                
                                                                                
                        // create
first column - date
                        for (var i = 1; i <= dataArray[0].length - 1; i++){     
                                                                                
                //
create data columns
                                data.addColumn('number', dataArray[0][i]);
                                data.addColumn('string', 'title'+i);
                                data.addColumn('string', 'text'+i);
                                };
                        data.addRows(dataArray.length);                         
                                                                                
                                // create blank
rows
                        for (var i = 1; i < dataArray.length - 1; i++){         
                                                                                
                        //
fill in dates and data
                                for (var j = 1; j <= dataArray[0].length - 1; 
j++){
                                        data.setValue(i, ((j-1)*3)+1,  
Number(dataArray[i][j]));
                                        };
                                year =  String(dataArray[i][0]).substr(0,4);
                                month = String(dataArray[i][0]).substr(5,2)-1;  
// month from 0-11
                                day =   String(dataArray[i][0]).substr(8,2);
                                hour =  String(dataArray[i][0]).substr(11,2);
                                nowDate = new Date(year,month,day,hour);
                                if(minDate > nowDate) minDate = nowDate;
                                if(maxDate < nowDate) maxDate = nowDate;
                                data.setValue(i, 0, new 
Date(year,month,day,hour));
                                };
                        drawVisualizations();
                        });
                });

        function fillTableHeadings(){
                for (var i = 1; i <= iCols; i++){                               
                                                                                
                        // Fill in column
headings from csv file
                        document.getElementById("col_"+i+"_desc").innerHTML = 
dataArray[0]
[i].substr(4,dataArray[0][i].length-4);
                        };
                for (var i = 1; i <= (dataArray[0].length-1)/iCols; i++)
{                                                                               
        // Fill in row headings from csv file
                        document.getElementById("row_"+i+"_desc").innerHTML = 
dataArray[0]
[(i-1)*iCols+1].substr(0,4) +':';
                        };
                };

        function drawVisualizations() {
                //table = new google.visualization.Table(document.getElementById
('table_div'));
                //table.draw(data, {showRowNumber: true});
                chart = new google.visualization.AnnotatedTimeLine
(document.getElementById('chart_div'));
                chart.draw(data,
                                   {displayAnnotations: true,
                                        annotationsWidth: 10,
                                        legendPosition: 'newRow',               
                // Can be sameRow
                                        allValuesSuffix: ' value',              
        // add suffix
                                        colors: ['#660000', '#B31212', 
'#E62E2E', '#664D00', '#B38A12',
'#E6B82E', '#006600', '#12B312', '#2EE62E', '#001A66', '#123AB3',
'#2E5CE6', '#4D0066', '#8A12B3', '#B82EE6'],
                                        fill: 10,                               
                                // Fill the area below the lines with % opacity
                                        thickness: 1,
                                        zoomStartTime: new Date(2008, 4, 1), 
//minDate,
                                        zoomEndTime: new Date(2009, 4, 1) 
//maxDate
                                        })
                readCheckboxes();
                }

        function insertHTMLTable(){
                strHTML += "<form name=\"form1\" id=
\"form1\"><table>";                                                             
                                                                // Create form 
and table
                strHTML += "<tr><td><b>Site</b></td>"                           
                                                                                
                                                // Hard
code topo left title
                for (var j = 1; j <= iCols; j++) strHTML += "<td 
align=\"center\"
><b><div id='col_"+j+"_desc'></div></b></td>";  // Top row of titles
                strHTML += "</tr>";                                             
                                                                                
                                                                        // End 
top row
                for (var j = 1; j <= iSites-1; j++){                            
                                                                                
                                                // Fill in
table rows for all sites except the last one
                        strHTML += "<tr>";
                        for (var i = 1; i <= iCols; i++) check_value[i] = 
padLeft(j,3) +
"-" + padLeft(i,2);
                        strHTML += "<td><div id='row_" + j + 
"_desc'></div></td>";
                        for(i in check_value) strHTML += "<td 
align='center'><input
type='checkbox' name='" + check_value[i] + "'  onclick='readCheckbox
(this, " + ((j-1)*iCols + (i-1))+");'></td>";
                        strHTML += "<td><a href=\"#\" 
onclick=\"checkSite('"+padLeft(j,
3)+"'); return false\"> All </a> / <a href=\"#\" onclick=\"uncheckSite
('"+padLeft(j,3)+"'); return false\"> None </a></td>";
                        strHTML += "</tr>";
                        };
                strHTML += "<tr><td></td>";                                     
                                                                                
                                                                // Begin row to
turn on/off all sites
                for (var i = 1; i <= iCols; i++){                               
                                                                                
                                                        // Fill in
rows to turn on/off all sites at once
                        strHTML += "<td align=\"center\"><a href=\"#\" 
onclick=\"checkSeries
('"+padLeft(i,2)+"'); return false\">All</a> / <a href=\"#\" onclick=
\"uncheckSeries('"+padLeft(i,2)+"'); return false\">None</a></td>";
                        };
                strHTML += "</tr>";                                             
                                                                                
                                                                        // End 
row to turn on/
off all sites
                for (var j = iSites; j <= iSites; j++){                         
                                                                                
                                                // Fill
in table rows for all sites except the last one
                        strHTML += "<tr>";
                        for (var i = 1; i <= iCols; i++) check_value[i] = 
padLeft(j,3) +
"-" + "00";     // Hard coded "00" so total checkbox names are not the
same as for sites .. prevents check all including totals
                        strHTML += "<td><div id='row_" + j + 
"_desc'></div></td>";
                        for(i in check_value) strHTML += "<td 
align='center'><input
type='checkbox' name='" + check_value[i] + "'  onclick='readCheckbox
(this, " + ((j-1)*iCols + (i-1))+");'></td>";
                        strHTML += "<td><a href=\"#\" 
onclick=\"checkSite('"+padLeft(j,
3)+"'); return false\"> All </a> / <a href=\"#\" onclick=\"uncheckSite
('"+padLeft(j,3)+"'); return false\"> None </a></td>";
                        strHTML += "</tr>";
                        };

                strHTML += "</table></form>";                                   
                                                                                
                                                        // End table and
form
                document.getElementById("content").innerHTML =
strHTML;                                                                        
                                                        // Output HTML to div 
tag
                };

        function padLeft(s,len,c){
                c = c || '0';
                s = s.toString();
                while(s.length < len) s = c + s;
                return s;
                };

        function readCheckboxes() {
                for (var i = 0; i < document.form1.length; i++){
                        if (document.form1.elements[i].checked){
                                chart.showDataColumns(i);
                                }
                        else {
                                chart.hideDataColumns(i);
                                chart.hideDataColumns(1);  // try hard coding 
to tun off one
series .. still doesn't work
                                }
                        };
                //alert(document.form1.elements[i-1].checked);
                //alert(i);
                };

        function readCheckbox(chkbox, dataCol) {
                //alert("ChkBox: " + chkbox + "datacol: " + dataCol);
                if (chkbox.checked){
                        chart.showDataColumns(dataCol);
                        }
                else chart.hideDataColumns(dataCol);
                //alert(chkbox + " and " + dataCol);
                };

        function checkSite(site){
                for (var i = 0; i < document.form1.length; i++){
                        if (document.form1.elements[i].name.substr(0,3) == site 
&&
document.form1.elements[i].checked == false){
                                document.form1.elements[i].checked = true;
                                chart.showDataColumns(i);
                                };
                        };
                };

        function uncheckSite(site){
                for (var i = 0; i < document.form1.length; i++){
                        if (document.form1.elements[i].name.substr(0,3) == site 
&&
document.form1.elements[i].checked == true){
                                document.form1.elements[i].checked = false;
                                chart.hideDataColumns(i);
                                };
                        };
                };

        function checkSeries(series){
                for (var i = 0; i < document.form1.length; i++){
                        if (document.form1.elements[i].name.substr(4,2) == 
series &&
document.form1.elements[i].checked == false){
                                document.form1.elements[i].checked = true;
                                chart.showDataColumns(i);
                                };
                        };
                };

        function uncheckSeries(series){
                for (var i = 0; i < document.form1.length; i++){
                        if (document.form1.elements[i].name.substr(4,2) == 
series &&
document.form1.elements[i].checked == true){
                                document.form1.elements[i].checked = false;
                                chart.hideDataColumns(i);
                                };
                        };
                };

</script>
        <style type="text/css">
                table td {      font-family: arial, Helvetica,sans-serif;
                                                                border: 0 none;
                                                                font-size: 12px;
                                                                padding: 0px 
10px 0px 10px; }
        </style>
</head>
<body bgcolor="#2F7889">
        <center><table width="840px" bgcolor="#FFFFFF"><tr><td>
        <br>&nbsp;&nbsp;<font style="font-size:20px;">Title</font>
        <p>
        <br>The data sets can take some time to load. Once the blank chart
appears, use the checkboxes to select the data sets to plot.
        <br>
        </p>
        <br>
        <div id="content"></div>
        <br>
        <div id='chart_div' style='width: 800px; height: 500px;'></div>
        <br>
        </td></tr></table></center>
        <br>
</body>
</html>



"data.txt"

date,NYC Data1,NYC Data2,NYC Data3,VAN Data1,VAN Data2,VAN Data3,CGY
Data1,CGY Data2,CGY Data3,HKG Data1,HKG Data2,HKG Data3,All Data1,All
Data2,All Data3
2005-04-01,7,11.8,0,7.6,32.1,5.8,9.7,28.8,3.8,9.5,26.3,3.9,37.3,105.4,13.5
2005-05-01,5.3,11.6,0,8.9,31.8,5.4,9.6,30.3,2.8,7.8,26.3,2.6,34.9,106.4,10.9
2005-06-01,3.5,9.9,0,12.2,32.4,6,8.3,30.4,3.6,8.8,27,3.1,35.8,105.7,12.7
2005-07-01,2.8,9.2,0,9.3,32.4,6.1,9.8,30.6,2.7,8.2,26.2,2.4,33.3,104.5,11.2
2005-08-01,1.9,8.9,0,8.5,32.6,4.3,9.8,29.6,3,8.3,26.3,1.8,32.3,103.8,9.1
2005-09-01,3.8,10.1,0,9.3,33.2,4.7,8.9,29.1,3.3,6.9,25.3,2.2,33,104.5,10.2
2005-10-01,3.5,9.4,0,10.8,33.9,6,11.7,29.6,3.9,9.3,26.5,3.3,39.6,106.9,13.2
2005-11-01,5.5,12.2,0.6,12.7,33.5,8.9,13,30.2,3.9,11,27.9,4.5,46.3,111.4,17.9
2005-12-01,5.7,12.5,0.8,8.2,33.6,5.3,11.5,29.9,4.3,9.6,28.7,3.5,39.7,112.4,13.8
2006-01-01,7.1,13.8,1,13.3,35.8,7.3,14.3,29.2,6.1,11.6,28.9,6.1,50.6,115.6,20.5
2006-02-01,8.1,13.9,1.1,12.2,36.6,5.6,13.5,29.9,4.8,9.9,28.5,5.2,49.1,117,16.7
2006-03-01,7.5,13.2,1.6,14.4,36.1,7.2,14.1,30.4,5.3,10.3,28.4,4.9,50.4,115.6,19
2006-04-01,5.2,12.8,1.1,12.5,36.3,5.7,11.2,30.6,3.4,9.2,29.4,4,42.6,116.6,14.1
2006-05-01,6,13.3,0.9,12.6,37,6.2,15.4,31.9,4,10.2,29.6,4.7,48.9,119.8,15.8
2006-06-01,4.9,12.7,0.8,14.5,37.5,5.6,14,30.8,4,13.4,32,5.1,51.4,120.9,15.6
2006-07-01,2.6,11,0.7,16.6,37.5,7,13.5,31.7,3.2,12.8,32.5,4.7,49.7,120.6,15.6
2006-08-01,2.1,10,0.8,12.5,35.5,8.3,10.1,31.2,3.8,9.2,30.6,4,37.8,115.4,16.9
2006-09-01,3.9,12.1,0.9,12.3,34.2,8.6,11.4,30.7,4.1,10.3,28.9,6.3,42.3,113.6,19.8
2006-10-01,4,12.5,0.9,11.2,32.8,7.7,8.5,29.8,3.1,10.1,29.9,5,37.6,112.7,16.7
2006-11-01,6.6,13.9,1.1,13.8,33.4,8.8,14.6,30,5.6,12.5,28.1,9.1,51.6,112.9,24.6
2006-12-01,10.9,16.5,1.2,17.2,33.3,7.8,15.6,30.2,4.5,14,30.9,5.5,63.1,118.8,19
2007-01-01,7.7,15.4,1.5,17.3,32.5,11.4,14.7,28.8,6.4,12.9,30.3,8.2,58.1,115.1,27.5
2007-02-01,5.9,15.3,1.1,14.7,32.1,9.8,13.4,29.6,4.7,10.9,29.4,7.6,50.4,114.7,23.3
2007-03-01,5.2,15.8,0.9,13.8,32.3,10.8,15.4,29.3,5.9,10.2,29.9,6.7,49.4,115.8,24.4
2007-04-01,2.7,13.6,0.7,11.9,32.8,9.1,12.4,28.9,3.9,8.5,30.3,5.1,39.6,113.7,18.8
2007-05-01,4.4,15.6,0.9,8.5,33.1,6,10.9,29.3,3.1,7.8,29.1,4.3,36.1,115.6,14.3
2007-06-01,4.3,14.9,0.7,10.6,35.7,6,9.7,29.5,3,8.1,30.8,3,37.4,119.6,12.7
2007-07-01,2.8,13.3,0.7,13.3,37.9,5.7,12.5,31.6,3.1,10.5,32.1,3.9,44.3,123.5,13.3
2007-08-01,1.9,11.7,0.6,11.4,35.6,6.3,10.4,30.1,3.1,8,30.6,4.3,35,115.5,14.3
2007-09-01,3.9,14.7,0.7,10.8,33.3,8.4,11.9,30.5,3.6,9.3,30.9,6.6,40.8,117.7,19.4
2007-10-01,4.4,14.9,0.8,12.7,34.5,8.9,12,31,3.6,11.5,32.1,7.6,44.7,120.7,20.8
2007-11-01,6.6,16.9,1,10.8,33.9,8.5,10.7,30.9,3.2,9.6,32.9,5,41.8,122.7,17.6
2007-12-01,7.1,16.7,0.9,13.3,33.7,9.5,9.2,29.9,3,10.9,33.1,5,45.2,121.2,18.3
2008-01-01,7.2,17,1.2,15.9,33.4,13.6,13.2,31.8,4.6,12.2,33.4,6.7,53,123.9,26.2
2008-02-01,8.3,16.6,1,15.6,32.9,14.3,12.2,32.2,4.7,16.2,35.5,8.1,58.1,125.9,28.1
2008-03-01,9.1,17.3,1.3,13.3,32.6,11.8,12,30.5,5.7,10.5,33.1,6.8,49.9,122.1,25.6
2008-04-01,7.3,16.3,1.3,13.1,30.8,14.7,12.2,31.1,5.4,9.3,31.1,7,53.2,126.5,28.5
2008-05-01,6.2,16.2,0.8,12.5,33.5,11.4,11.2,32.8,4.7,10.7,32.6,6.2,52.5,133.5,23.1
2008-06-01,4.7,14.7,0.9,15.6,33.7,12.2,13,33,5.5,10.4,32.5,6.5,54.7,132,25.2
2008-07-01,2,11.8,0.8,15.6,35.4,9.8,12.4,33.8,3.7,11.9,34.8,4.3,52.7,133.9,18.6
2008-08-01,2.3,11.8,0.7,13.9,35,10.4,11.6,32.9,3.8,10.9,35,4,50,132,18.8
2008-09-01,5.3,15.3,0.8,12.9,32,13.5,13,31.8,5.1,13.6,34.6,7.4,55.7,132.4,26.8
2008-10-01,3.4,14,0.8,14.7,33.4,13.2,13.4,30.8,8.4,13.1,29.5,11.4,55.5,127.1,33.8
2008-11-01,5.7,16.5,0.8,16.2,33.9,14.3,17.6,29.7,11.8,12.8,30.5,12.5,64.8,130.7,39.5
2008-12-01,4.4,14.1,0.8,11.8,30.6,15.9,11.8,29.4,9.3,11,30.9,10.2,48.5,121.9,36.2
2009-01-01,8.3,16.9,1.3,17.6,30.9,20.9,15.3,29.6,12,13.5,34,12.1,68,130.9,46.3
2009-02-01,13.1,19.4,1.9,19.4,31.7,18.5,16.6,29.6,13.2,15.2,32.1,16.5,80.3,134.1,50.1
2009-03-01,9.2,17.6,1.2,18.4,32.5,17.1,16.4,30,13.9,15.7,31.9,18.8,73.8,132.5,50.9
2009-04-01,7.9,17.6,0.8,12.8,33.7,12.6,14.2,29.6,12.5,10.4,30.5,13.1,59.3,132.7,39
2009-05-01,9,17.7,1,12.5,32.8,14.1,11.6,30.9,7.7,9.9,31.6,9.8,57.6,136.1,32.6
2009-06-01,7.7,17.3,0.8,12.3,34.7,9.5,9.7,32.2,8.9,9.6,31.1,10,52.8,139.8,29.2
2009-07-01,2.6,12.6,0.8,12.7,36.3,8.9,8.9,32.8,6.8,10.7,32.5,10.4,49,137.8,26.9
2009-08-01,2.9,12.7,0.6,11.5,36.3,6.6,7.7,33,5.9,9.6,30.9,11.4,43.2,132.4,24.6
2009-09-01,6.4,13.3,1.2,12.8,31.7,12,9.6,31.1,6.6,11,27.5,17.7,50.2,122.3,37.5
2009-10-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2009-11-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2009-12-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2010-01-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2010-02-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2010-03-01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to