var quickpoll	= {

	$container		: null,
	$answers		: null,
	$submitBTN		: null,

	$isLocked		: false,
	$answer			: null,
	$pageID			: null,
	$quickpollID	: null,

	/**
	* CONTROL METHODS
	*/
	vote: function()
	{
		if(quickpoll.$isLocked	=== true)
		{
			return false;
		}
		if(quickpoll.validate() === true)
		{
			quickpoll.lock();
			quickpoll.submitVote();
		}
		else
		{
			alert('Husk at stemme!');
			quickpoll.unlock();
		}
	},
	validate: function()
	{
		var _answer	= quickpoll.$container.find('input[name=answer]:checked').val();
		if(_answer)
		{
			quickpoll.$answer	= _answer;
			return true;
		}
		return false;
	},
	submitVote: function()
	{
		$.post(baseURL + 'webservice/quickpoll',
		{
			pageID		: quickpoll.$pageID,
			quickpollID	: quickpoll.$quickpollID,
			answer		: quickpoll.$answer
		},
		function(data)
		{
			if(data.status == 'ok')
			{
				quickpoll.showResult(data.response);
			}
			else if(data.status == 'error')
			{
				alert(data.response);
				quickpoll.unlock();
			}
		},
		'json');
	},
	showResult: function(result)
	{
		var _total	= 0;
		for(var i = 0; i<result.length; ++i)
		{
			_total	+= parseInt(result[i].total);
		}

		quickpoll.$submitBTN.remove();

		quickpoll.$answers.each(function(_key)
		{
			var $answer	= $(this);
			var _value	= $answer.find('.value').html();

			quickpoll.getVotes(result, _value);
			
			$answer.find('.vote').empty();
			$answer.find('.vote').hide();

			var _votes	= quickpoll.getVotes(result, _value);

			var $result	= $answer.find('.result');
			$result.show();

			$result.find('.votes').html(_votes);
			$result.find('.bar').animate({ width: (_votes/_total) * 75 + '%' }, 1200, 'swing');
		});
	},
	getVotes: function(result, value)
	{
		for(var i = 0; i<result.length; ++i)
		{
			if(result[i].answer == value)
			{
				return result[i].total;
			}
		}
		return 0;
	},
	lock: function()
	{
		quickpoll.$isLocked	= true;
	},
	unlock: function()
	{
		quickpoll.$isLocked	= false;
	},

	/**
	* INIT METHODS
	*/
	init: function()
	{
		quickpoll.$container	= $('#quickpoll');
		quickpoll.$answers		= quickpoll.$container.find('.answer');

		quickpoll.$pageID		= quickpoll.$container.find('.pageID').html();
		quickpoll.$quickpollID	= quickpoll.$container.find('.quickpollID').html();

		quickpoll.$submitBTN	= quickpoll.$container.find('.submit');
		quickpoll.$submitBTN.bind('click', quickpoll.vote);
	}
};

$(document).ready(quickpoll.init);
