/*
 * Gestion des masquer/montrer
 */

// init namespace (à utiliser pour éviter toute collision)
if(!SOF) {var SOF = {};}

// données pour les scripts de cette page
SOF.datasShowHide = {};
if(!$$DS) {var $$DS = SOF.datasShowHide;}

// masquer/montrer
SOF.showHide = {
	init: function() {
		var c = Box.nodes.get('.onHide'), n, insert = '';
		for(var i = 0, ci; ci = c[i]; i++) {
			ci.innerHTML = '<a href="#">' + ci.innerHTML + '</a>';
			n = Box.nodes.next(ci);
			insert = '<a href="#" class="close">' + SOF[$$L].alt.close + '</a>';
			Box.nodes.insert(insert, n, 'last', {
				'tag': 'a',
				'click': function(e) {SOF.showHide.close(e);}
			});
			Box.nodes.addClass(n, 'hide');
			Box.events.add(ci, 'click', function(e) {
				SOF.showHide.exe(e, this);
			});
		}
		c = null; n = null; // nettoyage
	},
	
	exe: function(e, p) {
		var t = p.firstChild;
		var n = Box.nodes.next(p);
		if(Box.nodes.hasClass(p, 'onHide')) {
			Box.nodes.swapClass(p, 'onHide', 'onShow');
			Box.nodes.removeClass(n, 'hide');
		} else {
			Box.nodes.swapClass(p, 'onShow', 'onHide');
			Box.nodes.addClass(n, 'hide');
		}
		e.preventDefault();
	},
	
	close: function(e) {
		var t = e.target || e.srcElement;
		while(t.nodeName.toLowerCase() != 'a') {t = t.parentNode;}
		SOF.showHide.exe(e, Box.nodes.prev(t.parentNode));
	}
};

// chargement des fonctions
Box.events.load(SOF.showHide.init);

// déchargement (nettoyage variables)
Box.events.add(window, 'unload', function() {
	$$DS = null;
	SOF.datasShowHide = null;
});