var OPT_ID = 0;
var OPT_TITLE = 1;
var OPT_VOTES = 2;

var votedID;

$(document).ready(function()
{
	$("#poll").submit(formProcess);
	if ($("#poll-results").length > 0 ){animateResults();}
  
	if ($.cookie('vote_id')){
    $("#poll-container").empty();
    votedID = $.cookie('vote_id');
    $.getJSON("http://proural.info/public/poll.php?vote=none",loadResults);
  }
});

function formProcess(event)
{
	event.preventDefault();
	
	var id = $("input[@name='poll']:checked").attr("value");
	id = id.replace("opt",'');
	
	var qid = $("input[type='hidden']").attr("value");
	
	$("#poll-container").fadeOut("slow",function()
	{
		$(this).empty();
		votedID = id;
		$.getJSON("http://proural.info/public/poll.php?vote="+id,loadResults);
		$.cookie('vote_id', id, {expires: 30});
		$.cookie('qid', qid, {expires: 30});
	});
}

function animateResults()
{
	$("#poll-results div").each(function()
	{
		var percentage = $(this).next().text();
		$(this).css({width: "0%"}).animate({width: percentage}, 'slow');
	});
}

function loadResults(data)
{
	var total_votes = 0;
	var percent;
	var percent_width;
  
	for (id in data) {total_votes = total_votes+parseInt(data[id][OPT_VOTES]);}
  
	var results_html = "<div id='poll-results'><br /><dl class='graph'>\n";
	for (id in data)
	{
		percent = Math.round((parseInt(data[id][OPT_VOTES])/parseInt(total_votes))*100);
		if (data[id][OPT_ID] !== votedID){results_html = results_html+"<dt class='bar-title'>"+data[id][OPT_TITLE]+"</dt><dd class='bar-container'><div id='bar"+data[id][OPT_ID]+"' style='width: 0%;'>&nbsp;</div><strong>"+percent+"%</strong></dd>\n";}
		else {results_html = results_html+"<dt class='bar-title'>"+data[id][OPT_TITLE]+"</dt><dd class='bar-container'><div id='bar"+data[id][OPT_ID]+"'style='width: 0%; background: #0066cc url(http://proural.info/public/images/bkg_poll_line_blue.gif) repeat-x;'>&nbsp;</div><strong style='color: #FFF;'>"+percent+"%</strong></dd>\n";}
	}
	
	results_html = results_html+"</dl></div>\n";
  
  $("#poll-container").append(results_html).fadeIn("slow",function(){
    animateResults();});
}
