
/********************************************************************************************
Le menu item
*********************************************************************************************/
function MenuImageItem(p_name , p_imagenormal , p_imageselected , p_imageover) {

     if(document.images[p_name] != null){
  	this.imagenormal = new Image();
  	this.imageselected = new Image();
  	this.imageover = new Image();
	this.imagenormal.src = p_imagenormal;
	this.imageselected.src = p_imageselected;
  	this.imageover.src = p_imageover;
  	this.name = p_name;
  	this.overimage = overimage;
  	this.normalimage = normalimage;
  	this.resetimage = resetimage;
  	this.selectimage = selectimage;
	document.images[this.name].onclick = selectimage;
	this.resetimage();
    }
    else{
    	alert("L'image portant le nom '" + p_name + "' n'existe pas dans la page");
    }


}

/********************************************************************************************
Le menu

*********************************************************************************************/

var menus = new Array();

function MenuImage(canceltracking) {
  	this.items   = new Array();
  	this.addItem = addItem;
  	this.selected = null;
        this.tracking = !canceltracking;
  	menus[menus.length] = this;
}

function addItem(item) {
  	this.items[this.items.length] = item;
  	item.menu = this;
}


function overimage(){
	if(this.imageover != null){
		document.images[this.name].src = this.imageover.src;
	}
	else{
		if(finditem(this.name) != null){
			document.images[this.name].src = finditem(this.name).imageover.src;
		}
		else{
			alert("image " + this.name + " ne fonctionne pas");
		}
	}
}
function normalimage(){
	if(this.imageover != null){
		document.images[this.name].src = this.imagenormal.src;
	}
	else{
		if(finditem(this.name) != null){
			document.images[this.name].src = finditem(this.name).imagenormal.src;
		}
		else{
			alert("image " + this.name + " ne fonctionne pas");
		}
	}
}
function resetimage(){
	if(this.imageover != null){
		document.images[this.name].onmouseover = this.overimage;
		document.images[this.name].onmouseout = this.normalimage;
		this.normalimage();
	}
	else{
		if(finditem(this.name) != null){
			document.images[this.name].onmouseover = finditem(this.name).overimage;
			document.images[this.name].onmouseout = finditem(this.name).normalimage;
			finditem(this.name).normalimage();
		}
		else{
			alert("image " + this.name + " ne fonctionne pas");
		}
	}
}

function selectimage(){
	if(findmenu(this.name) != null){
		if(findmenu(this.name).selected!= null)
			findmenu(this.name).selected.resetimage();

	}
        if(this.menu.tracking){
          if(this.imageover != null){
            if(findmenu(this.name) != null)
              findmenu(this.name).selected = this;
            document.images[this.name].onmouseover = "";
            document.images[this.name].onmouseout = "";
            document.images[this.name].src = this.imageselected.src;
          }
          else{
            if(finditem(this.name) != null){
              findmenu(this.name).selected = finditem(this.name);
              document.images[this.name].onmouseover = "";
              document.images[this.name].onmouseout = "";
              document.images[this.name].src = finditem(this.name).imageselected.src;
            }
            else{
              alert("image " + this.name + " ne fonctionne pas");
            }
          }
        }
}

/******************************************************

Les globales

**********************************************************/
function findmenu(name){
	for(i = 0 ; i < menus.length ; i++){

		for(j = 0 ; j < menus[i].items.length ; j++){
			if(menus[i].items[j].name == name)
				return 	menus[i];
		}

	}
	return null;
}

function finditem(name){
	for(i = 0 ; i < menus.length ; i++){

		for(j = 0 ; j < menus[i].items.length ; j++){
			if(menus[i].items[j].name == name)
				return 	menus[i].items[j];
		}

	}
	return null;
}

/******************************************************
La procédure a appeller des frames extérieures


****************************************************************************/

function menuselect(name){

	if(menus.length == 0){
		setTimeout("menuselect('" + name + "');" , 50);
	}
	else{
		for(i = 0 ; i < menus.length ; i++){

			for(j = 0 ; j < menus[i].items.length ; j++){
				if(menus[i].items[j].name == name){
					menus[i].items[j].selectimage();
					return;
				}
			}

		}
	}
}

