/*-----------------------------------------------------------------------------------------------*/
//
// Copyright (c) 2008 Agence Clark (http://www.agence-clark.com)
//
/*-----------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------------*/
// Init Page
/*-----------------------------------------------------------------------------------------------*/
Event.observe(window, 'load', InitPage, false);
function InitPage(){
	//-- Rollover Input Image --//
	RollOverImage();
	
	//-- Selection Droite --//
	if($('div_selec') && $('bt_open_selec')){
		Event.observe($('bt_open_selec'),'click',function(){ OpenClose('bt_open_selec','div_selec'); });
	}
	//-- Alertes Droite --//
	if($('div_alerte_log') && $('bt_open_alerte_log')){
		Event.observe($('bt_open_alerte_log'),'click',function(){ OpenClose('bt_open_alerte_log','div_alerte_log'); });
	}
	//-- Partenaires Droite --//
	//if($('cont_partenaires')) var SwiPart = new SwitchBloc('cont_partenaires','liste_partenaires','partenaire','bt_prec','bt_suiv');
	if($('cont_partenaires')) var SwiPart =  new SwitchBloc('cont_partenaires','partenaire',{SwiListe:'liste_partenaires',SwiBtPrecedent:'bt_prec',SwiBtSuivant:'bt_suiv',SwiDefilAuto:true});
	
	//--- Moteur de recherche ---//
	//-- Afficher carte --//
	if($('bt_open_carte_int') && $('form_rech_int') && $('carte_int')){
		Event.observe($('bt_open_carte_int'),'click',function(){ affCarteInt(); });
	}
	
	//-- Affichage Filtres --//
	if($('filtres')){
		Event.observe($('lien_proxi'),'click',function(){ InitFiltres('lien_proxi','div_proxi'); OpenClose('lien_proxi','div_proxi'); });
		Event.observe($('lien_equip'),'click',function(){ InitFiltres('lien_equip','div_equip'); OpenClose('lien_equip','div_equip'); });
		Event.observe($('lien_serv'),'click',function(){ InitFiltres('lien_serv','div_serv'); OpenClose('lien_serv','div_serv'); });
		//Event.observe($('lien_type'),'click',function(){ InitFiltres('lien_type','div_type'); OpenClose('lien_type','div_type'); });
		//Event.observe($('lien_prix'),'click',function(){ InitFiltres('lien_prix','div_prix'); OpenClose('lien_prix','div_prix'); });
	}
	
	// Click sur les filtres
	$$('input.src_filtre').each( function( e ){
		Event.observe( e , 'click' , function(){
			if( frmRechInt() ) $('frm_rech_int').submit() ;
		} );
	} );

	// Première lettres dans nom camping
	if( $('NomCamping') ) {
		Event.observe( $('NomCamping'),'focus',function(){ $('NomCamping').select(); } );
		//Event.observe( $('NomCamping'),'blur',function(){ if( $('NomCamping').value == '' ) { $('NomCamping').value = 'Tapez les premi&egrave;res lettres'; $('IdtCamping').value = ''; } } );
	}
}

/*-----------------------------------------------------------------------------------------------*/
// Fonctions
/*-----------------------------------------------------------------------------------------------*/
//-- Appel ModalBox --//
var ModalInfo= function (titre, texte) {
	$('domNode').update(texte);
	Modalbox.show($('domNode'), {title: titre, width: 600});
};

//-- Afficher carte int --//
var affCarteInt = function(){
	if($('form_rech_int').getStyle('display') == 'block'){
		$('form_rech_int').setStyle({display:'none'});
		$('carte_int').setStyle({display:'block'});
		$('bt_open_carte_int').update('Afficher la recherche');
		$('bt_open_carte_int').addClassName('on');
	}
	else{
		$('carte_int').setStyle({display:'none'});
		$('form_rech_int').setStyle({display:'block'});		
		$('bt_open_carte_int').update('Afficher la carte');
		$('bt_open_carte_int').removeClassName('on');
	}
};

//-- Initialisation des filtres --//
var InitFiltres = function(a,div){
	$$('#filtres .filtre').each(function(e,i){
		var childreen = e.childElements();
		if(childreen[0].id != a && $(childreen[0].id).hasClassName('on') && $(childreen[1].id).getStyle('display')=='block'){
			$(childreen[1].id).setStyle({display:'none'});
			$(childreen[0].id).removeClassName('on');
		}
	});
};

/*-----------------------------------------------------------------------------------------------*/
// Verification de formulaires
/*-----------------------------------------------------------------------------------------------*/
//-- Verif Moteur Rech Int --//
var frmRechInt = function() {
	if( !isFutureDate( $F('DateDepart') ) )
	{
		ModalInfo (cl_app_attention, cl_app_datedep_obl);
		return false ;
	}
	else
	{
		param_form = { mep: 'modalbox', autoScroll: false, action: 'submit'};
		champs_form = {
			//Pays: {alerte:cl_app_pays_obl},
			DateDepart: {alerte:cl_app_datedep_obl}
		};
		return formVerif('frm_rech_int', champs_form, param_form, {titreMessage: cl_app_err_suiv, titreAttention:cl_app_attention});
	}
};

/*-----------------------------------------------------------------------------------------------*/
// Gestion des cookies
/*-----------------------------------------------------------------------------------------------*/

function createCookie(name,value,days) {
	if ( days ) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/*-----------------------------------------------------------------------------------------------*/
// Gestion des dates
/*-----------------------------------------------------------------------------------------------*/

var isDate = function(d) {
	// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
	// Par Romuald
	
	if (d == "") // si la variable est vide on retourne faux
	return false;
	
	e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
	
	if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
	return false; // Si pas bon, retourne faux
	
	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	j = parseInt(d.split("/")[0], 10); // jour
	m = parseInt(d.split("/")[1], 10); // mois
	a = parseInt(d.split("/")[2], 10); // année
	
	// Si l'année n'est composée que de 2 chiffres on complète automatiquement
	if (a < 1000)
	{
		if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
		else a+=1900;
	}
	
	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
	else fev = 28;
	
	// Nombre de jours pour chaque mois
	nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
	
	// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
	return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

var isFutureDate = function( d ) {
	
	if( isDate( d ) )
	{
		my_date = new Date() ;
		
		var given_date = d.split('/') ;
		var given_date_int = given_date[2] + given_date[1] + given_date[0] + '' ;
		
		var day = my_date.getDate();
		if( day < 10 ) day = "0"+day;

		var mon = my_date.getMonth() + 1;
		if( mon < 10 ) mon = "0"+mon;

		var current_date_int = my_date.getFullYear() + '' + mon + '' + day ;
		
		// alert( 'Courante : ' + current_date_int + ', donnée : ' + given_date_int ) ;
		
		return given_date_int > current_date_int ;
	}
	else return false ;
}
