var poll = new Class({
	/*Extends: SomeClass,*/
	
	Implements: [/*Chain, */Options, Events],
	
	/* standart egenskap */
	options: {
		poll_id : '',
		poll_name: '',
		poll_w_ratio: 2
	},  				
	poll_answ_DOM : null,
	/* -- constructor -- */
	initialize: function($options) {
		this.setOptions($options);
		this.init_dom();
	},
	init_dom: function(){
		this.poll_answ_DOM = $(this.options.poll_name);
		this.poll_total_answ_DOM = $$('#'+this.options.poll_name+'-total-answ span.total-answ-nr');
	},
	show_results: function(){
		this.poll_answ_DOM.addClass('result');
		EDIT_CORE.setCookie(this.options.poll_name,this.options.poll_id, 2592000);
	},
	vote: function(){
		//console.log(this.options.stat);
		//console.log(this.poll_answ_DOM.getElementsByTagName);
		var _$poll_answ = this.poll_answ_DOM.getElements('input[name='+this.options.poll_name+'][type=radio]');
		//console.log(_$poll_answ.length);
		var _$answ = 0;
		for (var $i = 0; $i < _$poll_answ.length; $i ++) if (_$poll_answ[$i].checked) _$answ = _$poll_answ[$i].value;
		if (_$answ == 0) return;		
		this.calculate_result(_$answ);		
		var jsonRequest = new Request({ url: EDIT_CORE.JSSiteRoot+'site/poll/action.php', onSuccess: function(json_obj, txt){									
		}.bind(this)}).get({
			'page_id':EDIT_CORE.page_id, 
			'action_class': 'vote', 			
			'poll_id':this.options.poll_id, 
			'answr_id':_$answ});
		this.show_results();
	},
	calculate_result: function($answ){
		for ($i = 0; $i < this.options.stat.answs.length; $i ++)
			if (this.options.stat.answs[$i].id == $answ){
				this.options.stat.total ++;
				this.options.stat.answs[$i].n ++;
				break;
			}
		for ($i = 0; $i < this.options.stat.answs.length; $i ++){
			var _$prosent = Number(this.options.stat.answs[$i].n / this.options.stat.total) * 100;						
			$('poll-result-'+this.options.stat.answs[$i].id).setProperty('width', (_$prosent.toFixed()*this.options.poll_w_ratio));
			$('poll-result-nr-'+this.options.stat.answs[$i].id).set('html', '&nbsp;('+_$prosent.toFixed(2)+' %)');
		}
		this.poll_total_answ_DOM.set('html', this.options.stat.total);
	}	
});
