(function($) {

var defSettings = {
	container: '.nav-center',
	item: 'td .nav-item',
	itemDescr: 'p.description',
	currentClass: 'g-current',
	overview: 'tr.description td'
};

var creditOverview = function(selector, settings) {

	selector = $(selector);
	var self = this;

	this.show = function(e) {
		var descr = $(this).addClass(settings.currentClass).next(settings.itemDescr).clone(true);
		self.overview.html(descr);
		self.overview.find(settings.itemDescr).slideDown('fast');
	};

	this.hide = function() {
		$(this).removeClass(settings.currentClass);
		self.overview.find(settings.itemDescr).slideUp('fast');
	};

	this.hideByOthers = function(e) {
		e = e || event || window.event;
		var target = $(e.target);
		if (!target.is(settings.container) && target.parents(settings.container).size() <= 0) {
			self.hide();
		}
	};

	this.container = selector.parents(settings.container);
	this.overview = this.container.find(settings.overview);
	this.container.find(settings.item).mouseenter(this.show).mouseleave(this.hide);
};

$.fn.creditOverview = function(settings) {

	settings = $.extend(defSettings, settings);

	this.each(function(i, selector) {
		new creditOverview(selector, settings);
	});

};

})(jQuery);

$(function() {
	$('.nav-center table').creditOverview();
});
