// Global variable definitions
// DB column numbers
var OPT_ID = 0;
var OPT_TITLE = 1;
var OPT_VOTES = 2;
var CHECK_COOKIE = false;
var POLL_TITLE = 'Wyniki ankiety';

var votedID;

var formProcessFlag = false;

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

function formProcess(event){
	if(formProcessFlag) return false;
  event.preventDefault();
  
  var id = $("input[@name='poll']:checked").attr("value");
	if(typeof(id)=='undefined') { alert('Zaznacz pozycję w ankiecie.'); return; }
	formProcessFlag = true;
  id = id ? id.replace("opt",'') : 0;
  
  $("#poll-container").fadeOut("slow",function(){
    $(this).empty();
    
		if(CHECK_COOKIE) {
			votedID = id;
			$.cookie('vote_id', id, {expires: 365});
		}
		
    //$.getJSON("poll.php?vote="+id,loadResults);
    $.getJSON("/poll/vote/"+id,loadResults);
    
    });
}

function animateResults(){
  $("#poll-results div").each(function(){
			if(this.id.substring(0,3)=='bar') {
				var percentage = $(this).next().text();
				$(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]);
  }
  
  var results_html = "<div id='poll-results'><h3>"+POLL_TITLE+"</h3>\n<dl class='graph'>\n";
  for (id in data) {
    percent = Math.round((parseInt(data[id][OPT_VOTES])/(total_votes==0 ? 1 : 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' style='border:1px solid black'><div id='bar"+data[id][OPT_ID]+"'style='width:0%;'>&nbsp;</div><strong>"+percent+"%</strong></dd>\n";
      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 bar-container-active'><div id='bar"+data[id][OPT_ID]+"'style='width:0%;'>&nbsp;</div><strong>"+percent+"%</strong></dd>\n";
    }
  }
  
  results_html = results_html+"</dl><p class=\"podsumowanie\"><input id=\"poll-back\" type=\"image\" style=\"margin-right:10px; float:left;\" src=\"/siteimg/button_powrot.png\" /><span style=\"width:80px; height:18px; display:block; float:left; font-weight:bold;\">Liczba&nbsp;głosów:&nbsp;"+total_votes+"</span><div style=\"clear:both\"></div></p></div>\n";
  
  $("#poll-container").append(results_html).fadeIn("slow",function(){
    animateResults();});
	
	$('#poll-back').click(function() {
		if(formProcessFlag) return false;
		formProcessFlag = true;
		$("#poll-container").fadeOut('slow', function() {
			$.get('/poll/content/', function(data) {
				$("#poll-container").replaceWith(data);
				$("#poll-container").hide().fadeIn('slow');
				$("#poll").submit(formProcess);
				formProcessFlag = false;
			});
		});
	});
	
	formProcessFlag = false;
}
