$(document).ready(function() {
	$('#btnCompare').click(function() {
		var ids = "";
		var count = 0;
		$('input[name="compare[]"]:checked').each(function(i) {
			ids = ids + $(this).val() + "/";
			count++;
		});
		if (count >=2)
			window.location = '/nike/compare/'+ids;
		else
			alert('Please select at least two runs to compare');
		return false;
	});
});

function min2time(m) {
	var min = Math.floor(m);
	var sec = Math.round((m-min)*60);
	if (sec<10)
		sec = '0'+sec;
	return min+':'+sec;			
}
var min2hours = function (m) {
	var min = Math.floor(m);
	var sec = Math.round((m-min)*60);
	if (sec<10)
		sec = '0'+sec;
	var hour = 0;
	if (min > 60) {
		hour = Math.floor(min/60);
		min = min-(hour*60);
	}
	if (hour > 0 && min<10)
		min = '0'+min;
	var time = '';
	if (hour > 0)
		time = hour + ':';
	time = time + (min + ":" + sec);
	return time;
}
var paceFormatter = function (val) {
	return (20-val) + " min/mi";
};

var sec2time = function (s) {
	s = Math.round(s/1000);
	var min = Math.floor(s/60);
	var sec = s-(min*60);
	var hour = 0;
	if (min > 60) {
		hour = Math.floor(min/60);
		min = min-(hour*60);
	}
	var time = '';
	if (hour > 0)
		time = hour+'h';
	time = time+min+'m';
	if (sec > 0 && hour <= 0)
		time = time+sec+'s';
	return time;
};

var lookupFormatter = function(val) {
	if (typeof lookup == 'object' && typeof lookup[val] != 'undefined')
		return lookup[val];
	else
		return val;
}

var previousPoint = null;

var paceHover =  function (event, pos, item) {
	if (item) {
		if (previousPoint != item.datapoint[0]) {
			previousPoint = item.datapoint[0];
			$("#graph_tip").remove();
			var x = item.datapoint[0];
			var y = 20 - item.datapoint[1];
			var pace = min2time(y);
			var time = sec2time(x);
			showTooltip(item.pageX, item.pageY, '<strong>'+pace+'</strong> min/mi pace at ' + time, item.series.color);
		}
	}
	else {
		$("#graph_tip").remove();
		previousPoint = null;
	}
};


var paceHoverDate =  function (event, pos, item) {
	if (item) {
		console.log(item);
		if (previousPoint != item.datapoint[0]) {
			previousPoint = item.datapoint[0];
			$("#graph_tip").remove();
			var x = item.datapoint[0];
			var y = 20 - item.datapoint[1];
			var pace = min2time(y);
		    var d = new Date(x);
		    var time =( d.getUTCMonth()+1) + "/" + d.getUTCDate() + "/" + d.getUTCFullYear();
			showTooltip(item.pageX, item.pageY, '<strong>'+pace+'</strong> min/mi pace on ' + time, item.series.color);
		}
	}
	else {
		$("#graph_tip").remove();
		previousPoint = null;
	}
};

var defaultHover =  function (event, pos, item) {
	if (item) {
		if (previousPoint != item.datapoint[0]) {
			previousPoint = item.datapoint[0];
			$("#graph_tip").remove();
			var x = item.datapoint[0];
			var y = item.datapoint[1];
			var type = item.series.hoverType;
			var content = y;
			var d = new Date(x);
			var extra = "";
			if (d.getUTCFullYear() > 2000) {
		    	var time = (d.getUTCMonth()+1) + "/" + d.getUTCDate() + "/" + d.getUTCFullYear();
				extra = ' on ' + time;
			}
			else if (typeof lookup == 'object' && typeof lookup[x] != 'undefined') {
				extra = ' on ' + lookup[x];
			}
			if (type=='date-pace') {
				content = '<strong>'+min2time(20-y)+'</strong> min/mi pace' + extra;
			}
			else if (type=='date-distance') {
				content = '<strong>'+y+'</strong> miles' + extra;
			}
			else if (type=='date-time') {
				content = '<strong>'+min2hours(y)+'</strong>' + extra;
			}
			else if (extra!="") {
				content = '<strong>'+y+'</strong>' + extra;
			}
			if (typeof time2run == 'object')
				content = '<a href="/nike/run/'+time2run[x]+'/">'+content+'</a>';
			document.body.style.cursor = 'pointer';
			showTooltip(item.pageX, item.pageY, content, item.series.color);
		}
	}
	else {
		document.body.style.cursor = 'default';
		$("#graph_tip").remove();
		previousPoint = null;
	}
};


var defaultClick =  function (event, pos, item) {
	if (item) {
		var x = item.datapoint[0];
		window.location = '/nike/run/'+time2run[x]+'/';
	}
};

function showTooltip(x, y, contents, color) {
    $('<div id="graph_tip">' + contents + '</div>').css( {
        position: 'absolute',
        display: 'none',
        top: y - 30,
        left: x + 4,
        border: '3px solid ' + color,
        padding: '5px',
        'background-color': '#FFF',
		'font-size': '8pt',
        opacity: .8
    }).appendTo("body").fadeIn(100);
}

