// graph.js 

/*
	Gestion des menus
	To Do: pour le moment on ne supporte qu'un niveau dans les menus
*/
	var menubars = new Array(); // les menu bars

//	title = l'objet clique
//	content = un array d'object qui seront montres ou caches

	function closeItem ( title, content ) {
		if (Element.hasClassName(title, 'invisible')) {
			return false;
		}
		for (i = 0; i < content.length; i++) {
			new Effect.BlindUp( content [ i ], {duration: 0.1} );
		}
		Element.addClassName(title, 'invisible');
	}
	function openItem ( title, content ) {
		if (Element.hasClassName(title, 'invisible')) {
			for (i = 0; i < content.length; i++) {
				new Effect.BlindDown( content [ i ], {duration: 0.1} );
			}
			Element.removeClassName(title, 'invisible');
		} else {
			return false;
		}
	}

	function showHideMenu ( title, content, menubar ) {
		if (Element.hasClassName(title, 'invisible')) {
			/* on ferme tous les autres */
			var count = menubars [ menubar ].length;
			for (j = 0; j < count; j++) {
				var triggerObject = menubars [ menubar ] [ j ] [ 'trigger' ];
				var trigerredObjects = menubars [ menubar ] [ j ] [ 'triggered' ];
				if ( triggerObject && trigerredObjects && triggerObject != title && trigerredObjects != content ) {
					closeItem ( triggerObject, trigerredObjects );
				}
			}
			openItem ( title, content );
		} else {
			closeItem ( title, content );
		}
	}
	
	var current_menu_bar = 0;
	
	var test = {
		'.collapsable' : function(el){
			el.onclick = function(){
			//	alert ('am');
			}
		},
		'.menu_bar' : function(el){
			// on s'attend a ce menubar arrive avant menu
			if ( el.id ) {
				current_menu_bar = el.id;
				menubars [ current_menu_bar ] = new Array();
			} else {
				current_menu_bar = "estceunnomuniquedemenubar_" + menubars.length;
				menubars [ current_menu_bar ] = new Array();
				el.id = current_menu_bar;
			}
			menubars.length++; // c'est-t-y moi ou ben... 

			var mbkids = el.childNodes;
			for (z = 0; z < mbkids.length; z++) {
				if ( ! mbkids[z].childNodes )
					continue;
				var el2 = mbkids[z];
				var triggerObject;
				var trigerredObjects = new Array();
				var index = menubars [ current_menu_bar ].length;
				menubars [ current_menu_bar ] [ index ]  = new Array();
				var kids = el2.childNodes;
				for (j = 0; j < kids.length; j++) {
					if ( kids[j].className && Element.hasClassName(kids[j], 'menu_trigger') ) {
						triggerObject = kids[j];
					} else if ( kids[j].className && Element.hasClassName(kids[j], 'collapsable') ) {
						trigerredObjects [ trigerredObjects.length ] = kids[j];
					}
				}
				if ( triggerObject && trigerredObjects.length ) {
					menubars [ current_menu_bar ] [ index ] [ 'trigger' ] = triggerObject;
					menubars [ current_menu_bar ] [ index ] [ 'triggered' ] = trigerredObjects;
					triggerObject.trigerredObjects = trigerredObjects;
					triggerObject.menuBar = current_menu_bar;
					triggerObject.onclick = function(){
						for (i = 0; i < this.trigerredObjects.length; i++) {
							showHideMenu ( this, this.trigerredObjects, this.menuBar );
						}
					}
				}
			}

		},
		'.menu' : function(el){
		}
	};	
	Behaviour.register(test);
//	Behaviour.register(theRules);
//	Behaviour.addLoadEvent(hideBoxes);
	
	/*
				tout le reste n'est pas utilise pour le moment. 
	*/
	
	
/*	function hideBoxes() {
		
		// Id names of all the "boxes"
		boxIds = $("service_box","produit_box", "realisation_box", "compagnie_box");	
		
		for (i = 0; i < boxIds.length; i++) {
			if (boxIds[i]) {
				cookieValue = readCookie(boxIds[i].id);
				if (cookieValue == 'visible') {
				} else {
					var h3 = boxIds[i].getElementsByTagName('h3');
					Element.addClassName(h3[0], 'invisible');
					var kids = boxIds[i].childNodes;
					for (j = 1; j < kids.length; j++) {
						if (kids[j].id) {
							Element.hide(kids[j]);
						}
					}
				}
			}		
		}	
	}
	*/
	
	function setCookie(name,value,days) {
	 if (days) {
		 var date = new Date();
		 date.setTime(date.getTime()+(days*24*60*60*1000));
		 var expires = ";expires="+date.toGMTString();
	 } else {
		 expires = "";
	 }
	 document.cookie = name+"="+value+expires+";path=/";
	}
		
	function readCookie(name) {
	 var needle = name + "=";
	 var cookieArray = document.cookie.split(';');
	 for(var i=0;i < cookieArray.length;i++) {
		 var pair = cookieArray[i];
		 while (pair.charAt(0)==' ') {
			 pair = pair.substring(1, pair.length);
		 }
		 if (pair.indexOf(needle) == 0) {
			 return pair.substring(needle.length, pair.length);
		 }
	 }
	 return null;
	}