/*

DIPENDENZE:

jquery.js

VINCOLI:

...

ABSTRACT:

Plugins per la gestione di insiemi di elementi di tipo link (es.: gestione attivazione con click, gestione onmouseover etc.)

*/

(function($){ // START PLUGIN


// Quando uno degli elementi è 'attivo' (clickato), ad esso viene assegnata la classe classname (o 'activelink' per default).
// Quando un altro elemento è 'attivo', viene rimossa tale classe dal precedente e aggiunta al nuovo elemento.
$.fn.manageClick = function(classname){
	if(classname==undefined){classname = 'activelink';}
	var all = this;
	this.click(
		function(){
			all.select($(this), classname);
		}
	)
	return this;
};

// Simula il comportamento di un link quando viene selezionato (vedi 'manageClick').
$.fn.select = function(toselect, classname){
	if(toselect.length){
		if(classname==undefined){classname = 'activelink';}
		var prev = this.activeLinks();
		prev.removeClass(classname);
		prev.attr('activelink', '0');
		toselect.addClass(classname);
		toselect.attr('activelink', '1');
	}
	return this;
}

// Esegue links.select(this, classname) e restituisce this.
$.fn.selectAmong = function(links, classname){
	links.select(this, classname);
	return this
}

// Restituisce gli elementi attualmente 'attivi' (all'interno di un insieme passato a manageClick, l'elemento attivo è al massimo uno).
$.fn.activeLinks = function(){ return this.filter("[activelink='1']"); };


})(jQuery); // END PLUGIN
