/*
 * 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() {
	  SOF.contacts.write_map();
      $$DV.contacts = Box.nodes.get('#contacts');
      if(!$$DV.contacts.length) {return;}
      $$DV.region = Box.nodes.get('#region')[0];
      if(!$$DV.region) {return;}
      /* ajout map 20090430 */
      $$DV.map = (navigator.appName.indexOf("Microsoft") != -1) ? window["mapSofitel"] : document["mapSofitel"];
      $$DV.cIndexes = new Array("", "EU", "AF", "AM", "AS");
      $$DV.cIndexesInv = new Array();
      for(i=0;i<$$DV.cIndexes.length;i++)
          $$DV.cIndexesInv[$$DV.cIndexes[i]] = i;
      /* fin ajout map 20090430 */
      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];
      /* ajout map 20090430 */
      $$DV.menuTabs = Box.nodes.get('li', [menu]);
      for(l=0;l<$$DV.menuTabs.length;l++)
          $$DV.menuTabs[l].setAttribute('cId', l);
      /* fin ajout map 20090430 */
      Box.events.add(menu, 'click', SOF.contacts.manageMenu);
      $$DV.activeTab = Box.nodes.get('li.actif', [menu])[0];
      /* ajout map 20090430 */
      if($$DV.map) {window.setTimeout(function(){$$DV.map.changeContinent($$DV.cIndexes[$$DV.activeTab.getAttribute('cId')])}, 500);}
      /* fin ajout map 20090430 */
      $$DV.runIn = Box.nodes.prev($$DV.activeTab);
  },
	
manageMenu: function(e) {
      var t = e.target || e.srcElement;
      /* ajout map 20090430 */
      if(t==undefined){ // appel changeOnglet()
          if($$DV.cIndexesInv[e]!=null)
              t = Box.nodes.get('a', [$$DV.menuTabs[$$DV.cIndexesInv[e]]])[0];
      }
      else{ // appel evenement souris
          while(t.nodeName.toLowerCase() != 'a' && t.nodeName.toLowerCase() != 'li') {t = t.parentNode;}
          if(t.nodeName.toLowerCase() != 'a') {return;}
          e.preventDefault();
          if($$DV.map) {$$DV.map.changeContinent($$DV.cIndexes[t.parentNode.getAttribute('cId')]);}
      }
      /* fin ajout map 20090430 */
      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');
	},
	
	write_map: function(){
		var html = document.getElementsByTagName('html');
		var so = new SWFObject('../flash/press-public-relations/contacts-map/mapPress.swf', 'mapSofitel', '968', '272', '9.0.0.0', '#000');
		so.addParam('menu', 'false');
		so.addParam('wmode', 'transparent');
		so.addParam('flashvars', 'xmlPath=../'+html[0].className+'/xml/press-public-relations/contacts-map/data.xml');
		so.write('overture-deco-map');
	}
};

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

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

// commande du flash
function changeOnglet(id){
    SOF.contacts.manageMenu(id);
}
