$(function(){
	//new Vote('/site/vote.php');
	new Vote('/vote.php');
});
function Vote(url){
	this.url 		= 	url;
	this.vote 		=	0;
	
	this.initData();
}

Vote.prototype={
	submitForm:function(){
		var o_this = this;

		var id = $("input[@name='variant']:checked").attr("value");
		if(id == undefined) 
			return;
	
		id = id.replace('opt', '');
		
		$("#vote-container").empty();	

		votedID = id;
		var param = new Object();
		param.vote=o_this.vote;
		param.variant=id;
		$.post(o_this.url, param, function(data){o_this.loadResults(data);}, 'xml');
		
		$.cookie('vote_id', id, {expires: 365});
	},
		
	loadResults:function(xml){
		var percent;
		var o_this = this;
		var total_votes = $('total', xml).text();
		var current_id = $('current_voice', xml).attr('id');
		var vote_name = $('vote_name', xml).text();
		var variant=$('variant', xml);
		if(variant){
			var results_html = "<div id='vote-results'><h3>"+vote_name+"</h3>\n<dl class='graph'>\n";
			$(variant).each(function(){
				percent = Math.round((parseInt($(this).attr('count'))/parseInt(total_votes))*100);
				
				results_html = results_html+"<dt class='bar-title'>"+$(this).attr('nm')+"</dt><dd class='bar-container'><div id='bar' style='width:0%;font-size:10px;padding-left:2px;font-weight:bold;"+(current_id==$(this).attr('id') ? 'background:#f60;color:#fff;' : '')+"'>"+parseInt($(this).attr('count'))+"</div><strong style='color:#"+(current_id==$(this).attr('id') ? 'f60' : '399')+"'>"+percent+"%</strong></dd>\n";
			});
		}

		results_html = results_html+"</dl><br/><p style='color:#666'>Всего голосов: "+total_votes+"</p></div>\n";

		$("#vote-container").append(results_html).fadeIn("slow",function(){
			o_this.animateResults();
		});
	},
	
	animateResults:function(){
	  var o_this = this;
	  $("#vote-results div").each(function(){
		  var percentage = $(this).next().text();
		  $(this).css({width: "0%"}).animate({
					width: percentage}, 'slow');
	  });
	},
	
	initData:function(){
		var o_this = this;

		var param = new Object();
		param.vote = 0;
		$.post(this.url, param, function(data){;o_this.onInitData(data)}, 'xml');
	},
	
	onInitData:function(xml){
		var o_this = this;
		if($('response', xml).attr('code')==0){
			return;
		}
		var mode = $('response', xml).attr('mode');
		
		if(mode=='form'){
			o_this.createFormVote(xml);
		}
		else{
			o_this.loadResults(xml);
		}
	},
	
	createFormVote:function(xml){
		var o_this = this;
		var vote_name=$('vote', xml).text();
		o_this.vote=$('vote', xml).attr('id');
		var vote_date=$('date_f', xml).text();
		var variants = $('variant', xml);
		
		var results_html = "";
		results_html 	+= "<h3>"+vote_name+"</h3>";
		results_html 	+= "<form id='vote' action='vote.php' method='post'>";
		results_html 	+= "<p>";
		$(variants).each(function(){
			//results_html += "<input type='radio' name='variant' value='opt"+$(this).attr('id')+"' id='"+$(this).attr('id')+"' style='margin-bottom:0px;'/><label style='color:#666;padding-top:0px;' 	for='"+$(this).attr('id')+"'>&nbsp;&nbsp;&nbsp;"+$(this).attr('nm')+"</label><br />";
			results_html += "<div style='height:15px;margin:0px;padding:0px;'><input type='radio' name='variant' value='opt"+$(this).attr('id')+"' id='"+$(this).attr('id')+"' style='margin-bottom:0px;border:0px solid #000;'/><label for='"+$(this).attr('id')+"'><span>&nbsp;"+$(this).attr('nm')+"</span></label></div><br />";
		});
		results_html 	+= "<input type='button' value='Голосовать' id='vote_button' class='fb-field' style='width:80px;height:20px;border:1px solid #666; background:#fff; color:#666; margin-bottom:0px;'/>";
		results_html 	+= "<p>";
		results_html 	+= "</form><br/>";
	
		$("#vote-container").append(results_html)
		$('#vote_button').click(function(){o_this.submitForm()});
	}
}