// T-Menu 1.1 (c) 2002 by Charles Foster
//
// T-Menu is a DHTML Menu system written for any browser
// that supports W3C standards. [www.w3.org]
//
// [Mozilla, NS 6/7, Opera 5/6/7, IE 5/6+, Konqueror 2/3]
//
// http://www.cfoster.net/tmenu/

var ua		= navigator.userAgent;
var opera	= /opera [56789]|opera\/[56789]/i.test(ua);
var ie		= !opera && /msie [56789]/i.test(ua);
var ieBox = ie && (document.compatMode == null || document.compatMode != "CSS1Compat");
var moz		= !opera && /mozilla\/[56789]/i.test(ua);
var kon   = /Konqueror/i.test(ua);
var lin   = /Linux/i.test(ua);

// JS Constants
var TMENU_IMAGES_PATH  = "../../images/"; // left in for v1.0 data files
var MENU_HOVER_MODE    = opera || kon ? true:false;
var ITEM_BORDER_SIZE   = 1;
var ITEM_MARGIN_SIZE   = 1;
var DEFAULT_ICON_SIZE  = opera ? 18:20;
var DEFAULT_MENU_WIDTH = 145;
var MENU_HIDE_TIMEOUT  = opera ? 1:3;

var _arrowD = null;
var _arrowR = null; // loaded later

// -

amt = (opera) ? 4:(moz && lin) ? -8:(moz) ? -11:(ie) ? -11:(kon) ? 14:0;
amr = (opera) ? 3:(moz) ? 3:(ie) ? 4:(kon) ? 2:0;
amCSS = amt+"px "+amr+"px 0px 0px";

imt = (ie || moz) ? 1:0;
imr = (ie) ? 3:0;
iml = (ie || moz) ? 2:0;
imCSS = imt+"px "+imr+"px 0px "+iml+"px";

var MenuHandler = {
	all : [],
	// since 1.1:
	pid : "T-Menu-",
	mbcntr : 0,
	item_prefix : "item-",
	frame_prefix : "box-",
	// ---
	_over : function(o) {
		Tthread.stop();
	},
	_out : function(o) {
		Tthread.stop();
		Tthread.start();
	},
	_blur : function(o) {
		window.menutimeout = setTimeout("MenuHandler.hideAllSubs();",350);
	},
	show_frame : function(id) {
		document.getElementById(id).style.visibility = "visible";
	},
	show_sub : function(id,y) {
		this.show_submenu(id,
		y.offsetParent.offsetLeft+y.offsetWidth + (ITEM_MARGIN_SIZE*2 + ITEM_BORDER_SIZE),
		y.offsetParent.offsetTop+y.offsetTop);
	},
	show_submenu : function(id,x,y)
	{
		_bh = layout.getBrowserHeight()+layout.getScrollY();
		_bw = layout.getBrowserWidth()+layout.getScrollX();
		_wi = document.getElementById(id).offsetWidth;
		_hi = document.getElementById(id).offsetHeight;
		document.getElementById(id).style.left = ((x + _wi > _bw) ? ((x-(_wi*2)+10 > 0) ? x-(_wi*2)+10:0):x) + "px";
		document.getElementById(id).style.top = ((_hi > _bh) ? 0:(y + _hi > _bh) ? _bh-_hi:y) + "px";
		this.show_frame(id);
	},
	hide_frame : function(id) {
		document.getElementById(id).style.visibility = "hidden";
	},
	changeIcon : function(obj,src) {
		document.getElementById(obj.id+"-image").src = src;
	},
	hideAllSubs : function() {
		for(this.i=0;this.i<this.all.length;this.i++) {
			document.getElementById(this.all[this.i]).style.visibility = "hidden";
		}
	},
	sortIDs : function(obj,prefix) {
		for(this.i=0;this.i<obj.items.length;this.i++)
		{
			obj.items[this.i].id = prefix+"-"+this.i;
		}
		for(this.x=0;this.x<obj.submenus.length;this.x++)
		{
			obj.submenus[this.x].action.id = MenuHandler.frame_prefix+obj.submenus[this.x].id;
			MenuHandler.all[MenuHandler.all.length] = obj.submenus[this.x].action.id;
			new MenuHandler.sortIDs(obj.submenus[this.x].action,obj.submenus[this.x].id);
		}
	}
};
var layout = {
	getTop : function(el) {
		this.value = el.offsetTop;
		if(el.offsetParent)
		{
			this.value += layout.getTop(el.offsetParent);
		}
		return this.value;
	},
	getLeft : function(el) {
		this.value = 0;
		if(el.offsetParent)
		{
			this.value += layout.getLeft(el.offsetParent);
			return this.value + el.offsetParent.offsetLeft;
		}
		return 0;
	},
	getHeight : function(el) {
		return (moz) ? el.offsetHeight:el.offsetHeight;
	},
	getBrowserWidth : function() { return ie ? (ieBox ? document.body.clientWidth:document.documentElement.clientWidth):window.innerWidth; },
	getBrowserHeight : function() { return ie ? (ieBox ? document.body.clientHeight:document.documentElement.clientHeight):window.innerHeight; },
	getScrollY : function() { return ie ? (ieBox ? document.body.scrollTop:document.documentElement.scrollTop):window.pageYOffset; },
	getScrollX : function() { return ie ? (ieBox ? document.body.scrollLeft:document.documentElement.scrollLeft):window.pageXOffset; },
	getX : function(obj) {
		return obj.offsetLeft + layout.getLeft(obj);
	},
	getY : function(obj) {
		if(kon) { return layout.getTop(obj) + obj.offsetHeight; }
		return layout.getTop(obj) + layout.getHeight(obj);
	}
};
var Tthread = {
	_tmr : 0,
	_tt : MENU_HIDE_TIMEOUT*10,
	start : function() {
		this._tmr++;
		window.menutimeout = setTimeout("Tthread.start()",100);
		if(this._tmr >= this._tt) {
			MenuHandler.hideAllSubs();
			this.stop();
		}
	},
	stop : function() {
		if(window.menutimeout != null) { window.clearTimeout(window.menutimeout); }
		this.reset();
	},
	reset : function() { this._tmr = 0; }
};
function Menu(M,t)
{
	this.image = false;
	this.label = false;
	if(M)
	{
		if(M.isImage) { this.image = M; }
		else { this.label = M; }
	}
	this.width = DEFAULT_MENU_WIDTH;
	this.id = "";
	this.items = [];
	this.submenus = [];
	this.tooltip = (t!=null) ? t:false;
	this.isMenu = true;
	this.href = null;
}
Menu.prototype.toString = function() {
	this.s = "<div id='"+this.id+"' class='T-Menu' style='width:"+this.width+"px;'>";
	for(i=0;i<this.items.length;i++)
	{
		if(this.items[i].isSeparator)
		{
			this.s += "<div id='"+this.items[i].id+"' class='T-Menu-separator'></div>";
		}
		else
		{
			loc = (this.items[i].isSub) ? "javascript:void(0);":this.items[i].action;
			this.s += "<a id='"+this.items[i].id+"' "+
								"href='"+loc+"' "+
								"unselectable='on' tabindex='-1' "+
								((this.items[i].tooltip) ? "title='"+this.items[i].tooltip+"' ":"")+
								"onMouseOver='"+this.getSubMenuCode()+
								(this.items[i].isSub ? "MenuHandler.show_sub(\""+this.items[i].action.id+"\",this);":"")+
								((this.items[i].iconImage) ? "MenuHandler.changeIcon(this,\""+this.items[i].iconImage.over_object.src+"\");":"")+
								"MenuHandler._over(this);' "+
								"onMouseOut='MenuHandler._out(this);"+
								((this.items[i].iconImage) ? "MenuHandler.changeIcon(this,\""+this.items[i].iconImage.object.src+"\");":"")+
								"' "+
								((this.items[i].iconImage) ? "onMouseUp='MenuHandler.changeIcon(this,\""+this.items[i].iconImage.object.src+"\");'":"")+
								((opera || this.items[i].iconImage) ?
								"onMouseDown='"+
								((opera) ? "window.location.href=\""+loc+"\";":"")+
								((this.items[i].iconImage) ? "MenuHandler.changeIcon(this,\""+this.items[i].iconImage.clicked_object.src+"\");":"")+
								"' ":"")+
								" class='T-Menu-mi'"+((!this.items[i].iconImage) ? " style='padding-left:"+DEFAULT_ICON_SIZE+"px;'":"")+">"+
								((this.items[i].iconImage) ? "<img id='"+this.items[i].id+"-image' src='"+this.items[i].iconImage.object.src+"' class='T-Menu-icon' style='margin:"+imCSS+";' alt=''>":"")+
								this.items[i].label+
								(this.items[i].isSub ? "<img src='"+_arrowR.object.src+"' class='T-Menu-arrow' style='margin:"+amCSS+";' alt=''>":"")+
								"</a>";
		}
	}
	this.s += "</div>";
	for(this.i=0;this.i<this.submenus.length;this.i++) { this.s += this.submenus[this.i].action; }
	return this.s;
};
Menu.prototype.getSubMenuCode = function() {
	this.str = "";
	for(this.i=0;this.i<this.submenus.length;this.i++)
	{
		this.str += "MenuHandler.hide_frame(\""+this.submenus[this.i].action.id+"\");";
		this.str += this.submenus[this.i].action.getSubMenuCode();
	}
	return this.str;
};
Menu.prototype.add = function(obj) {
	if(obj.isSub) { this.submenus[this.submenus.length] = obj; }
	this.items[this.items.length] = obj;
};
Menu.prototype.addSeparator = function() {
	tmp = new MenuItem("","","");
	tmp.isSeparator = true;
	this.items[this.items.length] = tmp;
};
function MenuItem(l,a,t)
{
	this.id = "";
	this.label = l;
	this.isSeparator = false;
	this.action = a;
	this.tooltip = (t == null) ? false:t;
	this.isSub = (a.isMenu) ? true:false;
	this.iconImage = false;
}
MenuItem.prototype.setIconImage = function(i) { this.iconImage = i; };
function MenuBar()
{
	this.id = MenuHandler.pid+(MenuHandler.mbcntr++); // since 1.1
	this.x = 0;
	this.y = 0;
	this.isAbsolute = false;
	this.obj = [];
	this.img_path = TMENU_IMAGES_PATH;
	this.img_loaded = false;
}
MenuBar.prototype.setArrowImagesPath = function(p) { this.img_path=p; };
MenuBar.prototype.loadArrowImages = function() {
	_arrowD = new image(this.img_path+"d_arrow.gif",7,4);
	_arrowR = new image(this.img_path+"arrow.gif",4,7);
	this.img_loaded=true;
};
MenuBar.prototype.add = function(obj) { this.obj[this.obj.length] = obj; };
MenuBar.prototype.toString = function() {
	window.status = "Generating Menu";
	if(!this.img_loaded)
		this.loadArrowImages();

	for(this.L=0;this.L<this.obj.length;this.L++)
	{
		MenuHandler.sortIDs(this.obj[this.L],MenuHandler.item_prefix+this.L);
		this.obj[this.L].id = MenuHandler.pid+(MenuHandler.mbcntr-1)+"-"+MenuHandler.frame_prefix+MenuHandler.item_prefix+this.L;
		MenuHandler.all[MenuHandler.all.length] = this.obj[this.L].id;
		MenuHandler.mbcntr++; // 13/04/03
	}
	konProps = (kon) ? "float:left;":"";
	display = (this.isAbsolute) ? "position:absolute;left:"+this.x+"px;top:"+this.y+"px;":"";

	ret = "<span id='"+this.id+"' class='T-MenuBar' "+((this.isAbsolute) ? " style='margin:0px;padding:0px;"+display+"'":"")+">"; // 1.1
	for(i=0;i<this.obj.length;i++)
	{
		_k = (kon && this.isAbsolute) ? 10:0;
		_pos = (this.obj[i].isMenu) ? "MenuHandler.show_submenu('"+this.obj[i].id+"',"+
		"layout.getX(this)-"+_k+",layout.getY(this)-"+_k+");":"";

		_tt = this.obj[i].tooltip ? this.obj[i].tooltip:"";
		_sub = "MenuHandler.hideAllSubs();Tthread.stop();Tthread.start();"+_pos;
		_act = (this.obj[i].isMenu) ? "javascript:void(0);":this.obj[i].href;
		hov = MENU_HOVER_MODE ? "onMouseOver=\""+((opera || kon) ? _sub:"this.focus();")+"\" ":"";
		_bt = (this.obj[i].image) ? "<img border='0' alt='"+_tt+"' src='"+this.obj[i].image.object.src+"' "+
		"onMouseOver=\"this.src='"+this.obj[i].image.over_object.src+"';"+((kon && MENU_HOVER_MODE) ? _sub:"")+"\" "+
		"onMouseOut=\"this.src='"+this.obj[i].image.object.src+"';\" "+
		"onMouseDown=\"this.src='"+this.obj[i].image.clicked_object.src+"';\" "+
		"onMouseUp=\"this.src='"+this.obj[i].image.object.src+"';\" "+
		(this.obj[i].image.w ? "width='"+this.obj[i].image.w+"' ":"")+(this.obj[i].image.h ? "height='"+this.obj[i].image.h+"' ":"")+
		((this.obj[i].isMenu && kon) ? "onclick=\""+_sub+"\" ":"onclick='window.location.href=\""+_act+"\";' ")+
		">":this.obj[i].label;
		_da = (!this.obj[i].image && this.obj[i].isMenu) ? "<img class='down_arrow' src='"+_arrowD.object.src+"' alt=''>":"";

		// onclickk -> _bt used & onfocus of <A> 4 same thing

		ret += "<a "+((!kon) ? hov:"")+"onfocus=\""+_sub+"\" onblur='MenuHandler._blur(this);' href='"+_act+"'"+((_tt) ? " title='"+_tt+"'":"")+((!this.obj[i].image) ? " class='TButton'":"")+">";
		ret += _bt+_da;
		ret += "</a>";
	}
	ret += "</span>";
	for(this.I=0;this.I<this.obj.length;this.I++) { ret += this.obj[this.I]; }
	window.status = "";
	return ret;
};
function MenuButton(l,h,t)
{
	this.t = new Menu(l);
	this.t.isMenu=false;
	this.t.href=h;
	this.t.tooltip=t;
	return this.t;
}
function image(loc,w,h)
{
	this.w = w!=null ? w:false;
	this.h = h!=null ? h:false;
	this.object = new Image();
	this.over_object = new Image();
	this.clicked_object = new Image();
	this.object.src = this.over_object.src = this.clicked_object.src = loc;
	this.isImage = true;
}
image.prototype.setImage = function(loc) { this.object.src = loc; };
image.prototype.setOverImage = function(loc) { this.over_object.src = loc; };
image.prototype.setClickedImage = function(loc) { this.clicked_object.src = loc; };

var myMenuBar = new MenuBar(); // MenuBar

/////////////////
// news /////////
/////////////////

var news_button = new MenuButton("Actualités", "news_fr.html"); // button that links outward

myMenuBar.add(news_button); // add that MenuButton object to our MenuBar

/////////////////
// about us /////
/////////////////

var aboutMenu = new Menu("A propos de nous"); // About Menu

// MenuItems for the aboutMenu
var historyfr_item = new MenuItem("Historique", "history_fr.html");
var mandatefr_item = new MenuItem("Mandat", "mandate_fr.html");
var membersfr_item = new MenuItem("Membres", "members_fr.html");
var rulesfr_item = new MenuItem("Règlement Intérieur","rules_fr.html");
var contactfr_item = new MenuItem("Contact", "contact_fr.html");

// add those MenuItems to the File Menu like in Lesson 2
aboutMenu.add(historyfr_item);
aboutMenu.add(mandatefr_item);
aboutMenu.add(membersfr_item);
aboutMenu.add(rulesfr_item);
aboutMenu.add(contactfr_item);

// Add the aboutMenu onto MenuBar 
myMenuBar.add(aboutMenu);

/////////////////
// communications 
/////////////////

var communicationsMenu = new Menu("Communications"); 

var procedurefr_item = new MenuItem("Procédure", "communications_procedure_fr.html");
var guidelinesfr_item = new MenuItem("Lignes directrices", "guidelines_communications_fr.html");
var searchfr_item = new MenuItem("Décisions", "index_decisions_fr.html");

communicationsMenu.add(procedurefr_item);
communicationsMenu.add(guidelinesfr_item);
communicationsMenu.add(searchfr_item);

myMenuBar.add(communicationsMenu);

/////////////////
// legal instruments 
/////////////////

var legalMenu = new Menu("Instruments Légaux"); 

var charterfr_item = new MenuItem("La Charte ", "charter_fr.html", "Charte Africaine des Droits de l'Homme et des Peuples");
var childfr_item = new MenuItem("Droits de l'Enfant", "child_fr.html", "Charte Africaine des Droits et du Bien-être de l'Enfant");
var courtfr_item = new MenuItem("Cour Africaine", "court_fr.html", "Protocole relatif à la Charte Africaine sur la Création d'une Cour Africaine des Droits de l'Homme et des Peuples");
var womenfr_item = new MenuItem("Droits de la Femme", "women_fr.html", "Protocole relatif à la Charte Africaine relatif aux Droits de la Femme en Afrique");
var refugeefr_item = new MenuItem("Droits des Refugiés", "refugee_fr.html", "Convention de l'OUA régissant les Aspects propres aux problèmes des Réfugiés en Afrique");

legalMenu.add(charterfr_item);
legalMenu.add(childfr_item);
legalMenu.add(courtfr_item);
legalMenu.add(womenfr_item);
legalMenu.add(refugeefr_item);

myMenuBar.add(legalMenu);

/////////////////
// sessions //////
/////////////////

var sessionsMenu = new Menu("Sessions"); 

var whatfr_item = new MenuItem("A Propos", "sessions_fr.html");
var pastfr_item = new MenuItem("Sessions", "past_fr.html");
var communiquesfr_item = new MenuItem("Communiqués", "index_communiques_fr.html");
var speechesfr_item = new MenuItem("Discours", "discours_fr.html");

sessionsMenu.add(whatfr_item);
sessionsMenu.add(pastfr_item);
sessionsMenu.add(communiquesfr_item);
sessionsMenu.add(speechesfr_item);

myMenuBar.add(sessionsMenu);

/////////////////
// partner nwk //
/////////////////

// Ok now let's build the partnerMenu!
var partnerMenu = new Menu("Partenaires"); // a new Menu object with a label of 'Partner Network'

// build the MenuItems that are gonna go in the partnerMenu
var observerfr_item = new MenuItem("Stat. d'Observateur", "observer_fr.html");
var affiliatefr_item = new MenuItem("Statut d'Affilié", "affiliate_fr.html");

		/////////////////
		// directory ////
		/////////////////

		// This is how we build a sub Menu, we build it like just a normal Menu
		var directoryfrMenu = new Menu(); // There is no label this time though, I will show you later.

		// We're gonna need to define some MenuItems which we'll put on this Menu
		var ngofr_item = new MenuItem("ONG", "directory_ngo_fr.html","Organisations Non Gouvernementales");
		var offfr_item = new MenuItem("INDH", "directory_nhrI_fr.html","Institutions Nationales des Droits de l'Homme");

		// Now we need to add those MenuItems we just defined to our sub Menu (just like we would a normal Menu)
		directoryfrMenu.add(ngofr_item);
		directoryfrMenu.add(offfr_item);

		// Now we need to create a MenuItem that goes on fileMenu that "points to" the Menu object (directoryMenu)
		var directoryfr_item = new MenuItem("Liste", directoryfrMenu);

// Add those just built MenuItems onto the partnerMenu
partnerMenu.add(observerfr_item);
partnerMenu.add(affiliatefr_item);
partnerMenu.add(directoryfr_item);

// Add the partnerMenu object onto the our MenuBar (myMenuBar)
myMenuBar.add(partnerMenu);


/////////////////
// documentation /
/////////////////

var publicationsMenu = new Menu("Documentation"); 

// MenuItems for the aboutMenu
var activityfr_item = new MenuItem("Rapports d'activités", "index_activity_fr.html");
var communiquesfr_item = new MenuItem("Communiqués", "index_communiques_fr.html");
				
		/////////////////
		// state reports /
		/////////////////
		var stateReportsMenu = new Menu(); // There is no label this time.

		// define some MenuItems which we'll put on this Menu
		var status_item = new MenuItem("Submission Status", "status_submission_fr.html");
		var guidelines_item = new MenuItem("Procédure", "state_procedure_fr.html");
		
		// Now  add those MenuItems we just defined to our sub Menu (just like we would a normal Menu)
		stateReportsMenu.add(status_item);
		stateReportsMenu.add(guidelines_item);
		
		// Now we need to create a MenuItem that goes on fileMenu that "points to" the Menu object 
		var stateReport_item = new MenuItem("Rapport des Etats", stateReportsMenu);

var resolutionsfr_item = new MenuItem("Résolutions", "index_resolutions_fr.html");
var declarationsfr_item = new MenuItem("Déclarations", "index_declarations_fr.html");
var ratificationsfr_item = new MenuItem("Ratifications", "index_ratifications_fr.html");
var missionsfr_item = new MenuItem("Rapports des Missions", "reports_fr.html");
var serialsfr_item = new MenuItem("serial Publications","index_serial_fr.html");
var conferencesfr_item = new MenuItem("Conférences", "conferences_fr.html");
var otherfr_item = new MenuItem("Autres Documents", "index_other_fr.html");


// add those MenuItems to the File Menu like in Lesson 2
publicationsMenu.add(activityfr_item);
publicationsMenu.add(communiquesfr_item);
publicationsMenu.add(stateReport_item);
publicationsMenu.add(resolutionsfr_item);
publicationsMenu.add(declarationsfr_item);
publicationsMenu.add(ratificationsfr_item);
publicationsMenu.add(missionsfr_item);



myMenuBar.add(publicationsMenu);

////////////////////////////
///special Mechanism///////
///////////////////////////

var specialmechanismMenu = new Menu ('Mécanismes Spéciaux');
//////////////////////
///special rapporteur//
/////////////////////
    // var srpMenu = new Menu ();
	 
       var prisons_Item = new MenuItem ('Prisons', 'index_prisons_fr.html');
       var women_Item = new MenuItem ('Femmes', 'index_women_fr.html');
	   var freeexpression_Item = new MenuItem ("Liberté d'Expression","index_free_exp_fr.html");
	   var humanrights_Item = new MenuItem ("Défenseurs des Droits de l'Homme", "index_hrd_fr.html");
       var refugees_Item = new MenuItem ("Réfugiés et Personnes Déplacées","index_rdp_fr.html");
	   var specificissues_Item = new MenuItem ("Questions Spécifiques", "index_Specific issue_Under_fr.html");
	   var indegenouspopulations_Item = new MenuItem ("Populations Autochtones", "index_WGIP_fr.html");
	   var ecosoc_Item = new MenuItem ("Ecosoc", "index_ECOSOC_fr.html");
	   var robbenisland_Item = new MenuItem ("Directrices de Robben Island", "index_rig_fr.html");
	   var deathpenalty_Item = new MenuItem ("Peine de Mort", "index_deathpenalty_fr.html");
		
		
		specialmechanismMenu.add(prisons_Item);
		specialmechanismMenu.add(women_Item);
		specialmechanismMenu.add(freeexpression_Item);
		specialmechanismMenu.add(humanrights_Item);
		specialmechanismMenu.add(refugees_Item);
		specialmechanismMenu.add(specificissues_Item);
		specialmechanismMenu.add(indegenouspopulations_Item);
		specialmechanismMenu.add(ecosoc_Item);
		specialmechanismMenu.add(robbenisland_Item);
		specialmechanismMenu.add(deathpenalty_Item);
		
		//var srp_Item = new MenuItem ("Rapporteur spécial", srpMenu);
////////////////////
///focal point/////
//////////////////
	//var focalpointMenu = new Menu();
		//var expression_Item = new MenuItem ("Liberté d'expression","");
		//focalpointMenu.add(expression_Item);
		
	//var focalpoint_Item = new MenuItem ("Point Focal",focalpointMenu);
//specialmechanismMenu.add(srp_Item);
//specialmechanismMenu.add(focalpoint_Item);

myMenuBar.add(specialmechanismMenu);





// write the MenuBar
document.write(myMenuBar);





