if(this.PRO === undefined) {
	var PRO = {};
}

//gestion de l'affichage du menu principal
PRO.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;
	},
	activateMenuItem: function(datas) {
		if (datas.main) {
			this.addClass(document.getElementById(datas.main), 'on');
		}
		if (datas.submenu) {
			this.addClass(document.getElementById(datas.submenu), 'on');
		}
	}
};

Event.observe(window, 'load', function() {
	var W = this, D = this.document;
	
	// showHide
	var showHide = {
		mouseover: function() {
			var t = this.getElementsByTagName('ul')[0];
			if(t) {
				if(W.PRO.activateMenuItem && W.PRO.activateMenuItem.submenu != this.id) {
					W.PRO.addedTools.addClass(this, 'on');
				}
				W.PRO.addedTools.removeClass(t, 'off');
				W.PRO.addedTools.addClass(t, 'on');
			}
		},
		mouseout: function() {
			var t = this.getElementsByTagName('ul')[0];
			if(t) {
				if(W.PRO.activateMenuItem && W.PRO.activateMenuItem.submenu != this.id) {
					PRO.addedTools.removeClass(this, 'on');
				}
				W.PRO.addedTools.removeClass(t, 'on');
				W.PRO.addedTools.addClass(t, 'off');
			}
		}
	};
	
	if (typeof W.activateMenuItem == 'object') {
		W.PRO.addedTools.activateMenuItem(W.activateMenuItem);
	}
	//Changement de langues
	if (!W.PRO.changeLangIsDone) {
		var url = location.href;
		var select = D.getElementById('changeLang');
		if (select && select.nodeName.toLowerCase() == 'select') {
			Event.observe(select, 'change', function() {
				location.href = this.value + '&ref=' + escape(url);
			});
		}
		var list = D.getElementById('langList');
		if (list && list.nodeName.toLowerCase() == 'ul') {
			Event.observe(list, 'click', function(e) {
				var t = Event.element(e);
				if (t.nodeName.toLowerCase() == 'a') {
					t.href = t.href + '&ref=' + escape(url);
				}
			});
		}
	}
	
	['mCherchezReservez', 'mNotreOffre', 'mNosMarques', 'mActualites', 'mAClub'].each(function(id, i) {
		var el = D.getElementById(id);
		if (el) {
			el.onmouseover = showHide.mouseover;
			el.onmouseout = showHide.mouseout;
		}
	});

}, false);


if(!CORP) { var CORP = {}; }

//création du menu "Notre offre"
CORP.menuOffreNoh = {
	type : "cibles",
	insertTo :"menu-offre",
	insertToBandeau :"mOffre",
	getUrl : function(){
		var lang = $$('html')[0].readAttribute('lang');
		if(lang == 'en'){
			lang = 'gb';
		}
		return '/geoloc/geoloc.cgi?file=/'+lang+'/js/menu-offre.js';
	},
	getJSONFragment: function(json, type) {

		return (typeof json == 'object' && json[type] && typeof json[type] != 'undefined') ? json[type] : null;
	},
	selectMenu: function(dom){
		var url = window.location.href;
		var id = url.substring(url.indexOf('#')+1,url.length);
		if(url.indexOf('#')>-1 && id.length>0){
			$(id).addClassName('on');
			if($(id).up(1).tagName=='LI'){
				$(id).up(1).addClassName('on');	
			}
		} else {
			dom.down(0).next().down(0).addClassName('selected');
		}
	},
	compileMenu: function(tplType, datas, dom) {
		var tpl = '';
		var tmp = '';
		if(dom.id == 'menu-offre'){
			if ($('tpl_'+tplType)) {
				if (tplType == 'cibles') {
					if (datas.titre) {
						if (datas.url && datas.offres){
							var id = datas.url.substring(datas.url.indexOf('#')+1,datas.url.length);
							for(j=0;j<datas.offres.length;j++){
								var idSm = datas.offres[j].url.substring(datas.offres[j].url.indexOf('#')+1,datas.offres[j].url.length);
								tmp +='<li id="'+idSm+'"><a href="'+ datas.offres[j].url +'">'+ datas.offres[j].titre +'</a></li>';
							}
							tpl +='<li id="'+id+'"><a href="'+ datas.url +'">'+ datas.titre +'</a><ul>'+tmp+'</ul></li>';
						} else if (datas.url){
							tpl +='<li><a href="'+ datas.url +'">'+ datas.titre +'</a></li>';
						}
						else {
							tpl +='<li>'+ datas.titre +'</li>';
						}
					}
				}
			}
		} else {
			if ($('tpl2_'+tplType)) {
				if (datas.url){
					tpl +='<li><a href="'+ datas.url +'">'+ datas.titre +'</a></li>';
				} else if (datas.titre) {
					tpl +='<li>'+ datas.titre +'</li>';
				}
			}
		}
		return tpl;
	},
	//chargement du JSON et insertion du DOM dans le template
	addOffreToPage: function() {
		var dom = $(CORP.menuOffreNoh.insertTo);
		var dom2 = $(CORP.menuOffreNoh.insertToBandeau);
		if (dom || dom2) {
		new Ajax.Request(CORP.menuOffreNoh.getUrl() + '&time=' + new Date().getTime(), {
				method: 'get',
				onSuccess: function(request) {
					var json = request.responseText;
					if (typeof json == 'string' && json != '') {
						json = eval('(' + json + ')');
					}
					if (typeof json == 'object') {
						var fragment;
						if (CORP.menuOffreNoh.code_pays) {
							fragment = CORP.menuOffreNoh.getJSONFragment(json, CORP.menuOffreNoh.code_pays);
							if (!fragment){
							fragment = CORP.menuOffreNoh.getJSONFragment(json, 'DEF'); 
							}
						} else {
							fragment = CORP.menuOffreNoh.getJSONFragment(json, 'DEF');
						}
						fragment = CORP.menuOffreNoh.getJSONFragment(fragment || json, CORP.menuOffreNoh.type);
						if (fragment != null && fragment.length != 0) {
							CORP.menuOffreNoh.number = fragment.length;
							for (i = 0; i < CORP.menuOffreNoh.number; i++){
								var n = i;
								if($('menu-offre')){
									var tpl = CORP.menuOffreNoh.compileMenu(CORP.menuOffreNoh.type, fragment[n],dom);
									dom.insert(tpl);
								}
								var tpl2 = CORP.menuOffreNoh.compileMenu(CORP.menuOffreNoh.type, fragment[n],dom2);
								dom2.insert(tpl2);
							}
							if($('menu-offre')){
								CORP.menuOffreNoh.initMenuOffre.defer();
								if(!$(document.body).hasClassName('faq')){
									CORP.menuOffreNoh.selectMenu(dom);
								}
								if($(document.body).hasClassName('homeOffer')){
									CORP.menuOffreNoh.initMoffre.defer();
								}
							}
							var lis = $(dom2.id).childElements();
							$(lis.last()).addClassName('last');
						} else {
							$(dom2.id).remove();
						}
					} else {
						$(dom2.id).remove();
					}
				}
			});
		}		
	},
	initMenuOffre:function(){
		$$('#menu-offre > li > a').each(function(e){									   
			e.observe('click', function(f){
				f.stop();
				if(!this.up(0).hasClassName('on')){
					$(this.up(1)).childElements().each(function(e){
						e.removeClassName('on').addClassName('off');
					});
					$$('#menu-offre a').each(function(e){
						e.removeClassName('selected');
					});
					this.up(0).removeClassName('off').addClassName('on');
				}
				if($(document.body).hasClassName('homeOffer')){
					CORP.menuOffreNoh.blocListManage(this.href);
				}
			});
		});
	},
	initMoffre:function(){
		$$('#mOffre li a').each(function(e){
			e.observe('click', function(f){
				f.stop();
				var link = e.href;
				var id = link.substring(link.indexOf('#')+1,link.length);

				if ($(id)!= null) {
					$$('#menu-offre > li').each(function(g) {
					g.removeClassName('on');
					});
					
					$$('#menu-offre a').each(function(h){
						h.removeClassName('selected');
					});
					$(id).addClassName('on');
				} 
				CORP.menuOffreNoh.blocListManage(e.href);
			});
		});	
	},
	blocListManage:function(href){
		var target = href.substring(href.indexOf('#')+1,href.length);
		var iframe = document.getElementById("iframeOffers");

		iframe = iframe.contentWindow.document || iframe.contentDocument;

		var listLi = iframe.getElementById('search-toc').childElements();
		listLi.each(function(e){
			e.removeClassName('on').addClassName('off');
		});
		if(Prototype.Browser.IE6){
			var listDiv = iframe.getElementById(target).parentElement.childElements();
		} else {
			var listDiv = iframe.getElementById(target).up(0).childElements();
		}
		listDiv.each(function(e){
			e.removeClassName('on').addClassName('off');									  
		});
				
		iframe.getElementById(target).removeClassName('off').addClassName('on');
					
		listLi.each(function(e){
			var cible = '#'+target;
			if(e.down('a').readAttribute('href') == cible){
				e.removeClassName('off').addClassName('on');
			}
		});
	}
}
document.observe("dom:loaded",function() {
	CORP.menuOffreNoh.addOffreToPage();
});