var Driebit = Driebit || {}; 

Driebit.voteStars = new Class({
	_default_title: null,
	_active_elements: null,
	_title_element: null,
	_is_hovering: false,
	
	initialize: function() {
		title_element = $$('.jij-vindt .star-title');
		if (title_element.length) {
			this._title_element = title_element[0];
		}
		
		this.saveDefault();
		
		$$('.jij-vindt').addEvent('mouseout', this.restoreDefault.bind(this));
		$$('.jij-vindt a.star').addEvent('mouseover', this.mouseOver.bind(this));
		$$('.jij-vindt a.star').addEvent('mouseout', this.mouseOut.bind(this));
	},
	
	mouseOver: function(event) {
		var element = event.target;
		$$('.jij-vindt a.star').removeClass('hover').removeClass('active');
		this.setTitle(element.get('title'));
		while ($chk(element)) {
			element.addClass('hover');
			element = element.getPrevious();
		}
	},
	
	mouseOut: function(event) {		
		$$('.jij-vindt a.star').removeClass('hover');
	},
	
	saveDefault: function() {
		if ($chk(this._title_element)) {
			this._default_title = this._title_element.get('text');
		}
		this._active_elements = $$('.jij-vindt a.active');
	},
	
	restoreDefault: function() {
		this._active_elements.each(function(element) {
			element.addClass('active');
		});
		this.setTitle(this._default_title);
		this._is_hovering = false;
	},
	
	setTitle: function(title) {
		if ($chk(this._title_element)) {
			this._title_element.set('text', title);
		}
	}
});

document.addEvent('domready', function() {
	var voteStarsObject = new Driebit.voteStars();
});
