
setMainMenu = function(navig) {
var navroot;
if(!(navroot=xGetElementById(navig))) return;
var lis=xGetElementsByTagName("LI",navroot);
for (i=0; i< lis.length; i++){
	switch(lis[i].id){//Second level
		case 'AboutUs':
		lis[i].menu = new rollOverMenu(lis[i].lastChild);
		break;
		case 'DestinationMenu':
		lis[i].menu = new rollOverMenu(lis[i].lastChild);
		break;
		case 'ThemeMenu':
		lis[i].menu = new rollOverMenu(lis[i].lastChild);
		break;		
		case 'HomeMenu':
		break;
		case 'Contact':
		break;
		}
if (lis[i].id) setEventListener(lis[i]); else if(window.opera) xDisplay(lis[i],'compact');
}
setNavigationTree();
}

function setNavigationTree(){
RSA = new category('south_africa_tours','Afrique du Sud','RSA');
BOT = new category('botswana_tours','Botswana','BOT');
LSH = new category('lesotho_tours','Lesotho','LSH');
MOZ = new category('mozambique_tours','Mozambique','MOZ');
NAM = new category('namibia_tours','Namibie','NAM');
SWZ = new category('swaziland_tours','Swaziland','SWZ');
ZAM = new category('zambia_tours','Zambie','ZAM');
ZIM = new category('zimbabwe_tours','Zimbabwe','ZIM');

safari = new category('safari_tours','Safari','TS');
trek = new category('trek_tours','Trek','TT');
adventure = new category('adventure_tours','Aventure','TA');
honey = new category('honeymoon_tours','Lune de Miel','TL');
alltours = new category('all_tours','Tous nos voyages','AT');

SEL= new category('selection_tours','selection','SEL');
SELECTION = [SEL];

staff = new category('staffhome',"L'équipe");
transport = new category('transporthome',"Transport");
values = new category('valueshome',"Nos Valeurs");

DESTINATIONS = [RSA,BOT,LSH,MOZ,NAM,SWZ,ZAM,ZIM];
THEMES = [safari,trek,adventure,honey,alltours];
WHO = [staff,transport,values];

var nav = (xGetElementById('page_setup').className) || false;	
if (!nav) return;
var main = xGetElementById('main_content');
if(nav == 'WHO'){
		var page = new getPageCode(WHO);//get Page code and Name
		if (page.name) writeTreeElement('Qui sommes nous - '+page.name,'#');//write who are we selection
		}
if(nav == 'DESTINATION'){//Destination Tour list
		page = new getPageCode(DESTINATIONS);//get Page code and Name
		if (page.name) {writeTreeElement('Destination - '+page.name,'#');setExtensionCodes(page.code,main);}//write destination
		var more = xGetElementsByTagName('a',xGetElementById('pagemenu'));//add extention to hyperlink
		if(more[0]) addExtentionCode(more[0],page.code);
		}
if(nav == 'COUNTRY_INFO'){//Page Country
		page = new getParentPageName(DESTINATIONS);//get Parent Page code and Name
		if(page.name) {writeTreeElement('Destination - '+page.name,page.url);writeTreeElement('En savoir plus','#');}
		}
if(nav == 'THEME'){
		page = new getPageCode(THEMES);//get Page code and Name
		if (page.name) if (page.code!='AT') {writeTreeElement('Nos voyages '+page.name,'#');setExtensionCodes(page.code,main);}//write theme
				else {writeTreeElement('Tous nos voyages','#');setExtensionCodes(page.code,main);}//write all tours
		}
if(nav == 'SELECTION'){
		page = new getPageCode(SELECTION);//get Page code and Name
		if (page.name) {writeTreeElement('Nos voyages populaires','#');setExtensionCodes(page.code,main);}//write selection
		}
if(nav == 'TOURS'){
		var title = xGetElementsByTagName('h2',xGetElementById('main_content'));//get the tour title
		title = title[0].firstChild.innerHTML.replace(/\./gi,'');
		page = new getParentPageName(DESTINATIONS);//get Parent Page code and Name
		if(page.name) {xGetElementById('topnav').className='ds'; writeTreeElement('Destination - '+page.name,page.url);writeTreeElement(title,'#');}
		else {
			page = new getParentPageName(THEMES);//get Parent Page code and Name
		  	if(page.name) {xGetElementById('topnav').className='th';
						  if (page.code!='AT') {writeTreeElement('Nos voyages '+page.name,page.url);writeTreeElement(title,'#');}
						  else {writeTreeElement('Tous nos voyages ',page.url);writeTreeElement(title,'#');}
							}
							else {
								page = new getParentPageName(SELECTION);
								if(page.name) {writeTreeElement('Nos voyages populaires',page.url);writeTreeElement(title,'#');}
								}
		  	}		
	}
}

function setExtensionCodes(code,main){
var title = xGetElementsByTagName('h2',main);//add extention to hyperlink
for(i=0;i<title.length;i++) addExtentionCode(title[i],code);	
}

function addExtentionCode(e,code){
if(!e.href) {if(e.lastChild && e.lastChild.href) e = e.lastChild; else return;}
e.ref = e.href+'?code='+code;
e.setAttribute('href',e.ref);//add extention code to hyperlink
}

function getPageCode(DATA){
var url = pageURL();
for (i=0;i<DATA.length;i++) if(DATA[i].url==url) {this.name = DATA[i].name;this.code = DATA[i].code;}
}

function pageURL(){
var url = window.location.href;
url =  unescape(url);// Convert escape code
var urlparts = url.split("/");
if (urlparts.length<1) return false;
var page = urlparts[urlparts.length-1];
//page = unescape(page);// Convert escape code
var name = page.split(".");
return name[0];
}

function getParentPageName(DATA){
this.code = getExtentionCode();
for (i=0;i<DATA.length;i++) if(DATA[i].code==this.code) {this.name = DATA[i].name; this.url = DATA[i].url;}	
}

function getExtentionCode(){
var url = window.location.href;
url =  unescape(url);// Convert escape code
var qparts = url.split("?");
if (qparts.length<=1) return false;
var vars = qparts[1].split("&");
var value = "";
var parts = (vars[0])?vars[0].split("="):'';
if (parts.length<=1) return false; else value = parts[1];
//value = unescape(value);// Convert escape code
return value;
}

function category(url,name,code){
this.url = url;
this.name = name;
this.code = code;
}

function writeTreeElement(ele,action){
var tree = xGetElementById('navigationtree');
var a = document.createElement("a");
tree.appendChild(a);
a.innerHTML = (!action || (action && action!='#'))?ele+' > ':ele;
if (action && action!='#') {
	action = "../tours_lists/"+action+".html"; 
	//if (isNaN(action)) action = "../"+action+".html"; else action = 'javascript:window.history.go('+action+')';
	a.setAttribute('href',action);
	} else a.className = 'dormant';
xDisplay(tree,'block');
}

function setEventListener(ele) {
ele.onmouseout=mouseOutMenu;
ele.onmouseover=mouseOverMenu;
}
	
function mouseOverMenu() {
this.className = (!this.hover)?"hover":"active";
if (this.menu) dropMenu(this);
}

function mouseOutMenu() {
if (!this.hover) this.className = 'default';
if (this.menu){
	clearTimeout(this.menu.timerroll);
	clearTimeout(this.menu.timerdrop);
	this.menu.rollup();
	}
}

function rollOverMenu(menu,invert){
this.menu = menu;
this.h = xHeight(menu);
this.w = xWidth(menu);
this.counter = 1;
this.drop = drop;
this.rollup = rollup;
this.invert = invert;
}

function dropMenu(ele) {
clearTimeout(ele.menu.timerroll);
clearTimeout(ele.menu.timerdrop);
ele.menu.drop();
}

function drop(){
var H,T=0;
if (this.counter<10){
	this.counter+=1;
	if(this.counter>10) this.counter = 10;
	H = Math.round(this.h*(Math.log(this.counter)/Math.LN10));
	if (this.invert){T=this.h-H;H=this.h;};
	xClip(this.menu,T,500,H,0);
	xShow(this.menu);
	var menu = this;
	this.timerdrop = setTimeout(function(){menu.drop()},30);
	} else clearTimeout(this.timerdrop);
}

function rollup(){
var H,T=0;
if (this.counter>1){
	this.counter+=-0.83;//must be slower than drop to prevent flickering!
	if(this.counter<1) this.counter = 1;
	H = Math.round(this.h*(Math.log(this.counter)/Math.LN10));
	if (this.invert){T=this.h-H;H=this.h;};
	xClip(this.menu,T,500,H,0);
	var menu = this;
	this.timerroll = setTimeout(function(){menu.rollup()},30);
	} else {clearTimeout(this.timerroll); xHide(this.menu)}//opera needs the xHide to avoid mouseover problem!
}

function setGalleryMenu(){
var gallery = xGetElementById('gallery');
gallery.menu = new rollOverMenu(gallery.lastChild,true);//true for inverting direction of dropping
setEventListener(gallery);
}

