var Vanity = {}
Vanity.tooltip = function(event, pos, item) {
if (item) {
if (this.previousPoint != item.datapoint) {
this.previousPoint = item.datapoint;
$("#tooltip").remove();
var y = item.datapoint[1].toFixed(2);
var dt = new Date(parseInt(item.datapoint[0], 10));
$('
' + dt.getUTCFullYear() + '-' + (dt.getUTCMonth() + 1) + '-' + dt.getUTCDate() + "
" + y + '
').css( {
position: 'absolute', display: 'none',
top: item.pageY + 5, left: item.pageX + 5,
padding: '2px', border: '1px solid #ff8', 'background-color': '#ffe', opacity: 0.9
}).appendTo("body").fadeIn(200);
}
} else {
$("#tooltip").remove();
this.previousPoint = null;
}
}
Vanity.metric = function(id) {
var metric = {};
metric.chart = $("#metric_" + id + " .chart");
metric.chart.height(metric.chart.width() / 7);
metric.markings = [];
metric.options = {
xaxis: { mode: "time", minTickSize: [7, "day"] },
yaxis: { ticks: [0, 100], autoscaleMargin: null },
series: { lines: { show: true, lineWidth: 2, fill: true, fillColor: { colors: ["#fff", "#C6D2DA"] } },
points: { show: false, radius: 1 }, shadowSize: 0 },
colors: ["#0077CC"],
legend: { position: 'sw', container: "#metric_" + id +" .legend", backgroundOpacity: 0.5 },
grid: { markings: metric.markings, borderWidth: 1, borderColor: '#eee', hoverable: true, aboveData: true } };
metric.plot = function(lines) {
$.each(lines, function(i, line) {
$.each(line.data, function(i, pair) { pair[0] = Date.parse(pair[0]) })
});
var plot = $.plot(metric.chart, lines, metric.options);
metric.chart.bind("plothover", Vanity.tooltip);
metric.chart.data('plot', plot);
}
return metric;
}
$(function() {
var checkboxes = $("#milestones input:checkbox");
checkboxes.bind("change", function() {
var markings = [];
checkboxes.filter(":checked").each(function(i, checkbox) {
var start = Date.parse($(this).attr("data-start"));
var end = Date.parse($(this).attr("data-end"));
var title = $(this).parent().text();
markings.push({color: "#c66", xaxis: { from: start - 20000000, to: start }, label: title});
if (end > start)
markings.push({color: "#c99", xaxis: { from: end, to: end + 20000000 }});
});
$(".metric .marking.label").remove();
$(".metric .chart").each(function() {
var chart = $(this);
var plot = chart.data('plot');
plot.getOptions().grid.markings = markings;
plot.draw();
$.each(markings, function(i, mark) {
if (mark.xaxis && mark.xaxis.from && mark.label) {
var o = plot.pointOffset({x:mark.xaxis.from});
$('').css({left:o.left+4}).text(mark.label).appendTo(chart);
}
});
});
});
$(".experiment.ab_test a.button.chooses").live("click", function() {
var link = $(this);
$.ajax({
data: 'authenticity_token=' + encodeURIComponent(document.auth_token),
success: function(request){ $('#experiment_' + link.attr("data-id")).html(request) },
url: link.attr("data-url"), type: 'post'
});
return false;
});
});