/**************************************************** VARIABLES ****************************************/
/*Dreoulement horizontal*/
var barre_horizontale;
var slider_horizontal;
var container_principal;

/*Deroulement vertical de toutes les actus*/
var barre_verticale_all_actu;
var notre_actualite;
var slider_vertical_all_actu;

/*Deroulement vertical d'une actu*/
var texte_actualite;
var scroll_vertical_detail_actu;
var slider_vertical_texte_actualite;

/*Slide Vins*/
var dessin_vins;
var slide_bouteille_1;
var slide_bouteille_2;
var slide_bouteille_3;
var slide_bouteille_4;


var actu_courante=0;
var id_actu_courante=0;
var Array_Actus=[];

var negociant_connecte=false;
var documents_negociants;
var scroll_vertical_doc_negociants;
var slider_vertical_documents_negociants;
/**************************************************** FIN VARIABLES ****************************************/

/**************************************************** FONCTIONS GENERALES ****************************************/

function getLargeur(){
	largeur=document.documentElement.clientWidth;
	if(largeur=='')largeur=window.innerWidth;
	if(largeur=='')largeur=document.width;
	return largeur;
}

function Agrandissement(){
	window.moveTo(0,0);
	if (document.all) {
		top.window.resizeTo(screen.availWidth,screen.availHeight);
	}
	else if (document.layers||document.getElementById) {
		if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
			top.window.outerHeight = screen.availHeight;
			top.window.outerWidth = screen.availWidth;
		}
	}
}
/**************************************************** FIN FONCTIONS GENERALES ****************************************/


/**************************************************** FONCTIONS MENU ****************************************/

/**Genere les tweeners de tous les items du menu **/
var tweenerActualite = function() {
	placeSliderHorizontal(0);
	placement(0, true);

}

var tweenerHistoire = function() {
	placeSliderHorizontal((getLargeur()/5)+1);
	placement((getLargeur()/5)+1, true);
}


var tweenerVins = function() {
	placeSliderHorizontal((getLargeur()/5)*2)+1;
	placement((getLargeur()/5)*2+1, true);
}


var tweenerContact = function() {
	placeSliderHorizontal((getLargeur()/5)*3+1);
	placement((getLargeur()/5)*3+1, true);
}

var tweenerNego = function() {
	$('negociants').show();
	placeSliderHorizontal((getLargeur()/5)*4+1);
	placement((getLargeur()/5)*4+1, true);
	$('auth-negociants').fade('out');
}


/**
Ajoute les evenements mouseenter et mouseout a un element
**/
function addEventMenu(element,on,out){
  $(element).addEvents({
    mouseenter: function(){
		this.set({
		  'src':on
      	});
	},
    mouseleave: function(){
      this.set({
		  'src':out
      });
    }
  });
}



/**
Ajoute les evenement a tous les item du menu
Si l'utilisateur est connecte, on ajoute l'evenement tweener sur l'acces negociant, sinon on affiche la fenetre de connexion
**/
function genereEventMenu(){
	addEventMenu('img-menu-actu','images/title-actu-on.jpg','images/title-actu.jpg');
	addEventMenu('img-menu-vins','images/title-vins-on.jpg','images/title-vins.jpg');
	addEventMenu('img-menu-histoire','images/title-histoire-on.jpg','images/title-histoire.jpg');
	addEventMenu('img-menu-contact','images/title-contact-on.jpg','images/title-contact.jpg');
	addEventMenu('img-menu-nego','images/title-nego-on.jpg','images/title-nego.jpg');
	
	$('img-menu-nego').addEvents({
    click: function(){
				/*Div de connexion*/
		if (negociant_connecte==false){
			if ($('auth-negociants').get('opacity')==1){
				$('auth-negociants').fade('out');
			}else{
				placeDivConnexion();
				$('auth-negociants').fade('in');
			}
		}else{//else
			tweenerNego();
		}
	}
	});
}


/**
Place la slide visible au milieu de l'ecran
modifie l'item courant dans le menu horizontal
**/
function placement(value, tween){
/*	alert(tween);
*/	id=0;
	if (value<=getLargeur()){
		id=4;
	}
	if (value<=((getLargeur()/5))*4){
		id=3;
	}
	if (value<=((getLargeur()/5))*3){
		id=2;
	}
	if (value<=((getLargeur()/5))*2){
		id=1;
	}	
	if (value<=(getLargeur()/5)){
		id=0;
	}

	genereEventMenu();
	$('img-menu-actu').set('src','images/title-actu.jpg');
	$('img-menu-vins').set('src','images/title-vins.jpg');
	$('img-menu-histoire').set('src','images/title-histoire.jpg');
	$('img-menu-contact').set('src','images/title-contact.jpg');
	$('img-menu-nego').set('src','images/title-nego.jpg');
	if(id==0){
	$('img-menu-actu').set('src','images/title-actu-on.jpg');
		$('img-menu-actu').removeEvents('mouseleave');
	}
	if(id==1){
		$('img-menu-histoire').set('src','images/title-histoire-on.jpg');
		$('img-menu-histoire').removeEvents('mouseleave');
	}

	if(id==2){
		$('img-menu-vins').set('src','images/title-vins-on.jpg');
		$('img-menu-vins').removeEvents('mouseleave');
	}

	if(id==3){
		$('img-menu-contact').set('src','images/title-contact-on.jpg');
		$('img-menu-contact').removeEvents('mouseleave');
	}

	if(id==4){
		$('img-menu-nego').set('src','images/title-nego-on.jpg');
		$('img-menu-nego').removeEvents('mouseleave');
	}


	if (tween==true){
		 $('principal').tween('left', -($('principal').getSize().x*value)/getLargeur()+((getLargeur()-954)/2)+'px');
	}else{
		$('principal').setStyle('left', -($('principal').getSize().x*value)/getLargeur() + ((getLargeur()-954))+'px');
	}
		//alert($('principal').getSize().x);
	
}

/**
Place slider horizontal sur l'ecran
**/
function placeSliderHorizontal(id){
	//slider_horizontal.set(id);
	$('fleche-scroll-horizontal').tween('left',id);	
}



/**************************************************** FIN FONCTIONS MENU ****************************************/



/**************************************************** FONCTIONS ACTUALITE ****************************************/
/**
Deplace la liste des actus en fonction du slider
**/
function deplacement_liste_actu(value){
	//alert(((-(notre_actualite.getSize().y)+364)/(Array_Actus.length-1))*value+'px');
	notre_actualite.tween('top', ((-(notre_actualite.getSize().y)+409)/(Array_Actus.length-1))*value+'px');
}

/**
Place slider des actus en fonction de l'actu courante (lors des appuis sur suivant/precedent)
**/
function placeSliderListeActu(id){
	//alert((((409/(Array_Actus.length))))*(id) + 'px');
	$('fleche-scroll-vertical-all-actu').tween('top',(((331/(Array_Actus.length))))*(id) + 'px');	
}


/**
Deplace l'actu courante en fonction du slider
**/
function deplacement_texte_actu(value){
	texte_actualite.tween('top', ((-(texte_actualite.getSize().y)+367)/100)*value+'px');
	//alert(texte_actualite.getSize().y);
}

/*
Opacifie toutes les actus, sauf actu courante
ajoute les evenements de desopacification et d'opacification quand on rentre ou on sort de l'actu (saud sur actu courante)
*/
function opacifieActus(){
	var mon_tab=$$('.description-actu');
	mon_tab.each(function(div, index) {
	if (actu_courante==index){
		mon_tab[index].getElements('img').fade(1);
	} else {
		mon_tab[index].getElements('img').fade(0.3);
	}
		mon_tab[index].addEvents({
		mouseenter: function(){
			this.getElements('img').fade(1);
		},
		mouseleave: function(){
			if (actu_courante!=index) this.getElements('img').fade(0.3);
		}
		});
	});
}

/**
Genere la liste des actus publiees
C'est ici qu l'on sait si un utilisateur est connecte :  dans le fichier php, si variable de session existe, alors utiliateur connecte
traitement ensuite effectue dans afficheSlideNegociants();
**/
function generelisteActu(){
    var req = new Request.HTML({
      method: 'get',
      url: "affichage_liste_actu.php",
      update: $('notre-actualite'),
	  onComplete: function(response) { 
				opacifieActus();
				afficheActu(id_actu_courante,actu_courante);
/*				slider_vertical_all_actu.setRange([0,Array_Actus.length-1]);
*/				afficheSlideNegociants(); // on sait si l'utilisateur est connecte dans le fichier appele
					  	creeSliderListeActu();


				
		}
    }).send();
}

/**
Gere la navigation sur les boutons precedents et suivants
**/
function gereNavigationArticle(){
	$('article-precedent').addEvents({
		click: function(){
			if (actu_courante>0){
				afficheActu(Array_Actus[actu_courante-1],actu_courante-1);
			}
		}
	});

	$('article-suivant').addEvents({
		click: function(){
			if (actu_courante<Array_Actus.length-1){
				afficheActu(Array_Actus[actu_courante+1],actu_courante+1);
			}
		}
	});

	
}

function creeSliderDetailActu(){
	/*Deroulement vertical d'une actu*/
		$('texte-actualite').setStyle('top','0');
		slider_vertical_texte_actualite.set(0);
		scroll_vertical_detail_actu = $('scroll-vertical-detail-actu');
		texte_actualite = $('texte-actualite');
		slider_vertical_texte_actualite = new Slider(scroll_vertical_detail_actu, scroll_vertical_detail_actu.getElement('.fleche-scroll-vertical-detail-actu'), {
			range: [0, 100],
			initialStep: 0,
			mode: 'vertical',
			onChange: function(value){
				if ($('texte-actualite').getSize().y>$('container-affichage-actualite').getSize().y){
					deplacement_texte_actu(value);
				}
			}
		  });

}

function creeSliderListeActu(){
	barre_verticale_all_actu = $('scroll-vertical-all-actu');
	notre_actualite = $('notre-actualite');
		slider_vertical_all_actu = new Slider(barre_verticale_all_actu, barre_verticale_all_actu.getElement('.fleche-scroll-vertical-all-actu'), {
			range: [0, Array_Actus.length-1],
			initialStep: 0,
			mode: 'vertical',
			onChange: function(value){
				if (notre_actualite.getSize().y>$('container-notre-actualite').getSize().y){
					deplacement_liste_actu(value);
				}
			}
		  });
}

/**
Affiche l'actu demandée, grace aux boutons suivants precedents, ou clique sur actu
desactive les boutons suivants precedents selon actu courante
**/
function afficheActu(id_actualite, index){

	  var req = new Request.HTML({
      method: 'get',
      url: "affichage_detail_actu.php?id="+id_actualite,
      update: $('texte-actualite'),
	  onSuccess: function(response) { 
		actu_courante=index;
		opacifieActus();
		if(actu_courante==0){
			$('article-precedent').set('src','images/actus/navigation-articles/article-precedent-off.gif');
			$('article-precedent').set('class','');
		}else{
			$('article-precedent').set('src','images/actus/navigation-articles/article-precedent-on.gif');
			$('article-precedent').set('class','image-cliquable');
		}
		if(actu_courante==Array_Actus.length-1){
			$('article-suivant').set('src','images/actus/navigation-articles/article-suivant-off.gif');
			$('article-suivant').set('class','');
		}else{
			$('article-suivant').set('src','images/actus/navigation-articles/article-suivant-on.gif');
			$('article-suivant').set('class','image-cliquable');
		}
		deplacement_liste_actu(actu_courante);
		placeSliderListeActu(actu_courante);
		creeSliderDetailActu();
	 }

    }).send();
	
}


/**************************************************** FIN FONCTIONS ACTUALITE ****************************************/




/**************************************************** FONCTIONS VINS ****************************************/
/**
Genere la slide des vins
**/
function genereSlideVins(div, image, conteneur){
	var slide_bouteille = new Fx.Slide(div,{
		mode: 'horizontal',
		wrapper:$(conteneur)
	});
	$(conteneur).setStyle('float','left');
	slide_bouteille.hide();
	$(image).addEvent('click', function(event){
		
		if (slide_bouteille_1.open) slide_bouteille_1.slideOut();
		if (slide_bouteille_2.open) slide_bouteille_2.slideOut();
		if (slide_bouteille_3.open) slide_bouteille_3.slideOut();
		if (slide_bouteille_4.open) slide_bouteille_4.slideOut();
		if (slide_bouteille.open){
			dessin_vins.tween('width', '453px');
		}else{
			dessin_vins.tween('width', '332px');
		}
		slide_bouteille.toggle();
	});
	return slide_bouteille;
}


/**************************************************** FIN FONCTIONS VINS ****************************************/




/**************************************************** FONCTIONS HISTOIRE ****************************************/
/**
Affiche les fleches si on est sur l'image
**/
function affichePrecedentSuivant(){
	$('previous').fade('in');
	$('next').fade('in');
}

/**
Efface les fleches
**/
function effacePrecedentSuivant(){
	$('previous').fade('out');
	$('next').fade('out');
}

/**
Genere le slideshow
Duree a modifier ici
**/
function genereSlideShow(container){
		  var showDuration = 4000;
		  var container = $('slideshow');
		  var images = container.getElements('img');
		  var currentIndex = 0;
		  var interval;
		  
		  /* new: starts the show */
		  var start = function() { interval = show.periodical(showDuration); };
		  var stop = function() { $clear(interval); };
		  /* worker */
		  var show = function(to) {
			images[currentIndex].fade('out');
			images[currentIndex = ($defined(to) ? to : (currentIndex < images.length - 1 ? currentIndex+1 : 0))].fade('in');
		  };
		  
		  
		  /* new: control: table of contents */
		  images.each(function(img,i){
			if(i > 0) { img.set('opacity',0); }
		  });
		  /* new: control: next and previous */
		  var next = new Element('a',{
			style:'display:inline',
			href: '#',
			id: 'next',
			onmouseover:'affichePrecedentSuivant()',
			events: {
			  click: function(e) {
				if(e) e.stop();
				stop(); show();
			  }
			}
		  }).inject(container);
		  var previous = new Element('a',{
			style:'display:inline',
			href: '#',
			id: 'previous',
			onmouseover:'affichePrecedentSuivant()',
			events: {
			  click: function(e) {
				if(e) e.stop();
				stop(); show(currentIndex != 0 ? currentIndex -1 : images.length-1);
			  }
			}
		  }).inject(container);
		  
		  /* new: control: start/stop on mouseover/mouseout */
		  container.addEvents({
			mouseenter: function() { stop(); },
			mouseleave: function() { start(); }
		  });
		  
		  
		  
		  /* start once the page is finished loading */
		  window.addEvent('load',function(){
			start();
		  });

}


/**************************************************** FIN FONCTIONS HISTOIRE ****************************************/




/**************************************************** FONCTIONS CONTACT ****************************************/
/**
Verifie le formulaire de contact
**/
function verifFormContact(form){
	error = false;
  	form = form;
  	check_input('nom', 2, 'enonce_nom');
 	check_input("prenom", 2, 'enonce_prenom');
  	check_input_email("mail", 'enonce_mail');
	check_input_telephone("telephone", 'enonce_telephone');
  	check_input('message', 5, 'enonce_message');
  //alert si erreur
  if (error == true) {
    $('informations_formulaire').set('html', '<span style="color:red"> Veuillez corriger les erreurs marquées en rouge</span>'); // ARRET ICI
	return false;
  } else {
	$(form).addEvent('submit', function(e){
	e.stop();
	form.set('send', {
		onSuccess : function(responseText, responseXML){
			//alert(responseText);
				$('informations_formulaire').set('html', responseText);
		}
	});
	form.send();
	});
	
	return true;
  }
}


/**************************************************** FIN FONCTIONS CONTACT ****************************************/



/**************************************************** FONCTIONS NEGOCIANTS ****************************************/
/**
Affiche la	 slide negociants
**/
function afficheDivNegociants(){
	//slider_horizontal.setRange([0, 4]);
	$('auth-negociants').fade('out');
	$('negociants').show();
}

/**
Place la fenetre de connexion en fonction de la position de l'item acces negociant
**/
function placeDivConnexion(){
	var position = $('img-menu-nego').getPosition();
	var left=position.x+1; // + 1 pour s'aliger avec la gauche des pointillés
	var top=position.y+31; // +31 pour se placer en dessus
	$('auth-negociants').set('style','left:'+left+'px;top:'+top+'px;');
}

/**
Affiche l'espace negociant sur la slide Acces negociant
**/
function chargeAccesNegociants(){
    var req = new Request.HTML({
      method: 'get',
      url: "includes/common/slide_negociants_acces.php",
      update: $('container-negociants'),
	  onSuccess: function(responseText){
		$('contact').setStyle('background','url(images/contact/fond-contact.jpg)');
   	  }  
    }).send();
	
}

/**
Affiche le formulaire d'inscription 
**/
function chargeFormNegociants(){
    var req = new Request.HTML({
      method: 'get',
      url: "includes/common/slide_negociants_form.php",
      update: $('container-negociants')
    }).send();
}


/**
En fonction de l'utilisateur connecte ou non, on affiche le form ou l'espace negociant sur la slide negociant
**/
function afficheSlideNegociants(){
	if (negociant_connecte){
		chargeAccesNegociants();
	} else {
		chargeFormNegociants();
	}
}

/**
Verifie les informations de connexion
**/
function genereConnexionNego(){
		$('form_auth').addEvent('submit', function(e) {
			// Prevents the default submit event from loading a new page.
			e.stop();
			// Set the options of the form's Request handler.
			// ("this" refers to the $('login') element).
			this.set('send', { onComplete: function(response) {
				if(response == 'OK')
				{
					negociant_connecte=true;
					tweenerNego();	
					chargeAccesNegociants();		
				}else{
					$('erreur_connexion').setStyle('visibility','visible');
					//alert('Veuillez vérifier vos informations de connexion.'); //  A MODIFIER
				}
			}});
				// Send the form.
			this.send();
    	});
	  
}


/**
Valide le formulaire d'inscription
Verifie egalement que l'email soit unique
**/
function verifFormInscription(form){
	error = false;
  	form = form;
  	check_input('nom_inscription', 2, 'enonce_nom_inscription');
 	check_input("prenom_inscription", 2, 'enonce_prenom_inscription');
  	check_input_email("mail_inscription", 'enonce_mail_inscription');
	check_input_telephone("telephone_inscription", 'enonce_telephone_inscription');
	check_input("societe_inscription", 2, 'enonce_societe_inscription');
  //alert si erreur
  if (error == true) {
    $('informations_formulaire_inscription').set('html', '<span style="color:red"> Veuillez corriger les erreurs marquées en rouge</span>'); 
	return false;
  } else {	
	$(form).addEvent('submit', function(e){
	e.stop();
	form.set('send', {
		onSuccess : function(responseText, responseXML){
			//alert(responseText);
				$('informations_formulaire_inscription').set('html', responseText);
		}
	});
	form.send();
	});
	
	return true;
  }
}


/**
Affiche les documents en fonction du clic
**/
function afficheDocuments(value){
	var req = new Request.HTML({
     method: 'get',
     url: "affichage-liste-documents.php?filtre="+value,
     update: $('container-documents-negociants'),
 	  onSuccess: function(responseText){
		$('container-documents-negociants').setStyle('display','block');
		scroll_vertical_doc_negociants = $('scroll_vertical_doc_negociants');
		documents_negociants = $('documents-negociants');
		size_liste=$('liste-documents').getSize().y;
		size_container=$('container-liste-documents').getSize().y;
		if(size_liste>size_container){
			slider_vertical_documents_negociants = new Slider(scroll_vertical_doc_negociants, scroll_vertical_doc_negociants.getElement('.fleche_scroll_vertical_doc_negociants'), {
				range: [0, 1000],
				initialStep: 0,
				mode: 'vertical',
				wheel: true,
				onChange: function(value){
						deplaceListeDocuments(value);
				}
			  });
	  		}
   	  }  
    }).send();

}

function fermerDocuments(){
	$('container-documents-negociants').setStyle('display','none');
}

function deplaceListeDocuments(value){
	size_liste=$('liste-documents').getSize().y;
	size_container=$('container-liste-documents').getSize().y;
	$('liste-documents').tween('top',-(((size_liste-size_container)*value)/1000) + 'px');
}
/**************************************************** FIN FONCTIONS NEGOCIANTS ****************************************/



/**************************************************** CHARGEMENT PAGE ****************************************/
window.addEvent('domready', function() {
	Agrandissement();
	Locale.use('fr-FR');
	// NAVIGATION
	 $('slide-actu').addEvent('click', tweenerActualite);
	 $('slide-vins').addEvent('click', tweenerVins);
	 $('slide-histoire').addEvent('click', tweenerHistoire);
	 $('slide-contact').addEvent('click', tweenerContact);


 	genereEventMenu();
	
	
	/*Dreoulement horizontal*/
	container_principal =  $('container-principal');
	container_principal.style.width=getLargeur()+'px';

	barre_horizontale = $('container-barre-scroll-horizontal');
	barre_horizontale.style.width=getLargeur()+'px';
	
	slider_horizontal = new Slider(barre_horizontale, barre_horizontale.getElement('.fleche-scroll-horizontal'), {
		snap: true,
		range: [0, getLargeur()],
		initialStep: (getLargeur()/5)*1+1,
		onChange: function(value){
			placement(value, true);
		}
	  });
	 /*fin*/
	 
	 
 	/*Initialisation du slider : Il est ensuite activé ou désactivé selon la longueur de l'actu*/
	scroll_vertical_detail_actu = $('scroll-vertical-detail-actu');
	texte_actualite = $('texte-actualite');
	slider_vertical_texte_actualite=new Slider(scroll_vertical_detail_actu, scroll_vertical_detail_actu.getElement('.fleche-scroll-vertical-detail-actu'));

	 /*Generation des actus*/
	generelisteActu();
	gereNavigationArticle();


	  
	  


	
	
	
	/*Slide Vins*/
	dessin_vins = $('dessin-vins');
	slide_bouteille_1 = genereSlideVins('content-1', 'img-bouteille-1', 'conteneur_slide_1');
	slide_bouteille_2 = genereSlideVins('content-2', 'img-bouteille-2', 'conteneur_slide_2');
	slide_bouteille_3 = genereSlideVins('content-3', 'img-bouteille-3', 'conteneur_slide_3');
	slide_bouteille_4 = genereSlideVins('content-4', 'img-bouteille-4', 'conteneur_slide_4');

	
	/*Slide Histoire*/
		/* Slideshow */
		genereSlideShow('slideshow');

		/*Affichage du flash*/	
		var box = new CeraBox();
		box.addItems('#decouvrir-domaine a.swf', {
			width: 1000,
			height: 740
		});
		box.addItems('#pied a.swf', {
			width: 1000,
			height: 740
		});
		

	/*Slide negociants*/	
	genereConnexionNego();

		

  window.addEvent('resize', function(){
		container_principal.style.width=getLargeur()+'px';
		barre_horizontale.style.width=getLargeur()+'px';
		slider_horizontal.autosize();
		placement(slider_horizontal.step, false);
		
		placeDivConnexion();
  });
	
	

});

