var msDropdown=new Class({
	Implements:Options,
	options:{
	clickToOpen:false,
	openDelay:50,
	closeDelay:50,
	duration:250,
	link:'cancel',
	transition:Fx.Transitions.linear,mode:'horizontal'
	},
	initialize:function(a,b){
	this.menu=a;
	this.setOptions(b);
	if(this.options.mode!='horizontal'&&this.options.mode!='vertical'){
	this.options.mode='horizontal'
	}
	if(Browser.Engine.webkit){
	window.addEvent('domready',this.domReady.delay(200,this))
	}else{
	window.addEvent('domready',this.domReady.bind(this))
	}
	},
	domReady:function(){
	this.menu=$(this.menu);
	if(!$defined(this.menu)){
	return false
	}if(this.menu.get('tag')!='ul'){
	this.menu=this.menu.getElement('ul');
	if(!$defined(this.menu)){
	return false
	}
	}
	if(this.menu.getStyle('direction')=='rtl'||$(document.body).getStyle('direction')=='rtl'){
	this.rtl=true;
	if(Browser.Engine.trident&&$(document.body).getStyle('direction')=='rtl'){
	this.menu.getParent().setStyle('direction','ltr');
	this.menu.setStyle('direction','rtl')
	}
	}
	this.menu.setStyles({
	visibility:'hidden',
	display:'block',
	overflow:'hidden',
	height:0,
	marginLeft:(Browser.Engine.trident?1:-1)
	});
	
	this.createSubmenu(this.menu);
	if(this.options.mode=='horizontal'){
	this.menu.getChildren('li').setStyles({
	'float':(this.rtl?'right':'left'),
	display:'block',
	top:0});
	var a=new Element('li',{
	html:"&nbsp;",
	styles:{clear:(this.rtl?'right':'left'),
	display:(Browser.Engine.trident?'inline':'block'),
	position:'relative',
	top:0,
	height:0,
	width:0,
	fontSize:0,
	lineHeight:0,
	margin:0,
	padding:0
	}
	}).inject(this.menu)
	}else{
	this.menu.getChildren('li').setStyles({
	display:'block',
	top:0
	}
	)}
	this.menu.setStyles({
	height:'auto',
	overflow:'visible',
	visibility:'visible'
	});
	this.menu.getElements('a').setStyle('display',(Browser.Engine.trident?'inline-block':'block'))
	},
	
	createSubmenu:function(c){

	var d=c.getChildren('li');
	var f=0;
	d.each(function(a){
	a.setStyles({
	position:'relative',
	display:'block',
	top:-f,
	zIndex:1
	});
	f+=a.getSize().y;
	var b=a.getFirst('ul');
	if($defined(b)){
	c.getElements('ul').setStyle('display','none');
	if(c==this.menu&&this.options.mode=='horizontal'){
	a.addClass('submenu-down');
	var x=0;
	var y=a.getSize().y;
	this.options.link='cancel';
	a.store('animation',new Fx.Elements($$(b,b.getChildren('li')).setStyle('opacity',0),this.options))
	}else{
	a.addClass('submenu-left');
	var x=a.getSize().x-(this.rtl&&!Browser.Engine.trident?2:1)*a.getStyle('border-left-width').toInt();
	var y=-a.getStyle('border-bottom-width').toInt();
	this.options.link='chain';
	a.store('animation',new Fx.Elements($$(b,b.getChildren('li')).setStyle('opacity',0),this.options));
	f=a.getSize().y+a.getPosition(this.menu).y
	}
	b.setStyles({position:'absolute',top:y,opacity:0});
	c.getElements('ul').setStyle('display','block');
	if(this.rtl){
	b.setStyles({right:x,marginRight:-x})
	}else{
	b.setStyles({left:x,marginLeft:-x})
	}
	this.createSubmenu(b);
	if(this.options.clickToOpen){
	a.addEvent('mouseenter',function(){
	$clear(a.retrieve('closeDelay'))
	}.bind(this));
	a.getFirst('a').addEvent('click',function(e){
	e.stop();
	$clear(a.retrieve('closeDelay'));
	this.showChildList(a)}.bind(this))
	}else{
	a.addEvent('mouseenter',function(){
	$clear(a.retrieve('closeDelay'));
	a.store('openDelay',this.showChildList.delay(this.options.openDelay,this,a))
	}
	.bind(this))
	}
	
	a.addEvent('mouseleave', function(){
	$clear(a.retrieve('openDelay'));	
	a.store('closeDelay',this.hideChildList.delay(this.options.closeDelay,this,a));
	}
	.bind(this)).addClass((this.options.mode=='horizontal'&& c == this.menu?'submenu-down':'submenu-left'));
	//

	
	}
	},this
	)
	},


	
	showChildList:function(b){
		
	var c=b.getFirst('ul');
	var d=$$(c.getChildren('li'));
	var e=b.retrieve('animation');
	if(b.getParent('ul')!=this.menu||this.options.mode=='vertical'){
	e.cancel();
	var f={
	0:{opacity:1},
	1:{opacity:1}
	};
	if(this.rtl){
	f[0]['marginRight']=0
	}else{
	f[0]['marginLeft']=0
	}
	e.start(f);
	var g={}
	}else{
	var g={
	0:{opacity:1}
	}
	}
	d.each(function(a,i){
	g[i+1]={
	top:0,
	opacity:1
	}
	}
	);
	b.setStyle('z-index',99);
	e.start(g)
	},
	
					hideChildList:function(li){
					
						
						var animation = li.retrieve('animation');
						var ul = li.getFirst('ul');		
						var LIs =  $$(ul.getChildren('li'));
						
						var offset = 0;	
						var animobject={};
						
						var devpronet = new Array();
						
						LIs.each(function(innerli,i){

						if ( navigator.appName == "Netscape" ) {
							devpronet[i]  = innerli.textContent;
						}else{
							devpronet[i]  = innerli.innerText;
						}
						
						animobject[i+1]={	
						top:-offset,	
						opacity:0	
						};	
						offset += innerli.getSize().y;
						
						});	
						
						
						switch (document.body.id){
						case "body1":
						if ((devpronet[0] == "MS Victoire") && (devpronet[1] == "MS Tourisme") && (devpronet[2] == "Nos garanties") && (devpronet[3] == "Contacts")){
							//let open the submenu								
						}else{
							
							li.setStyle('z-index',1);	
							if(li.getParent('ul')!=this.menu || this.options.mode == 'vertical'){
							animobject[1]=null;
							animation.cancel();	
							animation.start(animobject);
							var anim = {	
							0:{			
							opacity:0	
							},		
							1:{		
							opacity:0	
							}		
							};		
							if(this.rtl){	
							anim[0]['marginRight'] = -ul.getSize().x;	
							}else{	
							anim[0]['marginLeft'] = -ul.getSize().x;
							}		
							animation.start(anim);
							}else{
							animobject[0]={opacity:0};	
							animation.start(animobject);
							}
															
						}
						break;
						default:
							li.setStyle('z-index',1);	
							if(li.getParent('ul')!=this.menu || this.options.mode == 'vertical'){
							animobject[1]=null;
							animation.cancel();	
							animation.start(animobject);
							var anim = {	
							0:{			
							opacity:0	
							},		
							1:{		
							opacity:0	
							}		
							};		
							if(this.rtl){	
							anim[0]['marginRight'] = -ul.getSize().x;	
							}else{	
							anim[0]['marginLeft'] = -ul.getSize().x;
							}		
							animation.start(anim);
							}else{
							animobject[0]={opacity:0};	
							animation.start(animobject);
							}						
						break;
						}
	
						
						
						
						
					}
	
}
);
