if(typeof ACC === 'undefined') {
	var ACC = {};
}

ACC.addedTools = {
	emptyRe: /^\s+$/,
	hasClass: function(e, v) {
		var a = ' '+ e.className +' ';
		if(this.emptyRe.test(a) || a.indexOf(' '+ v +' ') == -1) {return false;}
		return true;
	},
	addClass: function(e, v) {
		if(!e || this.hasClass(e, v)) {return false;}
		e.className += e.className ? ' '+ v : v;
		return true;
	},
	removeClass: function(e, v) {
		if(!e || !this.hasClass(e, v)) {return false;}
		var r = e.className.indexOf(' '+ v) != -1 ? ' '+ v : v;
		e.className = e.className.replace(r, '');
		return true;
	}
};

Event.observe(window, 'load', function() {
	// mapping initRubrique / mPageId avec le nouveau header
	ACC.rubInitMap = {
		Pagvoy1: 'mAgences',
		esp_entreprises: 'mEntreprises',
		ee_business: 'mEntreprises',
		ee_contrat: 'mEntreprises',
		esp_reunions: 'mEvenements',
		ee_aclub: 'mEntreprises',
		er_rechhotel: 'mEvenements',
		er_ms_reunion: 'mEvenements',
		er_ms_convention: 'mEvenements',
		er_ms_incentive: 'mEvenements',
		er_ms_earthguest: 'mEvenements',
		er_ms_sport: 'mEvenements',
		er_ms_bienetre: 'mEvenements',
		er_ms_culture: 'mEvenements',
		er_ms_temoignage:'mEvenements',
		er_ms_clubmed: 'mEvenements',
		er_ms_barriere: 'mEvenements',
		esp_loisirs: 'mProsLoisir',
		reservez: 'mTousLesHotels',
		voyages: 'mIdeesVoyages',
		promo: 'mPromos',
		fidelisation: 'mProgFidelite'
	};
	
	ACC.rubInit = '';
	if(typeof initRubrique !== 'undefined') {
		ACC.rubInit += 'mRechercher;' + ACC.rubInitMap[initRubrique];
	} 
	else if(typeof mPageId !== 'undefined') {
		if (mPageId.substr(0,6)=='Pagvoy') {
			ACC.rubInit = 'mAgences' ;
		} else {
			ACC.rubInit = ACC.rubInitMap[mPageId] || 'mProsLoisir';
	  }
	 /*} else {
		ACC.rubInit = 'mProsLoisir';*/
	}
	
	if(ACC.rubInit) {
		var c, check = ACC.rubInit.split(';'), l = check.length, el;
		if(l) {
			for(var i = 0; i < l; i++) {
				el = document.getElementById(check[i]);
				if(el) {ACC.addedTools.addClass(el, 'on');}
			}
		}
	}
	
	// showHide
	var showHide = {
		mouseover: function(tag) {
			var t = this.getElementsByTagName('ul')[0];
			if(t) {
				if(ACC.rubInit && ACC.rubInit.indexOf(this.id) == -1) {
					ACC.addedTools.addClass(this, 'on');
				}
				ACC.addedTools.removeClass(t, 'off');
				ACC.addedTools.addClass(t, 'on');
			}
		},
		mouseout: function(target) {
			var t = this.getElementsByTagName('ul')[0];
			if(t) {
				if(ACC.rubInit && ACC.rubInit.indexOf(this.id) == -1) {
					ACC.addedTools.removeClass(this, 'on');
				}
				ACC.addedTools.removeClass(t, 'on');
				ACC.addedTools.addClass(t, 'off');
			}
		}
	};
	
	var lg = document.getElementById('languages'), sel;
	if(lg) {
		if((sel = lg.getElementsByTagName('select')[0])) {
			// cas du select pour changer de langues
			function changeLocation() {
				var url = this.value;
				if(url.indexOf('http://www.accorhotels.com') == -1) {
					url = 'http://www.accorhotels.com' + url;
				}
				if ($('bandeau_fh')) {
					url = 'http://www.accorhotels.com/i18n/setLangue.jsp?lang=' + url.toQueryParams().langue + '&ref=' + escape(window.location);
				}
				location.href = url;
			}
			
			sel.onchange = changeLocation;
		} else {
			// cas du menu déroulant
			lg.onmouseover = showHide.mouseover;
			lg.onmouseout = showHide.mouseout;
		}
	}
	
	var mTousLesHotels = document.getElementById('mTousLesHotels');
	if(mTousLesHotels) {
		mTousLesHotels.onmouseover = showHide.mouseover;
		mTousLesHotels.onmouseout = showHide.mouseout;
	}
	
	var mProgFidelite = document.getElementById('mProgFidelite');
	if(mProgFidelite) {
		mProgFidelite.onmouseover = showHide.mouseover;
		mProgFidelite.onmouseout = showHide.mouseout;
	}
		var mPromos = document.getElementById('mPromos');
	if(mProgFidelite) {
		mPromos.onmouseover = showHide.mouseover;
		mPromos.onmouseout = showHide.mouseout;
	}

}, false);
