var myZoom;
var accordion;

var debug = function(msg) {

  if(typeof console !='undefined' ) { console.warn(msg); } else { alert(msg.message); }
 
}

function init(o) {
	
	// -------- ZOOM PHOTOS --------
	
	if(document.getElementById("zoom")) {
		$('zoom').style.display = 'block';
		myZoom = new Fx.Slide('zoom', {height: true, opacity: true, duration: 500});
		myZoom.hide();
	}
	
	if(document.getElementById("select")) {
		zoom = document.getElementsByClassName('zoom');
		for(i=0; i<zoom.length; i++) {
			zoom[i].onmouseover = function() { document.getElementById("galerie").style.backgroundImage = "url('"+this.href+"')"; }
			zoom[i].onclick = function() { return false; }
		}
	}
	
	accordion = new Accordion('h2.menutitre', 'ul.stretcher', { opacity: false,duration: 300 }, $('accordion'));
	( o==-1 ) ? accordion.display () : accordion.display (o);
	
	// -------- FLASH INFOS --------
	
	try {
		
		$('flash_infos').innerHTML = '<marquee id="flash_infos" behavior="scroll" direction="up" scrollamount="1" scrolldelay="1" '
	                                 +'onMouseOver="this.stop()" onMouseOut="this.start()">'
								     +($('flash_infos').innerHTML)+'</marquee>';
									 
	} catch(e) { /* Pas de flash infos... */}
	
	// -------- PROMO --------
	
	try {
		
		$('promo').innerHTML = '<marquee id="promo" behavior="scroll" direction="up" scrollamount="1" scrolldelay="1" '
	                          +'onMouseOver="this.stop()" onMouseOut="this.start()">'
				               +($('flash_infos').innerHTML)+'</marquee>';
							   
	} catch(e) { /* Pas de promos... */ }

	// -------- FIN INIT --------
	
}

function zoom() {
	myZoom.toggle();
}

function open_next(id) {
	document.getElementById(id).style.display = '';	
}

function addToFavorites() {
	if (document.all) { window.external.AddFavorite(location.href, document.title); }
	else { alert("Votre navigateur n'autorise pas l'ajout direct de signets.\n"
	            +"Pour ce faire, faites 'Control + D' pour l'ajouter ou utilisez le menu marque-pages.") }
}

function retour() {
	history.go(-1);	
}

function OpenWin(URL,width,height,nom) {
	window.open(URL,nom,"toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,width=" + width + ",height=" + height + ",resizable=no");
}

function OpenWin2(URL,width,height,nom) {
	window.open(URL,nom,"toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,width=" + width + ",height=" + height + ",resizable=yes");
}

function DisplayZoomPopUp(url) {
	window.open(url,'Zoom','height=500,width=500,left=0,top=0,scrollbars=yes');
}

function qte_moins(champ) {
	champ2 = champ + "_2";
	qte = document.getElementById(champ).value;
	document.getElementById(champ).value = Number(qte) - 1;
	document.getElementById(champ2).value = Number(qte) - 1;
	frmsubmit('recalc');
}

function qte_plus(champ) {
	champ2 = champ + "_2";
	qte = document.getElementById(champ).value;
	document.getElementById(champ).value = Number(qte) + 1;
	document.getElementById(champ2).value = Number(qte) + 1;
	frmsubmit('recalc');
}

function frmsubmit(func) {
	frm = document.entryform;
	frm.func.value = func;
	frm.submit();
}

var requete = null;

function creerRequete() {
    try {
        requete = new XMLHttpRequest();
    } catch (microsoft) {
        try {
            requete = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch(autremicrosoft) {
            try {
                requete = new ActiveXObject('Microsoft.XMLHTTP');
            } catch(echec) {
                requete = null;
            }
        }
    }
    if(requete == null) {
        alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.');
    }
}

function page(catid) {
	creerRequete();
	var url = 'scripts/page.php?id='+catid;
	requete.open('GET', url, true);
	
	requete.onreadystatechange = function() {
		if(requete.readyState == 4) {
			if(requete.status == 200) {
				document.getElementById('contenu').innerHTML = requete.responseText;
			}
		}
	};
	requete.send(null);
}

function vide(vdefault, champ){
	if(champ.value==vdefault){
		champ.value='';
	}
}

function zoomGalerie(src, width, height, texte){
    var div = $('div_zoom_galerie');
    var div2 = $('div_zoom_galerie_contenu');
    var img = div2.getElementsByTagName('canvas')[0];
    
    if(div!=null){
        
        div.style.width=document.width+'px'; 
        div.style.height=document.height+'px';
        div.style.visibility='visible';
        div.style.backgroundColor='#000';
        div.style.zIndex = '999';
        change_opacity('div_zoom_galerie', 0.1, 0.6, '+');
        
        div2.style.visibility='visible';
        div2.style.zIndex = '1000';
        change_opacity('div_zoom_galerie_contenu', 0.1, 1, '+');
        div2.style.top = Math.ceil(parseInt(window.innerHeight)/2) + 'px';
        div2.style.left= Math.ceil(parseInt(window.innerWidth)/2)-Math.ceil(width/2) + 'px';
        
        if(texte!=''){
            div2.innerHTML = '<p style="width:'+width+'px">'+texte+'</p>' + div2.innerHTML;
        }
        div2.innerHTML = '<img src="' + src + '" />' + div2.innerHTML;
    }
    return true;
}

function change_opacity(id, depart, arriver, sens){
    if(sens == '-' || sens == '-1')
        var arriver_test = depart>parseFloat(arriver)-0.1
    else
        var arriver_test = depart<parseFloat(arriver)+0.1
        
    if(arriver_test){
        $(id).style.opacity = depart;
        if(sens == '-' || sens == '-1')
            suivant = parseFloat(depart-0.1);
        else
            suivant = parseFloat(depart+0.1);
            
        setTimeout('change_opacity("'+id+'", '+suivant+', '+arriver+', "'+sens+'")', 10)
    }
    else{
        if(arriver==0){
            
            $(id).style.visibility='hidden';
        }
    }
}

function fermer_zoom_galerie(){
    var div = $('div_zoom_galerie_contenu');
    var img = div.getElementsByTagName('img')[0];
    var p = div.getElementsByTagName('p')[0];
    div.style.visibility='hidden';
    
    change_opacity('div_zoom_galerie_contenu', 1, 0, '-');
    
    var anciennoeud = div.removeChild(img);
    
    if(p!=null){
        var anciennoeud = div.removeChild(p);
    }
    
    change_opacity('div_zoom_galerie', 0.6, 0, '-');   
    
    return true;
}

/* ********************************************* */
/* ** ** ** **   MenuAccordeonHorizontale ** ** ** ** */
/* ********************************************* */
var MenuAccordeonHorizontale = new Class({

   options : {
		duration: 600,
		moveAmount: 340, 
		interval: 32, 
		opened: 1,
		classActive:'active',
		FullWidh:false
	},
  
  pleahs : new Array(),
  
  initialize:function(SelPleahs, options){  
    this.setOptions(options);    
    
    var pleahs = $$(SelPleahs);
		
		if(this.options.FullWidh){
			this.FullWidh(SelPleahs);
		}
    
    var pleahFx = new Fx.Elements(pleahs,{
      wait: false,
      duration: this.options.duration, 
      transition: Fx.Transitions.Quad.easeInOut
    });
    
    var o = {};
    
    pleahs.each(function(pleah, i) {
      // On choisi l'élément ouvert par défaut
      if (i == (this.options.opened - 1)) { 
        pleah.addClass(this.options.classActive); //Ajoute la class classActive à l'élément ouvert par défaut
      }
      if (i == this.options.opened) { 
        pleah.setStyle("left", (i * this.options.interval) + this.options.moveAmount); // c'est l'élément ouvert par défaut
      }
      else if (i < this.options.opened) {
        pleah.setStyle("left", (i * this.options.interval)); //Les div à gauche de l'élément par défaut
      }
      else if(i > this.options.opened) {
        pleah.setStyle("left", (i * this.options.interval) + this.options.moveAmount); //les div à droite de l'élément par defaut
      }
   
      pleah.addEvent("mousedown", function(event) {
        pleah.addClass(this.options.classActive); //Ajoute la class classActive à l'élément ouvert
        
        var l = pleah.getStyle("left").toInt()
        
        o[i] = {left: [l, i * this.options.interval]} // c'est l'élément ouvert 
        
        pleahs.each(function(other, j) { // on traite tout les autres éléments
          var l2 = other.getStyle("left").toInt();
          if(i > j) {
            o[j] = {left: [l2, j * this.options.interval]};
            other.removeClass(this.options.classActive); //supprime la class classActive à  tous les autres éléments
          }
          else if(i < j) {
            o[j] = {left: [l2, (j * this.options.interval) + this.options.moveAmount]};
            other.removeClass(this.options.classActive); // removing class from other divs
          }
        }.bind(this));        
        pleahFx.start(o); // on lance la transitions
      }.bind(this));
    }.bind(this));
    
    this.pleahs = pleahs;
    
  },
	
	FullWidh : function(SelPleahs){
		var el = $$(SelPleahs);
		var WidthParent = el.getParent('div')[0].getSize().x;
		var WidthTab = el.getElement('h3')[0].getSize().x;
		var nbEl = el.length;
		
		this.options.moveAmount = WidthParent-(WidthTab * nbEl);
		
		var elP = el.getElements('p');
		var PaddingP = elP[0].getStyle('padding')[0].toInt();
		
		elP.each(function(P){
			P.setStyle('width', (this.options.moveAmount - (PaddingP * 2)));
		}.bind(this));
	}
})
MenuAccordeonHorizontale.implement(new Options, new Events);

// ------------------------------------------------------------------

var planOpened = false;
var chImages = [];
var reImages = [];
var mid = 0;
var img;
var div;
var plans;
var acc;

window.addEvent('domready', function() {

  plans = [
    [
      $('zone-1-1'),$('zone-1-2'),$('zone-1-3'),$('zone-1-4'),$('zone-1-5')
     ,$('zone-1-6'),$('zone-1-7'),$('zone-1-8'),$('zone-1-9'),$('zone-1-10')
    ],[
      $('zone-2-1'),$('zone-2-2'),$('zone-2-3'),$('zone-2-4'),$('zone-2-5')
     ,$('zone-2-6'),$('zone-2-7'),$('zone-2-8')
    ]
  ]
      
  plans.each(function(monPlan) {   
  for(var i=0; i<monPlan.length; i++){
    div = monPlan[i].getChildren()[0];
    img = monPlan[i].getChildren()[1];
    if(img) { 
	  	  
	  // -----
	  
	  new Element('div').setOpacity(0.6).setStyles({
		 'background' : '#069'
		,'display' : 'none'
		,'width' : img.getStyle('width')
		,'height' : img.getStyle('height')
		,'position' : 'absolute'
		,'cursor' : 'pointer'
		,'z-Index' : '1'
		,'margin-top' : ( Browser.Engine.name=='trident' ? '' : 0-parseInt(img.getStyle('height'))+'px' )
		,'margin-left' : ( Browser.Engine.name=='trident' ? 0-parseInt(img.getStyle('width'))+'px' : '' )
	  }).injectAfter(img);

	  mask = monPlan[i].getChildren()[2];
	  div.setStyles({ 
		'margin-left': (
		  Browser.Engine.name=='trident') ? -100 : ((img.width/2)-(parseInt(div.getChildren()[0].getStyle('width'))/2)
		),'margin-top': (
		  Browser.Engine.name=='trident') ? -50 : ((img.height/2)-(parseInt(div.getChildren()[0].getStyle('height'))/2)
	    ) 
	  });
	  
	  // -----
	  
	  img.setStyle('cursor','pointer').addEvent('mouseover', function() { 
		this.mask.setStyles({'display':'block'});
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  img.addEvent('mouseout', function() {
		clearTimeout(mid);
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  
	  // -----
	  
	  mask.addEvent('mouseover',function() {
		monPlan.each(function(myEl){
		  myEl.getChildren()[0].setStyle('display','none'); 
		});
	    mid = setTimeout(function() { 
		  this.div.setStyles({'display':'block'});
		  monPlan.each(function(myEl){
		    myEl.getChildren()[2].setStyle('display','none'); 
		  });
		}.bind(this), 500);
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  mask.addEvent('mouseout',function() {
		this.mask.setStyles({'display':'none'});
		clearTimeout(mid);
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  
	  // -----
	  
	  div.setStyle('z-index','6').addEvent('mouseover', function() {
		this.mask.setStyles({'display':'none'});
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  div.addEvent('mouseout', function() {
	    this.div.setStyles({'display':'none'});
	    this.mask.setStyles({'display':'none'});
	  }.bind({ td:monPlan[i] , img:img , div:div , mask:mask }));
	  
	  // -----

    }
  }
  });
  
  acc = new MenuAccordeonHorizontale('#accordion-honr .acContent', {FullWidh:false});
   acc.pleahs[acc.pleahs.length-1].fireEvent('mousedown')
  //PlanOpen('chapiteau');
  
});

var PlanOpen = function(pl) {
 $('plan-'+(pl=='restaurant'?'chapiteau':'restaurant')).fadeTo(0);
 $('plans').setStyle('display','block'); 
 $('plan-'+pl).setOpacity(0).setStyles({ 'top' : window.getScrollTop()+'px' ,'display' : 'block' , 'z-Index':'1'}).moveToCenter();
 //$E('body').setStyles({'overflow':'hidden'});
 $('plan-'+pl).fadeTo(1, function() { 
   planOpened=true;
 });
}

var PlanClose = function(pl) {
 $('plans').setStyles({ 'display' : 'none' });
 $('plan-restaurant').setOpacity(0).setStyles({ 'display' : 'none' });
 $('plan-chapiteau').setOpacity(0).setStyles({ 'display' : 'none' });
 $E('body').setStyles({'overflow':'auto'});
 planOpened=false;
}

// ------------------------------------------------------------------

Element.implement({
	
  moveToCenter:function(){
    var size = this.getSize();
    var docSize = document.getSize();
    
    var elTop = '50px'; //parseInt(docSize.y / 2) - 120; //parseInt(size.y / 2);
    var elLeft = parseInt(docSize.x / 2) - (parseInt(this.getStyle('width'))/2); // parseInt(size.x / 2);

    this.setStyles({
        'position' :'absolute',
        'top' : elTop,
        'left' : elLeft
    });
  },
  
  fadeTo : function( amount, whenFinished, duration ) {
   if(typeof whenFinished != 'function') {
	 whenFinished = function() {}   
   }
   this.setStyle('visibility','visible');
   this.effect('opacity', {
      transition : new Fx.Transition(Fx.Transitions.Quad.easeOut, 6).easeOut 
    , duration : ( (duration!=null && duration>0) ? duration : 500 )
    , onComplete : function() { 
	    if(amount==0) this.element.setStyle('visibility','hidden');
	    this.whenFinished.bind(this.obj)();
	  }.bind({whenFinished:whenFinished,element:this})
   }).start(this.getOpacity(),amount);
 }
 
});


// ------------------------------------------------------------------------------------------------

var ekScroller = {
	
	imgSize:227,
	nbImage:2,
	scrollLocked : false,
	
	LockScroll : function() {
		ekScroller.scrollLocked = true;	 
	},
	
	// -----------------------------------------
	
	UnlockScroll : function() {
		ekScroller.scrollLocked = false;	 
	},
	
	ScrollRight : function() {	
		
		if(ekScroller.scrollLocked) { return(true); }
		
		var scroller = $('photo_scroll');
		var limit = (($$('#photos_contenu div').length)*ekScroller.imgSize )-(ekScroller.nbImage*ekScroller.imgSize);
		var pos = ( $(scroller).getScrollLeft() <= 0 ) ? limit : $(scroller).getScrollLeft()-ekScroller.imgSize;
		
		var myFx = new Fx.Scroll($(scroller), {
			wait: false
			,duration: 1000
			,transition: Fx.Transitions.Back.easeIn
			,onComplete : function() {
				ekScroller.UnlockScroll();
			}
		});
		
		myFx.start(pos,0);
		ekScroller.LockScroll();
	},
	
	ScrollLeft : function() {
		
		if(ekScroller.scrollLocked) { return(true); }
	
		var scroller = $('photo_scroll');
		var limit = (($$('#photos_contenu div').length)*ekScroller.imgSize )-(ekScroller.nbImage*ekScroller.imgSize);
		var pos = ($(scroller).getScrollLeft() >= limit ) ? 0 : $(scroller).getScrollLeft()+ekScroller.imgSize;
	
		var myFx = new Fx.Scroll($(scroller), {
			wait: false
			,duration: 1000
			,transition: Fx.Transitions.Back.easeIn
			,onComplete : function() {
				ekScroller.UnlockScroll();
			}
		});
	
		myFx.start(pos,0);
		ekScroller.LockScroll();
	}
};