// Global variable definitions
// DB column numbers
var OPT_ID = 0;
var OPT_TITLE = 1;
var OPT_VOTES = 2;

var votedID;

$(document).ready(function(){
  $("#poll").submit(formProcess); // setup the submit handler
  
  if ($("#results").length > 0 ) {
    animateResults();
  }
  if ($.cookie('vote_id')) {
    //$("#poll-container").empty();
    votedID = $.cookie('vote_id');
	}
   $.getJSON("poll.php",loadResults);

});

function formProcess(event){
  event.preventDefault();
  var id = $("input[@name='poll']:checked").attr("value");
  id = id.replace("opt",'');
  var data = {};
  data['id'] = id;
  var inputs =$(":input").filter(":not(:submit)").filter(":not(:checkbox)");
  var blank = false;
  inputs.each(function(){
		data[this.name] = this.value;
		if(this.value == ""){ blank = true; }
	});
if(blank){ alert("Please fill out all fields"); return false; };
  $("#voted p:first").html('');
  $("#form").html("<p>Your vote has been counted</p><a href='' id='close' class='sprited text-replace'>Close</a>").fadeIn('slow');
  $("#close").bind('click',function(){ $('#voted').hide();$("#overlay").hide(); return false;});
  data['recieve'] = $("input[name=recieve]:checked").attr('value');
  $("#poll-container").fadeOut("slow",function(){
    $(this).empty();
    
    votedID = id;
    $.getJSON("poll.php",data,loadResults);
    
    $.cookie('vote_id', id, {expires: 365});
    });
}

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

function loadResults(data) {
  var total_votes = 0;
  var percent;
  for (id in data) {
    total_votes = total_votes+parseInt(data[id][OPT_VOTES]);
    data[id][0] == parseInt(data[id][0]);
  }
  function castToInt(a,b)
  {
  	return parseInt(a) - parseInt(b);
  }
  data.sort(castToInt);
  var results_html = "<div id='numbers'>"+total_votes+" Votes</div><ol class='graph'>\n";

  for (id in data) {
    percent = Math.round((parseInt(data[id][OPT_VOTES])/parseInt(total_votes))*100);
    if(isNaN(percent)){percent = 0;}
    var sid = parseInt(data[id][0])+1;

    if (data[id][OPT_ID] !== votedID) {
      results_html = results_html+"<li id='bar-"+sid+"'><em class='bar-title'>#"+sid+"</em>\n<div class='bar-container'><div class='bar-total'>&nbsp;</div><strong>("+percent+"%)</strong></div>\n";
    } else {
      results_html = results_html+"<li id='bar-"+sid+"'><em class='bar-title'>#"+sid+"</em>\n<div class='bar-container'><div class='bar-total'>&nbsp;</div><strong>("+percent+"%)</strong></div>\n";
    }
  }
  
  results_html = results_html+"</ol>\n";

  $("#poll-container").append(results_html).fadeIn("slow",function(){animateResults();});
  Cufon.replace('#numbers, .graph .bar-title');
  barHovers();
}
