var BaseUrl = 'ebqm/';	// permet de definir la racine du projet, peut etre a mettre ailleurs
var $slideshow;
var $nav;
var interval;
var $viewport = $(window).width();

$(document).ready( function (){
	
	// Diapo Home Page et pages offres et produits
	slideshow();
	
	// Ecouteur menu principal dans header onglet selectionne
	ecouteur_mainmenu_tab_active();
	
	// Suvol du menu horizontal
	ecouteur_menu_dropdown();
	
	// Ecouteur accordeon menuint
	ecouteur_accordeon_menuint();
	
	// Ecouteur menuint item actif
	ecouteur_menuint_item_active() 
	
	// Fil d'ariane
	breadcrumbs();
	
	// Formulaire commande de cartouches
	ecouteur_toner();
	
	ecouteur_help ();
	
	ecouteur_submit_form ();
	
});


//
// Gestion du diaporama
//
function slideshow()
{
	//if($viewport > 900){
		var delay = 4000;
		var time_slide = 400;

		$slideshow = $("#slideshow");
		$nav = $(".activities nav");
		
		// Classe active par defaut
		$("a:first",$nav).addClass("active");
		
		// Passage a la slide suivante
		function slide_next(sens) {
			if(typeof sens=='undefined' || sens==undefined) {
				sens=1;
			}
			var $slideCurrent = $(".slide:visible",$slideshow);
			
			if(sens>0) {
				var $suivante = $slideCurrent.last().next(".slide");
				
			} else {
				var $suivante = $slideCurrent.first().prev(".slide");
				
			}	
			if ($suivante.length<1) {
				if(sens>0) { 
					$suivante = $(".slide:first",$slideshow);
				}
				else {
					$suivante = $(".slide:last",$slideshow);
				}
			}
			$suivante.stop(true, true).fadeIn(time_slide);
			$slideCurrent.stop(true, true).fadeOut(time_slide);
			// Enleve la classe "active" au slide devenu inactif 
			$("a",$nav).removeClass("active");
			// Met la classe "active" au slide suivant qui devient actif 
			$("a#"+$suivante.data("nav")).addClass("active");

		}

		// Clic sur fleche droite
		$("a#next",$slideshow).click(
			function(e) {
				slide_next(1);
				e.preventDefault();
				slide_stop();		
			});
				
		// Clic sur fleche gauche		
		$("a#previous",$slideshow).click(
			function(e) {
				slide_next(-1);
				e.preventDefault();
				slide_stop();
			});
		
		// Survol nav
		$("a",$nav).mouseenter(
			function() {
				clearInterval(interval);
				$("a",$nav).removeClass("active");
				$(this).addClass("active");
				$(".slide",$slideshow).stop(true, true).fadeOut(time_slide);		
				var id = $(this).attr("id");
				$(".slide[data-nav="+id+"]",$slideshow).stop(true, true).fadeIn(time_slide);
				
			});

		$("a",$nav).mouseleave(slide_start);
		
		// Survol slide
		$slideshow.mouseenter(slide_stop);
		$slideshow.mouseleave(slide_start);
		
		
		// Auto
		function slide_start() {
			clearInterval(interval);
			interval = setInterval(function() { slide_next(1); },delay);
		}

		function slide_stop() {
			clearInterval(interval);
		}
	
	slide_start();
}
//
// Auto sélection des onglets lors de la navigation
//
function ecouteur_mainmenu_tab_active() 
{
	var pathdefault = 'http://www.ebqm.com/'  
	var pathname = 'http://www.ebqm.com' + location.pathname;
	
	// A changer par var mainpath = location.pathname.split("/")[1]; 
	//lors de la mise en ligne car suppression dans l'url 
	// Page niveau 1
	var pathone = location.pathname.split("/")[1];
	
	if ( (pathname) != (pathdefault) ){
	
	// Menu principal horizontal dégradé bleu, on rajoute la classe active (dégradé orange) pour l'onglet selectionne
     $mainmenu = $('#mainmenu a[href$="' + pathone + '"]');
	 $mainmenu.parent().attr('class', 'active');
	}
}
//
// Menu déroulant
//
function ecouteur_menu_dropdown()
{
	 $curobj = $("#nav_dropdown_content").parent();

    if ($viewport >= 640) {
        $curobj.mouseover(function () {
            $("#nav_dropdown_content").show();
        });

        $curobj.mouseout(function () {
            $("#nav_dropdown_content").hide();
        });

        $curobj.click(function () {
            $("#nav_dropdown_content").hide();
        })
    }
}


//
// Accordeon du menu de navigation dans onglet offres et produits
//

function ecouteur_accordeon_menuint() {
	$child = $(".menuint ul li ul");
	
	// Par défaut
	$(".menuint ul li ul").hide();
	
	// On peut pas utiliser le toggle car si on pli ou depli une liste avec un traitement automatiaue, le toggle l'aura pas detecte et donc il va mal interprete notre clic
    $(".more").click( function() {  
	  
	    // L'element n'est pas selectionne donc on le selectionne, ON DEPLIE. 1/ on met un +  2/ On depli ses enfants
		if( ! $(this).hasClass('selected') )
		{
		   var a_param = this.id.split('_');
		   $(this).html('-');
		   
		   // SYSTEME FERMETURE AUTOMATIQUE DES LISTES. Par exemple si on a ouvert l'element A, on va fermer tout B et tout C.
			$(".list-product").each(function(){
				// Si l'element sur lequel on a clique ne correspond a l'element qu'on traite dans le each(), alors il faut refermer la liste
				// Exemple on a cliquer sur un element B, on va fermer toutes les listes A et C
				if( ! $(this).hasClass('liste_'+a_param[1]) )	
				{
					$(this).slideUp("normal");
					// TODO : a modifier car on se promene dans l'architecture, peur s'ameliorer
					// Ici on supprime la classe "selected" pour dire que l'element n'est plus selectionne + on rajoute un "+" à la place du -
					$(this).prev().prev().removeClass('selected').html('+');
				}
			})	
			
		   
		   var idlisteProduct = $('#listeProduct_'+ a_param[0] );	 
		   idlisteProduct.slideDown("normal");
		   //idlisteProduct.addClass("visibility");
		   $(this).addClass('selected');
		}
		else	// L'element est deja selectionne donc ON REPLIE.  1/ Afficher un -   2/ on remonte la liste    
		{	
			// Cache toutes les listes qui ne font pas partie de la liste parente ou se trouve l'element ou on vient de cliquer
			var a_param = this.id.split('_');
							
			$(this).html('+');

			var idlisteProduct = $('#listeProduct_' + a_param[0]);	
			idlisteProduct.slideUp("normal");
			$(this).removeClass('selected');
		}
	 
	});		// FIN ECOUTEUR CLICK SUR LES MORE
	
}

//
// Auto sélection des item lors de la navigation à l'intérieur des onglets
//
function ecouteur_menuint_item_active() 
{
	var pathdefault = 'http://www.ebqm.com/' 
	var pathname = 'http://www.ebqm.com' + location.pathname;
	
	// A changer par var mainpath = location.pathname.split("/")[1]; 
	//lors de la mise en ligne car suppression dans l'url 
	// Page niveau 1
	var pathone = location.pathname.split("/")[2];
	
	// A changer par var mainpath = location.pathname.split("/")[2]; 
	//lors de la mise en ligne car suppression dans l'url  
	// Page niveau 2 
	
	$('.menuint ul li a').each(function(){
		if (($(this).attr('href')) == pathname){
			$(this).parent().attr('class', 'select');
		}
	});

	
	var select = $(".menuint ul .select").parent();

	if(select.attr('class')) {
		var levelselectparent = select.attr('class').split('-')[2];
		
		if ( (levelselectparent) >= 2) {
			select.show();
			select.addClass("grey");
			select.parent().addClass("grey");
			select.parent().children(":first").html("-");
		}
		
		if ( (levelselectparent) >= 3) {
			select.parent().parent().show();
			select.parent().parent().parent().addClass("grey");
			select.parent().children(":first").html("-");
			select.parent().parent().parent().children(":first").html("-");
		}
	}	
	
}



//
// Fil d'ariane
//
function breadcrumbs () 
{	
	// Page de niveau  1
	$menuinth1 = $(".menuint nav h1 a");
	
	// Lien
	$('.breadcrumbs-first a').attr('href', $menuinth1.attr("href"));
	// Titre
	$('.breadcrumbs-first a').html($menuinth1.html());
	
	
	// Page de niveau 2 et plus
	$menuintli = $(".menuint ul .select a");
	
	var select = $(".menuint ul .select").parent();

	
	var idselectparent = select.attr('id');
	
	// On cherche a savoir si son parent UL a un id, si c'est le cas alors c'est qu'il fait parti des enfants 
	if ( (select.attr('id')) != null) {
	
		if ((select.attr('class')) != ($('.level-1').attr('class'))) {
		var aparent2 = select.parent().children('a');	
			$('.breadcrumbs-3').show();
			// Lien
			$('.breadcrumbs-3 a').attr("href", aparent2.attr("href"));
			// Titre
			$('.breadcrumbs-3 a').html(aparent2.html());		
		} 
		
		if ((select.parent().parent().attr('class')) != ($('.level-1').attr('class'))) {
			var aparent3 = select.parent().parent().parent().children('a');
			$('.breadcrumbs-2').show();
			// Lien
			$('.breadcrumbs-2 a').attr("href", aparent3.attr("href"));
			// Titre
			$('.breadcrumbs-2 a').html(aparent3.html());	
		}
	}
	
	// Titre
	$('.breadcrumbs-last').html(' &nbsp; ' + $menuintli.html());	
	
}


//
//	Gestion des click sur les boutons radio de choix des couleurs
//
function ecouteur_toner ()
{ 
	// Gestion du click sur le bouton blanc noir
	// on cache toutes les cartouches couleur
	$('#idBlackandWhite').click( function()
	{
		$('select').removeAttr("disabled");
		$('#blacktoner option[value=2]').show();
		$('#cyantoner').hide();
		$('#yellowtoner').hide();
		$('#magentatoner').hide();
		$("#quantity_color_error").hide();
	});
	// gestion du click sur le bouton couleur
	// on affiche les cartouches couleur
	$('#idColors').click( function()
	{
		$('select').removeAttr("disabled");
		$('#blacktoner option[value=2]').hide();
		$('#cyantoner').show();
		$('#yellowtoner').show();
		$('#magentatoner').show();
		$('#quantity_black_error').hide();
	});
}

//
//	Gestion des mouseover sur les pictogrammes d'aides
//
function ecouteur_help  ()
{
	$(".spriteform.help").mouseover( function() { 
		$(".message").hide();		// desactive tous le smessages d'information
		// active le message d'information qui nous interesser.*
		// Il faut que ce message soit JUSTE APRES le neoeud .spriteform.help, d'ou le next pour avoir l'obket de l'element suivant.
		$(this).next().show();		
	});
	
	$(".spriteform.help").mouseout( function() { 
		$(".message").hide();		// Supprime toutes les bulles d'info si on est pas sur un element d'information
	});	
}

//
//	Gestion du submit du formulaire
//
// Par defaut on dit que le formulaire est bon. Des qu'on recontre une erreur le statut de 
// variable passe a false et donc le formulaire en sera pas valide.
// le return est uniquement a la fin car comme ca on test tous nos cas d'erreurs et on affiche toutes erreurs existantes d'un coup
function ecouteur_submit_form ()
{
	$('.form').submit( function()
	{	
		$('.error').hide();		// Supprime toutes les erreurs avant controle du formulaire
		b_return = true;
		// Verifie tous les champs input, qui ont donc la classe required
		$('.required').each( function(i)
		{
			if ( $('input[name='+this.id+']').val() == '' )	// Si le champs est vide ..
			{
				$('#'+this.id+'_error').show();				// .. on affiche le message d'erreur associe
				b_return = false;
			}
			if ( $('textarea[name='+this.id+']').val() == '' )	// Si le champs est vide ..
			{
				$('#'+this.id+'_error').show();				// .. on affiche le message d'erreur associe
				b_return = false;
			}
		});
		/*
		// Verifie tous les champs textarea, qui ont donc l'attribut required
		$('textarea[required]').each( function(i)
		{
			if ( $('textarea[name='+this.id+']').val() == '' )	// Si le champs est vide ..
			{
				$('#'+this.id+'_error').show();				// .. on affiche le message d'erreur associe
				b_return = false;
			}
		});
		*/
		
		// Verification de l'adresse mail
		var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
		if( !reg.test( $("input[name=email]").val() ) )
		{
			$("#email_error").show();
			b_return = false;
		}
		
		// Vérification des champs liste déroulantes
		if (  ( $('.required').val() == 0 ) )
		{
			$('#machine_error').show();
		}
		
		
		/*
		// Vérification si aucun des champs bouton n'est sélectionné
		if (   $( 'input[name=type]:not(:checked)' ) ) 
		{
			$('#type_error').show();
		}
		*/
		if ( !$( '#idBlackandWhite' ).attr('checked') && !$( '#idColors' ).attr('checked') )
		{
			$('#type_error').show();
		}
		
		// VERIFICATION BOUTON RADIO NOIR ET BLANC
		// Si photocopieur noir et blanc, la commande de toner noir doit être au moins de un 
		if (  ( $('input[name=type]:checked').val() == 0 ) && (  $('select[name=quantity_black]').val() == 0 ) )
		{
			$('#quantity_black_error').show();		
			b_return = false;
		}
		
		
		// VERIFICATION BOUTON RADIO COULEUR
		// Si photocopieur couleur, la commande de toner doit être au moins de une quantite pour noir ou les autres couleurs
		if (       (  $('input[name=type]:checked').val() == 1 )   
				&& (  $('select[name=quantity_black]').val() == 0 ) 
				&& (  $('select[name=quantity_yellow]').val() == 0 )
				&& (  $('select[name=quantity_magenta]').val() == 0 )
				&& (  $('select[name=quantity_cyan]').val() == 0 )
			)
		{
			$("#quantity_color_error").show();
			b_return = false;
		};
		
		return b_return;
				
	});
	
}


