/**
 * MENU DEROULANT
 * @url		http://www.spawnrider.net/blogs/2008/01/14/menu-horizontal-prototype-scriptaculous/
 *
 */
function initMenus() {

	// Correction pour le menu sous IE7
	if (IE7) {
		var newMenu	= new Element('div', {id : 'bottom-shadow-ie-fake'});
		$('left-container').insert(newMenu);
	}

	$$('.smenu').each(function(s){

		Event.observe (s, 'click', function() {
			if(s.id == undefined) {
				return false;
			}
			var suffixId = s.id.replace('a','') ;
			//alert( suffixId ) ;
			if ( $('smenu' + suffixId).visible() ) {
				//do nothing or close the menu
				Effect.BlindUp($('smenu' + suffixId), {
					duration:0.5,
					beforeUpdate : function () {
						$('left-shadow').setStyle ( { height : $('menu-der').getDimensions().height+'px' } ) ;
					},
					afterFinish : function (e) {
						var tmp = e.element.id.replace('smenu','a') ;
						$(tmp).removeClassName('menu-open').addClassName('menu-close') ;
					}
				});
			} else {
				$$('.smenu').each(function(s) {
					if (Object.isElement( $('smenu' + suffixId) )) {
						if ( $('smenu'+suffixId).visible() ) {
							Effect.BlindUp ( $('smenu'+suffixId ), {
								duration:0.5,
								beforeUpdate : function () {
									$('left-shadow').setStyle ( { height : $('menu-der').getDimensions().height+'px' } ) ;
								},
								afterFinish : function (e) {
									var tmp = e.element.id.replace('smenu','a') ;
									$(tmp).removeClassName('menu-open').addClassName('menu-close') ;
								}
							});
						}
					}
				});

				Effect.BlindDown($('smenu' + suffixId), {
					duration : 0.5,
					beforeUpdate : function () {
						$('left-shadow').setStyle ( { height : $('menu-der').getDimensions().height+'px' } ) ;
					},
					afterFinish : function (e) {
						var tmp = e.element.id.replace('smenu','a') ;
						$(tmp).removeClassName('menu-close').addClassName('menu-open') ;
					}
				});
			}
		});
	});

	/*All menu hidden by default*/
	$$('.smenu').each ( function(s) {
		var suffixId = s.id.replace('a','');
		if( Object.isElement( $('smenu' + suffixId) ) && $('smenu' + suffixId).visible() ) {
			$('smenu'+suffixId).hide();
		}
	});

	/*effects on menu*/
	$$('dl#menu-der dt').each(function(s){
		Event.observe (s, 'mouseout', function() {
			new Effect.Highlight(s, {
				duration:0.5,
				startcolor:'#666666',
				endcolor:'#000000',
				restorecolor :'#000000'
			});
		});
	});

	Event.observe ($('main-menu'), 'click', function() {

		if ( ! $('menus').visible() ) {
			if (IE7) {

			}
			menuState = true;
			Effect.BlindDown ('menus', {
				duration : 0.5,
				beforeUpdate : function (e) {
					$('left-shadow').setStyle ({height : $('menu-der').getDimensions().height+'px'});
				},
				afterFinish : function (e) { }.bind(this)
			}) ;
		}
	}) ;
	$('menus').hide() ;

	Event.observe(document.body, 'click', function(event) {
		var elt = Event.findElement(event, 'DL');
		if (!elt && $('menus').visible()) {
			closeMenu();	//$('menus').hide() ;
		}
	});

	var closeMenu = function () {
		Effect.BlindUp ('menus', {
			duration : 0.5,
			beforeUpdate : function (e) {
				$('left-shadow').setStyle ( { height : $('menu-der').getDimensions().height+'px' } ) ;
			},
			afterFinish : function (e){}.bind(this)
		}) ;
	};

}


Event.observe(window, 'load', initMenus);


var iaz_preserved_elements = [];
var iaz_preserved_zindexes = [];

function ie_apply_zindex(element_id, zindex, context_id) {
	// default values
	if (undefined == zindex)
		zindex = 1;

	var context = Object.isElement($(context_id)) ? $(context_id) : $(document.body);

	var element = $(element_id);

	// undo past ie_apply_zindex()
	for (i = iaz_preserved_elements.length-1; i >= 0; i--) {
		iaz_preserved_elements[i].setStyle({'z-index': iaz_preserved_zindexes[i]});
	}
	iaz_preserved_elements = [];
	iaz_preserved_zindexes = [];

	// find relative-positioned ancestors of element within context
	element.ancestors().each(
		function(ancestor) {
			//if ('absolute' == ancestor.getStyle('position')) {
			//ancestor.relativize();
			//}
			if ('relative' == ancestor.getStyle('position')) {
				// preserve ancestor's current z-index
				iaz_preserved_elements.push(ancestor);
				iaz_preserved_zindexes.push( ancestor.getStyle('z-index') );

				// apply z-index to ancestor
				ancestor.setStyle({'z-index': zindex});
			}
			if (ancestor == context) {
				throw $break;
			}
		}
	);
}

