getRowForX method sync-glitch
authorDan Vanderkam <danvdk@gmail.com>
Fri, 6 Mar 2015 23:31:01 +0000 (18:31 -0500)
committerDan Vanderkam <danvdk@gmail.com>
Fri, 6 Mar 2015 23:38:04 +0000 (18:38 -0500)
auto_tests/data/data.js [new file with mode: 0644]
auto_tests/misc/local.html
auto_tests/tests/data_api.js [new file with mode: 0644]
dygraph.js
extras/synchronizer.js

diff --git a/auto_tests/data/data.js b/auto_tests/data/data.js
new file mode 100644 (file)
index 0000000..c99463f
--- /dev/null
@@ -0,0 +1,1590 @@
+// This file is the same as tests/data.js
+
+function temperature_nolabel() {
+return "" +
+"2007-01-01,62,39\n" +
+"2007-01-02,62,44\n" +
+"2007-01-03,62,42\n" +
+"2007-01-04,57,45\n" +
+"2007-01-05,54,44\n" +
+"2007-01-06,55,36\n" +
+"2007-01-07,62,45\n" +
+"2007-01-08,66,48\n" +
+"2007-01-09,63,39\n" +
+"2007-01-10,57,37\n" +
+"2007-01-11,50,37\n" +
+"2007-01-12,48,35\n" +
+"2007-01-13,48,30\n" +
+"2007-01-14,48,28\n" +
+"2007-01-15,53,28\n" +
+"2007-01-16,50,30\n" +
+"2007-01-17,57,37\n" +
+"2007-01-18,61,33\n" +
+"2007-01-19,55,35\n" +
+"2007-01-20,61,35\n" +
+"2007-01-21,64,43\n" +
+"2007-01-22,61,36\n" +
+"2007-01-23,57,35\n" +
+"2007-01-24,60,35\n" +
+"2007-01-25,55,39\n" +
+"2007-01-26,54,44\n" +
+"2007-01-27,57,48\n" +
+"2007-01-28,59,45\n" +
+"2007-01-29,63,45\n" +
+"2007-01-30,59,41\n" +
+"2007-01-31,55,48\n" +
+"2007-02-01,53,46\n" +
+"2007-02-02,55,44\n" +
+"2007-02-03,59,37\n" +
+"2007-02-04,66,39\n" +
+"2007-02-05,64,43\n" +
+"2007-02-06,61,46\n" +
+"2007-02-07,61,51\n" +
+"2007-02-08,60,51\n" +
+"2007-02-09,61,55\n" +
+"2007-02-10,62,55\n" +
+"2007-02-11,61,46\n" +
+"2007-02-12,59,43\n" +
+"2007-02-13,57,46\n" +
+"2007-02-14,61,39\n" +
+"2007-02-15,64,44\n" +
+"2007-02-16,71,46\n" +
+"2007-02-17,73,51\n" +
+"2007-02-18,60,46\n" +
+"2007-02-19,63,44\n" +
+"2007-02-20,57,45\n" +
+"2007-02-21,59,48\n" +
+"2007-02-22,55,44\n" +
+"2007-02-23,55,42\n" +
+"2007-02-24,57,39\n" +
+"2007-02-25,55,48\n" +
+"2007-02-26,57,44\n" +
+"2007-02-27,53,39\n" +
+"2007-02-28,53,37\n" +
+"2007-03-01,54,37\n" +
+"2007-03-02,61,39\n" +
+"2007-03-03,66,43\n" +
+"2007-03-04,70,48\n" +
+"2007-03-05,68,53\n" +
+"2007-03-06,69,46\n" +
+"2007-03-07,62,51\n" +
+"2007-03-08,61,46\n" +
+"2007-03-09,60,45\n" +
+"2007-03-10,68,46\n" +
+"2007-03-11,79,48\n" +
+"2007-03-12,80,52\n" +
+"2007-03-13,73,53\n" +
+"2007-03-14,64,48\n" +
+"2007-03-15,78,46\n" +
+"2007-03-16,78,50\n" +
+"2007-03-17,62,51\n" +
+"2007-03-18,66,46\n" +
+"2007-03-19,64,48\n" +
+"2007-03-20,60,48\n" +
+"2007-03-21,66,46\n" +
+"2007-03-22,73,43\n" +
+"2007-03-23,78,48\n" +
+"2007-03-24,68,48\n" +
+"2007-03-25,64,53\n" +
+"2007-03-26,66,48\n" +
+"2007-03-27,57,46\n" +
+"2007-03-28,66,42\n" +
+"2007-03-29,73,42\n" +
+"2007-03-30,72,46\n" +
+"2007-03-31,69,46\n" +
+"2007-04-01,64,46\n" +
+"2007-04-02,69,46\n" +
+"2007-04-03,71,46\n" +
+"2007-04-04,69,50\n" +
+"2007-04-05,71,52\n" +
+"2007-04-06,64,52\n" +
+"2007-04-07,68,51\n" +
+"2007-04-08,71,51\n" +
+"2007-04-09,66,50\n" +
+"2007-04-10,72,46\n" +
+"2007-04-11,63,50\n" +
+"2007-04-12,64,46\n" +
+"2007-04-13,70,44\n" +
+"2007-04-14,57,51\n" +
+"2007-04-15,68,46\n" +
+"2007-04-16,75,46\n" +
+"2007-04-17,62,48\n" +
+"2007-04-18,61,45\n" +
+"2007-04-19,57,42\n" +
+"2007-04-20,64,46\n" +
+"2007-04-21,61,43\n" +
+"2007-04-22,63,48\n" +
+"2007-04-23,70,44\n" +
+"2007-04-24,66,46\n" +
+"2007-04-25,66,48\n" +
+"2007-04-26,69,48\n" +
+"2007-04-27,82,50\n" +
+"2007-04-28,81,55\n" +
+"2007-04-29,70,53\n" +
+"2007-04-30,77,51\n" +
+"2007-05-01,70,48\n" +
+"2007-05-02,66,52\n" +
+"2007-05-03,63,48\n" +
+"2007-05-04,64,51\n" +
+"2007-05-05,73,46\n" +
+"2007-05-06,88,54\n" +
+"2007-05-07,91,57\n" +
+"2007-05-08,84,60\n" +
+"2007-05-09,73,55\n" +
+"2007-05-10,57,52\n" +
+"2007-05-11,64,51\n" +
+"2007-05-12,64,50\n" +
+"2007-05-13,72,46\n" +
+"2007-05-14,66,50\n" +
+"2007-05-15,63,51\n" +
+"2007-05-16,70,48\n" +
+"2007-05-17,68,50\n" +
+"2007-05-18,73,50\n" +
+"2007-05-19,70,52\n" +
+"2007-05-20,73,51\n" +
+"2007-05-21,78,54\n" +
+"2007-05-22,81,51\n" +
+"2007-05-23,86,55\n" +
+"2007-05-24,78,55\n" +
+"2007-05-25,69,54\n" +
+"2007-05-26,69,55\n" +
+"2007-05-27,69,54\n" +
+"2007-05-28,73,52\n" +
+"2007-05-29,69,53\n" +
+"2007-05-30,66,55\n" +
+"2007-05-31,64,54\n" +
+"2007-06-01,66,54\n" +
+"2007-06-02,64,54\n" +
+"2007-06-03,70,55\n" +
+"2007-06-04,73,59\n" +
+"2007-06-05,68,55\n" +
+"2007-06-06,70,53\n" +
+"2007-06-07,75,51\n" +
+"2007-06-08,70,50\n" +
+"2007-06-09,75,53\n" +
+"2007-06-10,75,55\n" +
+"2007-06-11,75,53\n" +
+"2007-06-12,79,52\n" +
+"2007-06-13,90,59\n" +
+"2007-06-14,89,60\n" +
+"2007-06-15,86,59\n" +
+"2007-06-16,72,55\n" +
+"2007-06-17,79,53\n" +
+"2007-06-18,79,57\n" +
+"2007-06-19,73,55\n" +
+"2007-06-20,71,55\n" +
+"2007-06-21,77,55\n" +
+"2007-06-22,79,54\n" +
+"2007-06-23,77,54\n" +
+"2007-06-24,77,53\n" +
+"2007-06-25,82,53\n" +
+"2007-06-26,71,54\n" +
+"2007-06-27,73,55\n" +
+"2007-06-28,73,57\n" +
+"2007-06-29,77,60\n" +
+"2007-06-30,75,54\n" +
+"2007-07-01,78,54\n" +
+"2007-07-02,82,57\n" +
+"2007-07-03,72,57\n" +
+"2007-07-04,84,59\n" +
+"2007-07-05,84,61\n" +
+"2007-07-06,75,60\n" +
+"2007-07-07,73,55\n" +
+"2007-07-08,78,55\n" +
+"2007-07-09,73,57\n" +
+"2007-07-10,73,59\n" +
+"2007-07-11,78,62\n" +
+"2007-07-12,75,59\n" +
+"2007-07-13,79,60\n" +
+"2007-07-14,73,60\n" +
+"2007-07-15,78,62\n" +
+"2007-07-16,75,59\n" +
+"2007-07-17,77,60\n" +
+"2007-07-18,75,63\n" +
+"2007-07-19,80,59\n" +
+"2007-07-20,79,59\n" +
+"2007-07-21,77,61\n" +
+"2007-07-22,75,63\n" +
+"2007-07-23,79,64\n" +
+"2007-07-24,73,61\n" +
+"2007-07-25,72,57\n" +
+"2007-07-26,75,60\n" +
+"2007-07-27,78,60\n" +
+"2007-07-28,77,57\n" +
+"2007-07-29,73,57\n" +
+"2007-07-30,80,59\n" +
+"2007-07-31,75,59\n" +
+"2007-08-01,75,59\n" +
+"2007-08-02,73,60\n" +
+"2007-08-03,79,60\n" +
+"2007-08-04,77,59\n" +
+"2007-08-05,71,57\n" +
+"2007-08-06,71,59\n" +
+"2007-08-07,73,57\n" +
+"2007-08-08,71,55\n" +
+"2007-08-09,77,60\n" +
+"2007-08-10,77,57\n" +
+"2007-08-11,73,57\n" +
+"2007-08-12,72,55\n" +
+"2007-08-13,75,55\n" +
+"2007-08-14,73,55\n" +
+"2007-08-15,75,57\n" +
+"2007-08-16,79,60\n" +
+"2007-08-17,80,55\n" +
+"2007-08-18,78,57\n" +
+"2007-08-19,77,55\n" +
+"2007-08-20,80,64\n" +
+"2007-08-21,82,62\n" +
+"2007-08-22,82,60\n" +
+"2007-08-23,82,57\n" +
+"2007-08-24,78,59\n" +
+"2007-08-25,73,61\n" +
+"2007-08-26,73,61\n" +
+"2007-08-27,78,59\n" +
+"2007-08-28,86,62\n" +
+"2007-08-29,88,68\n" +
+"2007-08-30,90,68\n" +
+"2007-08-31,80,66\n" +
+"2007-09-01,87,62\n" +
+"2007-09-02,89,61\n" +
+"2007-09-03,78,61\n" +
+"2007-09-04,78,63\n" +
+"2007-09-05,89,57\n" +
+"2007-09-06,82,64\n" +
+"2007-09-07,75,61\n" +
+"2007-09-08,73,62\n" +
+"2007-09-09,71,61\n" +
+"2007-09-10,73,59\n" +
+"2007-09-11,71,59\n" +
+"2007-09-12,72,60\n" +
+"2007-09-13,77,57\n" +
+"2007-09-14,75,60\n" +
+"2007-09-15,73,57\n" +
+"2007-09-16,72,61\n" +
+"2007-09-17,72,55\n" +
+"2007-09-18,73,55\n" +
+"2007-09-19,66,55\n" +
+"2007-09-20,71,52\n" +
+"2007-09-21,77,57\n" +
+"2007-09-22,64,57\n" +
+"2007-09-23,68,55\n" +
+"2007-09-24,78,52\n" +
+"2007-09-25,84,53\n" +
+"2007-09-26,87,57\n" +
+"2007-09-27,75,55\n" +
+"2007-09-28,66,54\n" +
+"2007-09-29,73,52\n" +
+"2007-09-30,75,48\n" +
+"2007-10-01,71,57\n" +
+"2007-10-02,81,53\n" +
+"2007-10-03,73,54\n" +
+"2007-10-04,69,55\n" +
+"2007-10-05,64,50\n" +
+"2007-10-06,73,45\n" +
+"2007-10-07,77,46\n" +
+"2007-10-08,79,53\n" +
+"2007-10-09,72,53\n" +
+"2007-10-10,69,54\n" +
+"2007-10-11,70,48\n" +
+"2007-10-12,64,54\n" +
+"2007-10-13,70,53\n" +
+"2007-10-14,66,51\n" +
+"2007-10-15,68,52\n" +
+"2007-10-16,66,52\n" +
+"2007-10-17,66,50\n" +
+"2007-10-18,73,50\n" +
+"2007-10-19,72,57\n" +
+"2007-10-20,66,54\n" +
+"2007-10-21,73,51\n" +
+"2007-10-22,81,51\n" +
+"2007-10-23,84,53\n" +
+"2007-10-24,79,55\n" +
+"2007-10-25,66,53\n" +
+"2007-10-26,68,46\n" +
+"2007-10-27,66,52\n" +
+"2007-10-28,75,52\n" +
+"2007-10-29,63,55\n" +
+"2007-10-30,63,53\n" +
+"2007-10-31,63,54\n" +
+"2007-11-01,66,53\n" +
+"2007-11-02,77,50\n" +
+"2007-11-03,80,48\n" +
+"2007-11-04,77,48\n" +
+"2007-11-05,66,48\n" +
+"2007-11-06,62,52\n" +
+"2007-11-07,61,48\n" +
+"2007-11-08,59,53\n" +
+"2007-11-09,63,48\n" +
+"2007-11-10,66,48\n" +
+"2007-11-11,63,48\n" +
+"2007-11-12,68,44\n" +
+"2007-11-13,72,51\n" +
+"2007-11-14,75,55\n" +
+"2007-11-15,69,51\n" +
+"2007-11-16,63,55\n" +
+"2007-11-17,66,51\n" +
+"2007-11-18,64,53\n" +
+"2007-11-19,66,48\n" +
+"2007-11-20,63,46\n" +
+"2007-11-21,64,43\n" +
+"2007-11-22,64,37\n" +
+"2007-11-23,70,37\n" +
+"2007-11-24,60,37\n" +
+"2007-11-25,60,46\n" +
+"2007-11-26,63,42\n" +
+"2007-11-27,63,45\n" +
+"2007-11-28,64,46\n" +
+"2007-11-29,62,41\n" +
+"2007-11-30,55,42\n" +
+"2007-12-01,57,37\n" +
+"2007-12-02,61,45\n" +
+"2007-12-03,66,50\n" +
+"2007-12-04,61,54\n" +
+"2007-12-05,60,50\n" +
+"2007-12-06,57,48\n" +
+"2007-12-07,55,45\n" +
+"2007-12-08,53,42\n" +
+"2007-12-09,57,39\n" +
+"2007-12-10,57,39\n" +
+"2007-12-11,57,41\n" +
+"2007-12-12,55,35\n" +
+"2007-12-13,59,34\n" +
+"2007-12-14,55,34\n" +
+"2007-12-15,55,39\n" +
+"2007-12-16,55,43\n" +
+"2007-12-17,57,48\n" +
+"2007-12-18,57,43\n" +
+"2007-12-19,59,41\n" +
+"2007-12-20,55,43\n" +
+"2007-12-21,53,39\n" +
+"2007-12-22,53,32\n" +
+"2007-12-23,55,37\n" +
+"2007-12-24,57,45\n" +
+"2007-12-25,57,37\n" +
+"2007-12-26,53,43\n" +
+"2007-12-27,48,37\n" +
+"2007-12-28,48,43\n" +
+"2007-12-29,57,44\n" +
+"2007-12-30,52,43\n" +
+"2007-12-31,57,42\n";
+}
+
+function temperature_data() {
+  return "Date,High,Low\n" + temperature_nolabel();
+}
+
+function NoisyData() {
+return "" +
+"Date,A,B\n" +
+"2006-10-01,3.01953818828,0.7212041046,2.18487394958,0.599318549691\n" +
+"2006-10-02,3.63321799308,0.778297234566,1.69491525424,0.531417655826\n" +
+"2006-10-03,2.44328097731,0.644967734352,2.51256281407,0.640539070386\n" +
+"2006-10-04,3.52733686067,0.774700921683,2.68456375839,0.66207105053\n" +
+"2006-10-05,3.28719723183,0.741636245748,2.35294117647,0.621407707226\n" +
+"2006-10-06,1.58450704225,0.523967868159,3.78657487091,0.791868460623\n" +
+"2006-10-07,5.32859680284,0.946589405904,4.0404040404,0.807910739509\n" +
+"2006-10-08,2.64084507042,0.672799548916,2.37288135593,0.626609885481\n" +
+"2006-10-09,2.26480836237,0.620990945917,3.5413153457,0.75897176848\n" +
+"2006-10-10,3.29289428076,0.74289969528,2.02702702703,0.579191340004\n" +
+"2006-10-11,2.7633851468,0.681234043829,1.1744966443,0.4413034044\n" +
+"2006-10-12,3.28719723183,0.741636245748,3.37268128162,0.741327769578\n" +
+"2006-10-13,1.77304964539,0.55569466381,1.85810810811,0.555011329732\n" +
+"2006-10-14,3.39892665474,0.7664008338,1.67224080268,0.524368852929\n" +
+"2006-10-15,2.65017667845,0.675144574777,3.35570469799,0.737661045752\n" +
+"2006-10-16,3.63951473137,0.779620631266,2.34899328859,0.620377617453\n" +
+"2006-10-17,2.25694444444,0.618859623032,1.68067226891,0.526990133716\n" +
+"2006-10-18,4.47504302926,0.857766274964,2.51677852349,0.641599927369\n" +
+"2006-10-19,2.44755244755,0.646081155692,1.68067226891,0.526990133716\n" +
+"2006-10-20,3.67775831874,0.787656442774,3.066439523,0.711598843969\n" +
+"2006-10-21,3.94265232975,0.823839169829,3.85906040268,0.788990618726\n" +
+"2006-10-22,2.59067357513,0.660187558973,3.71621621622,0.777438794254\n" +
+"2006-10-23,4.33275563258,0.847570482324,3.85906040268,0.788990618726\n" +
+"2006-10-24,3.10344827586,0.720049610821,2.84280936455,0.679611549697\n" +
+"2006-10-25,1.40350877193,0.492720767725,2.7027027027,0.666482380968\n" +
+"2006-10-26,1.95035460993,0.582291234145,2.36486486486,0.624518599275\n" +
+"2006-10-27,2.30905861456,0.632980642182,2.03045685279,0.580161203819\n" +
+"2006-10-28,4.09252669039,0.835706590809,2.87648054146,0.68754192469\n" +
+"2006-10-29,2.66903914591,0.679883997626,2.02360876897,0.578224712918\n" +
+"2006-10-30,4.74516695958,0.89127787497,4.36241610738,0.836670992529\n" +
+"2006-10-31,2.78260869565,0.685905251933,3.20945945946,0.724388507178\n" +
+"2006-11-01,1.5873015873,0.524884521441,1.51260504202,0.500373860545\n" +
+"2006-11-02,2.78745644599,0.687083077461,2.0202020202,0.57726130639\n" +
+"2006-11-03,5.11463844797,0.925157232782,2.68907563025,0.663168401088\n" +
+"2006-11-04,4.9001814882,0.919644816432,3.07692307692,0.713993047527\n" +
+"2006-11-05,5.13274336283,0.928343545136,3.55329949239,0.761492892041\n" +
+"2006-11-06,1.92644483363,0.575222935029,2.35294117647,0.621407707226\n" +
+"2006-11-07,2.46478873239,0.650573541306,1.52027027027,0.502889967904\n" +
+"2006-11-08,2.13523131673,0.609772022763,2.6981450253,0.665374048085\n" +
+"2006-11-09,3.88007054674,0.811026422222,2.72572402044,0.672079879106\n" +
+"2006-11-10,2.63620386643,0.671633132526,3.71621621622,0.777438794254\n" +
+"2006-11-11,3.69718309859,0.791736755355,3.0303030303,0.703344064467\n" +
+"2006-11-12,3.83944153578,0.802703592906,4.05405405405,0.81058250986\n" +
+"2006-11-13,2.47787610619,0.653984033555,2.20338983051,0.604340313133\n" +
+"2006-11-14,1.77304964539,0.55569466381,2.22222222222,0.60944692682\n" +
+"2006-11-15,2.30088495575,0.630766388737,0.843170320405,0.375484163785\n" +
+"2006-11-16,1.57894736842,0.522144132232,2.19594594595,0.602321544724\n" +
+"2006-11-18,2.45183887916,0.647198426991,1.69491525424,0.531417655826\n" +
+"2006-11-19,3.52733686067,0.774700921683,1.85185185185,0.55316023504\n" +
+"2006-11-20,2.97723292469,0.711254751484,2.6981450253,0.665374048085\n" +
+"2006-11-21,2.29681978799,0.629665059963,2.01680672269,0.576301104352\n" +
+"2006-11-22,3.01418439716,0.719945245328,2.5466893039,0.649125445325\n" +
+"2006-11-23,3.78378378378,0.809917534069,2.6936026936,0.664269394219\n" +
+"2006-11-24,3.18584070796,0.738851643987,2.01005025126,0.57439025002\n" +
+"2006-11-25,2.83185840708,0.697868332879,3.066439523,0.711598843969\n" +
+"2006-11-26,3.01953818828,0.7212041046,2.53378378378,0.645878720149\n" +
+"2006-11-27,2.81195079086,0.693033387099,1.51006711409,0.499540743312\n" +
+"2006-11-28,2.97723292469,0.711254751484,2.54237288136,0.648039583782\n" +
+"2006-11-29,1.41093474427,0.495309102312,3.02013422819,0.701020603129";
+}
+
+function NoisyDataABC() {
+return "" +
+"Date,A,B,C\n" +
+"20061001,3.01953818828,0.7212041046,2.18487394958,0.599318549691,2.02013422819,0.701020603129\n" +
+"20061002,3.63321799308,0.778297234566,1.69491525424,0.531417655826,1.54237288136,0.648039583782\n" +
+"20061003,2.44328097731,0.644967734352,2.51256281407,0.640539070386,0.51006711409,0.499540743312\n" +
+"20061004,3.52733686067,0.774700921683,2.68456375839,0.66207105053,1.53378378378,0.645878720149\n" +
+"20061005,3.28719723183,0.741636245748,2.35294117647,0.621407707226,2.066439523,0.711598843969\n" +
+"20061006,1.58450704225,0.523967868159,3.78657487091,0.791868460623,1.01005025126,0.57439025002\n" +
+"20061007,5.32859680284,0.946589405904,4.0404040404,0.807910739509,1.6936026936,0.664269394219\n" +
+"20061008,2.64084507042,0.672799548916,2.37288135593,0.626609885481,1.5466893039,0.649125445325\n" +
+"20061009,2.26480836237,0.620990945917,3.5413153457,0.75897176848,1.01680672269,0.576301104352\n" +
+"20061010,3.29289428076,0.74289969528,2.02702702703,0.579191340004,1.6981450253,0.665374048085\n" +
+"20061011,2.7633851468,0.681234043829,1.1744966443,0.4413034044,0.85185185185,0.55316023504\n" +
+"20061012,3.28719723183,0.741636245748,3.37268128162,0.741327769578,0.69491525424,0.531417655826\n" +
+"20061013,1.77304964539,0.55569466381,1.85810810811,0.555011329732,1.19594594595,0.602321544724\n" +
+"20061014,3.39892665474,0.7664008338,1.67224080268,0.524368852929,0.843170320405,0.375484163785\n" +
+"20061015,2.65017667845,0.675144574777,3.35570469799,0.737661045752,1.22222222222,0.60944692682\n" +
+"20061016,3.63951473137,0.779620631266,2.34899328859,0.620377617453,1.20338983051,0.604340313133\n" +
+"20061017,2.25694444444,0.618859623032,1.68067226891,0.526990133716,3.05405405405,0.81058250986\n" +
+"20061018,4.47504302926,0.857766274964,2.51677852349,0.641599927369,2.0303030303,0.703344064467\n" +
+"20061019,2.44755244755,0.646081155692,1.68067226891,0.526990133716,2.71621621622,0.777438794254\n" +
+"20061020,3.67775831874,0.787656442774,3.066439523,0.711598843969,1.72572402044,0.672079879106\n" +
+"20061021,3.94265232975,0.823839169829,3.85906040268,0.788990618726,1.6981450253,0.665374048085\n" +
+"20061022,2.59067357513,0.660187558973,3.71621621622,0.777438794254,0.52027027027,0.502889967904\n" +
+"20061023,4.33275563258,0.847570482324,3.85906040268,0.788990618726,1.35294117647,0.621407707226\n" +
+"20061024,3.10344827586,0.720049610821,2.84280936455,0.679611549697,2.55329949239,0.761492892041\n" +
+"20061025,1.40350877193,0.492720767725,2.7027027027,0.666482380968,2.07692307692,0.713993047527\n" +
+"20061026,1.95035460993,0.582291234145,2.36486486486,0.624518599275,1.68907563025,0.663168401088\n" +
+"20061027,2.30905861456,0.632980642182,2.03045685279,0.580161203819,1.0202020202,0.57726130639\n" +
+"20061028,4.09252669039,0.835706590809,2.87648054146,0.68754192469,0.51260504202,0.500373860545\n" +
+"20061029,2.66903914591,0.679883997626,2.02360876897,0.578224712918,2.20945945946,0.724388507178\n" +
+"20061030,4.74516695958,0.89127787497,4.36241610738,0.836670992529,3.36241610738,0.836670992529\n" +
+"20061031,2.78260869565,0.685905251933,3.20945945946,0.724388507178,1.02360876897,0.578224712918\n" +
+"20061101,1.5873015873,0.524884521441,1.51260504202,0.500373860545,1.87648054146,0.68754192469\n" +
+"20061102,2.78745644599,0.687083077461,2.0202020202,0.57726130639,1.03045685279,0.580161203819\n" +
+"20061103,5.11463844797,0.925157232782,2.68907563025,0.663168401088,1.36486486486,0.624518599275\n" +
+"20061104,4.9001814882,0.919644816432,3.07692307692,0.713993047527,1.7027027027,0.666482380968\n" +
+"20061105,5.13274336283,0.928343545136,3.55329949239,0.761492892041,1.84280936455,0.679611549697\n" +
+"20061106,1.92644483363,0.575222935029,2.35294117647,0.621407707226,2.85906040268,0.788990618726\n" +
+"20061107,2.46478873239,0.650573541306,1.52027027027,0.502889967904,2.71621621622,0.777438794254\n" +
+"20061108,2.13523131673,0.609772022763,2.6981450253,0.665374048085,2.85906040268,0.788990618726\n" +
+"20061109,3.88007054674,0.811026422222,2.72572402044,0.672079879106,2.066439523,0.711598843969\n" +
+"20061110,2.63620386643,0.671633132526,3.71621621622,0.777438794254,0.68067226891,0.526990133716\n" +
+"20061111,3.69718309859,0.791736755355,3.0303030303,0.703344064467,1.51677852349,0.641599927369\n" +
+"20061112,3.83944153578,0.802703592906,4.05405405405,0.81058250986,0.68067226891,0.526990133716\n" +
+"20061113,2.47787610619,0.653984033555,2.20338983051,0.604340313133,1.34899328859,0.620377617453\n" +
+"20061114,1.77304964539,0.55569466381,2.22222222222,0.60944692682,2.35570469799,0.737661045752\n" +
+"20061115,2.30088495575,0.630766388737,0.843170320405,0.375484163785,0.67224080268,0.524368852929\n" +
+"20061116,1.57894736842,0.522144132232,2.19594594595,0.602321544724,0.85810810811,0.555011329732\n" +
+"20061118,2.45183887916,0.647198426991,1.69491525424,0.531417655826,2.37268128162,0.741327769578\n" +
+"20061119,3.52733686067,0.774700921683,1.85185185185,0.55316023504,0.1744966443,0.4413034044\n" +
+"20061120,2.97723292469,0.711254751484,2.6981450253,0.665374048085,1.02702702703,0.579191340004\n" +
+"20061121,2.29681978799,0.629665059963,2.01680672269,0.576301104352,2.5413153457,0.75897176848\n" +
+"20061122,3.01418439716,0.719945245328,2.5466893039,0.649125445325,1.37288135593,0.626609885481\n" +
+"20061123,3.78378378378,0.809917534069,2.6936026936,0.664269394219,3.0404040404,0.807910739509\n" +
+"20061124,3.18584070796,0.738851643987,2.01005025126,0.57439025002,2.78657487091,0.791868460623\n" +
+"20061125,2.83185840708,0.697868332879,3.066439523,0.711598843969,1.35294117647,0.621407707226\n" +
+"20061126,3.01953818828,0.7212041046,2.53378378378,0.645878720149,1.68456375839,0.66207105053\n" +
+"20061127,2.81195079086,0.693033387099,1.51006711409,0.499540743312,1.51256281407,0.640539070386\n" +
+"20061128,2.97723292469,0.711254751484,2.54237288136,0.648039583782,0.69491525424,0.531417655826\n" +
+"20061129,1.41093474427,0.495309102312,3.02013422819,0.701020603129,1.18487394958,0.599318549691\n";
+}
+
+function data_showzerovalues() {
+       return "" +
+       "20070101,0,39\n" +
+       "20070102,62,0\n" +
+       "20070103,0,42\n" +
+       "20070104,57,0\n" +
+       "20070105,65,44\n" +
+       "20070106,55,44\n" +
+       "20070107,0,45\n" +
+       "20070108,66,0\n" +
+       "20070109,0,39\n";
+       }
+
+function data_temp_high_low() {
+return "" +
+"Date,NY,SF\n" +
+"2007-01-01,46;51;56,43;45;48\n" +
+"2007-01-02,43;48;52,48;56;63\n" +
+"2007-01-03,39;46;53,50;54;62\n" +
+"2007-01-04,44;51;58,45;52;56\n" +
+"2007-01-05,51;57;62,44;49;58\n" +
+"2007-01-06,55;64;72,40;50;60\n" +
+"2007-01-07,46;51;56,45;53;63\n" +
+"2007-01-08,40;49;57,43;53;64\n" +
+"2007-01-09,37;41;45,49;56;66\n" +
+"2007-01-10,31;35;38,45;49;54\n" +
+"2007-01-11,29;35;41,41;46;54\n" +
+"2007-01-12,39;45;50,41;44;49\n" +
+"2007-01-13,46;52;57,38;44;53\n" +
+"2007-01-14,42;44;46,36;43;51\n" +
+"2007-01-15,41;46;51,36;46;55\n" +
+"2007-01-16,25;41;57,37;45;54\n" +
+"2007-01-17,21;26;31,41;47;56\n" +
+"2007-01-18,25;32;38,38;48;61\n" +
+"2007-01-19,33;38;43,\n" +
+"2007-01-20,23;29;35,\n" +
+"2007-01-21,21;26;31,55;60;68\n" +
+"2007-01-22,28;31;34,44;54;66\n" +
+"2007-01-23,30;34;38,41;51;64\n" +
+"2007-01-24,34;37;40,42;51;64\n" +
+"2007-01-25,17;27;37,45;49;56\n" +
+"2007-01-26,11;18;24,44;48;52\n" +
+"2007-01-27,22;32;41,47;52;58\n" +
+"2007-01-28,32;38;43,48;52;60\n" +
+"2007-01-29,24;28;32,47;55;64\n" +
+"2007-01-30,23;30;37,51;54;56\n" +
+"2007-01-31,27;31;34,49;52;56\n" +
+"2007-02-01,28;33;37,46;50;52\n" +
+"2007-02-02,34;37;39,47;51;57\n" +
+"2007-02-03,25;32;38,42;51;62\n" +
+"2007-02-04,18;25;31,44;55;69\n" +
+"2007-02-05,10;15;20,48;55;68\n" +
+"2007-02-06,13;20;26,48;54;62\n" +
+"2007-02-07,14;21;27,51;56;62\n" +
+"2007-02-08,17;24;30,49;54;56\n" +
+"2007-02-09,20;27;33,55;56;58\n" +
+"2007-02-10,25;30;34,55;57;60\n" +
+"2007-02-11,21;28;34,51;55;59\n" +
+"2007-02-12,30;36;41,48;51;59\n" +
+"2007-02-13,23;29;34,48;52;58\n" +
+"2007-02-14,19;25;31,44;52;60\n" +
+"2007-02-15,17;21;25,49;55;65\n" +
+"2007-02-16,16;23;30,48;59;72\n" +
+"2007-02-17,22;29;36,51;62;77\n" +
+"2007-02-18,20;28;35,48;54;61\n" +
+"2007-02-19,14;22;29,48;53;61\n" +
+"2007-02-20,29;39;49,49;53;59\n" +
+"2007-02-21,39;44;49,50;54;61\n" +
+"2007-02-22,33;40;46,43;48;54\n" +
+"2007-02-23,23;32;40,43;48;54\n" +
+"2007-02-24,22;33;43,46;51;60\n" +
+"2007-02-25,26;33;39,49;52;55\n" +
+"2007-02-26,31;34;37,44;49;54\n" +
+"2007-02-27,35;39;43,40;45;52\n" +
+"2007-02-28,37;42;46,42;47;53\n" +
+"2007-03-01,33;39;45,44;49;55\n" +
+"2007-03-02,36;49;61,45;52;60\n" +
+"2007-03-03,37;48;59,48;58;68\n" +
+"2007-03-04,35;39;42,53;60;72\n" +
+"2007-03-05,23;33;42,52;58;67\n" +
+"2007-03-06,14;19;24,49;54;66\n" +
+"2007-03-07,14;20;25,50;53;60\n" +
+"2007-03-08,20;28;35,48;52;60\n" +
+"2007-03-09,15;25;34,49;53;58\n" +
+"2007-03-10,30;43;55,50;57;69\n" +
+"2007-03-11,40;45;50,53;63;79\n" +
+"2007-03-12,36;46;56,57;65;78\n" +
+"2007-03-13,44;49;54,52;58;68\n" +
+"2007-03-14,46;56;66,50;54;62\n" +
+"2007-03-15,37;53;69,51;59;75\n" +
+"2007-03-16,28;33;38,53;62;76\n" +
+"2007-03-17,27;35;42,50;53;57\n" +
+"2007-03-18,29;35;41,50;53;61\n" +
+"2007-03-19,33;38;43,49;53;59\n" +
+"2007-03-20,35;43;50,50;54;58\n" +
+"2007-03-21,27;34;41,48;55;62\n" +
+"2007-03-22,41;54;67,50;58;71\n" +
+"2007-03-23,46;54;62,49;56;67\n" +
+"2007-03-24,40;48;55,50;52;56\n" +
+"2007-03-25,38;46;53,50;53;56\n" +
+"2007-03-26,41;48;55,48;53;60\n" +
+"2007-03-27,48;62;75,46;50;56\n" +
+"2007-03-28,47;55;63,47;52;61\n" +
+"2007-03-29,40;48;56,49;57;68\n" +
+"2007-03-30,42;55;67,48;53;64\n" +
+"2007-03-31,44;51;57,49;55;68\n" +
+"2007-04-01,42;47;51,49;52;58\n" +
+"2007-04-02,42;48;54,48;54;68\n" +
+"2007-04-03,43;52;60,48;54;66\n" +
+"2007-04-04,41;43;45,50;56;67\n" +
+"2007-04-05,36;42;47,50;54;63\n" +
+"2007-04-06,34;39;43,48;51;55\n" +
+"2007-04-07,34;39;43,51;54;59\n" +
+"2007-04-08,32;37;42,51;55;61\n" +
+"2007-04-09,35;42;49,52;55;59\n" +
+"2007-04-10,36;43;50,50;56;67\n" +
+"2007-04-11,37;44;51,51;54;57\n" +
+"2007-04-12,41;43;45,48;53;58\n" +
+"2007-04-13,44;47;50,49;54;64\n" +
+"2007-04-14,42;50;57,50;53;56\n" +
+"2007-04-15,42;49;56,48;55;65\n" +
+"2007-04-16,40;47;54,52;58;69\n" +
+"2007-04-17,43;47;50,48;52;56\n" +
+"2007-04-18,43;48;53,46;50;55\n" +
+"2007-04-19,46;55;63,46;50;55\n" +
+"2007-04-20,46;59;71,47;52;60\n" +
+"2007-04-21,48;63;78,49;52;57\n" +
+"2007-04-22,52;64;76,51;55;59\n" +
+"2007-04-23,54;70;85,48;55;65\n" +
+"2007-04-24,59;67;75,49;54;63\n" +
+"2007-04-25,49;56;63,51;54;59\n" +
+"2007-04-26,48;55;62,50;54;63\n" +
+"2007-04-27,48;52;55,53;62;78\n" +
+"2007-04-28,53;63;72,52;61;78\n" +
+"2007-04-29,55;61;66,50;53;61\n" +
+"2007-04-30,55;68;81,51;57;66\n" +
+"2007-05-01,52;62;71,50;55;61\n" +
+"2007-05-02,51;61;71,52;56;62\n" +
+"2007-05-03,53;63;72,50;53;58\n" +
+"2007-05-04,52;62;71,50;54;60\n" +
+"2007-05-05,52;63;73,50;59;70\n" +
+"2007-05-06,48;55;62,57;72;86\n" +
+"2007-05-07,48;57;65,69;76;88\n" +
+"2007-05-08,50;60;70,53;68;79\n" +
+"2007-05-09,58;70;82,50;55;61\n" +
+"2007-05-10,62;71;79,50;54;61\n" +
+"2007-05-11,61;70;78,49;52;56\n" +
+"2007-05-12,55;64;73,50;54;60\n" +
+"2007-05-13,53;61;68,47;55;66\n" +
+"2007-05-14,52;61;69,49;53;60\n" +
+"2007-05-15,59;73;87,49;52;59\n" +
+"2007-05-16,63;76;89,48;55;66\n" +
+"2007-05-17,55;62;68,49;54;61\n" +
+"2007-05-18,49;52;55,50;55;63\n" +
+"2007-05-19,52;55;57,52;57;66\n" +
+"2007-05-20,55;67;78,51;57;67\n" +
+"2007-05-21,56;65;74,49;59;69\n" +
+"2007-05-22,55;64;73,52;61;71\n" +
+"2007-05-23,58;66;74,56;68;83\n" +
+"2007-05-24,61;75;88,50;56;69\n" +
+"2007-05-25,69;82;95,50;52;60\n" +
+"2007-05-26,73;80;86,50;52;60\n" +
+"2007-05-27,68;77;85,50;52;56\n" +
+"2007-05-28,67;77;87,50;55;64\n" +
+"2007-05-29,63;72;81,51;54;59\n" +
+"2007-05-30,62;73;84,53;54;57\n" +
+"2007-05-31,67;79;90,52;54;57\n" +
+"2007-06-01,64;78;92,50;53;59\n" +
+"2007-06-02,73;82;90,50;52;56\n" +
+"2007-06-03,65;73;81,51;54;61\n" +
+"2007-06-04,60;66;71,55;59;65\n" +
+"2007-06-05,68;77;85,54;57;61\n" +
+"2007-06-06,58;65;72,52;56;62\n" +
+"2007-06-07,58;67;76,51;57;68\n" +
+"2007-06-08,66;76;85,51;54;62\n" +
+"2007-06-09,64;73;81,50;58;66\n" +
+"2007-06-10,63;69;74,53;58;64\n" +
+"2007-06-11,66;76;85,52;58;66\n" +
+"2007-06-12,68;76;84,52;60;72\n" +
+"2007-06-13,59;65;70,57;68;80\n" +
+"2007-06-14,58;63;67,57;67;84\n" +
+"2007-06-15,62;68;73,54;62;76\n" +
+"2007-06-16,64;73;82,52;55;59\n" +
+"2007-06-17,69;80;90,52;59;70\n" +
+"2007-06-18,70;78;85,52;56;64\n" +
+"2007-06-19,69;76;83,54;58;65\n" +
+"2007-06-20,70;75;80,54;56;61\n" +
+"2007-06-21,65;75;85,53;59;67\n" +
+"2007-06-22,65;71;77,53;59;67\n" +
+"2007-06-23,61;69;77,53;58;67\n" +
+"2007-06-24,63;74;84,52;58;66\n" +
+"2007-06-25,71;78;84,52;60;75\n" +
+"2007-06-26,73;84;94,51;57;65\n" +
+"2007-06-27,73;84;95,53;59;67\n" +
+"2007-06-28,73;84;94,54;61;72\n" +
+"2007-06-29,70;75;79,55;61;72\n" +
+"2007-06-30,68;76;84,53;58;66\n" +
+"2007-07-01,64;70;75,52;59;68\n" +
+"2007-07-02,60;68;76,55;62;71\n" +
+"2007-07-03,65;74;82,54;59;64\n" +
+"2007-07-04,68;71;73,55;64;75\n" +
+"2007-07-05,69;76;82,55;62;72\n" +
+"2007-07-06,70;79;87,53;57;62\n" +
+"2007-07-07,72;80;88,52;54;58\n" +
+"2007-07-08,76;85;93,53;57;65\n" +
+"2007-07-09,71;84;96,55;59;67\n" +
+"2007-07-10,75;84;93,56;61;70\n" +
+"2007-07-11,74;81;88,59;65;74\n" +
+"2007-07-12,69;77;84,58;66;75\n" +
+"2007-07-13,75;80;85,57;65;78\n" +
+"2007-07-14,70;78;86,56;60;69\n" +
+"2007-07-15,75;83;91,57;63;72\n" +
+"2007-07-16,72;78;83,56;60;67\n" +
+"2007-07-17,71;80;88,56;62;73\n" +
+"2007-07-18,71;75;79,61;66;74\n" +
+"2007-07-19,71;82;92,58;62;72\n" +
+"2007-07-20,69;75;81,58;64;73\n" +
+"2007-07-21,67;76;84,60;66;76\n" +
+"2007-07-22,70;77;84,60;65;74\n" +
+"2007-07-23,65;71;76,58;64;76\n" +
+"2007-07-24,63;73;83,56;60;71\n" +
+"2007-07-25,71;78;85,56;59;64\n" +
+"2007-07-26,73;80;86,55;58;72\n" +
+"2007-07-27,75;82;88,55;60;72\n" +
+"2007-07-28,74;81;88,55;61;70\n" +
+"2007-07-29,74;77;80,55;60;74\n" +
+"2007-07-30,72;80;88,55;63;80\n" +
+"2007-07-31,74;82;90,54;59;68\n" +
+"2007-08-01,75;84;93,55;60;69\n" +
+"2007-08-02,76;87;98,55;61;70\n" +
+"2007-08-03,73;83;93,54;60;71\n" +
+"2007-08-04,75;84;92,54;58;67\n" +
+"2007-08-05,72;78;84,55;58;62\n" +
+"2007-08-06,75;81;86,56;60;68\n" +
+"2007-08-07,78;84;90,56;61;69\n" +
+"2007-08-08,75;85;95,56;59;65\n" +
+"2007-08-09,74;80;85,57;61;72\n" +
+"2007-08-10,59;67;75,55;62;73\n" +
+"2007-08-11,60;72;83,56;60;68\n" +
+"2007-08-12,73;81;88,54;60;70\n" +
+"2007-08-13,75;82;88,55;61;74\n" +
+"2007-08-14,71;77;83,55;60;71\n" +
+"2007-08-15,72;81;89,54;61;70\n" +
+"2007-08-16,77;82;87,57;62;72\n" +
+"2007-08-17,66;77;87,53;64;77\n" +
+"2007-08-18,62;69;76,56;62;71\n" +
+"2007-08-19,62;68;73,57;64;75\n" +
+"2007-08-20,61;67;73,59;65;74\n" +
+"2007-08-21,58;60;62,58;65;80\n" +
+"2007-08-22,58;64;69,57;65;80\n" +
+"2007-08-23,63;71;79,56;62;73\n" +
+"2007-08-24,67;77;86,58;62;70\n" +
+"2007-08-25,75;83;91,58;62;71\n" +
+"2007-08-26,75;80;85,57;61;68\n" +
+"2007-08-27,71;77;83,56;61;71\n" +
+"2007-08-28,72;78;84,55;66;82\n" +
+"2007-08-29,72;79;86,61;69;83\n" +
+"2007-08-30,73;81;88,62;71;82\n" +
+"2007-08-31,72;77;81,59;64;72\n" +
+"2007-09-01,66;73;79,58;66;80\n" +
+"2007-09-02,63;72;80,58;67;86\n" +
+"2007-09-03,67;77;86,58;63;71\n" +
+"2007-09-04,73;79;85,60;64;72\n" +
+"2007-09-05,69;74;79,58;68;84\n" +
+"2007-09-06,70;77;83,60;64;69\n" +
+"2007-09-07,72;80;88,59;63;71\n" +
+"2007-09-08,74;82;90,58;61;66\n" +
+"2007-09-09,74;80;86,59;61;66\n" +
+"2007-09-10,73;76;78,60;64;71\n" +
+"2007-09-11,72;75;77,59;62;70\n" +
+"2007-09-12,66;72;77,59;62;65\n" +
+"2007-09-13,65;71;76,59;65;74\n" +
+"2007-09-14,67;72;77,60;66;74\n" +
+"2007-09-15,58;65;71,58;62;72\n" +
+"2007-09-16,55;62;69,59;63;71\n" +
+"2007-09-17,56;63;70,56;62;71\n" +
+"2007-09-18,57;65;72,56;60;67\n" +
+"2007-09-19,59;68;76,54;57;63\n" +
+"2007-09-20,64;74;83,54;59;72\n" +
+"2007-09-21,68;76;84,58;62;73\n" +
+"2007-09-22,68;72;76,58;60;65\n" +
+"2007-09-23,67;75;82,56;61;67\n" +
+"2007-09-24,65;73;81,52;62;78\n" +
+"2007-09-25,66;78;89,54;66;86\n" +
+"2007-09-26,72;81;90,58;70;92\n" +
+"2007-09-27,73;79;84,57;61;68\n" +
+"2007-09-28,64;71;77,55;59;63\n" +
+"2007-09-29,62;69;76,51;60;74\n" +
+"2007-09-30,61;67;73,51;60;71\n" +
+"2007-10-01,62;67;71,56;62;71\n" +
+"2007-10-02,60;68;75,54;62;76\n" +
+"2007-10-03,66;73;80,53;59;67\n" +
+"2007-10-04,69;77;85,53;55;59\n" +
+"2007-10-05,67;75;83,51;56;62\n" +
+"2007-10-06,68;77;85,48;57;68\n" +
+"2007-10-07,67;75;82,51;59;75\n" +
+"2007-10-08,67;78;89,52;59;78\n" +
+"2007-10-09,61;72;83,52;59;67\n" +
+"2007-10-10,62;68;73,\n" +
+"2007-10-11,59;64;69,\n" +
+"2007-10-12,51;57;62,\n" +
+"2007-10-13,49;56;63,\n" +
+"2007-10-14,52;59;65,\n" +
+"2007-10-15,53;61;69,\n" +
+"2007-10-16,58;65;71,\n" +
+"2007-10-17,60;67;73,\n" +
+"2007-10-18,64;72;79,\n" +
+"2007-10-19,66;70;74,\n" +
+"2007-10-20,64;68;72,\n" +
+"2007-10-21,59;68;76,\n" +
+"2007-10-22,62;70;77,\n" +
+"2007-10-23,67;74;81,\n" +
+"2007-10-24,54;62;70,\n" +
+"2007-10-25,52;57;61,\n" +
+"2007-10-26,53;57;60,\n" +
+"2007-10-27,59;65;70,\n" +
+"2007-10-28,46;53;59,\n" +
+"2007-10-29,43;49;54,\n" +
+"2007-10-30,49;57;64,\n" +
+"2007-10-31,51;58;64,53;60;67\n" +
+"2007-11-01,52;60;67,51;56;72\n" +
+"2007-11-02,46;51;56,49;60;82\n" +
+"2007-11-03,47;50;53,50;61;79\n" +
+"2007-11-04,49;53;56,53;62;80\n" +
+"2007-11-05,48;53;58,50;54;59\n" +
+"2007-11-06,45;52;58,50;54;61\n" +
+"2007-11-07,42;46;50,50;53;59\n" +
+"2007-11-08,38;43;48,53;56;60\n" +
+"2007-11-09,40;44;48,53;58;66\n" +
+"2007-11-10,39;43;47,52;57;62\n" +
+"2007-11-11,34;41;48,51;56;64\n" +
+"2007-11-12,40;46;52,47;56;68\n" +
+"2007-11-13,49;55;61,57;61;73\n" +
+"2007-11-14,44;53;61,53;61;72\n" +
+"2007-11-15,45;54;62,56;59;67\n" +
+"2007-11-16,39;44;48,54;56;61\n" +
+"2007-11-17,38;43;47,53;56;61\n" +
+"2007-11-18,41;44;47,53;57;63\n" +
+"2007-11-19,39;43;46,50;56;60\n" +
+"2007-11-20,40;45;50,48;54;63\n" +
+"2007-11-21,44;51;58,44;53;66\n" +
+"2007-11-22,42;54;66,46;54;68\n" +
+"2007-11-23,32;37;42,44;57;72\n" +
+"2007-11-24,28;34;40,44;54;65\n" +
+"2007-11-25,37;44;50,51;55;62\n" +
+"2007-11-26,41;52;63,47;54;65\n" +
+"2007-11-27,46;56;65,50;55;65\n" +
+"2007-11-28,37;42;47,47;56;66\n" +
+"2007-11-29,42;47;52,48;53;64\n" +
+"2007-11-30,37;40;43,45;49;57\n" +
+"2007-12-01,26;34;42,46;49;56\n" +
+"2007-12-02,21;30;38,47;54;59\n" +
+"2007-12-03,34;42;49,52;59;64\n" +
+"2007-12-04,30;33;35,31;57;69\n" +
+"2007-12-05,29;32;34,52;56;63\n" +
+"2007-12-06,23;30;37,51;52;54\n" +
+"2007-12-07,34;35;36,48;52;57\n" +
+"2007-12-08,35;40;45,42;49;56\n" +
+"2007-12-09,36;39;41,44;51;59\n" +
+"2007-12-10,37;40;43,45;50;59\n" +
+"2007-12-11,36;41;46,46;52;59\n" +
+"2007-12-12,37;46;54,42;49;57\n" +
+"2007-12-13,30;34;38,42;49;59\n" +
+"2007-12-14,32;39;45,40;48;57\n" +
+"2007-12-15,30;34;38,43;49;56\n" +
+"2007-12-16,31;36;40,46;51;57\n" +
+"2007-12-17,27;31;35,48;52;56\n" +
+"2007-12-18,31;35;38,49;52;55\n" +
+"2007-12-19,35;41;47,46;51;57\n" +
+"2007-12-20,38;42;45,45;51;56\n" +
+"2007-12-21,36;39;42,43;48;54\n" +
+"2007-12-22,36;39;42,39;46;53\n" +
+"2007-12-23,41;52;62,44;51;61\n" +
+"2007-12-24,39;46;52,49;53;60\n" +
+"2007-12-25,38;41;44,41;49;57\n" +
+"2007-12-26,34;38;41,44;48;55\n" +
+"2007-12-27,37;42;46,41;46;52\n" +
+"2007-12-28,43;47;50,41;44;45\n" +
+"2007-12-29,43;48;53,45;48;52\n" +
+"2007-12-30,37;41;44,46;49;53\n" +
+"2007-12-31,36;41;46,38;47;56\n" +
+"2008-01-01,35;42;49,42;50;58\n" +
+"2008-01-02,19;29;39,43;50;60\n" +
+"2008-01-03,15;19;23,51;53;58\n" +
+"2008-01-04,19;28;37,51;53;59\n" +
+"2008-01-05,33;38;43,46;49;51\n" +
+"2008-01-06,37;42;47,42;47;51\n" +
+"2008-01-07,42;52;61,43;48;53\n" +
+"2008-01-08,52;58;64,44;49;53\n" +
+"2008-01-09,49;58;66,46;49;52\n" +
+"2008-01-10,42;47;51,48;50;51\n" +
+"2008-01-11,41;49;57,48;51;55\n" +
+"2008-01-12,40;45;49,46;51;58\n" +
+"2008-01-13,37;42;47,44;51;60\n" +
+"2008-01-14,34;37;39,46;51;58\n" +
+"2008-01-15,34;37;40,44;49;57\n" +
+"2008-01-16,31;36;40,41;50;60\n" +
+"2008-01-17,30;36;41,44;50;61\n" +
+"2008-01-18,37;43;49,42;52;63\n" +
+"2008-01-19,34;36;37,42;50;62\n" +
+"2008-01-20,19;27;35,46;49;53\n" +
+"2008-01-21,16;22;28,43;45;46\n" +
+"2008-01-22,25;33;40,42;44;47\n" +
+"2008-01-23,32;37;41,42;44;49\n" +
+"2008-01-24,26;31;35,43;44;45\n" +
+"2008-01-25,23;29;34,45;49;52\n" +
+"2008-01-26,27;31;35,52;55;62\n" +
+"2008-01-27,31;35;39,45;51;54\n" +
+"2008-01-28,29;36;43,42;46;51\n" +
+"2008-01-29,33;39;44,41;45;49\n" +
+"2008-01-30,34;42;50,42;47;54\n" +
+"2008-01-31,30;35;40,45;48;52\n" +
+"2008-02-01,33;45;56,40;46;52\n" +
+"2008-02-02,36;40;44,42;47;53\n" +
+"2008-02-03,33;42;50,46;49;52\n" +
+"2008-02-04,34;39;43,43;49;58\n" +
+"2008-02-05,38;45;52,40;49;58\n" +
+"2008-02-06,40;55;69,47;50;55\n" +
+"2008-02-07,39;45;50,43;50;58\n" +
+"2008-02-08,36;41;46,46;53;65\n" +
+"2008-02-09,37;41;45,46;57;69\n" +
+"2008-02-10,17;31;45,49;57;70\n" +
+"2008-02-11,12;19;25,48;56;69\n" +
+"2008-02-12,19;25;31,46;54;70\n" +
+"2008-02-13,31;43;54,48;57;65\n" +
+"2008-02-14,30;36;41,49;54;64\n" +
+"2008-02-15,32;40;48,46;52;60\n" +
+"2008-02-16,25;30;35,45;51;64\n" +
+"2008-02-17,30;42;53,46;50;55\n" +
+"2008-02-18,42;53;64,47;50;58\n" +
+"2008-02-19,29;36;42,48;51;53\n" +
+"2008-02-20,25;29;33,48;51;57\n" +
+"2008-02-21,22;28;34,48;51;56\n" +
+"2008-02-22,26;30;34,46;50;56\n" +
+"2008-02-23,30;33;36,43;48;54\n" +
+"2008-02-24,27;34;40,52;54;58\n" +
+"2008-02-25,33;41;49,49;55;63\n" +
+"2008-02-26,38;43;48,48;58;70\n" +
+"2008-02-27,24;36;47,52;58;71\n" +
+"2008-02-28,20;25;29,48;56;74\n" +
+"2008-02-29,19;28;36,48;52;62\n" +
+"2008-03-01,34;40;45,50;53;59\n" +
+"2008-03-02,30;36;43,49;59;71\n" +
+"2008-03-03,35;44;52,47;57;72\n" +
+"2008-03-04,43;53;62,46;55;68\n" +
+"2008-03-05,39;49;58,46;55;71\n" +
+"2008-03-06,36;43;49,47;55;65\n" +
+"2008-03-07,35;40;45,48;56;69\n" +
+"2008-03-08,38;48;57,49;55;66\n" +
+"2008-03-09,31;37;43,47;58;76\n" +
+"2008-03-10,28;37;46,52;58;70\n" +
+"2008-03-11,36;43;49,50;54;66\n" +
+"2008-03-12,36;42;48,48;53;63\n" +
+"2008-03-13,33;39;45,30;55;61\n" +
+"2008-03-14,39;46;53,49;52;58\n" +
+"2008-03-15,42;49;55,43;50;57\n" +
+"2008-03-16,36;42;47,47;55;68\n" +
+"2008-03-17,32;41;49,49;56;66\n" +
+"2008-03-18,36;41;46,48;55;64\n" +
+"2008-03-19,42;47;52,49;52;60\n" +
+"2008-03-20,37;48;59,46;51;59\n" +
+"2008-03-21,35;41;47,47;54;67\n" +
+"2008-03-22,35;43;50,46;55;73\n" +
+"2008-03-23,32;40;48,46;54;66\n" +
+"2008-03-24,33;41;49,47;54;64\n" +
+"2008-03-25,32;39;46,49;53;59\n" +
+"2008-03-26,43;52;60,48;52;60\n" +
+"2008-03-27,44;47;50,45;50;59\n" +
+"2008-03-28,40;45;49,46;52;60\n" +
+"2008-03-29,34;41;47,48;52;59\n" +
+"2008-03-30,28;37;46,44;49;56\n" +
+"2008-03-31,39;48;57,41;50;62\n" +
+"2008-04-01,55;60;64,49;53;60\n" +
+"2008-04-02,39;47;54,48;54;62\n" +
+"2008-04-03,35;42;49,48;53;62\n" +
+"2008-04-04,42;49;55,45;50;57\n" +
+"2008-04-05,49;54;59,46;50;57\n" +
+"2008-04-06,42;46;50,48;52;59\n" +
+"2008-04-07,41;46;51,45;51;59\n" +
+"2008-04-08,41;48;55,47;50;55\n" +
+"2008-04-09,39;48;56,47;52;59\n" +
+"2008-04-10,48;62;75,46;55;66\n" +
+"2008-04-11,47;54;61,50;65;84\n" +
+"2008-04-12,47;61;74,57;71;87\n" +
+"2008-04-13,44;50;55,51;64;80\n" +
+"2008-04-14,41;49;56,48;52;58\n" +
+"2008-04-15,43;51;59,45;51;60\n" +
+"2008-04-16,46;56;65,46;51;66\n" +
+"2008-04-17,45;59;72,49;57;75\n" +
+"2008-04-18,50;67;83,48;52;60\n" +
+"2008-04-19,51;62;72,45;49;55\n" +
+"2008-04-20,48;52;56,43;48;55\n" +
+"2008-04-21,47;52;57,44;49;57\n" +
+"2008-04-22,48;59;69,48;54;64\n" +
+"2008-04-23,52;64;76,48;53;60\n" +
+"2008-04-24,58;68;77,45;53;65\n" +
+"2008-04-25,55;63;70,48;57;69\n" +
+"2008-04-26,52;58;63,51;62;78\n" +
+"2008-04-27,49;52;55,53;62;77\n" +
+"2008-04-28,48;54;59,49;56;66\n" +
+"2008-04-29,47;53;58,50;53;61\n" +
+"2008-04-30,44;51;57,47;52;60\n" +
+"2008-05-01,45;52;59,47;55;66\n" +
+"2008-05-02,50;53;55,49;53;60\n" +
+"2008-05-03,48;52;56,48;54;63\n" +
+"2008-05-04,49;61;72,49;52;59\n" +
+"2008-05-05,51;61;71,48;53;61\n" +
+"2008-05-06,52;65;77,49;56;68\n" +
+"2008-05-07,58;66;73,49;55;65\n" +
+"2008-05-08,64;69;74,48;53;62\n" +
+"2008-05-09,50;57;64,46;54;65\n" +
+"2008-05-10,50;59;67,47;54;64\n" +
+"2008-05-11,50;56;61,48;54;64\n" +
+"2008-05-12,48;53;57,50;56;66\n" +
+"2008-05-13,52;61;70,49;61;78\n" +
+"2008-05-14,53;64;74,55;69;85\n" +
+"2008-05-15,54;64;73,68;81;102\n" +
+"2008-05-16,51;56;61,65;77;99\n" +
+"2008-05-17,50;62;74,52;63;73\n" +
+"2008-05-18,56;62;67,51;54;62\n" +
+"2008-05-19,51;56;61,50;54;60\n" +
+"2008-05-20,50;54;58,52;56;63\n" +
+"2008-05-21,50;60;69,50;57;65\n" +
+"2008-05-22,50;56;61,52;58;68\n" +
+"2008-05-23,52;60;68,49;55;65\n" +
+"2008-05-24,56;63;70,51;54;62\n" +
+"2008-05-25,58;68;77,50;56;64\n" +
+"2008-05-26,60;68;76,50;55;62\n" +
+"2008-05-27,60;73;85,51;56;64\n" +
+"2008-05-28,53;61;69,52;58;67\n" +
+"2008-05-29,54;66;78,53;57;63\n" +
+"2008-05-30,62;72;82,52;56;66\n" +
+"2008-05-31,63;70;77,52;54;60\n" +
+"2008-06-01,67;76;84,49;55;63\n" +
+"2008-06-02,61;71;80,49;54;62\n" +
+"2008-06-03,65;75;84,51;55;62\n" +
+"2008-06-04,58;65;71,51;54;62\n" +
+"2008-06-05,62;67;72,51;58;70\n" +
+"2008-06-06,59;66;73,51;57;66\n" +
+"2008-06-07,60;78;96,50;59;70\n" +
+"2008-06-08,78;87;96,52;61;74\n" +
+"2008-06-09,76;88;99,54;66;83\n" +
+"2008-06-10,73;87;100,53;64;77\n" +
+"2008-06-11,72;80;88,57;65;79\n" +
+"2008-06-12,71;79;86,55;67;93\n" +
+"2008-06-13,65;74;82,50;56;65\n" +
+"2008-06-14,70;80;90,52;56;65\n" +
+"2008-06-15,65;74;83,50;54;61\n" +
+"2008-06-16,64;71;78,49;52;58\n" +
+"2008-06-17,64;71;77,48;60;78\n" +
+"2008-06-18,60;68;75,54;65;79\n" +
+"2008-06-19,60;69;77,57;72;92\n" +
+"2008-06-20,63;71;79,63;80;102\n" +
+"2008-06-21,65;75;85,56;75;85\n" +
+"2008-06-22,71;76;80,51;56;63\n" +
+"2008-06-23,70;77;83,50;52;56\n" +
+"2008-06-24,70;76;81,50;58;71\n" +
+"2008-06-25,68;77;85,51;56;64\n" +
+"2008-06-26,74;80;85,50;57;70\n" +
+"2008-06-27,76;81;85,52;57;62\n" +
+"2008-06-28,70;80;90,55;58;64\n" +
+"2008-06-29,74;82;90,53;57;65\n" +
+"2008-06-30,73;79;85,52;57;68\n" +
+"2008-07-01,71;79;86,53;58;67\n" +
+"2008-07-02,69;78;87,52;56;65\n" +
+"2008-07-03,73;83;93,54;60;71\n" +
+"2008-07-04,71;76;80,55;60;69\n" +
+"2008-07-05,69;72;75,56;62;74\n" +
+"2008-07-06,68;74;79,56;62;74\n" +
+"2008-07-07,70;78;85,56;66;80\n" +
+"2008-07-08,76;84;91,59;69;86\n" +
+"2008-07-09,75;81;87,62;69;82\n" +
+"2008-07-10,73;80;87,59;64;72\n" +
+"2008-07-11,69;79;89,58;64;73\n" +
+"2008-07-12,73;80;86,60;64;73\n" +
+"2008-07-13,72;79;85,60;64;71\n" +
+"2008-07-14,70;77;83,59;62;68\n" +
+"2008-07-15,72;81;90,59;62;70\n" +
+"2008-07-16,71;81;90,57;60;66\n" +
+"2008-07-17,74;83;92,54;58;65\n" +
+"2008-07-18,76;86;96,52;56;64\n" +
+"2008-07-19,81;89;97,53;57;63\n" +
+"2008-07-20,79;87;94,52;55;63\n" +
+"2008-07-21,75;84;93,54;57;63\n" +
+"2008-07-22,73;80;87,52;60;73\n" +
+"2008-07-23,70;76;82,54;61;76\n" +
+"2008-07-24,70;78;85,52;60;72\n" +
+"2008-07-25,71;79;87,52;61;72\n" +
+"2008-07-26,74;81;88,55;65;79\n" +
+"2008-07-27,70;76;82,55;57;62\n" +
+"2008-07-28,69;79;88,54;57;65\n" +
+"2008-07-29,75;83;90,55;59;68\n" +
+"2008-07-30,73;80;87,56;60;69\n" +
+"2008-07-31,75;83;90,55;58;69\n" +
+"2008-08-01,74;81;88,55;62;74\n" +
+"2008-08-02,69;76;82,55;64;79\n" +
+"2008-08-03,68;76;83,54;57;62\n" +
+"2008-08-04,68;77;85,53;56;65\n" +
+"2008-08-05,73;79;84,52;56;64\n" +
+"2008-08-06,72;80;88,54;57;68\n" +
+"2008-08-07,68;77;86,54;57;66\n" +
+"2008-08-08,68;75;82,54;58;66\n" +
+"2008-08-09,66;74;82,54;59;67\n" +
+"2008-08-10,69;76;82,53;64;79\n" +
+"2008-08-11,60;67;73,56;63;78\n" +
+"2008-08-12,63;72;81,55;63;79\n" +
+"2008-08-13,69;75;81,56;64;82\n" +
+"2008-08-14,68;76;84,55;61;74\n" +
+"2008-08-15,67;74;81,55;62;75\n" +
+"2008-08-16,66;74;82,57;60;66\n" +
+"2008-08-17,69;77;85,57;60;69\n" +
+"2008-08-18,73;81;88,58;62;68\n" +
+"2008-08-19,65;74;82,58;62;73\n" +
+"2008-08-20,61;69;77,58;65;74\n" +
+"2008-08-21,66;74;81,60;64;73\n" +
+"2008-08-22,69;76;83,58;62;72\n" +
+"2008-08-23,67;74;80,57;62;71\n" +
+"2008-08-24,71;76;81,57;64;73\n" +
+"2008-08-25,68;77;85,58;62;72\n" +
+"2008-08-26,62;71;80,55;61;79\n" +
+"2008-08-27,64;71;77,59;70;88\n" +
+"2008-08-28,66;75;84,62;72;86\n" +
+"2008-08-29,68;74;80,59;67;84\n" +
+"2008-08-30,68;76;84,57;61;70\n" +
+"2008-08-31,69;77;84,54;61;73\n" +
+"2008-09-01,68;76;84,57;68;83\n" +
+"2008-09-02,71;79;86,58;68;85\n" +
+"2008-09-03,70;76;81,59;69;87\n" +
+"2008-09-04,72;81;90,60;73;94\n" +
+"2008-09-05,73;80;86,63;74;92\n" +
+"2008-09-06,72;78;83,63;72;84\n" +
+"2008-09-07,70;77;83,56;62;70\n" +
+"2008-09-08,68;76;83,55;60;67\n" +
+"2008-09-09,67;73;78,58;60;65\n" +
+"2008-09-10,63;68;73,57;61;68\n" +
+"2008-09-11,62;68;73,56;60;66\n" +
+"2008-09-12,65;69;72,55;57;63\n" +
+"2008-09-13,68;74;79,55;59;67\n" +
+"2008-09-14,71;80;89,55;59;67\n" +
+"2008-09-15,67;76;84,54;58;67\n" +
+"2008-09-16,63;67;70,54;58;65\n" +
+"2008-09-17,61;68;75,56;60;67\n" +
+"2008-09-18,61;68;74,53;60;70\n" +
+"2008-09-19,55;61;66,55;62;72\n" +
+"2008-09-20,54;61;68,59;62;69\n" +
+"2008-09-21,59;70;80,57;61;70\n" +
+"2008-09-22,62;68;73,55;64;79\n" +
+"2008-09-23,57;63;69,56;67;85\n" +
+"2008-09-24,58;64;69,57;64;74\n" +
+"2008-09-25,56;62;67,57;65;76\n" +
+"2008-09-26,60;64;68,56;63;75\n" +
+"2008-09-27,64;67;69,54;62;78\n" +
+"2008-09-28,67;71;74,55;59;65\n" +
+"2008-09-29,63;68;73,57;61;67\n" +
+"2008-09-30,62;68;73,57;63;76\n" +
+"2008-10-01,61;67;73,59;64;74\n" +
+"2008-10-02,56;60;64,60;65;73\n" +
+"2008-10-03,54;60;65,59;63;71\n" +
+"2008-10-04,53;58;63,58;62;68\n" +
+"2008-10-05,54;59;63,57;62;69\n" +
+"2008-10-06,51;57;63,59;64;76\n" +
+"2008-10-07,48;56;64,56;64;79\n" +
+"2008-10-08,52;59;66,58;64;75\n" +
+"2008-10-09,60;69;77,54;61;71\n" +
+"2008-10-10,61;67;73,54;58;64\n" +
+"2008-10-11,57;64;71,55;60;67\n" +
+"2008-10-12,57;64;71,55;62;72\n" +
+"2008-10-13,60;68;75,58;64;77\n" +
+"2008-10-14,59;64;68,53;63;80\n" +
+"2008-10-15,60;66;71,55;65;83\n" +
+"2008-10-16,57;68;78,58;68;86\n" +
+"2008-10-17,52;56;60,59;69;86\n" +
+"2008-10-18,44;51;57,53;58;65\n" +
+"2008-10-19,43;51;58,52;54;57\n" +
+"2008-10-20,45;54;62,51;57;65\n" +
+"2008-10-21,46;55;63,52;62;79\n" +
+"2008-10-22,42;47;52,55;67;83\n" +
+"2008-10-23,40;47;54,61;70;85\n" +
+"2008-10-24,43;50;57,59;66;86\n" +
+"2008-10-25,54;61;67,57;67;82\n" +
+"2008-10-26,51;57;63,52;57;66\n" +
+"2008-10-27,50;57;64,51;55;65\n" +
+"2008-10-28,41;46;51,50;55;65\n" +
+"2008-10-29,40;44;48,49;54;64\n" +
+"2008-10-30,38;44;49,51;56;61\n" +
+"2008-10-31,42;53;64,58;61;66\n" +
+"2008-11-01,52;59;65,34;58;63\n" +
+"2008-11-02,39;46;52,\n" +
+"2008-11-03,44;52;59,53;56;61\n" +
+"2008-11-04,50;57;64,51;54;61\n" +
+"2008-11-05,55;59;63,46;55;66\n" +
+"2008-11-06,59;62;65,54;60;72\n" +
+"2008-11-07,58;62;65,52;60;75\n" +
+"2008-11-08,55;58;60,53;56;62\n" +
+"2008-11-09,50;53;56,52;56;63\n" +
+"2008-11-10,44;48;51,49;55;62\n" +
+"2008-11-11,40;46;51,53;58;64\n" +
+"2008-11-12,43;47;50,56;59;68\n" +
+"2008-11-13,47;53;58,52;61;74\n" +
+"2008-11-14,55;59;63,55;67;80\n" +
+"2008-11-15,58;62;65,60;70;82\n" +
+"2008-11-16,42;52;61,58;66;78\n" +
+"2008-11-17,39;43;47,57;66;77\n" +
+"2008-11-18,31;36;41,52;56;62\n" +
+"2008-11-19,28;33;37,52;54;57\n" +
+"2008-11-20,31;35;39,54;58;66\n" +
+"2008-11-21,27;33;39,47;55;67\n" +
+"2008-11-22,25;29;33,47;55;68\n" +
+"2008-11-23,26;32;37,49;56;69\n" +
+"2008-11-24,33;43;53,49;56;64\n" +
+"2008-11-25,38;43;48,52;57;61\n" +
+"2008-11-26,38;42;45,53;55;58\n" +
+"2008-11-27,37;41;44,53;55;61\n" +
+"2008-11-28,38;44;50,50;54;60\n" +
+"2008-11-29,38;42;45,50;57;68\n" +
+"2008-11-30,36;40;44,51;58;70\n" +
+"2008-12-01,43;49;55,53;55;57\n" +
+"2008-12-02,38;42;46,52;56;64\n" +
+"2008-12-03,35;39;43,50;54;59\n" +
+"2008-12-04,39;45;51,47;53;62\n" +
+"2008-12-05,34;38;42,46;54;66\n" +
+"2008-12-06,31;34;37,47;53;62\n" +
+"2008-12-07,22;30;37,44;50;56\n" +
+"2008-12-08,20;26;31,46;51;55\n" +
+"2008-12-09,31;44;56,42;50;59\n" +
+"2008-12-10,44;54;63,47;52;63\n" +
+"2008-12-11,38;41;44,48;54;63\n" +
+"2008-12-12,33;40;46,48;53;60\n" +
+"2008-12-13,28;31;33,45;49;55\n" +
+"2008-12-14,30;40;49,43;46;50\n" +
+"2008-12-15,48;58;67,41;46;51\n" +
+"2008-12-16,31;45;59,39;42;47\n" +
+"2008-12-17,33;39;44,39;45;53\n" +
+"2008-12-18,37;40;43,38;47;55\n" +
+"2008-12-19,30;35;39,45;50;55\n" +
+"2008-12-20,23;28;32,39;46;54\n" +
+"2008-12-21,26;33;40,46;48;51\n" +
+"2008-12-22,14;22;29,44;49;54\n" +
+"2008-12-23,20;26;31,43;48;53\n" +
+"2008-12-24,31;45;58,46;50;54\n" +
+"2008-12-25,35;47;58,45;48;53\n" +
+"2008-12-26,32;37;41,\n" +
+"2008-12-27,40;44;48,\n" +
+"2008-12-28,47;56;65,\n" +
+"2008-12-29,38;44;49,47;53;63\n" +
+"2008-12-30,34;39;44,46;51;58\n" +
+"2008-12-31,19;28;36,45;48;55\n" +
+"2009-01-01,16;22;27,44;48;51\n" +
+"2009-01-02,24;30;36,45;50;55\n" +
+"2009-01-03,30;35;39,40;46;54\n" +
+"2009-01-04,26;35;43,36;45;54\n" +
+"2009-01-05,39;42;44,45;46;48\n" +
+"2009-01-06,31;35;39,44;49;54\n" +
+"2009-01-07,32;36;40,44;47;52\n" +
+"2009-01-08,30;35;39,46;49;56\n" +
+"2009-01-09,27;30;33,41;51;62\n" +
+"2009-01-10,24;27;30,48;56;66\n" +
+"2009-01-11,26;29;32,44;55;70\n" +
+"2009-01-12,23;29;34,49;62;76\n" +
+"2009-01-13,29;35;41,55;64;75\n" +
+"2009-01-14,18;28;37,48;59;70\n" +
+"2009-01-15,17;20;23,48;60;74\n" +
+"2009-01-16,11;15;18,48;60;72\n" +
+"2009-01-17,8;15;22,48;57;68\n" +
+"2009-01-18,22;28;33,49;58;70\n" +
+"2009-01-19,26;30;33,46;58;71\n" +
+"2009-01-20,22;26;30,47;58;71\n" +
+"2009-01-21,19;24;28,52;57;62\n" +
+"2009-01-22,22;30;37,51;53;55\n" +
+"2009-01-23,28;37;45,53;55;56\n" +
+"2009-01-24,18;33;47,49;52;55\n" +
+"2009-01-25,15;22;28,46;50;55\n" +
+"2009-01-26,20;25;30,43;49;57\n" +
+"2009-01-27,26;29;31,43;50;58\n" +
+"2009-01-28,24;33;42,43;51;61\n" +
+"2009-01-29,27;32;37,44;56;70\n" +
+"2009-01-30,28;32;35,47;56;69\n" +
+"2009-01-31,21;25;28,44;52;69\n" +
+"2009-02-01,28;41;53,44;54;70\n" +
+"2009-02-02,33;43;52,47;57;69\n" +
+"2009-02-03,26;32;37,47;57;71\n" +
+"2009-02-04,18;25;31,47;55;67\n" +
+"2009-02-05,14;19;24,51;54;58\n" +
+"2009-02-06,17;25;32,51;53;55\n" +
+"2009-02-07,24;37;49,48;54;63\n" +
+"2009-02-08,38;49;59,45;50;56\n" +
+"2009-02-09,35;41;46,43;47;56\n" +
+"2009-02-10,33;42;50,38;47;54\n" +
+"2009-02-11,38;51;63,43;48;56\n" +
+"2009-02-12,44;51;57,44;48;55\n" +
+"2009-02-13,32;38;44,43;46;54\n" +
+"2009-02-14,29;35;41,43;48;54\n" +
+"2009-02-15,30;36;42,46;48;51\n" +
+"2009-02-16,29;35;40,47;49;56\n" +
+"2009-02-17,26;34;41,47;50;54\n" +
+"2009-02-18,32;38;43,45;52;60\n" +
+"2009-02-19,28;39;50,43;54;66\n" +
+"2009-02-20,24;29;34,49;57;68\n" +
+"2009-02-21,28;35;42,50;56;63\n" +
+"2009-02-22,32;38;43,53;55;58\n" +
+"2009-02-23,25;30;34,52;56;60\n" +
+"2009-02-24,23;30;37,50;52;53\n" +
+"2009-02-25,26;34;41,51;55;61\n" +
+"2009-02-26,35;43;50,48;54;60\n" +
+"2009-02-27,40;49;58,46;53;62\n" +
+"2009-02-28,32;43;54,50;56;66\n" +
+"2009-03-01,28;32;35,54;57;59\n" +
+"2009-03-02,18;23;28,53;56;61\n" +
+"2009-03-03,14;21;28,48;52;58\n" +
+"2009-03-04,19;27;35,44;50;58\n" +
+"2009-03-05,28;36;43,46;51;60\n" +
+"2009-03-06,38;46;54,47;52;58\n" +
+"2009-03-07,46;58;69,43;52;65\n" +
+"2009-03-08,44;53;62,50;53;60\n" +
+"2009-03-09,37;42;46,\n" +
+"2009-03-10,37;42;46,\n" +
+"2009-03-11,41;50;59,\n" +
+"2009-03-12,32;38;44,\n" +
+"2009-03-13,27;33;38,\n" +
+"2009-03-14,34;42;50,\n" +
+"2009-03-15,42;48;53,\n" +
+"2009-03-16,38;42;46,\n" +
+"2009-03-17,36;44;52,\n" +
+"2009-03-18,40;51;61,\n" +
+"2009-03-19,41;46;50,\n" +
+"2009-03-20,33;39;44,\n" +
+"2009-03-21,32;40;47,53;55;60\n" +
+"2009-03-22,36;45;53,45;50;58\n" +
+"2009-03-23,30;36;42,44;51;59\n" +
+"2009-03-24,29;38;47,43;54;66\n" +
+"2009-03-25,36;44;52,47;56;68\n" +
+"2009-03-26,40;43;45,51;58;68\n" +
+"2009-03-27,43;53;63,52;61;75\n" +
+"2009-03-28,42;48;53,51;59;71\n" +
+"2009-03-29,42;47;52,48;56;64\n" +
+"2009-03-30,42;47;51,51;57;68\n" +
+"2009-03-31,40;50;60,47;56;70\n" +
+"2009-04-01,42;46;50,50;57;68\n" +
+"2009-04-02,42;51;59,48;52;60\n" +
+"2009-04-03,44;53;61,47;53;61\n" +
+"2009-04-04,48;52;55,43;55;70\n" +
+"2009-04-05,45;56;66,46;61;80\n" +
+"2009-04-06,44;48;51,51;61;79\n" +
+"2009-04-07,40;45;50,51;55;63\n" +
+"2009-04-08,37;43;49,50;55;64\n" +
+"2009-04-09,38;50;61,50;53;58\n" +
+"2009-04-10,46;52;58,48;54;63\n" +
+"2009-04-11,43;47;50,46;53;61\n" +
+"2009-04-12,38;43;48,49;56;66\n" +
+"2009-04-13,36;47;57,49;56;65\n" +
+"2009-04-14,43;48;53,45;50;57\n" +
+"2009-04-15,43;49;54,46;46;47\n" +
+"2009-04-16,44;53;62,44;52;61\n" +
+"2009-04-17,44;57;69,46;54;70\n" +
+"2009-04-18,56;67;78,52;62;74\n" +
+"2009-04-19,47;54;61,51;70;92\n" +
+"2009-04-20,43;47;51,60;77;99\n" +
+"2009-04-21,47;52;56,64;78;93\n" +
+"2009-04-22,49;53;57,52;62;71\n" +
+"2009-04-23,45;51;57,50;54;61\n" +
+"2009-04-24,45;57;69,48;52;59\n" +
+"2009-04-25,50;69;88,45;52;60\n" +
+"2009-04-26,63;77;91,46;53;63\n" +
+"2009-04-27,53;66;79,48;51;57\n" +
+"2009-04-28,68;79;89,47;52;60\n" +
+"2009-04-29,50;59;68,46;53;61\n" +
+"2009-04-30,46;54;61,47;54;69\n" +
+"2009-05-01,54;63;72,51;56;62\n" +
+"2009-05-02,56;62;67,55;59;65\n" +
+"2009-05-03,53;56;58,53;59;66\n" +
+"2009-05-04,51;54;56,52;60;71\n" +
+"2009-05-05,51;54;56,57;61;69\n" +
+"2009-05-06,49;57;65,55;61;73\n" +
+"2009-05-07,52;63;73,51;61;72\n" +
+"2009-05-08,56;65;74,51;60;71\n" +
+"2009-05-09,57;68;78,50;57;69\n" +
+"2009-05-10,55;63;70,50;57;68\n" +
+"2009-05-11,51;59;66,50;56;65\n" +
+"2009-05-12,52;60;68,47;57;67\n" +
+"2009-05-13,51;60;68,50;59;70\n" +
+"2009-05-14,57;62;66,51;58;69\n" +
+"2009-05-15,58;66;74,51;58;67\n" +
+"2009-05-16,58;65;71,54;70;93\n" +
+"2009-05-17,53;59;64,55;70;92\n" +
+"2009-05-18,50;55;59,51;55;63\n" +
+"2009-05-19,50;60;69,51;56;64\n" +
+"2009-05-20,53;67;81,49;55;62\n" +
+"2009-05-21,64;73;81,49;54;65\n" +
+"2009-05-22,63;75;86,51;54;63\n" +
+"2009-05-23,59;68;76,50;52;56\n" +
+"2009-05-24,57;71;84,49;51;56\n" +
+"2009-05-25,64;73;81,49;54;63\n" +
+"2009-05-26,53;60;66,49;59;73\n" +
+"2009-05-27,52;56;60,52;57;64\n" +
+"2009-05-28,56;58;59,51;55;62\n" +
+"2009-05-29,55;65;74,52;57;63\n" +
+"2009-05-30,63;71;78,54;56;62\n" +
+"2009-05-31,58;70;82,53;55;60\n" +
+"2009-06-01,53;61;69,53;56;61\n" +
+"2009-06-02,63;72;80,52;57;68\n" +
+"2009-06-03,54;64;73,53;58;67\n" +
+"2009-06-04,54;62;69,55;59;67\n" +
+"2009-06-05,55;59;62,57;62;70\n" +
+"2009-06-06,58;68;78,57;61;68\n" +
+"2009-06-07,66;74;82,56;61;67\n" +
+"2009-06-08,63;70;77,55;58;62\n" +
+"2009-06-09,60;67;73,56;60;66\n" +
+"2009-06-10,59;62;65,57;61;69\n" +
+"2009-06-11,59;61;63,56;60;68\n" +
+"2009-06-12,62;71;80,56;60;67\n" +
+"2009-06-13,64;68;71,56;62;70\n" +
+"2009-06-14,61;67;72,57;62;69\n" +
+"2009-06-15,58;65;71,58;61;68\n" +
+"2009-06-16,56;62;68,57;59;66\n" +
+"2009-06-17,57;63;69,57;60;66\n" +
+"2009-06-18,62;64;66,56;63;75\n" +
+"2009-06-19,63;71;79,55;62;71\n" +
+"2009-06-20,63;68;72,53;59;69\n" +
+"2009-06-21,63;71;78,53;60;70\n" +
+"2009-06-22,67;71;75,54;62;75\n" +
+"2009-06-23,67;74;80,54;63;77\n" +
+"2009-06-24,66;71;75,54;59;69\n" +
+"2009-06-25,65;73;81,54;58;66\n" +
+"2009-06-26,65;75;85,53;60;70\n" +
+"2009-06-27,66;74;81,53;68;85\n" +
+"2009-06-28,68;75;82,60;68;78\n" +
+"2009-06-29,68;76;83,56;61;68\n" +
+"2009-06-30,67;76;84,56;61;68\n" +
+"2009-07-01,67;73;79,56;61;68\n" +
+"2009-07-02,66;72;77,56;60;66\n" +
+"2009-07-03,68;74;80,55;58;65\n" +
+"2009-07-04,68;75;81,54;60;67\n" +
+"2009-07-05,64;72;80,55;57;63\n" +
+"2009-07-06,68;77;85,54;60;69\n" +
+"2009-07-07,62;73;83,56;58;62\n" +
+"2009-07-08,61;69;77,52;62;71\n" +
+"2009-07-09,62;68;73,53;59;68\n" +
+"2009-07-10,63;69;75,54;59;66\n" +
+"2009-07-11,65;71;77,53;58;68\n" +
+"2009-07-12,66;75;83,53;60;70\n" +
+"2009-07-13,65;72;79,53;66;84\n" +
+"2009-07-14,66;74;81,58;68;86\n" +
+"2009-07-15,67;75;83,53;59;66\n" +
+"2009-07-16,73;79;85,52;57;69\n" +
+"2009-07-17,69;79;88,52;58;69\n" +
+"2009-07-18,71;78;84,54;60;74\n" +
+"2009-07-19,68;76;83,54;61;73\n" +
+"2009-07-20,68;75;82,54;57;62\n" +
+"2009-07-21,65;68;71,53;56;61\n" +
+"2009-07-22,67;75;82,52;56;60\n" +
+"2009-07-23,64;72;80,52;55;61\n" +
+"2009-07-24,65;73;80,53;56;62\n" +
+"2009-07-25,67;77;86,52;56;67\n" +
+"2009-07-26,71;79;86,53;57;72\n" +
+"2009-07-27,71;78;85,52;57;70\n" +
+"2009-07-28,73;80;87,55;58;63\n" +
+"2009-07-29,73;78;83,58;58;58\n" +
+"2009-07-30,74;81;87,56;60;65\n" +
+"2009-07-31,69;79;89,55;58;64\n" +
+"2009-08-01,69;77;85,55;58;64\n" +
+"2009-08-02,73;76;78,56;60;66\n" +
+"2009-08-03,72;79;85,56;62;70\n" +
+"2009-08-04,72;79;86,57;64;73\n" +
+"2009-08-05,74;82;89,58;62;72\n" +
+"2009-08-06,68;74;79,59;63;71\n" +
+"2009-08-07,67;74;80,58;63;71\n" +
+"2009-08-08,65;72;78,58;64;76\n" +
+"2009-08-09,71;76;81,57;66;82\n" +
+"2009-08-10,71;83;94,59;66;82\n" +
+"2009-08-11,77;85;92,58;61;66\n" +
+"2009-08-12,71;76;80,57;66;79\n" +
+"2009-08-13,70;72;74,57;63;74\n" +
+"2009-08-14,69;77;85,56;61;70\n" +
+"2009-08-15,73;81;89,55;62;76\n" +
+"2009-08-16,75;83;91,55;62;73\n" +
+"2009-08-17,77;85;93,55;58;64\n" +
+"2009-08-18,73;82;91,55;59;65\n" +
+"2009-08-19,75;83;91,57;59;65\n" +
+"2009-08-20,76;83;89,56;60;67\n" +
+"2009-08-21,75;84;92,56;62;78\n" +
+"2009-08-22,72;79;85,56;59;64\n" +
+"2009-08-23,75;81;86,55;58;65\n" +
+"2009-08-24,72;78;84,54;58;64\n" +
+"2009-08-25,71;79;86,55;60;70\n" +
+"2009-08-26,74;81;87,55;59;68\n" +
+"2009-08-27,68;74;80,53;66;87\n" +
+"2009-08-28,66;70;73,63;76;97\n" +
+"2009-08-29,67;70;73,58;73;87\n" +
+"2009-08-30,66;75;83,55;57;62\n" +
+"2009-08-31,64;68;72,54;59;69\n" +
+"2009-09-01,59;67;74,58;63;72\n" +
+"2009-09-02,61;69;77,61;70;90\n" +
+"2009-09-03,64;71;78,58;67;79\n" +
+"2009-09-04,65;74;83,54;59;66\n" +
+"2009-09-05,71;78;85,56;62;70\n" +
+"2009-09-06,64;69;74,57;62;69\n" +
+"2009-09-07,61;67;72,56;63;73\n" +
+"2009-09-08,65;70;75,55;61;71\n" +
+"2009-09-09,65;71;76,54;58;66\n" +
+"2009-09-10,61;66;71,55;65;82\n" +
+"2009-09-11,58;64;69,54;62;76\n" +
+"2009-09-12,65;67;68,58;60;64\n" +
+"2009-09-13,67;74;81,59;64;73\n" +
+"2009-09-14,65;72;79,58;63;69\n" +
+"2009-09-15,68;75;81,57;63;73\n" +
+"2009-09-16,63;67;71,58;63;72\n" +
+"2009-09-17,57;61;65,59;67;79\n" +
+"2009-09-18,58;68;77,62;70;89\n" +
+"2009-09-19,55;63;71,58;62;73\n" +
+"2009-09-20,57;66;75,57;63;76\n" +
+"2009-09-21,61;69;76,56;61;71\n" +
+"2009-09-22,66;71;75,55;62;77\n" +
+"2009-09-23,69;76;82,56;58;65\n" +
+"2009-09-24,68;75;82,55;58;65\n" +
+"2009-09-25,59;64;69,55;61;73\n" +
+"2009-09-26,55;61;66,53;66;87\n" +
+"2009-09-27,60;65;69,59;68;84\n" +
+"2009-09-28,60;67;74,56;59;63\n" +
+"2009-09-29,58;63;68,55;58;64\n" +
+"2009-09-30,51;56;60,51;58;70\n" +
+"2009-10-01,51;54;57,52;64;79\n" +
+"2009-10-02,49;58;66,55;63;77\n" +
+"2009-10-03,65;68;71,52;57;63\n" +
+"2009-10-04,59;68;76,50;55;62\n" +
+"2009-10-05,55;62;68,50;57;68\n" +
+"2009-10-06,54;61;68,50;60;74\n" +
+"2009-10-07,59;65;71,53;58;68\n" +
+"2009-10-08,55;60;64,54;57;62\n" +
+"2009-10-09,61;66;71,52;56;63\n" +
+"2009-10-10,54;61;68,51;54;59\n" +
+"2009-10-11,50;58;65,51;54;59\n" +
+"2009-10-12,46;51;55,56;60;66\n" +
+"2009-10-13,47;56;64,58;61;64\n" +
+"2009-10-14,44;49;53,63;66;76\n" +
+"2009-10-15,39;44;48,64;67;76\n" +
+"2009-10-16,39;44;49,59;67;79\n" +
+"2009-10-17,44;47;50,56;64;74\n" +
+"2009-10-18,43;45;47,56;59;63\n" +
+"2009-10-19,41;50;58,57;60;68\n" +
+"2009-10-20,47;58;68,56;59;67\n" +
+"2009-10-21,53;61;69,54;60;71\n" +
+"2009-10-22,55;66;76,57;62;72\n" +
+"2009-10-23,51;59;66,55;63;75\n" +
+"2009-10-24,53;60;67,55;61;74\n" +
+"2009-10-25,53;59;65,54;64;81\n" +
+"2009-10-26,49;55;61,57;62;71\n" +
+"2009-10-27,50;54;58,54;59;69\n" +
+"2009-10-28,51;55;58,53;58;67\n" +
+"2009-10-29,49;54;58,51;58;67\n" +
+"2009-10-30,52;56;60,52;59;74\n" +
+"2009-10-31,56;64;71,53;58;72\n" +
+"2009-11-01,50;55;60,52;63;77\n" +
+"2009-11-02,48;52;55,56;66;81\n" +
+"2009-11-03,46;54;62,56;66;80\n" +
+"2009-11-04,44;48;52,54;58;65\n" +
+"2009-11-05,44;49;53,57;61;68\n" +
+"2009-11-06,41;46;50,53;59;63\n" +
+"2009-11-07,38;46;53,49;56;65\n" +
+"2009-11-08,48;60;71,50;57;68\n" +
+"2009-11-09,48;58;67,49;56;64\n" +
+"2009-11-10,56;60;64,54;58;66\n" +
+"2009-11-11,49;54;58,54;58;65\n" +
+"2009-11-12,48;51;53,51;56;62\n" +
+"2009-11-13,49;52;55,48;53;60\n" +
+"2009-11-14,52;55;58,50;54;61\n" +
+"2009-11-15,54;59;63,44;53;65\n" +
+"2009-11-16,49;54;59,47;54;66\n" +
+"2009-11-17,46;51;55,45;54;64\n" +
+"2009-11-18,43;48;53,48;53;62\n" +
+"2009-11-19,48;55;61,44;53;63\n" +
+"2009-11-20,50;56;61,46;52;58\n" +
+"2009-11-21,47;52;57,47;51;59\n" +
+"2009-11-22,46;51;56,49;53;59\n" +
+"2009-11-23,45;53;60,44;54;66\n" +
+"2009-11-24,49;53;57,48;58;69\n" +
+"2009-11-25,49;51;53,\n" +
+"2009-11-26,49;52;54,50;55;67\n" +
+"2009-11-27,44;47;50,51;54;58\n" +
+"2009-11-28,44;48;51,\n" +
+"2009-11-29,42;51;59,49;60;71\n" +
+"2009-11-30,41;49;57,48;55;64\n" +
+"2009-12-01,38;43;48,46;52;64\n" +
+"2009-12-02,40;49;57,45;48;55\n" +
+"2009-12-03,51;59;66,46;50;58\n" +
+"2009-12-04,46;49;52,44;48;57\n" +
+"2009-12-05,37;42;47,\n";
+}
index 37bda4e..f768435 100644 (file)
@@ -16,6 +16,9 @@
   <script type="text/javascript" src="../tests/Util.js"></script>
   <script type="text/javascript" src="local.js"></script>
 
   <script type="text/javascript" src="../tests/Util.js"></script>
   <script type="text/javascript" src="local.js"></script>
 
+  <!-- Test data -->
+  <script type="text/javascript" src="../data/data.js"></script>
+
   <!-- Scripts for automated tests -->
   <script type="text/javascript" src="../tests/annotations.js"></script>
   <script type="text/javascript" src="../tests/axis_labels.js"></script>
   <!-- Scripts for automated tests -->
   <script type="text/javascript" src="../tests/annotations.js"></script>
   <script type="text/javascript" src="../tests/axis_labels.js"></script>
@@ -59,6 +62,7 @@
   <script type="text/javascript" src="../tests/hidpi.js"></script>
   <script type="text/javascript" src="../tests/smooth_plotter.js"></script>
   <script type="text/javascript" src="../tests/fast_canvas_proxy.js"></script>
   <script type="text/javascript" src="../tests/hidpi.js"></script>
   <script type="text/javascript" src="../tests/smooth_plotter.js"></script>
   <script type="text/javascript" src="../tests/fast_canvas_proxy.js"></script>
+  <script type="text/javascript" src="../tests/data_api.js"></script>
   <script type="text/javascript" src="../tests/update_options.js"></script>
   <script type="text/javascript" src="../tests/update_while_panning.js"></script>
   <script type="text/javascript" src="../tests/utils_test.js"></script>
   <script type="text/javascript" src="../tests/update_options.js"></script>
   <script type="text/javascript" src="../tests/update_while_panning.js"></script>
   <script type="text/javascript" src="../tests/utils_test.js"></script>
diff --git a/auto_tests/tests/data_api.js b/auto_tests/tests/data_api.js
new file mode 100644 (file)
index 0000000..f3180f5
--- /dev/null
@@ -0,0 +1,99 @@
+/**
+ * @fileoverview Tests for data access methods.
+ *
+ * @author danvdk@gmail.com (Dan Vanderkam)
+ */
+var dataApiTestCase = TestCase("data-api");
+
+dataApiTestCase.prototype.setUp = function() {
+  document.body.innerHTML = "<div id='graph'></div>";
+  this.opts = {
+    width: 480,
+    height: 320
+  };
+
+  this.graphDiv = document.getElementById("graph");
+};
+
+dataApiTestCase.prototype.tearDown = function() {
+};
+
+dataApiTestCase.prototype.testBasicAccessors = function() {
+  var g = new Dygraph(this.graphDiv, temperature_data, this.opts);
+
+  assertEquals(365, g.numRows());
+  assertEquals(3, g.numColumns());
+
+  // 2007-01-01,62,39
+  assertEquals(62, g.getValue(0, 1));
+  assertEquals(39, g.getValue(0, 2));
+
+  // 2007-12-31,57,42
+  assertEquals(57, g.getValue(364, 1));
+  assertEquals(42, g.getValue(364, 2));
+};
+
+
+dataApiTestCase.prototype.testAccessorsCustomBars = function() {
+  var g = new Dygraph(this.graphDiv, data_temp_high_low, {
+    customBars: true
+  });
+
+  assertEquals(1070, g.numRows());
+  assertEquals(3, g.numColumns());
+
+  // 2007-01-01,46;51;56,43;45;48
+  assertEquals([46, 51, 56], g.getValue(0, 1));
+  assertEquals([43, 45, 48], g.getValue(0, 2));
+
+  // 2009-12-05,37;42;47  (i.e. missing second column)
+  assertEquals([37, 42, 47], g.getValue(1069, 1));
+  assertEquals([null, null, null], g.getValue(1069, 2));
+};
+
+
+// Regression test for #554.
+dataApiTestCase.prototype.testGetRowForX = function() {
+  var g = new Dygraph(this.graphDiv, [
+    "x,y",
+    "1,2",
+    "3,4",
+    "5,6",
+    "7,8",
+    "9,10"
+  ].join('\n'), this.opts);
+
+  assertEquals(null, g.getRowForX(0));
+  assertEquals(0, g.getRowForX(1));
+  assertEquals(null, g.getRowForX(2));
+  assertEquals(1, g.getRowForX(3));
+  assertEquals(null, g.getRowForX(4));
+  assertEquals(2, g.getRowForX(5));
+  assertEquals(null, g.getRowForX(6));
+  assertEquals(3, g.getRowForX(7));
+  assertEquals(null, g.getRowForX(8));
+  assertEquals(4, g.getRowForX(9));
+  assertEquals(null, g.getRowForX(10));
+};
+
+// If there are rows with identical x-values, getRowForX promises that it will
+// return the first one.
+dataApiTestCase.prototype.testGetRowForXDuplicates = function() {
+  var g = new Dygraph(this.graphDiv, [
+    "x,y",
+    "1,2",  // 0
+    "1,4",  // 1
+    "1,6",  // 2
+    "1,8",  // 3
+    "1,6",  // 4
+    "9,2",  // 5
+    "9,4",
+    "9,6",
+    "9,8",
+    "9,10"
+  ].join('\n'), this.opts);
+
+  assertEquals(0, g.getRowForX(1));
+  assertEquals(null, g.getRowForX(2));
+  assertEquals(5, g.getRowForX(9));
+};
index 5f6e1e1..4b3b5e1 100644 (file)
@@ -3669,6 +3669,35 @@ Dygraph.prototype.indexFromSetName = function(name) {
 };
 
 /**
 };
 
 /**
+ * Find the row number corresponding to the given x-value.
+ * Returns null if there is no such x-value in the data.
+ * If there are multiple rows with the same x-value, this will return the
+ * first one.
+ * @param {number} xVal The x-value to look for (e.g. millis since epoch).
+ * @return {?number} The row number, which you can pass to getValue(), or null.
+ */
+Dygraph.prototype.getRowForX = function(xVal) {
+  var low = 0,
+      high = this.numRows() - 1;
+
+  while (low <= high) {
+    var idx = (high + low) >> 1;
+    var x = this.getValue(idx, 0);
+    if (x < xVal) {
+      low = idx + 1;
+    } else if (x > xVal) {
+      high = idx - 1;
+    } else if (low != idx) {  // equal, but there may be an earlier match.
+      high = idx;
+    } else {
+      return idx;
+    }
+  }
+
+  return null;
+};
+
+/**
  * Trigger a callback when the dygraph has drawn itself and is ready to be
  * manipulated. This is primarily useful when dygraphs has to do an XHR for the
  * data (i.e. a URL is passed as the data source) and the chart is drawn
  * Trigger a callback when the dygraph has drawn itself and is ready to be
  * manipulated. This is primarily useful when dygraphs has to do an XHR for the
  * data (i.e. a URL is passed as the data source) and the chart is drawn
index cbe26d2..ebc9a45 100644 (file)
@@ -173,7 +173,7 @@ function attachSelectionHandlers(gs, prevCallbacks) {
         var me = this;
         for (var i = 0; i < gs.length; i++) {
           if (me == gs[i]) continue;
         var me = this;
         for (var i = 0; i < gs.length; i++) {
           if (me == gs[i]) continue;
-          var idx = dygraphsBinarySearch(gs[i], x);
+          var idx = gs[i].getRowForX(x);
           if (idx !== null) {
             gs[i].setSelection(idx, seriesName);
           }
           if (idx !== null) {
             gs[i].setSelection(idx, seriesName);
           }
@@ -195,25 +195,4 @@ function attachSelectionHandlers(gs, prevCallbacks) {
   }
 }
 
   }
 }
 
-// Returns the index corresponding to xVal, or null if there is none.
-function dygraphsBinarySearch(g, xVal) {
-  var low = 0,
-      high = g.numRows() - 1;
-
-  while (low <= high) {
-    var idx = (high + low) >> 1;
-    var x = g.getValue(idx, 0);
-    if (x < xVal) {
-      low = idx + 1;
-    } else if (x > xVal) {
-      high = idx - 1;
-    } else {
-      return idx;
-    }
-  }
-
-  // TODO: give an option to find the closest point, i.e. not demand an exact match.
-  return null;
-}
-
 })();
 })();