/*
 * Gestion des contacts
 * /!\ nécessite sof_datas.js pour fonctionner
 */

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

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

// remplacements formulaires
SOF.contacts = {
	init: function() {
		$$DV.contacts = Box.nodes.get('#contacts');
		if(!$$DV.contacts.length) {return;}
		$$DV.region = Box.nodes.get('#region')[0];
		if(!$$DV.region) {return;}
		SOF.contacts.menu();
	},
	
	launch: function() {
		var f = Box.nodes.get('form', $$DC.compare)[0];
		if(!f) {return;}
		Box.nodes.addClass($$DC.compare[0], 'js');
		var cs = Box.nodes.get('input[type=checkbox]', [f]);
		if(!cs.length) {return;}
		for(var j = 0, c; c = cs[j]; j++) {SOF.compare.replace(c);}
		Box.events.add(f, 'submit', function(e) {SOF.compare.onSubmit(e, this)});
		f = null; cs = null; c = null; // nettoyage
	},
	
	menu: function(context) {
		var menu = Box.nodes.get('ul', $$DV.contacts)[0];
		Box.events.add(menu, 'click', SOF.contacts.manageMenu);
		$$DV.activeTab = Box.nodes.get('li.actif', [menu])[0];
		$$DV.runIn = Box.nodes.prev($$DV.activeTab);
	},
	
	manageMenu: function(e) {
		var t = e.target || e.srcElement;
		while(t.nodeName.toLowerCase() != 'a' && t.nodeName.toLowerCase() != 'li') {t = t.parentNode;}
		if(t.nodeName.toLowerCase() != 'a') {return;}
		e.preventDefault();
		if($$DV.activeTab) {Box.nodes.removeClass($$DV.activeTab, 'actif');}
		if($$DV.runIn) {Box.nodes.removeClass($$DV.runIn, 'run-in');}
		$$DV.activeTab = t.parentNode;
		$$DV.runIn = Box.nodes.prev($$DV.activeTab);
		if($$DV.runIn) {Box.nodes.addClass($$DV.runIn, 'run-in');}
		Box.nodes.addClass($$DV.activeTab, 'actif');
		var url = Box.nodes.attribute(t, 'href');
		Box.ajax({
			'url': url,
			'type': 'GET',
			'onSuccess': SOF.contacts.displayContacts
		});
	},
	
	displayContacts: function(d) {
		d = d.substring(d.indexOf('<div id="region">') + 17);
		d = d.substring(0, d.indexOf('<!--/Région-->'));
		d = d.substring(0, d.lastIndexOf('</div>'));
		$$DV.region.innerHTML = '';
		Box.nodes.insert(d, $$DV.region, 'last');
	}
};

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

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