/**
 * Author: Jaimie Quagliara
 * Date: 10/03/2011
 */

/** POLL OBJECT */
Poll = function(vraag, pollItems) {
	this.vraag = vraag;
	this.pollItems = pollItems;
}

/** POLLITEM OBJECT */
PollItem = function(antwoord, stemmen) {
	this.antwoord = antwoord;
	this.stemmen = stemmen;
}

/** POLL WIDGET */
PollWidget = function(pollConfig, poll) {
	this.pollConfig = pollConfig;

	this.target = pollConfig.target;
	this.maxWidth = pollConfig.maxWidth;
	this.showAmount = (pollConfig.showAmount != null) ? pollConfig.showAmount : true;
	this.showPercentage = (pollConfig.showPercentage != null) ? pollConfig.showPercentage : true;
	this.totalVotedLabel = (pollConfig.totalVotedLabel) ? pollConfig.totalVotedLabel : 'Aantal stemmen:';
	
	this.poll = poll;
	this.totalVotes = this.getTotalVotes();
	
	this.loadPollWidget();
}

PollWidget.prototype.getTotalVotes = function() {
	var totalVotes = 0;
	$.each(this.poll.pollItems, function(i, pollItem){
		totalVotes += pollItem.stemmen;
	});
	
	return totalVotes;
}

PollWidget.prototype.loadPollWidget = function() {
	$(this.target).append('<div class="widget-poll"></div>');

	this.drawPoll();
}

PollWidget.prototype.drawPoll = function() {
	$('.widget-poll').append('<div class="widget-poll-vraag"></div>');
	$('.widget-poll-vraag').append(this.poll.vraag);

	var instance = this;
	$('.widget-poll').append('<div class="widget-poll-items"></div>');
	$.each(this.poll.pollItems, function(i, pollItem) {
		var width = (pollItem.stemmen != 0) ? (pollItem.stemmen / instance.totalVotes) * instance.maxWidth : 0;
		var widthStyle = (width != 0) ? 'style="width:' + width + '"' : '';
		$('.widget-poll-items').append('<div id="pollitem' + i + '" class="widget-poll-item"></div>');
		$('#pollitem' + i).append('<div class="widget-poll-answer">' + pollItem.antwoord + '</div>');
		$('#pollitem' + i).append('<div class="widget-poll-votes"></div>');
		$('#pollitem' + i + ' .widget-poll-votes').append('<div class="widget-poll-amount" ' + widthStyle + '>' + ((instance.showAmount) ? pollItem.stemmen : '') + '</div>');
		if (instance.showPercentage) {
			var percentage = Math.round((width / (instance.maxWidth / 100)) * 100) / 100;
			$('#pollitem' + i + ' .widget-poll-votes').append('<div class="widget-poll-percentage">(' + percentage + '%)</div>');
		}

	});
	$('.widget-poll').append('<div class="widget-poll-total">' + this.totalVotedLabel + ' ' + instance.totalVotes + '</div>');
}
