/*var obj = null;                                                                 // Déclaration de variable

function checkHover() {                                                         // CheckHover fait disparaître le sous-menu ouvert (s'il existe)
	if (obj) {
		obj.find('ul').fadeOut('slow');                                         // Disparition ('lente')
	}
}




    // TOPMENU
    $('ul.submenu').hide();                                                     // Cache le sous-menu

	$('.mainmenu > li').hover(function() {                                      // Test du survol d'un li sous le ul.mainmenu (menu-principal)
        if (obj) {                                                              // Si la variable est pleine
			obj.find('ul').slideUp('slow');                                     // On replit le ul ('lent')
			obj = null;                                                         // On vide la variable
		} //if

		$(this).find('ul').slideDown('slow');                                   // On déplit le ul sous le li que l'on survole ('lent')
	}, function() {                                                             // Lorsqu'on cesse de survoler le menu
		obj = $(this);                                                          // On remplit la variable avec l'objet où on se trouve
        setTimeout(                                                             // Timer pour retarder la disparition du ul ouvert
			"checkHover()",                                                     // Appel de la fonction de disparition
			0);
		delete  $(this);                                                                // Durée avant la disparition
	});
*/
// Function
function in_array(needle, haystack, strict)
{
    var found = false, key, strict = !!strict;

    for ( key in haystack )
    {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle))
        {
            found = true;
            break;
        }
    }
    return found;
}

function updateSelects( companies, boats, escales, dates )
{
	/* On va mettre a jour les select */
	if( companies.length > 0 )
	{
		var companiesSelect = document.forms.formEscaleSearch.selectcompany;
		var selectedValue = companiesSelect[ companiesSelect.selectedIndex ].value;
		if( selectedValue == -1 )
		{
			selectedValue = false;
		}
		// On supprime d'abord toutes les valeurs
		for( i = Number( companiesSelect.options.length ) - 1; i > 0; i-- )
		{
			companiesSelect.options[i] = null;
		}
		// Puis on ajoute celles qu'on veut
		var companyParsed = new Array();
		for( i in companies )
		{
			if( !in_array( companies[i], companyParsed ) )
			{
				companiesSelect.options[ companiesSelect.options.length ] = new Option( companies[i], companies[i] );
				companyParsed.push( companies[i] );
				if( selectedValue && selectedValue == companies[i] )
				{
					companiesSelect.options[ companiesSelect.options.length - 1 ].selected = true;
				}
			}
		}
	}

	if( boats.length > 0 )
	{
		var boatsSelect = document.forms.formEscaleSearch.selectboat;
		var selectedValue = boatsSelect[ boatsSelect.selectedIndex ].value;
		if( selectedValue == -1 )
		{
			selectedValue = false;
		}
		// On supprime d'abord toutes les valeurs
		for( i = Number( boatsSelect.options.length ) - 1; i > 0; i-- )
		{
			boatsSelect.options[i] = null;
		}
		// Puis on ajoute celles qu'on veut
		var boatParsed = new Array();
		for( i in boats )
		{
			if( !in_array( boats[i], boatParsed ) )
			{
				boatsSelect.options[ boatsSelect.options.length ] = new Option( boats[i], boats[i] );
				boatParsed.push( boats[i] );
				if( selectedValue && selectedValue == boats[i] )
				{
					boatsSelect.options[ boatsSelect.options.length - 1 ].selected = true;
				}
			}
		}
	}

	if( escales.length > 0 )
	{
		var escalesSelect = document.forms.formEscaleSearch.selectescale;
		var selectedValue = escalesSelect[ escalesSelect.selectedIndex ].value;
		if( selectedValue == -1 )
		{
			selectedValue = false;
		}
		// On supprime d'abord toutes les valeurs
		for( i = Number( escalesSelect.options.length ) - 1; i > 0; i-- )
		{
			escalesSelect.options[i] = null;
		}
		// Puis on ajoute celles qu'on veut
		var escaleParsed = new Array();
		for( i in escales )
		{
			if( !in_array( escales[i], escaleParsed ) )
			{
				escalesSelect.options[ escalesSelect.options.length ] = new Option( escales[i], escales[i] );
				escaleParsed.push( escales[i] );
				if( selectedValue && selectedValue == escales[i] )
				{
					escalesSelect.options[ escalesSelect.options.length - 1 ].selected = true;
				}
			}
		}
	}

	if( dates.length > 0 )
	{
		globalDates = new Array();
		for( i in dates )
		{
			// Transformation d'une date au format dd/mm/YYY en timestamp
			var reg=new RegExp("[/]+", "g");
			var dateArray = dates[i].split(reg);
			date = new Date( dateArray[2], dateArray[1] - 1, dateArray[0] ).getTime() / 1000;
			if( !in_array( date, globalDates ) )
			{
				globalDates.push( date );
			}
		}
	}
}

/* Moteur de recherche des escales */
function escalesCombosGest( comboValue, field )
{
	var companies = new Array();
	var boats = new Array();
	var escales = new Array();
	var dates = new Array();
	var valueChoosen = false;
	if( field == 'date' )
	{
		valueChoosen = comboValue.value;
		/* On doit aller chercher toutes les compagnies, tous les bateaux et toutes les escales ayant cette date */
		for( companie in globalDatas )
		{
			for( boat in globalDatas[ companie ] )
			{
				for( date in globalDatas[ companie ][ boat ]['dates'] )
				{
					if( globalDatas[ companie ][ boat ]['dates'][date] == valueChoosen || valueChoosen == -1 )
					{
						companies.push( companie );
						boats.push( boat );
						escales = globalDatas[ companie ][ boat ]['escales'];
					}
				}
			}
		}
		updateSelects( companies, boats, escales, dates );
	}else
	{
		valueChoosen = comboValue.options[ comboValue.selectedIndex ].value;

		if( field == 'boat' )
		{
			for( companie in globalDatas )
			{
				for( boat in globalDatas[ companie ] )
				{
					if( boat == valueChoosen || valueChoosen == -1 )
					{
						for( date in globalDatas[ companie ][ boat ]['dates'] )
						{
							companies.push( companie );
							dates.push( globalDatas[ companie ][ boat ]['dates'][date] );
							escales = globalDatas[ companie ][ boat ]['escales'];
						}
					}
				}
			}
		}else if( field == 'company' )
		{
			for( companie in globalDatas )
			{
				if( companie == valueChoosen || valueChoosen == -1 )
				{
					for( boat in globalDatas[ companie ] )
					{
						for( date in globalDatas[ companie ][ boat ]['dates'] )
						{
							boats.push( boat );
							dates.push( globalDatas[ companie ][ boat ]['dates'][date] );
							escales = globalDatas[ companie ][ boat ]['escales'];
						}
					}
				}
			}
		}else if( field == 'escale' )
		{
			for( companie in globalDatas )
			{
				for( boat in globalDatas[ companie ] )
				{
					for( date in globalDatas[ companie ][ boat ]['dates'] )
					{
						for( i in globalDatas[ companie ][ boat ]['escales'] )
						{
							if( globalDatas[ companie ][ boat ]['escales'][i] == valueChoosen || valueChoosen == -1 )
							{
								companies.push( companie );
								boats.push( boat );
								dates.push( globalDatas[ companie ][ boat ]['dates'][date] );
							}
						}
					}
				}
			}
		}
		updateSelects( companies, boats, escales, dates );
	}
}

var monEvaluation = eval("document.getElementById('datePicker')");

// Fonction de repli de la Popup pour la page excursion
function clearPopup() {                                                         
    $("div.attribute-excursion span").removeClass("selected"); 		            // On supprime toutes les classes selected
    $("div.infos_excursion").slideUp("slow");								    // On fait remonter l'element affiche
    $("div.attribute-carte #carte img").css("opacity","1");                     // On enlève l'opacité sur la carte
}

$(document).ready(function() 
{
    
    // DATEPICKER
	$("#datePicker").datepicker({
        showOn: "button",
        buttonImage: "/extension/ccmp/design/ccmp_user/images/calendar.gif",
        buttonImageOnly: true,
        firstDay: 1,
        changeFirstDay: false
    }).addClass("embed");
    

	// IMAGES FRONTPAGE HOMEPAGE
	$('div.diapo img').hide();                                                  // On cache les images du div.diapo
	$('div.professionnels div.diapo img').eq(0).fadeIn('slow');                 // On fait apparaitre la 1ere image du bloc espace pro
    $('div.particuliers div.diapo img').eq(0).fadeIn('slow');                   // On fait apparaitre la 1ere image du bloc espace public

	$('div.professionnels ul.rubrique li').hover( function() {                  // Au survol d'un li (pour le bloc espace pro)
        $('div.professionnels div.diapo img').hide();                           // On cache les images (pour le bloc espace pro)
        $('div.professionnels div.diapo img.'+this.className).show();           // On affiche l'image qui a la même classe que le lien que l'on survole (le lien et l'image ont un index definit dans le tpl)
    }, function() {                                                             // Lorsqu'on ne survole plus le li

    });
	
    $('div.particuliers ul.rubrique li').hover( function() {                    // Au survol d'un li (pour le bloc espace public)
        $('div.particuliers div.diapo img').hide();                             // On cache les images (pour le bloc espace public)
        $('div.particuliers div.diapo img.'+this.className).show();             // On affiche l'image qui a la même classe que le lien que l'on survole
	}, function() {

    });
    
    
    // MEMBERS ONGLETS NIVIGATION
    $("div.memberInfo div.inner div").hide();										// On cache tous les div sous div.memberInfo
	$("div.memberNav span").eq(0).addClass("selected");		// Ajoute la classe selected au premier span sous div.memberNav
	$("div.memberInfo div.inner div").eq(0).show();							// Rend visible le 1er div sous memberInfo

	$("div.memberNav span").click(function(){							// On crée une fonction au click des span sous memberNav
		$("div.memberNav span").removeClass("selected"); 		// On supprime toutes les classes selected
		var nom_onglet = this.className;									// On récupère la variable JS du nom de la classe de l'element qu'on clique
		$(this).addClass("selected");											// On ajoute la classe selected a l'element qu'on clique
		$("div.memberInfo div.inner div").hide();									// On cache tous les elements
		$("div."+ nom_onglet).slideDown("slow");					// On fait apparaitre en slide le contenu assosier a l'onglet
		return false;																			// On demande a ne pas suivre le lien de l'onglet
	});
	

    // TABLES
    $('#stripe tr').mouseover(function(){$(this).addClass('over');}).mouseout(function(){$(this).removeClass('over');});

    $('#stripe').each(function() {
        $('tr:even', this).addClass('alt');
    });


    // EQUILIBRE COLONNES
    $(".equilibre").each(function(){
       var h=0;
       $(".box_content", this)
         .each(function(){ h=Math.max(h,this.offsetHeight); })
         .css({'height': h+'px'});
     });
     
     // EQUILIBRE SIDEMENU
    $(".nothome").each(function(){
        var heightContent = this.offsetHeight;
        $(".empty").css({'height': heightContent+'px'});
    });
    
    




    // GALERIE
    $('.gallery_demo_unstyled').addClass('gallery_demo'); // adds new class name to maintain degradability
	$('.gallery_demo li').eq(0).addClass('active'); // adds new class name to maintain degradability
	$('ul.gallery_demo').galleria({
		history   : true, // activates the history object for bookmarking, back-button etc.
		clickNext : true, // helper for making the image clickable
		insert    : '#main_image', // the containing selector for our main image
		onImage   : function(image,caption,thumb) { // let's add some image effects for demonstration purposes

			// fade in the image & caption
			image.css('display','none').fadeIn(1000);
			caption.css('display','none').fadeIn(1000);

			// fetch the thumbnail container
			var _li = thumb.parents('li');

			// fade out inactive thumbnail
			_li.siblings().children('img.selected').fadeTo(500,0.3);

			// fade in active thumbnail
			thumb.fadeTo('fast',1).addClass('selected');

			// add a title for the clickable image
			image.attr('title','Next image >>');
		},
		onThumb : function(thumb) { // thumbnail effects goes here

			// fetch the thumbnail container
			var _li = thumb.parents('li');

			// if thumbnail is active, fade all the way.
			var _fadeTo = _li.is('.active') ? '1' : '0.3';

			// fade in the thumbnail when finnished loading
			thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);

			// hover effects
			thumb.hover(
				function() { thumb.fadeTo('fast',1); },
				function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active
			)
		}
	});
	
	
	// EXCURSION
	$("div.infos_excursion").hide();                                            // On cache les contenus div.infos_excursion
	//$("div.attribute-excursion span").eq(0).addClass("selected");		        // Ajoute la classe selected au premier span sous div.attribute-excursion
	//$("div.infos_excursion").eq(0).slideDown("slow");							// Rend visible le 1er div sous infos_excursion

	$("div.attribute-excursion span").click(function(){							// On crée une fonction au click des span sous attribute-excursion
    	if ( $(this).hasClass("selected") ) {
            clearPopup();                                                       // On appelle la fonction au click sur la carte
            return false;                                                       // On ne suit pas le lien
        }
        else {
    	    $("div.attribute-carte #carte img").css("opacity","0.50");          // On applique de l'opacite sur la carte
    		$("div.attribute-excursion span").removeClass("selected"); 		    // On supprime toutes les classes selected
    		var nom_excursion = this.className;                                 // On récupère la variable JS du nom de la classe de l'element qu'on clique
    		$(this).addClass("selected");										// On ajoute la classe selected a l'element qu'on clique
    		$("div.infos_excursion").hide();									// On cache tous les elements
    		$("div."+ nom_excursion).slideDown("slow");					        // On fait apparaitre en slide le contenu assosier a l'element selectionne
    		return false;                                                       // On demande a ne pas suivre le lien de l'onglet
        }
	});
	
	$("div.attribute-carte img").click(function(){							    // On appelle la fonction au click sur la carte
       clearPopup();
	});

});