window.addEvent('domready', function() {
	var updateChoicesState = function() {
		this.toggleClass('hilited').getParent('.person').retrieve('opposite')
			.getElement('.' + (this.hasClass('um') ? 'krasa' : 'um')).toggleClass('hilited')
			.getParent('.vote_machine').getElements('.choices a').each(function(a) {
				a[!this.hasClass('hilited') || a.hasClass('hilited') ? 'removeClass' : 'addClass']('dimmed');
			}, this);
	};
	
	var initVoteMachine = function(voteMachine) {
		var persons = voteMachine.getElements('.person');
		persons[0].store('opposite', persons[1]);
		persons[1].store('opposite', persons[0]);
		voteMachine.getElements('.choices a').addEvents({
			'mouseenter': updateChoicesState,
			'mouseleave': updateChoicesState,
			'click': function(event) {
				if (!voteMachine.hasClass('widget')) {
					return;
				}
				event.stop();
				new Request.HTML({
					'url': this.get('href'),
					'method': 'get',
					'update': voteMachine,
					'onSuccess': function() {
						initVoteMachine(voteMachine);
					}
				}).send();
			}
		});
	};
	
	$$('.vote_machine').each(initVoteMachine);
	
	var egg = $('easter_egg');
	if (egg) {
		document.getElement('.or').addEvent('click', function() {
			egg.setStyle('display', 'block');
			(function() { egg.setStyle('display', 'none'); }).delay(4000);
		});
	}
});