var chartData = {
	posts: {},
	followers: {},
	likes: {},
	reblogs: {},
	tumblarity: {}
};


$(function() {
	// fix username size
	if ($('#content-container #memberinfo h2.username a').text().length > 16) $('#content-container #memberinfo h2.username a').css('font-size', (22-($('#content-container #memberinfo h2.username a').text().length * .30))+'px');

	// add tense to ranks
	$('ol.ranks li.rank span.rank-number').each(function(){
		var lastDigit = $(this).text().match(/([0-9])$/)[0];
	
		var tense;
	
		if (lastDigit > 3 || lastDigit == 0) {
			tense = 'th';
		} else if (lastDigit == 1) {
			tense = 'st';
		} else if (lastDigit == 2) {
			tense = 'nd';
		} else if (lastDigit == 3) {
			tense = 'rd';
		}
	
		$('sup', $(this).parent()).text(tense);
	});
	
	// color changes
	$('ul.stat-updates li div span.change').each(function(){
		var lastchange = $(this).text(lastchange);
		if (lastchange > 0) {
			$(this)
			.text('+' + $('span.change', $(this).parent()).text())
			.addClass('positive');
		} else if (lastchange < 0) {
			$(this).addClass('negative');
		} else {
			$(this).css('visibility', 'hidden');
		}
	});
	
	// rank selector 
	$('#content-container ol.ranks li.rank').bind('click', function(){		
		var selection = $('h3', this).text();

		$('li.rank', $(this).parent()).removeClass('selected');
		$(this).addClass('selected');
		
		// create graph
		createGraph(selection);
	});
	
	// build charData off DOM 
	$('ul.stat-updates li div.lastupdate span.dateline').each(function(){
		var date = new Date(this.date*1000);
		
		var indexName = (date.getMonth()+1)+' '+date.getDate()+' '+ date.getFullYear();
		
		var labelName = ((date.getMonth()+1) > 9 ? (date.getMonth()+1) : '0' + (date.getMonth()+1))+'-'+(date.getDate() > 9 ? date.getDate() : '0' + date.getDate());
				
		// posts
		if (typeof chartData.posts[indexName] == 'undefined') {
			chartData.posts[indexName] = {label: labelName, data: parseInt($('div.posts span.change', $(this).parent().parent()).text())};
		} else {
			chartData.posts[indexName].data += parseInt($('div.posts span.change', $(this).parent().parent()).text());
		}
		
		// followers
		if (typeof chartData.followers[indexName] == 'undefined') {
			chartData.followers[indexName] = {label: labelName, data: parseInt($('div.followers span.change', $(this).parent().parent()).text())};
		} else {
			chartData.followers[indexName].data += parseInt($('div.followers span.change', $(this).parent().parent()).text());
		}
		
		// likes
		if (typeof chartData.likes[indexName] == 'undefined') {
			chartData.likes[indexName] = {label: labelName, data: parseInt($('div.likes span.change', $(this).parent().parent()).text())};
		} else {
			chartData.likes[indexName].data += parseInt($('div.likes span.change', $(this).parent().parent()).text());
		}
		
		// reblogs
		if (typeof chartData.reblogs[indexName] == 'undefined') {
			chartData.reblogs[indexName] = {label: labelName, data: parseInt($('div.reblogs span.change', $(this).parent().parent()).text())};
		} else {
			chartData.reblogs[indexName].data += parseInt($('div.reblogs span.change', $(this).parent().parent()).text());
		}
		
		// tumblarity
		if (typeof chartData.tumblarity[indexName] == 'undefined') {
			chartData.tumblarity[indexName] = {label: labelName, data: parseInt($('div.tumblarity span.change', $(this).parent().parent()).text())};
		} else {
			chartData.tumblarity[indexName].data += parseInt($('div.tumblarity span.change', $(this).parent().parent()).text());
		}
		
	});
	
	// initial chart
	createGraph('followers');
	$('#content-container ol.ranks li.rank:eq(1)').addClass('selected');
});

var createGraph = function (selection) {
	// create graph
	var graphType = selection.charAt(0).toUpperCase() + selection.slice(1);
	
	var x_labels = [];
	var values = [];
	var y_max = 0;
	var y_min = 0;
	for (i in chartData[selection]) {
		x_labels.push(chartData[selection][i].label);
		values.push(chartData[selection][i].data);
		if (chartData[selection][i].data > y_max) y_max = chartData[selection][i].data;
		if (chartData[selection][i].data < y_min) y_min = chartData[selection][i].data;
	}
	x_labels = x_labels.reverse().join(',');
	values = values.reverse().join(',');
	
	swfobject.embedSWF(CDNPATH + '/media/open-flash-chart.swf', 'stat-graph', '800', '400', '9.0.0','/media/expressInstall.swf', 
		{
			variables: 'true',
			//title: 'Paper+Mario%23comma%23+%25+complete,{font-size: 18px; color: #A0A0A0;}',
			//x_legend: 'Week+1,12,#A0A0A0',
			x_label_style: '10,#A0A0A0,0,1',
			x_axis_steps: '1',
			y_label_style: '10,#A0A0A0',
			y_ticks: '5,10,2',
			x_labels: x_labels,
			y_min: y_min,
			y_max: y_max,
			x_axis_colour: '#FFFFFF',
			x_grid_colour: '#FFFFFF',
			y_axis_colour: '#FFFFFF',
			
			y_grid_colour: '#FFFFFF',
			bg_colour: '#000000',
			tool_tip: graphType + ':+%23val%23',
			line: '5,#28A0DC,'+graphType+',10',
			values: values
		}, 
		{
			menu: 'false'
		}, 
		{
			id: 'stat-graph',
			name: 'stat-graph'
		}
	);
};

