var Poll = new Class({
	Implements: [Options],
	initialize: function(poll,options) {
		this.setOptions(options);
		this.poll = $(poll);
		
		if (this.poll) {
			this.poll.getElements('.doVote').each(function(btn) {
				btn.addEvent('click',function(e) {
					new Event(e).stop();
					var ind = new Element('img',{'src': '/img/common/ajax-loader.gif'}).injectBefore(btn);
					btn.destroy();
					
					this.poll.getElements('.vote').each(function(vote) {
						vote.addClass('none');
					});
					
					this.poll.getElements('.doVote').each(function(vote) {
						vote.addClass('none');
					});
					
					var ans = new Element('input',{
						'type':'hidden',
						'value':btn.get('value'),
						'name':'answer_id'
					}).inject(this.poll);
					
					this.poll.set('send',{
						onComplete: function(res) {
							ans.destroy();
							ind.destroy();
							var results  = JSON.decode(res);
							results.each(function(r) {
								this.addResult(r);
							}.bind(this));
						}.bind(this)
					});
					this.poll.send();
				}.bindWithEvent(this));
			}.bind(this));
		}
	},
	
    addResult: function(r) {
		if (r.poll == 'nb-votes') {
            var result = $('poll-'+r.id);
            result.removeClass('none');
            var votesText = result.getElement('.votesText');
            if (votesText) {
                votesText.set('html',r.v);
            }
        } else {
            var result = $('answer-'+r.id);
            if (result) {
                result.removeClass('none');

                var votes = result.getElement('.votes');
                if (votes) {
                    var progr = new Element('div').addClass('progressBar').set('html','&nbsp').inject(votes);
                    var fx = new Fx.Tween(progr);
                    var width = votes.getStyle('width').replace('px').toInt();
                    fx.start('width', (r.v / 100) * width);

                }
                var votesText = result.getElement('.votesText');
                if (votesText) {
                    votesText.set('html',r.v + '%');
                }
            }
        }
	}
});